HTTPS的工作过程

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

        HTTPS就是对HTTP进行了加密,因为要保证数据安全,就需要进行加密,网络中不再直接传输明文了,而是加密之后的密文,加密的方法有很多,但是整体可以分为两大类:对称加密和非对称加密

对称加密

        对称加密其实就是通过同一个 "密钥" , 把明文加密成密文, 并且也能把密文解密成明文,引入对称加密之后, 即使数据被截获, 由于黑客不知道密钥是啥, 因此就无法进行解密, 也就不知道请求的 真实内容是啥了

HTTPS的工作过程,网络,https,网络协议,http

        但事情没这么简单. 服务器同一时刻其实是给很多客户端提供服务的. 这么多客户端, 每个人用的秘钥都必须是不同的(如果是相同那密钥就太容易扩散了, 黑客就也能拿到了). 因此服务器就需要维护每个客户端 和每个密钥之间的关联关系, 这是一件很麻烦的事情

        比较理想的做法, 就是能在客户端和服务器建立连接的时候, 由客户端发送对HTTP数据进行加密的对称密钥给服务器

        但是如果直接把对称密钥明文传输, 那么黑客也就能获得对称密钥了,所以对称密钥在发送给服务器时也必须是加密传输

非对称加密

        非对称加密要用到两个密钥, 一个叫做 "公钥", 一个叫做 "私钥".

        公钥和私钥是配对的. 最大的缺点就是运算速度非常慢,比对称加密要慢很多.

        通过公钥对明文加密, 变成密文 通过私钥对密文解密, 变成明文,也可以反着用 通过私钥对明文加密, 变成密文 通过公钥对密文解密, 变成明文

使用非对称加密来传输对称密钥的流程

        1.首先由服务器生成一组公钥-私钥,服务器自己留下私钥,把公钥发送给客户端

        2.客户端收到公钥以后,用收到的公钥加密对称密钥,并把加密后的对称密钥发送给服务器

        3.服务器收到加密后的对称密钥后,用保留着的私钥进行解密,获得对称密钥的内容

        4.服务器用收到的对称密钥加密HTTP应答数据,并发送给客户端

        5.客户端收到应答数据后,用对称密钥进行解密,获得HTTP应答数据,此时客户端就知道服务器已经获得了对称密钥,客户端就用对称密钥加密业务数据发送给服务器

        6.此后,客户端和服务器用对称密钥加密数据进行通信即可,因为对称密钥只有客户端和服务器双方有,黑客就算截获到了密文,没有对称密钥也不知道内容

        由于对称加密的效率比非对称加密高很多, 因此只是在开始阶段协商对称密钥的时候使用非对称加密, 后续双方都有对称密钥了就不需要非对称加密了

采用非对称加密就能保证数据安全传输了吗❓

        答案是远远不够滴,因为黑客又想到了“中间人攻击”的方式来获得对称密钥

        HTTPS的工作过程,网络,https,网络协议,http

        现在就让我来详细描述一下黑客是如何进行中间人攻击的

        1.首先由服务器生成一组公钥pub1-私钥pri1,服务器自己留下私钥pri1,把公钥pub1发送给客户端

        2.黑客先客户端一步截获到了服务器发送给客户端的公钥pub1,黑客自己又生成了一组公钥pub2-私钥pri2,黑客将自己生成的公钥pub2发送给客户端

        3.客户端用黑客发送过来的公钥pub2加密对称密钥,并把加密后的对称密钥发送给服务器

        4.黑客先服务器一步获取到加密后的对称密钥,由于对称密钥是用黑客发送的公钥pub2加密的,所以黑客可以用私钥pri2进行解密,获取到对称密钥的内容,然后黑客再用服务器发送的公钥pub1加密对称密钥,再把加密后的对称密钥发送给服务器

        5.服务器收到对称密钥后,由于黑客是用服务器发送过来的公钥pub1加密的,所以服务器用私钥pri1可以成功解密,获得对称密钥

        6.此时,客户端和服务器都不知道对称密钥其实已经被获取了,之后用这个对称密钥发送的业务数据都将被黑客截获,被读取到其中的内容

        看完之后是否感叹黑客的手段,但聪明的程序猿还是有办法解决

