HTTP vs HTTPS

一、HTTP

HTTP是超文本传输协议,是一个基于请求和响应,无状态的应用层协议,常基于TCP/IP传输数据,
用于从WWW服务器传输超文本到本地浏览器的传输协议。

关于HTTP前面的博客中已经进行了总结
HTTP

二、 HTTPS

什么是HTTPS

HTTP+加密+认证+完整性保护=HTTPS
HTTPS并不是应用层的一个新协议。是HTTP的安全版,HTTP通信接口部分用SSL(Secure Socket Layer)和TLS(Transport Layer Security)协议代替。
通常HTTP直接和TCP进行通信。而HTTPS是先和SSL通信,再由SSL和TCP通信。

在这里插入图片描述
采用了SSL后,HTTP就拥有了HTTPS的加密、证书和完整性保护这些功能。

SSL是独立于HTTP的协议,所以其他运行在应用层的SMTP和Telnet等协议都可以配合SSL协议使用。
加密方式
1、共享密钥加密(对称密钥加密)

加密和解密通用一个秘钥的方式称为共享秘钥加密。也称对称秘钥加密。

共享秘钥加密方式在进行加密的时候需要将秘钥也发送给对方,这样对方才能够进行解密。
但是在传输秘钥的过程中通信可能会被攻击者监听,秘钥就会被攻击者拿到。这样加密也就失去了
意义。
2、公开密钥加密(非对称密钥加密)

公开秘钥加密使用一对非对称的秘钥。一把叫做私有秘钥,一把叫做公开秘钥。这两把密钥是配对的一套密钥。私有秘钥不能让其他任何人知道,而公开秘钥可以被别人知道。

公开秘钥加密方式:
发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后会使用自己的私有密钥
进行解密。这样就解决了密钥被窃听盗走的问题了
HTTPS采用的混合加密机制

HTTPS采用的是共享密钥加密和公开密钥加密混合的加密机制。
公开密钥(非对称密钥)比共享密钥(对称密钥)的处理速度要慢。采用混合加密机制,可以提高速度。

混合加密机制:
1、使用公开密钥加密方式安全地交换在稍后的共享密钥加密中要使用的密钥
2、确保交换密钥是安全的前提下,之后在建立通信报文阶段使用共享加密方式

在这里插入图片描述

证明公开密钥正确性的证书

当正准备和某一台服务器建立公开密钥加密方式的通信时,在公开密钥传输的过程中没有可能真正的公开密钥已经被攻击者替换掉了。
为了解决上面的问题,就可以使用数字证书认证机构CA(CA,Certificate Authority)和其相关机构颁发的公开密钥证书。

数字证书的内容:
包括加密后服务器的公钥、权威机构的信息、服务器的域名,还有经过CA私钥签名之后整数内容
(先通过Hash函数计算得到证书数字摘要,然后利用权威机构私钥加密数字摘要得到数字签名)

在这里插入图片描述

1、服务器将这份有数字证书机构颁发的公钥证书发送给客户端,以进行公开密钥加密方式进行通信。
2、接到证书的客户端使用数字证书认证机构的CA公开密钥(多数浏览器开发商发布版本时,会事先
植入常用认证机关的公开密钥),对数字证书上的数字签名进行解密得到证书信息摘要。
3、然后利用证书签名的方法(hash())计算一下当前证书的信息摘要,与收到的解密后的信息摘要
进行对比。
3、如果一样,验证通过,客户端就可以确认两件事:
(1)认证服务器的公开密钥的是真实有效的数字证书认证机构。
(2)服务器的公开密钥是值得信赖的,内有被篡改过的。

在这里插入图片描述

HTTPS工作原理

在这里插入图片描述

1、使用HTTPS的URL访问web服务器,要求与web服务器建立SSL连接。(客户端发送的报文中包含
客户端支持的SSL的指定版本,加密组件列表(所使用的加密算法及密钥长度))
2、web服务器收到客户端请求之后,可进行SSL通信时,就会将网站的证书信息(包含公开密钥发送
给客户端
3、客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
4、客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将对称密钥加密,
并传送给网站。
5、Web服务器利用自己的私钥解密出对称密钥。
6、Web服务器利用对称密钥加密与客户端之间进行通信。

三、HTTP vs HTTPS

HTTP的特点:
1、使用明文传输,无法保证通信内容不被窃听
2、没有报文完整性验证,无法保证通信内容在传输中不被改变
3、没有身份鉴别,无法让通信双方确认对方身份。
(以上三点可以说是HTTP的缺点了)
4、简单快速,灵活
5、HTTP使用80端口

HTTPS的特点:
1、内容进行加密;采用混合加密技术,中间者无法查看数据内容。
2、验证身份;通过证书认证客户端访问的是自己的服务器。
3、保护数据的完整;防止传输的内容被中间者篡改。
5、HTTPS端口使用443端口

HTTP与HTTPS的区别:
1、HTTP明文传输,数据是未进行加密的。安全性差;HTTPS(HTTP+SSL)数据传输过程是加密的,
安全性较好
2、HTTP页面响应速度比HTTPS快,主要是因为HTTP使用TCP三次握手建立连接,客户端与服务器需
要交换3个包,而HTTPS除了TCP握手的3个包还有ssl握手需要的9个包,一共12个包。
3、HTTP与HTTPS是两种完全不同的连接方式,用的端口也不一样,HTTP使用80端口,HTTPS使用
443端口。
4、HTTPS就是建立在SSL/TLS之上的HTTP协议,所以HTTPS要比HTTP更耗费资源。
5、使用HTTPS协议需要到CA(数字证书认证机构)申请证书,一般需要一定的费用。

总结:
使用中可以采用分而治之,在有关用户敏感信息等方面使用HTTPS,在其他方面使用HTTP协议。

以上是对《图解HTTP》进行总结

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值