安全套接层

更新时间:2024-04-16 14:06

SSL(Secure Socket Layer)安全套接层是Netscape公司率先采用的网络安全协议。它是在传输通信协议(TCP/IP)上实现的一种安全协议,采用公开密钥技术。SSL广泛支持各种类型的网络,同时提供三种基本的安全服务,它们都使用公开密钥技术。

安全服务

(1)信息保密,通过使用公开密钥和对称密钥技术以达到信息保密。SSL客户机和服务器之间的

所有业务都使用在SSL握手过程中建立的密钥和算法进行加密。这样就防止了某些用户通过使用IP数据包嗅探工具非法窃听。尽管数据包嗅探仍能捕捉到通信的内容,但却无法破译。

(2)信息完整性,确保SSL业务全部达到目的。应确保服务器和客户机之间的信息内容免受破坏。SSL利用机密共享和hash函数组提供信息完整性服务。

(3)双向认证,客户机和服务器相互识别的过程。它们的识别号用公开密钥编码,并在SSL握手时交换各自的识别号。为了验证证明持有者是其合法用户(而不是冒名用户),SSL要求证明持有者在握手时对交换数据进行数字式标识。证明持有者对包括证明的所有信息数据进行标识,以说明自己是证明的合法拥有者。这样就防止了其他用户冒名使用证明。证明本身并不提供认证,只有证明和密钥一起才起作用。

(4)SSL的安全性服务对终端用户来讲做到尽可能透明。一般情况下,用户只需单击桌面上的一个按钮或联接就可以与SSL的主机相连。与标准的HTTP连接申请不同,一台支持SSL的典型网络主机接受SSL连接的默认端口是443,而不是80。

优势

SSL协议的优势在于它是与应用层协议独立无关的。高层的应用层协议(例如:HTTPFTPTelnet等等)能透明的建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商以及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。

SSL的体系结构

SSL被设计成使用TCP来提供一种可靠的端到端的安全服务,不是单个协议,而是二层协议,低层是SSL记录层,用于封装不同的上层协议,另一层是被封装的协议,即SSL握手协议,它可以让服务器和客户机在传输应用数据之前,协商加密算法和加密密钥,客户机提出自己能够支持的全部加密算法,服务器选择最适合它的算法。

记录协议为不同的更高层协议提供基本的安全服务,其特点是为web客户/服务器的交互提供传输服务的超文本传输协议(HTTP)可在SSL上面运行。三个更高层协议被定义成SSL的一部分:握手协议、修改密文规约协议和告警协议。

SSL中两个重要的概念是SSL会话和SSL连接,规约如下:

(1)连接:连接是提供恰当类型服务的传输,对于SSL这样的连接是点对点的关系。连接是短暂的,每个连接与一个会话相联系。

(2)会话:SSL的会话是客户和服务器之间的关联,会话通过握手协议来创建。会话定义了加密安全参数的一个集合,该集合可以被多个连接所共享。会话可用来避免为每个连接进行昂贵的新安全参数的协商。

在任何一对交互实体之间可能存在多个安全连接。理论上,在交互实体中间也可能存在多个同时的会话,实际上每个会话存在一组状态。一旦建立了会话,就有当前的操作状态用于读和写(即接收和发送)。另外,在握手协议期间,创建了挂起读和写状态。一旦握手协议成功,挂起状态就变成当前的状态。

SSL记录协议

SSL记录协议为SSL连接提供两种服务:

(1)机密性:握手协议定义了共享的、可用于对SSL有效载荷进行常规加密的密钥。

(2)报文完整性:握手协议还定义了共享的、可用来形成报文的鉴别码(MAC)的密钥。

记录协议接收传输的应用报文,将数据分片成可管理的块,可选地压缩数据,应用MAC,加密,增加首部,在TCP报文段中传输结果单元。被接收的数据被解密、验证、解压和重新装配,然后交付给更

高级的用户。

修改密文规约协议

修改密文规约协议(Change Cipher Spec Protocol)是使用SSL记录协议的三个SSL有关协议之一,并且它是最简单的,用于使用新协商的加密方法和完全性方法。这个协议由单个报文图4(a)组成,该报文由值为1的单个字节组成。

告警协议

告警协议是用来将SSL有关的告警传送给对方实体。和其他使用SSL的情况一样,告警报文按照当前状态说明被压缩和加密。该协议的每个报文由两个字节组成图4(b)。第一个字节的值是警告或致命的,用来传送报文的严重级别。如果级别是致命的,SSL立刻中止该连接。同一个会话的其他连接可以继续,但这个会话不能再建立新的连接了。 第二个字节包含了指出特定告警的代码。

SSL中最复杂、最重要的部分是握手协议。这个协议用于建立会话;协商加密方法、鉴别方法、压缩方法和初始化操作,使服务器和客户能够相互鉴别对方的身份、协商加密和MAC算法以及用来保护在SSL记录中发送数据的加密密钥。在传输任何应用数据之前,使用握手协议。它由一系列在客户和服务器之间交换的报文组成。所有报文都具有图4(c)显示的格式。每个报文具有三个字段:

(1)类型(1字节):指示10种报文中的一个。表2列出定义的报文类型。

(2)长度(3字节):以字节为单位的报文长度。

(3)内容(大于等于1字节)。

SSL握手的过程

一次SSL握手将发生以下事件:

A)客户机和服务器交换X.509证明以便双方相互确认。在此过程中可以交换全部的证明链,也可以选择只交换一些底层的证明。证明的验证包括:检验有效日期和验证证明的签名权限。

B)客户机随机地产生一组密钥,它们用于信息加密和MAC计算。这些密钥要先通过服务器的公开密钥加密再送往服务器。总共有四个密钥分别用于服务器到客户机以及客户机到服务器的通信。

C)信息加密算法(用于加密)和Hash函数(用于确保信息完整性)是综合在一起使用的。Netscape的SSL实现方案是:客户机提供自己支持的所有算法清单,服务器选择它认为最有效的密码。服务器管理者可以使用或禁止某些特定的密码。

通过SSL握手协议、SSL密文协议、SSL告警协议和SSL记录协议实现了安全套接层的安全,对于web安全我们完全可以采用上述手段,因为它们的安全技术是可靠的。

过程

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

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

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

TLS和SSL的差异

SSL(Secure Sockets Layer)是网景公司(Netscape)设计的主要用于Web的安全传输协议。这种协议在Web上获得了广泛的应用。IETF将SSL作了标准化,即RFC2246,并将其称为TLS(Transport Layer Security),其最新版本是RFC5246,版本1.2。从技术上讲,TLS1.0与SSL3.0的差异非常微小。

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

TLS包含三个基本阶段:

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

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

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}