美文网首页密码学专题
11. 密码学专题 - 密钥管理

11. 密码学专题 - 密钥管理

作者: furnace | 来源:发表于2020-05-10 11:07 被阅读0次

    密码学专题 - 密钥管理

    11. 密钥管理

    11.1 PKI

    公钥密码使密钥管理变得简单,但是 Alice 仍要获得 Bob 的公钥,她如何才能相信那是 Bob 的公钥,而不是其他人的公钥呢?也许 Eve 创建了一个密钥对,并且冒充 Bob 公开密钥。一般的解决办法是利用 PKI,或者称为公钥基础设施 (Public Key Infrastructure)。

    PKI 的主要思想是设立一个中心机构,称为证书机构或者 CA。每个用户都把他的公钥报给 CA 并向 CA 证明自己,然后 CA 使用数字签名签署用户的公钥,签署的消息或证书声明:“我,CA,已经验证公钥 P_{Bob} 属于 Bob。” 证书通常包括有效期及其他有用信息。

    利用证书,Alice 更容易找到 Bob 的公钥。我们假定 Alice 拥有 CA 的公钥并且已经验证是正确的公钥,现在 Alice 可以从数据库中检索 Bob 的公钥,Bob 也可以通过电子邮件将公钥发送给 Alice,然后 Alice 利用已得到的 CA 公钥验证 Bob 公钥的证书,该证书保证她使用正确的公钥与 Bob 进行通信。Bob 可同样地获得 Alice 的公钥,并且确信他在与正确的人进行通信。

    在 PKI 中,每一个参与方只需要让 CA 给他的公钥颁发证书,并知道 CA 的公钥以验证其他参与方的证书。这样的工作量远比与每一个通信方交换密钥小得多,这正是 PKI 的巨大优势:一次注册,随处使用。

    由于实际原因,PKI 通常设置多层次的 CA。其中有一个最高层的 CA,称为根,它为低层 CA 的公钥颁发证书,而低层 CA 则给用户的公钥颁发证书。这个系统以同样的方式工作,但是现在 Alice 需要检验两个证书以验证 Bob 的公钥。

    PKI 并不是最终的解决方案,其中还有很多问题。首先,CA 必须被每一个人信任。在有些情况下,这是容易做到的。一个公司的人力资源部门知道所有的员工,可以担任 CA 的角色。但是世界上没有一个实体能够被所有人信任,仅凭一个 PKI 来管理整个世界的想法显然是不行的。

    第二个问题是责任问题。如果 CA 颁发了一个错误的证书,或者 CA 的私钥被窃取了,那么该怎么办呢?Alice 将信任一个错误的证书,并且因此可能损失很多钱,那么该由谁来负责?CA 愿意以某种保险的形式来提供支持吗?这就需要 Alice 和 CA 之间建立非常全面的商业关系。

    目前有很多公司都试图成为世界性的 CA,VeriSign 大概是其中最有名的一个。然而,对于未能履行职责的情况,VeriSign 明确地限制了自己的赔偿责任,大多数情况下赔偿不超过 100 美元,这可以比我们利用 VeriSign 签署的证书安全地购买书籍所支付的金额都少。不过这并不是一个问题,因为使用信用卡支持对消费者来说是安全的。然而在购买下一辆汽车时,我们就不会相信只有 100 美元保证金的 VeriSign 证书了。

    项目源代码

    项目源代码会逐步上传到 Github,地址为 https://github.com/windstamp

    Contributor

    1. Windstamp, https://github.com/windstamp

    相关文章

      网友评论

        本文标题:11. 密码学专题 - 密钥管理

        本文链接:https://www.haomeiwen.com/subject/fouxqhtx.html