因为中国防火墙已经阻止谷歌appengine的https端口.因此,我希望通过javascript和python模拟安全套接字层来保护我的用户信息不会被那些ISP和GFW捕获.
我的计划:
>握手:
浏览器请求服务器,服务器生成加密密钥k1,解密密钥k2,向浏览器发送k1.
浏览器生成加密密钥k3,并解密密钥k4,将k3发送到服务器.
>浏览:
在会话期间,浏览器用k1加密数据并发送到服务器,服务器用k2解密.服务器用k3加密数据并响应浏览器,浏览器用k4解密.
请弄清楚我的错误.
如果是的话,我的问题是
>如何生成密钥对
javascript和python,都在那里
一些图书馆?
>如何加密和解密数据
javascript和python,都在那里
一些图书馆?
最佳答案
您有一个基本问题,即SSL的JavaScript实现没有内置的根证书来建立信任,这使得无法阻止中间人攻击.您从站点提供的任何证书(包括根证书)都可能被拦截并由间谍替换.
请注意,这是一个基本限制,而不是SSL工作方式的特殊性.所有加密安全性都依赖于建立共享密钥.与主流浏览器一起部署的根证书提供了由证书颁发机构(CA)建立的信任网络的入口点,使您能够与已知的第三方建立共享密钥.这些证书不是AFAIK,可直接访问JavaScript代码.它们仅用于建立安全(例如,https)连接.