MSSQL中的透明数据加密 (TDE)介绍

0    40    1

Tags:

👉 本文共约10225个字,系统预计阅读时间或需39分钟。

加密简介

加密是指通过使用密钥或密码对数据进行模糊处理的过程。 如果没有相应的解密密钥或密码,此过程会使数据变得毫无用处。 加密并不解决访问控制问题。 不过,它可以通过限制数据丢失来增强安全性,即使在访问控制失效的情况下。 例如,如果数据库主计算机配置有误且黑客获取了敏感数据,那么被盗信息如已加密就可能毫无用处。

虽然加密是可帮助确保安全性的有力工具,但其并不适用于所有数据或连接。 决定是否实施加密时,请考虑用户访问数据的方式。 如果用户通过公共网络访问数据,则可能需要使用数据加密以增强安全性。 但是,如果所有访问都具有某项安全 Intranet 配置,则可能不需要使用加密。 任何时候使用加密时还应包括密码、密钥和证书的维护策略。

选择加密算法

加密是希望保护 SQL Server 实例安全的管理员可以采用的多种防御方法之一。

加密算法定义了未经授权的用户无法轻松逆转的数据转换。 管理员和开发人员可以从 SQL Server 的多种算法中选择,包括 DES、三重 DES、TRIPLE_DES_3KEY、RC2、RC4、128 位 RC4、DESX、128 位 AES、192 位 AES 和 256 位 AES。

从 SQL Server 2016 (13.x) 开始,除 AES_128AES_192AES_256 以外的所有算法都已弃用。 若要使用旧算法(不推荐),必须将数据库的数据库兼容级别设置为 120 或更低。

TDE简介

透明数据加密 (TDE) 可以加密 SQL Server、Azure SQL 数据库和 Azure Synapse Analytics 数据文件。 这种加密方式称为静态数据加密。

为了帮助保护用户数据库的安全,可以采取以下预防措施:

  • 设计安全的系统。
  • 对机密资产加密。
  • 在数据库服务器外围构建防火墙。

但恶意方如果窃取了硬盘或备份磁带等物理介质,就可以还原或附加数据库并浏览其数据。

一种解决方案是加密数据库中的敏感数据,并使用证书保护用于加密数据的密钥。 此解决方案可以防止没有密钥的人使用这些数据。 但必须提前规划好此类保护。

TDE 对数据和日志文件进行实时 I/O 加密和解密。 加密使用的是数据库加密密钥 (DEK)。 数据库启动记录存储该密钥,供还原时使用。 DEK 是对称密钥,由服务器的 master 数据库存储的证书或 EKM 模块所保护的非对称密钥提供保护。

TDE 保护静态数据,也就是数据和日志文件。 它让你可以遵循许多法律、法规和各个行业建立的准则。 借助此功能,软件开发人员可以使用 AES 和 3DES 加密算法来加密数据,且无需更改现有的应用程序。

备注

TDE 不适用于系统数据库。 不能用于加密 mastermodelmsdbtempdb 启用 TDE 但无法直接加密的用户数据库时,会自动加密。

TDE 不提供跨信道加密。 若要详细了解如何跨信道加密数据,请参阅配置 SQL Server 数据库引擎以加密连接

相关主题

关于 TDE

数据库文件加密在页面级执行。 已加密数据库中的页在写入磁盘之前会进行加密,在读入内存时会进行解密。 TDE 不会增加已加密数据库的大小。

适用于 SQL 数据库的信息

将 TDE 与 Azure SQL 数据库一起使用时, SQL 数据库将自动为你创建存储在 master 数据库中的服务器级别证书。 若要在 SQL 数据库上移动 TDE 数据库,无需为移动操作解密数据库。 有关将 TDE 与 SQL 数据库一起使用的详细信息,请参阅 Azure SQL 数据库的透明数据加密

适用于 SQL Server 的信息

保证数据库的安全后,可以使用正确的证书来还原数据库。 有关证书的详细信息,请参阅 SQL Server Certificates and Asymmetric Keys

启用 TDE 后,立即备份证书及其关联的私钥。 如果证书不可用,或者如果在另一台服务器上还原或附加数据库,则需要备份证书和私钥。 否则,将无法打开数据库。 还应备份存储在“包含的系统数据库”中的证书。

即使你在数据库上禁用了 TDE,也要保留加密证书。 虽然数据库未加密,但事务日志的某些部分仍可能受到保护。 在执行完整的数据库备份之前,某些操作可能还需要使用证书。

你仍可使用超过过期日期的证书来通过 TDE 加密和解密数据。

加密层次结构

Windows 数据保护 API (DPAPI) 位于加密树的根目录中,在计算机级别保护密钥层次结构,并用于保护数据库服务器实例的服务主密钥 (SMK) 。 SMK 保护存储在用户数据库级别的数据库主密钥 (DMK),并保护证书和非对称密钥。 这些密钥反过来又保护对称密钥,进而保护数据。 TDE 使用与证书类似的层次结构。 使用 TDE 时,DMK 和证书必须存储在 master 数据库中。 仅用于 TDE 且称为数据库加密密钥 (DEK) 的新密钥将在用户数据库中创建和存储。

下图显示了 TDE 加密体系结构。 在 SQL 数据库上使用 TDE 时,用户仅能配置数据库级项目(数据库加密密钥和 ALTER DATABASE 部分)。

MSSQL中的透明数据加密 (TDE)介绍

启用 TDE

若要使用 TDE,请按以下步骤操作。

适用于: SQL Server。

  1. 创建主密钥。
  2. 创建或获取由主密钥保护的证书。
  3. 创建数据库加密密钥并使用此证书保护该密钥。
  4. 将数据库设置为使用加密。

下面的示例演示如何使用安装在服务器上的 MyServerCert 证书来加密和解密 AdventureWorks2022 数据库。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
MSSQL中的透明数据加密 (TDE)介绍后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
验证码:
请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部