HTTPS概念&wireshark分析

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

密钥&加密算法

密钥:通常是一个字符串或数字,进行加密/解密算法时使用。公钥和私钥都是密钥,只不过一般公钥是对外开放的,加密时使用;私钥是不公开的,解密时使用。

非对称加密算法原理:

加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯一知道自己私钥的人。不对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信方必须首先知道收信方的公钥,然后利用收信方的公钥来加密原文收信方收到加密密文后,使用自己的私钥才能解密密文。显然,采用不对称加密算法,收发信双方在通信之前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。由于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。广泛应用的不对称加密算法有RSA算法和美国国家标准局提出的DSA。

对称加密算法

对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。

不足之处是,交易双方都使用同样钥匙,安全性得不到保证。此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量呈几何级数增长,密钥管理成为用户的负担。对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。而与公开密钥加密算法比起来,对称加密算法能够提供加密和认证却缺乏了签名功能,使得使用范围有所缩小。在计算机专网系统中广泛使用的对称加密算法有DES和IDEA等。美国国家标准局倡导的AES即将作为新标准取代DES。

对称加密算法的优点在于加解密的高速度和使用长密钥时的难破解性。假设两个用户需要使用对称加密方法加密然后交换数据,则用户最少需要2个密钥并交换使用,如果企业内用户有n个,则整个企业共需要n×(n-1) 个密钥,密钥的生成和分发将成为企业信息部门的恶梦。对称加密算法的安全性取决于加密密钥的保存情况,但要求企业中每一个持有密钥的人都保守秘密是不可能的,他们通常会有意无意的把密钥泄漏出去——如果一个用户使用的密钥被入侵者所获得,入侵者便可以读取该用户密钥加密的所有文档,如果整个企业共用一个加密密钥,那整个企业文档的保密性便无从谈起。

CA & 数字证书

CA认证,即电子认证服务 ,是指为电子签名相关各方提供真实性、可靠性验证的活动。

证书颁发机构(CA, Certificate Authority)即颁发数字证书的机构。是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。


数字证书是指在互联网通讯中标志通讯各方身份信息的一个数字认证,人们可以在网上用它来识别对方的身份。

数字证书的基本工作原理主要体现在:

第一,发送方在发送信息前,需先与接收方联系,同时利用公钥加密信息,信息在进行传输的过程当中一直是处于密文状态,包括接收方接收后也是加密的,确保了信息传输的单一性,若信息被窃取或截取,也必须利用接收方的私钥才可解读数据,而无法更改数据,这也有利保障信息的完整性和安全性。

第二,数字证书的数据签名类似于加密过程,数据在实施加密后,只有接收方才可打开或更改数据信息,并加上自己的签名后再传输至发送方,而接收方的私钥具唯一性和私密性,这也保证了签名的真实性和可靠性,进而保障信息的安全性。

https流程连接流程

