OpenSSL简介

1.OpenSSL简介

1.1 简介

SSL为了让网络通信更安全,简单来说就是在TCP之上做一个安全通信层,HTTP on SSL即是HTTPs。SSL交互过程还是很复杂的,牵扯到非对称加密和对称加密,以及复杂的交互过程,为此有人写了OpenSSL库。

1.2 SSL和TLS

SSL是TLS的前身,SSL从1.0、2.0到3.0一步步修订,但安全性都不是非常完美。知道后来SSL3.0摇身一变变成TLS1.0,发展至今已经达到TLS1.2的稳定版本。

  • SSL 1.0,未发布公开,因为严重的安全性漏洞
  • SSL 2.0,1995.02,包含一些需要在SSL3.0解决的安全漏洞
  • SSL 2.0 在2011年被RFC 6176禁止
  • SSL 3.0,1996,代表着该协议的完整重新设计,
  • SSL 3.0也在后来June 2015被RFC 7568禁止.
  • TLS 1.0 在January 1999首次在RFC 2246中定义,作为SSL 3.0的升级版本
  • TLS 1.1April 2006在RFC 4346 中定义
  • TLS 1.2August 2008 在 RFC 5246定义,基于TLS 1.1进行升级

1.3 密钥证书管理

密钥和证书管理是PKI的一个重要组成部分,OpenSSL为之提供了丰富的功能,支持多种标准。
首先,OpenSSL实现了ASN.1的证书和密钥相关标准,提供了对证书、公钥、私钥、证书请求以及CRL等数据对象的DER、PEM和BASE64的编解码功能。OpenSSL提供了产生各种公开密钥对和对称密钥的方法、函数和应用程序,同时提供了对公钥和私钥的DER编解码功能。并实现了私钥的PKCS#12和PKCS#8的编解码功能。OpenSSL在标准中提供了对私钥的加密保护功能,使得密钥可以安全地进行存储和分发。
在此基础上,OpenSSL实现了对证书的X.509标准编解码、PKCS#12格式的编解码以及PKCS#7的编解码功能。并提供了一种文本数据库,支持证书的管理功能,包括证书密钥产生、请求产生、证书签发、吊销和验证等功能。
事实上,OpenSSL提供的CA应用程序就是一个小型的证书管理中心(CA),实现了证书签发的整个流程和证书管理的大部分机制。
OpenSSL简介_第1张图片

1.4 加密算法

  • 对称加密
    OpenSSL一共提供了8种对称加密算法,其中7种是分组加密算法,仅有的一种流加密算法是RC4。这7种分组加密算法分别是AES、DES、Blowfish、CAST、IDEA、RC2、RC5,都支持电子密码本模式(ECB)、加密分组链接模式(CBC)、加密反馈模式(CFB)和输出反馈模式(OFB)四种常用的分组密码加密模式。其中,AES使用的加密反馈模式(CFB)和输出反馈模式(OFB)分组长度是128位,其它算法使用的则是64位。事实上,DES算法里面不仅仅是常用的DES算法,还支持三个密钥和两个密钥3DES算法。
  • 非对称加密
    OpenSSL一共实现了4种非对称加密算法,包括DH算法、RSA算法、DSA算法和椭圆曲线算法(EC)。DH算法一般用于密钥交换。RSA算法既可以用于密钥交换,也可以用于数字签名,当然,如果你能够忍受其缓慢的速度,那么也可以用于数据加密。DSA算法则一般只用于数字签名。
  • 信息摘要
    OpenSSL实现了5种信息摘要算法,分别是MD2、MD5、MDC2、SHA(SHA1)和RIPEMD。SHA算法事实上包括了SHA和SHA1两种信息摘要算法。此外,OpenSSL还实现了DSS标准中规定的两种信息摘要算法DSS和DSS1。

1.5 参考资料

HTTPS中的证书认证原理和实践:https://www.jianshu.com/p/bad8a99de24c
openssl实现双向认证教程(服务端代码+客户端代码+证书生成):https://www.cnblogs.com/lsdb/p/9391979.html

你可能感兴趣的:(linux,OpenSSL)