Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssl 使用数字证书和数字签名的安全身份验证_Ssl_Certificate_Digital Signature_Pki - Fatal编程技术网

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

Ssl 使用数字证书和数字签名的安全身份验证,ssl,certificate,digital-signature,pki,Ssl,Certificate,Digital Signature,Pki,我正在通过PKI开发身份验证。我是通过PKI认证用户的新手,所以在互联网上阅读后,我想出了这个解决方案。用户将创建公钥和私钥。为了验证公钥,用户将申请数字证书。数字证书将具有公钥、用户元数据和证书颁发机构的数字签名。为了证明没有数据篡改,用户将使用数字签名,该数字签名将是证书与用户私钥的散列。用户将向服务器发送数字证书、数字签名和数据 服务器响应验证数字证书并获取公钥以验证数字签名,验证后,服务器将使用公钥加密数据并发送给用户。我还使用https安全传输信息 现在我不知道如何务实地做到这一点 我

我正在通过PKI开发身份验证。我是通过PKI认证用户的新手,所以在互联网上阅读后,我想出了这个解决方案。用户将创建公钥和私钥。为了验证公钥,用户将申请数字证书。数字证书将具有公钥、用户元数据和证书颁发机构的数字签名。为了证明没有数据篡改,用户将使用数字签名,该数字签名将是证书与用户私钥的散列。用户将向服务器发送数字证书、数字签名和数据

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

现在我不知道如何务实地做到这一点

我可以从哪里获得数字证书,主要是哪些是可信的CA? 证书颁发机构是否有任何RESTAPI,我在其中发送证书以验证证书? 是否有任何库来解析证书以提取信息? 对不起,我是数字证书和数字签名的新手

为了证明没有数据篡改,用户将使用数字签名,该数字签名将是证书与用户私钥的散列

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

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

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

对于https,额外的加密是多余和无用的

使用公钥加密,假设RSA限制密钥大小

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

每个浏览器都有自己的受信任列表。此外,欧盟还有一份合格证书提供商名单。名单是不同的

您还可以构建自己的CA

证书颁发机构是否有任何RESTAPI,我在其中发送证书以验证证书

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

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


当然,搜索您的编程语言

您是否希望验证WebLogin或API?您需要在您的国家向CA申请数字证书。有关程序,请访问他们的网站。关于Lib,根据平台的不同,您可以使用.NET System.Security.*或BouncyCastle,Java和.NET平台都可以使用。谢谢Baharat,我的问题与您提到的不同。如果你能回答上面提到的问题,那就太好了,因为你的目的答案是相同的,但没有满足我的要求。我正在寻找REST API,想知道从哪里可以获得证书,是否有可能通过来自CAIn的REST API进行验证。你要找的是哪个国家的证书?我没有听说过使用RESTAPI表单CA验证证书,但证书具有OSCP在线证书状态协议或CRL证书吊销列表。请研究以上两个主题…感谢您的详细回复。事情对我来说越来越清楚了。我看了这段视频,它说数字签名是证书的散列,所以我们谈论的是两种不同的数字签名吗?我认为你混淆了概念。证书具有使用CA根证书的私钥制作的嵌入数字签名,该签名通过证书的哈希来完成,以证明它是由该CA颁发的。但是,使用用户私钥制作的数字签名是使用消息哈希来执行的,注意,使用证书哈希。为了证明消息未被篡改,需要在该消息上应用数字签名。