白话文解释HTTPS加密原理

假如你和你朋友想聊天。
最开始你们就是直接聊天,明文传输,所有人都看得到,这是HTTP
然后你们觉得这样太不安全了,没有一点隐私。自然而然的,你们想给聊天内容加密。
你朋友提议:“咱们约定个密码,用这个密码加密聊天内容吧。”
你觉得不错,但是马上又发现一个问题,这个密码怎么传输?如果明文传输密码,那加密不就等于形同虚设了吗。
你朋友又提议:“你设想的是对称加密。对称加密是用一个密码或者密钥加密信息,不管谁只要知道了密钥,都能解开密文。我知道一种加密方式是非对称加密。非对称加密的密钥不是一个,而是一对,称之为公钥和私钥。公钥负责加密,私钥负责解密。用公钥加密的密文,只有对应的私钥能解。私钥在我这里妥善保存,谁都得不到!公钥我公布出去,谁都能拿到。你把我的公钥拿去,把你想的密码用公钥加密一下,然后发给我,我就知道咱们约定的密码了。”
你说:“这是个好主意呀!”
于是,你先向你的朋友发出聊天邀请。你朋友回复了你,并带上了公钥,你想了个密码,然后用公钥加密,再发给朋友。你朋友用自己的私钥解密,得到了聊天用的密码。好了,现在你和你朋友安全地传输了聊天专用加密密码,你们用这个密码加密聊天信息,谁也看不到了!这叫HTTPS

简单来说,传输内容的加密是对称加密,而对称加密用的密码是用非对称加密的形式传输的。实际情况比这复杂,比如客户端还要验证服务器端的证书等等,但是大致流程就是这样。

https://www.v2ex.com/t/246853#;

Leave a Reply

Your email address will not be published. Required fields are marked *