sql-server - EKM 是否与 CNG key 存储提供商合作?

标签 sql-server cryptography cng tde mscapi

https://learn.microsoft.com/en-us/sql/relational-databases/security/encryption/extensible-key-management-ekm说:

SQL Server 提供数据加密功能以及可扩展 key 管理 (EKM),并使用 Microsoft 加密 API (MSCAPI) 提供程序进行加密和 key 生成。

这是否意味着 EKM 只能与 MSCAPI(旧 CSP)配合使用,而不能与新的 CNG key 存储提供商配合使用?

最佳答案

是的,目前EKM(可扩展 key 管理)仅适用于MSCAPI。 EKM 没有任何 API 可以与 CNG 进行通信(操作系统级别)。

它是 key 的“持有者”。 CNG 是为 MS Windows 提供服务的 key 存储,从 Windows Server 2008 和 Windows Vista 开始默认为该存储。

CNG 与 EKM

CNG(DPAPI [CNG DPAPI][1] 仅用于保护数据库主 key (OS)。EKM 不使用它。

security type illustrations

从CNG的角度来看

如果您检查 CNG 架构,它会明确表示它正在使用 Microsoft software KSP用于(私有(private)) key 存储。

引用:

CNG currently supports the storage of asymmetric private keys by using the Microsoft software KSP that is included with Windows Server 2008 and Windows Vista and installed by default.

即使 CNG 架构图像也没有提到 SQL Server 的可能性:

CNG key isolation architecture

更多请参见 Key Storage and Retrieval

注意:所有插图均由 Microsoft 创建。

关于sql-server - EKM 是否与 CNG key 存储提供商合作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49008180/

相关文章:

黑莓RSA解密总是挂起

C++使用CNG从模数和指数导入RSA公钥

c++ - Microsoft CNG - 使用 BCrypt 函数在内存中创建自签名证书

sql - 需要帮助调整涉及表连接的 SQL 查询

sql-server - XPath 从 sql 表列中读取值

sql - 如何在 SQL Server 中有效地使用 AND/OR

sql - 将字符串中的 int 转换为 T-SQL 中的整数

Java SecureRandom 声明应该是特定于静态类的,也可以是特定于实例的

c# - CngKey System.Security.Cryptography.CryptographicException 系统找不到 Azure 上指定的文件

windows - 使用 Windows 加密 API 在恒定时间内比较 2 个 secret