
我一直对数字证书的发行和信任一无所知. 最后是一个悠闲的周末,以总结和研究相关知识.
CA:
CA(证书颁发机构)是证书颁发机构. 它是负责管理和颁发证书的第三方组织,并且是一个广受信任的组织. 通常,我们的计算机,浏览器或移动电话内置了一批此类受信任机构的根证书.
证书信任链:
例如,我是CA组织. 我颁发了证书. 此证书是信任B证书和其他C证书的证书....然后您可以信任此链. 因此,一旦CA的根证书不可信任,则由其颁发的所有证书将变得不可信任,从而带来严重后果.
公钥密码系统:
公共密钥密码系统分为三个部分,即公共密钥,私有密钥以及加密和解密算法. 其加密和解密过程如下:
公共密钥密码系统的公共密钥和算法是公共的(这就是为什么它被称为公共密钥密码系统),并且私有密钥是保密的. 每个人都使用公共密钥进行加密,但是只有私有密钥的持有者才能解密它. 在实际使用中,有需要的人会生成一对公钥和私钥,将公钥发布给他人使用,并自己保留私钥.
CA证书:

顾名思义,CA证书是由CA组织颁发的证书. 实际上,任何人都可以签署证书,您也可以为自己签署证书,但是由于您不是一个广受信任的机构,因此您签署的证书不是很有用. 公共网络将不信任您的证书. 服务器证书包含以下信息:
颁发者(证书的颁发者)
指示组织颁发了哪个证书,即哪个公司创建了证书(它只是创建证书,而不是证书的用户). 对于上面的证书,它的意思是“ SecureTrust CA”.
有效期自,有效期至(证书有效期)
这是证书的有效时间或证书的寿命. 到期后,证书将失效并且无法使用.
公钥(公钥)
这是我们在前面介绍公钥密码系统时介绍的. 公钥用于加密消息. 它通常在第二章的示例中使用. 此数字证书的公共密钥为2048位. 其值可以在图中间的对话框中看到. 这是一长串数字.
主题(主题)
此证书的颁发者或证书的所有者通常是个人或公司的名称,组织的名称,公司网站的URL等. 对于此处的证书,证书的所有者是Trustwave公司.

签名算法(签名算法)
是指用于此数字证书的数字签名的加密算法,因此可以根据此算法使用证书颁发机构的证书中的公钥来解密指纹. 指纹的加密结果是数字签名.
缩略图,指纹算法(指纹和指纹算法)
这用于确保证书的完整性,这意味着尚未修改证书. 原理是,发行证书时,发行者根据指纹算法(哈希算法)计算整个证书的哈希值(指纹),并将其与证书放在一起. 当用户打开证书时,他还将基于指纹算法计算证书. 哈希值(指纹),如果它与初始值匹配,则表示证书未被修改,因为在修改证书的内容之后,基于证书内容计算的哈希值(指纹)将发生变化. 请注意ssl证书,此指纹将使用“ CA”证书颁发机构的签名算法进行加密ssl证书,并使用证书进行签名.
CA如何向我们颁发有效证书:
例如,为方便起见,假设我们的公司“ ABC公司”花费了1000元,并向证书颁发机构“ SecureTrust CA”申请了自己的公司“ ABC公司”的证书. 请注意,此证书颁发机构“ SecureTrust CA”是一些权威组织广泛认可和接受的证书颁发机构. 我们的操作系统已安装“ SecureTrust CA”证书. 在向我们颁发证书时,“ SecureTrust CA”在证书中向我们写入了诸如颁发者,公钥,主题,有效期,有效期之类的信息,然后使用指纹算法来计算这些数字证书内容的指纹. 使用自己的私钥对指纹和指纹算法进行加密,然后将其与证书的内容一起分发. 同时,“ SecureTrust CA”将给我们公司“ ABC Company”的私钥. 我们以1,000元的价格购买的证书的内容如下:
××××××××××××××××p证书内容的开始×××××××××××××××××××
颁发者: SecureTrust CA
主题: ABC公司

有效期: 某个日期
有效期: 某个日期
公钥: 一长串数字
...其他证书...
[SecureTrust CA的私钥| RSA] //这是此证书的“ SecureTrust CA”的数字签名,表明该证书确实是由他签发的. 如有任何问题,他将负责(从我们这里收取1000元,如果有,他将负责)是一个问题)
那么当我们使用https:
时到底发生了什么

我将用上图逐步说明:

1. 客户端向需要https访问的网站发起请求.
2. 服务器将证书发送给客户端以进行验证. 证书包含其公钥. 在这里,我们将专门讨论客户端如何验证对方发送的数字证书是否有效.
首先,在本地计算机上的此服务器证书上查找CA授权的根证书. 如果有,如果没有警告,请继续下一步. 使用CA的根证书的公钥来解密服务器证书的指纹和指纹算法. 获取指纹算法后,可使用该指纹算法计算服务器证书的摘要以获取指纹. 将计算出的指纹与从服务器证书解密的指纹进行比较,看它们是否相同,如果相同,则通过身份验证.
3. 验证成功后,客户端将生成一个随机字符串,然后使用服务器证书的公钥对其进行加密,然后再将其发送到服务器.
4. 服务器通过使用其私钥解密来获得此随机值.
5. 从那时起,服务器使用此随机值进行对称加密,并开始与客户端进行通信.
6. 客户端获取该值,并使用对称加密使用随机值对其进行解密.
为什么不一直使用非对称加密,而是在类似的握手之后开始使用对称加密算法进行https通信:
非对称加密的消耗以及所需的计算和时间比对称加密的消耗大得多,因此在进行握手和身份验证之后,服务器和客户端将根据约定的随机字符串开始对后续的数据传输进行加密.
参考:
数字证书和CA素养介绍
数字证书的原则
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-151589-1.html
那苏联人死两千万人
5%每年