TLS/SSL技术是怎么应在网络中的?
SSL 是英文“Secure Sockets Layer”的缩写,中文叫做“安全套接层”。到了1999年,SSL 因为应用广泛,已经成为互联网上的事实标准。IETF 就在那年把 SSL 标准化。标准化之后的名称改为 TLS(是“Transport Layer Security”的缩写),中文叫做“传输层安全协议”。这两者可以视作同一个东西的不同阶段。解释完SSL/TLS,再解释一下SSL/TLS的作用。
http是超文本传输协议,信息是明文传输;https 则是具有安全性的ssl加密传输协议。HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL/TLS,因此加密的详细内容就需要SSL/TLS。
SSL/TLS协议提供的服务主要有:
认证用户和服务器,确保数据发送到正确的客户机和服务器;
加密数据以防止数据中途被窃取;
维护数据的完整性,确保数据在传输过程中不被改变。
简单来讲TLS/SSL技术是应用在HTTP上用来加密交互数据防止被人轻易抓取。
题主的问题应该是「TLS/SSL技术是怎么应用在网络中的」。
大家最常见的应用应该就是HTTPS了,HTTPS也就是HTTP over TLS。普通的HTTP是通过80端口通信的,而HTTPS是通过443端口,最明显的就是通常HTTPS协议的网站浏览器会给它标一个小绿锁(如果里面混杂了HTTP内容,比如说HTTP协议的js、css,或者浏览器认为证书不可信那就不会有小绿锁)。在HTTP通信之前需要先和服务器建立加密连接,然后在加密链路里进行HTTP通信,从而保障传输链路的安全,防止中间人攻击。目前由于国内网络环境的恶劣,频繁遭受到运营商的劫持,很多互联网公司也都全站接入HTTPS。
大致过程是这样的:
1、浏览器发送给服务器连接请求,服务器返回自己的证书给服务器。
2、浏览器向CA(证书权威机构)验证服务器证书,看是否是可信的CA签发的,是否过期等等,即验证证书的有效性。
3、浏览器发送自己的证书,还有对称加密算法等等信息作为协商,因为非对称加密算法对于大量内容加密的效率比较低,所以实际内容的加密还是使用对称加密算法的,而用非对称加密算法来加密对称算法所使用的密钥就可以了。
4、服务器收到浏览器发来的信息,将加密方案用浏览器公钥(包含在证书中)加密,发给浏览器。
5、浏览器用私钥解密消息,得知加密方案,选择一个会话密钥,用于对称加密,用服务器公钥加密后传给服务器。
6、服务器接收到浏览器的消息,用自己的私钥解密,得到会话密钥。
7、之后就是用会话密钥加密之后的HTTP通信过程了。
TLS/SSL的开源实现主要是OpenSSL,也被广泛应用于加密传输的程序中,比如说FTPS、IMAPS。