zoukankan      html  css  js  c++  java
  • SQL Server 2014新特性-原生备份加密

    注:本篇文章是IT68找我的约稿,原文地址:http://tech.it168.com/a2014/0610/1633/000001633147.shtml

     

        SQL Server 2014 CTP2之后公布了一项针对备份的特性,那就是原生备份加密。考虑到之前网络上影响很坏的数据库泄漏事件,本质上都是数据库备份泄漏给第三方导致,SQL Server的原声数据备份可以使得即使备份本身被盗,在没有加密证书的情况下也无法使用,这有效的解决了上述数据泄漏问题。

    原先的解决方案

        在SQL Server 2014之前,如果希望实现对备份实现加密,会通过如下两种方式之一实现:

    • 使用透明数据加密(TDE)加密整个数据库,从而使得备份和事务日志也会被加密
    • 使用第三方备份加密工具

        首先来谈一下使用透明数据加密,如果仅仅是为了对备份加密,使用TDE有点过于大材小用,因为使用TDE会导致数据库本身和日志被加密,对CPU带来额外开销,此外,使用TDE加密过的数据库如果使用备份压缩,压缩比率会非常低。如果使用SQL Server 2014的原生备份加密,则无需对整个数据库进行加密,备份仅仅在被写入磁盘之前被加密。原声备份加密如果结合备份压缩功能,那么会先进行压缩,再加密,从而得到非常高的压缩比率。

        其次使用第三方备份加密工具需要额外的费用,并且在执行过程中也会有比较繁琐的操作成本,使用第三方备份当需要对备份到Azure的备份进行加密时,将会非常繁琐,而使用原生备份加密,可以直接对备份到Azure的备份进行加密,从而对OFF-SITE备份提供了额外的安全性。

     

    使用原生数据加密

        在SQL Server 2014 企业版、BI版、标准版中包括了该功能。使用备份加密需要有二个先决条件:

    • 存在证书或非对称密钥
    • 选择备份加密算法

        下面使用原声数据加密对备份加密,首先建立证书:

    CREATE CERTIFICATE BackupCertificate

    WITH SUBJECT = 'Backup Encryption Certificate';

    GO

    建立完成后,直接使用证书进行备份加密:

     
    BACKUP DATABASE TestBK TO DISK ='C:Test_Encrypted.bak'WITH COMPRESSION, ENCRYPTION  (ALGORITHM = AES_256, SERVER CERTIFICATE = BackupCertificate);

        结果如图1所示,在图1中,注意到SQL Server给出了提示信息要备份证书以及证书的私钥,否则数据将无法使用。通常在最佳实践中,当证书创建时就应该备份,数据安全永远是第一位的。

    clip_image002

    图1.提示备份证书私钥

        在图1中,注意到备份指定的加密算法是AES_256算法。SQL Server 2014提供了4种对备份加密的算法,分别是AES128、AES196、AES256和三重DES算法。

        在SQL Server 2014的Management Studio中也对原声备份加密提供了GUI的支持,如图2所示。

    clip_image004

    图2.GUI对原生备份加密的GUI支持

     

    原生加密备份对压缩的影响

       前文提到,使用原生备份加密可以使得备份压缩几乎不受加密的影响,下面备份一个2.5G左右的测试库,指定压缩备份,第一个例子仅使用压缩备份,第2-4例子使用压缩备份+不同的压缩算法,测试语句如图3所示。

    clip_image006

    图3.测试语句

     

        图4看到,使用备份加密对数据库备份大小几乎毫无影响。

    clip_image008

    图4.不同的加密算法对备份压缩几乎毫无影响

     

    clip_image010

    图5.加密算法对备份的影响

     

        由图4和图5的结论可以得出,无论使用了何种加密算法,加密对压缩比率几乎毫无影响。

     

    原生加密备份对性能的影响

     

        使用原生备份加密是一项极大的消耗CPU的操作,下面在图3的基础上进一步添加不压缩备份的情况,备份的时间如图6所示。

    clip_image012

     

    图6.不同压缩算法下备份时间

        由图6测试可以看出,除了3DES算法需要消耗的时间较长之外,AES算法在CPU不成为备份机瓶颈的情况下,对备份时间并无太大的影响。但加密对具体环境的影响会因环境而已,不同环境下的测试结果呈现可能会大相径庭,如果担心原生加密备份对性能产生影响,请先在具体环境进行测试。

     

    小结

        SQL Server原声备份加密对数据安全提供了非常好的解决方案。使用原生备份加密基本不会增加备份文件大小,并且打破了使用透明数据加密后几乎没有压缩率的窘境。使用原生备份加密无论在将数据备份到异地数据中心,还是将数据备份到云端,都可以以非常低的成本对数据提供额外的安全保障。

  • 相关阅读:
    Smart Client Architecture and Design Guide
    Duwamish密码分析篇, Part 3
    庆贺发文100篇
    .Net Distributed Application Design Guide
    New Introduction to ASP.NET 2.0 Web Parts Framework
    SPS toplevel Site Collection Administrators and Owners
    来自Ingo Rammer先生的Email关于《Advanced .Net Remoting》
    The newsletter published by Ingo Rammer
    深度探索.Net Remoting基础架构
    信道、接收器、接收链和信道接受提供程序
  • 原文地址:https://www.cnblogs.com/CareySon/p/3853016.html
Copyright © 2011-2022 走看看