« Back
in 安全 VPN 思科 read.

VPN理论4

密钥交换

对称加密算法和对称MAC都要求使用一个共享的密钥;如何来共享这个密钥?这个时候就要使用DH密钥交换了

DH是第一种公共密钥加密系统(Diffie-Hellman是一种建立密钥的方法,而不是加密方法。然而,它所产生的密钥可用于加密、进一步的密钥管理或任何其它的加密方式)。DH密钥交换建立在"离散对数问题"的基础上。

 

DH交换过程中涉及到的 所有参与者首先都必须隶属于 一个组。这个组定义了要使用哪个质数p,以及底数g。

Diffie-hellman密钥交换分两个部分:

1.在每一端(A和B),需要选择一个随机的私人数字(小a 和 小b),并在组内进行乘幂运算,产生一个公共值(大A 和 大B)

VPN4-1

 

2.开始交换自己的公共密钥,A将 大A 给B,B将 大B 给A,他们再次进行乘幂运算,使用当事人的公共值作为底数,以生成共享的一个秘密

VPN4-2

 

DH密钥交换的一个缺点:易受 中间人 的攻击;解决方法:中间人攻击并不足以证明DH的脆弱,只要A和B为自己的公共值加上了数字签名,便能有效地防范这类攻击。

 

PFS

短暂的一次性密钥的系统,称为 完美向前保密 perfect forward secrecy

如果加密系统中有一个密钥是所有对称密钥的衍生者(始祖),便不能认为是一个 完美向前保密 的系统。在这种情况下,一旦破解了根密钥,便能拿到自它衍生的所有密钥,受那些密钥保护的全部数据都会曝光。  

在IPSec里面,pfs是通过在IPSec SA协商阶段,从新进行一次DH交换来实现的。

 

IPSec基本概念

IPSec是一个三层的协议。IP层。

 

IPSec的两种模式

transport mode----加密点=通信点,可以保留原有数据包的原有头部。

不产生新的IP头部,要求原有IP数据包可以在internet路由,要求通讯点和加密点为同一个IP。(通信点必须等于加密点;能够使用transport mode就尽量使用,因为节省了一个头,少了20字节的浪费)

tunnel mode-------加密点不等于通信点,是需要在原有的数据包上打一个全局可路由的头部的。

产生新的可路由IP头,可以解决不同私有网络之间跨越internet数据包的加密传送。(通信点不一定要等于加密点;不管加密点是否等于通信点都是可以使用tunnel mode的)

 

VPN4-3

 

SA 安全关联

SA是两个通信实体经协商建立起来的一种协定。它们决定了用来保护数据包安全的IPSec协议,转码方式,密钥以及密钥的有效存在时间。

任何IPSec实施方案都会构建一个SA数据库(SADB),维护IPSec协议用来保障数据包安全的SA记录。

SA是单向的。SA还是与协议相关的。每种协议都有一个SA。如果A和B同时通过AH和ESP进行安全通信,那么每个主机都会针对每一种协议来构建一个独立的SA。

 

SPD 安全策略数据库

SPD检索的输出,可能出现下面这几种情况:

1. 丢弃这个包,此时包不会被处理,只是简单的丢弃(PC上可以使用,在windows ip安全策略里面可以设置)

2. 绕过安全服务,IP层会在载荷内 添加IP头,然后分发IP包(就是没有匹配感兴趣流量的,正常路由转发)

3. 应用安全服务,在这种情况下,假如已建立一个SA,就会返回指向这个SA的指针;假如未建立SA,就会调用IKE,将这个SA建立起来。

如果策略的输出规则强行将IPSec应用于数据包,那么在SA正式建立起来之前,包不会被传送出去。

 

应用SPD的依据

利用ACL来定义,包括:源地址、目的地址、协议、上层端口、名字