传输层安全


传输层安全 (正體)

安全套接层(SSL)及其继任者传输层安全(TLS)是在互联网上提供安全保密的通讯协议,为诸如网站电子邮件、网上传真等等数据传输进行保密。SSL 3.0和TLS 1.0有轻微差别,但两种规范其实大致相同。

目录

介绍

TLS利用密钥算法互联网上提供端点身份认证通讯保密,其基础是公钥基础设施(PKI)。不过在实现的典型例子中,只有网络服务者被可靠身份验证,而其客户端则不一定。这是因为公钥基础设施普遍商业运营,电子签名证书要花大钱购买,普通大众很难买的起证书。协议的设计在某种程度上能够使客户端/服务器应用程序通讯本身预防窃听、干扰(Tampering)、和消息伪造。

TLS包含三个基本阶段:

  1. 对等协商支持的密钥算法
  2. 基于公钥加密交换对称密钥和基于证书的身份认证
  3. 基于对称密钥的数据传输保密

在第一阶段,客户端与服务器协商所用密码算法。 当前广泛实现的算法选择如下:

  • 公钥加密系统:RSA、Diffie-Hellman、DSA及Fortezza;
  • 对称密钥系统:RC2、RC4、IDEADES、Triple DES及AES
  • 单向散列函数:MD5SHA

它如何工作?

双向证书认证的SSL握手过程。  (准确性存疑)
双向证书认证的SSL握手过程。 (准确性存疑)

首先,TLS的记录层(Record layer)用于封装更高层的HTTP等协议。记录层数据可以被随意压缩、加密,与消息验证码(MAC)打包在一起。每个记录层包都有一个content_type段用以记录更上层用的协议。

客户端要收发几个握手信号:

  • 发送一个ClientHello消息,说明它支持的密码算法列表、压缩方法及最高协议版本,也发送稍后将被使用的随机数。
  • 然后收到一个ServerHello消息,包含服务器选择的连接参数,源自客户端初期所提供的ClientHello
  • 当双方知道了连接参数,客户端与服务器交换证书(依靠被选择的公钥系统)。这些证书通常基于X.509,不过已有草案支持以OpenPGP为基础的证书。
  • 服务器请求得到客户端的证书有可能成功,所以连接可以是相互的身份认证。
  • 客户端与服务器通过加密通道协商一个共同的「主密钥」(客户端与服务器计算随机数),这通过精心谨慎设计的伪随机数函数实现。结果可能使用Diffie-Hellman交换,或简单的公钥加密,双方各自用私钥解密。所有其他关键数据的加密均使用这个「主密钥」。

TLS/SSL有多样的安全保护措施:

  • 所有的记录层数据均被编号,序号用在消息验证码(MAC)中。

外部链接

  • SSL/TLS/WTLS原理

参考

本文参考了依GFDL授权发布的《自由线上电脑词典》(FOLDOC)。
This article was originally based on material from the Free On-line Dictionary of Computing and is used under the GFDL.

! __







Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History