HTML/JavaScript

2016年11月26日星期六

【Cisco】【安全】【CCNA】IPSec VPN 基础介绍

IPSec VPN 基础介绍

IPSec VPN 基础介绍

介绍

  1. vpn基础概念
  2. ipsec vpn框架
  3. ESP封装方式和传输模式介绍

VPN基础概念

虚拟专用网(英语:Virtual Private Network,简称VPN),是一种常用于连接中、大型企业或团体与团体间的私人网络的通讯方法。虚拟私人网络的讯息透过公用的网络架构(例如:互联网)来传送内联网的网络讯息。vpn分为远程接入vpn和站点到站点vpn。

· 远程接入:通常是终端连接到公司网关,访问公司内部网络。
· 站点到站点:通常是网关和网关之间建立vpn隧道,使其从一个站点到另外一个站点通信,好似在同一个内网中一样。

远程接入的vpn种类有:ipsec vpn、PPTP、SSL、L2TP+ipsec。
站点到站点的vpn种类有:ipsec vpn、GRE tunnel、帧中继、MPLS VPN。

由于需要使用公网进行数据传输,那么为了保证数据的安全。我们至少需要保障:
·私密性:传递的数据包经过加密。
·完整性:数据在传递的过程中没有被修改。
·源认证:数据是可信任的源传递给我。

enter image description here

IPSec VPN框架

ipsec框架包括,加密、认证(验证)、封装协议、传输模式、密钥有效期。

加密和认证

既然在公网上传输需要解决。私密性、完整性、源认证。那么我们来看看ipsec vpn如何解决这些问题呢?

私密性,私密性固然可见。就是希望传输的数据不是明文,而是经过加密之后的。然而这就涉及到一个加解密的概念。我们先谈加密,在加密算法中,分为两种一种是对称密钥。另外一种是非对称密钥。

对称密钥,加密和解密都是同样的密钥。例如传递数据“123”,使用密钥A’, 加密后的结果“abc”,对方收到“abc”加密文件之后自然要 使用密钥A’去解码“abc”才能得到想要的数据。那么问题来了,如何才能安全的分发密钥就成了关键。

非对称密钥,非对称密钥分为公钥和私钥。公钥用于加密数据,私钥用于解密数据,但是公钥无法对数据进行解密。由于共钥和私钥是一种不可逆的关系,所以公钥可以随意发放给任何人,而不必担心数据安全的问题,但是私钥必须自己保留。例如A和B要进行加密通信。A发送数据“123”,使用B’公钥加密得到结果“abc”,传递给B,B使用私钥B”进行解密即可得到数据。反之亦然。

既然非对称密钥这么好,我们直接使用非对称密钥不就好了么?从技术层面来说当然是这样,但是实际应用中涉及性能。非对称密钥算法加密性能不如对称密钥。所以有没有一种方法既可以安全的传输加密数据,又可以不耗损太多的性能呢?对称密钥和非对称密钥的结合。有关性能不部分可参见Performance Analysis of Data Encryption Algorithms

同样A要发送数据“123”,使用对称密钥B”,来进行加密,那么B”如何得到呢?通过非对称密钥来传递B”。大致过程如下。

Created with Raphaël 2.1.2Site_ASite_ASite_BSite_B发送公钥A'发送公钥B'彼此获取到对方的公钥使用(非对称密钥)B'的公钥来加密对称密钥A''使用(非对称密钥)A'的公钥来加密对称密钥B''安全获取到彼此用于数据加密的对称密钥

完整性和源认证。完整性和源认证是在非对称密钥算法的前提上所添加的。为什么这么说呢?因为无法保证数据的私密性,那么完整性和源认证根本无从谈起。就像两个人说悄悄话,中间者已经完全可以监听到你们谈话的内容,自然可以完完整整的修改内容。

完整性,所谓的完整性就是文件或数据在传输的过程中没有被修改,哪怕是漫无目的的修改。在文件中通常都会有一个md5。不管文件多大或文件多小,都能生成一个固定长度的md5值,并且这个值具备 “雪崩效应”、“不可逆”、“冲突避免”、“固定长度”。这么好的东西自然可以用来做完整性校验。因为哪怕是文件只修改了一个字符,md5计算出来的值也会有天壤之别。

源认证,源认证就是要保证我从对方收到的数据,真的是一个合法的源发送给我的。源认证主要用于防止中间人攻击,就是假冒一个合法的源,向对端传送数据。

在实际传输过程中,例如站点A要传数据到站点B, 明文数据通过散列函数算出一个散列值,然后将 数字签名和计算明文的散列值,通过公钥进行加密,传递到对方。对方收到数据之后会首先检查数字签名,解密成功之后确认是合法的源发给我的数据,然后才会对加密信息进行解密。

