不得不懂的加密技术与IPsec实例应用(一)

当不同的远程网络通过Internet连接时,网络之间直接通过私有地址进行互访只是需求之一,除此之外,还有个非常重要的需求,那就是数据安全。因为作为公共环境的Internet,相当于是没有任何秩序和管理的“公海区域”,如果是重要的数据直接往Internet传送,那么被截获甚至是篡改的概率就相当之大了。基于上述原因,为了保证数据的安全,以及数据来源的合法性,目前网络中在传输数据的时候几乎都会对数据进行加密和验证。数据加密的作用是保证数据的机密性,即使被他人非法获取,也无法读取数据的内容;数据的验证,则是保证数据的完整性,也就是说数据在传输过程中没有被人篡改。这些技术是怎么实现的呢?本文就来为大家聊聊这个话题。

本文核心知识点:

1、对称加密算法和非对称加密算法;

2、如何进行数据的校验;

3、从理论上认识IPsec;

4、Cisco L2L VPDN经典实验。

加密技术

1.1 数据被截获了


想当年,我们的女主角紫竹还刚上大一。她这边结束了高考,倒是可以得到一点“解放”,但是她的大堂妹紫云却在这一年上了高三,准备高考了;而小堂妹紫苑呢,又是在当年要准备中考,可以说俩妹妹都要参加重要的升学考试,一时间,紫竹的二叔家里面是人人精神紧绷……


小堂妹紫苑是个乖乖女,文文静静的,而且学习还算刻苦认真,所以二叔和二婶倒是不太担心她。但是紫云有点让父母不省心,看起来她的学习成绩也还不错,但是坏就怀在她居然在这个时候情窦初开,和学校一个不同班且有学渣属性的男生关系搞得不错。


本来嘛,林二叔和二婶也不知道这个事情,可就是有一天紫云上学之前把手机放在早餐桌子上,然后那个男生给紫云发了短信,让林二婶给看见了……


好嘛!林二婶立刻急得团团转,紫云在高三这个关键时刻居然掉了链子,而且还和全班考试倒数的王安然谈起了“疑似恋爱”……这里面的结果就不用多说了,紫云肯定和老妈大吵了一架,同时也不得不接受起老妈的“每日审查”!

不得不懂的加密技术与IPsec实例应用(一)


以上这个小故事,就是模拟了数据在网络中传输被人截获的情形。在这个故事中,我们可以理出如下模型:

不得不懂的加密技术与IPsec实例应用(一)

数据是由王安然发出,预期目标是发送给紫云。但是却被紫云的母亲林二婶给发现了,并且还读懂了这个信息,于是紫云母女之间避免不了要爆发一次青春期与更年期之间的“战争”。不过换句话来说,林二婶这种“截获”,说不定也能给紫云提一个醒,也不一定是坏事。


1.2、何为“对称加密”


接上回开始说,自从林二婶发现了紫云的手机短信以后,于是林二婶开始对紫云实施了“行为约束”。每天晚上都要让紫云把短信拿给她看。这下子,王安然的消息肯定是不敢再发过来了。但是无奈这俩人也实在是心痒痒啊,那么如何打消林二婶的疑虑呢?


于是,俩人就悄悄约定了一堆“暗号!”


比如,家长爱听的话,无非就是:一起上晚自习啊,一起去找老师开小灶之类的嘛。于是,紫云和王安然就约定好了如下暗号。


比如,所学习的6个科目就代表成都市的六个区:“语文”代表“锦江区”,“数学”代表“青羊区”……;

再有,吃饭就是补课,看电影就是读书会,考试就是演唱会;


于是,王安然和紫云的短信聊天,就变成了这样:

不得不懂的加密技术与IPsec实例应用(一)

既然是人家主动喊去补习功课,语言又说得那么恳切,那不让紫云去也不太好。毕竟嘛,自己做母亲的也不能做人做得太过分,直接去警告人家王安然显得我家的人太不近人情。好嘛,紫云和王安然就用这些千奇百怪的“暗号”,从高三一开始到高考结束,“成功”地一起吃了7次火锅,看了6场电影,3场演唱会……


不过这事情嘛,在高考的时候还是“漏了陷”,紫云的成绩还是受到了影响。她本来是想和紫竹上一个大学的,但是无奈还是差了那么几分,最后去了重庆。而王安然嘛,勉强上了个本地的二本,和紫云的关系也就那么断了。直到一年以后,紫云才给林二婶说了当年她和王安然的“暗号”。林二婶当即觉得又好笑又郁闷,这么“拙劣”的“骗术” ,她当时怎么就没识别出来呢?


