SQL 服务器 SSL + TDE 与始终加密
SQL Server SSL + TDE vs Always Encrypted
使用 SQL 服务器 SSL(连接字符串中的 Encrypted=true)+ TDE 与使用 SQL 服务器始终加密有什么区别?
关于 RGPD,一个比另一个更适应吗?
Always Encrypted 的存在不仅仅是为了解决确保数据在传输过程中加密的问题。事实上,这甚至不是 Always Encrypted 解决的主要问题。
Always Encrypted 解决的大问题是 使用透明数据加密 (TDE),保护加密数据的密钥和证书本身存储在数据库中。 这可能对于考虑将他们的 SQL 服务器数据库放在云中的人来说,这是一个问题,因为云提供商最终拥有解密数据的秘密。
使用 Always Encrypted,用于 encrypt/decrypt 列数据的列加密密钥 (CEK) 以加密形式存储在数据库中。但问题在于 - 用于 encrypt/decrypt CEK 的密钥存储在数据库外部,让数据库无法自行解密数据。
数据库能做的就是
- 提供加密的CEK,
- 提供 CMK 的位置,并且
- serve/store 预加密数据。
由客户端从 key/certificate 存储中获取列主密钥 (CMK),无论它位于何处,然后使用 CMK 解密 CEK,并将解密后的 CEK 用于 encrypt/decrypt数据。
这就是概念上的区别。这里有几页详细介绍了它:
- Overview of Key Management for Always Encrypted(微软文档)
- SQL Server Encryption: Always Encrypted(Redgate 文章)
请注意,Always Encrypted 在查询数据和其他方面存在一些严重缺陷。 This article gives a pretty good list of limitations. Some of these drawbacks can be mitigated using Always Encrypted with secure enclaves.
使用 SQL 服务器 SSL(连接字符串中的 Encrypted=true)+ TDE 与使用 SQL 服务器始终加密有什么区别?
关于 RGPD,一个比另一个更适应吗?
Always Encrypted 的存在不仅仅是为了解决确保数据在传输过程中加密的问题。事实上,这甚至不是 Always Encrypted 解决的主要问题。
Always Encrypted 解决的大问题是 使用透明数据加密 (TDE),保护加密数据的密钥和证书本身存储在数据库中。 这可能对于考虑将他们的 SQL 服务器数据库放在云中的人来说,这是一个问题,因为云提供商最终拥有解密数据的秘密。
使用 Always Encrypted,用于 encrypt/decrypt 列数据的列加密密钥 (CEK) 以加密形式存储在数据库中。但问题在于 - 用于 encrypt/decrypt CEK 的密钥存储在数据库外部,让数据库无法自行解密数据。
数据库能做的就是
- 提供加密的CEK,
- 提供 CMK 的位置,并且
- serve/store 预加密数据。
由客户端从 key/certificate 存储中获取列主密钥 (CMK),无论它位于何处,然后使用 CMK 解密 CEK,并将解密后的 CEK 用于 encrypt/decrypt数据。
这就是概念上的区别。这里有几页详细介绍了它:
- Overview of Key Management for Always Encrypted(微软文档)
- SQL Server Encryption: Always Encrypted(Redgate 文章)
请注意,Always Encrypted 在查询数据和其他方面存在一些严重缺陷。 This article gives a pretty good list of limitations. Some of these drawbacks can be mitigated using Always Encrypted with secure enclaves.