一、使用SSL/TLS的好处
不使用加密的网络通信有三大风险:
1.窃听风险:第三方可以获取通信内容
2.篡改风险:第三方可以修改通信内容
3.冒充风险:第三方可以冒充他人身份参与通信
SSL/TLS可以做到:
1.所有的信息都是加密传播,第三方无法窃听
2.具有校验机制,一旦被篡改,通信双方会立即发现
3.配备身份证书,防止身份冒充
二、SSL/TLS的运行过程
1. 客户端向服务端索要并验证公钥
2. 双方协商生成会话密钥
3.双方采用会话密钥进行加密通信
其中,第一二步称为握手阶段,握手阶段时使用的是非对称加密。握手结束后生成一个对话密钥,然后
在整个传输过程使用对称加密进行传输。
三、SSL/TLS握手详解
握手阶段涉及四次通信。
1. 客户端发出请求(ClientHello),并提供一下信息
a)支持的SSL/TLS协议版本
b)支持的加密算法
c)支持的压缩算法
d)产生的一个随机数random_C
2.接受到客户端请求后,服务端回应信息
a)确定使用的SSL/TLS协议版本
b)确定使用的加密算法
c)确定使用的压缩算法
d)产生的一个随机数random_S
e)服务端的证书
f)如果要验证客户端,还有要求客户端证书的请求
3.客户端收到回应后,验证服务端证书,如果没问题,发送以下信息
a)产生一个随机数pre-master-key,并且使用服务端数字证书中的公钥加密
b)编码改变通知,表示随后的信息都由双方商定的加密方法和密钥发送
c)如果服务端要求验证证书,发送自己的证书
d)客户端握手结束通知
4.服务端收到信息,如果有客户端证书,先验证客户端的证书,然后使用自己的私钥对随机数进行解密,
然后用双方协商的加密方法生成本次通话使用的会话密钥session-key,然后回应
a)编码改变通知
b)服务端握手结束通知
握手结束,客户端和服务端都有session-key,接下来使用sessioon-key对称加密数据,进行传输。此后
便是传输阶段。
补充:
1. 对称加密和非对称加密的区别?
对称加密指的是加密和解密使用的是同一串密钥,常见的对称加密算法有:DES、AES等。而非对称加密
指的是加密和解密使用的是不同密钥,一把是公钥,公开的,用于加密;另一把是私钥,用于解密。公钥加密
的信息,只有私钥能解密。反之,私钥加密的信息,只有公钥能解密。