这个故事呢,就说了一个“对称加密”的模型。其实就是把想要表达的意思,换一种方式来表达,以达到“迷惑”截获者的作用。就像紫云和王安然,把一起约着去吃喝玩乐,用一起去“努力学习”来表达,让林二婶还就信以为真了。


在这里呢,我们也就说一个知识点。所谓“加密”,就是把明文的数据转换成密文,而解密,则是加密的逆运算。在计算机系统中,加密和解密都有自己特定的算法和密码(或者说密钥)。在刚才那个故事中,算法就是“替换”,密钥就是“科目换地名,学习换玩乐”。


我们也可以再来看一个例子,那就是吴雄飞给紫竹发送了一条短信“noλ ə∧ol I”,看起来是一堆乱码对吧,但只要把手机倒过来,就看见是“I love you”。这里的算法就是“字符颠倒”,密钥就是:“倒转”。

不得不懂的加密技术与IPsec实例应用(一)

1.3、何为“非对称加密”


有个周末,紫竹想去春熙路逛逛,买几件衣服,但是那天吴雄飞要写标书,她就只能自己去。正当她在吸着饮料,兴致勃勃地逛街的时候,突然面前闯来一个冒冒失失的男的,在走得快的同时把钱包掉在了紫竹的脚下。


“喂,前面那位帅哥,你的钱包掉了!”紫竹捡起钱包,追上那个男的,把钱包递给了他。

如果说,那个男的是单身的帅哥,紫竹也单身,这件事情可以带出一段美丽的爱情故事;可惜,那个男生并不帅,紫竹也并不是单身。但问题是,紫竹是那种让人看了一眼就难忘的妹子……


那个男的,接过钱包以后,看着紫竹的脸蛋,眼睛都直了。他说道:“小美女,谢谢你啊!为了对你表示感谢,我要请你去前面的冷饮店坐坐,喝一杯奶茶你看如何?”


“不了!谢谢!”紫竹带着礼貌的微笑拒绝了他,然后转身就往前走。

“等一下!”那个男的一下子闪在紫竹面前,拦住了她:“你都没和我说几句话就拒绝我?要不,你给我一个你的联系方式我再放你走!”


把手机号直接给这个陌生人肯定不行,所以,紫竹给了这个男的一张纸条,上面写着一行数字:242667270058402773198。紫竹说:“这串数字就是用我的手机号码乘其他数字乘出来的,只要你算得出来我的手机号,晚上我请你去人民公园对面吃蹄花!”说完,丢下那个人自己就走了。


手机号码是一个11位数,你可以用242667270058402773198逐一去尝试,从10000000000除以到19999999999。你先别说逐一尝试这种事情是不是能完成,就是完成了,也能得到很多个11位数的结果,你总不可能一个一个地打骚扰电话去确认谁是紫竹吧。


这其实就是一个“非对称加密”的模型。这个模型的算法其实就是简单的“算术乘除”,但是加密的过程是把两个数字相乘,得到乘积。


我们换一个小一点的数字来说吧,比如25169×29663=746588047,两个数字是25169和29663,乘积是746588047,这是个加密过程。但是如果直接把746588047数字给你,让你解出它是由哪两个数字相乘得出来的,这就费劲了。


设有A×B=Z,A和B就是这个算法中的两个不同的密钥,两个密钥成对生成;用A加密的要用B解密,B加密的要用A解密,这就是非对称加密。

不得不懂的加密技术与IPsec实例应用(一)

1.4、两种加密算法的特点


对称加密算法,加密和解密用的都是同一密钥,所以如果非法用户截获了这个密钥,那么它也可以解密这些内容。如果要对网络中传送的数据使用对称加密算法的话,这个密钥也必须共享给对方,在这个过程中却正好是容易被非法用户连内容带密钥一同截获的时候。

不得不懂的加密技术与IPsec实例应用(一)


如果是非对称加密算法呢?加密和解密用的就不是相同的密钥了。此时,共享的密钥只是大家都知道的“公钥”,而“私钥”则始终不会在网络中传送,等于是没有被截获的可能。并且,公钥和私钥都是成对生成,用B的公钥加密的数据,只能用B的私钥解密。

不得不懂的加密技术与IPsec实例应用(一)

不得不懂的加密技术与IPsec实例应用(一)


