- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[]IPSec原理与实践
IPSec原理与实践 IPsec是什么?
IPsec是给IP和上层协议提供安全的IP协议扩展。最初是为IPv6标准而开发的,后来返过来又支持IPv4。RFC2401描述了IPsec的体系。下面简单介绍一下IPsec。
IPsec使用两个不同的协议——AH和ESP来确保通信的认证、完整性和机密性。它既可以保护整个IP数据报也可以只保护上层协议。适当的模式称为:隧道模式和传送模式。在隧道模式下,IP数据报被IPsec协议完全加密成新的数据报;在传送模式下,仅仅是有效负荷被IPsec协议将IPsec头插入IP头和上层协议头之间来搬运(见图1)。
图1. IPsec 隧道模式和传送模式
为保护IP数据报的完整性,IPsec协议使用了“散列信息认证代码”(HMAC:hash message authentication codes)。为了得到这个“散列信息认证代码”,IPsec 使用了像MD5和SHA这样的散列算法根据一个密钥和数据报的内容来生成一个“散列”。这个“散列信息认证代码”包含在IPsec协议头并且数据包接受者可以检查“散列信息认证代码”(当然前提是可以访问密钥)。
为了保证数据报的机密性,IPsec协议使用对称加密算法。IPsec标准需要NULL和DES执行者。如今经常使用像3DES、AES和Blowfish这样更加强的算法。
为了避免拒绝服务攻击(DoS: denial of service attacks),IPsec协议使用了一个滑动窗口,每个数据包被分配到一个序号,并且只接受在不在窗口中的或新的数据包。旧的数据包立即丢弃。这可以避免重复攻击,即:攻击者记录原始的数据并稍后再次重发。
通信的双方为了能够加密和解密IPsec数据包,他们需要一种方法来保存通信的密钥、算法和IP地址等有关信息。所有的这些用来保护IP数据报的参数保存在一个“安全联盟”(SA:security association)中。“安全联盟”依次保存在一个“安全联盟”数据库(SAD:security association database)中。
每个“安全联盟”定义了以下参数:
? 结果IPsec头中的源IP地址和目标IP地址。这是IPsec双方保护数据包的IP地址;
? IPsec协议(AH还是ESP),有时也支持压缩(IPCOMP);
? IPsec协议用的加密算法和密钥;
? 安全参数索引(SPI)。这是一个32位的数据,用来识别“安全联盟”(SA)。
一些“安全联盟”数据库执行者允许存储更多的参数:
? IPsec模式(隧道模式或者传输模式);
? 用来避免重复攻击的滑动窗口大小;
? “安全联盟”的生命时间。
因为“安全联盟”定义了源IP地址和目标IP地址,在一个全双工IPsec通信中,它只能保护一个方向的通信。如果想保护双方的通信,IPsec需要两个单向的“安全联盟”。
“安全联盟”仅仅声明IPsec支持保护通信。需要定义另外的信息来声明什么时候通信需要保护。这些信息保存在“安全策略”(SP: security policy)中,“安全策略”又依次保存在“安全策略库”(SPD:security policy database)中。
一个“安全策略”通常声明下列参数:
? 被保护的数据包的源地址和目标地址。在传输模式下,这同SA的地址相同。在隧道模式下,他们可能不一样。
? 被保护的协议和端口。一些IPsec执行者不允许定义被保护的协议,这种情况下将保护所有涉及到的IP地址之间的通信。
? 用来保护数据包的“安全联盟”。
手动设置“安全联盟”十分容易出错并且不太安全。密钥和加密算法必须被共享到所有VPN(virtual private network)双方。特别是交换密钥给系统管理员造成危险的问题:在没有加密的情况下如何交换对称的密钥?
为了解决这个问题,又发明了互联网密钥交换(IKE:internet key exchange)协议。这个协议在通信的第一阶段鉴定双方身份。在第二阶段,商议好“安全联盟”并且对称密钥改变成使用一种Diffie Hellmann密钥交换。然后互联网密钥交换协议周期性地改变密钥来确保它们的机密性。
IPsec协议
IPsec协议包括两个协议:认证头协议(AH:Authentication Header)和封装安全负载协议(ESP:Encapsulated Security Payload)。两者都独立于IP协议。认证头协议使用IP协议的51,封装安全负载协议使用IP协议50(参考/etc/protocols)。下面两节将简要地介绍它们的属性。
认证头协议(AH:Authe
文档评论(0)