与SSL协议相比,TLS协议的优势是独立在应用程序外,高层协议能透明地分布在TLS协议之上,开发人员可在TLS协议之上继续构造自己的应用层协议,比SSL协议灵活得多。
因TLS和SSL v3.0间支持的加密算法不一样,两者不可互操作。
①版本号:TLS和SSL的记录格式一样,版本号的值不一样,TLS 1.0使用的为SSL v3.1。
②报文鉴别码:SSL v3.0与TLS的MAC算法及MAC计算范畴不一样,TLS用了RFC 2104规定的HMAC算法。SSL v3.0用的算法类似,它们的不同之处就在:SSL v3.0中,填充字节和密钥间用连接运算,而HMAC算法是异或运算。但是两者的安全强度是相同的。
③伪随机函数:TLS借助PRF的伪随机函数扩展密钥为数据块,这种举措更安全。
④报警代码:TLS支持差不多全数的SSL v3.0报警代码,且TLS补充规定了许多报警代码,如解密失败、记录溢出、未知CA、拒绝访问等。
⑤密文族和客户证书:SSL v3.0与TLS有些许差别,即TLS不支持Fortezza密钥交换、加密算法和客户证书。
⑥certificate_verify和finished消息:SSL v3.0与TLS在此消息计算MD5与SHA-1散列码时,计算的输入有一些差别,不过安全性差不多。
⑦加密计算:在计算主密值时,TLS和SSL v3.0用的手段不一样。
⑧填充:用户数据在加密前得扩大的填充字节,在SSL中,填充后的数据长度要达到密文块长度的最小整数倍。而在TLS中,填充后的数据长度是密文块长度的任意整数倍,这种方式可预防基于分析攻击报文长度。
TLS的关键目的为让SSL更安全,及协议的规范进一步精确、完备。TLS在SSL v3.0的基础上,还有如下增强内容。
①更安全的MAC算法。
②更严密的警报。
③“灰色区域”规范的更清楚的定义。
TLS对于安全性的改进有如下几点:
①对消息认证用密钥散列法:TLS用“消息认证代码的密钥散列法”,当在开放的网络上传送记录时,此代码保证其不会被变更,SSL v3.0也可消息认证,不过HMAC相对于SSL v3.0的MAC功能更安全。
②增强的伪随机功能(PRF):PRF生成密钥数据。在TLS中,HMAC定义PRF。PRF借助两种散列算法使它安全,若任一算法暴露了,只要第二种算法未暴露,则数据仍安全。
③改进的已完成消息验证:TLS与SSL v3.0均向两个端点给出完成了的消息,此消息认证交换的消息未变换更新。然而,TLS把这个完成了的消息置于PRF与HMAC值上面,这也安全于SSL v3.0。
④一致证书处理:不同于SSL v3.0,TLS尝试规定一定要在TLS之间完成交换的证书类型。
⑤特定警报消息:TLS有更多的指定与附加警报,来明确示意任意一个会话端点检测出来的问题。TLS还记录应发送一些警报的时间。