加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > C语言 > 正文

OpenSSL是SSL安全协议的一种开源实现

发布时间:2020-12-15 00:29:13 所属栏目:C语言 来源:网络整理
导读:SSL是啥?大家知道我们访问网站的时候,以HTTPS开头的表示你和服务器之间传输的数据经过了加密,这里所使用的加密协议就是SSL(Secure Sockets Layer,后来又推出了它的后续版本,改名叫TLS)。也就是说,把HTTP协议经过一层SSL协议进行加密包装,就变成了HT

SSL是啥?大家知道我们访问网站的时候,以HTTPS开头的表示你和服务器之间传输的数据经过了加密,这里所使用的加密协议就是SSL(Secure Sockets Layer,后来又推出了它的后续版本,改名叫TLS)。也就是说,把HTTP协议经过一层SSL协议进行加密包装,就变成了HTTPS。当然,SSL/TLS还用在很多协议中,例如VPN、加密的电子邮件协议等。


HTTPS是一种协议,等于HTTP+TLS(由于历史原因,SSL3.0之后就被TLS1.0替代了)。
openssl这套开源工具主要有两个特性:

实现了ssl2,ssl3,TLSv1,TLSv1.1,TLSv1.2协议。
实现目前常用的加密算法。

OpenSSL是啥?在SSL协议中,我们使用了很多密码学手段来保护数据,其中包括对称密码、公钥密码、数字签名、证书、完整性校验、伪随机数生成等。由于这些算法和操作都非常复杂,于是开源社区就开发了一套库,这个库里面提供了很多现成的实现这些算法和操作的标准方法,其他开发者只要用正确调用这些方法,就可以实现SSL协议中的各种加密/解密操作了。因此,OpenSSL是一套开源的密码学工具包(open source cryptography toolkit)


基本功能

OpenSSL整个软件包大概可以分成三个主要的功能部分:密码算法库、SSL协议库以及应用程序。OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。
作为一个基于密码学的安全开发包,OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。

辅助功能

BIO机制是OpenSSL提供的一种高层IO接口,该接口封装了几乎所有类型的IO接口,如内存访问、文件访问以及Socket等。这使得代码的重用性大幅度提高,OpenSSL提供API的复杂性也降低了很多。
OpenSSL对于随机数的生成和管理也提供了一整套的解决方法和支持API函数。随机数的好坏是决定一个密钥是否安全的重要前提。
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
windows系列的服务器包括IIS,windows server等都是使用schannel实现安全协议,没有使用openssl,没有受heartbleed影响。

深入学习:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读