一、前文回顾:
1、SSL/TLS有3个目的,分别由不同密码学工具提供
- Confidentiality(保密性):数据只有Client和Server才能访问,由Encryption(加密)所提供
- Integrity(完整性):Client和Server间的数据不会被修改,由Hashing(哈希)所提供
- Authentication(真实性):Client和Server确实是他们所表述的身份,由PKI(公钥基础设施)所提供
2、前文提到的所有内容及其关联罗列,如下表,
二、SSL/TLS如何运用加密工具
- 现在,Client(浏览器)和Server(freessl.cn)想要相互分享批量数据,并且希望能够以一种安全的方式进行分享。这意味着他们想要应用对称加密来保证批量数据的保密性,并且应用MAC(Message Authentication Code)来保证批量数据的完整性,而这两者都需要相互的密钥。
- 因此,我们既然要保证批量数据的保密性和完整性,我们首先要创建对称密钥。
- 我们知道非对称加密被用来进行密钥交换来创建对称密钥。所以,我们需要服务器拥有一套非对称密钥,之后Client和Server两端可以运用这些密钥来创建对称密钥(提供保密性和完整性)。
- 此时我们发现我们没提到Authentication(真实性),事实是:世界上任何人都可以生成非对称密钥。此时,所有Client侧知道在线的另一端有着相同的对称密钥,Client还是无法确认对面的到底是谁(因为任何人的都可以生成非对称密钥),所以此时需要的一个角色就是CA机构(Certificate Authority)
- CA是一个被Client所信任的实体;CA会生成一张证书,这张CA生成的证书会将特定的一对密钥与身份链接起来;这张证书表明拥有与这个公钥(在证书内)相匹配的私钥的实体,确实是freessl.cn。
- 我们也注意到,这张证书被CA所签名,而Clients信任该CA。
- 因为CA签名了这张证书,我们知道这张证书能证明它自己的Authentication(真实性),而Client也能知道从证书发出之时,证书的内容没有被修改过。
- 因为Client信任CA,我们知道的事实是证书未被修改过,而证书验证和识别的非对称密钥也继承了CA证书的真实性(Authentication)。也就意味着,我们用非对称密钥(拥有Authentication)所生成的对称密钥也继承了Authentication(真实性)。也就是说,当我们用MAC(Message Authentication Code)时,用的对称密钥(源自被授权过后的非对称密钥)也提供了Authentication。
以上就是SSL/TLS如何提供Confidentiality、Integrity和Authentication来保护在线数据。
需要注意的是,Client、Server和CA三者都是至关重要的,这三者让SSL/TLS起作用;
三者也形成一个三角形,我们称之为PKI(Public Key Infrastructure),在后文将会进行介绍
参考文献
1、网站:Practical Networking.net:Practical TLS