IPsec
1、第3层网络层是能够提供终端网络连接能力的最低一层,因此它使得在IP中提供安全措施是非常有意义的,不幸的是IPv4本身没有内建安全机制,因此附加网络协议非常重要,IPsec是一个协议集,定义了在IP协议内提供安全服务和结构的详细说明。
2、IPsec提供了一系列的安全服务,包括访问控制、数据完整性、数据起源验证、反重放(Anti-Replay)以及数据机密性保护,IPsec可以不依赖于使用加密算法来实现这些业务。
3、基本的IPSec概念
IPSec提供一系列的安全服务,这些服务通过使用两个安全协议 AH和ESP。以及通过使用加密密钥管理过程和协议实现,包括:
①安全联盟(SA,Security Associations)
SA的概念是IPsec的中心,SA定义了各种类型的安全措施,当SA希望使用一个或者多个IPsec的阿暖服务的时候,它们在两个通讯对等体之间进行动态的协商[当然也可以由管理员指定静态的],一个SA由三个参数唯一确定:目的IP地址、安全协议标示符、SPI(Security Parameter Index,安全参数索引),目的IP地址是目的端点的IP地址,SPI通常是SA的目的端点选的一个32位数字,尽在目的端点内具有本地的有效性,安全协议标示符是针对AH(50)和ESP(51)的协议号。
如果两个对等体之间需要双向的通讯,那就需要两个SA,每个负责一个方向;SA运行在两种模式下,传送模式(Transport mode)和隧道模式(Tunnel Mode)。
传输模式:设计用来保护高层协议(TCP和UDP等)。
隧道模式:一个IP报文成为另外一个IP报文的有效负载,外部IP报文用于引导数据通过网络,内部IP报文受到加密措施或者其他安全措施。
验证报文头:
AH协议证实IP报文中传送的数据是可信的,这些数据到达目的地没有被篡改,也提供了反重传保护,但是不能通过加密数据来保持数据的机密性。
②密钥管理协议(ISAKMP,Internet Security Association and Key Management Protocol)
ISAKAMP定义了两个通讯对等体如何通过一系列的过程来保护它们之间的通讯信道,它为对等体提供了相互验证、交换密钥管理信息以及协商安全服务的手段,但是没有规定如何验证和产生何种密钥,也就是说它只为传输提供了工具,并没有规定要传送什么内容。
③Internet密钥交换协议(IKE,Internet Key Exchange)
IPsec的ESP和AH协议规定了如何将数据安全服务根据IPsec设备之间协商的SA应用于每个IP报文,但是它们并没有说明SA是如何进行协商的。SA能够通过系统管理员手工分配,或者通过密钥管理协议自动协商。
身份验证
1、身份认证(Authentication)是在一个已定义的上下文环境中验证某人或某事的身份的行为,身份认证上下文(Authentication Context)概念很重要,因为某个环境中的身份证据可能并不是另一个环境中的身份证据。
2、双方的身份认证有两种:单向和双向方案,单向方案中服务器必须验证客户,但是客户不需要验证服务器。双向方案中需要相互验证,如果服务器不出具证据,客户端就会拒绝连接和发送认证信息。
3、常见的认证方式
①口令(password):最简单,并且仍为广泛使用的双方认证形式,系统需要考虑试错(trial-and-error)攻击,可以考虑把这些用户放到惩罚盒(Penalty box),当然也容易把正常用户放进去。
②询问/应答(Challenge/Response):基于口令的方案,但是答案有多个。
③一次性口令(One-time Password):产生一次性口令列表。
④标志卡片(token card):避免人为因素的方法是使用设备来挑选口令,标志卡片就是这种设备,标志卡片产生数据流。一些标识卡片保持标志产生算法的秘密性;另一些将秘密种子和大家知道的算法一起使用,产生机制仅被验证者和标示卡片所知。【最流行的SecurID都有一个唯一的64位的种子值,与一个随机数产生器算法结合,每60秒产生一个新的编码,仅有相关的服务器知道哪个数字在该时刻对于用户和卡片组合有效,用户输入PIN和标志值,仅拥有SecurID不足以证明身份】
⑤智能卡(SmartCard):描述了一套信用卡大小的电子设备,用于存储和身份识别,提供存储和有一定处理能力的集成电路,甚至可能有它自己的操作系统。密钥被写入到EEPROM中,EEPROM被诸如单向保险丝和电压波动传感器包裹,密钥从未离开过卡片,可以便携。
4、PPP身份验证
点到点协议(Point-to-Point)实在点到点链路上封装网络层协议信息的标准方法。为了通过链路建立一个连接,链路的每个节点必须先交换LCP(Link Control Protocol,链路控制协议)报文来协商连接的配置,包括使用何种协议来验证链路的用户。
5、PAP口令身份验证协议
Password Authentication Protocol为用户提供了使用双向握手建立身份认证的简单方法,用户把ID和密码发送给对等体,直到认证成功或者结束,这个过程仅执行一次(连接初始化的时候),并且在持续的生命周期内都保持有效。因为密码和用户名一起发送,很不安全,应该在物理上安全的串行链路中使用,比如隧道、PPTP、L2TP、L2F等。
6、CHAP 挑战握手身份验证协议
Challenge Handshake Authentication Protocol是一个三向的握手,它被用来验证在PPP链路上用户的身份,共享密钥从来不在网络上以明文方式在用户和对等体之间传送,因为秘密是单向散列函数的密钥,所以CHAP的主要缺点是对等体必须存储用户的明文密码。
7、EAP 可扩展身份验证协议
Extensible Authentication Protocol是通用的身份验证协议,支持多重身份验证机制。因为PAP和CHAP是单一机制的协议,在LCP协商时就需要决定使用什么身份验证机制,而在EAP中可以在LCP协商阶段选择EAP,机制的实际选择推迟到身份验证阶段(Authentication Phase),支持MD5质询(像是CHAP),一次性口令、标识卡片等。使用多重验证机制容易导致攻击者把攻击集中在最薄弱的环节,从而有效地击败机制的最强部分,虽然可扩充、非常灵活,但是没有被广泛的使用。
8、RADIUS Remote Access Dial In User Service 远程访问拨号接入用户服务
RADIUS使用的是客户——服务器结构,包含两个部分组成:身份验证服务器和客户协议,服务器安装在中心计算机上,在NAS(网络访问服务器)上实现客户协议。
RADIUS和NAS之间使用共享密钥(shared Secret)来防止黑客窃听他们之间的通讯。
RADIUS采用分布式体系结构,NAS必须支持多重身份验证域的身份验证,控制NAS的ISP有一个集中的RADIUS代理,格式采用 @zb 这样的方式进行域的划分。
阅读(1678) | 评论(0) | 转发(0) |