HTTPS 的加密流程
发布时间:2022-10-21 12:56:09 所属栏目:安全 来源:
导读: 一个简单的对称加密 , 按位异或
假设 明文 a = 1234, 密钥 key = 8888
则加密 a ^ key 得到的密文 b 为 9834.
然后针对密文 9834 再次进行运算 b ^ key, 得到的就是原来的明文 1234.
假设 明文 a = 1234, 密钥 key = 8888
则加密 a ^ key 得到的密文 b 为 9834.
然后针对密文 9834 再次进行运算 b ^ key, 得到的就是原来的明文 1234.
|
一个简单的对称加密 , 按位异或 假设 明文 a = 1234, 密钥 key = 8888 则加密 a ^ key 得到的密文 b 为 9834. 然后针对密文 9834 再次进行运算 b ^ key, 得到的就是原来的明文 1234. ( 对于字符串的对称加密也是同理 , 每一个字符都可以表示成一个数字 ) 当然 , 按位异或只是最简单的对称加密 . HTTPS 中并不是使用按位异或 . 像上图所描述,如果用客户端和服务器持有同一把密钥,即使黑客在中间截获了报文,但是因为他并没有得到这把密钥所以自然 无法顺利窃取真实内容。可问题是,服务器同时要服务很多客户端,而每个客户端所持有的密钥肯定都是不一样的,否则这把密钥就没有意义了。因此服务器就需要维护每个客户端和密钥间的关联关系,这对服务器来说显然是一件十分有负担且不易于管理的事儿。 所以我们需要解决 第一个问题: 服务器的负载太重 一个比较容易想到的解决方法是:客户端每次给服务器发起连接时再将自己的密钥传过去。 但是这时 第二个问题又出现了,可恶的 黑客也能截获到密钥!那不就更危险了吗?那不如我们把密钥也加密一遍?此时就出现了密钥的密钥...(套娃了)但是别着急,套娃不会无限进行下去,只要我们再想想办法... 此时我们就可以引入非对称加密的解决方案啦!! 非对称密钥 非对称加密和对称加密的区别应该很容易从字面意思理解,如果对称加密是用同一把密钥进行加密解密,那非对称加密就是用不同的两把锁加解密。其中一把我们叫它公钥,另外一把叫私钥。公钥用于加密,私钥用于解密。 我们在客户端向服务器发起询问——你的公钥是啥?服务器返回其公钥,客户端再用这把公钥对自己的密钥进行加密,再次发给服务器,服务器收到后用全世界唯他独有的私钥进行解密,于是及拿到客户端的密钥。接下来过程中双方就可以用这把密钥进行秘密对话啦! ps:为什么不全程用非对称密钥通信?因为非对称加密的过程很复杂,计算速度比对称加密的慢太多。 好不容易解决了第二个问题成功升级了,但是狗儿子黑客实在太聪明了。他想出一个办法,我可以进行 中间人攻击! 具体过程如下: 1.客户端询问公钥阶段,黑客不做反应 2.服务器返回公钥阶段,黑客截获,返回客户端自己的公钥 3.客户端用假公钥加密自己的密钥返回给服务器,黑客再次截获,用自己对应的私钥解密出了客户端的密钥 4.黑客拿着之前截获的服务器公钥把破解的客户端密钥加密返还给服务器 5.于是服务器用自己的私钥解密,得到的确实是客户端的真实密钥,和客户端又能拿着这个密钥进行通信,但是此时他们的交流不再秘密了,因为黑客也神不知鬼不觉得得到了这把密钥服务器内容加密,此时他们之间的交流在黑客眼里无异于大声密谋。。。 (编辑:百客网 - 域百科网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐


