传输层安全协议的目的是为了保护传输层的安全,并在传输层上提供实现保密、认证和完整性的方法。

1.SSL(安全套接字层协议)
SSL(Secure Socket Layer)是由Netscape设计的一种开放协议;他指定了一种在应用程式协议(例如http、telnet、NNTP、FTP)和TCP/IP之间提供数据安全性分层的机制。他为TCP/IP连接提供数据加密、服务器认证、消息完整性连同可选的客户机认证。
SSL的主要目的是在两个通信应用程式之间提供私密信和可靠性。这个过程通过3个元素来

完成:

l 握手协议。这个协议负责协商被用于客户机和服务器之间会话的加密参数。当一个SSL客户机和服务器第一次开始通信时,他们在一个协议版本上达成一致,选择加密算法,选择相互认证,并使用公钥技术来生成共享密钥。

l 记录协议。这个协议用于交换应用层数据。应用程式消息被分割成可管理的数据块,还能够压缩,并应用一个MAC(消息认证代码);然后结果被加密并传输。接受方接受数据并对他解密,校验MAC,解压缩并重新组合他,并把结果提交给应用程式协议。

l 警告协议。这个协议用于指示在什么时候发生了错误或两个主机之间的会话在什么时候终止。

下面我们来看一个使用WEB客户机和服务器的范例。WEB客户机通过连接到一个支持SSL的服务器,启动一次SSL会话。支持SSL的典型WEB服务器在一个和标准HTTP请求(默认为端口80)不同的端口(默认为443)上接受SSL连接请求。当客户机连接到这个端口上时,他将启动一次建立SSL会话的握手。当握手完成之后,通信内容被加密,并且执行消息完整性检查,知道SSL会话过期。SSL创建一个会话,在此期间,握手必须只发生过一次。

SSL握手过程步骤:

步骤1:SSL客户机连接到SSL服务器,并需要服务器验证他自身的身份。

步骤2:服务器通过发送他的数字证书证实其身份。这个交换还能够包括整个证书链,直到某个根证书权威机构(CA)。通过检查有效日期并确认证书包含有可信任CA的数字签名,来验证证书。

步骤3:然后,服务器发出一个请求,对客户端的证书进行验证。但是,因为缺乏公钥体系结构,当今的大多数服务器不进行客户端认证。

步骤4:协商用于加密的消息加密算法和用于完整性检查的哈希函数。通常由客户机提供他支持的任何算法列表,然后由服务器选择最强健的加密算法。

步骤5:客户机和服务器通过下列步骤生成会话密钥:
a. 客户机生成一个随机数,并使用服务器的公钥(从服务器的证书中获得)对他加密,发送到服务器上。
b. 服务器用更加随机的数据(从客户机的密钥可用时则使用客户机密钥;否则以明文方式发送数据)响应。
c. 使用哈希函数,从随机数据生成密钥。

SSL协议的长处是他提供了连接安全,具备3个基本属性:
l 连接是私有的。在初始握手定义了一个密钥之后,将使用加密算法。对于数据加密使用了对称加密(例如DES和RC4)。
l 能够使用非对称加密或公钥加密(例如RSA和DSS)来验证对等实体的身份。
l 连接时可靠的。消息传输使用一个密钥的MAC,包括了消息完整性检查。其中使用了安全哈希函数(例如SHA和MD5)来进行MAC计算。

对于SSL的接受程度仅仅限于HTTP内。他在其他协议中已被表明能够使用,但还没有被广泛应用。

注意:
IETF正在定义一种新的协议,叫做“传输层安全”(Transport Layer Security,TLS)。他建立在Netscape所提出的SSL3.0协议规范基础上;对于用于传输层安全性的标准协议,整个行业似乎都正在朝着TLS的方向发展。但是,在TLS和SSL3.0之间存在着显著的差别(主要是他们所支持的加密算法不同),这样,TLS1.0和SSL3.0不能互操作。

2.SSH(安全外壳协议)
SSH是一种在不安全网络上用于安全远程登录和其他安全网络服务的协议。他提供了对安全远程登录、安全文档传输和安全TCP/IP和X-Window系统通信量进行转发的支持。他能够自动加密、认证并压缩所传输的数据。正在进行的定义SSH协议的工作确保SSH协议能够提供强健的安全性,防止密码分析和协议攻击,能够在没有全球密钥管理或证书基础设施的情况下工作的很好,并且在可用时能够使用自己已有的证书基础设施(例如DNSSEC和X.509)。

SSH协议由3个主要组件组成:
l 传输层协议,他提供服务器认证、保密性和完整性,并具备完美的转发保密性。有时,他还可能提供压缩功能。
l 用户认证协议,他负责从服务器对客户机的身份认证。
l 连接协议,他把加密通道多路复用组成几个逻辑通道。

SSH传输层是一种安全的低层传输协议。他提供了强健的加密、加密主机认证和完整性保护。SSH中的认证是基于主机的;这种协议不执行用户认证。能够在SSH的上层为用户认证设计一种高级协议。

这种协议被设计成相当简单而灵活,以允许参数协商并最小化来回传输的次数。密钥交互方法、公钥算法、对称加密算法、消息认证算法连同哈希算法等都需要协商。

数据完整性是通过在每个包中包括一个消息认证代码(MAC)来保护的,这个MAC是根据一个共享密钥、包序列号和包的内容计算得到的。

在UNIX、Windows和Macintosh系统上都能够找到SSH实现。他是一种广为接受的协议,使用众所周知的建立良好的加密、完整性和公钥算法。

3.SOCKS协议

“套接字安全性”(socket security,SOCKS)是一种基于传输层的网络代理协议。他设计用于在TCP和UDP领域为客户机/服务器应用程式提供一个框架,以方便而安全的使用网络防火墙的服务。

SOCKS最初是由David和Michelle Koblas研发的;其代码在Internet上能够免费得到。自那之后经历了几次主要的修改,但该软件仍然能够免费得到。SOCKS版本4为基于TCP的客户机/服务器应用程式(包括telnet、FTP,连同流行的信息发现协议如http、WAIS和Gopher)提供了不安全的防火墙传输。SOCKS版本5在RFC1928中定义,他扩展了SOCKS版本

4,包括了UDP;扩展了其框架,包括了对通用健壮的认证方案的提供;并扩展了寻址方案,包括了域名和IPV6地址。

当前存在一种提议,就是创建一种机制,通过防火墙来管理IP多点传送的入口和出口。这是通过对已有的SOCKS版本5协议定义扩展来完成的,他提供单点传送TCP和UDP流量的用户级认证防火墙传输提供了一个框架。但是,因为SOCKS版本5中当前的UDP支持存在着可升级性问题连同其他缺陷(必须解决之后才能实现多点传送),这些扩展分两部分定义。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!