故事中的主人公:小花今年大一。这是她第一次离开父母,一个人去北京上学。今天是妈妈的生日,我想了想,想给妈妈一个祝福,于是给妈妈发了一条信息:妈妈收到这条信息很开心,女儿这么忙还记得她的生日,两人开始聊天。妈妈知道女儿一直在省吃俭用,就决定寄点钱给女儿。小黑是一个专门做“鬼鬼祟祟”事情的黑客。他已经监听到了母女俩的谈话。我一直看着他们聊着日常,差点睡着了。直到看到母女二人提到钱,顿时精神一振,决定要发财。然后他截取了小花的信息,换成自己精心准备的内容,发给了小花的妈妈。小花妈妈随后将钱寄给了小花,没想到母女俩的聊天内容都在小黑的掌控之中。小黑拿到钱就跑了。》注意:HTTP协议是建立在TCP之上的,TCP是否安全决定了HTTP是否安全。HTTP报文内容没有加密,很容易被监听和篡改。小黑听了聊天内容并篡改内容,冒充女儿聊天。因此,HTTP存在以下三个问题:内容未加密,易被监听,明文传输;完整性内容的无法验证,很容易被篡改,也就是说消息是否被编辑过;我无法验证对方的身份,就是我现在聊天的人是谁,是靠谱吗?小花被骗后,心里很难过,把这件事告诉了她的计算机老师王大强。王老师听了被骗的经历,非常惊讶,为什么消息被篡改了!马上查了下他们用的聊天软件,原来是发现该软件直接使用了TCP协议,没有采取安全措施。大强研究了该软件后,对小花说:“这个软件有问题,以后不要用了,要用有安全措施的软件,比如使用TSL/SSL协议的软件。”小花说:“什么是TSL/SSL?”大强看小花一脸真诚,决定把HTTPS的原理讲给她听,但又觉得她可能听不懂,于是决定分析一下她和妈妈被骗的那一幕,既然小花和妈妈的聊天内容都是明文传输的,直接加密不就完了吗?小花和妈妈约定了一个密码,所有内容都是通过这个密码进行加密和解密。“注意:这种加密方式叫做对称加密,加密和解密都是用同一个密码进行的,所以要保证密码的安全,一旦泄露,后果很严重。”小花顿时察觉到了不对劲。转给她妈妈。只有在双方会面并商定密码之后。但是她想到了远在美国的父亲。如果她要他的钱,她需要飞到美国,告诉他密码。这太麻烦了。王大强老师说:“别着急,还有更好的办法。”然后使用两把钥匙,一把用于加密(称为私钥),另一把用于解密(称为公钥)。用私钥加密的内容只能用公钥解密。只有你有私钥,公钥可以被别人丢失。小花和妈妈只需要将公钥交给对方即可。小花给妈妈发信息时,用妈妈的公钥加密。只有她妈妈有私钥,也就是说只有她妈妈才能解密。》注:这种加密方式称为非对称加密,会有两把钥匙,一把钥匙加密的内容只能用另一把钥匙解密。至于为什么说公钥加密和私钥解密,虽然两把钥匙都可以加密和解密,但是公钥加密和私钥解密不是更好理解吗?公钥大家都知道,私钥只有你自己知道。小花想了想有点不安全,如果她和妈妈交换公钥,小黑就会监视她。小花妈妈。这样小花妈妈在发送消息时使用小黑的公钥加密,小黑拿到消息列表后可以用自己的私钥解密。妈妈把自己的公钥发给小花的时候,小黑也掉线了”别着急,我慢慢解释。”现在的问题是在交换公钥的时候被小黑攻破了,所以接下来就需要解决这个问题,公钥怎么才能安全的发给对方。这似乎是一个永远无法解决的问题,毕竟公钥一直在传输。这似乎是一个先有鸡还是先有蛋的问题。后来,小花想了想。平时在网上购物时,他总是担心付不起钱,商家跑路了,拒不发货。你可以在途中找到淘宝。后来出现了公钥认证机构。这些认证机构很少,但非常权威。他们会与电脑、浏览器等制造商建立信任关系,预先将认证机构的公钥安装到系统中。这是关于传输问题。聊天过程中,小花发现消息的收发很慢,后来才知道是加密算法用了很久。小花想了想,用对称加密的时候,唯一的缺点就是交换秘钥比较麻烦,但是速度很快。然后可以通过非对称加密传输对称加密密钥。密钥传输成功后,使用对称加密对消息进行加密。至此,你明白如何保证通信安全了吗?》注:HTTP属于应用层协议,HTTPS不是新协议,只是比HTTP协议多了一层(TSL/SSL)来保证数据传输安全。TSL/SSL也是一种协议,其主要作用就是为了保证数据传输的安全,大部分都是使用OpenSSL实现的,比如Node中的TSL就是基于OpenSSL实现的。总结本文以故事的形式介绍了HTTP的不安全性,以及保证HTTPS安全背后的支持,包括数字证书、数字签名、对称加密、非对称加密等概念,当然光有理论是不够的,还需要练习才能更好地理解。加油,大家。
