详解HTTPS加密过程

这篇具有很好参考价值的文章主要介绍了详解HTTPS加密过程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

HTTPS是什么

HTTPS的工作过程

引入对称加密

引入非对称加密

引入证书

总结

前言

对于HTTP上篇文章已经做了详细的解释了。众所周知,HTTPS要比HTTP要安全,但是为什么HTTPS要比HTTP安全呢?

这篇文章主要研究HTTPS的加密机制。

HTTPS是什么

HTTPS(Hypertext Transfer Protocol Secure)是一种通过加密和身份验证来保护网络通信安全的协议,使用默认端口是443端口。

主要是引入了一下的机制:

  1. SSL(Secure Sockets Layer)/TLS(Transport Layer Security)协议:SSL和其继任者TLS是实现HTTPS加密的主要协议。这些协议使用了公钥加密和对称密钥加密的组合来确保通信的机密性、完整性和身份验证。

  2. 公钥加密:公钥加密也被称为非对称加密,使用了两个密钥:公钥和私钥。服务器拥有私钥,而公钥则被用于加密从客户端发送到服务器的数据。这样,只有服务器拥有私钥,能够解密数据。公钥通常由数字证书机构(CA)签发,用于验证服务器的身份。

  3. 数字证书:数字证书是一种由数字证书机构(CA)签发的电子文件,用于验证服务器的身份。它包含了服务器的公钥和其他相关信息,被用于建立安全连接并验证服务器的真实性。当客户端连接到服务器时,服务器会将数字证书发送给客户端进行验证。

  4. 对称密钥加密:对称密钥加密使用相同的密钥对数据进行加密和解密。在HTTPS通信中,一旦建立了安全连接,服务器和客户端之间会协商生成一个对称密钥,该密钥用于加密和解密数据的传输。

HTTPS的工作过程

既要保证数据的安全,那么就需要加密。我们知道HTTP在网络上传输的数据是明文传输的。

而明文传输的数据在网络上就相当于“裸奔”。如何要让我们的数据在网络不在“裸奔”呢?

就需要给数据进行加密,变成密文。这也就是HTTPS要做的事。

加密的方式有很多种,整体就是两个类,分别是对称加密和非对称加密。

我们先来认识密钥:

密钥是用于加密和解密数据的关键信息。它是一个特定的值或参数,根据所使用的加密算法,用于转换明文(未加密的数据)为密文(加密的数据),或者将密文还原为明文。

引入对称加密

在对称密钥加密算法中,同一个密钥被用于加密和解密数据。发送方使用密钥将明文加密为密文,并将其发送给接收方。接收方使用相同的密钥将密文解密为明文。对称密钥加密算法的主要优点是处理速度快,但密钥的安全传输和管理是一个挑战。

 也就是说只有一个密钥,把明文加密和把密文解密。

详解HTTPS加密过程

 在上述过程中,即使黑客通过入侵网络中的网络设备,拿到了数据,但是数据是进行了加密的,此时黑客并不知道密钥是啥,黑客也就没有办法获取到传输的数据了。

那么难道此时就绝对安全了吗,其实不然,要知道,服务器器在同一时刻是给很多台客户端提供服务的,这么多的客户端,每个客户端的密钥肯定是不同的,因此服务器此时就需要维护每个客户端和服务器之间的密钥关联关系。

 详解HTTPS加密过程

此时服务器就需要维护这个密钥与客户端之间的关系。

于是发现既然每个客户端的密钥都不相同,那么让客户端自己生成一个密钥,用来加密和解密数据,但是服务器此时也要知道这个密钥用来解密和加密数据。那么如何让服务器也知道这个密钥呢?肯定要通过网络传输的方式来让服务器知道客户端生成的密钥。

详解HTTPS加密过程

此时客户端生成了密钥(key),于是就通过网络传输的方式来告诉服务器自己生成的key。但是黑客这时是非常容易拿到客户端生成的key的。

黑客拿到这key之后,服务器就通过key对数据进行加密,加密完成之后,进行网络传输,在传输的过程中,黑客已经知道了key,就可以轻而易举的进行解密,拿到想要窃取的数据了。 

可以看出,这个方式并不是理想的加密方式,于是就引入了非对称加密。

引入非对称加密

在非对称密钥加密算法中,使用一对密钥:公钥和私钥。公钥是公开的,用于加密数据,而私钥是保密的,用于解密数据。发送方使用接收方的公钥加密明文并发送密文,接收方使用自己的私钥进行解密。非对称密钥加密算法提供了更好的密钥管理和身份验证机制,但处理速度较慢。

  • 通过公钥对明文加密, 变成密文
  • 通过私钥对密文解密, 变成明文

下面我们假设服务器生成了一对非对称密钥

公钥  pub

私钥  pri

详解HTTPS加密过程

上述过程中,客户端向服务器索要公钥来加密的数据就是自己生成的对称密钥key。

