【OpenSSL 入门:密码学基础知识】诸如 Google 之类的主要网站通常会发送多个证书进行身份验证 。
输出以有关 TLS 会话的摘要信息结尾,包括加密算法套件的详细信息:
SSL-Session:Protocol : TLSv1.2Cipher : ECDHE-RSA-AES128-GCM-SHA256Session-ID: A2BBF0E4991E6BBBC318774EEE37CFCB23095CC7640FFC752448D07C7F438573...
client 程序中使用了协议 TLS 1.2,Session-ID 唯一地标识了 openssl 实用程序和 Google Web 服务器之间的连接 。Cipher 条目可以按以下方式进行解析:
- ECDHE( 椭圆曲线 Diffie-Hellman(临时)(Elliptic Curve Diffie Hellman Ephemeral))是一种用于管理 TLS 握手的高效的有效算法 。尤其是,ECDHE 通过确保连接双方(例如,client 程序和 Google Web 服务器)使用相同的加密/解密密钥(称为会话密钥)来解决“密钥分发问题” 。后续文章会深入探讨该细节 。
- RSA(Rivest Shamir Adleman)是主要的公共密钥密码系统,并以 1970 年代末首次描述了该系统的三位学者的名字命名 。这个正在使用的密钥对是使用 RSA 算法生成的 。
- AES128( 高级加密标准(Advanced Encryption Standard))是一种 块式加密算法(block cipher),用于加密和解密 位块(blocks of bits) 。(另一种算法是 流式加密算法(stream cipher),它一次加密和解密一个位 。)这个加密算法是对称加密算法,因为使用同一个密钥进行加密和解密,这首先引起了密钥分发问题 。AES 支持 128(此处使用)、192 和 256 位的密钥大小:密钥越大,安全性越好 。通常,像 AES 这样的对称加密系统的密钥大小要小于像 RSA 这样的非对称(基于密钥对)系统的密钥大小 。例如,1024 位 RSA 密钥相对较小,而 256 位密钥则当前是 AES 最大的密钥 。
- GCM( 伽罗瓦计数器模式(Galois Counter Mode))处理在安全对话期间重复应用的加密算法(在这种情况下为 AES128) 。AES128 块的大小仅为 128 位,安全对话很可能包含从一侧到另一侧的多个 AES128 块 。GCM 非常有效,通常与 AES128 搭配使用 。
- SHA256( 256 位安全哈希算法(Secure Hash Algorithm 256 bits))是我们正在使用的加密哈希算法 。生成的哈希值的大小为 256 位,尽管使用 SHA 甚至可以更大 。
总结我们通过安全的 C Web 客户端和各种命令行示例对 OpenSSL 做了首次了解,使一些需要进一步阐明的主题脱颖而出 。下一篇文章会详细介绍 ,从加密散列开始,到对数字证书如何应对密钥分发挑战为结束的更全面讨论 。
推荐阅读
- 入户鞋柜高度多少合适,入门鞋柜有没有必要做到顶
- Redis从入门到精通,至少要看看这篇
- 内存|DIY从入门到放弃:不懂XMP买高频内存就是白花钱
- 最简单的python爬虫案例,适合入门学习
- 程序员和IT人都应该懂的知识:HTTP入门图解
- 防火墙入门基础之登录Web配置界面,看完小白也可配置,超简单
- Github入门使用指南
- 瑜伽入门体式有哪些?
- java日志logback入门
- XMLHttpRequest使用入门