在李云龙身上,SSL/TLS协议的原理可以这样解释。突然发现这段话可以用来讲解SSL/TLS的原理,简直不能更完美。如果李云龙活到一百岁,张白露心狠手辣,田雨成为电脑天才,事情会如何发展?因为工作的原因,李云龙和田雨长期分居,不过现在都很好。有了电脑,虽然不能见面,但是可以通过网络聊天,传输一些数据。张白露发现李云龙和田雨在网上聊天,心里想,毕竟两人不是面对面聊天,难道聊天内容会被篡改吗?果不其然,张白露无意间发现,天羽给李云龙传输的数据可以被屏蔽,篡改后发送给李云龙。“太好了,李云龙和天宇要走了!”这时张白露发动了中间人攻击(Man-in-the-MiddleAttack)。后来,李云龙和田雨发现不对劲,传输的数据内容会被张白露篡改。可田雨和张白露已经撕破脸皮,找不到她了,怎么办?为了对付张白露的攻击,李云龙和田雨开始对数据进行加密。田羽做了两把一模一样的钥匙,趁着休息日,去了李云龙的总部,将其中一把钥匙递给了他。由于只有他们两人知道钥匙,所以钥匙也被称为“钥匙”。田宇要给李云龙发数据之前,先用密钥加密数据,李云龙收到后,再用密钥加密数据。解密。密钥不通过网络传输,张白露无法获取。即使传输的数据被截获,数据内容也无法被篡改。万一哪天张白露真的拿到了钥匙,也没关系,照着做,给李云龙一把新钥匙就好了。李云龙和田雨使用的是同一个密钥,所以这种加密算法称为对称加密算法。这样一来,张白露的计策就落空了,也没法窃取到他们两人的数据。时间一长,科技不断发展,计算机的计算速度也越来越快。张白露疑惑,这钥匙能不能用暴力破解?真的成功了!天宇设计的密钥长度只有56bit,以前靠暴力破解是不可能的,现在计算速度很快,几天就能轻松搞定!于是,张白露又开始监控篡改李云龙和天羽之间传输的数据。我应该怎么办?田宇第一个想到的方案就是将密钥长度增加到256位。这样一来,张白露是不可能通过暴力破解密钥的。好景不长,李云龙早就意识到读书的重要性,而现在要出国留学,不可能和田宇当面交换钥匙,有时候田宇还需要和其他人交流人,不可能私下见这么多人,谈一谈钥匙。有什么办法既可以避免彼此相遇,又可以保证数据不被张白露窃取和篡改?聪明的田宇又想到了一个办法。通过特定的算法,生成一对密钥(包括公钥和私钥),李云龙也被告知生成密钥对。公钥是公开的,私钥是自己保管的。田宇要给李云龙发数据时,先用自己的私钥加密哈希值,再用李云龙的公钥加密数据。数据到达李云龙后,李云龙用自己的私钥解密数据,最后用田宇的公钥解密。哈希值,比较两个哈希值来验证数据的完整性。由于李云龙和田雨使用不同的密钥解密,所以这种算法被称为非对称加密算法。有了非对称加密,张白露想要窃取和篡改数据就困难多了,但她下定决心,经过几天的研究,她找到了一种新的窃密方法。既然李云龙和田宇要交换公钥,为什么不截取公钥换成自己的呢?田宇要给李云龙发消息时,先用自己的私钥加密数据的哈希值,再用张白露的公钥数据加密。张白露拦截后,可以用自己的私钥解密数据,这时候就可以看到数据的内容了!这样一来,张白鹭只需要篡改数据,然后用自己的私钥加密哈希值,再用李云龙的公钥加密数据,发送给李云龙。李云龙以为是田羽发的资料,其实这些资料都被张白露篡改过了。一切回到原点。这时,田雨找到了老师,想让老师做担保人。老师得知田宇的难处后,对田宇说:“没关系,我来当证人,保证公钥的真实性。”因此,李云龙和田宇在传输数据之前,会将他们的公钥和一些其他信息交给公众。对于老师,老师用自己的私钥对数据进行加密,加密后的数据成为数字证书,其中包含老师的公钥。李云龙收到田雨的加密数字证书后,李云龙通过老师颁发的证书解密了田雨的数字证书,最终得到了田雨的公钥。问题又来了,如何保证教师证不被劫持?张白露绝对可以给田雨发个假证件。我太小看老师了!老师会将自己的证书集成到浏览器或操作系统中。李云龙拿到浏览器或者操作系统的时候,证书已经有了。不需要从网上获取,张白露也劫持不了。没错,老师就是颁发数字证书的机构,它会验证公钥的合法性。至此,张白露无法窃取或篡改李云龙与田雨之间的通信,小三的霸主之梦彻底破灭。
