我正在尝试使用证书和对称密钥加密 SQL Server 2005 中的列
证书过期后数据会怎样?
我在一些博客上看到,sql server 不验证证书的过期日期,用户仍然能够使用过期的证书进行加密和解密
这是真的吗?如果是,有人能给我指出微软知识库文章(或)在线图书页面吗?其中指出 Sql Server 不会验证证书过期数据,用户仍然能够使用过期的证书加密和解密数据
谢谢 Ram
答案1
您可以查看官方文档联机丛书中的 CREATE CERTIFICATE 语句,摘录如下:
到期日= 'mm/dd/yyyy'
是证书到期的日期。如果未指定,EXPIRY_DATE 将设置为 START_DATE 一年后的日期。EXPIRY_DATE 为 UTC 时间,可以设置为秒的粒度。SQL Server Service Broker 检查到期日期;但是,当证书用于加密时,不强制到期。
答案2
除了chad所说的之外,大多数基于证书的加密方案的工作原理类似:
- 数据使用对称密钥加密
- 该证书用于加密对称密钥
- 当证书被盗用或即将过期时,将使用新证书替换该证书并使用对称密钥重新加密
因此,始终可以以最小的影响替换证书,因为只有使用此证书加密的对称密钥需要用新证书重新加密。
此外,即使在做检查有效期,一般规则是:
- 为了进行签名验证,证书必须有效当时使用时经核实时未
- 对于数据加密,证书必须有效在数据加密时,当时没有解密
强制证书过期的方案检查签名或解密数据设计非常糟糕,因为过了有效期后所有数据都无法解密。