什么是 SSL
全称 Secure Sockets Layer (安全套接层)。实际上 SSL 是一种协议(默认在 443 端口),通过加密的方式提高 Web 通信的安全性。其中我们熟悉的 CA 证书就和 SSL 有关,另外 Https 其实就是 Http + SSL/TLS。
TLS(Transport Layer Security 安全传输层协议) 和 SSL 类似
SSL 的位置:
SSL 协议分为两层:
SSL记录协议:为高层协议提供数据封装、压缩、加密等基本功能的支持。
SSL握手协议:用于在实际的数据传输开始前,通讯双方进行身份认证和协商加密算法,交换加密密钥。
什么是 OpenSSL
实际上是一个 库 ,目的是为了更方便的操作 SSL,包括:
1.openssl: 多用途的命令行工具,包 openssl,可以执行交互或批量命令。
2.libcrypto: 加密算法库,包 openssl-libs。
3.libssl: 加密模块应用库,实现了 ssl 及 tls,包 nss。
加密算法(针对应用层与传输层之间的通信),包括:
8 种对称加密算法:(分组加密)AES、DES、Blowfish、CAST、IDEA、RC2、RC5。 (流加密)RC4
4 种非对称加密算法:DH、RSA、DSA、EC(椭圆曲线算法)
5 种信息摘要算法(也叫 Hash 算法。用来校验信息完整性、保存密码):MD2、MD5、MDC2、SHA(SHA1)、RIPEMD