资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
SSL/TLS介绍SSL全称Secure Socket Layer(安全套接字层),TLS全称Transport Layer Security(传输层安全协议)。SSL是TLS的前身,是一种安全协议,目的是为互联网通信,提供安全及数据完整性保障。SSL协议包含SSL记录协议和SSL握手协议。SSL记录协议(SSL Record Protocol)建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol)建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。SSL协议位于TCP/IP协议与各种应用层协议之间,层次示意图如下,SLL/TLS安全特性1. 数据的保密性所有数据都是加密传播,可以公开传送,第三方无法窃听。2. 数据的完整性具有校验机制,保证数据在传输过程中没有被篡改过。3. 安全验证配备身份证书,可防止身份被冒充。SSL/TLS运行过程SSL/TLS基本运行过程如下,(1) 客户端向服务器端索要并验证公钥。(2) 双方协商生成对话密钥。(3) 双方采用对话密钥进行加密通信。过程的前两步,又称为握手阶段(handshake),涉及四次通信,详细示意图如下,1. ssl客户端利用client hello消息将本身支持的ssl 版本、加密算法等信息发送给ssl服务器。2. ssl服务器收到client hello信息并确定本次通信采用的ssl版本和加密算法套件,利用server hello信息回复给ssl客户端。3. ssl服务器利用certificate信息将本身公钥的数据签名传给ssl客户端。4. ssl服务器发送server hello done消息,通知ssl客户端版本和加密套件协商结束,并开始进行秘钥交换。5.当ssl客户端验证ssl服务器的证书合法后,利用服务器的证书中的公钥加密ssl客户端随机生成的premaster secret,并透过client key exchange消息送给ssl服务器。6. ssl客户端发送change cipher spec消息,通知ssl服务器后续报文将采用协商好的秘钥和加密套件进行加密。7. ssl客户端计算已交互的握手消息的hash值,利用协商好的秘钥和加密算法处理hash值,并透过finished消息发送给ssl服务器。ssl服务器利用同样的方法计算已交互的握手消息的hash值,并与finished消息的解密结果比较,如果两者相同,则证明秘钥和加密套件协商成功。8. ssl服务器发送change cipher spec信息,通知ssl客户端后续传输将采用协商好的秘钥和加密套件进行加密。9. ssl服务器计算已交互的握手信息的hash值,利用协商好的秘钥和加密套件处理hash值,并透过finished消息发送给ssl用户端。ssl客户端利用同样的方法计算已交互的握手消息的hash值,并与finished消息的解密结果比较,如果两者相同,且mac值验证成功,则证明秘钥和加密套件协商成功,则可以判断ssl服务器是数字证书的拥有者,即ssl服务器身份验证成功,这是因为只有拥有私钥的ssl服务器才能从client key exchange消息中解密得到premaster secret,从而间接地实现了ssl用户端对ssl服务器的身份验证。SSL相关1. HTTPS由SSL+HTTP协议构建的带有加密传输、身份认证的网络协议。2. SSL VPN采用SSL协议来实现远程接入的VPN技术。3. SSL 加密算法(1) 对称加密加密和解密使用同一个密钥,常用的算法有:DES、RC4、AES等。(2) 非对称加密加密和解密使用不同的密钥,其中公钥是公开的,不需要保密,私钥为私人所有,需要保密。常用的算法有:RSA、D-H、ECC等。4. SSL证书由受信任的数字证书颁发机构CA,在验证服务器身份后颁发。具有服务器身份验证和数据传输加密功能。SSL证书认证过程示意图如下,SSL与TLS的差异1. 版本号:TLS记录格式与SSL记录格式相同,但版本号的值不同,TLS的版本1.0使用的版本号为SSLv3.1。2. 报文鉴别码:SSLv3.0和TLS的MAC算法及MAC计算的范围不同。TLS使用了RFC-2104定义的HMAC算法。SSLv3.0使用了相似的算法,两者差别在于SSLv3.0中,填充字节与密钥之间采用的是连接运算,而HMAC算法采用的是异或运算。但是两者的安全程度是相同的。3. 伪随机函数:TLS使用了称为PRF的伪随机函数来将密钥扩展成数据块,是更安全的方式。4. 报警代码:TLS支持几乎所有的SSLv3.0报警代码,而且TLS还补充定义了很多报警代码,如解密失败(decryption_failed)、记录溢出(record_overflow)、未知CA(unknown_ca)、拒绝访问(access_denied)等。5. 密文族和客户证书:SSLv3.0和TLS存在少量差别,即TLS不支持Fortezza密钥交换、加密算法和客户证书。6. certificate_verify和finished消息:SSLv3.0和TLS在用certificate_verify和finished消息计算MD5和SHA-1散列码时,计算的输入有少许差别,但安全性相当。7. 加密计算:TLS与SSLv3.0在计算主密值(master secret)时采用的方式不同。8. 填充:用户数据加密之前需要增加的填充字节。在SSL中,填充后的数据长度要达到密文块长度的最小整数倍。而在TLS中,填充后的数据长度可以是密文块长度的任意整数倍(但填充的最大长度为255字节),这种方式可以防止基于对报文长度进行分析的攻击。TLS对比SSL在安全性上的改进1. 对于消息认证使用密钥散列法:TLS 使用“消息认证代码的密钥散列法”(HMAC),当记录在开放的网络(如因特网)上传送时,该代码确保记录不会被变更。SSLv3.0还提供键控消息认证,但HMAC比SSLv3.0使用的(消息认证代码)MAC 功能更安全。2. 增强的伪随机功能(PRF):PRF生成密钥数据。在TLS中,HMAC定义PRF。PRF使用两种散列算法保证其安全性。如果任一算法暴露了,只要第二种算法未暴露,则数据仍然是安全的。3. 改进的已完成消息验证:TLS和SSLv3.0都对两个端点提供已完成的消息,该消息认证交换的消息没有被变更。然而,TLS将此已完成消息基于PRF和HMAC值之上,这也比SSLv3.0更安全。4. 一致证书处理:与SSLv3.0不同,TLS试图指定必须在TLS之间实现交换的证书类型。5. 特定警报消息:TLS提供更多的特定和附加警报,以指示任一会话端点检测到的问题。TLS还对何时应该发送某些警报进行记录。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号