HTTPS详解-加密算法(一)

近两年,Google、Baidu、Facebook 等这样的互联网巨头,不谋而合地开始大力推行 HTTPS, 国内外的大型互联网公司不少也都已经启用了全站 HTTPS,这也是将来互联网发展的趋势。前端

为鼓励全球网站的 HTTPS 实现,一些互联网公司都提出了本身的要求:算法

1)Google 已调整搜索引擎算法,让采用 HTTPS 的网站在搜索中排名更靠前;小程序

2)从 2017 年开始,Chrome 浏览器已把采用 HTTP 协议的网站标记为不安全网站;后端

3)苹果要求 2017 年 App Store 中的全部应用都必须使用 HTTPS 加密链接;微信小程序

4)当前国内炒的很火热的微信小程序也要求必须使用 HTTPS 协议;浏览器

5)新一代的 HTTP/2 协议的支持需以 HTTPS 为基础。安全

https概述

超文本传输安全协议(英语:Hypertext Transfer Protocol Secure缩写HTTPS,常称为HTTP over TLSHTTP over SSLHTTP Secure)是一种经过计算机网络进行安全通讯的传输协议。HTTPS经由HTTP进行通讯,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。这个协议由网景公司(Netscape)在1994年首次提出,随后扩展到互联网上。HTTPS是并不是应用层的新协议。只是HTTP通讯接口用SSL或TLS协议代替而已。服务器

HTTP直接和TCP通讯。当使用ssl时,则演变为跟ssl通讯,而后再由ssl与tcp进行通讯。简单的讲就是http的plus版。微信

在采用ssl后,http就拥有了加密、证书、完整性保护这些功能。网络

在讲解ssl时,先讲解下几个关键的知识点。

加密方法

对称密钥加密

又称私钥加密、共享密钥加密。须要对加密和解密使用相同密钥加密算法。因为其速度快,对称性加密一般在消息发送方须要加密大量数据时使用。对称性加密也称为密钥加密

优势:性能高

缺点:密钥泄露风险高,由于你们共享一个密钥,假如一方泄露这个密码,就没有安全可言。好比:在先后端调用的过程当中使用此种算法,若是前端js中存放密钥,那么就会被窃取,app端也有可能反编译获取。

经常使用的算法:DES、3DES、AES、Blowfish、IDEA、RC五、RC6

公开密钥加密

(英语:public-key cryptography,又译为公开密钥加密),也称为非对称加密(asymmetric cryptography),在这种密码学方法中,须要一对密钥,一个是私人密钥,另外一个则是公开密钥。

优势:知道了公钥,也没法计算出来密钥。例如:在开发项目时,通常私钥是保存在服务端,公钥保存在前端,只要服务端安全,那么私钥就不会被窃取。

缺点:计算量大,须要消耗大量的系统资源,性能低。

经常使用的算法:RSAElgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。

数字签名

数字签名主要是有两个做用

  • 身份证实

  • 验证信息的内容是否被篡改。

而数字签名由于采用公钥加密技术实现,又叫公钥数字签名。

示例:taker给maker给了本身的公钥,说之后经过此公钥能够验证本身的身份和信息是否篡改。

有一天,taker在外遇到了点困难须要钱,想要朝maker借点钱,可是又怕没法证实本身,因此采用数字签名。

首先他把消息内容,经过hash算法计算出一个摘要,而后在采用本身私钥对摘要进行加密

而后在把这个加密信息添加到邮件附件中,一同发给maker。

maker收到邮件后,用公钥对加密信息进行解密获得了摘要。

而后在用邮件内容进行hash,生成摘要与公钥解密出来的摘要进行比对,就能够确保此邮件是taker所发,而且内容未被篡改,而后在给taker打钱。

参见: HTTPS 原理详解

相关文章
相关标签/搜索