从让 HTTPS 更安全出发,聊聊 HTTPS
随着公众对网络安全的日益关注,各种网络安全防护手段层出不穷。HTTPS Everywhere作为提升HTTPS安全性的有效手段,日前安全性与实用性再次得到了加强。
HTTPS虽然可以有效提升用户浏览网页的安全性,可是仍有问题存在会成为黑客窃取数据的漏洞。
针对现在HTTPS存在的部分缺陷,我们可以用浏览器插件进行补足,比如Chrome商店的HTTPS Everywhere ,能有效降低用户上网风险,但由于HTTPS Everywhere的扩展和规则是一体的,导致用户必须频繁更新到最新版的插件,影响用户的使用。
为了解决这个问题,EFF(电子前哨基金会)将会将规则集与扩展剥离,从而实现可持续的更新。扩展安装后,它会经常性地检查列表,并在可用时下载最新的列表。
通过这个方法可以将HTTPS的安全性再次提升,看到这里有的读者就要问了,HTTPS是什么,它为什么可以保护我们的数据安全?
HTTPS 是什么
HTTPS(Hypertext Transfer Protocol Secure )是一种以计算机网络安全通信为目的的传输协议。在HTTP下加入了SSL层,从而具有了保护交换数据隐私和完整性和提供对网站服务器身份认证的功能,简单来说它就是安全版的 HTTP 。
△ HTTP、HTTPS 差异
HTTPS 访问过程
HTTPS在进行数据传输之前会与网站服务器和Web浏览器进行一次握手,在握手时确定双方的加密密码信息。
具体过程如下:
1. Web 浏览器将支持的加密信息发送给网站服务器;
2. 网站服务器会选择出一套加密算法和哈希算法,将验证身份的信息以证书(证书发布CA机构、证书有效期、公钥、证书所有者、签名等)的形式发送给Web浏览器;
3. 当 Web 浏览器收到证书之后首先需要验证证书的合法性,如果证书受到浏览器信任则在浏览器地址栏会有标志显示,否则就会显示不受信的标识。当证书受信之后,Web 浏览器会随机生成一串密码,并使用证书中的公钥加密。之后就是使用约定好的哈希算法握手消息,并生成随机数对消息进行加密,再将之前生成的信息发送给网站;
4. 当网站服务器接收到浏览器发送过来的数据后,会使用网站本身的私钥将信息解密确定密码,然后通过密码解密Web浏览器发送过来的握手信息,并验证哈希是否与Web浏览器一致。然后服务器会使用密码加密新的握手信息,发送给浏览器;
5. 最后浏览器解密并计算经过哈希算法加密的握手消息,如果与服务发送过来的哈希一致,则此握手过程结束后,服务器与浏览器会使用之前浏览器生成的随机密码和对称加密算法进行加密交换数据。
△ HTTPS 握手过程
HTTPS 加密算法
为了保护数据的安全,HTTPS 运用了诸多加密算法:
1、对称加密:有流式、分组两种,加密和解密都是使用的同一个密钥。
例如:DES、AES-GCM、ChaCha20-Poly1305 等。
2、非对称加密:加密使用的密钥和解密使用的密钥是不相同的,分别称为:公钥、私钥,公钥和算法都是公开的,私钥是保密的。非对称加密算法性能较低,但是安全性超强,由于其加密特性,非对称加密算法能加密的数据长度也是有限的。
例如:RSA、DSA、ECDSA、 DH、ECDHE 等。
3、哈希算法:将任意长度的信息转换为较短的固定长度的值,通常其长度要比信息小得多,且算法不可逆。
例如:MD5、SHA-1、SHA-2、SHA-256 等。
4、数字签名:签名就是在信息的后面再加上一段内容(信息经过 hash 后的值),可以证明信息没有被修改过。hash 值一般都会加密后(也就是签名)再和信息一起发送,以保证这个 hash 值不被修改。
HTTPS 网络访问安全性提升(社区版)
除了EFF、Google等组织在让HTTPS更安全之外,又拍云也一直致力于提升HTTPS的安全性。
时至今日,又拍云HTTPS已经支持多种功能,感兴趣的朋友可以了解一下哦!
HTTP/2
TLS 1.3
又拍云 CDN 正式支持 TLS 1.3 加密协议,一键开启极速 HTTPS 体验
HSTS
ChaCha20-Poly1305
TLS Record Size