本期答疑解惑将和大家一起认识SSL/TLS 协议。请尝试回答以下几个问题:
非对称加密算法是数学家们创造出来的,它是SSL协议的基础。该算法的目的是生成一对密钥:公钥和私钥,密钥通常是一段二进制数据。公钥是公开的,任何人都可以获得;而私钥只由服务器保管。
公钥和私钥永远是一对一的关系,公钥加密后的数据只能由私钥解密。
SSL协议是一种介于应用层和传输层之间的安全协议。SSL建立安全链接之后,应用层将不再把数据直接交给传输层,而是通过SSL加密通道发送,避免中间人攻击。
应用层:HTTP,HTTPs,FTP等 |
SSL,TLS,mTLS |
传输层:TCP, UDP等 |
在详细了解SSL协议机制之前,我们先来认识下什么是SSL证书。
SSL证书就是服务器的电子身份证。任何人都可以制作SSL证书,但只有全球公认的证书颁发机构(CA)颁发的证书才能被浏览器和操作系统所信任。这是因为浏览器和操作系统预装了受信任的CA根证书,并且能够在线查询受信任的证书库,验证服务器的真实性。
证书通常包含了服务器所有者的信息,比如持有者的名称,有效期,公钥,加密算法等信息。
早期SSL的核心思想是通过非对称加密交换证书和主密钥,然后使用主密钥和对称加密算法传输内容。
原因很简单:对称加密解密计算速度更快,而使用非对称加密可以避免生成的主密钥被攻击者截获。
握手协议:
人们逐渐发现早期SSL协议存在许多安全漏洞,如 Heartbleed 漏洞、POODLE 漏洞等,最终于2014年由谷歌微软等公司倡导下陆续宣布弃用。
不过早在1999年,IETF将SSL 3.0进行了修改和扩展,并标准化为了TLS协议。经过不断完善,TLS已经发展成了互联网上最常用的加密协议。我们也可以将TLS看作是SSL的升级版本。
握手协议:
TLS作为SSL的升级版本,修补了大量漏洞,并且优化了握手通信过程。
前面说过,在TLS握手阶段:服务器将发送TLS证书给客户端,并可能要求客户端也提供证书。
要求客户端也必须提供证书的TLS被称为双向TLS认证,也就是mTLS。
客户端证书通常由企业内部CA颁发,以确保证书的可信度。在使用mTLS时,服务器需要信任客户端证书的CA,并使用CA的公钥来验证证书的数字签名。如果证书的验证成功,则服务器可以确认客户端的身份,并继续进行通信。如果证书验证失败,则服务器可以拒绝该客户端的连接请求。
前面介绍的都是理论性的内容,接下来我们认识下常见的证书类型。
认证最严格,最贵的证书类型,需要验证申请者身份,营业执照等,如:https://www.paypal.com
OV SSL证书保证级别接近EV,其主要目的是在交易过程中加密用户的敏感信息。商业或面向公众的网站应该安装 OV SSL 证书,以确保共享的任何客户信息保持机密。
例如我们正在使用的CSDN, 支付宝等:
最容易获取的证书,它通常用于不需要收集个人信息的网站,如公司展示官网,博客等。
博客园使用的其实是DV证书:
故名思意,自己搭建的网站,自己造的证书,访问这类网站时会收到浏览器的风险提醒。
我在网上随便找了一个:杨青青个人博客_女程序员的个人网站
打开浏览器设置-安全隐私-证书管理,或者Windows的证书管理器,你可以看到本地安装的,受信任的证书,使用受信任的证书签发的证书,也将被信任。
这可以帮助你在公司内部环境中使用 SSL/TLS 加密来保护网络通信,搭建基于https的网站。
好了,这期答疑解惑就到这里,大家还有什么问题吗?