这样通过文件的散列函数确认了文件的完整性,通过数字签名解决了源认证的问题,并且通过非对称密钥算法解决文件传输加密的问题。这样就保证了网络层的安全。

封装协议和传输模式

在ipsec vpn中封装方式分为两种,一种是ESP封装一种是AH封装。我们少废话先看报文。
enter image description here

关于传输模式和隧道模式在下面有介绍,这里暂时不涉及。观察上图可以发现,AH只做了校验,并没有加密。反观ESP提供了加密、验证、校验完整功能。所以AH和ESP对比结果如下。

AH:提供源认证和完整性校验,但是不提供加密服务。不能穿越NAT
ESP:提供加密,源认证,完整性校验。

另外要说明的是AH 校验,并不是校验IP头中所有的字段,而是部分字段。这部分详细信息请参阅RFC2402。下图中黑色部分就说不校验的部分。之所以不校验这些字段是因为,这些字段在传输的过程中可能会发生改变,导致接受方校验错误而导致数据包的丢弃。

enter image description here

传输模式和隧道模式

在传输模式中分为传输模式和隧道模式。这里涉及2个点,一个是加密点和通信点。例如在一个二层以太网环境中,两台主机互相进行通信,那么他们之间的通信就是加密点等于通信点。但是如果要访问的是公网上分支站点的内部ip,此时的情况加密点和通信点并不是在一起,所以就需要使用到隧道模式。

enter image description here

密钥有效期

长时间使用相同的密钥来加密数据显然是不安全的,所以cisco默认设置3600秒的时候就会重新生成一次密钥,新生成的密钥与之前的密钥不存在衍生关系。保证了长期使用相同的密钥也不用担心暴力破解加密流量的可能性。

ESP封装方式和传输模式介绍

ESP报文结构如下,由于Wireshark解码的问题,这一部分可能观察不到。如下部分来自RFC4303和IPSec Overhead Calculator Tool。由于不同的加密方式会产生不同ESP大小,如下部分仅以此配置为准。具体查询,可参见IPSec Overhead Calculator Tool,如下部分不再赘述。

配置:

crypto isakmp policy 10
 encr aes
 hash sha512
 authentication pre-share
 group 16
 lifetime 60
crypto isakmp key cisco address 12.1.1.2       
!
crypto ipsec transform-set 123 esp-aes esp-sha-hmac 
 “mode transport or mode tunnel”
!
crypto map vpn 10 ipsec-isakmp 
 set peer 12.1.1.2
 set transform-set 123 
 match address vpn
!
ip access-list extended vpn
 permit ip host 1.1.1.1 host 2.2.2.2
!
end

enter image description here

enter image description here

Field Description
ESP Header SPI(4) 安全参数索引(Security Parameter Index)与目标地址和安全协议类型组合的32位值,用于标识要用于此数据报的安全关联。
ESP Header Sequence Number(4) 当在两个设备之间形成安全关联时,计数器字段初始化为零,每当使用此SA进行数据传输,此值将加一。 这用于防止重放攻击
Payload Data(Variable) 加密的有效载荷数据,由高层消息或封装的IP数据报组成。 还可以包括支持信息,例如某些加密方法所需的初始化向量。
ESP Trailer Padding(Variable 0 to 255) 根据需要包括用于加密或对齐的附加填充字节。
Pad Length(1) 填充字段的字节数。
ESP Trailer Next Header(1) 包含数据报中下一个报头的协议号。
ESP Authentication Data (Variable) 此字段包含应用可选ESP认证算法后产生的完整性检查值(ICV)
PACKET DETAILS(Transport Mode) value
Field Bytes
Original IPv4 Header 20
SPI (ESP Header) 4
Sequence (ESP Header) 4
ESP-AES (IV) 16
Original Data Payload 80
ESP Pad (ESP-AES) 14
Pad length (ESP Trailer) 1
Next Header (ESP Trailer) 1
ESP-SHA-HMAC ICV (ESP Trailer) 12
Total IPSec Packet Size 152
PACKET DETAILS(Tunnel Mode) value
Field Bytes
New IPv4 Header (Tunnel Mode) 20
SPI (ESP Header) 4
Sequence (ESP Header) 4
ESP-AES (IV) 16
Original Data Packet 100
ESP Pad (ESP-AES) 10
Pad length (ESP Trailer) 1
Next Header (ESP Trailer) 1
ESP-SHA-HMAC ICV (ESP Trailer) 12
Total IPSec Packet Size 168

参考文献

  1. Cisco IPSec VPN 实战指南 秦柯 著
  2. Performance Analysis of Data Encryption Algorithms
  3. Encapsulating Security Payload (ESP)
  4. RFC 2402 3.3.3.1.1.1 Base Header Fields
  5. IPSec Encapsulating Security Payload (ESP)
  6. RFC4303
  7. IPSec Overhead Calculator Tool

2017年10月12日更新

没有评论:

发表评论