1.IPSEC 提供了下列服务:

数据的机密性----------这是通过加密来防止数据遭受窃听***。

数据的完整性和验证--------通过HMAC功能来验证数据包没有被损坏,并通过一个有效地对等体收到。

抗回放检测--------这是通过在数据包中包括加密的序列号确保来自中间人***设备的抗回放***不能发生。

对等体验证--------这是为了在两个对等体之间传递之前。对方就是"他说它是"的设备。设备验证支持对称欲共享密钥、非对称欲共享密钥、以及数字证书。远程访问连接也支持使用XAUTH的用户认证。

2.IPSEC ×××的基本过程:

ISAKMP/IKE阶段1

1>一个×××网关对等体发起了到另外一个远端的×××网关对等体的会话。

2>ISAKMP/IKE阶段1开始,两个对等体协商如何保护管理连接。

3>DH用于在管理连接上对加密算法和HMAC功能安全地共享密钥。

4>在安全的管理连接上执行设备认证。

ISAKMP/IKE阶段2

5>对等体协商参数和密钥消息来保护数据连接(通过安全的管理连接来实现的,或者可选性的再次使用DH)

6>建立数据连接,×××网关现在可以通过数据连接保护用户的流量。阶段2结束。

3.远程访问IPSEC ×××的基本过程

ISAKMP/IKE阶段1

1>远程访问客户发起到远程×××网关的连接。

2>当用户和×××网关协商如何保护管理连接时,IKE阶段1开始。

3>DH用于在管理连接上对加密算法和HMAC功能安全的共享密钥。

4>在安全的管理连接上实行设备认证。

ISAKMP/IKE阶段1.5

5>可选的,执行用户认证。这是通过XAUTH标准实现的。×××网关要求用户输入用户名和口令。

6>可选的,IPSEC网关会把策略推送到客户方,厂商在实施的时候可能存在私有性,例如,一个非cisco客户可能不理解被一个cisco ×××网关推送的策略。在cisco实施中,客户可以推送一个内部的IP地址,一个域名、DNS和WINS服务器的地址、隧道分离的策略、防火墙的策略和其他的连接策略。

7>可选的,可以发生反向路由注入。这就是为什么客户可以可选的通过IPSEC的管理连接向×××的网关注入路由选择信息,而×××网关可以将这个路由选择信息注入到内部的的网络。

ISAKMP/IKE阶段2

8>阶段2开始:客户和×××网关协商参数和密钥信息来保护数据连接。

9>数据连接建立,阶段2结束:×××网关现在可以通过数据连接保护用户数据了。

10>最终与管理和数据连接相关的生存周期将会到期,这些连接将会重新构建。

4.加密算法

加密算法中包括对称加密和非对称加密。

对称加密的优点是加密速度快,加密后的数据少,缺点是密钥交换不安全。主要有DES、3DES、AES等

非对称加密的优点是密钥交换安全。既能用于既能用于加密,也能用于认证。缺点是加密缓慢,加密后数据较长。主要有RSA等。

5.数据包认证(HMAC功能+DH算出的密钥)

×××主要启用散列消息验证码(HMAC)功能来实现数据包的认证和设备的认证(对数据包的完整性认证和源认证)。通常散列函数有一个缺点:如果一个窃听者可以截获被发送的数据,他可以很容易的产生关于这个数据的签名。HMAC通过一个共享密钥来产生数字签名从而克服了这个问题。只有知道密钥的另一方才能建立并检验发送的数据的签名。这里只能确定数据是完整的,没有确定源或目的就是想要建立连接的那位,因为虽然他们的密钥是相同的,但是这个密钥是通过DH方法交换来的,DH也不能确定对方是其应该交换密钥的一方。也就是说这里的源或者目的可能是***者。

HMAC的基本及制图如下:

clip_p_w_picpath001

HMAC的另一个问题就是当你的数据在两个设备之间发送的时候,你的签名可能被一个中间设备破坏。例如一个地址转换设备。或者需要更改QOS信息。解决方法就是:在使用HMAC功能计算数字签名的时候不要包括数据包中某些字段。这些字段包括IP数据包中下述字段:IP地址字段、存活时间字段、服务类型、TCP或者UDP端口号字段和可能的其他字段。

6.密钥交换(DH算法)

clip_p_w_picpath003

DH算法可以分为1、2、3、4、5、7、14、15等类型。Cisco路由器只是支持1、2、5三种。

DH算法可以是直线算法或椭圆曲线两种。

