《网络安全论文(计算机网络安全》由会员分享,可在线阅读,更多相关《网络安全论文(计算机网络安全(9页珍藏版)》请在金锄头文库上搜索。
1、计算机网络安全之 SSL 协议计算机科学与技术 090532 郭双顶 摘要 目前,随着 Internet 的快速发展,互联网上的信息安全越来越引起人 们的关注。特别是近年来网上银行、电子商务和电子政务的发展,如何保证传输 信息,特别是交易信息的保密性、完整性已成为继续解决的问题。安全套接层协 议(Security Socket Layer Protocol ,简称 SSL)是 Internet 上进行保密通信 的一个安全协议。关键词1. 前言传输层在TCP/IP协议族中具有重要地位,它加强和弥补了 IP层的服务。从 服务类型看, IP 层是点到点的,而传输层提供端到端的服务;从服务质量看, 传
2、输层提高了可靠性,使得高层应用不必关注可靠性问题,而仅需解决与自身应 用功能相关的问题;从协议依赖关系看,应用层协议直接构建于传输层之上。应用层协议直接与用户交互,因此它们的安全性也会受到最直接的关注。举 个直观的例子,电子商务系统通常采用B/S结构,用户通过浏览器访问电子商务 网站、购买商品并进行网上支付。在这类应用中,机密性、完整性、服务器身份 认证、不可否认性和可用性都是用户所需的。此外,在进行文件和邮件传输时, 用户也有类似的安全需求。遗憾的是,常用的 HTTP、FTP 等协议都无法满足这些 安全需求。虽然 HTTP、FTP 和 Telnet 等协议提供了基于口令的身份认证机制, 但在
3、互联网这个开放的环境中,这种简单的保护显得微不足道。改变这种现状的途径之一就是为每个应用层协议都增加安全功能。对于应用 设计者而言,这是一个并不轻松的工作;对于应用使用者而言,部署多个安全应 用时,势必会消耗大量的系统资源。另一种途径就是从传输层人手。既然高层应 用都是基于传输层的,那么增强这个层次的安全性显得更具备通用性。它可以把 高层应用从安全性这个复杂的命题中解放出来,使用者也可用较小的开销获得所 需的安全服务。SSL和TLS就是第二种途径的实例,它们分别是安全套接层(Secure Socket Layer)和传输层安全(Transport Layer Security)的缩写。SSL首
4、先由网景公 司提出,最初 是为了保护 Web 安全,最终 却为提高传输层安全提供了一个通 用 的解决方案。在SSL获得了广泛应用 之后,IETF斟于SSLv3,制定了 TLS 标准。 TLSv1 与 SSLv3 几乎完全一致。SSL 介绍(Secure socket Layer & Security Socket Layer)1.2 SSL 的设计目标电子商务应用催生了 SSL。如前所述,电子商务通常采用B/S结构,客户可 以通过浏览器访问商务网站,获取商品列表、下定单并进行网上支付。网景公司 最为知名的产品就是其同名的 Web 浏览器,所以其最初把目标定位于增强 Web 安全性也就很容易理解
5、了。Web的后台是HTTP,因此,从协议设计的角度看就是 要增强 HTTP 的安全性。由于各类 Web 应用的安全要求并不完全相同,比如普通 Web 页面浏览的安全需求就远不及电子商务那么明显,所以 SSL 的设计目标也包 括要让普通的 HTTP 协议和增强安全性的协议之间具有良好的互操作性。从安全的角度看,电子商务应用中的客户端会有以下考虑:首先,如果页面 提示用户输入支付金额和支付密码,这个页面是不是真正的经销商给出的呢?或 者输入这些信息后是发送给真正的经销商吗?其次,支付密码是关键信息,不能 被泄露;最后,支付的金额值不能在传输过程中被篡改,否则客户可能会蒙受损 失。从上述考虑出发,
6、SSL 要满足机密性、完整性安全需求,同时应实现服务器 身份认证。在大多数应用环境下,服务器并不关心客户的身份,但有的经销商只 和特定的客户交互,或者为某些用户提供特殊的服务,这时就会有客户端认证的 需求。因此, SSL 提供的安全服务可概括为:机密性、完整性、服务器认证以及 可选的客户端认证。除了访问Web服务器,利用浏览器也可以访问邮箱和新闻组,所以SSL也应 该满足这些应用的安全需求,它应该是一种通用的解决方案。这些应用基于 TCP, 因此SSL的设计者并没有更改高层应用,而是在TCP和应用之间加入了 SSL,以 便以一种通用而透明的模式提供安全服务。1.3 SSLv 3协议流程从协议栈
7、层次关系看,SSL位于应用层和传输层之间。使用SSL保护的高层 应用报文需要封装在SSL报文中投递,而所有SSL报文最终仍要封装在传输层报 文中投递。SSLv3是一个协议套件,它由4个协议组成,即:握手协议(Handshake)、记 录 协议( Record) 、更改密 码规范协议 (ChangeCipherSpec) 以及警告 协议 (Alert) 。握手协议用于安全机制的协商,它的功能包括:(1) 必选的服务器认证,即客户端认证服务器的身份。(2) 可选的客户端谁,即服务器可以选择认证客户端的身份,也可以放弃该 功能。(3) 算法协商,即客户端和服务器协定采用的压缩算法、加密算法和消息验
8、证码算法。码算法。压缩数据有利于提高通信效率,某些网络接口(数据链路(层协议具有数据 压缩功能。但经过加密处理后, SSL 报文成为随机数,压缩产生的优化并不显著, 因此必须在加密之前对数据进行压缩。 SSL 加入了压缩算法,但并未规定可以使 用的压缩算法。算法协商由客户端发起,客户端把息己支持的所有算法发送给服 务器,并由服务器选中最终使用的算法。(4) 密钥生成,即生成客户端和服务器共享的会话密钥。 SSLv3 提多种密钥 生成方式,比如基于RSA的密钥传输和基于D-H的密钥协商方式。在保护数据时, SSLv3要使用四个密钥,由共享密钥推导得出,以用于加密、计算MAC两个功能 以及两个通信
9、方向。更改密码规范协议只包括一条消息。在安全协商完成后,客户端和服务器交 换这条消息,以通告对方启用协商好的安全参数,随后的消息都将用这些参数保 护。警告协议包括两种功能:一是提供了报错机制,即通信过程中若某一方发现 了问题,便会利用该协议通告对等端;二是提供了安全断连机制,即以一种可认 证的方式关闭连接。 TCP 是面向连接的,使用不加认证的断连方式会面临“截断” 攻击的威胁,安全断连用于解决该问题。记录协议是SSLv3的数据承载协议,规定了 SSLv3的报文格式以及对报文的处理过程。握手报文及应用数据都要封装成“记录”的形式投递。2 SSL协议工作过程2.1 SSL 握手协议:SSL 握手
10、协议包含两个阶段,第一个阶段用于建立私密性通信信道,第二个 阶段用于客户认证。1)第一阶段:第一阶段是通信的初始化阶段,通信双方都发出 HELLO 消息。当双方都接 收到 HELLO 消息时,就有足够的信息确定是否需要一个新的密钥。若不需要新 的密钥,双方立即进入握手协议的第二阶段。否则,此时服务器方的 SERVER HELLO 消息将包含足够的信息使客户方产生一个新的密钥。这些信息包括服务器 所持有的证书、加密规约和连接标识。若密钥产生成功,客户方发出 CLIENT MASTER KEY 消息,否则发出错误消息。最终当密钥确定以后,服务器方向客 户方发出 SERVER VERIFY 消息。因
11、为只有拥有合适的公钥的服务器才能解开 密钥。下图为第一阶段的流程:表 2.1 第一阶段的流程需要注意的一点是每一通信方向上都需要一对密钥,所以一个连接需要四个 密钥,分别为客户方的读密钥、客户方的写密钥、服务器方的读密钥、服务器方 的写密钥。2) 第二阶段:第二阶段的主要任务是对客户进行认证,此时服务器已经被认证了。服务器 方向客户发出认证请求消息: REQUEST CERTIFICATE 。当客户收到服务器方 的认证请求消息,发出自己的证书,并且监听对方回送的认证结果。而当服务器 收到客户的认证,认证成功返回 SERVER FINISH 消息,否则返回错误消息。 到此为止,握手协议全部结束。
12、消息名方向内容不需要新密钥CLIENT - HELLOC -Schallenge, session id, cipher specsSERVER - HELLOS -cconnectionid, session id hitCLIENT - FINISHC -sE client write key connection-idSERVER-VERIFYS -cE server write key challengeSERVER - FINISHS -cE server write key session id需要新密钥CLIENT - HELLOC -schallenge, cipher spe
13、csSERVER - HELLOS -cconnec tio n-id,server_cer ti fica te,ciph er_specsCLIENT - MASTER -KEYC -sE server_public_key master_keyCLIENT - FINISHC -sE client write key connection-idSERVER - VERIFYS -cE server write key challengeSERVER - FINISHS -cE server write key new session id需要客户认证client - helloc -sc
14、hallenge, session id, cipher specsserver - hellos -cconnection-id, session id hitclient - finishc -sE client write key connection-idserver-verifys -cE server write key challengerequest - certificates -cEserver_write_key auth_type,challengeclient - certificatec -sEclient_write_key cert_type,client_ce
15、 rt ,response dataserver - finishs -cE server write key session id表 2.2 典型的协议消息流程2.3 记录层协议组成 记录层协议规定了即有发送和接收数据的打包形式,该协议提供了通信,身 份认证等功能,它是一个面向连接的可靠传输协议。在 SSL 中,即有数据被打装在记录中,一个记录由两部份组成,记录和非零 长度的数据oSSL的握手协议和报文要求必须放在一个ssl记录层协议的记录中, 而应用层报文允许占用多个 SSL 记录来传递。(1)SSL 记录头格式ssl的记录头可以是两个或三个字节长的编码。ssl记录头包含的信息有记 录头的长度、记录数据的长度、记录数据中是否有填充数据。其中填充数据是在 使用块加密算法时,填充实际数据,使其长度恰好是块的整数倍,以便利传输和 加/解密。(2)ssL 记录数据格式ssL 记录数据部份含有三个分量MAC数据:用于数据完整性检查ACTUAL数据:是被传送的应用数据PADDING数据:是当采用分组码时即需要的填充数据3 与 SET 协议的比较在当今的电子商务中使用最为广泛的两种安全协议是 SS