1. 初始通信:一对一
-
公钥和私钥的定义:
- 公钥(Public Key):可以公开分享,任何人都可以使用这个公钥来加密数据。
- 私钥(Private Key):必须保密,只有一方持有,可以用来解密通过公钥加密的数据。
-
使用示例:
- 设想两个朋友,Alice 和 Bob。Alice 将消息用 Bob 的公钥加密,只能通过 Bob 的私钥解密。这种方式保证了即使其他人拦截了消息,也无法解读内容。
2. 多人通信
-
多人通信:
- 当用户数量增加时,通信变得更加复杂。每个用户都需要与所有其他用户共享各自的公钥。
-
问题:
- 如果存在多个用户,如何保证每个人都能确认自己正在与正确的人通信?如何避免中间人攻击?
3. 引入Web服务
-
Web服务的出现:
- 随着互联网的发展,网站(Web服务商)开始提供信息和服务。用户通过浏览器访问这些网站。
-
公钥的分发问题:
- 每个网站需要将其公钥共享给用户,但在这种情况下,用户并不知道哪个网站的公钥是真实可信的。
- 换言之,用户需要确定它所获取的公钥是网站所有者生成的。这时候我们会很自然的想到一个权威的中间媒介,他能一方面核对网站的公钥和身份信息,一方面能帮助用户通过域名获取到对应公钥。
4. 浏览器作为中介
-
浏览器的角色:
- 浏览器作为用户与Web服务商之间的中介,负责内容的呈现和数据的安全性。
-
用户信任问题:
- 用户希望确保访问的网站确实是他们想要访问的目标,而不仅仅是某个恶意网站。
-
所需机制:
- 为了提供这种信任基础,浏览器需要一种机制来验证网站的身份,并确保安全的数据交换。
5. 引入数字证书
-
数字证书的概念:
- 网站将公钥与其身份信息结合,生成数字证书,证书中包含了网站的公钥及其他信息(如域名、有效期等)。
-
证书的作用:
- 数字证书起到了“身份证”的作用,可以告诉用户,访问的网站确实是它声称的那一个。
6. 证书颁发机构(CA)
-
CA的角色:
- 由于每个浏览器都不能单独管理每个网站的公钥,CA(证书颁发机构)作为一种权威实体被引入。
-
信任链的建立:
- CA会验证网站的身份,确保其合法性,并对其公钥进行数字签名,生成SSL证书。
-
浏览器的信任链:
- 浏览器已内置了受信任CA的公钥,收到的网站证书会通过CA的公钥进行验证,以确认证书的有效性和真实性。
7. 正式的安全连接建立
-
建立安全连接:
- 用户的浏览器从网站获取了数字证书,验证了证书的真实性后,即可安全地使用网站的公钥进行加密通信。
-
数据传输:
- 通过私钥进行消息解密和签名,保证数据的机密性和完整性。