HTTPS实现原理
2020-08-28 13:44:08 0 举报
HTTPs实现原理
作者其他创作
大纲/内容
4
服务端
CA机构
2
7
server.公钥客户端的加密算法
中间人.公钥客户端的加密算法
客户端
server.私钥server.公钥
服务端向客户端发送公钥证书
发送密文:*s$#8@
客户端用随机密钥解析服务端发送的密文再次用密钥加密要发送的数据给服务器
CA的公钥会提前安装到客户端
服务端发送server.公钥
发送一个hi给服务端并告诉服务端自己支持的加密算法
中间人
6
对称加密算法
server.公钥解密服务端用密钥加密的数据server.公钥加密客户端要发送给服务端的数据
3
密匙加密数据
给客户端应答
给服务端发送hi请求
服务器用私钥解密出客户端的随机密钥并用随机密钥加密数据发送给客户端
服务端用server.私钥解密出客户端的随机密匙,并告诉客户端可以了
服务端讲server.公钥登记到CA
用中间人的公钥加密自己的密钥
客户端用server.公钥对自己的随机密匙进行加密发送给服务端
通过加密数据这样是可以实现安全的数据传输,但是这个共同的密钥应该怎么传输呢,如果直接在网上传输,别人也可以看见这个密钥,那么数据也就不安全了
这样中间人伪装成了服务器和客户端,所以造成了信息的不安全。这里存在的主要问题就是客户端如何识别公钥是服务端的公钥还是中间人的公钥
对称加密算法对数据进行加密
http三次握手建立连接开始发送数据
密匙解密数据
转发服务端请求
中间人把假的公钥发给客户端
用server.公钥加密
http到https的过程
客户端收到服务端的证书后会使用CA内置的公钥对它做数字签名确认真伪并提取出server.公钥
非对称加密算法
server.私钥解密客户端用公钥加密的数据server.密钥加密发送给客户端的数据
通过非对称加密算法就实现了把客户端的对称密钥安全的传到了服务端,但这里还有一个中间人攻击的问题
5
8
发送明文:hello
CA用自己的私钥把server.公钥+服务器信息进行数字签名生成证书发给服务端
1
浏览器或操作系统内置CA的公钥
服务端把server.公钥发送给客户端
客户端使用公钥证书中提取的server.公钥对客户端的随机密钥进行加密
中间人用自己的私钥解密客户端加密的数据,这样就可以看到了客户端中的对称加密密钥
把客户端请求转发给服务端
0 条评论
下一页