今天我找到了一份工作,被要求推广HTTPS。对于HTTP,我是一个“方”的人,但简单来说,对于HTTPS,我有点“圆”。在解释什么是HTTPS 之前,让我们先看一幅漫画。
图取自阮一峰博客
这张漫画其实展示了HTTPS的握手过程,但是我觉得长英文段落不太流畅,所以下面简单解释一下。
HTTPS 在HTTP 的基础上添加了SSL 或TLS 安全协议。这些协议有很多套件,这些套件由加密和散列算法组成,最终涉及到数学。
当我还是一名学生时,数学是我最不喜欢的科目。我还记得数学课上,我把笔记交给了班上一位坐在我后面的漂亮女孩。我撤回了它,因为它看起来有点偏离主题。坐下来开始HTTPS 会话。
什么是HTTPS
HTTPS 是HTTP 的安全使用,是其缩写:基于安全套接字层的超文本传输协议的扩展。从英文定义可以看出,HTTPS 是HTTP + SSL 或HTTP + TLS。
“我对此了解不多,所以别撒谎了。HTTP over SSL是英文缩写,对吧?嗯,HTTPS确实使用了三种加密协议。” SSL的最新版本有SSL 1.0、SSL 2.0和SSL 3.0,但随着加密算法的发展和人们对传输安全性要求的提高。
到目前为止,TLS 已连续发布了四个版本:TLS 1.0、TLS 1.1、TLS 1.2 以及最近发布的TLS 1.3。事实上,一些业内人士将TLS 1.0 称为SSL 3.1。事实上,TLS是基于SSL开发的一种更加安全的加密协议。
为什么使用HTTPS?
问题首先是为什么HTTP 正在逐渐被放弃。
HTTP 已经从1991 年的HTTP/0.9 发展到1999 年的HTTP/1.1。尽管其功能不断增加,性能不断提高,但互联网技术和网络设备的迅速普及,给许多网络用户带来了信息的爆炸式增长。对网络传输的速度和安全性的要求越来越高。
2012年,Google推出了SPDY解决方案,以优化HTTP/1流程中的请求延迟和安全问题。
HTTPS是跨网络的大势所趋,那么为什么放弃HTTP最重要的原因是安全性。由于HTTP 是以纯文本形式发送的,这对于通过玩智能手机来学习Python 编程的新一代来说是一个大问题。如果您是一名从小就接触互联网多年的“黑客”,那么您可能不会遇到任何问题。 HTTPS加密时代已经到来。
为什么HTTPS 安全?
前面提到,HTTPS 是HTTP + SSL 或TLS,而除了HTTPS 严格规范的传输标准之外,SSL 或TLS 主要包括对所传输信息的加密、解密和验证方案有一整套。该方案主要从三个方面保障通信安全:
1.身份认证
在发送之前,首先使用数字证书验证您的身份。这就是主要CA 供应商正在做的事情。名词数字证书与这里相关。数字证书分为公钥和私钥,CA厂商使用自己的私钥向证书申请者颁发一组包含私钥和公钥的客户端证书。这包含客户端的公钥证书。有关站点和证书的基本信息。用于确认访问者正在访问他们想要访问的网站。
这个证书是不可伪造的吗?答案其实是不可伪造的。
原因1:系统已经内置了各大CA厂商的公钥,用于检查证书是否是对应站点的。否则,除非您强制嵌入,否则系统将提示您证书不匹配。在其他人的设备上伪造CA 公钥。
原因2:该证书已被CA制造商散列和加密。除非你破解了CA并获得了CA的私钥,否则基本上不可能伪造新的证书。
2. 数据保密
数据保密性包括会话密钥传输过程中的保密性和数据加密传输过程中的保密性。
会话密钥:采用DHE-RSA-AES256-SHA256,这是TLS 1.2 中使用的套件之一。该套件使用DHE和RSA作为密钥交换算法,两种密钥交换算法都使用非对称加密。这些分别是计算离散对数的困难和分解大数的困难。
这意味着建立HTTPS链接的过程最初会显示一些明文,但根据这些已知的明文推导出“会话密钥”是非常困难的。
会话加密:客户端与服务器协商并成功获取会话密钥后,开始使用该会话密钥运行对称加密会话。可以看到上面的包使用了AES256加密算法。
那么为什么非对称加密用于交换“会话密钥”,而对称加密用于发送正式会话数据呢?非对称加密更安全,但效率较低,我通常只使用它们,因为它们很耗时。让我们交换谈话秘密吧。后续的会话加密采用对称加密,速度更快,效率更高。
3. 数据完整性
如果身份认证成功,将发送加密数据,但所有数据将以明文(HTTP)形式发送和接收。这时候中间人就很难破译加密的数据,但问题也随之而来:数据被篡改了怎么办。
这就是密码套件哈希算法在验证数据完整性时派上用场的地方。哈希算法包括MD5、SHA1 和SHA2。上例中的密码套件使用SHA2 的SHA256 对数据进行哈希处理。所需的计算。这样,当数据发生变化时,通信双方在验证过程中发现问题,并通过发出警报来采取相应的操作。
以上主要是简单说明了使用HTTPS的必要性以及HTTPS安全传输的原理。实现HTTPS不仅是网络技术的核心应用,还涉及到许多底层算法和密码学知识。另外,我无法立即给你一个完整的概述(笑和哭)。
而且,无论是PFS还是国际互联网机构推广的HSTS安全传输协议,其主要目的都是为了避免中间人攻击,让信息在传输过程中更安全、更快捷。
作者昵称:优拍云
来源:吕松松博客,欢迎分享
版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。