我可以用旧的(私有)密钥签署新的(公共)密钥,以将一个密钥牢固地转移到另一个密钥。但是据我所知,没有什么可以阻止任何让旧钥匙签署其他新钥匙作为官方的人,甚至在我给了旧钥匙之后很久。
如果我撤销了旧的私钥,那么没有人可以制作伪造的签名,这很好。但是,撤销钥匙是否意味着其新的签名会无效吗?(以及它制作的每个签名?)
因此,即使我是"鲍勃",一个认识我的"爱丽丝"的人也能告诉我我一样。但是后来他们看到了"爱丽丝"的撤销,在这种情况下,他们必须把所有关于我的知识抛弃,无论是爱丽丝还是鲍勃?
处理此问题的通常方法是使用其他键来签名密钥和签名"有用"数据。
数据签名密钥属于在线服务器上被自动调用的,因此有滥用的风险。此键定期旋转。原则上,它不需要旋转:如果发生不好的事情,请撤销它。但是实际上很难撤销:通常很难确保每个依赖签名的一方都会及时看到撤销消息。到期确保即使一方看不到撤销消息,它也不会长期接受受损的签名。
密钥签名密钥固定在具有严格访问控件的离线服务器上,并且由于它得到了更好的保护,因此它的风险非常低。
带有签名其他密钥的键的系统称为公共密钥基础架构。许多系统具有多个级别的签名键。最著名的PKI生态系统是用于HTTPS的生态系统,其服务器具有由中间证书授权签署的证书,该证书又有另一个CA签署的证书,直到您达到根CA。中级CAS是在线的,但是运行专用系统,除了标志证书外什么也无用。root ca证书的密钥是在多个员工之间分配的,他们每隔几年都没有一次没有互联网连接来生成新的中间密钥。
使用openSSL运行自己的ca并不小,但它是可行的,您会在网上找到许多教程。