DH算法能够动态的、安全地、带内的方式来周期性的刷新密钥。将实际管理它们的时间缩小到一个很少的时间。

DH算法为数据加密和数据完整性认证(HMAC)提供密钥

DH密钥交换过程是在一个不安全的网络上进行的,公钥不能确定发送到了想要发送的对等体上。也就是说存在中间人***。所以还需要进行对等体的认证也就是设备认证。

7.设备认证和用户认证(这部分进行了源认证)

设备认证通常使用下面三种方法:

欲共享对称密钥(HMAC功能+配置的欲共享密钥)

欲共享非对称密钥

数字证书

远程访问×××增加了一个额外的特性:将用户放入到组的能力,这个时候的欲共享密钥就是组欲共享密钥,对组进行认证,同一组的用户认证×××网关使用相同的欲共享密钥,×××网关使用与共享密钥认证一个组。但是如果×××网关要认证一个用户,则要进行用户认证,也就是用户需要提供一个用户名和密码。这是在×××1.5阶段XAUTH中进行的。


==============================================================================

一、一些基本命令。

R1(config)#crypto ?

  dynamic-map  Specify a dynamic crypto map template

//创建或修改一个动态加密映射表

  ipsec        Configure IPSEC policy

//创建IPSec安全策略

  isakmp       Configure ISAKMP policy

//创建IKE策略

  key          Long term key operations

//为路由器的SSH加密会话产生加密密钥。后面接数值,是key modulus size,单位为bit

  map          Enter a crypto map

//创建或修改一个普通加密映射表

 

Router(config)#cryptodynamic-map ?

  WORD  Dynamic crypto map template tag

//WORD为动态加密映射表名

 

Router(config)#cryptoipsec ?

 security-association  Securityassociation parameters

// ipsec安全关联存活期,也可不配置,在map里指定即可

  transform-set         Define transform and settings

//定义一个ipsec变换集合(安全协议和算法的一个可行组合)

 

Router(config)#cryptoisakmp ?

  client  Set client configuration policy

//建立地址池

  enable  Enable ISAKMP

//启动IKE策略,默认是启动的

  key     Set pre-shared key for remote peer

//设置密钥

  policy  Set policy for an ISAKMP protection suite

//设置IKE策略的优先级

 

Router(config)#cryptokey ?

  generate  Generate new keys

//生成新的密钥

  zeroize   Remove keys

//移除密钥

 

Router(config)#cryptomap ?

  WORD  Crypto map tag

//WORDmap表名

 

二、一些重要命令。

Router(config)#cryptoisakmp policy ?

  <1-10000>  Priority of protection suite

//设置IKE策略,policy后面跟1-10000的数字,这些数字代表策略的优先级。

Router(config)#cryptoisakmp policy 100   //进入IKE策略配置模式,以便做下面的配置

Router(config-isakmp)#encryption?   //设置采用的加密方式,有以下三种

  3des  Three key triple DES

  aes   AES - Advanced Encryption Standard

  des   DES - Data Encryption Standard (56 bitkeys).

Router(config-isakmp)#hash?  //采用的散列算法,MD5160位,sha128位。

  md5  Message Digest 5

  sha  Secure Hash Standard

Router(config-isakmp)#authenticationpre-share   //采用预共享密钥的认证方式

Router(config-isakmp)#group?            //指定密钥的位数,越往下安全性越高,但加密速度越慢

  1  Diffie-Hellman group 1

  2  Diffie-Hellman group 2

  5  Diffie-Hellman group 5

Router(config-isakmp)#lifetime?   //指定安全关联生存期,为60-86400

 <60-86400>  lifetime inseconds

Router(config)#cryptoisakmp key *** address XXX.XXX.XXX.XXX

//设置IKE交换的密钥,***表示密钥组成,XXX.XXX.XXX.XXX表示对方的IP地址

Router(config)#cryptoipsec transform-set zx ?

//设置IPsec交换集,设置加密方式和认证方式,zx是交换集名称,可以自己设置,两端的名字也可不一样,但其他参数要一致。

  ah-md5-hmac   AH-HMAC-MD5 transform

  ah-sha-hmac   AH-HMAC-SHA transform

  esp-3des      ESP transform using 3DES(EDE) cipher (168 bits)

  esp-aes       ESP transform using AES cipher

  esp-des       ESP transform using DES cipher (56 bits)

  esp-md5-hmac  ESP transform using HMAC-MD5 auth

  esp-sha-hmac  ESP transform using HMAC-SHA auth

