HTTPS、SSL/TLS协议及CA证书介绍

文章目录

HTTPS协议作为一种网络数据通讯加密方式已经被各大网站广泛支持,对于个人网站来说,虽然不需要过分担心数据传输的安全性,但是,网站部署SSL证书已是一种趋势。

SSL/TLS协议介绍

1、SSL协议介绍

SSL 即安全套接层(Secure Sockets Layer,SSL),是一种安全协议,是网景公司在推出 Web 浏览器首版的同时提出,目的是为网络通信提供安全及数据完整性。SSL 在传输层对网络连接进行加密。

SSL 采用公开密钥技术,保证两个应用间通信的保密性和可靠性,使客户与服务器应用之间的通信不被攻击者窃听。它在服务器和客户机两端可同时被支持,目前已成为互联网上保密通讯的工业标准。现行 Web 浏览器亦普遍将 HTTP 和 SSL 相结合,从而实现安全通信。此协议的继任者是 TLS。

SSL目前有三个版本:2、3、3.1,最常用的是第3版,是1995年发布的。

2、TLS协议介绍

IETF(www.ietf.org)于1999年将 SSL 作了标准化,即 RFC2246 ,并将其称为 TLS(Transport Layer Security)。

常用的 TLS 协议版本有如下几个:TLS1.2, TLS1.1, TLS1.0 和 SSL3.0。其中 SSL3.0 由于 POODLE 攻击已经被证明不安全,但统计发现依然有不到 1% 的浏览器使用 SSL3.0。TLS1.0 也存在部分安全漏洞,比如 RC4 和 BEAST 攻击。

TLS1.2 和 TLS1.1 暂时没有已知的安全漏洞,比较安全,同时有大量扩展提升速度和性能,推荐大家使用。

3、HTTPS协议介绍

HTTPS 可以认为是 HTTP + TLS。HTTP 协议相信大家耳熟能详,目前大部分 WEB 应用和网站都是使用 HTTP 协议传输的。而HTTP 本身是明文传输的,没有经过任何安全处理。

以使用百度搜索为例。用户在百度搜索了一个关键字,比如“苹果手机”,中间者完全能够查看到这个信息,并且有可能打电话过来骚扰用户。也有一些用户投诉使用百度时,发现首页或者结果页面浮了一个很长很大的广告,这也肯定是中间者往页面插的广告内容。如果劫持技术比较低劣的话,用户甚至无法访问百度。这里提到的中间者主要指一些网络节点,是用户数据在浏览器和百度服务器中间传输必须要经过的节点。比如 WIFI 热点,路由器,防火墙,反向代理,缓存服务器等。

在 HTTP 协议下,中间者可以随意嗅探用户搜索内容,窃取隐私甚至篡改网页。不过 HTTPS 是这些劫持行为的克星,能够完全有效地防御。

总体来说,HTTPS 协议提供了三个强大的功能来对抗上述的劫持行为:
1)内容加密。浏览器到百度服务器的内容都是以加密形式传输,中间者无法直接查看原始内容。
2)身份认证。保证用户访问的是百度服务,即使被 DNS 劫持到了第三方站点,也会提醒用户没有访问百度服务,有可能被劫持
3)数据完整性。防止内容被第三方冒充或者篡改。

SSL/TLS协议原理

1、对称加密及非对称加密

加密算法一般分为两种,对称加密和非对称加密。

1)对称加密
对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key)。对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。对称加密通常使用的是相对较小的密钥,一般小于256 bit。因为密钥越大,加密越强,但加密与解密的过程越慢。

对称加密的一大缺点是密钥的管理与分配,换句话说,如何把密钥发送到需要解密你的消息的人的手里是一个问题。在发送密钥的过程中,密钥有很大的风险会被黑客们拦截。现实中通常的做法是将对称加密的密钥进行非对称加密,然后传送给需要它的人。

对称加密又分为两种模式:流式加密和分组加密。流式加密算法推荐 ChaCha20,而分组加密算法则推荐使用AES-GCM。

2)非对称加密
非对称加密为数据的加密与解密提供了一个非常安全的方法,它使用了一对密钥,公钥(public key)和私钥(private key)。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。

非对称加密存在CPU资源消耗大、加密内容有限制等问题,因此只能用来作对称密钥交换或者内容签名,不适合用来做应用层传输内容的加解密。

