使用数字证书和数字签名的安全身份验证

时间:2019-05-14 10:03:37

标签: ssl certificate digital-signature pki

我正在通过PKI开发身份验证。我是通过PKI验证用户身份的新手,因此在Internet上阅读后,我想到了此解决方案。用户将创建一个公钥和私钥。为了验证公共密钥,用户将申请数字证书。数字证书将具有公钥,用户的元数据和证书颁发机构的数字签名。为了证明没有数据篡改,用户将使用数字签名,该数字签名将是带有用户私钥的证书的哈希。用户会将数字证书,数字签名和数据发送到服务器。

作为响应,服务器验证数字证书并获取公共密钥以验证数字签名,并且在验证之后,服务器将使用公共密钥加密数据并发送给用户。我还使用https来安全地传输信息。

现在我很困惑如何实际地做到这一点。

  1. 从哪里可以获得数字证书,主要是可信任的CA?
  2. 我发送证书以验证证书的证书颁发机构是否提供任何REST API?
  3. 是否有任何库可以解析证书以提取信息?

对不起,我是数字证书和数字签名的新手。

1 个答案:

答案 0 :(得分:1)

  

为证明没有数据篡改,用户将使用数字签名,该数字签名是带有用户私钥的证书的哈希。

否,使用私钥在消息数据上生成数字签名。该证书用于验证

  

作为响应,服务器验证数字证书并获取公共密钥以验证数字签名,并且在验证之后,服务器将使用公共密钥加密数据并发送给用户。我还使用https来安全地传输信息。

  • 您应在注册过程中将公钥与用户帐户关联

  • 使用https,额外的加密是多余且无用的

  • 使用公用密钥(假设为RSA)进行的
  • 加密仅限于密钥大小。

  

我可以从哪里获得数字证书,主要是可信任的CA?

每个浏览器都有其自己的受信任列表。另外,在欧盟,还有合格的证书提供者列表。列表不一样。

您还可以建立自己的CA

  

我发送证书以验证证书的证书颁发机构是否提供任何REST API?

用于请求证书的消息格式是标准化的(pkcs#10),但是与CA的连接协议不是标准格式。 CA可能具有REST服务,但是在任何情况下,如果不验证证书中包含的用户数据,CA都不会颁发证书

  

是否有任何库可以解析证书以提取信息?

当然,请搜索您的编程语言