SSL-Secure Sockets Layer

原文

本篇文章会从SSL 基础概念谈起,介绍SSL背后原理,相关名词介绍(包括TLS,CA,信任链,OpenSSL)

SSL:安全套接字层
当我们瀏覽网页时,我们都有个好习惯:先检查网址列的开头是不是有个?锁的圖案。

就是这个

代表你现在连到的网站是安全可信任的。更準確地说,这个锁的记号代表你和这个网站是使用安全的HTTPS(HTTP安全)連線,而不是使用不安全的HTTP协议。连线后,只有瀏覽器本人跟网站能够解读传遞的人们之间,就算其他人想从中截(比如说你的使用者帐号密码),也没办法。

HTTPS 背后协议,就是SSL。

SSL加密步骤

SSL 让瀏覽器(所谓的客户端)要连到一个远程网站(所谓的服务器)之前,先要求这个网站提供身分认证,跟这个网站约定暗号(交换钥匙),打好交情(建立加密的会话),才会心甘情愿地跟这个网站连接。可以分成六个步骤:

1.瀏覽器对想要連線的网站送出連線请求,同时要求网站驗證自己。
2.网站将自己的SSL 数位凭证(SSL证书)回传给客户端,里面包含网站的公钥。
3.瀏覽器验证网站回传的根证书,通过信任链机制(请继续看下去)确认这个证明文件是否可以被信认,同时也确认这个凭证是否过期。
4.当认证通过,瀏覽器将使用网站的公钥来建立一個对称的会话密钥。
5.网站使用自己的私钥解读会话密钥,并回传一个确认消息,开始一个被SSL保护的会话。
6.这个会话键会被用来加密所有之后的瀏覽器和网站之间。

下面来介绍一些SSL相关名词。

TLS:传输层安全协议

在上一篇文中有稍微提到TLS的史,简而言之,由于SSL已经不再安全(POODLE与DROWN是两个曾经发生的著名攻击),所以现在已经被TLS协议取代。惯性使然,当我们说SSL(比如SSL凭证)时,大部分情況其实是说TLS。

CA:证书颁发机构

数位凭证认证机构,简称CA,是负责发放和管理数位凭证(证书)的单位。前面提到进行SSL连接前置作业是服务器要提供数位凭证让瀏覽器驗證,但瀏覽器要怎么驗證?会去看这个凭证是不是被一个它相信的CA 的。如果是,那瀏覽器就相信这个服务器可以信任,如果不是,那瀏覽器就再看这个CA有没有它自己的证书,如果有,而这个证书是被一个瀏覽器信任的CA 签的,那就放行,如果没有,就再往下找。如果一路找下去,找不到可以信任的CA,就失败。

假設今天世界上有甲乙丙三家CA。CA 丙签了CA 乙的凭证,而CA 乙签了CA 甲的凭证。瀏覽器小明想连到网站 A,而小明只知道 CA 丙。連線前,网站 A 传了它的证书 们给小明。小明先看第一张,眉头一皱,发现A的凭证不认识的CA 甲签的,往下翻,看到CA 乙签了甲的凭证,但小明也不认识乙,所以继续往下翻,下一张是乙的凭证,是CA 丙签的——宾果游戏!于是网站 A 顺利与小明建立连。

所以 CA其实很像保证人的角色,它向瀏覽器保证一个网域的合法性,让想要連線的那一方保证自己的连线是安全的。

信任链

这样一层检查证书,直到找到信任的CA机制,叫做信任链。你可能会疑惑,为什么不直接让所有服务器都带着 CA 丙签的证书 就好了?为什么还需要经过这么多层?主要原因是安全。如果今天坏人B找到一个破解CA 甲的方法,可以伪造甲的签名,这个漏洞一旦被发现,所有被甲签过的凭证就都没有意义了,那些网域必须要重新找CA来来证明自己的合法性。

使用信任链的好处是,它可以降低根CA(信任链的源头CA,就是CA 丙的例子)被暴露的。不過这也代表,要成为一个根CA,安全防护必须要做到謹慎再謹慎,不然如果根CA的私钥匙被攻破了,後果不堪想象。

OpenSSL

SSL/TLS是协议,而OpenSSL是一个开源的实现(SSH与OpenSSH也是同样的关系)。

SSL凭证种类

如果安全级别(验证级别)分类的话,SSL凭证可以分成三种:域验证(DV)、组织验证(OV)、扩展验证(EV)。只要点开瀏覽器网址列上面的?,就可以看到该网域的SSL信息。以下分别介绍:

域验证的SSL证书(DV)
SSL 安全等级:低
费用:低
CA认证时,请纯确认这个组织是否真的拥有这个网域(通常使用电子邮件确认)。


image.png

从上面的那三张证书名称中就已经可以看到哪个SSL证书使用。拿 PicCollage 当例子,中间的那张 Sectigo RSA Domain Validation Secure Server CA代表 PicCollage使用DV证书。下面的详细信息栏位也可以看到主题,只有单纯显示通用名称这个信息。
组织验证的SSL证书(OV)
SSL 安全层级:中
费用:中
CA 除了确认这个网域,也会联系并稍微调查这个,确认这个是可信的。发放的凭证中会有这个相关信息,像是名字和位置。

image.png

跟DV比起来,OV可以看到的消息就更多,像是地区与组织名称。
扩展验证SSL证书(EV)
SSL 安全等级:高
费用:高
CA 除了组织网域所有权、组织基本数据、實體位置,还会将组织的法律地位。这种证明需要组织提供文件与耐心(?)来等待审核通过。

image.png

EV 比起 OV 又多了一些信息,像是业务类别和序列号。同样可以从上面的证书发行人看到这是EV等级的SSL凭证。

如果是根据网域/子网域数(安全域/子域数量)分类,则SSL凭证也可以分成通配符、多域(MDC)、统一通信(UCC)三种。这边比较直观,就不细讲啦。

你可能感兴趣的:(SSL-Secure Sockets Layer)