3、针对安全协议指定加密算法、散列算法,这是第二阶段实际保护数据的加密(跟第一阶段加密无关)
学习目标:
1、安全的定义
2、安全四要素
3、IPsec建立过程
一、安全的定义
DMP-VPN、GRE-vpn能够无视端到端三层使用什么协议,边界启用隧道接口能启用IP,各个园区的tunnel接口(tunnel是园区内的接口必然私网地址)启用动态路由选择协议,缺点是不安全。
网络安全四点:
1、私密性:数据加密。
2、完整性:接受者收到数据没被篡改,散列散发实现完整性检查,二层有帧校验、三层有、四层TCP/UDP也有、应用层有的也有,报头、载荷校验,HMAC散列信息验证码。
3、源认证:确保双方建立的身份,高阶的对等体认证,避免中间人攻击。
4、不可抵赖性:你给我发的数据必须携带关键性证明信息,这个数据是你发的,通过数字证书/签名。
VPN能通只是最基础的第一步,在此基础上要考虑很多很多内容。
IPsec(三层)
IP securityipv6(IPv6原生态安全技术)
IPsec(原属于IPv6)只是一个框架。
IPv6全加密不利于监管(QQ聊天等等加密)。
针对数据传输领域中IPsec是最安全的数据传输技术。
IPv4中对于IPsec兼容性不足,多个园区之间做IPsec-VPN,彼此园区内私网跨越公网地址来通信。
IPsec两类(IPv4):
1、Lan-2-Lan IPsec:两个园区边界做VPN,园区内网通过隧道进行通信。
缺陷:
(1)、VPN两端是没有隧道接口(tunnel)的,无法基于IPsec的隧道运行OSPF传路由,传路由需要写静态。
(2)、不灵活,两端ACL必须要对称来保护兴趣流量。
(3)、只能针对IPv4流量做保护,只有单播流量能通过VPN传递。
GRE(功能完整)和DMVPN兼容性完美,IPsec(安全性高)兼容性不太行。
2、Remote Access IPsec:远程办公人员使用,接入Internet使用IPsec建立到公司总部边界(主机去往公司边界建立IPsec),使用需要对员工进行培训一步错了就建立不起来。
SSL VPN(四层):对于用户来说使用比较方便。
GRE的功能性、DMvpn结合Ipsec的安全性产生:
xxx over yyy:先xxx封装,后yyy封装
1、GRE over IPsec:先建立GRE隧道,基于GRE隧道再建立IPsec。
(1)、GRE建立隧道
(2)、IPsec建立安全,通过使用ESP
2、DMvpn over IPsec
二、安全四要素
安全四要素:
一、私密性:数据加密。
加密是一个动作,把明文通过加密算法和秘钥进行计算得出密文。
明文 —— 加密算法 + 秘钥 = 密文
最早加密是罗马帝国的凯撒密码(字母移位、字母替换),算法过于简单。
目前加密算法都是世界数学难题(DES、3DES、AES),只要秘钥不泄露。
攻击手段:暴力破解、字典攻击(出现频率高的)。
算法:
1、对称加密算法:加密和解密使用相同的秘钥(DES、3DES、AES),兼容性强、加密快解密也快、加密后数据紧凑,缺点是管理秘钥不易(高效安全的共享秘钥难)。
2、非对称加密算法(用的少):产生一对秘钥,公钥(发给所有人)、私钥(本地保存),公钥发送和我通信的人,公钥加密、私钥解密(RSA、ECC),缺点兼容性差、加密慢(加密数据上百字节,通信是讲究效率的)、加密完相等不紧凑(加密前1k,加密后可能10k)。
非对称加密解决对称加密的共享秘钥问题,对称加密解决之间传输数据问题。
例如:A和B通信
A----------------B
1、非对称加密,A要求B产生一个公钥、私钥,B把公钥发给A。
2、A用B的公钥来加密一个对称加密学算法的秘钥给B,B收到加密的秘钥可以来解密。
3、使用对称加密算法来加密数据。
但是这个过程产生的秘钥是由A来决定的,不一定会安全,然后有了DH技术。
DH互联网秘钥交互,解决对称加密算法如何在通信双方之间高效形成秘钥,通信双方都是秘钥生成的主人,秘钥通过数学算法算出来。
双方的公钥有关联性,双方你的公钥结合我的私钥生成的秘钥双方都一致(隔空交互秘钥的材料和算法生成相同的对称加密秘钥)。
1、各自生成一个素数,彼此交互素数形成一个g。
2、各自产生自己的私钥,各自基于自己的私钥结合素数产生一个公钥。
3、互发公钥,结合我的私钥你的公钥算出的秘钥和你用我的公钥你的私钥算出的秘钥是相同的,多把相同的秘钥。
通过DH各自产生三把相同秘钥(一把加密、散列、第二阶段保护VPN流量)
DH组号越大,说明DH越安全。
IPsec只是一个框架,使用加密,会给一个list,供你选择加密的秘钥和算法。
可逆的是加密算法、不可及逆的是散列算法(MD5、SHA)。
二、完整性:
散列算法(二层帧FCS报头校验和):
优点:
1、不可逆:计算出的乱码不能回推出原始计算,不能反向计算。
2、不定长输入,定长输出。
3、雪崩效应。
4、避免冲突:任意两个数据,得出散列不一致,这个被破解了。
缺点:能防止冲突,但是不能防篡改。
加强版散列计算HMAC(散列信息验证码):把传输的信息计算一个秘钥(信源和接收者有)结合散列计算。
IPsec只选散列值的前96位。
三、源认证
防止中间人攻击,验证身份:
1、域共享秘钥
2、数字签名:就是用非对称算法加密,私钥加密数据,拿公钥解密,能拿我公钥解密我的私钥加密的数据就一定是我发的。
四、不可抵赖性
1、数字签名:就是用非对称算法加密,私钥加密数据,拿公钥解密,能拿我公钥解密我的私钥加密的数据就一定是我发的。
2、数字证书(现网常用):通过CA(认证机构,给证书签名),可以拿到两个证书一个是CA的根证书和CA给我签名的签名证书,通过交互签名证书来验证身份。
三、IPsec建立过程
IPsec建立的两个阶段
阶段一开始
========================================================
Main Mode主模式:六次报文交互
Aggressive Mode野蛮模式:第一阶段只要三个报文交互
(1)、我第一个SA协商报文的同时我就会携带我的身份验证信息(安全隧道没建立,明文情况下发证书或口令,不安全)
(2)、你收到我的报文第二个SA给我做一个回向的协商,并且把你的身份验证信息发我
(3)、最后我给你做一个回向的确认
阶段一:形成安全隧道,通过安全隧道验证身份信息,防止中间人攻击,第一阶段协商的是控制连接,一条双向的SA形成控制层面连接。
1、前两个报文:
交互一对协商报文SA(安全关联,数据私密性、完整性、源安全、不可抵赖)保护传输的安全性,加密、散列、DH使用哪个组、身份验证方式的协商,SA使用哪些内容。
2、中间两个报文:
第二对报文交互实现DH算法,交互秘钥材料,形成秘钥。
前两对报文的协商成功后安全隧道已经形成
3、第三对报文:
进行身份验证,使用域共享秘钥或数字证书协商验证身份。
第一阶段的协商结束
阶段一结束=========================================================
阶段二开始
========================================================
Quick Mode快速模式:三次报文交互
阶段二:
协商数据连接,基于第一阶段形成的控制连接隧道协商第二第几的数据连接,第二阶段报文交互都是加密的,通过第二阶段真正保护数据,形成两条单向的SA真正的安全隧道保护实际的通信流量(两条算法可以不一样,建议一样,好管理),用安全协议ESP或AH保护数据流量。
1、协商使用哪种安全协议:
(1)、ESP(封装安全载荷,用的较多):既能加密又能散列,会对除IP包头的载荷进行一个安全加密(散列只是针对某些字段不影响三层包头的源目IP,不能经过PAT【四层的源目端口】)。
用ESP前:
用ESP后:源目端口加密后,看不到源目端口
为了解决使用ESP不能穿越PAT设备,需要采用NAT-T(NAT穿越技术)技术,两台路由用ESP测试连接的时候,测试包发现有经过PAT的设备,会启用NAT-T,ESP报头前额外添加一个UDP的报头,提供源目端口,让PAT的设备可以识别流量做一个反向的转换。
(2)、AH(验证报头):不能做加密,只能做验证散列,几乎整个数据包做校验(现网经常会有NAT,如果做AH要保障途中不能经过穿越NAT/PAT的设备)。
2、封装模式:
(1)、Tunnel(隧道模式)模式:加密点和通信点是同一个点的时候(单纯两个园区使用IPsec,需要隧道模式,因为需要使用overly添加一层IP包头欺骗沿途公网路由器)。
(2)、传输模式:加密点和通信点不是同一个点的时候。
隧道模式和传输模式的区别就是在原始IP包头前要不要添加一个新的IP包头。
GRE over IPsec使用传输模式
原始:
GRE over IPsec:
3、针对安全协议指定加密算法、散列算法,这是第二阶段实际保护数据的加密(跟第一阶段加密无关)
协商完第二阶段传输数据,需要秘钥(这个秘钥就是第一阶段的DH完成会有三把秘钥,第一把第一阶段的加密,第二把完成第一阶段是散列,第三把完成第二阶段ESP的实际加密和散列)
阶段二结束=========================================================
第一阶段报文交互使用IKE(互联网秘钥交互协议)完成,IKE有版本1和2(两个版本没有兼容性),版本2更多由防火墙支持,第一阶段能定期更新秘钥和安全算法,包含三个子协议:
1、ISAKMP(互联网安全关联以及秘钥管理):制定的第一阶段的建立流程。
2和3完成DH(秘钥交互,隔空秘钥的形成)
2、SKEME:
3、Oakley:
不做第一阶段,可以手工指定第二阶段(很麻烦,不安全,管理较差)
第二阶段可以使用PFS,可以再来一次DH,形成相同的秘钥(第二阶段使用PFS再进行DH的原因是第一次交互秘钥,安全隧道还没有形成,很多秘钥材料是明文传输的,为了第二阶段的数据安全,使用PFS再进行一次)。