Certificate 带证书的签名

Certificate 带证书的签名,certificate,signing,Certificate,Signing,我试图了解它是如何工作的文件签名与证书 我已经了解了文件“基本”签名的工作原理: 鲍勃想给爱丽丝发个“我签字了” Bob散列“我已签名”,返回“ABCDEF” Bob用他的私钥加密散列,返回“101010” Bob将加密部分“101010”发送给Alice,并发送消息“我已签名” Alice对文件进行哈希运算,返回“ABCDEF” Alice使用Bob的公钥解密加密部分“101010”,返回“ABCDEF” Alice使这两个值匹配,这意味着消息实际上来自Bob 今天我和一个在一家公司工作的

我试图了解它是如何工作的文件签名与证书

我已经了解了文件“基本”签名的工作原理:

  • 鲍勃想给爱丽丝发个“我签字了”
  • Bob散列“我已签名”,返回“ABCDEF”
  • Bob用他的私钥加密散列,返回“101010”
  • Bob将加密部分“101010”发送给Alice,并发送消息“我已签名”
  • Alice对文件进行哈希运算,返回“ABCDEF”
  • Alice使用Bob的公钥解密加密部分“101010”,返回“ABCDEF”
  • Alice使这两个值匹配,这意味着消息实际上来自Bob
今天我和一个在一家公司工作的人讨论了身份验证产品、代币、手机应用程序、卡片等

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

正如我以一种非常模糊的方式解释的,“每个用户都需要一个证书来允许他对文档进行签名”,“我们使用公钥加密”(我认为这一点可能不是真的),“证书包含公钥”

我试图通过计划达到目的:

但我更迷路了

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

但是怎么做呢?有人能描述一下这些步骤吗

我们用公钥加密

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

让你困惑的可能是混淆的东西:签名和加密

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

  • Alice是唯一一个能够读取消息的人,因为她是唯一一个持有私钥来加密数据的人
  • Alice可以确定消息来自Bob,因为他是唯一持有生成签名的密钥的人

    • @daniel fisher Lennyback:

      这样做是否正确:

      X制定的证书申请程序*是:

      • X生成一个私钥和一个公钥
      • X生成包含公钥的请求的证书,并用私钥对其签名
      • X 向CA提交请求
      • XCA颁发证书(Bob的公钥+签名Bob的 带有CA私钥的公钥)
      ---过程---

      • 鲍勃想给爱丽丝发个“我签字了”
      • Bob散列“我签名了”
      • Bob用他的私钥对哈希签名
      • Bob需要Alice的证书才能进行下一步
        • Alice继续证书请求过程*并向Bob发送证书(Alice的公钥)
        • Bob使用CA公钥检查证书的签名是否正确
      • Bob使用Alice的公钥对消息、哈希和签名进行加密”
      • Bob将所有加密内容发送给Alice
      • Alice解密内容并获取消息、哈希和签名
      • Alice需要Bob的证书(Bob的公钥)来验证签名
        • Bob继续证书请求过程*并将证书(Bob的公钥)发送给Alice
        • Alice使用CA公钥检查证书的签名是否正确
      • Alice检查来自bob的签名与bob的证书(bob的公钥)是否正确

      是这样吗?

      哦,好的,谢谢你的帮助。但是,该过程中的证书属于何处?该证书是由证书颁发机构(CA)签署的
      公钥。如果有人请求证书,则会使用私钥对请求进行签名。然后由CA对公钥进行签名。这两个公钥一起通常是一个*.pfx/*.p12文件。cer/crt通常是一个证书(公钥),而*.key最常用于私钥文件。嗯,很抱歉,您可以编辑上面的过程,包括证书请求等吗?