TLS 如何保证网络通讯安全

2019-08-15  本文已影响0人  Danielme

加密基础知识

TLS 证书

在一般网络环境,特别是互联网环境,通讯双方线上明文交换公钥并不安全,也不太可能提前线下交换公钥。为了解决这个问题,需要引入PKI。当客户端发起访问请求的时候,服务端会发送包含了公钥信息的TLS证书给客户端。

TLS证书是如何保证公钥信息不被恶意修改呢?先来看看证书内容,信息包含了:

证书例子

通过对证书内容进行验证,可以确认公钥是否被修改。现代OS一般都内置了部分CA的公钥,客户端拿到服务端TLS证书后,验证过程如下:
1. 会根据证书的Issuer,查找到CA公钥
2. 根据证书的加密算法和CA公钥,对签名内容B解密得到证书的Hash值A
3. 根据证书中的签名算法,对证书内容进行计算,得到Hash值A1
4. 如果A和A1相等,证明证书的确是CA发布,并且没有修改
5. 验证证书的有效期、SAN(验证是否是客户端访问的域名、IP地址)等

在上述验证都通过后,客户端最终确认证书有效。利用公钥和服务端交换后续通讯临时的对称密钥。后续的通讯双方都使用该密钥进行加密解密,从而保证的网络的通讯安全。

上一篇下一篇

猜你喜欢

热点阅读