可能看到这里,有人就会觉得,既然非对称加密中,私钥始终不会在网络中传输,并且每个用户的私钥都不一样,是不是非对称加密算法就可以完全取代对称加密算法了呢?实际上也不是这样。首先,对称加密算法中的3DES、AES算法已经被数学证明过是安全的;而非对称加密算法的思路无非就是:量巨大就算安全(就比如1.3小节里面那个故事里面说的那样,你逐一尝试吧)。而且,对称加密也有它的优势,非对称加密也有它的劣势。


对称加密的最大优点在于计算效率高,而且数据被加密后,占用空间的大小只会发生细微变化(也就是紧凑性好)。所以,对称加密算法适合较大数据的加密。而非对称加密算法呢,计算复杂且效率低,而且,1KB的数据被加密后可能达到10M甚至100M,紧凑性太差,所以非对称加密算法只适合数据极小的时候。

不得不懂的加密技术与IPsec实例应用(一)


常用的对称加密算法有:3DES、AES;非对称加密算法有:RSA、DSA等。这些加密算法是基于什么工作原理,我觉得还是留给感兴趣的读者去自行收集资料吧。

数据完整性校验


数据经过加密,只能保证数据的机密性,仍然无法防止数据被人篡改。换句话说,数据完整性的保证,需要用另外一种方式进行保证。下面就说一下数据完整性校验算法。


2.1、数据完整性校验方式


有个梅老板,做着给海外供煤炭的生意,这次他准备把5000t煤渣运往海外。但是煤炭装箱以后,他又怕船长偷。这个船长拍着胸脯对梅老板说:“老板,我要是偷煤,你就罚我喂鲨鱼。你放心,到了目的地以后,我负责出钱请人帮你过磅!”


因为这趟煤要运到新西兰,没有几个月可运不到。而且,秦皇岛和新西兰奥克兰的地心引力不一样,直接过称的误差很大,所以光靠过磅没办法有效防止船员偷煤。所以,船长才敢下如此毒誓。不过呢,梅老板好像一副胸有成竹的样子:“没事船长,我敢保证这批煤你偷不走!”


煤箱子进了船舱,梅老板亲自指挥员工把帆布幔子盖上并锁上了。这一趟船走了两个月才到终点。于是,梅老板亲自去验货。刚一打开帆布幔子,梅老板就嬉笑着说:“船长先生,乖乖把偷走的煤交出来吧!”


船长一看,几大集装箱的煤上面长满了青苗,但是几乎每个箱子里面都有几块地方缺了苗。梅老板笑道:“我早就在这些煤的面上撒了种子,如果哪些地方没有青苗,就说明哪些地方的煤被偷了。”


船长此时哑口无言,只能是减免了这趟船的运费当做赔偿。


这个故事,其实就可以简单说明了在计算机系统里面对数据做完整性校验的一个思路。那就是对数据执行一个Hash算法,得到一个摘要值(等于是在煤渣表面撒一层种子,等待种子发芽长苗,预期就是煤渣表面长满青苗)。


待数据发送到接收者手里以后,接收者用同样的Hash算法,得到一个数字签名,然后用这个数字签名和摘要值进行比对。如果,数字签名和摘要值出现偏差,则说明数据在传输过程中已经被人篡改了。就像这个故事里面,煤渣遇到目的地,结果发现有些箱子里面的煤渣表面没有青苗,说明这个地方的煤渣被人偷走了。


这个过程如下图所示:

不得不懂的加密技术与IPsec实例应用(一)

不得不懂的加密技术与IPsec实例应用(一)

2.2、Hash算法的特点


Hash算法具有以下特点:


(1)固定长度,比如用MD5值计算的Hash值总是128字节,SHA-1计算的Hash值总是160字节。

(2)单向计算,只能通过原始数据得到数字签名,无法逆运算。这过程类似余数算法,就是一个简单的不可逆算法,10除以3余数为1,但除以3余数为1的未必只有10,可以有无数种可能性,所以即使你知道除数3和余数1,也无法反推到答案10。

(3)雪崩效应,只要你在10G数据里面哪怕篡改1b,计算出来的Hash值也有天差地别。


常用的Hash算法是:MD5和SHA。


SHA比MD5更加安全,但中国某大学著名教授已经证明了这两种算法都存在一定的虚假性,目前正在研发的SHA-2具有更长的签名长度,但还未投入使用。

不得不懂的加密技术与IPsec实例应用(一)

不得不懂的加密技术与IPsec实例应用(一)

未完待续预告

不得不懂的加密技术与IPsec实例应用(一)

IP Sec 经典实例

不得不懂的加密技术与IPsec实例应用(一)


分享到:


相關文章: