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的基本及制图如下:
HMAC的另一个问题就是当你的数据在两个设备之间发送的时候,你的签名可能被一个中间设备破坏。例如一个地址转换设备。或者需要更改QOS信息。解决方法就是:在使用HMAC功能计算数字签名的时候不要包括数据包中某些字段。这些字段包括IP数据包中下述字段:IP地址字段、存活时间字段、服务类型、TCP或者UDP端口号字段和可能的其他字段。
6.密钥交换(DH算法)
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
//WORD为map表名
二、一些重要命令。
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? //采用的散列算法,MD5为160位,sha为128位。
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为加密图名。
三、一个配置实验。
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.实验调试。
在R1和R2上分别使用下面的命令,查看配置信息。
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 standard3DES--3倍数据加密标准 triple data encryptionstandardAES--高级加密标准 advanced encryptionstandard一些技术提供验证:MAC--消息验证码 messageauthentication codeHMAC--散列消息验证码 hash-basedmessage authentication codeMD5和SHA是提供验证的散列函数对称加密被用于大容量数据,因为非对称加密站用大量cpu资源非对称或公共密钥加密:RSA rivest-shamir-adelman用公钥加密,私钥解密。公钥是公开的,但只有私钥的拥有者才能解密两个散列常用算法:HMAC-MD5 使用128位的共享私有密钥HMAC-SHA-I 使用160位的私有密钥ESP协议:用来提供机密性,数据源验证,无连接完整性和反重放服务,并且通过防止流量分析来限制流量的机密性,这些服务以来于SA建立和实现时的选择。加密是有DES或3DES算法完成。可选的验证和数据完整性由HMAC,keyed SHA-I或MD5提供IKE--internet密钥交换:他提供IPSEC对等体验证,协商IPSEC密钥和协商IPSEC安全关联实现IKE的组件1:des,3des 用来加密的方式2:Diffie-Hellman 基于公共密钥的加密协议允许对方在不安全的信道上建立公共密钥,在IKE中被用来建立会话密钥。group 1表示768位,group 2表示1024位3:MD5,SHA--验证数据包的散列算法。RAS签名--基于公钥加密系统