关于SSL/TLS协议的学习记录
博客
一篇文章让你彻底弄懂SSL/TLS协议 - 知乎 (zhihu.com)
简介
SSL/TLS是一种密码通信框架,是世界上使用最广泛的密码通信方法。SSL/TLS综合运用了密码学中的对称密码、消息认证码、公钥密码、数字签名、伪随机数生成器等,可以说是密码学中的集大成者。
SSL(Secure Socket Layer)安全套接层,是1994年由Netscape公司设计的一套协议,并与1995年发布了3.0版本。
TLS(Transport Layer Security)传输层安全是IETF在SSL3.0基础上设计的协议,实际上相当于SSL的后续版本。
密码学相关博客
密码学入门之密码 - 掘金 (juejin.cn)
对称密码
对称密码是一种加解密使用相同密钥的密码体制,也被称为传统密码。利用密钥和加密算法将明文变成密文,再运用相同的密钥和解密算法,将密文恢复成明文。经典的算法有DES、3DES、AES等。
消息认证码
即Message Authentication Code,是一种确认完整性并进行认证的技术。消息认证码的输入包括任意长度的消息和一个发送者与接收者之间共享的密钥,它可以输出固定长度的数据,这个数据称为MAC值。可以简单的理解消息认证码是一种与密钥相关联的单向散列函数。
公钥密码
公钥密码学也称为非对称密码学,基本的意思就是在加密和解密的时候使用不同的秘钥,其中一个是公钥,是可以公开出去的,另外一个是私钥,要严格保密。公钥密码学有两个应用:加密通信和数字签名。加密算法都是基于一些目前无解的数学问题,或者叫单向函数,例如整数分解或者离散对数。具体的算法有 RSA 和 ECC。
数字签名
数字签名是一种利用非对称密码学将相当于现实世界中的盖章、签字的功能在计算机世界中进行实现的技术。Alice使用“签名密钥"来生成消息的签名,而Bob使用“验证密钥"来验证消息的签名。数字签名对签名密钥和验证密钥进行了区分,使用验证密钥是无法生成签名的。此外,签名密钥只能由签名的人持有,而验证密钥则是任何需要验证签名的人都可以持有。
伪随机数生成器
密码学许多场景都会用到,比如从特定的密钥空间中获取几个随机的密钥,用于进行加密,这个时候就需要我们随机得到一些数。几种常见的伪随机数生成器:线性同余生成器、RSA生成器、BBS生成器等。
IETF
即Internet Engineering Task Force,国际互联网工程任务组,是一个公开性质的大型民间国际团体,负责互联网相关技术规范的研发和制定。
应用
SSL/TLS是一个安全通信框架,上面可以承载HTTP协议或者SMTP/POP3协议等。
TLS协议的架构
分为两层:
- 底层是TLS记录协议,主要负责使用对称密码对消息进行加密
- 上层是TLS握手协议,主要分为握手协议、密码规格变动协议、警告协议和应用数据协议四部分。
- 握手协议负责在客户端和服务器端商定密码算法和共享密钥,包括证书认证,是4个协议中最最复杂的部分。
- 密码规格变更协议负责向通信对象传达变更密码方式的信号。
- 密码规格变更协议负责向通信对象传达变更密码方式的信号。
- 应用数据协议负责将TLS承载的应用数据传达给通信对象的协议。
|