前言
HTTP在传输数据时使用的是明文是不安全的,为了解决这一隐患网景公司(Netscape)推出了SSL安全套接字协议层。
SSL是基于HTTP之下TCP之上的一个协议层,是基于HTTP标准并对TCP传输数据时进行加密,所以HPPTS是HTTP+SSL/TCP的简称,Https默认使用端口443。
SSL
Secure Socket Layer,安全套接字层。SSL是Netscape开发的位于可靠的面向连接的网络层协议(如TCP/IP)和应用层协议之间的一种协议。
SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。现在有1,2,3 ,总共3个版本,现在基本使用3.0。
SSL为应用程序提供加密数据通道,它采用了RC4、MD5以及RSA等加密算法,使用40 位的密钥,适用于商业信息的加密。
SSL协议组成:SSL记录协议+ SSL握手协议
记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
SSL协议的意义
认证用户和服务器,确保数据发送到正确的客户机和服务器,互联网连接安全;
加密数据以防止数据中途被窃取;
维护数据的完整性,确保数据在传输过程中不被改变。
SSL协议认证流程
客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接
服务器根据客户的信息确定是否需要生成新的秘钥对,如需要则服务器在响应客户的“Hello”信息时将包含公钥
客户根据收到的服务器响应信息,产生一个密钥对,并用服务器的公钥加密后将自己的公钥传给服务器;
服务器用私钥解密客户端的公钥,并返回给客户一个用客户端公钥加密的信息,以此让客户认证服务器。
TLS
(Transport Layer Security,安全传输层协议)。TLS是IETF(Internet Engineering Task Force,Internet工程任务组)制定的一种新的协议。
TLS/SSL是一种加密通道的规范。它利用对称加密、公私钥不对称加密及其密钥交换算法,CA系统进行加密且可信任的信息传输。
IETF对SSL3.0进行了标准化,并添加了少数机制(但是几乎和SSL3.0无差异),标准化后的IETF更名为TLS1.0,可以说TLS就是SSL的新版本3.1。 总共有1.0,1.1,1.2三个版本,默认使用1.0
TLS协议组成:TLS记录协议+ TLS握手协议
TLS是独立于应用层协议,如何启动 TLS 握手协议以及如何解释交换的认证证书的决定权留给协议的设计者和实施者来判断。
TLS 记录协议:是一种分层协议,支持信息传输、将数据分段到可处理块、压缩数据、应用MAC 、加密以及传输结果等。对接收到的数据进行解密、校验、解压缩、重组等,然后将它们传送到高层客户机
TLS 握手协议:由三个子协议组构成,允许对等双方在记录层的安全参数上达成一致、自我认证、例示协商安全参数、互相报告出错条件。
TLS记录协议提供的连接安全性具有两个基本特性:
私有——对称加密用以数据加密(DES、RC4等)。对称加密所产生的密钥对每个连接都是唯一的,且此密钥基于另一个协议(如握手协议)协商。记录协议也可以不加密使用。
可靠——信息传输包括使用密钥的MAC进行信息完整性检查。
SSL和TLS的区别
TLS的产生是为了让SSL更安全,使协议更加精确和完善。TLS在SSL3.0基础上增强了其他内容。它们的最主要的差别是所支持的加密算法不同,TLS和SSL3.0不能互相操作,TLS相当于SSL 3.1
TLS的记录格式与SSL一样,但版本号不同,TLS的版本使用的是SSL 3.1。TLS就是以3.0为基础定义的。
报文鉴别码不一样。TLS使用了RFC-2104定义的HMAC算法,SSL3.0使用了类似的算法,虽然安全程度一样,但具体算法不一样,填充字节和秘钥之间采用的是连接运算,而HMAC采用的是异或运算。
伪随机数函数不一样。TLS使用了PRF伪随机函数将秘钥扩展成数据块,PRF使用两种散列算法保证其安全性,只有两种算法都暴露数据才会不安全。
TLS有更严密的警报。除了SSL的报警代码,TLS还补充了很多报警代码,如解密失败,记录溢出,拒绝访问等
密文和客户证书:TLS不支持Fortezza秘钥交换、加密算法和客户证书。
对于消息的认证采用秘钥散列法(HMAC):当消息在开放的网络上传输时,通过HMAC确保传输的信息不会被篡改。HMAC比SSL3.0的消息认证法MAC更安全。
增强的伪随机公能(PRF):HMAC定义PRF,用于生成秘钥数据。PRF使用两种散列算法保证其安全性,只有两种算法都暴露数据才会不安全。
总结
在SSL更新到3.0时,IETF对SSL3.0进行了标准化,并添加了少数机制,标准化后的IETF更名为TLS1.0(Transport Layer Security 安全传输层协议),可以说TLS就是SSL的新版本3.1。也可以将TLS看作SSL的升级版
SSL/TLS协议不仅可以和Http协议搭配,还可以和(FTP、SMTP、POP、Telnet)协议搭配使用。
SSL/TLS协议通过3点解决Http原有的3大风险
加密传播,防窃听
校验机制,防篡改
CA证书,解决冒充风险
标签:TLS,协议,加密,有何,SSL,SSL3.0,服务器 From: https://blog.51cto.com/u_16110904/6505349