同义词安全套接字协议(在Internet基础上提供的一种保证私密性的安全协议)一般指安全套接层
(3)双向认证,客户机和服务器相互识别的过程。它们的识别号用公开密钥编码,并在SSL握手时交换各自的识别号。为了验证证明持有者是其合法用户(而不是冒名用户),SSL要求证明持有者在握手时对交换数据进行数字式标识。证明持有者对包括证明的所有信息数据进行标识,以说明自己是证明的合法拥有者。这样就防止了其他用户冒名使用证明。证明本身并不提供认证,只有证明和密钥一起才起作用。
(4)SSL的安全性服务对终端用户来讲做到尽可能透明。一般情况下,用户只需单击桌面上的一个按钮或联接就可以与SSL的主机相连。与标准的HTTP连接申请不同,一台支持SSL的典型网络主机接受SSL连接的默认端口是443,而不是80。
SSL协议的优势在于它是与应用层协议独立无关的。高层的应用层协议(例如:HTTP、FTP、Telnet等等)能透明的建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商以及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。
SSL被设计成使用TCP来提供一种可靠的端到端的安全服务,不是单个协议,而是二层协议,低层是SSL记录层,用于封装不同的上层协议,另一层是被封装的协议,即SSL握手协议,它可以让服务器和客户机在传输应用数据之前,协商加密算法和加密密钥,客户机提出自己能够支持的全部加密算法,服务器选择最适合它的算法。
记录协议为不同的更高层协议提供基本的安全服务,其特点是为web客户/服务器的交互提供传输服务的超文本传输协议(HTTP)可在SSL上面运行。三个更高层协议被定义成SSL的一部分:握手协议、修改密文规约协议和告警协议。
SSL中两个重要的概念是SSL会话和SSL连接,规约如下:
(1)连接:连接是提供恰当类型服务的传输,对于SSL这样的连接是点对点的关系。连接是短暂的,每个连接与一个会话相联系。
在任何一对交互实体之间可能存在多个安全连接。理论上,在交互实体中间也可能存在多个同时的会话,实际上每个会话存在一组状态。一旦建立了会话,就有当前的操作状态用于读和写(即接收和发送)。另外,在握手协议期间,创建了挂起读和写状态。一旦握手协议成功,挂起状态就变成当前的状态。
SSL记录协议为SSL连接提供两种服务:
高级的用户。
修改密文规约协议(Change Cipher Spec Protocol)是使用SSL记录协议的三个SSL有关协议之一,并且它是最简单的,用于使用新协商的加密方法和完全性方法。这个协议由单个报文图4(a)组成,该报文由值为1的单个字节组成。
告警协议是用来将SSL有关的告警传送给对方实体。和其他使用SSL的情况一样,告警报文按照当前状态说明被压缩和加密。该协议的每个报文由两个字节组成图4(b)。第一个字节的值是警告或致命的,用来传送报文的严重级别。如果级别是致命的,SSL立刻中止该连接。同一个会话的其他连接可以继续,但这个会话不能再建立新的连接了。 第二个字节包含了指出特定告警的代码。
SSL中最复杂、最重要的部分是握手协议。这个协议用于建立会话;协商加密方法、鉴别方法、压缩方法和初始化操作,使服务器和客户能够相互鉴别对方的身份、协商加密和MAC算法以及用来保护在SSL记录中发送数据的加密密钥。在传输任何应用数据之前,使用握手协议。它由一系列在客户和服务器之间交换的报文组成。所有报文都具有图4(c)显示的格式。每个报文具有三个字段:
(1)类型(1字节):指示10种报文中的一个。表2列出定义的报文类型。
(3)内容(大于等于1字节)。
一次SSL握手将发生以下事件:
A)客户机和服务器交换X.509证明以便双方相互确认。在此过程中可以交换全部的证明链,也可以选择只交换一些底层的证明。证明的验证包括:检验有效日期和验证证明的签名权限。
C)信息加密算法(用于加密)和Hash函数(用于确保信息完整性)是综合在一起使用的。Netscape的SSL实现方案是:客户机提供自己支持的所有算法清单,服务器选择它认为最有效的密码。服务器管理者可以使用或禁止某些特定的密码。
双向证书认证的SSL握手过程。
以下简要介绍SSL协议的工作方式。客户端要收发几个握手信号:
- 1.发送一个“ClientHello”消息,说明它支持的密码算法列表、压缩方法及最高协议版本,也发送稍后将被使用的随机数。
- 2.然后收到一个“ServerHello”消息,包含服务器选择的连接参数,源自客户端初期所提供的“ClientHello”。
- 3.
- 4.服务器请求客户端公钥。客户端有证书即双向身份认证,没证书时随机生成公钥。
- 5.客户端与服务器通过公钥保密协商共同的主私钥(双方随机协商),这通过精心谨慎设计的伪随机数功能实现。结果可能使用Diffie-Hellman交换,或简化的公钥加密,双方各自用私钥解密。所有其他关键数据的加密均使用这个“主密钥”。
- 6.服务器将握手消息的MAC地址发送给客户端。 [1]
数据传输中记录层(Record layer)用于封装更高层的HTTP等协议。记录层数据可以被随意压缩、加密,与消息验证码压缩在一起。每个记录层包都有一个Content-Type段用以记录更上层用的协议。
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包含三个基本阶段:
- 1.对等协商支援的密钥算法
- 2.
- 3.
在第一阶段,客户端与服务器协商所用密码算法。 当前广泛实现的算法选择如下:
TLS/SSL有多样的安全保护措施:
- 所有的记录层数据均被编号,用于消息验证码校验。