我正在通过PKI开发身份验证。我是通过PKI验证用户身份的新手,因此在Internet上阅读后,我想到了此解决方案。用户将创建一个公钥和私钥。为了验证公共密钥,用户将申请数字证书。数字证书将具有公钥,用户的元数据和证书颁发机构的数字签名。为了证明没有数据篡改,用户将使用数字签名,该数字签名将是带有用户私钥的证书的哈希。用户会将数字证书,数字签名和数据发送到服务器。
作为响应,服务器验证数字证书并获取公共密钥以验证数字签名,并且在验证之后,服务器将使用公共密钥加密数据并发送给用户。我还使用https来安全地传输信息。
现在我很困惑如何实际地做到这一点。
对不起,我是数字证书和数字签名的新手。
答案 0 :(得分:1)
为证明没有数据篡改,用户将使用数字签名,该数字签名是带有用户私钥的证书的哈希。
否,使用私钥在消息数据上生成数字签名。该证书用于验证
作为响应,服务器验证数字证书并获取公共密钥以验证数字签名,并且在验证之后,服务器将使用公共密钥加密数据并发送给用户。我还使用https来安全地传输信息。
您应在注册过程中将公钥与用户帐户关联
使用https,额外的加密是多余且无用的
加密仅限于密钥大小。
我可以从哪里获得数字证书,主要是可信任的CA?
每个浏览器都有其自己的受信任列表。另外,在欧盟,还有合格的证书提供者列表。列表不一样。
您还可以建立自己的CA
我发送证书以验证证书的证书颁发机构是否提供任何REST API?
用于请求证书的消息格式是标准化的(pkcs#10),但是与CA的连接协议不是标准格式。 CA可能具有REST服务,但是在任何情况下,如果不验证证书中包含的用户数据,CA都不会颁发证书
是否有任何库可以解析证书以提取信息?
当然,请搜索您的编程语言