为什么我需要使用单独的公钥对进行签名和加密 例如,不要使用与RSA相同的密钥对? 使用相同的密钥是否存在安全问题?
答案 0 :(得分:20)
使用单独的密钥对进行签名和加密的原因是分散风险:如果有人恢复了私有加密密钥,他/她可以解密使用公共加密密钥加密的文档,但也不能使用它签署文件,反之亦然。
另一个原因可能是a legal reason:
在一些国家/地区,数字签名的状态有点像传统的纸笔签名,如EU digital signature legislation中所示。通常,这些规定意味着任何数字签名的合法签名都会将文件的签名者与其中的条款绑定在一起。出于这个原因,通常认为最好使用单独的密钥对进行加密和签名。使用加密密钥对,人可以参与加密的对话(例如,关于房地产交易),但加密不合法地签署他发送的每个消息。只有当双方达成协议时,他们才会与他们的签名密钥签订合同,然后他们才会受到特定文件条款的法律约束。签名后,可以通过加密链接发送文档。如果签名密钥丢失或被泄露,则可以撤消该签名密钥以减轻将来的任何事务。如果加密密钥丢失,则应使用备份或密钥托管来继续查看加密内容。永远不应备份或托管签名密钥。
答案 1 :(得分:0)
我不完全确定你得到了什么。我假设你想知道为什么你应该为https / ssl / ssh和代码签名使用不同的密钥(除了它们有不同的使用位)。
SSL证书必须在Web服务器周围闲逛,这些服务器因受到攻击而臭名昭着。代码签名证书可以完全脱机隐藏。理论上。在实践中,Web服务器由专业的系统管理员管理,代码签名证书留在bodge-a-job开发者PC上。还有最小特权原则。
答案 2 :(得分:0)
您可能希望从安全堆栈中看到类似的问题:
恕我直言,Am1rr3zA的答案是最好的。
答案 3 :(得分:0)
拥有单独的签名和加密密钥对,允许公司备份加密证书,以便在您离开公司时解密数据并找到使用密钥加密的内容。
通常,公司不会保留签名证书的备份副本,因为它会破坏有效数字签名的概念。如果签名证书由多方签署,那么谁真的用它签了一条消息呢?
因此,加密密钥由用户持有并由公司备份。签名密钥仅由用户持有。
答案 4 :(得分:0)
使用单独的密钥进行签名和加密的原因:
答案 5 :(得分:-7)
阅读本文:http://en.wikipedia.org/wiki/Public-key_cryptography
基本上你要问的是非对称和对称加密之间的区别。