A、加密学原理

 
知识准备
peer--意指两端做×××的设备
 
DPD(Dead peer detection )--在一端有两个peer时做冗余备份的东东,用来检测链路是否可用,远端设备是否有效。
 
对称加密算法--只有一个密匙,即用来加密,也用来解密,速度快,密文紧凑,用于大量数据的传送
 
非对称加密--有一对密匙,如果用其中一个加密,必须用另一个解密。速度较慢,密文不紧凑,通常只用于数字签名,或加密一些小文件。
非对称加密的三个代表:DH(diffie-hellman)、RSA、ECC
 
对称加密代表:3DES--有三个密匙,用第一个密匙加密,用第二个密匙解密,再用第三个密匙加密
非对称加密代表RSA--有一对密匙,一个公匙,一个私匙,私匙加密,公匙解密,或者公匙加密,私匙解密
通常的应用方法,用非对称加密法来传送对称加密的密匙,或用在数字签名当中。
数字签名是用私匙加密,公匙解密。
 
diffie-hellman key exchange--用对方的公匙和自已的私匙产生一个双方都能知道的KEY,作对称加密用
DH group 1的长度是768位
DH group 2的长度是1024位
 
md5是验证,不是加密,用来做哈希
 
PKI--公共密匙架构,基于证书的×××
 
HASH的特点:
1、不管输入什么数据,输出是定长的
2、只要输入有一点微小变化,输出就会发生很大的变化,也就是雪崩效应
 
ESP在IP中的协议号是50
AH在IP中的协议号是51
 
UDP 500  isakmp协商过程所用的端口
NAT-T    使用UDP 4500端口
 
SA--安全关联
SPI--用来唯一定义一条IPsec通道
IK8的台子可以做安全实验
 
SDM--使用外部界面来配置×××
 
B、IPsec-×××--virtual private network
什么是×××--虚拟专用网
×××作用--在公网上传输私网路由,将私有网络联系起来
 
IPsec-×××是三层的×××
×××的类型:
1、GRE  2、VPDN  3、MPLS(不提供加密,由SP帮你完成)  4、IPSEC(加密,由自已部署) 
另一种分类:1、remote ×××  2、L2L
 
IPsec-×××提供三个特性:
1、authentication  每一个IP包的认证
2、data integrity  验证数据完整性,保证在传输过程中没有被人为改动
3、confidentiality (私密性)数据包的加密
 
 
IPsec协议集包括三个协议:
1、internet key exchange(IKE)密匙交换协议
   协议双方使用的算法,密匙,协商用的,协商完成再用下面的方法封装数据。
   IKE动态的,周期性的在两个PEER之间更新密钥
2、encapsulating secutity payload(ESP)封装安全负载
   可以对数据包认证,加密,封装,协议号--50,通常使用3DES来进行加密
3、authentication header (AH)
   只提供认证,封装,不提供加密,明文传送,协议号--51
 
IPsec×××的两种模式--
传输模式:在原包头之后插入一个字段,ESP使用
通道模式:产生一个新IP包头,AH使用,site-to-site的×××就是这种模式
 
--------------------------------------------------------------------------------------------------------------------------
①IKE
也是由三个不同的协议组成:
1、SKEME
2、Oakley
3、ISAKMP--定义了信息交换的体系结构,也就是格式//都是用来交换密钥
 
IKE的作用:用于在两个peer之间协商建立IPsec-×××通道
1、协商参数
2、产生KEY,交换KEY、更新KEY
 
 
建立×××通道的过程:分两个分阶段
第一阶段:
1、authenticate the peers
2、negotiate a bidirectional SA
3、main mode or aggressive mode(主模式或主动模式)
 
第二阶段:
1、IPsec SAs/SPIs
2、quick mode(快速模式)
 
 
②ESP
是一个三层协议,协议号是50
 
--------------------------------------------------------------------
 
 
 
IPsec×××的两种模式--
传输模式:在原包头之后插入一个字段,ESP使用
通道模式:产生一个新IP包头,AH使用
 
site-to-site ipsec ×××的协商过程,分两个阶段
1、establish ISAKMP policy
2、configure IPsec transform set
3、configure crypto ACL  配置感兴趣流,内部私网的地址去访问对端私网的地址就是感兴趣流。
4、configure crypto map
5、apply crypto map to the interface  在接口下应用
6、configure interface ACL 确定在外网接口放行哪些流量 
 
建立×××通道的过程:分两个分阶段
第一阶段:
1、authenticate the peers
2、negotiate a bidirectional SA
3、main mode or aggressive mode(主模式或主动模式)
 
第二阶段:
1、IPsec SAs/SPIs
2、quick mode(快速模式)
 
第一阶段的协商过程总共有6个包:
 
1、消息1和消息2用于peer之间协商加密机制
   ISAKMP包含有ISAKMP头、SA负载、提议负载、转换负载等字段
   总之是让双方协商好我们之间使用啥子协议、加密方法
 
2、消息3和消息4用于相互之间交换公共密匙
   两端的peer先各自生成自已的私匙和公匙,同时还产生一个临时值。然后再使用消息3或消息4将各自的公匙和临时值进行交换。
   交换完公匙后,每个peer先根据对方的公匙和自已的私匙生成一个共享秘密(使用DH算法),再根据共享秘密、对方的临时值、预共享密钥产生出三个SKEY:
   SKEYID_d--此密匙被用于计算后续IPsec密匙资源
   SKEYID_a--此密匙被用于提供后续IKE消息的数据完整性以及认证
   SKEYID_e--此密匙被用于对后续IKE消息进行加密
   消息3和4的ISAKMP包含以下字段:ISAKMP包头、密匙交换负载(KE)、临时值负载
 