引入证书

        在客户端和服务器刚一建立连接的时候, 服务器给客户端返回一个 证书. 这个证书包含了刚才的公钥, 也包含了网站的身份信息.

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

        这个证书可以理解成是一个结构化的字符串, 里面包含了以下信息: 证书发布机构 证书有效期 公钥 证书所有者 签名 ......

        当客户端获取到这个证书之后, 会对证书进行校验(防止证书是伪造的)

        通过证书客户端便能知道当前的公钥是服务器发送的还是黑客发送的,便防止了黑客进行中间人攻击

黑客有没有可能去修改证书中的公钥呢❓

        我们上面提到,证书中包含了服务器要发送给客户端的公钥,那么黑客有没有可能去修改证书中的公钥呢,这是有可能的,但是客户端能够发现证书中的公钥被修改

        客户端是如何发现证书被修改过的呢❓

        证书中有一个属性是数字签名,实际上就是一个加密后的校验和,校验和是通过证书中的内容和算法计算出来的

        当黑客修改证书中的公钥发送给客户端,客户端在收到证书后会对证书中的数字签名进行解密,获得校验和,客户端还会再根据证书中的内容计算一次校验和,比较当前计算的校验和与数字签名中的校验和是否相同,要是黑客修改过公钥的话校验和就肯定不相同,客户端就能够发现了

黑客有没有可能公钥和数字签名一起修改呢❓

        聪明的小伙伴可能想到了这个问题,我们前面提到,客户端之所以能够发现证书中的公钥被修改过,是因为数字签名解密后得到的校验和与实际计算出来的校验和不同,那黑客把公钥和数字签名都改了,让客户端计算出来的校验和与数字签名解密得到的校验和一样,该怎么办呢

        实际上黑客是可以公钥和数字签名一起修改的,但还是会被客户端发现

        因为数字签名实际上是通过CA机构私钥加密后的校验和,CA机构公钥是内置于操作系统中的,所以只要有操作系统的电脑都有CA机构公钥,能够去解密数字签名,包括黑客

        所以黑客能够解密数字签名,将证书中的公钥以及数字签名全部修改,但修改以后黑客不能将数字签名再加密回去,因为CA机构的私钥黑客是没有的,要是黑客用自己的私钥对数字签名进行加密的话,客户端用内置的CA机构的公钥就不能解密,客户端就知道了这个证书有问题,也就不会用这个证书中的公钥加密数据了

总结HTTPS的工作过程

        HTTPS的工作过程,网络,https,网络协议,http

        

        HTTPS的工作过程,网络,https,网络协议,http                我们对于HTTPS工作过程的讨论到这里就结束了,但其实黑客还是会有办法去获取到对称密钥,毕竟道高一尺魔高一丈嘛,但聪明的程序猿还是会有办法的,这里就不过多讨论了文章来源地址https://www.toymoban.com/news/detail-724048.html

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

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

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

