HTTPS协议的原理及其与HTTP协议的区别是什么

技术HTTPS协议的原理及其与HTTP协议的区别是什么这篇文章给大家介绍HTTPS协议的原理及其与HTTP协议的区别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。HTTPS协议是什么https

本文介绍了HTTPS协议的原理以及HTTPS协议与HTTP协议的区别。内容非常详细。感兴趣的朋友可以参考一下,希望对你有所帮助。

HTTPS协议是什

https协议比http协议多了一个s,字面意思就是s=secure。它是一个应用层协议,就像http协议一样,它工作在TCP协议之上。

然而,https协议的数据在传输过程中是加密的。本质上,HTTPS协议是在TCP协议上增加了另一层SSL协议来实现加密操作(不准确的说,HTTPS是带SSL皮肤的HTTP协议)

00-1010

2

HTTP协议在端口80工作,HTTPS协议在端口443工作。

HTTPS需要证书(用于验证服务器的身份)

HTTP三次握手的连接建立后即可开始数据的传输;建立TCP连接后,HTTPS协议需要客户端和服务器之间进行SSL加密,确定会话密钥,加密完成后开始数据传输。

HTTPS协议传输是密文,HTTP协议传输是明文。

总的区别是以上四点。事实上,最重要的是通过用SSL协议加密会话来生成会话密钥的过程。

在了解具体的SSL协议之前,我们应该先了解两个加密概念。

00-1010

HTTPS和HTTP的区别

同一密钥可用于同时加密和解密信息。这种加密方法称为对称加密,也称为共享密钥加密。这种方法在网络传输中存在一个问题,即如何安全地将密钥传递给对方。因为http协议是明文传输(https协议是建立ssl加密时的明文传输),所以密钥很容易被截获,从而失去密钥本身的意义。

公开密钥加密

假设用户是服务器,服务器有两把钥匙,一把是私钥(只能自己静静看,可以比作一把钥匙),一把是公钥(谁都可以看,可以比作一把锁)。将服务器的公钥发送给客户端,客户端用公钥对待发送的信息进行加密后发送给服务器(用锁头将数据锁在盒子里)。因为信息是用服务器的公钥加密的,所以只有服务器可以用自己的私钥进行分析(用密钥打开锁头就可以得到信息)。由于私钥始终保存在服务器上,只有私钥才能分析公钥加密的内容,因此通过这种方法可以安全地传输数据。

但是,因为每次都必须使用私钥来分析公钥,所以可以获得数据。如果公钥很长,计算量会很大,会占用CPU性能,从而增加网络延迟。

HTTPS协议同时采用了这两种方式,即首先通过公钥加密生成会话密钥,然后利用会话密钥进行对称加密传输数据。

SSL协议

客户端向服务器发送请求包括

支持SSL协议版本的客户端生成的随机数(第一个随机数)支持的加密方法支持的压缩方法支持

服务器接收客户端请求并向客户端发送响应。

包括响应

确认协议版本服务器产生的随机数(第二个随机数)确定加密方法服务器的证书(服务器的公钥在里面)。

客户端收到请求后,会对证书进行检查(检查证书的颁发机构,证书中的域名是否与实际域名一致,证书是否过期,如果没有过期,浏览器会显示警告),如果检查通过,客户端会发送响应。

包括

客户端生成一个随机数,该随机数由服务器的公钥(第三个随机数)加密。代码更改通知(表明所有后续通信将通过双方同意的加密算法进行通信)表明客户端的握手阶段已经结束。该项目也是之前发送的所有内容的哈希值,用于服务器验证。

服务器收到最终响应后,使用服务器的私钥对客户端发送的第三个随机数进行分析,并使用与客户端约定的加密算法,由这三个随机数生成会话密钥。服务器返回响应。

代码更改通知(表示所有后续通信将通过双方同意的加密算法进行通信)服务器握手结束通知表示服务器握手阶段已经结束。该项也是之前发送的所有内容的哈希值,用于客户端验证。

整个SSL协议的加密过程大致是这样的,加密后的对话过程是明文传输的(因为HTTPS还没有建成)。

整个加密过程的核心是客户端和服务器生成的三个随机数,用于生成加密密钥,供后续数据传输使用。从上面的过程可以看出,这三个随机数都是可以被窃取的,但是由于第三个随机数是用服务器的公钥加密传输的,理论上只能用服务器的私钥来分析第三个随机数。因此,这三个随机数生成的会话私钥是安全的,后续的数据传输会用这个会话私钥进行加密(对称加密),保证了传输的安全性和高效性。

关于HTTPS协议的原理以及HTTPS协议和HTTP协议的区别,我在这里分享一下。希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/86582.html

(0)

相关推荐

  • 一场因OpenJDK引发的血案 之JavaFx

    技术一场因OpenJDK引发的血案 之JavaFx 一场因OpenJDK引发的血案 之JavaFxhttps://zhuanlan.zhihu.com/p/103765203
    案发现场
    最近做了个项

    礼包 2021年11月9日
  • 如何理解DIV中display和visibility属性差别

    技术如何理解DIV中display和visibility属性差别如何理解DIV中display和visibility属性差别,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到

    攻略 2021年11月17日
  • jquery如何修改tr的类

    技术jquery如何修改tr的类这篇文章主要介绍“jquery如何修改tr的类”,在日常操作中,相信很多人在jquery如何修改tr的类问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jqu

    攻略 2021年11月19日
  • 分析Nodejs的Stream模块

    技术分析Nodejs的Stream模块这篇文章主要讲解了“分析Nodejs的Stream模块”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“分析Nodejs的Stream模

    攻略 2021年11月6日
  • 12月1号

    技术12月1号 12月1号一、cookie是在服务端创建cooki是保存在浏览器这一端 每次请求会携带与当前服务相关的键值对数据,cookie明文显示数据,用户可以知道cookie,数据存储在浏览器中容

    礼包 2021年12月2日
  • Python性能分析

    技术Python性能分析 Python性能分析性能分析装饰器
    # line profile
    import time
    from functools import wraps
    from line_profi

    礼包 2021年10月27日