传输层安全
传输层安全
传输层安全(Transport Layer Security,TLS)其新继任者安全套接层(Security Socket Layer,SSL)在互联网上提供保密安全信道的加密协议,为诸如网站、电子邮件、网上传真等等数据传输进行保密。SSL 3.0和TLS 1.0有轻微差别,但两种规范其实大致相同。
工作原理
TLS利用密钥算法在互联网上提供端点身份认证与通讯保密,其基础是公钥基础设施(PKI)。不过在实现的典型例子中,只有网络服务者被可靠身份验证,而其客户端则不一定。这是因为公钥基础设施普遍商业运营,电子签名证书要花大钱购买,普通大众很难买的起证书。协议的设计在某种程度上能够使客户端/服务器应用程序通讯本身预防窃听、干扰(Tampering)、和消息伪造。
TLS包含三个基本阶段:
对等协商支持的密钥算法
基于公钥加密交换对称密钥和基于证书的身份认证
基于对称密钥的数据传输保密
在第一阶段,客户端与服务器协商所用密码算法。 当前广泛实现的算法选择如下:
公钥加密系统:RSA、Diffie-Hellman、DSA及Fortezza
对称密钥系统:RC2、RC4、IDEA、DES、Triple DES及AES;
单向散列函数:MD5及SHA。
工作方式
双向证书认证的SSL握手过程。
首先,TLS的记录层(Record layer)用于封装更高层的HTTP等协议。记录层数据可以被随意压缩、加密,与消息验证码(MAC)打包在一起。每个记录层包都有一个content_type段用以记录更上层用的协议。
客户端要收发几个握手信号:
发送一个ClientHello消息,说明它支持的密码算法列表、压缩方法及最高协议版本,也发送稍后将被使用的随机数。
然后收到一个ServerHello消息,包含服务器选择的连接参数,源自客户端初期所提供的ClientHello。
当双方知道了连接参数,客户端与服务器交换证书(依靠被选择的公钥系统)。这些证书通常基于X.509,不过已有草案支持以OpenPGP为基础的证书。
服务器请求得到客户端的证书有可能成功,所以连接可以是相互的身份认证
客户端与服务器通过加密通道协商一个共同的“主密钥”(客户端与服务器计算随机数),这通过精心谨慎设计的伪随机数函数实现。结果可能使用Diffie-Hellman交换,或简单的公钥加密,双方各自用私钥解密。所有其他关键数据的加密均使用这个“主密钥”。
TLS/SSL有多样的安全保护措施:
所有的记录层数据均被编号,序号用在消息验证码(MAC)中。
参考资料
最新修订时间:2024-06-23 11:18
目录
概述
工作原理
参考资料