HTTPS概念&wireshark分析,https,wireshark,网络协议
第一步:客户端向服务端发起请求(客户端https准备访问,但是双方此时都不清楚对方

  1. 客户端生成随机数R1 发送给服务端;
  2. 告诉服务端自己支持哪些加密算法;

第二步:服务器向客户端发送数字证书(相当于服务端告诉客户端自己的电子身份,以及能通过怎样的密钥与我对话

  1. 服务端生成随机数R2;
  2. 客户端支持的加密算法中选择一种双方都支持的加密算法(此算法用于后面的会话密钥生成)
  3. 服务端生成把证书、随机数R2、会话密钥生成算法,一同发给客户端;

第三步:客户端验证数字证书。(客户端确认服务端身份,然后发送自己的电子身份给服务端,并告知能通过怎样的密钥与我对话)

  1. 验证证书的可靠性,先用CA的公钥解密被加密过后的证书,能解密则说明证书没有问题,然后通过证书里提供的摘要算法进行对数据进行摘要,然后通过自己生成的摘要与服务端发送的摘要比对。
    2. 验证证书合法性,包括证书是否吊销、是否到期、域名是否匹配,通过后则进行后面的流程
    3. 获得证书的公钥、会话密钥生成算法、随机数R2
    4. 生成一个随机数R3。
    5. 根据会话秘钥算法使用R1、R2、R3生成会话秘钥。
    6. 用服务端证书的公钥加密随机数R3并发送给服务端。

第四步:服务器得到会话密钥(服务端确认客户端身份,然后双方都知晓三次的随机数和秘钥算法,后续能正常加密对话了

  1. 服务器用私钥解密客户端发过来的随机数R3
  2. 根据会话秘钥算法使用R1、R2、R3生成会话秘钥

第五步:客户端与服务端进行加密会话

  1. 客户端发送加密数据给服务端

      发送加密数据:客户端加密数据后发送给服务端。
    
  2. 服务端响应客户端

       解密接收数据:服务端用会话密钥解密客户端发送的数据;                                                                加密响应数据:用会话密钥把响应的数据加密发送给客户端。
    
  3. 客户端解密服务端响应的数据

        解密数据:客户端用会话密钥解密响应数据;
    

————————————————
版权声明:本文为CSDN博主「purpleFairyx」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_46364778/article/details/124884079

————————————————
版权声明:本文为CSDN博主「purpleFairyx」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_46364778/article/details/124884079

springboot项目启动https

baidu/google:

证书生成:

keytool -genkey -alias tomcat  -storetype PKCS12 -keyalg RSA -keysize 2048  -keystore keystore.p12 -validity 3650

重要配置

import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
 * @Author mubi
 * @Date 2023/7/17 23:09
 */
@Configuration
public class ServletWebServerConfiguration {
    @Bean
    public ServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
            @Override
            protected void postProcessContext(Context context) {
                // Due to CONFIDENTIAL and /*, this will cause Tomcat to redirect every request to HTTPS.
                // You can configure multiple patterns and multiple constraints if you need more control over what is and is not redirected.
                SecurityConstraint constraint = new SecurityConstraint();
                constraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection collection = new SecurityCollection();
                collection.addPattern("/*");
                constraint.addCollection(collection);
                context.addConstraint(constraint);
            }
        };
        tomcat.addAdditionalTomcatConnectors(httpConnector());
        return tomcat;

    }

    @Bean
    public Connector httpConnector() {

        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http"); // 使用http协议
        connector.setPort(8080);  // HTTP监听端口
        // if connector.setSecure(true),the http use the http and https use the https
        // else if connector.setSecure(false),the http redirect to https;
        connector.setSecure(true);
        // redirectPort The redirect port number (non-SSL to SSL)
        connector.setRedirectPort(8449); // 重定向端口
        return connector;
    }
}

application.properties如下

#https
server.port=8449
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=123456
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=tomcat

启动成功如下:
HTTPS概念&wireshark分析,https,wireshark,网络协议

当直接http访问https端口的时候,报错如下
HTTPS概念&wireshark分析,https,wireshark,网络协议

https第一次访问会出现如下
HTTPS概念&wireshark分析,https,wireshark,网络协议
继续前往,正确访问得到结果:
HTTPS概念&wireshark分析,https,wireshark,网络协议

可以看到本地自己生成的证书如下:
HTTPS概念&wireshark分析,https,wireshark,网络协议

安全的证书,类似baidu如下
HTTPS概念&wireshark分析,https,wireshark,网络协议

wireshark分析https流程

http和https的区别:
HTTPS概念&wireshark分析,https,wireshark,网络协议
ssl/tls协议流程

HTTPS概念&wireshark分析,https,wireshark,网络协议

如下是访问b站的抓包
HTTPS概念&wireshark分析,https,wireshark,网络协议握手完成后传输的都是加密数据
HTTPS概念&wireshark分析,https,wireshark,网络协议文章来源地址https://www.toymoban.com/news/detail-582323.html

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

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

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

相关文章

  • Wireshark (四) wireshark解密HTTPS(1),网络安全架构师必备技术

    Wireshark配置Secret log 抓取https服务器流量 打开浏览器 访问我们安装好的https服务器 打开wireshark 进行抓包无法查看到http的流量包 流量包被tls进行了加密 使用(Pre)-Master-Secret的keylog日志文件解密 配置环境变量导出文件 浏览器和一些客户端应用程序会将使用的TLS密钥导出到一

    2024年04月27日
    浏览(38)
  • HTTPS协议详解:基本概念与工作原理

    个人主页: insist--个人主页​​​​​​ 本文专栏 :网络基础——带你走进网络世界 本专栏会持续更新网络基础知识,希望大家多多支持,让我们一起探索这个神奇而广阔的网络世界。 目录 一、HTTPS协议的基本概念

    2024年02月10日
    浏览(43)
  • 网络协议报文理解刨析篇二(再谈Http和Https), 加上TCP/UDP/IP协议分析(理解着学习), 面试官都惊讶你对网络的见解

    目录 前文链接(系列助学, 也为后文学习做铺垫, 可按需读取) 一. 再谈HTTP再理解 二. HTTP对比学习HTTPS HTTP和HTTPS的区别如下: 三.TCP协议  (三次握手四次挥手细节过程理解在之前的博文中有详细图解) tcp缓冲区概念的引入  (解释流量控制): 确认应答(ACK)机制的理解 (编序号)

    2023年04月09日
    浏览(63)
  • 网络原理 - HTTP / HTTPS(5)——https协议

    目录 一、HTTPS是什么 为什么要进行加密 二、“加密” 是什么 三、HTTPS的工作过程 (1)引入对称加密 对称密钥的特点: (2)引入非对称加密 非对称加密的特点: (3)中间人攻击 (4)引入证书 1、证书的介绍 2、证书验证过程 3、几个关键问题(黑客不能篡改证书的原因)

    2024年04月17日
    浏览(45)
  • 【网络协议】聊聊HTTPS协议

    前面的文章,我们描述了网络是怎样进行传输数据包的,但是网络是不安全的,对于这种流量门户网站其实还好,对于支付类场景其实容易将数据泄漏,所以安全的方式是通过加密,加密方式主要是 对称加密 和 非对称加密 。 对称加密,其实就是双方使用同样的密钥进行加

    2024年02月06日
    浏览(53)
  • 网络协议---TCP协议分析(基于wireshark)

                    Wireshark TCP协议分析 1)TCP使用序列号和确认号提供可靠的数据传输; 2)观察 TCP的拥塞控制算法(慢启动和拥塞避免); 3)TCP接收段实现流量控制的机制; 4)简要地观察TCP连接设置, 5)并调查计算机和服务器之间TCP的连接性能(吞吐量和往返时延

    2024年04月10日
    浏览(50)
  • 【网络】HTTPS协议原理

    目录 “加密”相关概念 为什么要加密 常见加密方式 对称加密 非对称加密 HTTPS工作过程探究 方案1-只使用对称加密 方案2-只使用非对称加密 方案3-客户端和服务端双方都使用非对称加密 方案4-非对称加密 + 对称加密 上述方案问题分析  方案5-证书认证 + 非对称加密+对称加密

    2024年02月13日
    浏览(66)
  • 【网络】-- https协议

    目录 http协议 https协议 安全 概念 什么是\\\"加密\\\"? 为什么要加密? 常见的加密方式 对称加密 非对称加密 数据摘要 数据指纹 数字签名 HTTPS 的工作过程探究 方案一:只使用对称加密 方案二:只使用非对称加密 方案三:双方都使用非对称加密 方案四:非对称加密 + 对称加密

    2023年04月21日
    浏览(35)
  • HTTPS网络通信协议基础

    目录 前言: 1.HTTPS协议理论 1.1协议概念 1.2加密 2.两类加密 2.1对称加密 2.2非对称加密 3.引入“证书” 3.1证书概念 3.2数据证书内容 3.3数据签名 4.总结  了解完HTTP协议后,HTTPS协议是HTTP协议的升级加强版,在目前的日常开发中,以使用HTPS协议为主,HTTPS协议对于HTTP协议有很多

    2024年02月19日
    浏览(52)
  • 【网络】应用层——HTTPS协议

    🐱作者:一只大喵咪1201 🐱专栏:《网络》 🔥格言: 你只管努力,剩下的交给时间! 前面本喵讲解并演示了HTTP协议,在比较 POST 和 GET 方法的时候,本喵说这两个方法都不安全,虽然 POST 的提交的表单内容在请求正文中,无法在地址的 url 中看到,但是它仍然是不安全的。

    2024年02月14日
    浏览(44)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包