说明:
本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。
QQ 群 号:513683159 【相互学习】
openssl官网
什么是Openssl、linux openssl简单的介绍与实例讲解、openssl基本原理 + 生成证书 + 使用实例、
SSL简介、SSL/TLS协议运行机制的概述、Linux自学笔记——OpenSSL命令行工具
一、什么是openssl?openssl-github、openssl官网
一个强大的、开放源代码的、功能齐全的 传输层安全(TLS) / 安全套接字层(SSL)协议的工具包,实现一个完整的通用密码库,囊括:主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
采用C语言作为开发语言,具有优秀的跨平台性。
(一)目标
保证信息:
①保密性(防止窃听、通信量分析)、
②完整性(防止更改、伪装、重放、否认)、
③可用性(拒绝服务[Dos])。
可进行安全通信,避免窃听、确认连接身份等。
(二)解决方案
①加密与解密:替换加密、置换加密、现代块加密
②服务:认证机制、访问控制机制
③密钥算法和协议:对称加密、公钥加密(非对称加密)、单向加密、认证协议
(三)什么是SSL?
1.描述:SSL = Secure Sockets Layer = 安全套接层协议
位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。
能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证。
2.历史:
由Netscape(网景)公司推出第一个Web浏览器的同时提出了SSL协议标准.
TLS1.0与SSL3.0的差别非常微小。故:TLS 1.0通常被标示为SSL 3.1,TLS 1.1为SSL 3.2,TLS 1.2为SSL 3.3。
3.目的:
通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现Internet上客户端和服务器之间的安全通讯(保密性和可靠性)。
二、openssl包含哪些组件?
密码算法库、SSL协议库以及应用程序。
1️⃣密码算法库(libcrypto)
实现各种因特网标准中广泛使用的密码算法,即:通用密码库,是TLS实现的基础,可单独使用。
(1)功能:
对称加密、公钥加密(非对称加密算法)、密钥协议、证书处理、密码散列函数、密码伪随机数生成器、消息验证代码(MACS)、密钥派生函数(KDF)和各种实用程序。
(2)算法:
1.对称加密算法(8种)
加密解密均使用同一种密钥,包含:
①分组加密算法(7种):AES、DES、Blowfish、CAST、IDEA、RC2、RC5
均支持电子密码本模式(ECB)、加密分组链接模式(CBC)、加密反馈模式(CFB)和输出反馈模式(OFB)四种常用的分组密码加密模式
②流加密算法(1种):RC4
2.非对称加密算法(4种):
加密解密使用不同种密钥,包含:
DH算法、RSA算法、DSA算法和椭圆曲线算法(EC)
DH算法一般用户密钥交换,DSA算法一般只用于数字签名,RSA算法既可以用于密钥交换,也可以用于数字签名
3.信息摘要算法:(5种)
无论原始数据长度输出均为固定长度的密文,该过程不可逆,包含:
MD2、MD5、MDC2、SHA(SHA1)和RIPEMD
作用:数据完整性的验证(若数据遭更改则输出摘要不同)。
2️⃣SSL协议库(libssl)
TLSv1.3以下所有TLS协议版本的实现。
加密模块应用库,实现了ssl及tls。
3️⃣应用程序(openssl)
多用途命令行工具,可用于加密、测试、分析。
1.作用:
①加解密、②消息摘要的计算、③创建X.509证书、CSR和CRLS、④关键参数的创建、⑤SSL/TLS客户端和服务器测试 等等。
2.运行方式:
①交互模式。
②批处理/命令行模式。
三、文献资料参考地址:
1️⃣*
2️⃣手册
3️⃣openssl命令行