例:Router(config)#cryptoipsec transform-set zx esp-des esp-md5-hmac

Router(config)#cryptomap map_zx 100 ipsec-isakmp

//建立加密映射表,zx为表名,可以自己定义,100为优先级(可选范围1-65535),如果有多个表,数字越小的越优先工作。

Router(config-crypto-map)#matchaddress ? //ACL来定义加密的通信

  <100-199>  IP access-list number

  WORD       Access-list name

Router(config-crypto-map)#set?

  peer                  Allowed Encryption/Decryptionpeer.   //标识对方路由器IP地址

  pfs                   Specify pfs settings   //指定上面定义的密钥长度,即group

 security-association  Securityassociation parameters   //指定安全关联的生存期

  transform-set         Specify list of transform sets inpriority order

//指定加密图使用的IPSEC交换集

router(config-if)#crypto map zx

//进入路由器的指定接口,应用加密图到接口,zx为加密图名。

三、一个配置实验。

wKioL1YzLU7TtTxgAACVJOrdl2A164.jpg

1.R1上的配置。

Router>enable

Router#config terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router(config)#hostname R1

//配置IKE策略

R1(config)#crypto isakmp enable

R1(config)#crypto isakmp policy 100

R1(config-isakmp)#encryption des

R1(config-isakmp)#hash md5

R1(config-isakmp)#authentication pre-share

R1(config-isakmp)#group 1

R1(config-isakmp)#lifetime 86400

R1(config-isakmp)#exit

//配置IKE密钥

R1(config)#crypto isakmp key 123456 address 10.1.1.2

//创建IPSec交换集

R1(config)#crypto ipsec transform-set zx esp-desesp-md5-hmac

//创建映射加密图

R1(config)#crypto map zx_map 100 ipsec-isakmp

R1(config-crypto-map)#match address 111

R1(config-crypto-map)#set peer 10.1.1.2

R1(config-crypto-map)#set transform-set zx

R1(config-crypto-map)#set security-association lifetimeseconds 86400

R1(config-crypto-map)#set pfs group1

R1(config-crypto-map)#exit

//配置ACL

R1(config)#access-list 111 permit ip 192.168.1.10 0.0.0.255192.168.2.10 0.0.0.255

//应用加密图到接口

R1(config)#interface s1/0

R1(config-if)#crypto map zx_map

 

2.R2上的配置。

R1的配置基本相同,只需要更改下面几条命令:

R1(config)#crypto isakmp key 123456 address 10.1.1.1

R1(config-crypto-map)#set peer 10.1.1.1

R1(config)#access-list 111 permit ip 192.168.2.10 0.0.0.255192.168.1.10 0.0.0.255

 

3.实验调试。

R1R2上分别使用下面的命令,查看配置信息。

R1#show crypto ipsec?

  sa            IPSEC SA table

  transform-set Crypto transform sets

 

R1#show crypto isakmp?

  policy Show ISAKMP protection suite policy

  sa     Show ISAKMP Security Associations

 

四、相关知识点。
对称加密或私有密钥加密:加密解密使用相同的私钥
DES--数据加密标准 data encryption standard
3DES--3倍数据加密标准 triple data encryptionstandard
AES--高级加密标准 advanced encryptionstandard

一些技术提供验证:
MAC--消息验证码  messageauthentication code
HMAC--散列消息验证码  hash-basedmessage authentication code
MD5SHA是提供验证的散列函数
对称加密被用于大容量数据,因为非对称加密站用大量cpu资源

非对称或公共密钥加密:
RSA   rivest-shamir-adelman
用公钥加密,私钥解密。公钥是公开的,但只有私钥的拥有者才能解密

两个散列常用算法:
HMAC-MD5 使用128位的共享私有密钥
HMAC-SHA-I  使用160位的私有密钥

ESP协议:用来提供机密性,数据源验证,无连接完整性和反重放服务,并且通过防止流量分析来限制流量的机密性,这些服务以来于SA建立和实现时的选择。
加密是有DES3DES算法完成。可选的验证和数据完整性由HMACkeyed SHA-IMD5提供
IKE--internet密钥交换:他提供IPSEC对等体验证,协商IPSEC密钥和协商IPSEC安全关联

实现IKE的组件
1des3des 用来加密的方式
2Diffie-Hellman  基于公共密钥的加密协议允许对方在不安全的信道上建立公共密钥,在IKE中被用来建立会话密钥。group 1表示768位,group 2表示1024
3MD5SHA--验证数据包的散列算法。RAS签名--基于公钥加密系统