将 CodeMeter 许可证管理与 SQL Server Always Encrypted 相结合

问题描述 投票:0回答:1

我想在我的 SQL Server 数据库中激活 Always Encrypted,以保护一些敏感列并从外部应用程序访问它。

根据我的理解,我必须:

  1. 在数据库上配置始终加密(使用 CEK 和 CMK 密钥)
  2. 使用 MS 库开发我的客户端,以连接到具有加密列的此类数据库。在官方文档中,我发现了这样一个名为“driver”的库
  3. 在我的客户端应用程序中,我必须向驱动程序提供 CMK 密钥。

要点是我需要在我的客户端应用程序上处理 CMK。

我的 CMK 将是存储在 Wibu CodeMeter 中的加密密钥,作为许可证中的秘密,并且不允许直接从许可证中提取密钥。相反,它提供了一个 API 来加密/解密数据,指定密钥存储在哪个许可证中。

到目前为止,似乎还没有办法将这两种技术结合起来,因为我无法从 CodeMeter 获取密钥以将其传递给驱动程序库。这让我提出了这些问题:

  1. 为什么 Wibu CodeMeter 以及我相信其他加密密钥管理会阻止密钥提取?
    • 我想我们不希望进程运行时加密密钥在内存中是清晰的,例如为了防止在调试时发现密钥。
  2. 如果在安全环境中我们不希望密钥在内存中清晰地循环,那么 Always Encrypted 如何假装接收密钥作为输入?

鉴于我不是安全专家,我想要么我错过了一些东西,要么这种组合是不可能的,从架构的角度来看,我试图做的事情根本没有意义。

sql-server encryption always-encrypted
1个回答
0
投票

我的理解是错误的。要连接到启用始终加密的 SQL Server,只要在客户端应用程序中安装了 SQL Server ODBC 驱动程序,具有适当参数的 ODBC URL 就足够了。

连接字符串示例:

jdbc:sqlserver://host\dbname;integratedSecurity=true;encrypt=true;database=MyDB;trustServerCertificate=true;columnEncryptionSetting=Enabled

设置

columnEncryptionSetting=Enabled
是连接到启用“始终加密”的实例所需的设置。

仅支持开箱即用的 Azure Key Store 和 Windows Credential Store;可以通过使用专用 API 实现连接器来连接到其他商店:更多详细信息,请参阅官方 MS 文档。

© www.soinside.com 2019 - 2024. All rights reserved.