TLS疑点杂记

客户端拿到证书链后有哪些操作 

1. 验证证书是否过期,证书中会包含颁发日期和过期日期,不过这里有个问题是怎么验证证书的过期时间是有效的?

2. 验证证书是否吊销,有两种做法,第一是CRL即证书吊销列表。证书被吊销后会被记录在CRL中,CA会定期发布CRL。浏览器可以去CRL服务器去下载这个列表来检查证书是否被吊销了,缺点显而易见就是不实时以及下载列表以及比对非常耗时。第二是OCSP,来代替CRL,它是一个协议,规定了客户端如果发送一个请求,客户端带着证书去查询,OCSP服务器会给出该证书的相关信息。

3. 验证证书链是否合法,即验证每层证书是否是上一级证书颁发的,一直到根证书。一般所有CA机构的根证书(包括二级证书)列表都会保存在操作系统或者浏览器中。

4. 数字签名的验证,服务器会给客户端发送一个数字签名,也就是对证书内容散列算出来的,而浏览器又可以拿到CA的公钥(内置在操作系统或浏览器),于是用公钥对证书内容同样的散列,结果与数字签名比对。

客户端和服务器如何磋商对称加密使用的密钥

早期的TLS协议会用三个random随机数来生成一个密钥,这个做法会有一些隐患,比如斯诺登事件,具体可以google。现在主流的做法是用DHCE椭圆加密算法,这个算法会有一些中间参数,在Certificates和Server Hello Done中间发送给客户端,客户端会根据这些参数用算法生成一对公私钥,并将公钥发送给服务器端。服务器用自己的私钥以及客户端的公钥生成一个密钥,同理客户端用服务器的公钥以及自己的私钥生成一个密钥,而DHCE算法可以保证两边生成的密钥是一致的。

如何生成一个免费的tls证书

推荐Let‘s Encrypt,参考:http://guitoo.cc/wordpress/2018/07/05/lets-encryp-https/

 

Leave a comment

电子邮件地址不会被公开。 必填项已用*标注