此时这个过程,黑客通过中间网络设备是已经知道了公钥的。但是黑客此时并不知道用来解密的私钥, 私钥是一直在服务器上的,并没有进行网络上的传输。用来解密的关键就是私钥。需要注意:公钥和私有是成对出现的,公钥只能用来加密,而私钥则是只能用来解密。

详解HTTPS加密过程

在传输的过程中,因为客户端把自己生成的密钥用pub(公钥)进行了加密,所以即使黑客截取到了数据,也是没有办法进行解密的,因为是用pub进行加密的,解密也就需要pri(私钥)来解密。

 详解HTTPS加密过程

当服务器拿到了用pub进行加密的key之后,就是用pri来解密,然后服务器就知道了客户端生成的key。后续的业务数据的传输就是用key来进行加密。

 详解HTTPS加密过程

上述的整个过程难道就安全了吗?其实不然,所谓道高一尺魔高一丈,于是黑客通过欺骗的手段还是能获取到我们的数据。就是所谓的中间人攻击。

中间人攻击

通过在入侵的网络设备上进行伪造服务器的公钥和私钥来进行攻击的一种手段。

详解HTTPS加密过程

 

 此时当服务器把自己的pub发给客户端的时候,黑客自己也生成了一对公钥和私有,我们记为pub2和pri2,此时黑客就会把自己的pub2给客户端发去,通过用把服务器的pub给悄悄记住了。

详解HTTPS加密过程

 此时客户端使用黑客自己生成的pub2来对key进行加密,当发送出去之后,黑客就能通过自己生成的pri2来轻松的解密,得到了key,然后有把key重新使用服务器的pub来进行加密,然后发送出去,此时服务器并不知道key已经被黑客拿到了。

详解HTTPS加密过程

 服务器拿到用pub加密的key之后,并不知道黑客已经拿到了key,于是就双方就放心大胆的使用对称密钥key进行传输。

但是黑客早就直到了key,所以在传输的过程中,黑客就使用拿到的key来对数据进行解密和加密,而服务器和客户端全然不知,数据已经全部暴露。

破解中间人攻击的关键就是让客户端直到这个服务器的公钥是不是已经被篡改的。

引入证书的机制就完美的破解了中间人攻击。

引入证书

这个证书就好比人的身份证, 作为这个网站的身份标识. 搭建一个 HTTPS 网站要在CA机构先申请一个证书. (类似于去公安局办个身份证)。

这个 证书 可以理解成是一个结构化的字符串, 里面包含了以下信息:

  • 证书发布机构
  • 证书有效期
  • 公钥(服务器的公钥)
  • 证书所有者
  • 签名   (先对证书的所有数据进行一个校验,生成一个校验和,然后再由证书的颁布机构使用自己的私钥进行加密)
  • ……

引入证书之后,客户端就不会向服务器索要服务器的公钥了,而是索要证书。

当前是共有5个密钥,分别是服务器的pub1和pri1 ,颁发证书机构的pub2和pri2,还有客户端自己生成的key。

需要注意的是,由于颁发证书机构并不是很多,所以就在每个操作系统中都内置了颁发证书机构的公钥。

详解HTTPS加密过程

 此时客户端拿到了这个证书之后,首先对证书进行了一个校验。

  1. 客户端使用内置的颁发证书机构的pub2先对签名进行了解密,得到了初始的值我们记为sum1
  2. 然后客户端使用同样的签名计算方法,基于证书中的各个属性,重新计算,得到sum2
  3. 比较两个值是否相同,如果相同,则说明数据没有并篡改。如果两个值不同,则数据已经被篡改,浏览器窗口进行报错。

在整个过程中,黑客是无法对证书中的数据进行篡改的。

如果说黑客把证书中服务器的公钥改成自己的。然后进行发送,当客户端拿到证书之后,进行校验,发现签名中的校验和整个证书的属性校验值不一致。那么客户端就知道证书被篡改了,于是立马浏览器窗口进行报错。

当然黑客也有证书颁发机构的公钥,黑客如果想要通过证书的那个属性重写计算签名,当然也是可以计算的,但是计算完成之后需要对签名进行了加密。此时黑客就做不了,因为证书是由颁发证书机构的私钥进行加密的,黑客可以解开,但是加密不了。

引入证书机制之后,黑客就改不了证书中的数据了。

详解HTTPS加密过程

总结

HTTPS 工作过程中涉及到的密钥有三组

  1. 第一组(非对称加密): 用于校验证书是否被篡改. 服务器持有私钥(私钥在注册证书时获得), 客户端持有公钥(操作系统包含了可信任的 CA 认证机构有哪些, 同时持有对应的公钥). 服务器使用这个私钥对证书的签名进行加密. 客户端通过这个公钥解密获取到证书的签名, 从而校验证书内容是否是篡改过。
  2. 第二组(非对称加密): 用于协商生成对称加密的密钥. 服务器生成这组 私钥-公钥 对, 然后通过证书把公钥传递给客户端. 然后客户端用这个公钥给生成的对称加密的密钥加密, 传输给服务器, 服务器通过私钥解密获取到对称加密密钥。
  3. 第三组(对称加密): 客户端和服务器后续传输的数据都通过这个对称密钥加密解密。
     

