Technical documentation
发布日期:2022-05-23 浏览次数:2060 来源:WOLF-LAB(沃尔夫)实验室
加密学原理-CCIE培训Security网络安全技术分享-WOLFLAB
官方微信:17316362402,CCIE培训各方向都在循环开班,联系网站客服,预约免费试听
安全的定义:
1. 私密性(加密,防止被不合法的获取内容)
2. 完整性(确保传输过程中没有被篡改)
3. 源认证(确认发送者的真实身份)
4. 不可否认性(事后不能否认曾经发送过此信息)
早期部署VPN的动机:
早期部署VPN主要是为了节省费用问题。如下图,如果多个站点(site)间租用专线链路,是可以解决site和site之间私有网络的互访。但是面临着费用将及其昂贵。
如果利用internet,借助VPN,那么site只需要付包月的费用,各个site之间就可以达到私有网络的互访。
简单的说,VPN是借助互联网跑内部私有的网络。从而达到私有网络的互通。称之为Virtual Private Network。
——付公有网络的费用,享受私有网络的效果
VPN是借助互联网实现私有网络的互通,但是面临的问题是我们流量在internet上安全吗?租用专线费用高昂但是可以确保安全性(专有线路),VPN虽然费用低廉,安全问题如何保证?会遇到什么样的安全问题?如何去解决这些问题?
1. 窃听攻击 eavesdropping
当两台设备之间通讯的时候,你能通过协议分析工具抓到username和password,还有数据。原因是他们之间的通讯是明文的。这样的协议有Telnet、FTP、HTTP 、SNMP etc..
下图是telnet 流量,通过抓包可以看到username 和password
解决办法:加密 (Encryption)
2. 欺骗攻击 spoofing
假设一个攻击者(attacker)伪装、假冒成正常用户的身份来和对端(peer)进行通讯。这称之为欺骗攻击(spoofing)。在二层网络里有MAC spoofing 、ARP spoofing 、DoS、DDoS、Smurf 等,现实生活里有电话诈骗,短信诈骗。在我们拨打信用卡电话,人工服务的时候。接线员会随机问你几个问题,目的就是为了确定你的身份(identity)。
解决办法:身份认证(authenticators identity)
问:既然网络中数据在传输过程中已经加密了,只有持有解密的密钥peer才可以解密。不就等同于认证了吗?
答:问题在于attacker发送欺骗的加密的数据包到达对端peer,peer 需要解密,会白白消耗设备的资源。
3. 中间人攻击 Man-in-the-Middle Attack
指攻击者与通讯的两端分别建立独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可以拦截双方的通讯或插入新的内容。
中间人攻击中危害性最大的是 重放攻击(Replay Attack)
攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。
解决方法:
为了抵御重放攻击,现在的身份认证一般采用“挑战应答”(Challenge/Response)方式
针对TCP会话的重放攻击,还可以基于“防重放”技术,例如TCP序列号,思科的VPN也自带防重放功能。
一、私密性
为实现“私密性”,防止窃听攻击,需要了解——加密学:
加密学,分为古典加密学和现代加密学,古典加密学主要研究算法,现代加密学主要研究密钥。
密码学:(cryptography,在西欧语文中,源于希腊语kryptós“隐藏的”,和gráphein“书写”)是研究如何隐密地传递信息的学科。
最古典的加密技巧:
(1)移位式(Transposition cipher):将字母顺序重新排列,例如‘help me’变成‘ehpl em’
例如:
栅栏法——
明文 wolflab shanghai is at heromansion 密钥 431526
4 | 3 | 1 | 5 | 2 | 6 |
w | o | l | f | l | a |
b | s | h | a | n | g |
h | a | i | i | s | a |
t | h | e | r | o | m |
a | n | s | i | o | n |
密文 lhies lnsoo osahn wbhta fairi agamn
(2)替代式(substitution cipher):有系统地将一组字母换成其他字母或符号,例如‘fly at once’变成‘gmz bu podf’(每个字母用下一个字母取代)。
例如:
凯撒算法——每个字母用之后的第三个字母替换
维吉尼亚算法——
从以上两种方式可以看出,都需要用到一个key。 算法和key是两个不同概念。算法可以是公开的,但是key是私密的。加密需要key;解密也需要key。
一个加密方法是否可靠,取决于算法的先进性,也取决于key的长度。
加密算法分为两类:
(1)对称密钥算法
代表算法:DES、3DES、AES、RC4
特点:加密和解密使用相同的密钥
优点:速度快、安全、紧凑(加密后长度几乎不增加)
缺点:密钥如何安全的传递给可信任的对等体是个关键的问题;
密钥数量是参与者数量的指数增长;
数量过多带来的管理和存储问题
不支持数字签名和不可否认性
(2)非对称密钥算法
代表算法:RSA、DH、ECC
特点:加密和解密使用不同的秘钥(一个秘钥加密,只能用另一个秘钥解密)
每个用户进入一个加密系统,都需要产生一对公钥和私钥。公钥共享给所有人,私钥自己保留,公钥无法推导出私钥。
公钥加密的文件,需要私钥才能解密(加密过程)
私钥加密的文件,需要公钥才能解密(签名过程)
优点:安全。不担心密钥被中途截获的问题(不发送私钥);不需要事先在各参与者之间建立关系以交换密钥。技术上支持数字签名和不可否认性。
缺点:速度非常慢(比对称加密算法慢1500倍),密文长度会显著增加。——所以仅用于做密钥交换,数字签名
两种算法显然各有优劣,需要各取所长,结合使用。
一个理想的解决方案需要:
(1)安全
(2)加密的速度足够快
(3)加密的密文紧凑
(4)能够适用于参与者数目很多的情况
(5)能够抵御密钥窃听攻击
(6)不要求事先在参与者之间建立关系
(7)必须支持数字签名和不可否认性
其中(1,2,3)可以用到对称加密算法,(4,5,6,7)用非对称加密算法。
例如:
(1)用一个随机产生的“对称密钥”对原文加密,形成密文
(2)使用接收者的公钥,加密这个“对称密钥”
(3)将 1,2 的结果一起发送给接收者
(4)接收者用自己的私钥解密,得到“对称密钥”
(5)接收者用“对称密钥”解密
二、完整性
散列函数(Hash)——将任意大小的数据,将其计算成一个固定大小的值,作为原始数据的指纹(fingerpring)或摘要。
如果原始数据有任意一点改变,输出的Hash值就会完全不同——雪崩效应
无法通过反向执行散列算法来恢复出原文——单向函数
H(x) = H(y) 理论上是可能的,但极难实现——冲突避免
可用的算法有:MD5 (128bit),SHA-1(160bit),SHA-2(256bit或512bit)
所以数据如果不完整,或者被篡改过,Hash结果必然不相同。
三、源认证、不可否认性
如何利用Hash函数完成数据完整性和身份验证?——数字签名
(1)将原文数据做Hash运算,得到摘要(摘要很小)
(2)将摘要用签名者的私钥加密
(3)加密后的密文 ,附加这个加密后的摘要(两部分一起)发送给接收者
(4)接收方将两部分分别处理
(5)将加密内容解密,做Hash运算,得到一个摘要A
(6)将收到的摘要加密部分用签名者的公钥解密,得到摘要B
(7)对比摘要A和摘要B, 如果数据在传输过程中完整性改变,必然对比结果不相同
数字签名就这样实现了数据完整性验证 和 源认证,这一系列过程关键在于对公钥的运用,但如何管理公钥,如何区分和确认公钥的持有者?——数字证书技术
一张数字证书包括:
(1)证书持有者的身份信息(姓名,地址,组织等)
(2)持有者的公钥
(3)证书有效期
(4)认证机构的数字签名
结合数字证书的示例:
(1)发送方发出的内容包括“加密的内容”,“加密的摘要”,还包括发送方的“数字证书”
(2)接收方首先提取“数字证书”部分,用证书认证机构的公钥来检验真实性。
(3)用检验过的数字证书里的公钥,来解密“加密的摘要”得到摘要B
(4)解密“加密的内容”,做Hash运算,得到摘要A
(5)对比摘要A和摘要B
CCIE培训网络安全课程免费学习资料,联系网站客服获取