公钥加密(PKI)是一种消息保密形式,用户在其中创建 公钥 和 私钥 。 私钥是保密的,而公钥可以分发给其他人。 尽管密钥在数学上是相关的,但私钥不能通过使用公钥轻松派生。 公钥用于加密数据,私钥用于解密数据。 使用公钥加密的消息只能使用正确的私钥进行解密。 由于有两个不同的键,因此这些键是不 对称的。
证书和非对称密钥是使用非对称加密的两种方法。 证书通常用作非对称密钥的容器,因为它们可以包含详细信息,例如到期日期和颁发者。 加密算法的两种机制之间没有区别,并且给定相同密钥长度的强度没有差异。 通常,使用证书加密数据库中其他类型的加密密钥,或对代码模块进行签名。
证书和非对称密钥可以解密其他加密的数据。 通常,使用非对称加密对数据库中存储的对称密钥进行加密。
公钥没有类似于证书的特定格式,并且无法将其导出到文件。
注释
SQL Server 包含的功能使你能够创建和管理证书和密钥,以便与服务器和数据库一起使用。 SQL Server 不能用于与其他应用程序或在作系统中创建和管理证书和密钥。
证书
证书是一个数字签名的安全对象,其中包含 SQL Server 的公共(可选)私钥。 可以使用外部生成的证书,或者 SQL Server 可以生成证书。
注释
SQL Server 证书符合 IETF X.509v3 证书标准。
证书非常有用,因为可以选择将密钥导出和导入 X.509 证书文件。 用于创建证书的语法允许为证书(例如到期日期)创建选项。
在 SQL Server 中使用证书
证书可用于帮助保护数据库镜像中的连接、对包和其他对象进行签名,或加密数据或连接。 下表列出了 SQL Server 中证书的其他资源。
主题 | DESCRIPTION |
---|---|
创建证书(Transact-SQL) | 说明用于创建证书的命令。 |
通过数字签名识别包的来源 | 显示有关如何使用证书对软件包进行签名的信息。 |
对数据库镜像终结点使用证书(Transact-SQL) | 介绍如何将证书与数据库镜像配合使用。 |
非对称密钥
非对称密钥用于保护对称密钥。 它们还可用于有限的数据加密和对数据库对象进行数字签名。 非对称密钥由私钥和相应的公钥组成。 有关非对称密钥的详细信息,请参阅 CREATE ASYMMETRIC KEY (Transact-SQL)。
非对称密钥可以从强名称密钥文件导入,但无法导出它们。 它们也没有到期选项。 非对称密钥无法加密连接。
在 SQL Server 中使用非对称密钥
非对称密钥可用于帮助保护数据或对纯文本进行签名。 下表列出了 SQL Server 中非对称密钥的其他资源。
主题 | DESCRIPTION |
---|---|
创建非对称密钥(Transact-SQL) | 说明用于创建非对称密钥的命令。 |
SIGNBYASYMKEY (Transact-SQL) | 显示用于签署对象的选项。 |
工具
Microsoft提供了用于生成证书和强名称密钥文件的工具和实用工具。 与 SQL Server 语法相比,这些工具在密钥生成过程中提供了更丰富的灵活性。 可以使用这些工具创建具有更复杂的密钥长度的 RSA 密钥,然后将其导入 SQL Server。 下表说明了在何处查找这些工具。
工具 | 目的 |
makecert | 创建证书。 |
锡 | 为对称密钥创建强名称。 |
相关任务
CREATE SYMMETRIC KEY (Transact-SQL)