一、SSL基本原理
加密和解密使用同一个密钥的算法,称为对称加密算法;加密和解密使用不同密钥的算法,称为非对称加密算法。
对称加密算法通信双方都需要密钥,此密钥一旦被第三方窃取,通信过程将毫无隐私可言。
非对称加密算法相对更加安全,服务端生成公有密钥跟私有密钥,其中公有密钥对外公开,私有密钥服务端持有,公有密钥加密过的数据只能被私有密钥解密,所以即便第三方知道公有密钥,客户端用公有密钥加密过的数据也只可以被服务端用其持有的私有密钥解密,通信过程对双方透明而对第三方隐秘。
非对称加密过程是一个不可逆的过程,即只有私有密钥才能解密。在公开密钥密码体制中,最常用的是采用RSA算法加密解密。其数学原理可以参见《RSA算法的C++实现》。
二、SSL握手过程
1、客户端向服务端请求对话,将自身SSL版本等必要信息发送给服务端。
2、服务器向客户端发送公有密钥。
3、客户端向服务端发送公钥加密的本次对话密钥。
4、服务端用自己的私钥解密,获取本次对话的密钥,握手结束。
5、对话正式开始,双方都用SSL协议协商好的密钥加密解密通信数据。
除非注明,文章均为CppLive 编程在线原创,转载请注明出处,谢谢。
嘿嘿,在来个消息gfw已经支持加密检索了哦
gfw有那么强大麽?https开头的网页内的数据交互搜索引擎都没检索。不过gfw确实挺“牛逼”的。