ATS: HTTPS 认证

ATS: HTTP/HTTPS 协议介绍 中介绍了一些关于 HTTP/HTTPS 的概念以及相关的基本知识.

今天来聊聊关于 HTTPS 的认证方式和过程.

说 HTTPS 认证前, 先了解几个概念.

关于加密的几个概念

1. SSL 协议加密方式

SSL 既用了对称加密, 也用了非对称加密(公钥加密).

在建立传输链路时, SSL 首先对对称加密的密钥使用公钥进行非对称加密, 链路建立好之后,SSL 对传输内容使用对称加密.

下面是两种加密方式的对比:

1.对称加密

对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥,这种方法在密码学中叫做 对称加密算法,对称加密算法使用起来简单快捷,密钥较短,且破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比 DES 的加密性好,而且对计算机功能要求也没有那么高.
IDEA 加密标准由 PGP(Pretty Good Privacy)系统使用.

该加密方式, 速度快, 可加密内容较大, 用来加密会话过程中的消息.

2.公钥加密(非对称加密)

1976年,美国学者 Dime 和 Henman 为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”.
相对于 对称加密算法 这种方法也叫做 非对称加密算法.
与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey). 公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密.
因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

该加密方式, 速度较慢, 能提供更好的身份认证技术, 用来加密对称加密的密钥.

2. 数字证书

一种文件的名称,好比一个机构或人的签名,能够证明这个机构或人的真实性. 其中包含的信息,用于实现上述功能.

3. 加密和认证

加密是指通信双方为了防止铭感信息在信道上被第三方窃听而泄漏,将明文通过加密变成密文,如果第三方无法解密的话,就算获得密文也无能为力.

认证是指通信双方为了确认对方是值得信任的消息发送或接受方,而不是使用假身份的非法者,采取的确认身份的方式.

只有同时进行了加密和认证才能保证通信的安全,因此在 SSL 通信协议中这两者(加密和认证)都被使用.

加密一般使用 对称加密算法不对称加密算法,不对称加密最常见的算法就是 RSA.

4. 消息摘要

这个技术主要是为了避免消息被篡改.

消息摘要是把一段信息, 通过某种算法, 得出一串字符串.
这个字符串就是消息的摘要,如果消息被篡改(发生了变化), 那么摘要也一定会发生变化(如果2个不同的消息生成的摘要是一样的,那么这就叫发生了碰撞).

消息摘要的算法主要有 MD5 和 SHA,在证书领域,一般都是用 SHA(安全哈希算法).

数字证书、加密和认证、消息摘要三个技术结合起来,就是在 HTTPS 中广泛应用的证书(certificate), 证书本身携带了加密/解密的信息,并且可以标识自己的身份,也自带消息摘要.

HTTPS 认证方式

分为单向和双向认证.

单向认证

单向认证较简单, 只需要服务端校验服务端的证书的合法性.

该认证过程使用下面的流程图来表示:
1

双向认证

双向认证和单向认证原理基本一致,但是需要双方都校验对方的证书的合法性.

该认证过程使用下面的流程图来表示:
1

随机数的产生

不管是单向认证, 还是双向认证, 都有随机数的产生和发送.

下图是随机数的产生流程图:
1

生成对话密钥, 一共需要三个随机数.

推荐

推荐在线流程图工具:

ProcessOn.

推荐博文:

1.图解SSL/TLS协议

2.HTTPS的七个误解(译文)

3.对称加密和非对称加密介绍和区别

本文中参考了上面文章的部分内容, 感谢这些作者.

坚持原创技术分享!