在RSA加密中,保证公钥的真实性和保护私钥一样重要。
一种有效的方法是让密钥保管人通过电话或类似的方式与公钥的原始所有者(KC1)手动确认公钥的指纹(KC1)。
可以使用不同的公钥(PK2)对原始公钥PK1进行签名,但是在验证第二个公钥的真实性时也会出现同样的问题。
是否有任何方法来避免这种人工干预公钥验证?
发布于 2013-06-04 14:50:09
你说的是公钥基础设施。这就是为什么存在证书颁发机构和信任网。您必须有可信方来验证证书(公钥)。验证是通过使用要与公共证书共享的人信任的私钥对证书进行签名进行的。
这可以是一个中央可信CA (第三方或每个人都同意信任的组织的内部CA ),也可以是信任网络,多个人在验证信息时签署证书,并根据签名人的信任程度建立信任。确切的方案可能因信任网而异,但最简单的是,如果我信任Bob,然后Bob信任Carl,那么我可以信任Carl,因为Carl是由Bob签名的,而我是由Bob签名的。那么,如果卡尔信任戴夫,我可以信任戴夫,但可能比我信任卡尔或鲍勃更少。仍然有手动操作的最初验证鲍勃,但我得到卡尔和戴夫免费。
发布于 2013-06-04 19:46:18
您的浏览器已经填充了一个信任存储,其中包括RSA公钥。根据定义,与该CA发出的任何密钥或信任存储中的其他CA中的任何一个的所有交互都是自动的。
换句话说,您对浏览器发布者的信任必须包括对流行CA的公钥密钥存储的信任。这种信任并不是一件小事,因为浏览器最近已经有了一些补丁来删除某些CA密钥(例如,http://en.wikipedia.org/wiki/DigiNotar)。
正如AJ·亨德斯顿(AJ Henderston )所言,信任不是技术问题,而是社会问题。您信任Mozilla、Apple或Microsoft,因此相信他们会尽职确认产品中的CA公钥。
https://security.stackexchange.com/questions/36929
复制相似问题