ipsecvpn毕业设计(编辑修改稿)内容摘要:

MAC,DiffieHellman 组 2,认证机制 预共享 . 第二个消息由响应者回应 ,内容基本一样 ,主要与发起者比较 ,是否与发起者匹配 ,不匹配就进行下一组的比较 .如果最终都找不到匹配 ,隧道就停止建立 . 第三个消息由发起者发出 ,但是在发出这个消息之前 ,有个过程必须先完成 ,就是DiffieHellman算法过程 .该过程的目的是什么呢。 刚刚第一二 条消息中所协商的算法它们必须需要一个 KEY,这个 KEY 在二个对等体上必须一样 ,但同时这个 KEY 不能在链路中传递 ,因为传递 KEY 是一个不安全的手段 .所以 ,该过程的目的是分别在二个对等间独立地生成一个 DH公共值 (该 DH公共值不是我们上面所说的 KEY),该公共值有什么用呢。 因为二个对等体上都生成该 DH公共值后 ,它们会在接下来的第三第四消息中传送给对方 ,打个比方 ,就是 A收到了 B的 DH公共值 Xb,B 收到了 A 的 DH 公共值 A,B 都收到了对方的该公共值后 ,问题就好解决了 .因为有一个公式在数学中被论证成立 ,借助该 公 式 ,就可以在二个对等上生成一个只有他们二个对等体知道的相同的 KEY,该公式为 发起者密秘 =(Xb)amod p=(Xa)bmod p=响应者密秘 Xb 为对等体 B的 DH公共值 ,Xa 为对等体 A的 DH公共值 a为只有对等体 A 知道的秘密 . b 为只有对等体 B知道的秘密 . 注意 ,这里发起者秘密和响应者密秘相等 ,但这个秘密不是最终算法中使用的 KEY,但对等体可通过该秘密材料来生 成另外三个密钥 ,分别是 : SKEYID_d此密钥被用于计算后续 IPsec 密钥资源 . 基于 Cisco 设备 IP Sec VPN 的设计与实现 10 SKEYID_a此密钥被用于提供后续 IKE 消息的数 据完整性以及认证 . SKEYID_e此密钥被用于对后续 IKE消息进行加密 . 所以由发起者发起的第三条消息主要是向对等体发送自己的 DH 公共值和一个临时值 . 临时值被用作生成上述 3个 SKEYID 的材料 . 第四条消息由响应者向发起者发送 ,主要是向发送者发送自己的 DH 公共值和临时值 . 由于第一二条消息协商算法 ,第三四条消息生成 KEY,所以在后续的第五六条消息就能被加密传送 . 第五条消息由发起者向响应者发送 ,主要是为了验证对端就是自己想要与之通信的对端 .这可以通过预共享 ,数字签名 ,加密临时值来实现 . 第六条消 息由响应者向发起者发送 ,主要目的和第五条一样 . 在这六条消息过后 ,也就是验证一旦通过 ,就进入了第二阶段 :快速模式 ,快速模式使用二条消息来实现 .快速模式发起者会在第一条消息中发送 IPsec SA 的转换集属性 ,如 :封装 ESP,完整性检验 SHAHMAC,DH 组 2,模式 隧道响应者向发起者发送第二条消息 ,同意第一条消息中的属性 ,同时也能起到确认收到对端消息的作用 .这一步一旦完成 ,隧道就建立起来了 ,用户的数据就能被放入隧道中传送 . 图 28 快速模式交换 示意图 2) IPSEC VPN 的安全基础 基于 Cisco 设备 IP Sec VPN 的设计与实现 11 【机密性保护 】 机密性保护的作用:防止信息泄漏给未经授权的个人。 A和 B要进行安全通信,假设 A要发送给 B:“ hello“这个信息,肯定不可能直接明文发送,所以要对发出去的信息进行加密处理,然后 B 收到后再进行解密处理,这样的过程就是保护数据机密性的过程。 几个概念: 算法:在加密和解密过程中采用的一组规则。 密钥:可以看作是密码算法的参数,用来控制加密,解密操作。 分为加密密钥 Ke和解密密钥 Kd。 就上面的例子,比如 A的消息“ hello”就是明文,假设算法是 这样的一组规则:加密的时候将字母往后移 x 个字母,解密的时候往前移位三个字母。 密钥是x,这里假设密钥为 3。 根据这个算法,加密后的密文就成了:“ khoor”,这样别人看到这串字母就不知道什么意思了。 解密密钥也是 x(这里也是 3),接受方根据解密算法就可以将密文向前移位三个字母,就可以得到明文。 因此我们可以这样理解,加密是要由算法和密钥共同组成的。 目前,很多加密算法都是公开的,也就是大家可以知道这些算法是怎么算的,都是有标准的。 但是密钥是要保护的,这样即时知道了算法,也不能解密。 就上面的例子来说,你知道算法是加 密后移 k位,解密前移 k位,但是你不知道密钥 k是多少,所以也就不能解密了。 算法是公开的,密钥是私有的,如何管理和分配私钥成为重要问题。 现在来看下图中的 Ke和 Kd, Ke是加密时候用的密钥, Kd 是解密时候用的密钥。 如果在算法中 Ke和 Kd是相同的,我们说这是个对称密钥算法。 如果在算法中 Ke和 Kd是不一样的,我们就说这是个非对称密钥算法。 在这里不对比这两种算法的优缺点,这里只需知道不管是对称还是非对称,都是加密算法,都可以用来作加密,只是密钥不同。 对称加密算法有: DES, 3DES, AES, IDEA, RC4, A5, (记住常用的三个即可) 非对称加密算法有: RSA, DiffieHellman, Rabin, ELGmal 机密性总结:。 ,算法是可以公开的,需要保护的是密钥。 : DES, 3DES, AES;常用的非对称加密算法: RSA,DiffieHellman(简称 DH) 【完整性保护】 通过对主机 A 的原始数据加密形成密文再传送保护了数据的机密性,但是在传输过程中,如果密文因为某些原因丢失了一部分, 或者被别人篡改了,那么在主机 B中就不能收到完整的 A所发送的的信息了。 因此我们需要一种方法来解决这个问题,即验证数基于 Cisco 设备 IP Sec VPN 的设计与实现 12 据的完整性。 完整性,可以这样理解,我们要通过某种方法,来判断 B收到的信息和 A给的信息是一样的,是完整的。 我们通过 hash 算法实现这一功能。 (这里需要注意的是完整性可以通过 hash 函数来实现,但是这些 hash 函数不仅仅只能用来做完整性保护,具体情况要看被 hash 的数据是什么而定,后续会提到。 ) HASH 算法是通过 HASH 函数来实现的。 hash 函数有: MD5, SHA1 hash 函数的特点,必须记住 的: ,输出是固定长度的值的值( MD5 是 128 位),叫 hash 值。 函数是单向的,即正向计算容易,求逆极其困难,我们这里认为是不可能的。 【身份认证】 身份认证:一种用来验证发送者的身份的真实性,通过身份认证可以发现那些假冒的顶替的入侵者。 从例子上看, A发给 B消息, B要验证消息确实是 A发出的,而不是别人发出的。 身份认证可用公钥密码体制来验证。 首先了解一下公钥的密钥体制的一些重要概念 : ,分为公钥和私钥。 ,只有对应的公钥才能解密。 用 于身份认证 ,只有对应的私钥才能解密。 用于数据加密 公钥密码体制不仅可以用在保护数据的机密性,而且可以用在身份认证中。 将公钥公开,就是任何人都可以得到公钥,发送者用相应的私钥加密,由于只有发送者才有私钥,所以只要接受者能用公钥解开,就能证明一定是拥有私钥的人发送的。 这样就验证了对方的身份。 总结一句话:私钥加密,公钥解密,实现身份认证。 IPSEC VPN 加密通信中的四个概念: 消息认证码 算法 【 MAC 消息认证码】 消息认证码( MAC) 就是带密钥的 hash 函数,用来做验证用。 MAC 消息认证码是将共享密钥和数据一起做 hash, 验证过程: 基于 Cisco 设备 IP Sec VPN 的设计与实现 13 和 B 通信之前已经协商好一个共享密钥,只有 A 和 B 知道。 将发出的消息和密钥一起做 hash 运算,得到 mac 值,附在消息后面。 收到消息和 mac 值,将消息和他共享密钥做同样的 hash 运算。 hash 值,因为只有消息和密钥都一样, hash 值才可能一样,所以如果 hash 值一样,则说明消息是正确的,而且说明消息是由 A(拥有共享密钥的人)发送的。 达到认证和完整性的目的。 注意: IPSEC VPN里用的就是 HMAC。 完整性和数据源认证的区别 本质区别:完整性检验只对消息做 hash 值,而数据源认证对数据和密钥做 hash。 第一,数据源认证必须要求通信,而数据完整性认证不一定需要通信,例如存储数据的完整性认证。 第二,数据源认证必然要求识别数据源,而数据完整性校验不一定需要,例如无源数据识别中的数据完整性校验。 消息认证码总结: 主要功能是用来做消息认证的。 hash 算法来实现的。 算法可以用来做完整性检验,也可以用来做消息认证,取决于所 hash 的内容有没有包含密 钥。 【数字签名】 数字签名,目的是认证,防止欺骗或抵赖。 数字签名涉及的技术:公钥密码体制和完整性检验。 回顾公钥密码体制的最重要特性:密钥是成对的,而且公钥加密只有私钥能解,同样私钥加密只有公钥能解。 p: L bits 长的素数。 L 是 64 的倍数,范围是 512 到 1024; q:是 p 1的 160bits 的素因子; g: g = h^((p1)/q) mod p, h满足 h p 1, h^((p1)/q) mod p 1; x:秘密密钥,正整数, x q; y: y = g^x mod p , ( p, q, g, y )为公钥; k为随机数, 0〈 k〈 q; H( x ): OneWay Hash 函数。 DSS 中选用 SHA( Secure Hash Algorithm )。 p, q, g可由一组用户共享,但在实际应用中,使基于 Cisco 设备 IP Sec VPN 的设计与实现 14 公共模数可能会带来一定的威胁。 签名过程如下: 图 211 数字签名示意图 数字签名方案有两个部分:签名算法和验证算法。 图 211和图 212表示签名算法和验证算法。 图 212 签名算法 图示说明:数据用 hash 函数哈希得到定长的输出,然后用私钥签名 hash 值。 数字签名的核心在于用私钥加密。 这里 hash 函数的作用有两个: 1)得到的定长输出,位数短,私钥签名的时候速度快。 2)保证数据的完整性。 验证算法: 基于 Cisco 设备 IP Sec VPN 的设计与实现 15 图 213 验证算法 数字签名总结: :完整性算法和公钥密码体制。 : DSS。 【数字证书】 数字证书,数字证书将身份标识与公钥绑定在一起,并由可信任的第三方权威机构用其私钥签名。 数字证 书可以防止“中间人攻击”。 图 214 中间人攻击 图示解说: ,(即“公钥”)指的是 hacker 的公钥,并不是真正的公钥,但是 Alice 认为是 BOb 的公钥。 从中间人攻击过程可以看出,不安全的因素在于不能识别公钥的来源。 数字证书就是为解决这个问题而来的。 数字证书的解决办法: 基于 Cisco 设备 IP Sec VPN 的设计与实现 16 ,形成证书,这样公钥就和身份相对应。 注意: 数字证书安全的前提是第三方是可信任的,如果第三方被伪造,数字证书就没有安全性可言。 数字证书总结: 1. 验证过程: A从第三方下载证书,内有 B的公钥和 B的身份标识,由第三方证明公钥是由 B 所持有。 2. 数字证书用来防止中间人攻击。 【 DH 算法】 DH算法,全称: Diffie — Hellman 算法,是一种非对称密钥算法。 目的: 在一个非安全的通道上安全地建立一个共享密钥,用来建立安全的信道。 数学基础:基于求离散对数难。 详细过程: 有两个全局公开的参数,一个素数 q和一个整数 a, a 是 q 的一个原根。 假设用户 A和 B希望交换一个密钥,用户 A选择一个作为私有密钥的随机数 XAq,并计算公开密钥 YA=aXA mod q。 A 对 XA 的值保密存放而使 YA能被 B 公开获得。 类似地,用户 B选择一个私有的随机数 XBq,并计算公开密钥 YB=aXB mod q。 B对 XB 的值保密存放而使 YB能被 A 公开获得。 用户 A 产生共享秘密密钥的计算方式是 K = (YB)XA mod q。 同样,用户 B 产生共享秘密密钥的计算是 K = (YA) XB mod q。 这两个计算产生相同的结果: K = (YB)XA mod q = (aXB mod q)XA mod q = (aXB)XA mod q (根据取模运算规则得到) = aXBXA mod q = (aXA)XB mod q = (aXA mod q)XB。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。