SSL/TLS协议中,常见的用于对称密钥交换的非对称加密算法有 RSA,ECDHE,DH,DHE 等算法,一般建议优先支持 RSA 和 ECDH_RSA 密钥交换算法。

2、SSL协议工作过程

SSL协议可以分为三部分:握手协议(Handshake protocol)、记录协议(Record protocol)、警报协议(Alert protocol)。

1)握手协议
握手协议是客户机和服务器用SSL连接通信时使用的第一个子协议,握手协议包括客户机与服务器之间的一系列消息。SSL中最复杂的协议就是握手协议。该协议允许服务器和客户机相互验证,协商非对称密钥交换算法和MAC算法以及对称加密密钥,用来保护在SSL记录中发送的数据。握手协议是在应用程序的数据传输之前使用的。

2)记录协议
在记录协议中,使用握手协议规定的对称加密密钥对传输内容进行加密,并利用MD5或SHA算法实现数据完整性验证。

3)警报协议
客户机和服务器发现错误时,向对方发送一个警报消息。如果是致命错误,则算法立即关闭SSL连接,双方还会先删除相关的会话号,秘密和密钥。

CA数字证书

1、CA证书介绍

CA是“Certificate Authority”的缩写,也叫“证书授权中心”,它是负责管理和签发证书的第三方机构。利用CA签发的数字证书,我们可以对网站进行身份验证,以防止该网站是假冒钓鱼网站,避免个人数据被窃取。

CA数字证书有两个作用:
1)身份授权
确保浏览器访问的网站是经过 CA 验证的可信任的网站。

2)分发公钥
每个数字证书都包含了注册者生成的公钥。在SSL握手时会通过certificate消息传输给客户端。比如前文提到的RSA及ECDHE算法的签名都是使用的这个公钥。

2、CA证书等级

CA证书等级分 Class 1 (一级,只验证Email)、Class 2(二级,验证Email和验证个人身份证明文件)、Class 3(三级,验证Email、验证单位身份验证文件、第三方数据库核实)、Class 4(四级,全球统一标准的扩展验证标准,验证Email、验证单位身份证明文件、验证申请人身份证明文件、第三方数据库核实)。

1)DV
DV是 Domain Validation 的缩写,意思就是对网站域名所有权进行验证。CA 认证机构会向域名持有者的邮箱发送相应的邮件,以确认证书和域名的所有权关系。其特点是简单快捷,价格便宜,缺点是无法保证网站经营者的身份,因此一般仅用来提供数据加密的功能,属于 Class 1 验证的证书。

2)OV
OV是 Organization Validation 的缩写,这种证书在颁发的时候会对网站所有单位的身份和域名的所有权进行证实行验证,所以一般电子商务类的网站往往会做 OV 的认证。价格当然也会比较昂贵,证书颁发周期也会比较久,属于 Class 2 或者 Class 3 验证的证书。

3)EV
EV是 Extended Validation 的缩写,也是最严格的身份验证,此证书审核证书申请人对域名的所有权,以及详细的企业/组织相关信息审核,当用户在访问通过 EV 认证的网站时候,浏览器的显示为绿色,当然价格也是相当的昂贵,属于 Class 4 验证的证书。

小结

HTTPS是未来互联网的趋势,HTTPS目前存在以下问题:

1)签发证书费用及更新维护
事实上,现在签发证书费用很低,便宜的只有一年几十块钱。而且现在也有了免费的证书机构,比如著名的 mozilla 发起的免费证书项目:let’s encrypt(https://letsencrypt.org/)就支持免费证书安装和自动更新。这个项目已于15年12月3日正式公测。

2)HTTPS 降低用户访问速度
HTTPS 对速度会有一定程度的降低,但是只要经过合理优化和部署,HTTPS 对速度的影响完全可以接受。

3)HTTPS 消耗 CPU 资源
主要是非对称密钥交换消耗CPU资源,但是通过合理的优化和部署,也是可以降低影响。

参考文章:
大型网站的 HTTPS 实践(1):HTTPS 协议和原理
对称加密与非对称加密
SSL/TLS 功能介绍和等级说明
SSL协议详解



本文出自 TENNFY WU,转载时请注明出处及相应链接。

本文永久链接: http://www.tennfy.com/3884.html

下一篇文章:

上一篇文章:

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

1 + 5 = ?


您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

返回顶部