相关文章

  • 计算机网络 - http协议 与 https协议(2)

    本篇介绍了构造http请求的的五种方式,简单的使用postman构造http请求,进一步了解https, 学习https的加密过程,了解对称密钥与非对称密钥对于加密是如何进行的,如有错误,请在评论区指正,让我们一起交流,共同进步! 本文开始 1) 直接在浏览器中的地址栏中输入一个 u

    2024年02月13日
    浏览(64)
  • HTTPS工作过程,国家为什么让http为什么要换成https,Tomcat在MAC M1电脑如何安装,Tomcat的详细介绍

    目录 引言 一、HTTPS工作过程 二、Tomcat 在访达中找到下载好的Tomcat文件夹(这个要求按顺序) zsh: permission denied TOMCAT的各部分含义: 在密码中一般是:明文+密钥-密文(加密) ,密文+密钥-明文(解密) 那么为什么大家放弃了原有的http换为https呢? 这我们就要先介绍一下H

    2024年02月08日
    浏览(53)
  • HTTP 和 HTTPS 协议原理【网络基础】

    友情链接: HTTP协议【网络基础/应用层】 简单:HTTP 是一种文本协议,易于理解和实现。HTTP 的请求和响应都由起始行、首部字段和可选的消息主体组成,每个部分都有明确的语法规则。HTTP 的方法、状态码和首部字段都有标准化的定义,方便开发者遵循。 灵活:HTTP 是一种无

    2024年02月09日
    浏览(59)
  • 网络协议分析-http/https/tcp/udp

    “三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生 错误”。主要目的防止 server 端一直等待,浪费资源。换句话说,即是为了保证服务端能收 接受到客户端的信息并能做出正确的应答而进行前两次(第一次和第二次)握手,为了保证客

    2024年02月11日
    浏览(50)
  • 【Linux网络】网络应用层的 http 和 https协议

    在之前学习序列化和反序列化的时候,认识到主机之间传输结构数据的时候,最好是通过某种约定将结构数据序列化成一串字符串,接收方再通过反序列化将字符串转换成结构数据。以上说的这种约定,其实可以看成是用户层通信的一种协议,是由程序猿自己定的。   实际

    2024年02月02日
    浏览(64)
  • 网络基础2(HTTP,HTTPS,传输层协议详解)

    再谈协议         在之前利用套接字进行通信的时候,我们都是利用 “字符串” 进行流式的发送接收,但是我们平常进行交流通信肯定不能只是简单的发送字符串。         比如我们用QQ进行聊天,我们不仅需要得到对方发送的消息,还要知道对方的昵称,头像等一系列数

    2024年02月13日
    浏览(54)
  • 【网络技术】【Kali Linux】Wireshark嗅探(九)安全HTTP协议(HTTPS协议)

    本次实验是基于之前的实验:Wireshark嗅探(七)(HTTP协议)进行的。本次实验使用Wireshark流量分析工具进行网络嗅探,旨在初步了解安全的HTTP协议(HTTPS协议)的工作原理。 HTTPS的含义是HTTP + SSL,即使用SSL(安全套接字)协议对通信数据进行加密。HTTP和HTTPS协议的区别(用

    2024年01月20日
    浏览(53)
  • 常见网络通信协议(http、https、ws)及安全协议(SSL、TLS、XTLS)

    文章内容删除了一大半不合适的内容,发不出来,你懂得。🥰 HTTP和HTTPS都属于 应用层协议 ,它们都是用于从万维网(WWW)服务器传输超文本到本地浏览器的传送协议。它们都是 基于 TCP/IP 协议 来传递数据的,支持 客户端-服务器模式 的通信。 HTTP和HTTPS的区别主要在于HTT

    2024年02月10日
    浏览(51)
  • 前端面试:【网络协议与性能优化】HTTP/HTTPS、TCP/IP和WebSocket

    嗨,亲爱的Web开发者!在构建现代Web应用时,了解网络协议是优化性能和确保安全性的关键。本文将深入探讨HTTP/HTTPS、TCP/IP和WebSocket这三个网络协议,帮助你理解它们的作用以及如何优化Web应用的性能。 1. HTTP/HTTPS协议: HTTP(超文本传输协议): HTTP是用于在Web上传输数据的

    2024年02月11日
    浏览(51)
  • [Java网络安全系列面试题] HTTP和HTTPS协议区别和联系都有哪些?

    2.1 HTTP特点 1.支持客户/服务器模式。( C/S 模式) 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有 GET 、 HEAD 、 POST 。每种方法规定了客户与服务器联系的类型不同。由于 HTTP 协议简单,使得 HTTP 服务器的程序规模小,因而通信速度很快。

    2024年04月23日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包