现代密码学和IPsec中的加密

    IPSEC 的安全性是建立在现代密码学基础上的。由密码协议和密码算法两方面来保证安全性。其中密码算法是基础,它可以提供数据的机密性,数据的完整性验证以及身份验证。

1. 数据的机密性和密钥算法。现代密码学中,数据的安全不能靠一个算法的保密性提供,而是靠密钥的保密性。算法总是公开的,而密钥需要保密。基于密钥的算法分为:对称密钥算法和非对称密钥算法。

A. 对称密钥算法:从加密的密钥可以推出解密的密钥,或加密的密钥就是解密的密钥,所以称为对称密钥。

如果密钥相同,明文相同,则每次加密生成的密文也是相同的。所以提出加密块链接模式(CBC模式)来增加机密性,让相同的密钥加密相同的明文产生不同的密文。CBC模式的方法为,先产生一个随机数块,称为初始化矢量IV,在加密第一个明文块前,先和IV进行异或运算再加密。生成的密文块再和第二块明文相异或,然后再加密。如此类推。而解密过程恰恰相反,先解密第一块密文块,然后和IV相异或,就又得到了第一块明文块。然后解密第二块密文,再和第一个密文块相异或,得到了第二块明文块。以此类推就完全解密了由于使用了IV,所以每次只要IV不同就可保证密文不同了。但双方通信时除了要知道对称密钥外还要知道对应的IV才能正确的解密。

B. 非对称密钥算法:也称为公共密钥算法,加密和解密使用不同的密钥。而且加密密钥和解密密钥完全无关。好处在于其中一个密钥可以完全公开,所以称作公共密钥,而另一个称为私有密钥。

RSA是常用的公共密钥算法。它的好处是使用公共密钥加密的数据可以使用私有密钥解密;使用私有密钥加密的数据可以使用公共密钥解密。前者通常用于加密,后者通常用于数据签名。数字签名是身份验证中常用的方式。

使用公共密钥加密有一个很大的缺点,即加密的速度慢,不适合大量的数据加密。(my words:移动节点中就更不适合了)。实际应用中,需要加密大量数据的时候还是应该采用对称加密算法。

 

2.身份验证和数据完整性验证。数字签名通常用来进行身份验证。例如RSA签名。RSA的私钥加密过程就可称为数字签名。当想要验证对方身份时,只要发送一段明文给对方让对方进行签名然后发送回签名,这时使用对方的公共密钥解密签名,再和原始明文比较,若相同则验证了对方身份。RSA数字签名和公共密钥加密有同样的缺点,也不适合对大量的数据进行操作。

保证数据完整性常用的方法是使用一个单向散列函数,对发送的数据进行HASH运算,得到一个位数少得多的散列值,并将其和数据一起发送,接收方收到之后,也进行一次HASH运算,再比较两个散列值,如果相等则证明了完整性。但必须保证散列值不被伪造,一是对散列值签名后将签名随数据一道发送。另一种方法是对数据进行HASH运算时,必须同时加入一个秘密密钥参与到计算中,计算得到的散列值为消息验证码(MAC)。

常用的单向散列函数算法有MD5,SHA。MD5产生128位散列值,SHA产生160位散列值。

 

IPsec中使用的安全协议

Ipsec为ip层提供的安全服务是通过AH和ESP及加密密钥管理程序和协议来实现的。

传输模式的终点必须是加密的终点。经ipsec处理之后,只能交给传输层进行处理。该方式在终端系统上实现。隧道模式下,通信终端可以是由受保护的内部IP头指定的地点,而加密终点则是那些由外部ip头指定的地址。这种方式一般在安全网关上使用,ipsec处理结束,安全网关会剥离出内部ip报文,再将其转发给最终的目的地,虚拟专用网络就是由ipsec协议这这种特性实现的。

ESP可以提供数据机密性和数据完整性验证,这两个功能是可选的,但是必选其一。Free/WAN实现中ESP采用的加密算法是3DES-CBC,验证算法是HMAC-MD5-96或HMC-SHA-96。

密文一定是得到验证的,而验证的部分不一定都加密。对于外出包来说,先加密后验证,对于进入包先验证后解密。

初始化向量IV是某些加密算法如CBC需要的。

对数据进行加密时,块加密算法要求数据长度是秘密块长度的整数倍,填充字段完成这个任务,同时隐藏了数据的实际大小。

验证字段是可变长字段,它包含一个完整性校验值(ICV)。该值的计算不包含验证数据字段本身,只有SA选择验证服务才包含该字段。

AH只能提供数据完整性验证而不提供数据机密性。即使如此还需要AH的原因是它不仅对报文中的数据进行完整性验证,同时可以对AH报文外的IP报头部分字段提供完整性验证。

   Free/WAN中AH采用和ESP一样的验证算法。

   无论是AH或是ESP,它们的隧道模式中内部IP头包含通信的原始寻址,而外部IP头包含了IPsec处理的终点地址,从而隐藏了最终信息流的源和目的。

 

安全联盟(SA)

SA的使用并不局限于IPsec,但它是ipsec的基础。SA是两个通信实体经协商建立起的一种协定。它们决定用来保护数据包安全的IPsec协议、验证/加密算法、密钥以及密钥的有效存在时间等等。

SA协议相关。有方向性。为了保密主机之间或者安全网关之间的双向通信要求两个SA(每个方向上一个,且在同一端)

一个SA由三元组唯一确定。包括一个安全参数索引(SPI)、目的IP地址和一个安全协议(AH或ESP)标识符。

SA分为两种类型:传输模式和隧道模式。传输模式SA是两台主机之间的安全协定。只要一个SA的任意一端是安全网关,SA必须是隧道模式。主机必须支持隧道模式和传输模式。安全网关仅支持隧道模式。

单一SA上传输的IP数据包有一种安全协议提供保护,AH或ESP,但不是两者同时。有时一种安全策略可能需要为特殊信息流调用一组混合服务,这不是单个SA可以完成的。这时需要SA集束。SA可能通过两种方式集束:传输相邻和重叠隧道。

Ipsec体系中包含两个重要组件:安全策略数据库(SPDB)和SA数据库(SADB)。对于每个进入或者离开IP堆栈的数据包,都必须检索SPDB,寻找可能的安全应用。每个SPDB表项定义一对通信实体之间采取的策略:丢弃、绕过或者应用。丢弃表示不让通信双方的包进入或者外出;绕过表示不对外出包应用安全服务,也不指望对方进入的包进行了安全处理;应用指对外出的包应用安全服务,同时要求进入的包也应用了安全服务。对定义了应用行为的SPDB表项,它们均会指向SADB中的一个SA或者一组SA,表示要将其应用于数据包。

对于出站的数据包,当它由传送层流进IP层时,IPsec首先检索SPDB,判断应为数据包提供哪些安全服务。如果策略要求安全服务且SA已经建立则直接应用SA。如果SA没有建立则需要首先建立SA,再进行处理。

入站的包如果应用了IPsec,则由IPsec层对这个包进行处理,IPsec层会从IP报文中提取SPI、目的IP地址和安全协议值,对SADB进行检索,如果SA不存在则丢弃该IP报文丢弃,否则交由AH或ESP层进行协议载荷处理。

 

SA的管理——IKE协议

IPsec中的安全协议在处理数据前,必须要和通信对方建立SA。有手工和自动两种方式。IPsec采用一种标准的、自动的SA管理协议,即IKE协议。IKE本身是个混合性协议,它主要建立在ISAKMP协议所定义的框架上,同时借鉴了Oakley协议中不同模式的思想。

 

转载于:https://www.cnblogs.com/chian/archive/2011/05/23/2054359.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值