背景
最近要上小游戏必须用wss进行通信,其实就是对应https的加密通信方式,需要购买ssl证书。
使用https的的作用就是防止中间人对接获信息的读取和篡改。
分析
证书流程:
第三方权威机构:签发证书加密私钥。
服务器:生成RSA公钥与私钥,第三方加密后的证书,证书内容包含域名,RSA公钥。
客户端:浏览器操作系统内置签发证书公钥,随机生成对称加密密钥K。
https所做的就是将客户端生成的密钥K不被中间人窃取与替换地提交给服务器。
通信流程:
1、客户端请求非对称加密RSA公钥,服务器返回权威机构加密后的第三方加密后的公钥。
2、客户端使用内置第三方公钥解密出RSA公钥,并检查域名是否一致。
3、一致后随机生成对称加密密钥K,用RSA公钥加密后提交给服务器。
4、服务器用RSA私钥解密出加密密钥K。
5、服务器与客户端同过密钥K通信。
这个流程就可以保证中间人无法对客户端服务器间通信的读取和篡改,例如域名劫持添加广告端现象。
一句话总结
https 就是先进行非对称加密交换对称加密的密钥,然后通过对称加密通信。