您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > SSLTLS提供网络安全通道
SSL/TLS介绍SSL全称SecureSocketLayer(安全套接字层),TLS全称TransportLayerSecurity(传输层安全协议)。SSL是TLS的前身,是一种安全协议,目的是为互联网通信,提供安全及数据完整性保障。SSL协议包含SSL记录协议和SSL握手协议。SSL记录协议(SSLRecordProtocol)建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL握手协议(SSLHandshakeProtocol)建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。SSL协议位于TCP/IP协议与各种应用层协议之间,层次示意图如下,SLL/TLS安全特性1.数据的保密性所有数据都是加密传播,可以公开传送,第三方无法窃听。2.数据的完整性具有校验机制,保证数据在传输过程中没有被篡改过。3.安全验证配备身份证书,可防止身份被冒充。SSL/TLS运行过程SSL/TLS基本运行过程如下,(1)客户端向服务器端索要并验证公钥。(2)双方协商生成对话密钥。(3)双方采用对话密钥进行加密通信。过程的前两步,又称为握手阶段(handshake),涉及四次通信,详细示意图如下,SSL客户端SSL服务器(1)ClientHello(2)ServerHello(3)Certificate(4)ServerHelloDone(5)ClientKeyExchange(6)ChangeCiperSpec(7)Finished(8)ChangeCiperSpec(9)Finished1.ssl客户端利用clienthello消息将本身支持的ssl版本、加密算法等信息发送给ssl服务器。2.ssl服务器收到clienthello信息并确定本次通信采用的ssl版本和加密算法套件,利用serverhello信息回复给ssl客户端。3.ssl服务器利用certificate信息将本身公钥的数据签名传给ssl客户端。4.ssl服务器发送serverhellodone消息,通知ssl客户端版本和加密套件协商结束,并开始进行秘钥交换。5.当ssl客户端验证ssl服务器的证书合法后,利用服务器的证书中的公钥加密ssl客户端随机生成的premastersecret,并透过clientkeyexchange消息送给ssl服务器。6.ssl客户端发送changecipherspec消息,通知ssl服务器后续报文将采用协商好的秘钥和加密套件进行加密。7.ssl客户端计算已交互的握手消息的hash值,利用协商好的秘钥和加密算法处理hash值,并透过finished消息发送给ssl服务器。ssl服务器利用同样的方法计算已交互的握手消息的hash值,并与finished消息的解密结果比较,如果两者相同,则证明秘钥和加密套件协商成功。8.ssl服务器发送changecipherspec信息,通知ssl客户端后续传输将采用协商好的秘钥和加密套件进行加密。9.ssl服务器计算已交互的握手信息的hash值,利用协商好的秘钥和加密套件处理hash值,并透过finished消息发送给ssl用户端。ssl客户端利用同样的方法计算已交互的握手消息的hash值,并与finished消息的解密结果比较,如果两者相同,且mac值验证成功,则证明秘钥和加密套件协商成功,则可以判断ssl服务器是数字证书的拥有者,即ssl服务器身份验证成功,这是因为只有拥有私钥的ssl服务器才能从clientkeyexchange消息中解密得到premastersecret,从而间接地实现了ssl用户端对ssl服务器的身份验证。SSL相关1.HTTPS由SSL+HTTP协议构建的带有加密传输、身份认证的网络协议。2.SSLVPN采用SSL协议来实现远程接入的VPN技术。3.SSL加密算法(1)对称加密加密和解密使用同一个密钥,常用的算法有:DES、RC4、AES等。(2)非对称加密加密和解密使用不同的密钥,其中公钥是公开的,不需要保密,私钥为私人所有,需要保密。常用的算法有:RSA、D-H、ECC等。4.SSL证书由受信任的数字证书颁发机构CA,在验证服务器身份后颁发。具有服务器身份验证和数据传输加密功能。SSL证书认证过程示意图如下,SSL证书版本序列号签名算法颁发者使用者有效期公钥数字签名认证过程信息摘要信息摘要哈希算法CA公钥解密验证信息摘要是否相同,相同则认证成功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在计算主密值(mastersecret)时采用的方式不同。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还对何时应该发送某些警报进行记录。
本文标题:SSLTLS提供网络安全通道
链接地址:https://www.777doc.com/doc-2860655 .html