SSL 是如何工作的
对网络传输的数据进行加密和解密的算法通常分为两类:对称加密和非对称加密。
- 对称加密 的加密密码和解密密码相同。对称加密的算法有:DES(Data Encryption Standard)、3DES(Triple DES)、RC2(Rivest Cipher 2)、和RC4(Rivest Cipher 4)。
- 非对称加密 的密钥分为私钥和公钥。公钥可以公开传播,私钥保存在安全的地方。公钥加密,只有对应的私钥能解密。私钥加密,只有对应的公钥能解密(这种特性还可以用来确认发送者身份)。
经常与 SSL 一起使用的公钥加密算法是 RSA(Rivest Shamir Adleman)算法。使用专门用于密钥交换的SSL的另一种公钥算法是DH(Diffie-Hellman)算法。公钥密码学需要大量的计算,使其非常慢。因此,它通常仅用于加密小块数据,例如秘密密钥,而不是大量的加密数据通信。
互联网上启用 https 的网站越来越多。https 除了能够加密传输数据外,另一个重要目的是解决网站的可信问题。这是一种单向信任的需求,不需要认证客户端。https 实际上是 HTTPS 协议下 SSL/TLS。
在商用环境下,可能还需要增加对客户机的认证。这是一种双向认证,又称 Mutual Authentication 或 two-way SSL。
单向 SSL
为了实现对服务器的“可信”检验,需要在客户机上搭建“可信证书库”(或称可信密钥库),而在服务器搭建私钥库。
验证过程:客户机向服务器发送随机数(挑战),要求服务器用公钥加密。客户机收到响应后,用服务器公钥解密。如果解密结果与随机数相同,则说明服务器是公钥证书的主体(Subject)。然后看证书的签名是否来自“可信证书库”,是则说明服务器是可信的。
双向 SSL
为了实现双向 SSL(互信),需要客户机和服务器上同时建立“可信任证书库”,而且客户机和服务器都有自己的私钥库。
服务器上的 可信证书库 与客户机上的私钥库不同于单向 SSL。它们往往是自建CA来实现。 验证过程:除了客户机服务器发 挑战 外,服务器也会向客户机 挑战。为了确保客户机证书的签署者位于服务器的可信证书库中。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论