一次安全可靠的通讯
公众号文章一向被运营商各种挟制插广告,本年逐渐都切换成HTTPS,前两周再从头梳理了一些HTTPS细节,趁有空收拾成文章做个共享。
原文同步在: http://rapheal.sinaapp.com/2019/09/16/https/
Alice与Bob的通讯
咱们以Alice与Bob一次通讯来贯穿全文,一开始他们都是用明文的方法在网络传输通讯内容。
嗅探以及篡改
假如在他们的通讯链路呈现了一个Hacker,因为通讯内容都是明文可见,所以Hacker能够嗅探看到这些内容,也能够篡改这些内容。
公众号的文章之前就遇到许多被挟制篡改了内容,刺进广告。
加密解密
已然明文有问题,那就需求对明文进行加密处理,让中心人看不懂内容,于是乎要对本来的内容变成一段看不懂的内容,称为加密,反之则是解密。而实质其实便是一种数学运算的逆运算,相似加法减法,例如发送方能够将 abcd...xyz 每个字母+1映射成 bcd...yza,使得原文的字母变成看不懂的序列,而接收方只需求将每个字母-1就能够康复成本来的序列,当然这种做法规则太简略被破解了,后边会有个案例示目的。
对称加密
假如对2个二进制数A和B进行异或运算得到成果C, 那C和B再异或一次就会回到A,所以异或也能够作为加密解密的运算。
把操作数A作为明文,操作数B作为密钥,成果C作为密文。能够看到加密解密运用同一个密钥B,把这种加解密都用同一个密钥的方法叫做对称加密。
能够看到简略的异或加密/解密操作,需求密钥跟明文位数相同。为了战胜这个缺陷,需求改善一下,把明文进行分组,每组长度跟密钥共同,别离做异或操作就能够得到密文分片,再合并到一同就得到密文了。
可是这种简略分组的形式也是很简略发现规则,能够从下图看到,中心选用对原图进行DES的ECB形式加密(便是上边说到简略分组的形式)
很明显,原图一些特征在加密后仍是暴露无遗,因而需求再改善一把。一般的思路便是将前次分组运算的成果/中心成果参加到下次分组的运算中去,使得更随机紊乱,更难破解。以下图片来自维基百科:
经过改进后,Alice与Bob假如能提早拿到一个对称加密的密钥,他们就能够经过加密明文来确保他们说话内容不会被Hacker看到了。
非对称加密
刚刚还引发另一个问题,这个对称加密用到的密钥怎样相互奉告呢?假如在传输真实的数据之前,先把密钥传过去,那Hacker仍是能嗅探到,那之后就了无隐秘了。于是乎呈现别的一种手法:
这便对错对称加密,任何人都能够经过拿到Bob揭露的公钥对内容进行加密,然后只要Bob自己私有的钥匙才干解密复原出本来内容。
RSA便是这样一个算法,详细数学证明利用了大质数乘法难以分化、费马小定理等数学理论支撑它难以破解。相对于前边的对称加密来说,其需求做乘法模除等操作,功能功率比对称加密差许多。
因为非对称加密的功能低,因而咱们用它来先洽谈对称加密的密钥即可,后续真实通讯的内容仍是用对称加密的手法,进步全体的功能。
[1] [2] 黑客接单网