标签:算法 最大 自己的 提升 公钥 认证中心 效率 没有 客户
大家都知道 HTTPS 比 HTTP 安全,也听说过与 HTTPS 协议有关的概念如SSL 、非对称加密、CA证书等。但是对于以下灵魂三拷问可
能就答不上了:
为什么用了HTTPS就是安全的?
HTTPS底层原理是如何实现的?
用了 HTTPS就一定安全吗?
A和B在网上聊天,因为通信是明文,怕被偷窥,所以采用了对称加密的算法,将消息加密。
对称加密:加密和解密用的是同一个秘钥。
但是如果这个秘钥被中间人劫持了呢?
有一种叫RSA的非对称加密算法,有两把钥匙,一把公钥,一把私钥。
用私钥加密的数据,只有对应的公钥才能解密,用公钥加密的数据只有对应的私钥才
解密。
例如:下图中我想给胡歌发消息,那么我用胡歌的公钥(这个是公开的)将消息加密,
胡歌拿到密文后,用他的私钥(他自己保管)解密,就得到密文了。
版本2采用非对称加密,性能大大降低。不妨回到版本1,那个时候对称加密也是极好的,速度快,也加密处理了,但是最大的问题是
担心中间人劫持秘钥?
那么我们何不把二者结合一下呢?(1)用RSA的方式发送对称加密算法的秘钥 (2)传输内容的时候用对称算法
1. 新的问题又出现了:假如胡歌给我发他的公钥的时候,有一个中间人劫持了胡歌的公钥,把他的公钥发给我了,然后我和胡歌发消
息的时候每次都会被中间人劫持。
此时的问题变成了:如何证明胡歌的钥匙是胡歌的?而不是胡唱的?
2. 现实中有公证中心,他提供的公证材料大家都信任,那么在网络世界中也可以建立一个具备公信力的认证中心,这个中心给大家颁发
发一个证书,用来证明这个人的身份。
3.但是证书在传递过程中也会被篡改?用数字签名。
Q: HTTPS 为什么安全?
A:因为HTTPS传输过程中用了加密算法,为了提升效率,用的是对称算法;但是为了防止公钥被中间人劫持,首先用非对称算法传输
秘钥;又担心非对称算法的公钥被中间人劫持,又采用了CA证书,CA证书本身也有证书来证明自己的身份,一层一层,但是最上面那层
相当于我们自动信任了他们,相对而言,HTTPS比较安全的。
Q: HTTPS 的传输过程?
客户端发起https请求,服务端返回证书(证书中包含公钥),客户端验证证书,如果有问题,则提示风险;如果没有没问题或者用户
继续,客户端发送传输内容阶段的对称算法的秘钥,用服务端发送证书里的公钥加密;服务端接收后,用自己的私钥解密,然后就拿到
了传输内容阶段的对称算法的秘钥;然后就用 愉快的加密了。
标签:算法 最大 自己的 提升 公钥 认证中心 效率 没有 客户
原文地址:https://www.cnblogs.com/juanzhi/p/12638181.html