SSL特点

SSL技术长处

  1. 提供较高的安全性保证

    SSL 利用数据加密、身份验证和消息完整性验证机制。保证网络上传输数据的安全性。

  2. 支持各种应用层协议

    尽管 SSL 设计的初衷是为了解决万维网安全性问题,可是因为 SSL 位于应用层和传输层之间。它能够为不论什么基于 TCP 等可靠连接的应用层协议提供安全性保证。

  3. 部署简单

    眼下 SSL 已经成为网络中用来鉴别站点和网页浏览者身份,在浏览器使用者及 Webserver 之间进行加密通信的全球化标准。

    SSL 协议已被集成到大部分的浏览器中,如 IE、Netscape、Firefox 等。这就意味着差点儿随意一台装有浏览器的计算机都支持 SSL 连接。不须要安装额外的 client 软件。

协议安全机制

SSL 协议实现的安全机制包含:

  1. 传输数据的机密性:利用对称密钥算法对传输的数据进行加密。
  2. 身份验证机制:基于证书利用数字签名方法对 server 和 client 进行身份验证,当中 client 的身份验证是可选的。
  3. 消息完整性验证:消息传输过程中使用 MAC 算法来检验消息的完整性。

传输数据的机密性

网络上传输的数据非常 easy 被非法用户窃取,SSL 採用在通信两方之间建立加密通道的方法保证传输数据的机密性。

所谓加密通道,是指发送方在发送数据前,使用加密算法和加密密钥对数据进行加密,然后将数据发送给对方。接收方接收到数据后,利用解密算法和解密密钥从密文中获取明文。没有解密密钥的第三方,无法将密文恢复为明文,从而保证传输数据的机密性。

加解密算法分为两类:

  1. 对称密钥算法:数据加密和解密时使用同样的密钥。
  2. 非对称密钥算法:数据加密和解密时使用不同的密钥,一个是公开的公钥,一个是由用户秘密保存的私钥。

利用公钥(或私钥)加密的数据仅仅能用对应的私钥(或公钥)才干解密。

与非对称密钥算法相比。对称密钥算法具有计算速度快的长处,通经常使用于对大量信息进行加密(如对全部报文加密);而非对称密钥算法,一般用于数字签名和对较少的信息进行加密。

SSL 加密通道上的数据加解密使用对称密钥算法。眼下主要支持的算法有 DES、3DES、AES 等,这些算法都能够有效地防止交互数据被窃听。

对称密钥算法要求解密密钥和加密密钥全然一致。因此,利用对称密钥算法加密数据传输之前。须要在通信两端部署同样的密钥。

身份验证机制

电子商务和网上银行等应用中必须保证要登录的 Webserver 是真实的,以免重要信息被非法窃取。SSL 利用数字签名来验证通信对端的身份。

非对称密钥算法能够用来实现数字签名。因为通过私钥加密后的数据仅仅能利用相应的公钥进行解密,因此依据解密是否成功,就能够推断发送者的身份。如同发送者对数据进行了 “签名”。

比如。Alice 使用自己的私钥对一段固定的信息加密后发给 Bob,Bob 利用 Alice 的公钥解密,假设解密结果与固定信息同样。那么就能够确认信息的发送者为 Alice,这个过程就称为数字签名。

SSLclient 必须验证 SSLserver 的身份,SSLserver 是否验证 SSLclient 的身份。则由 SSLserver 决定,SSLclient 和 SSLserver 的身份验证过程。

使用数字签名验证身份时。须要确保被验证者的公钥是真实的,否则。非法用户可能会冒充被验证者与验证者通信。如下图所看到的。Cindy 冒充 Bob,将自己的公钥发给 Alice,并利用自己的私钥计算出签名发送给 Alice,Alice 利用 “Bob” 的公钥(实际上为 Cindy 的公钥)成功验证该签名,则 Alice 觉得 Bob 的身份验证成功,而实际上与 Alice 通信的是冒充 Bob 的 Cindy。SSL 利用 PKI 提供的机制保证公钥的真实性。

02_SSL特点.png

消息完整性验证

