首页 > 解决方案 > 带证书的签名

问题描述

我试图了解它是如何使用证书来处理文件签名的。

我已经了解它是如何为文件的“基本”签名工作的:

  • Bob 想向 Alice 发送“我已签名”
  • Bob 散列“我已签名”,返回“ABCDEF”
  • Bob 用他的私钥加密哈希,返回“101010”
  • Bob 将加密部分“101010”发送给 Alice,并发送消息“我已签名”
  • Alice 对文件进行哈希处理,返回“ABCDEF”
  • Alice 用 Bob 的公钥解密加密部分“101010”,返回“ABCDEF”
  • Alice 匹配这两个值,这意味着消息确实来自 Bob

我今天与在一家处理身份验证产品、令牌、手机应用程序、卡片等的公司工作的人讨论过。

关键是,该公司正在提供两种或多或少具有强大价值的证书(取决于他们在多大程度上成功地识别了流程之上的用户)。

正如以一种非常模糊的方式向我解释的那样,“每个用户都需要一个证书来允许他签署他的文件”,“我们用公钥加密”(我认为这点可能不是真的),“证书包含公众钥匙”。

我试图通过寻找方案来达到目的:维基百科方案

但我越来越迷失了。

我认为数字签名是使用我上面描述的第一种方法进行管理,而电子签名是将证书添加到流程中的事实。

但是怎么做?有人可以描述一下步骤吗?

标签: certificatesigning

解决方案


我们用公钥加密

这是真的,因为它被称为非对称加密。每个人(可能)都拥有公钥,因此可以加密发送给持有私钥的人的消息。

可能让您感到困惑的是混淆的事情:签名和加密

  • Bob 想向 Alice 发送“我已签名”
  • 鲍勃散列“我已签名”
  • Bob 需要证书才能执行后续步骤
    • Bob 生成一个私钥和一个公钥
    • Bob 生成包含公钥的证书请求并使用私钥对其进行签名
    • Bob 向 CA 提交请求
    • CA颁发证书(用 CA 私钥签署 Bob 的公钥)
  • Bob用他的私钥对哈希进行签名
  • Bob 需要 Alice 的证书才能进行后续步骤
    • Bob 向 Alice 索要她的公钥(证书)
    • Alice 生成一个私钥和一个公钥
    • Alice 生成包含公钥的证书请求并使用私钥对其进行签名
    • Alice 向 CA 提交请求
    • CA颁发证书(用 CA 私钥签署 Alice 的公钥)
    • 爱丽丝向鲍勃发送她的公钥(证书)
  • Bob用 Alice 的公钥加密消息、散列和签名”
  • Bob 将加密数据发送给 Alice
  • 爱丽丝用她的私钥解密数据
  • Alice 散列“我已签名”并使用 Bobs公钥验证签名

关键是

  • 爱丽丝是唯一能够阅读该消息的人,因为她是唯一持有用于加密数据的私钥的人。
  • Alice 可以确定该消息来自 Bob,因为他是唯一持有生成签名的密钥的人。

推荐阅读