https加密
Posted cathy_mu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了https加密相关的知识,希望对你有一定的参考价值。
cookie session和token的差别 再找找
加上http://www.ruanyifeng.com/blo...
加上ssl协议生成三个随机数的部分,为什么需要三个随机数呢,增加密钥的随机性,一个伪随机不一定真的随机,但是三个伪随机就很接近随机了。
加上dh算法
加上session,session是为了免除交换密钥的这步,不是为了免于加密。窃取了session也不会破解加密信息。
session窃取 csrf 跨站请求伪造
https://cloud.tencent.com/dev...
反窃取
token
为什么要加密
http的内容是明文传输的,明文传输的数据经过中间节点时,可能被中间人窃取或篡改。即“中间人攻击”(MITM,Man-in-the-middle attack)。
如何保证信息不被中间人劫持和篡改?
通信双方可以约定一个密钥,发送方使用密钥把信息加密后传递,接收方接收到信息后,用密钥解密。
只要中间人无法得到密钥,即使截取到信息也无法得知信息的具体内容,亦无法伪造虚假信息给接收方。
这就是对称加密。
(https://sectigostore.com/blog...)
如何保证密钥只有发送方和接收方知道,中间人无法知道?
思路1:在发送方和接收方诞生的时候,已经被写入密钥。
比如某些特定的保密硬件设备。
这个思路在互联网通信中明显是不现实的,一台设备不可能在出厂时就写入所有发送者的密钥,在它出厂后,新的发送者也在源源不断的诞生。
那么只能让一方将密钥传递给另一方,并且保证在传输过程中,密钥不被中间人劫持和篡改。
问题好像回到原点。
也没完全回到原点。比起正常通信,密钥的数据量小的多。通过“使用对称加密”,这个问题的量级降低了,对成本的容忍提升了,只要不计成本的保证第三人无法得到密钥即可。
这里就可以使用到非对称加密,非对称加密使用两把密钥,用一把密钥加密的内容,只能用另一把密钥解密。
通信双方将一把公开,做公钥,一把不公开,做私钥。一方使用公钥加密密钥,另一方使用私钥解密,获得密钥。
用于解密的私钥未被公开传输过,所以不会被中间人窃取,中间人没有私钥,就无法解密并窃取对称密钥。
破解非对称加密
从中间人的角度看,虽然劫持不到私钥,破解不了对称密钥。但是他可以劫持并篡改公钥,让双方传递一个“自以为加密了的”对称密钥,实际上,用假公钥加密的对称密钥在中间人眼中形同裸奔。
代码块
JSON
甲-------公钥------->中间人-------假公钥------->乙
乙(生成密钥,用假公钥对密钥加密)
中间人<----假公钥*密钥----->乙
中间人(用假私钥解密出密钥)
甲-----公钥*密钥------中间人
甲(用私钥解密出密钥)
中间人破解非对称加密的关键在于,公钥是公开的。
只要公钥是公开的,就无法避免被截取和篡改。
只要公钥被篡改,使用公钥加密的对称密钥,就相当于没加密。
如何保证公钥不被篡改呢?
好像又回到了原点。
但没有完全回到原点,因为问题从“保证中间人无法窃取、篡改密钥”降级成“窃取了公钥也没关系,无法篡改即可”。
那么如何保证中间人无法篡改公钥呢?
?为什么非对称加密成本高。
以下是废稿
于是小红改纸条上的内容,小明想和小强约定一个密钥。小明把纸条加密后再传递,小强收到加密的纸条,用同一个密钥解密才能阅读。
这样即使小红在路上看了纸条,也看不懂上面写的是什么。
以上是关于https加密的主要内容,如果未能解决你的问题,请参考以下文章
typescript Angular 2测试片段。代码库https://developers.livechatinc.com/blog/category/programming/angular-2/
typescript Angular最终版本的Angular 2测试片段。代码库https://developers.livechatinc.com/blog/category/programming
typescript Angular最终版本的Angular 2测试片段。代码库https://developers.livechatinc.com/blog/category/programming