物联网-OpenSSL
- ■ OpenSSL 是一个开源的密码学工具包
- ■ 01. OpenSSL-简介
- ■ 02. OpenSSL-
- ■ 03. OpenSSL-
- ■ 04. OpenSSL-
- ■ 05. OpenSSL-
- ■ 加密解密
- ■ 01. 概述
- ■ 02. 对称加密算法
- ■ 03. 非对称加密算法
- ■ 04. 数字证书
- ■ 05.
■ OpenSSL 是一个开源的密码学工具包
■ 01. OpenSSL-简介
| 关键 | 描述 |
|---|---|
| OpenSSL | 是一个开源的密码学工具包,实现了SSL(安全套接层)和 TLS(传输层安全)协议,同时提供了丰富的密码学算法和实用工具。 HTTP on SSL 即是HTTPs 1. 密钥与证书管理 OpenSSL 是证书管理的"全能工具",支持: - 生成密钥对(RSA、ECC 等) - 创建证书签名请求(CSR) - 生成自签名证书(用于测试或内部使用) - 充当私有 CA 签发和管理证书 - 验证证书链完整性 - 证书格式转换(PEM、DER、PFX 等) 2. 加密算法支持 - 对称加密:AES、DES、3DES、ChaCha20、Blowfish 等 - 非对称加密:RSA、DSA、Diffie-Hellman、椭圆曲线(X25519、Ed25519 等) - 哈希函数:SHA-1、SHA-2、SHA-3、MD5、BLAKE2 等 - 数字签名:支持多种签名算法和验签操作 |
| OpenSSL | 加密通信:让数据在网络上传输时"低声细语"而不是"大声喊叫",防止被窃听或篡改 身份认证:通过数字证书确认通信对方的真实身份 当你在浏览器地址栏看到那把"小锁"(HTTPS)时,背后很可能就是 OpenSSL 在工作。 |
| OpenSSL 协议 | OpenSSL 最核心的功能是实现SSL/TLS 协议,通过对称加密和非对称加密技术的结合,确保数据在传输过程中的机密性和完整性。这是 HTTPS、SMTPS、FTPS 等安全协议的基础。 SSL/TLS不仅提供加密,还确保数据的完整性和通信双方的身份验证。 SSL (Secure Sockets Layer): 安全套接层:一种安全协议,用于在互联网上提供加密通信。 TLS (Transport Layer Security): 传输层安全协议:SSL的继承者,提供更强的安全性。 1. 握手过程解析SSL/TLS握手是建立加密通信的关键步骤。这个过程涉及多个阶段,包括: 1. 客户端和服务器的协议版本协商:确定使用哪个版本的SSL/TLS。 2. 密钥交换:客户端和服务器交换密钥信息,确保双方都能加密和解密信息。 3. 证书验证:客户端验证服务器的身份,确保通信安全。 2. 数据封装与解封装 SSL/TLS中,加密发生在应用层数据被传递到传输层之前。这意味着,加密数据被TCP看作是普通数据进行传输。在接收端,数据被TCP层解封装后,再由SSL/TLS层进行解密,然后传递给应用层。 3. 安全握手 SSL/TLS的握手过程是建立安全通信的关键。在这个过程中,客户端和服务器交换密钥信息,协商加密算法。这个过程就像是两个初次见面的人在建立信任,通过一系列的交流来确认对方的身份和意图。 |
| OpenSSL 主要角色 | 生成和管理密钥:创建用于加解密数据的数字密钥 加解密数据:使用这些密钥对数据进行加密和解密,确保只有持有正确密钥的一方才能读取信息 |
| OpenSSL 工作原理 | 以 HTTPS 网站为例的工作流程: 1. 使用 OpenSSL 生成 SSL/TLS 证书和私钥 2. 将证书安装在服务器上,向访问者证明网站身份 3. 浏览器与服务器通过 TLS 握手协商加密参数 4. 双方使用协商好的密钥对传输数据进行加密 |
| OpenSSL 对称加密与非对称加密 | 1. SSL/TLS使用对称加密和非对称加密的结合。 非对称加密用于握手阶段的密钥交换, 对称加密则用于实际的数据传输。 |
| OpenSSL 数字证书和密钥交换 | 1. 数字证书是SSL/TLS中用于身份验证的重要组成部分。 它们由可信的证书颁发机构签发,并包含公钥信息。 密钥交换则是在握手过程中,客户端和服务器之间建立一个共享的秘密,用于后续的对称加密。 |
| OpenSSL 数据完整性和身份验证 | 1. SSL/TLS不仅提供加密,还确保数据的完整性和通信双方的身份验证。 消息认证码 (Message Authentication Code, MAC) 消息认证码是一种保证信息完整性的机制。它通过对每条消息附加一个安全的MAC来实现,确保数据在传输过程中未被篡改。 身份验证机制 (Authentication Mechanisms) SSL/TLS通过使用数字证书来验证通信双方的身份。这就像是在网络世界中展示你的身份证,确保你是你所声称的那个人。 |
■ 02. OpenSSL-
■ 03. OpenSSL-
■ 04. OpenSSL-
■ 05. OpenSSL-
■ 加密解密
■ 01. 概述
| 概念和术语 | 描述 |
|---|---|
| 加密密钥 (Encryption Keys) | 1. 公钥 (Public Key):用于加密数据,可以公开。 2. 私钥 (Private Key):用于解密数据,必须保密。 |
| 证书 (Certificates) | 1. 数字证书 (Digital Certificate):用于验证实体身份的电子文件。 |
| 加密算法 | 1. 对称加密:双方共享一个密钥,用于加密和解密信息。 2. 非对称加密:使用一对公钥和私钥,其中一个用于加密,另一个用于解密。 |
| 对称加密算法 | 1. OpenSSL一共提供了8种对称加密算法,其中7种是分组加密算法,1种流加密算法是RC4 7种分组加密算法:AES、DES、Blowfish、CAST、IDEA、RC2、RC5 1种流加密算法:RC4 |
| 加密模式 | 电子密码本模式(ECB) 加密分组链接模式(CBC) 加密反馈模式(CFB) 输出反馈模式(OFB) |
| AES | AES使用的加密反馈模式(CFB)和输出反馈模式(OFB)分组长度是128位,其它算法使用的则是64位。 |
| DES | DES算法里面不仅仅是常用的DES算法,还支持三个密钥和两个密钥3DES算法。 |
| 1. TCP/IP协议(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是互联网的基础, 2. SSL/TLS(Secure Sockets Layer/Transport Layer Security,安全套接字层/传输层安全) | |
| base64 | Base64,顾名思义,就是包括小写字母a-z、大写字母A-Z、数字0-9、符号"+“、”/“一共64个字符的字符集,(另加一个“=”,实际是65个字符,至于为什么还会有一个“=”,这个后面再说)。任何符号都可以转换成这个字符集中的字符,这个转换过程就叫做base64编码。 |
■ 02. 对称加密算法
OpenSSL一共提供了8种对称加密算法,其中7种是分组加密算法,仅有的一种流加密算法是RC4。
| 定义 | 描述 |
|---|---|
| OpenSSL | 1. OpenSSL一共提供了8种对称加密算法 7种是分组加密算法, 1种流加密算法是RC4 2. 7种分组加密算法分别AES、DES、Blowfish、CAST、IDEA、RC2、RC5都支持如下:四种常用的分组密码加密模式。 电子密码本模式(ECB)、 加密分组链接模式(CBC)、 加密反馈模式(CFB) 输出反馈模式(OFB) 3.AES使用的加密反馈模式(CFB)和输出反馈模式(OFB)分组长度是128位,其它算法使用的则是64位。 4.DES算法里面不仅仅是常用的DES算法,还支持三个密钥和两个密钥3DES算法。 |
■ 03. 非对称加密算法
OpenSSL一共实现了4种非对称加密算法,包括DH算法、RSA算法、DSA算法和椭圆曲线算法(EC)。
| 概念和术语 | 描述 |
|---|---|
| DH | DH算法一般用户密钥交换 |
| RSA | RSA算法既可以用于密钥交换,也可以用于数字签名 |
| DSA | DSA算法则一般只用于数字签名。 |
| EC (椭圆曲线) |
■ 04. 数字证书
■ 05.
# ■ ## ■01.## ■02.## ■03.## ■04.## ■05.