3、消息5和消息6用于两个peer之间进行认证,这两个消息是用SKEYID_e进行过加密的。
  每个peer根据一大堆东东生成一个Hash值,再将这个值和自已的标识ID(通常是IP或主机名)发送给对方。当然,使用的就是消息5或消息6。
  每个peer收到对方的ID和Hash值后,先根据对方的ID找到对方的公匙,再计算本地Hash值,如果本地Hash值和对方的Hash值一样,就表示认证成功。
  这一步完成后,IKE SA被建立,主模式认证完成
 
第二阶段的协商过程总共有3条消息:
1、第一、二条信息是两个peer之间协商形成IPsec SA的封装协议、模式、加密算法,还要互发用DH重新生成的新的公匙和临时值,以及其它一些参数,像SPI、ID等等。
 
2、第三条消息通常由发起者发送给响应者,起一个确认的作用
  第三条信息发送前,两端的peer必须先用和DH相关的信息生成一个新的DH秘密,然后用该值和SKEYID_d以及其他一些参数一起来生成最终加解密的KEY。
 
本置实例:
 
一、定义感兴趣流:(只有这些原目地址才是×××感兴趣的,即要封装的.)
ip access-list extended ×××
  permit ip 192.168.2.0 0.0.0.255 192.168.3.0 0.0.0.255
 
二、IKE第一阶段
crypto isakmp policy 10
  encryption des
  hash md5
  authentication pre-share
  group 2
 
crypto isakmp key cisco address 202.100.13.3
 
pre-share key 定义
 
三、IKE第二阶段
crypto ipsec transform-set MYSET esp-des esp-md5-hmac
  mode tunnel
 
四、把感兴趣流与转换集映射一下
crypto map MYMAP 10 ipsec-isakmp
  set peer 202.100.13.3    设置×××对等体的地址
  set tranform-set MYSET  设置转换集
  match address ×××     感兴趣流和转换集的绑定
  
五、MAP与接口绑定
int s0
  crypto map MYMAP
 
show crypto isakmp policy
show crypto isakmp sa  第一阶段的SA
show crypto ipsec sa   第二阶段的SA
show crypto engineer
crypto ipsec security-association lifetime kilobytes   第二阶段的一个协商时间,也就是说多长时间后重新协商密匙。也可按已发了多少流量来进行协商。
 
clear crypto isakmp   清第一阶段   
clear crypto sa   清第二阶段
 
UDP 500协商过程所用的端口
NAT-T使用UDP 4500端口
 
SA安全关联
SPI用来唯一定义一条IPsec通道
 
设定接口只允许跑×××流量,在接口入设置
access-list 100 permit udp any eq 500 any eq isakmp
access-list 100 permit esp any any
或access-list 100 permit ahp any any
注意:在老IOS中,对包解密后还会再匹配一次访问列表,新的IOS中就不会,所以在老的IOS中要加入一条
access-list 100 permit ip 192.168.3.0 0.0.0.255 192.168.2.0 0.0.0.255
 
GRE
GRE是通常在tunnal中使用,可用来建×××,但不能加密
GRE通用路由封装---一个三层协议,能够将非IP的流量转换成IP流量,能对IP或非IP包进行再封装,在原始包头的前面增加一个GRE包头和一个新IP包头。明文传送,没有安全性。
新IP | GRE | 老IP | TCP | data
20字节  4字节
 
GRE有很好的隧道特性
1、支持多协议
2、支持组播
但是不安全
 
小知识:在tunnal中,指定目标地址之后,只要在本地路由表中有这个地址,tunnal就会up
注意在GRE中感兴趣流的定义:
access-list 100 permit gre host 202.100.13.3 host 202.100.12.2  必须定义公网地址
 
clear crypto ipsec sa   清第二阶段
 
GRE over IPsec(实用性很高的技术,不像IPsec×××那样麻烦)
原理:在tunnel中,先用GRE对数据包封装成IP包,再用IPsec加密
新IP | esp | GRE | 老IP | TCP | data
深蓝色的是加密的部分
IPsec只能对IP包加密,不能对非IP包加密。
 
 
easy×××---ramote access 使用这种方法
两个主要目的:
1、简单的client配置,easy ××× remote
2、中心的client配置,动态的推送配置到client,easy ××× server
所以client很easy,server端的配置一点都不easy
 
××× 3005以上的设备都可以做server
1700、1800可以做client,实际上不光可以用硬件来做client,软件也可以做,在移动办公中就是软件做
1800以上都可以做server
 
比site-to-site方式多了一个1.5阶段,使用主动模式
 
 
 
 
 
用SDM配置ipsec-×××
HTTPS: tcp 443端口
SSH: tcp 22端口
<http://www.cisco.com/go/sdm>
安装时要先装一个JAVE虚拟机
 
路由器上要先配置:
ip domain-name cisco.com
clock timezone GMT +8
clock set 
 
ip http secure-server
username ccnp privilege 15 password cisco
line vty 0 4
  login local  只能用local
  transport input ssh  只允许ssh
  
 
测试:从R3上登录R2一下:
R3# ssh -l ccnp 202.100.12.2
password:cisco
 
----------------------------------------
 
crypto isakmp keepalive 10 3 开启DBD检测
 
crypto map MYMAP 10 ipsec-isakmp
  set peer 202.100.13.3 default
  set peer 202.100.1.2          设置两个peer 冗余备份
  set tranform-set MYSET  
  match address ×××