WordPress 中文文档

传输层安全

From WordPress Chinese

(重定向自SSL)
Jump to: navigation, search

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


介绍

SSL利用密钥算法互联网上提供端点身份认证通讯保密。在典型例子中,只有服务器被可靠身份认证(即其验证被确保),客户端踪迹不一定经可靠认证;相互间的身份认证需要公钥基础设施(PKI)设置于客户端中。协议的设计在某种程度上能够使客户端/服务器应用程序通讯本身预防窃听Tampering、和消息伪造

SSL包含三个基本阶段:

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

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

它如何工作?

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

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

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

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

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