OpenSSL是SSL安全协议的一种开源实现
SSL是啥?大家知道我们访问网站的时候,以HTTPS开头的表示你和服务器之间传输的数据经过了加密,这里所使用的加密协议就是SSL(Secure Sockets Layer,后来又推出了它的后续版本,改名叫TLS)。也就是说,把HTTP协议经过一层SSL协议进行加密包装,就变成了HTTPS。当然,SSL/TLS还用在很多协议中,例如VPN、加密的电子邮件协议等。 HTTPS是一种协议,等于HTTP+TLS(由于历史原因,SSL3.0之后就被TLS1.0替代了)。
OpenSSL是啥?在SSL协议中,我们使用了很多密码学手段来保护数据,其中包括对称密码、公钥密码、数字签名、证书、完整性校验、伪随机数生成等。由于这些算法和操作都非常复杂,于是开源社区就开发了一套库,这个库里面提供了很多现成的实现这些算法和操作的标准方法,其他开发者只要用正确调用这些方法,就可以实现SSL协议中的各种加密/解密操作了。因此,OpenSSL是一套开源的密码学工具包(open source cryptography toolkit) 基本功能 OpenSSL整个软件包大概可以分成三个主要的功能部分:密码算法库、SSL协议库以及应用程序。OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。 辅助功能 BIO机制是OpenSSL提供的一种高层IO接口,该接口封装了几乎所有类型的IO接口,如内存访问、文件访问以及Socket等。这使得代码的重用性大幅度提高,OpenSSL提供API的复杂性也降低了很多。 openssl和安全协议的关系就是unix和OS的关系,unix是OS的一种实现,OpenSSL是SSL协议的一种实现 注:爆漏洞(heartbleed)的是程序,不是协议或者算法。协议本身是安全的,但是在实现时编程出现了漏洞 Openssl在Linux和开源领域应用极为广泛。没有一个非常精准的方法来判断HTTPS是否使用openssl。但是,可以大致估计是否使用了openssl——如果你的服务器是Linux,或者虽然不是Linux,根据网站返回的server类型(Web服务器)是Apache的(nginx基本上不能用于非Linux服务器上),其HTTPS协议实现几乎可以肯定就是OpenSSL。 保守估计至少70%以上的网站是使用openssl的。但不是所有服务器都用OpenSSL来实现HTTPS 深入学习: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |