传输层安全协议详解,第1张

传输层安全协议详解,第2张

传输层安全协议的目的是保护传输层的安全,并提供一种在传输层上实现机密性、认证性和完整性的方法。
1。SSL(安全套接字层协议)
SSL(安全套接字层)是网景公司设计的一种开放协议;它规定了一种在应用协议(如http、telnet、NNTP、FTP)和TCP/IP之间提供数据安全分层的机制。它为TCP/IP连接提供数据加密、服务器验证、消息完整性和可选的客户端验证。
SSL的主要目的是在两个通信应用程序之间提供隐私和可靠性。这个过程由三个要素完成:
L .握手协议。该协议负责协商用于客户端和服务器之间会话的加密参数。当SSL客户机和服务器第一次开始通信时,它们就协议版本达成一致,选择加密算法,选择相互身份验证,并使用公钥技术生成共享密钥。
L .记录协议。该协议用于交换应用层数据。将应用消息分成可管理的数据块,也可以压缩,应用MAC(消息认证码);然后对结果进行加密并传输。接收方接受数据并解密,检查MAC,解压缩并重组数据,并将结果提交给应用协议。
L .警告协议。该协议用于指示何时发生错误或两台主机之间的会话何时终止。
让我们看一个使用WEB客户端和服务器的例子。WEB客户端通过连接到支持SSL的服务器来启动SSL会话。支持SSL的典型WEB服务器在不同于标准HTTP请求(默认为80)的端口(默认为443)上接受SSL连接请求。当客户端连接到此端口时,它将开始握手以建立SSL会话。当握手完成时,通信内容被加密,并且消息完整性检查被执行,直到SSL会话到期。SSL创建一个会话,在此期间握手只能发生一次。
SSL握手流程步骤:
第一步:SSL客户端连接到SSL服务器,要求服务器验证自己的身份。
步骤2:服务器通过发送其数字证书来证明其身份。这种交换还可以包括直至根证书颁发机构(CA)的整个证书链。通过检查过期日期并确认证书包含可信CA的数字签名来验证证书。
第三步:然后,服务器发送请求来验证客户端的证书。然而,由于缺少公钥体系结构,目前大多数服务器都不执行客户端身份验证。
第四步:协商用于加密的消息加密算法和用于完整性检查的哈希函数。通常,客户端提供一个它支持的所有算法的列表,然后服务器选择密钥加密算法。
第五步:客户端和服务器通过以下步骤生成会话密钥:
a .客户端生成一个随机数,用服务器的公钥(从服务器的证书中获取)加密后发送给服务器。
B .服务器使用更多的随机数据(从客户端密钥可用时使用客户端密钥;否则,数据将以明文发送)。
C .使用哈希函数从随机数据中生成密钥。
SSL协议的优势在于它提供了连接安全性,有三个基本属性:
L .连接是私有的。在初始握手定义了密钥之后,将使用加密算法。对称加密(如DES和RC4)用于数据加密。
L .可以使用非对称加密或公钥加密(如RSA和DSS)来验证对等实体的身份。
L .连接时可靠。消息传输使用密钥MAC,包括消息完整性检查。其中安全散列函数(例如SHA和MD5)用于MAC计算。
对SSL的接受仅限于HTTP。它已被证明可用于其他协议,但尚未被广泛使用。
注意:
IETF正在定义一个名为传输层安全性(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协议主要由三部分组成:
L .传输层协议,提供服务器认证、机密性和完整性,具有完善的转发机密性。有时,它还可以提供压缩功能。
L .用户验证协议,负责从服务器验证客户端。
L .连接协议,将加密通道多路复用到几个逻辑通道中。
SSH传输层是一个安全的底层传输协议。它提供强大的加密、加密主机身份验证和完整性保护。SSH中的认证是基于主机的;该协议不执行用户验证。可以为SSH的上层用户认证设计一个高级协议。
该协议设计得非常简单和灵活,允许参数协商并最大限度地减少往返次数。密钥交互方法、公钥算法、对称加密算法、消息认证算法、哈希算法都需要协商。
通过在每个数据包中包含消息身份验证代码(MAC)来保护数据完整性。这个MAC是根据共享密钥、数据包序列号和数据包内容计算出来的。
SSH实现可以在UNIX、Windows和Macintosh系统上找到。它是一个被广泛接受的协议,使用众所周知的加密、完整性和公钥算法。
3。Socks协议
Socks (Socks)是一种基于传输层的网络代理协议。它旨在为TCP和UDP领域的客户机/服务器应用程序提供一个框架,以便方便、安全地使用网络防火墙服务。
SOCKS最初是由大卫和米歇尔·科布拉斯夫妇开发的;它的代码可以在互联网上免费获得。从那时起,它经历了几次重大修改,但该软件仍然是免费的。SOCKS版本4为基于TCP的客户机/服务器应用程序(包括telnet、FTP和流行的信息发现协议,如http、WAIS和Gopher)提供不安全的防火墙传输。SOCKS版本5是在RFC1928中定义的,它扩展了SOCKS版本4以包括UDP;扩展其框架,以包括提供通用和可靠的认证方案;并扩展了寻址方案,包括域名和IPV6地址。
目前,有人提议创建一种机制来管理IP多播通过防火墙的入口和出口。这是通过扩展现有的SOCKS第5版协议定义来实现的,该协议定义为用户级身份验证防火墙在单点传输TCP和UDP流量提供了一个框架。但是,由于SOCKS版本5中当前的UDP支持存在可伸缩性问题和其他缺陷(在实现多播之前必须解决这些问题),所以这些扩展被定义为两部分。
L .基础级UDP扩展。
L .多播UDP扩展。
SOCKS的工作原理是在应用程序中用特殊版本替代标准的网络系统调用(这也是SOCKS有时被称为应用程序级代理的原因)。这些新的系统调用在已知端口(通常是1080/TCP)上打开到SOCKS代理服务器(由用户在应用程序中配置或在系统配置文件中指定)的连接。如果连接请求成功,客户端将使用身份验证方法进行协商,使用选定的方法进行身份验证,然后发送中继请求。SOCKS服务器评估该请求,要么建立一个适当的连接,要么拒绝它。当与SOCKS服务器的连接建立后,客户机应用程序发送用户想要连接到服务器的机器名和端口号。SOCKS服务器实际上连接远程主机,然后在客户机和远程主机之间透明地来回移动数据。用户甚至不知道SOCKS服务器在这个循环中。
使用SOCKS的难点在于,人们不得不用SOCKS版本来替换网络系统调用(这个过程通常被称为SOCKS ing The application-SOCKS-qualifying或SOCKS-ifying)。幸运的是,大多数常用的网络应用程序(如telnet、FTP、finger和whois)都已经Socked,许多制造商现在都在商业应用程序中包含SOCKS支持。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 传输层安全协议详解

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情