为了避免网络中传输的数据被非法篡改,SSL 利用基于 MD5 或 SHA 的 MAC 算法来保证消息的完整性。

MAC 算法是在密钥參与下的数据摘要算法,能将密钥和随意长度的数据转换为固定长度的数据。利用 MAC 算法验证消息完整性的过程如图2所看到的。

发送者在密钥的參与下,利用 MAC 算法计算出消息的 MAC 值。并将其加在消息之后发送给接收者。接收者利用相同的密钥和 MAC 算法计算出消息的 MAC 值。并与接收到的 MAC 值比較。假设二者相同。则报文没有改变;否则,报文在传输过程中被改动,接收者将丢弃该报文。

03_SSL特点.png

MAC 算法具有例如以下特征,使其可以用来验证消息的完整性:

  1. 消息的不论什么改变,都会引起输出的固定长度数据产生变化。通过比较 MAC 值,可以保证接收者可以发现消息的改变。
  2. MAC 算法须要密钥的參与。因此没有密钥的非法用户在改变消息的内容后,无法加入正确的 MAC 值。从而保证非法用户无法任意改动消息内容。

MAC 算法要求通信两方具有同样的密钥,否则 MAC 值验证将会失败。因此,利用 MAC 算法验证消息完整性之前,须要在通信两端部署同样的密钥。

利用非对称密钥算法保证密钥本身的安全

对称密钥算法和 MAC 算法要求通信两方具有同样的密钥。否则解密或 MAC 值验证将失败。因此。要建立加密通道或验证消息完整性,必须先在通信两方部署一致的密钥。

SSL 利用非对称密钥算法加密密钥的方法实现密钥交换,保证第三方无法获取该密钥。如下图所看到的,SSLclient(如 Web 浏览器)利用 SSLserver(如 Webserver)的公钥加密密钥,将加密后的密钥发送给 SSLserver。仅仅有拥有相应私钥的 SSLserver 才干从密文中获取原始的密钥。SSL 通常採用 RSA 算法加密传输密钥。

04_SSL特点.png

说明

实际上,SSLclient 发送给 SSLserver 的密钥不能直接用来加密数据或计算 MAC 值。该密钥是用来计算对称密钥和 MAC 密钥的信息,称为 premaster secret。SSLclient 和 SSLserver 利用 premaster secret 计算出同样的主密钥(master secret)。再利用 master secret 生成用于对称密钥算法、MAC 算法等的密钥。

premaster secret 是计算对称密钥、MAC算法密钥的关键。用来实现密钥交换的算法称为密钥交换算法。非对称密钥算法 RSA 用于密钥交换时,也能够称之为密钥交换算法。

利用非对称密钥算法加密密钥之前,发送者须要获取接收者的公钥,并保证该公钥确实属于接收者。否则。密钥可能会被非法用户窃取。如上图所看到的。Cindy 冒充 Bob,将自己的公钥发给 Alice。Alice 利用 Cindy 的公钥加密发送给 Bob 的数据。Bob 因为没有相应的私钥无法解密该数据,而 Cindy 截取数据后,能够利用自己的私钥解密该数据。SSL 利用 PKI 提供的机制保证公钥的真实性。

利用PKI保证公钥的真实性

PKI 通过数字证书来公布用户的公钥,并提供了验证公钥真实性的机制。数字证书(简称证书)是一个包括用户的公钥及其身份信息的文件,证明了用户与公钥的关联。

数字证书由权威机构 CA 签发,并由 CA 保证数字证书的真实性。

SSLclient 把密钥加密传递给 SSLserver 之前,SSLserver 须要将从 CA 获取的证书发送给 SSLclient,SSLclient 通过 PKI 推断该证书的真实性。假设该证书确实属于 SSLserver,则利用该证书中的公钥加密密钥,发送给 SSLserver。

验证 SSLserver/SSLclient 的身份之前,SSLserver/SSLclient 须要将从 CA 获取的证书发送给对端。对端通过 PKI 推断该证书的真实性。

假设该证书确实属于 SSLserver/SSLclient,则对端利用该证书中的公钥验证 SSLserver/SSLclient 的身份。