前言
为了解决这一隐患,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为应用程序提供加密数据通道、使用40加密算法,如MD5和RSA 位密钥适用于商业信息的加密。
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系统采用对称加密、公私钥不对称加密及其密钥交换算法进行加密可靠的信息传输。
SSL3IETF.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不支持Forteza秘密交换、加密算法及客户证。
秘钥散列法用于新闻认证(HMAC):当信息在开放的网络上传输时,HMAC确保传输的信息不被篡改。HMAC比SSL3好.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协议匹配,还可以与HTTP协议相匹配(FTP、SMTP、POP、Telnet)协议搭配使用。
SSL/TLS协议通过3点解决HTTP原有的3大风险
加密传播,防盗听
验证机制,防篡改
CA证书解决了冒险