总结起来,HTTP是一种不安全的协议,适用于不涉及敏感信息传输的普通网页浏览等场景。而HTTPS通过加密、完整性验证和身份认证,提供了更高级别的安全保护,适用于涉及敏感信息(例如个人信息、支付信息)传输的场景,如网上银行、电子商务等。文章来源地址https://www.toymoban.com/news/detail-467495.html

到了这里,关于详解HTTPS加密过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【c语言】详解c语言#预处理期过程 | 宏定义前言

    c语言系列专栏: c语言之路重点知识整合   创作不易,本篇文章如果帮助到了你,还请点赞支持一下♡𖥦)!!  主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步! 给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ 代码编译到执

    2024年02月01日
    浏览(46)
  • 图解HTTPS协议加密解密全过程

    我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。 HTTPS简介 HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进

    2024年02月05日
    浏览(56)
  • HTTPS行为大赏(三分钟了解加密过程)

    既然要对HTTPS进行解读,我们首先了解, HTTPS 是什么? HTTPS 就相当于 HTTP+SSL/TLS 这样的组合, HTTP (超文本传输协议), HTTP 是 tcp/ip 组中的协议之一运用在应用层,也是互联网上应用最为广泛的协议之一,所有的WWW(万维网)文件都必须遵循这个标准。而设计 HTTP 协议的最

    2024年02月06日
    浏览(47)
  • http和https的区别,以及https涉及到的加密过程

    一.http与https的介绍 http:超文本传输协议,是互联网应用最广泛的一种网络协议。设计的最初目的是为了提供一种发布和接收HTML页面的方法。是以明文的形式来传输的,所以就会存在一定的安全隐患(因为攻击者可以截取web服务器和网站相关的报文,就可以直接读懂其中的信

    2024年02月05日
    浏览(44)
  • 什么是https 加密协议?

    HTTPS(Hyper Text Transfer Protocol Secure)是一种网络传输协议,它是基于HTTP协议的扩展,通过加密通信内容来保障数据传输的安全性和完整性。 HTTPS的主要目标是通过加密通信内容,确保数据在传输过程中不会被窃取、篡改或伪造。它采用加密技术,使得即便数据被截获,也无法

    2024年02月04日
    浏览(48)
  • 什么是https 加密协议?https证书安装部署

    HTTPS协议是安全超文本传输协议,是一个安全通信通道,它基于HTTP开发用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版,是使用TLS/SSL加密的HTTP协议。 HTTP协议采用明文传输信息,存在信息窃听、信息篡改和信息劫持

    2024年02月04日
    浏览(47)
  • https到底把什么加密了?

    首先直接说结论, https安全通信模式,是使用TLS加密传输所有的http协议。再重复一遍,是所有! 通常将TLS加密传输http这个通信过程称为https,如果使用协议封装的逻辑结构来表达就是: IP + TCP + TLS +【 HTTP 】 其中用【】括起来的http是完全被加密保护起来的。 既然http被完全

    2024年02月04日
    浏览(29)
  • HTTPS加密原理,搞懂什么是对称加密、非对称加密、证书、数字签名

    众所周知,http协议是一种未加密的协议,我们未加密的数据,在传输的过程中会经过一个又一个的物理节点,如果被人通过抓包的方式拿到了我们的数据,将会给我们造成无法估量的损失。 为了解决解决这个问题,https应运而生。https通过加密的手段,保障的数据的安全性。

    2024年02月01日
    浏览(49)
  • HTTPS加密协议详解:HTTPS性能与优化

    前文讨论了HTTPS原理与优势:身份验证、信息加密与完整性校验等,且未对TCP和HTTP协议做任何修改。但通过增加新协议以实现更安全的通信必然需要付出代价,HTTPS协议的性能损耗主要体现如下: (1).增加延时 分析前面的握手过程,一次完整的握手至少需要两端依次来回两次

    2024年02月09日
    浏览(42)
  • HTTP协议 和 HTTPS协议的区别(4点) && HTTPS如何使用SSL/TLS协议加密过程 && CA证书干啥的

      1. HTTP协议的端口号是80, HTTPS协议的端口号是443 2. HTTP协议使用的URL是以 http:// 开头,HTTPS协议使用的URL是以https://开头 3. HTTP协议和HTTPS协议最主要的区别是: HTTP协议所生成的HTTP请求报文被TCP协议 以明文形式透明传输,同时 客户端与服务器之间无法核验对方的身份(不晓

    2024年02月14日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包