传输层安全


传输层安全 (正體)

Free Web Hosting with Website Builder

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

目录

介绍

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

TLS包含三个基本阶段:

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

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

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

工作方式

双向证书认证的SSL握手过程。

以下简要介绍SSL协议的工作方式。客户端要收发几个握手信号:

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

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

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

  • 所有的记录层数据均被编号,用于消息验证码效验。

外部链接

  • 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