SSL协议的概述

  提供网络安全服务可以在不同层次提供。通用的解决方法是在网络层使用 IPSec,IPSec对于最终用户和应用程序是透明的。另一个比较通用的解决方法是在TCP上实现安全性,在这一级,有两种实现选择,一是SSL(或TLS)可以作为基本协议族的一个部分提供,因此对应用程序透明,二是将SSL嵌入到软件中,如嵌入到Web浏览器与Web服务器。与应用有关的安全服务也可以被嵌入到特定的应用程序中,如安全电子交易(SET)。
HTTP
FTP
SMTP
 
S/MIME
PGP
SET
HTTP
FTP
SMTP
SSL or TLS
Kerberos
SMTP
HTTP
TCP
TCP
UDP
TCP
IP/IPSec
IP
IP
图13.1 TCP/IP协议栈中安全机制的位置
Netscape 公司推出 Web 浏览器时,提出了 SSL ( Secure Socket Layer )安全通信协议, SSL 协议目前已成为 Internet 上保密通讯的工业标准。现行 Web 浏览器普遍将 HTTP 和 SSL 相结合,来实现安全通信。
IETF ( [url]www.ietf.org[/url] )将 SSL 作了标准化,即 RFC2246 ,并将其称为 TLS ( Transport Layer Security ),从技术上讲, TLS1.0 与 SSL3.0 的差别非常微小。
在 WAP的环境下,由于手机及手持设备的处理和存储能力有限,wap论坛([url]www.wapforum.org[/url])在TLS的基础上做了简化,提出了WTLS协议(Wireless Transport Layer Security),以适应无线的特殊环境。
SSL 采用公开密钥技术。其目标是保证两个应用间通信的保密性和可靠性,可在服务器和客户机两端同时实现支持。它能使客户 / 服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对客户进行认证。 SSL 协议要求建立在可靠的传输层协议(例如: TCP )之上。 SSL 协议的优势在于它是与应用层协议独立无关的,高层的应用层协议(例如: HTTP , FTP , Telnet )能透明的建立于 SSL 协议之上。 SSL 协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商以及服务器认证工作。
如果利用 SSL 协议来访问网页,其步骤如下:
( 1)用户:在浏览器的地址栏里输入[url]https://www.sslserver.com[/url]
( 2)HTTP层:将用户需求翻译成HTTP请求,如
GET /index.htm HTTP/1.1
Host [url]http://www.sslserver.com[/url]
( 3)SSL层: 借助下层协议的的信道,安全的协商出一份加密密钥,并用此密钥来加密HTTP 请求。
( 4)TCP层:与web server的443端口建立连接,传递SSL 处理后的数据。
接收端与此过程相反。
SSL 协议允许支持 SSL 协议的服务器与一个支持 SSL 协议的客户机相互认证,还允许这两个机器间建立加密连接,提供连接可靠性。
SSL 服务器认证允许用户确认服务器身份。支持 SSL 协议的客户机软件能使用公钥密码标准技术(如用 RSA 和 DSS 等)检查服务器证书、公用 ID 是否有效和是否由在客户信任的认证机构 CA 列表内的认证机构发放。
SSL 客户机认证允许服务器确认用户身份。使用应用于服务器认证同样的技术,支持 SSL 协议的服务器软件能检查客户证书、公用 ID 是否有效和是否由在服务器信任的认证机构列表内的认证机构发放。
一个加密的 SSL连接要求所有在客户机与服务器之间发送的信息由发送方软件加密和由接受方软件解密,对称加密法用于数据加密(如用DES和RC4等),从而连接是保密的。所有通过加密SSL连接发送的数据都被一种检测篡改的机制所保护,使用消息认证码(MAC)的消息完整性检查、安全散列函数(如SHA和MD5等)用于消息认证码计算,这种机制自动地决定传输中的数据是否已经被更改,从而连接是可靠的。
SSL 协议支持如下一些使用 RSA 密钥交换算法的密码组,它们的加密强度由强到弱排列:
带 SHA-1消息认证、支持168位加密的Triple-DES,速度不如RC4快。由于密码长度较大,大约有3.7 * 10 50 个密码可用。
带 MD5消息认证、支持128位加密的RC4,RC4和RC2都有128位的密码,它们的加密强度仅次于Triple-DES。RC4和RC2大约有3.4 * 10 38 个密码可用,这使得它们很难被破解。RC4密码是SSL 支持的密码中最快的。
带 MD5消息认证、支持128位加密的RC2,RC2比RC4速度慢(SSL3.0支持而SSL2.0 不支持)。
带 SHA-1消息认证、支持56位加密的DES,大约有7.2 * 10 16 个可用的密码(在SSL2.0中该密码使用的是MD5 消息认证)。
根据美国政府的规定,以上四种加密仅能在美国境内使用,以下加密技术是可以出口的。
带 MD5消息认证、支持40位加密的RC4,大约有个1.1 * 10 12 可用的密码。
带 MD5消息认证、支持40位加密的RC2,大约有个1.1 * 10 12 可用的密码。
注:对 RC2和RC4支持40位加密,其中密钥仍是128位的,但只有40 位有加密意义。
不加密,只带 MD5消息认证。这种方法使用MD5消息认证检测篡改(SSL3.0支持而SSL2.0不支持)。
SSL 主要工作流程包括:网络连接建立;与该连接相关的加密方式和压缩方式选择;双方的身份识别;本次传输密钥的确定;加密的数据传输;网络连接的关闭。
应用数据的传输过程为:
( 1)应用程序把应用数据提交给本地的SSL ;
( 2 )发送端根据需要,使用指定的压缩算法,压缩应用数据;
( 3 )发送端使用散列算法对压缩后的数据进行散列,得到数据的散列值;
( 4 )发送端把散列值和压缩后的应用数据一起用加密算法加密;
( 5 )密文通过网络传给对方;
( 6 )接收方用相同的加密算法对密文解密,得到明文;
( 7 )接收方用相同的散列算法对明文中的应用数据散列;
( 8 )计算得到的散列值与明文中的散列值比较;
如果一致,则明文有效,接收方的 SSL把明文解压后得到应用数据上交给接收方的应用。否则就丢弃数据,并向发方发出告警信息。严重的错误有可能引起再次的协商或连接中断。
SSL 协议建立在传输层和应用层之间,包括两个子协议: SSL 记录协议和 SSL 握手协议,其中记录协议在握手协议下端。
SSL握手协议
SSL改变密码格式协议
SSL警告协议
HTTP,FTP,…
SSL 记录协议
TCP
IP
图13.2 SSL记录协议和SSL握手协议
SSL 记录协议定义了要传输数据的格式,它位于一些可靠的的传输协议之上(如 TCP ),用于各种更高层协议的封装。 SSL 握手协议就是这样一个被封装的协议。 SSL 握手协议允许服务器与客户机在应用程序传输和接收数据之前互相认证、协商加密算法和密钥。

你可能感兴趣的:(ssl,协议,概述,休闲)