上过网的朋友一定知道http和https之间的区别:http是未加密的,而https是加密的。而之所以http未加密、https加密,是因为http使用明文socket,而https则使用加密socket(Security Socket Layer,已发展到Transport Layer Security)。在大学本科学习《计算机网络》这门课的时候,我们练习网络编程,所写的程序的是明文socket,是不安全的通信方式。
现在互联网安全通信基本上都是建立在SSL协议基础之上的(OpenSSL是SSL的开源实现)。
SSL已发展到TLS
如果没有正确地使用SSL协议,那么程序在网络上传输的数据很可能被人恶意截获。所以,在开发需要处理敏感信息的程序的时候,很有必要充分了解SSL协议、证书、CA、PKI等基本常识,了解安全网络协议的常见错误用法。
认证过程
SSL协议是基于非对称加密算法来实现客户端和服务器端之间的安全通信的。非对称加密算法生成一对公钥和私钥,用私钥加密的内容可以用公钥还原,并且根据公钥无法推测出私钥。