最近发现密码学很有意思,刚好还和工作有点关系,就研究了一下,本文是其中一部分笔记和一些思考。
密码学理论艰深,概念繁多,本人知识水平有限,错误难免,如果您发现错误,请务必指出,非常感谢!
本文目标:
本文有门槛,读者需要对现代密码学有清晰而系统的理解,本文最后的参考文献里有一些很不错的学习资料。
目录 :
TLS协议分析 与 现代加密通信协议设计
一 . TLS协议的设计目标:
1. 密码学的方法论
2. TLS的设计目标
3. TLS的历史
二. TLS协议的原理
1. 自顶向下,分层抽象
2. TLS CipherSuite
3. 协议分层
4. record 协议
4.1. SecurityParameters
4.2. record层分段
4.3. record层的密码学保护
4.4. record层的密码学保护--MAC
4.5. record层的密码学保护--stream cipher
4.6. record层的密码学保护-- CBC block cipher
4.7. record层的密码学保护-- AEAD cipher
4.8. record层的密码学保护-- Key扩展
5. handshake 协议
5.1.handshake的总体流程
5.2. handshake 协议外层结构
5.3. handshake -- ClientHello,ServerHello,HelloRequest
5.4. handshake -- Server Certificate
5.5. handshake -- Server Key Exchange
5.6. handshake -- Certificate Request
5.7. handshake -- Server Hello Done
5.8. handshake -- Client Certificate
5.9. handshake -- Client Key Exchange
5.9.1. RSA 加密的 Premaster Secret 消息
5.9.2. 客户端 Diffie-Hellman 公钥
5.9.3 客户端 EC Diffie-Hellman 公钥
5.10. handshake -- Cerificate Verify
5.11. handshake -- Finished
5.12. handshake -- NewSessionTicket
6. ChangeCipherSpec 协议
7. Alert 协议
8. application data协议
9. TLS协议的安全分析
9.1. 认证和密钥交换 的安全性
9.2. 版本回退攻击
9.3. 针对握手过程的攻击
9.4. 针对 Resuming Sessions 的攻击
9.5. 针对应用数据保护的攻击
9.6. 显式 IV的安全性
9.7. 加密和MAC组合模式的安全性
9.8. DOS 攻击下的安全性
9.9.Session Ticket 的安全分析
10. TLS扩展:
11. TLS的配套:PKI体系
11.1. X.509 证书
11.2.现有PKI体系暴露出的问题
11. TLS协议历史上出现过的漏洞,密码学常见陷阱
11.1. TLS的漏洞
12.1. TLS的漏洞
12.2. 密码学常见陷阱
13. 下一代TLS: TLS 1.3
三. TLS协议的代码实现
四. TLS协议的部署与优化
五. 更多的加密通信协议case:QUIC,iMessage,TextSecure, otr, ios HomeKit,libsodium
1. QUIC
2. apple ios iMessage
3. apple ios HomeKit
4. TextSecure
5. otr 协议
6. libsodium/NaCL 等
六. TLS协议给我们的启发 -- 现代加密通信协议设计
七. 附录:密码学基础概念
八. 参考文献:
1. TLS/SSL 相关RFC及标准
2. 协议分析文章
3. 实际部署调优相关
4. 密码学相关
5. 相关开源项目
密码学和软件开发不同,软件开发是工程,是手艺,造轮子是写代码的一大乐趣。软件开发中常常有各种权衡,一般难有明确的对错,一般还用建筑来比拟软件的结构,设计的优雅被高度重视。
密码学就不一样了。[密码学是科学,不是工程] 见 http://www.daemonology.net/blog/2013-06-17-crypto-science-not-engineering.html ,有严格的技术规范,严禁没有经过学术训练者随意创造。要求严谨的理论建模,严密的数学证明。很少有需要权衡的地方,正确就是正确,错误就是错误。又由于密码学过去在军事上的重要价值,各国政府一直投入大量人力物力财力,不断深入强化己方的算法,破解对手的算法,所以密码学就是一种残酷的军备竞赛。
TLS的设计目标是构建一个安全传输层(Transport Layer Security ),在基于连接的传输层(如tcp)之上提供:
请认准这几个目标,在后文中,会逐一实现。
由于SSL的2个版本都已经退出历史舞台了,所以本文后面只用TLS这个名字。 读者应该明白,一般所说的SSL就是TLS。
余下内容请见后续文章。
本文转自微信后台团队,如有侵犯,请联系我们立即删除
OpenIMgithub开源地址:
https://github.com/OpenIMSDK/Open-IM-Server
OpenIM官网 : https://www.rentsoft.cn
OpenIM官方论坛: https://forum.rentsoft.cn/
更多技术文章:
开源OpenIM:高性能、可伸缩、易扩展的即时通讯架构 https://forum.rentsoft.cn/thread/3
【OpenIM原创】简单轻松入门 一文讲解WebRTC实现1对1音视频通信原理 https://forum.rentsoft.cn/thread/4
【OpenIM原创】开源OpenIM:轻量、高效、实时、可靠、低成本的消息模型 https://forum.rentsoft.cn/thread/1
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。