《第九讲 安全协议课件》由会员分享,可在线阅读,更多相关《第九讲 安全协议课件(70页珍藏版)》请在金锄头文库上搜索。
1、1,网络安全协议,第九讲,无论是OSI参考模型还是TCPIP参考模型,它们在设计之初都没有充分考虑网络通信中存在的安全问题。因此,只要在参考模型的任何一个层面发现安全漏洞,就可以对网络实施攻击。 多层多种安全协议是必须的! 不同的协议层实现的安全功能是不一样的! 比如,虽然网络层安全可以提供数据加密、IP地址认证等,但无法进行应用层用户的认证(如电子商务应用)。也无法防止这些数据(如email应用)里面是否有有害的内容。由于数据经过加密,因此无法在网络层对此加以检查,一、概述,应用层,传输层,网际层,网络接口层,认证服务,访问控制,数据完整性,数据保密性,不可抵赖性,数据加密,数字签名,访问控
2、制,数据完整性,实体认证,流量填充,路由控制,安全机制,TCP/IP参考模型,安全服务,TCP/IP参考模型的安全服务与安全机制,TCPIP参考模型的安全协议分层,一、概述,二、网络接口层安全协议,网络接口层的安全协议主要在数据传输的时候对数据进行加密保护、身份认证、封装和隧道传输,尽力向高层提供一条无差错的、高可靠的传输线路,从而保证数据通信的正确性。网络接口层上的安全协议主要有三个方面: 建立在PPP上的口令验证协议(PAP、SPAP、CHAP、MPPE和EAP) 隧道协议(PPTP、L2TP和L2F) 无线局域网上的安全协议(WEP和WPA),CHAP(Challenge Handsha
3、ke Authentication Protocol)是一种被广泛支持的身份验证方法。 在验证过程中,远程访问服务器将质询字符串发送给远程访问客户端。远程访问客户端使用质询字符串和用户密码,计算出“消息摘要”(MD5散列值) 。远程访问服务器执行相同的散列计算,并将计算的结果与客户端发回的散列相比较。如果两者匹配,则认为远程访问客户端的身份凭据可信。 CHAP采用是三次握手验证,服务器端存有客户的明文口令,所以服务器可以重复客户端进行的操作,并将结果与用户返回的口令进行对照。CHAP为每一次验证任意生成一个挑战字符串来防止受到重发攻击(replay attack)。在整个连接过程中,CHAP将
4、不定时地向客户端重复发送挑战口令,从而避免第3方冒充远程客户进行攻击。,二、网络接口层安全协议,第一步,当被验证客户要求与验证服务器连接时,先由验证方服务器产生一个挑战报文(Challenge),该报文中包含有服务器的主机名和一个随机数。验证方服务器将挑战报文发给被验证客户,要求进行身份认证。 第二步,被验证客户得到挑战报文后,便根据报文中验证方服务器的主机名和自己的用户表中查找对应此服务器上的用户帐户和口令。如找到对应的用户帐户,便利用接收到的随机数和该用户的口令,以MD5算法生成应答(Response),随后将应答和自己的主机名组成应答报文发送给验证服务器。 第三步,验证服务器接到应答报文
5、后,再利用被验证客户的用户名在服务器上的用户表中查找该用户的口令,找到后再用该口令和随机报文以MD5算法生成结果,与应答报文的内容进行比较。验证成功验证服务器会发送一条认证通过报文(Success),否则会发送一条认证失败报文(Failure)。,二、网络接口层安全协议,隧道技术是一种通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将这些其它协议的数据帧或包重新封装在新的包头中发送。新的包头提供了路由信息,从而使封装的负载数据能够通过互联网络传递。 被封装的数据包在隧道的两个端点之间通过公共互联网络进行路由。被封装的数据包在公
6、共互联网络上传递时所经过的逻辑路径称为隧道。一旦到达网络终点,数据将被解包并转发到最终目的地。隧道技术是指包括数据封装,传输和解包在内的全过程。,隧道技术和隧道协议,二、网络接口层安全协议,二、网络接口层安全协议,隧道协议: 为创建隧道,隧道的客户机和服务器双方必须使用相同的隧道协议。 隧道技术可以分别以第2层或第3层隧道协议为基础(按照OSI参考模型划分)。 PPTP,L2TP和L2F(第2层转发)都属于第2层隧道协议(对应OSI模型中的数据链路层),使用帧作为数据交换单位,即将数据封装在点对点协议(PPP)帧中通过互联网络发送。 IPSec属于第3层隧道协议,第3层隧道协议对应OSI模型中
7、的网络层,使用包作为数据交换单位。,二、网络接口层安全协议,PPTP(Point-to-Point Tunneling Protocol,点对点隧道协议) PPTP是用于PPP协议帧传输的一种隧道机制。 为PPP提供身份验证、加密和协议配置功能。 PPTP控制连接使用GRE(Generic Routing Encapsulation,通用路由封装)对PPP帧进行封装。PPP帧的有效载荷在封装前,首先必须经过加密、压缩或是两者的混合处理。 PPTP控制连接建立在PPTP客户机和PPTP服务器之间。PPTP客户机使用动态分配的TCP端口号,而PPTP服务器则使用TCP 1723端口。PPTP控制连
8、接消息携带PPTP呼叫控制和管理信息,用于维护PPTP隧道,其中包括周期性地发送回送请求和回送应答消息,以期检测出客户机与服务器之间可能出现的连接中断。 PPTP的包格式如下:,二、网络接口层安全协议,L2F(Level 2 Forwarding protocol) 由Cisco公司提出的可以在多种传输网络上建立多协议的安全虚拟专用网的通信隧道的一种协议,远程用户能够透过拨号方式接入公共网络。 L2F可以在多种传输介质(如ATM、帧中继、IP网)上建立VPN的通信隧道。它将链路层的协议(如HDLC,PPP,ASYNC等)封装起来传送。因此,网络的链路层完全独立于用户的链路层协议。L2F远端用户
9、能够通过任何拨号方式接入公共IP网络。L2F使用UDP 1701端口进行数据传输。,二、网络接口层安全协议,L2TP(Layer 2 Tunneling Protocol,第二层隧道协议) L2TP是把链路层PPP帧封装在公共网络设施(如IP、ATM、帧中继)中进行隧道传输的协议。它结合了PPTP协议以及L2F协议的优点,能以隧道方式使PPP包通过各种网络协议。L2TP也使用UDP 1701端口进行数据传输。 L2TP主要由LAC(L2TP Access Concentrator,L2TP访问集中器)和LNS(L2TP Network Server,L2TP网络服务器)组成。其中LAC是是一个
10、网络接入服务器,用于为用户提供网络接入服务,它附属在网络上的具有PPP端系统和L2TP协议处理能力。而LNS是PPP端系统上用于处理L2TP协议服务器端部分的软件。,二、网络接口层安全协议,与PPTP不同,L2TP隧道的维护不在独立的TCP连接上进行。L2TP使用UDP的1701端口在L2TP客户和服务器之间传输呼叫控制和管理业务信息。L2TP数据报再作为IPSec ESP(Encapsulating Security Payload,封装安全载荷)发送。 L2TP控制信息和L2TP数据信息的封装如图所示:,二、网络接口层安全协议,三、应用层安全协议,应用层的安全并不是独立的,它依赖于操作系统
11、、下层平台所提供的运行环境的安全,即保证应用层程序本身必须是安全的。 应用层安全协议都是为特定的应用提供安全服务,其中使用比较广泛的有: SSH(Secure Shell Protocol,安全外壳协议) Kerberos协议 PGP(Pretty Good Privacy)和S/MIME协议 S-HTTP(Secure Hyper Text Transfer Protocol,安全超文本传输协议) SET(Secure Electronic Transaction,安全电子交易) RADIUS(Remote Access Dial up User Service,远程访问拨号用户服务),16
12、,PGP是一个安全电子邮件应用实例,提供可用于电子邮件和文件存储应用的保密与鉴别服务,由Zimmermann等人开发,已成为Internet安全邮件事实上的标准。Microsoft的Exchange和Outlook都使用了PGP. 当PGP安装时,软件会自动产生一对公钥、私钥。私钥在本地存放,受口令保护,公钥可以存放在用户自己的个人主页或某个公钥服务器上。用户可以选择是否对邮件进行签名、加密等,三、应用层安全协议,17,PGP功能,三、应用层安全协议,18,PGP功能说明 记号: Ks : session key KRa : 用户A的私钥 KUa : 用户A的公钥 EP : 公钥加密 DP :
13、 公钥解密 EC : 对称加密 DC : 对称解密 H : 散列函数 | : 连接 Z : 用ZIP算法数据压缩 R64 : 用radix64转换到ASCII格式,三、应用层安全协议,19,身份鉴别 发送方 产生消息M 用SHA-1(或DSS)对M生成一个 160位的散列码H 用发送者的私钥对H加密,并与 M连接, 接收方 用发送者的公钥解密并恢复散 列码H 对消息M生成一个新的散列码 ,与H比较。如果一致,则消 息M被鉴别。,三、应用层安全协议,20,保密性 发送方 生成消息M并为该消息生 成一个随机数作为会话密钥。 用会话密钥加密M 用接收者的公钥加密会话密钥并 与消息M结合, 接收方 用
14、自己的私钥解密恢复会话密钥 用会话密钥解密恢复消息M,三、应用层安全协议,21,说明 采用CAST-128(或IDEA或3DES)、64位CFB方式。 一次性密钥,单向分发,公钥算法保护。 1) 用公钥算法解决了会话密钥的分配问题 不需要专门的会话密钥交换协议 由于邮件系统的存储-转发的特性,用握手方式交换 密钥不太可能 2) 每个消息都有自己的一次性密钥,进一步增强了保密 强度。 3) 公开密钥算法的长度决定安全性 RSA(7683072) 、DSS(1024),三、应用层安全协议,22,保密与鉴别同时运用 两种服务都需要时,发送者先用自己的私钥签名,然后用会话密钥加密,再用接收者的公钥加密
15、会话密钥。,三、应用层安全协议,23,邮件数据处理 顺序:签名压缩加密E-mail兼容性,三、应用层安全协议,24,E-mail兼容性 加密后是任意的8位字节,需要转换到ASCII格式。 Radix64将3字节输入转换到4个ASCII字符,并带CRC校验。 长度扩大33%,Radix-64变换,三、应用层安全协议,25,分段与重组 Email常常受限制于最大消息长度(一般限制在最大50000 字节) 更长的消息要进行分段,每一段分别邮寄。 PGP自动分段并在接收时自动恢复。 签名只需一次,在第一段中。,三、应用层安全协议,26,加密密钥和密钥环 PGP使用四种类型的密钥:一次性会话常规密钥,公
16、钥,私钥,基于口令短语的常规密钥。 需求: 1、需要一种生成不可预知的会话密钥(CAST-128 算法) 2、需要某种手段来标识具体的密钥。以便允许一个用户拥有 多个公钥/私钥对。(更换,分组) 3、每个PGP实体需要维护一个文件保存其公钥私钥对,和一个 文件保存通信对方的公钥。 会话密钥的生成 128位的随机数是由CAST-128自己生成的。,三、应用层安全协议,27,密钥标识符 一个用户有多个公钥/私钥对时,接收者如何知道发送者是用了哪个公钥来加密会话密钥? 将公钥与消息一起传送。但RSA公钥太占空间 将一个标识符与一个公钥关联。 定义KeyID 包括64个有效位:( KUa mod ) PGP数字签名同样也需要KeyID。 一个消息包含三部分: 报文message component 签名Signature (optional) 会话密钥session key component (optional),三、应用层安全协议,28,Format of PGP