Http 与 Https区别

Posted ming-blogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Http 与 Https区别相关的知识,希望对你有一定的参考价值。

传统Http协议弊端

传统Http协议弊端是明文的,如果别人采用抓包分析可以获取到明文数据。

什么是Https协议

HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer),简单来讲就是加了安全的HTTP,即HTTP+SSL;我们知道HTTP通讯时,如果客户端C请求服务器S,那么可以通过网络抓包的形式来获取信息,甚至可以模拟服务器S端,来骗取与C端的通讯信息;这对互联网应用在安全领域的推广非常不利;HTTPS解决了这个问题。

Http请求是客户端与服务器端超文本传输协议

Http协议中分为 请求头、请求体、响应头、响应体

// 自定义重定向
@RequestMapping("/redirect")
public void customRedirection(HttpServletResponse response)
// 告诉给客户端重定向
response.setStatus(302);
response.setHeader("location", "login");
return;


// 重定向到登陆页面
@RequestMapping("/redirectlogin")
public String redirectLogin()
return "redirect:/login";


重定向底层实现原理:客户端向服务器端发送请求,服务器端如果重定向的话,返回状态码302给客户端,在响应头中会存放location 对应的值就是重定向的地址。客户端收到状态为302的状态码的话,直接浏览器本地进行访问。浏览器地址会发生变化。

 

什么是SSL协议

安全套接字(Secure Socket Layer,SSL)协议是Web浏览器与Web服务器之间安全交换信息的协议,提供两个基本的安全服务:鉴别与保密。

SSL是Netscape于1994年开发的,后来成为了世界上最著名的web安全机制,所有主要的浏览器都支持SSL协议

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

SSL协议的三个特性

① 保密:在握手协议中定义了会话密钥后,所有的消息都被加密。

② 鉴别:可选的客户端认证,和强制的服务器端认证。

③ 完整性:传送的消息包括消息完整性检查(使用MAC)。

 

https要知道的几个加密算法

1.握手的时候使用的非对称加密算法 ,用来加密握手之后的请求和应答

2.传输信息的时候使用的对称加密

3.保证数据的完整性用的是hash算法(数字签名)

 

Https加密过程

技术图片

技术图片

证书的作用:返回一些加密信息、颁发者信息、加密算法、证书有效期等

1、非对称加密的目的:确保对称加密的密钥的安全。

2、确保验证成功之后,才会使用对称加密传输
 
流程描述:

1)客户端请求服务器,发送握手消息

2)服务器返回客户端自己的加密算法、数字证书和公钥;

3)客户端验证服务器端发送来的数字证书是否与本地受信任的证书相关信息一致;如果不一致则客户端浏览器提示证书不安全如下图所示

 技术图片

如果验证通过,则浏览器会采用自身的随机数算法产生一个随机数,并用服务器发送来的公钥加密;发送给服务器;这里如果有人通过攻击获取了这个消息,那也没用,因为他没有解密此段消息所需要私钥;验证通过的网站在浏览器地址栏的右边会有一安全锁的标识;

3)服务器解密得到此随机数,并用此随机数作为密钥采用对称加密算法加密一段握手消息发送给浏览器;

4)浏览器收到消息后解密成功,则握手结束,后续的信息都通过此随机密钥加密传输。

以上是服务端认证的情况,如果服务端对访问的客户端也有认证需求,则客户端也需要将自己的证书发送给服务器,服务器认证不通过,通讯结束;原理同上;

另外,一般在传输过程中为了防止消息窜改,还会采用消息摘要后再加密的方式,以此保证消息传递的正确性

 

1.客户端发送自己支持的加密规则给服务器,代表告诉服务器要进行连接了

2.服务器从中选出一套加密算法和hash算法以及自己的身份信息(地址等)以证书的形式发送给浏览器,证书中包含服务器信息,加密公钥,证书的办法机构

3.客户端收到网站的证书之后要做下面的事情:

4.验证证书的合法性

5.如果验证通过证书,浏览器会生成一串随机数,并用证书中的公钥进行加密

6.用约定好的hash算法计算握手消息,然后用生成的密钥进行加密,然后一起发送给服务器

服务器接收到客户端传送来的信息,要求下面的事情:

用私钥解析出密码,,用密码解析握手消息,验证hash值是否和浏览器发来的一致

使用密钥加密消息,回送如果计算法hash值一致,握手成功

 

证书中包含什么信息

证书信息:过期时间和序列号

所有者信息:姓名等

所有者公钥

为什么要有https

 1、安全  进行参数加密

 

Https与Http区别

 

1、HTTPS的服务器需要到CA申请证书,以证明自己服务器的用途;

 

2、HTTP信息是明文传输,HTTPS信息是加密传输;

 

3、HTTP默认端口是80,HTTPS默认端口号是443;

4、https采用混合加密算法(对称加密和非对称加密)

5、https 比 http 协议更加安全,但是https协议传输效率没有http效率搞。

 

HTTP与HTTPS是完全不同的连接方式,HTTPS集合了加密传输,身份认证,更加的安全。

 

HTTPS底层协议其实就是使用SSL协议,也是使用对称加密进行传输(只不过不需要自己生成密钥,浏览器自动生成的。是使用混合算法进行加密的,就是对称加密与非对称加密混合使用的。)

 

加密数据之后也能防止篡改数据,如果数据被篡改了数据,解密就会失败,所以可比避免数据被篡改。

 

在微信小程序里面都限制只能有https协议、搜索引擎排名都对https优先收录。

 

数据防篡改:1、验签     2、令牌

市面上一些大型的公司的都是采用https 协议进行传输的。

常用抓包工具

Flidder

fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获、重发、编辑、转存等操作。也可以用来检测网络安全。反正好处多多,举之不尽呀!当年学习的时候也蛮费劲,一些蛮实用隐藏的小功能用了之后就忘记了,每次去网站上找也很麻烦,所以搜集各大网络的资料,总结了一些常用的功能。

wireshark

Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

网络封包分析软件的功能可想像成 "电工技师使用电表来量测电流、电压、电阻" 的工作 - 只是将场景移植到网络上,并将电线替换成网络线。在过去,网络封包分析软件是非常昂贵的,或是专门属于盈利用的软件。Ethereal的出现改变了这一切。在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。Ethereal是目前全世界最广泛的网络封包分析软件之一。

抓包工具原理

是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器 。

抓包工具的原理:抓包工具既能实现在请求之前和请求之后进行拦截。默认拦截在同一网段的请求地址。

使用fiddler拦截参数

Fiddler简介

fiddler是一款功能强大的抓包工具,在测试web安全性,查看请求数据或者头文件的时候能起到很大的作用,今天给大家介绍利用Fiddler来修改请求或者返回的数据,以此来验证网站完全漏洞;

技术图片

 

以上是关于Http 与 Https区别的主要内容,如果未能解决你的问题,请参考以下文章

HTTP与HTTPS的区别

http与https的区别

HTTP与HTTPS的区别,详细介绍(转)

HTTP和HTTPS的区别和常见的面试题

1.HTTP与HTTPS区别

学习笔记HTTP与HTTPS的区别