一、前言
本篇文章承接上一篇,对应讲述一些我在接触SSL协议、证书认证时学到的一些原理性知识。因为本身不是科班出身,网络方面很多对我来说都是新知识,特在此记录一下。
二、HTTPS
HTTPS = HTTP + SSL/TLS 协议,即加密过后的HTTP通信。它其实还是HTTP协议,只是在外面加了一层,SSL 是一种加密安全协议,引入SSL的目的是为了解决HTTP协议在不可信网络中使用明文传输数据导致的安全性问题。可以说,整个互联网的通信安全,都是建立在 SSL/TLS 的安全性之上的。
Protocol | Year | RFC | Description |
---|---|---|---|
SSL1.0 | 1994 | NetScape公司设计1.0版 但是未发布 | |
SSL2.0 | 1995.02 | NetScape公司发布SSL 2.0版 | |
SSL3.0 | 1996 | RFC 6101 | NetScape公司发布SSL 3.0版 |
TLS 1.0 | 1999 | RFC 2246 | 互联网标准化组织ISOC接替NetScape公司,发布了SSL的升级版TLS 1.0版。 |
TLS 1.1 | 2006.04 | RFC 4346 | 发布TLS1.1版 |
TLS 1.2 | 2008.08 | RFC 5246 | 发布TLS1.2版 |
2.1 SSL/TLS 协议及其握手过程
SSL/TLS 的基本运行过程如下:
- 客户端向服务端索要公钥并且进行验证
- 双方协商生成“对话密钥”
- 双方采用“对话密钥”进行加密通信
第一步中的这个公钥就是放在证书中的,防止篡改,只要证书是可信的,那么公钥也是可信的。
这里先说下,SSL/TLS协议是采用了非对称加密的加密思路,也就是说客户端通过用服务端传过来的公钥进行加密,然后服务端收到密文之后用自己的私钥进行解密。
那么第2步的“对话密钥”是什么呢,这里就涉及对称加密的思路了。因为非对称加密的缺点就是速度慢,所以在每次session中,客户端和服务端之间都会生成一个“对话密钥”(session key),用它来加密信息。因为对称加密的优点就是速度快,而服务器发来的公钥就只是用来加密“对话密钥”而已。
所以说SSL/TLS协议的设计中运用了大量的密码学原理和思想。
在这里顺便科普一下常见的加密算法:
- 哈希&#