TLS是Https的安全基础,TLS协议可用于保护正常运行于TCP之上的任何应用协议的通信。TLS协议的有点在于它是与应用层协议无关的。高层的应用协议能透明地建立于TLS协议之上。
TLS协议既用到了公钥加密技术又用到了对称加密技术,TLS地握手协议非常有效地让客户和服务端之间完成相互之间地身份认证,其主要过程如下所述:
- 客户端向服务器传送TLS的协议的版本号、加密算法的种类,产生的随机数、以及其他服务器和客户端之间通信的各种信息。
- 服务端向客户端传送TLS协议的版本号、加密算法的种类、随机数以及其他相关信息,同时服务器还将客户端传送自己的证书。
- 客户利用服务器传过来的信息验证服务器的合法性。如果合法性没有通过,通信将断开;弱国合法性验证通过,将继续进行4。
- 用户随机产生一个用于后面通信的“对称密码”,然后用服务器的公钥对其加密,然后将加密后的“预主密码”传给服务器。
- 如果服务器要求客户的身份认证,用户可以建立一个随机数然后对其进行数据签名,将这个含有签名的随机数和客户自己的证书以及加密过的“预主密码”一起传给服务器
- 服务器和客户端用相同的主密码,一个对称密钥用于TLS协议的安全数据通讯的加解密通信。同时在TLS通信过程中还要完成数据通信的完整性,防止数据通信中的各种变化。