精华内容
下载资源
问答
  • wireshark 解密加密报文

    千次阅读 2020-07-02 21:49:04
    wireshark 解密IPSec加密后的报文 序言 wireshark作为一款非常优秀的抓包工具,支持了各种各样的网络协议,成为了网络开发中必不可少的工具之一。一般而言,对于普通的网络数据包,wireshark能够提供很好的解析功能...

    wireshark 解密IPSec加密后的报文

    序言

    wireshark作为一款非常优秀的抓包工具,支持了各种各样的网络协议,成为了网络开发中必不可少的工具之一。一般而言,对于普通的网络数据包,wireshark能够提供很好的解析功能,但是对于加密的网络报文,由于缺乏密钥信息导致无法解析。幸运的时,新版的wireshark工具再一直密钥信息的情况下,提供了解析加密报文的功能。下面我们就该功能的使用提供一个简单的操作示例。

    1. 正常抓取的报文

    正常抓取的报文,wireshark无法解密。如果需要调试功能,但是又不知道它的报文内容,那是相当难受的感觉。

    在这里插入图片描述

    2. 使用wireshark解密加密报文

    • 选中加密报文,右键选择 “协议首选项
      在这里插入图片描述
    • 选择报文所属协议

    因为我的是IPsec协商报文,采用的IKEv2协议,因此我使用了**“IKEv2 Decryption Table…”**,效果图如下:
    在这里插入图片描述
    然后根据需求填充上自己的密钥参数信息:
    在这里插入图片描述

    3. 密钥的来源

    我使用的是Ipsec报文,他的密钥再协商过程中产生,因此我将pluto协商过程中的密钥信息记录下来,然后根据需求依次填充到wireshark中即可。密钥信息如下:

     ------------------------------------------------------------------
     KEY length: skd_bytes=16  ska_bytes=16  ske_bytes=24  skp_bytes=16 
     SK_d:  ce 21 6c af  e3 6c 34 93  0f fc 86 21  e8 bf e7 22
     SK_ai:  6ebfc1b41d90e0ea50a5124b75657839
     SK_ar:  26a3a2f1fa014ec600a9d38b43ad1ec0
     SK_ei:  a91e5a67fdb998421fd9d31f46055be40e49aa5ba2468b00
     SK_er:  8aef98774979227dd7f46a747adcfab19128a68cb35c8b1d
     SK_pi:  93 04 47 7e  45 16 c6 2b  84 a6 37 bb  0f 03 f1 7e
     SK_pr:  da 9f 5b 47  4e b4 25 3e  47 dd 3e e8  82 c5 7f e1
    
     ICOOKIE:  ffd40d496cdd6ba6
     RCOOKIE:  265f96692df83750
     ------------------------------------------------------------------
    

    4. 解密后的报文

    在这里插入图片描述
    这样便很方便的看到解密的IPSec报文的内容。

    展开全文
  • 解密TLS协议全记录之利用wireshark解密

    千次阅读 热门讨论 2020-07-17 01:33:34
    为什么会突然有使用wireshark学习TLS的想法,主要是为了在nike官网抢限量球鞋,但是发现路子好像走歪了,唯一的价值好像就是多了这么一篇博客,查阅了很多有根据,没根据的博客内容,总结出这篇自以为还算全面,结实...

    引言

    • 为什么会突然有使用wireshark学习TLS的想法,主要是为了一个抢票设计,结果一入TLS,无法自拔,最后发现路子好像走歪了,唯一的价值好像就是多了这么一篇博客,查阅了很多有根据,没根据的博客内容,总结出这篇自以为还算全面的文章。如有问题,欢迎讨论交流。
    • 学习网络协议之前,必须先找对最基本的协议学习网站,
      rfc协议官网 https://www.rfc-editor.org
      ietf协议官网 https://www.ietf.org/ ,其实这个网站,我经常搜索不出比较理想的文件,标题不直观,杂七杂八的会议记录文件一大堆夹杂在规范文件之中。
    • 通过上面的网站,我们可以获取到tls的几个协议说明链接.
      TLS1.0: https://www.rfc-editor.org/rfc/rfc2246.html
      TLS1.2: https://www.rfc-editor.org/rfc/rfc5246.html https://tools.ietf.org/html/rfc5246

    1. 写在解密前

    • 这个分析TLS报文的环节中引出很多问题,一步步被引入深坑。
    • 学习的时候,被不少没有实践的博客坑得浪费了不少时间,之前参考过下面的内容:

    1.1 安装wireshark

    1.2 有用的知识

    1.2.1 易混淆点

    • SSLv2/SSLv3不安全,因此,发展出了使用TLS来代替,利用传输层的TCP协议来传输报文,端口号 443, 将应用层(HTTP)封装在tls的加密密文中。
    • X.509 认证证书有时候也叫 SSL 证书。
    • 由于一些历史原因, 诸多的软件中(包括wireshark)提到 SSL 或者 SSL/TLS ,指的都是 目前大家都在使用的TLS协议,比如 wireshark早些版本就叫SSL,现在都统一成TLS
    • 典型地, TLS使用TCP 作为他的传输层协议, 这几年也逐步发展出了DTLS(Datagram TLS), 也就是基于UDP传输的TLS报文协议。 UDP传输协议(英语:User Datagram Protocol,用户数据包协议),网络编程的时候,经常通过SOCK_DGRAM参数来配置socket。
    • 自从wireshark 3.0之后, TLS解析工具就从SSL改成了TLS, 如果使用SSL的话,软件将会发出警告。

    1.2.2 wireshark 使用技巧

    • 配置过滤选项为: tcp.port = 443 ,便可以过滤TLS报文
    • 当我们想追踪某一次数据通信的相关报文的时候, 可以右键该报文,然后选择追踪流, 追踪TLS 协议,便可以将相关的TLS报文 都筛选出来, 也有其他选项,比如追踪 TCP报文之类的,我们就可以很清晰观察到报文的一些 握手, 挥手信息, TLS的交换密钥的报文信息。
    • 配置过滤的时候, 同样可以右键报文的ip地址 ,选择作为过滤器使用,然后可以组合各种过滤的逻辑语法, 之后会作用到 Current Filte中
    • 在Current Filter中, 如果不小心删除之前使用的逻辑判断语句,如ip.addr=192.168.1.1可以 点击右侧的 ▼(倒三角符号), 状态栏便会下拉出 历史使用的过滤选项。

    1.2.3 学习TLS协议内容

    2. 通过wireshark 解密TLS报文的两种途径

    进行wireshark报文解密的话, 可以直接抓取现成网页服务器的数据, 也可以自己动手通过nginx搭建HTTPS Server进行学习。

    Wireshak 主要支持以下两种方法进行解密:

    • 在RSA密钥交换算法中,客户端会临时生成预主密钥(随机数),这个数在会被生成主密钥之后就会被马上删除, 那么此时只能通过服务端的私钥,才能够解开加密密钥进而解密报文,但是这大多数情况下,不现实。
    • 而例如chrome,firefox, curl 等应用, 当设置了SSLKEYLOGFILE的环境变量, 就能够获取到每次对话产生的key log文件。利用每次对话中,存储下来的key log来解密报文是一种非常普遍的手段,即使是使用DH密钥交换算法, 而RSA私钥解密就比较有局限性,它只能应用于以下几种环境:
    1. 服务器加密套件使用的不是(EC)DHE.
    2. 协议版本是SSLv3, TLS1.0-1.2, 因为TLS1.3 已经不再支持RSA密钥交换算法了, 可查看我的博客: TLS协议剖析.
    3. RSA私钥需要和服务器证书匹配,正常通信中,服务器肯定会下发证书, 这时候证书中公钥就会被用来加密预主密钥,如果能够拿到证书对应的私钥,便可以解密被加密的报文内容。(结合非对称加密理解。不能搞混,不是客户端的证书也不是CA证书。
    4. 对话窗不能是通过恢复协议而恢复的窗口, 报文中一定要包含有 ClientKeyExchange的握手消息, 这个地方我吃过亏,先前实践的过程中,一直十分郁闷为何有的报文有被解密,有的没有解密
    5. RSA私钥唯一的优点就在于,只要导入一次服务器的私钥文件就可以实现内容解密。

    疑问: wireshark 有时候无法解密是不是就是因为报文通信的密钥使用的是之前商议好的密钥?
    A: 确实如此,如果是使用RSA密钥交换算法,那么报文中一定要包含ClientKeyExchange的消息, 这样wireshark 才能拿到客户端产生的随机数(预主密钥),才能把密钥和报文匹配起来, 而恢复会话就很难确定之前的密钥是什么值了。

    2.0 首先,配置测试网络:

    • 网络拓扑图:
    TLS Requset
    TLS Response
    Client 192.168.1.196
    Https Server 192.168.1.105
    • 配置wiresshark 过滤出tls的报文:
      在这里插入图片描述
      或者
      配置 tcp.port == 443.🤣

    2.1 使用服务器端的RSA 私钥进行解密

    1. 配置服务器使用RSA的加密套件:

    #HTTPS server
    server {
    listen 443 ssl;
    server_name localhost;
    ssl_certificate /usr/local/nginx/tls_file/cert_2.crt;
    ssl_certificate_key /usr/local/nginx/tls_file/cert.key;
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 5m;
    ssl_ciphers AES256-GCM-SHA384;
    #ssl_ciphers ECDHE-RSA-CHACHA20-POLY1305;
    #ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
    root html;
    index index.html index.htm;
    }
    }

    1. 访问页面之后,可以抓到典型的RSA密钥交换算法的报文,也就是只有client这一侧进行key exchange,通过公钥加密了随机数,然后上传给服务器。
      在这里插入图片描述3 通过编辑—> 首选项—>RSA密钥:
      在这里插入图片描述
      导入服务器上的私钥文件,类似以下文件内容

    -----BEGIN PRIVATE KEY-----
    MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDReQzlKVeAK8b5
    TRcRBhSi9IYwHX8Nqc8K4HeDRvN7HiBQQP3bhUkVekdoXpRLYVuc7A8h1BLr93Qw

    KOi8FZl+jhG+p8vtpK5ZAIyp
    -----END PRIVATE KEY-----

    这样即可解密,解密后的报文如下:
    在这里插入图片描述
    则可以在wireshark 上查看到http的明文报文。
    需要注意的是RSA算法,一定要让wireshark 抓到 Client Key Exchange的包,因为预主密钥 在这个报文里面,否则结果会像下面这样, 无法看到明文。
    在这里插入图片描述

    2.2 使用(Pre)-Master-Secret的keylog 文件,配置TLS_debug 文件

    • 这个是利用wireshark 解密报文较为普遍的一种方式。
    • 通过TLS debug file (tls.debug_logfile)文件, 我们可以知道为什么解密失败,这其中将会记录wireshark解密过程的相关log信息。
    1. 创建文件 tls_key.txt (用来记录 环境变量 SSLKEYLOGFILE的值,chrome 和firefox 都会将值记录到这个变量上)
    2. 创建文件tls_debug.log (用来保存wireshark 解析报文时的log记录)
    3. 打开wireshark,打开Edit–> Preferences -> Protocols -> TLS,将上述文件按如下导入:
      在这里插入图片描述
    4. 配置 SSLKEYLOGFILE的环境变量
    # windows下,该方法作用范围只局限于当前的CMD窗口。
    C:\Program Files (x86)\Google\Chrome\Application>set SSLKEYLOGFILE=C:\Users\chupa\Desktop\tls_key.txt
    C:\Program Files (x86)\Google\Chrome\Application>chrome.exe
    # linux下
    $ export SSLKEYLOGFILE=~/path/to/sslkeylog.log
    # You can also add this to the last line of your
    ~/.bashrc
    
    1. 配置nginx服务器,然后访问网页,可以看到解析的报文如下,可以看到application 报文变成http明文。
      下图为ECDHE密钥交换算法的报文:
      在这里插入图片描述
      下图为ECDHE算法中 相关参数 key值的文件内容:
      在这里插入图片描述
      下图为RSA密钥交换算法的报文解析:
      在这里插入图片描述
      下图为RSA算法中,客户端产生的随机值(预主密钥):
      在这里插入图片描述
      以下是访问 nike 官网的报文截图:
      可以看到nike官网开始支持http2了,
      在这里插入图片描述
      但是, 会发现一个问题,就是部分报文无法解密: 比如 #2025
      在这里插入图片描述
      查看wireshark 记录的tls_debug.log发现:

    tls_decrypt_aead_record seq 624
    nonce[12]:
    | 3d 3d 4a 3f 66 01 6a 69 65 af bd 3e |==J?f.jie…> |
    AAD[5]:
    | 17 03 03 04 11 |… |
    tls_decrypt_aead_record auth tag mismatch
    auth_tag(expect)[16]:
    | 62 d4 44 5f 34 02 87 73 72 b4 80 0a ba 1f b9 1d |b.D_4…sr…|
    auth_tag(actual)[16]:
    | 1a 3e ac 27 0b 1a 6a 9a a1 28 1b 89 0e 73 77 42 |.>.’…j…(…swB|

    Google搜索发现,已经有人报了相关bug 给wireshark , bug 链接: https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=15537
    目前我也报了bug给wireshark,bug链接: https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=16713, 等待回复中…

    1. 当然,wireshark解密TLS 报文还是有一定的局限性,我们可以通过搭建代理服务器, 或者 fiddler来解密, 也可以直接通过 chrome 浏览器也可以直接解析,fiddler 其实就是模拟的代理服务器,网上教程很多,不再赘述。
    展开全文
  • wireshark解密SSL

    2015-12-01 21:36:20
    主要用于介绍如何用wireshark解密SSL数据流量包网页
  • 使用Wireshark解密SSL/TLS数据包并调试

    万次阅读 2020-02-17 16:55:04
    使用Wireshark解密SSL/TLS数据 我们使用wireshark抓取的HTTPS数据包,可以使用wireshark通过以下两种方式直接解密查看 1. 用服务器证书私钥解码 第一种方法是:使用服务器证书的私钥进行解码。 在IIS上导出服务器...

    使用Wireshark解密SSL/TLS数据

    我们使用wireshark抓取的HTTPS数据包,可以使用wireshark通过以下两种方式直接解密查看

    1. 用服务器证书私钥解码

    第一种方法是:使用服务器证书的私钥进行解码。

    在IIS上导出服务器证书私钥

    第一步我们需要从网站服务器上导出证书私钥,这里拿IIS服务器举例。

    1. 打开IIS站点所绑定的服务器证书,点击查看 详细信息 页,点击 复制到文件。

    1. 向导中点击下一步,当询问是否导出私钥时选择 是,导出私钥,点击 下一步 继续。

    1. 选择 个人信息交换(.PFX),下面的三个复选框不用勾选,点击 下一步 继续。

    1. 勾选 密码,设置一个密码,点击 下一步 继续,导出PFX文件。

    Wireshark中设置以服务器证书私钥解码SSL协议

    有了PFX私钥文件,接下来就可以通过Wireshark设置使用该私钥来解码SSL、TLS网络包了。这一步既可以在服务器上的Wireshark中设置,也可以在客户端的Wireshark中设置,取决于你想在哪一端查看(抓取)网络包。

    1. 在Wireshark中,进入菜单 Edit -> Preferences…。
    2. 展开 Protocols -> SSL,点击 Edit 按钮编辑 RSA key lists。

    1. 配置如下:

    IP address:目标服务器的IP地址,也可以填写 “any” 应用到所有IP地址。
    Port:HTTPS端口号,一般均为:“443”。
    Protocol:填写 “http”。
    Key File:选取刚才导出的服务器证书私钥(PFX文件)。
    Password:输入服务器证书私钥的密码。

    设置完成后,当前正在查看的网络包或将来抓取的网络包就会以设定的规则解码了。

    如果网络包依然无法被解码,那么很有可能是因为服务器和客户端之间使用了Diffie-Hellman加密算法。比如使用ECDHE,这种数据包无法使用wireshark解密。

    2. 用SSLKEYLOGFILE解码

    第二种解码TLS、SSL的方法是:设置环境变量 SSLKEYLOGFILE,将其指向一个可写入的文本文件。Chrome和Firefox在启动时会检查这个环境变量,如果存在的话,它会向指定的文件写入访问HTTPS站点时使用的密钥。我们可以在客户端配置Wireshark读取这个文件来解码TLS、 SSL网络包。

    1. 右键计算机,查看属性,打开高级系统设置,查看高级选项卡,点击环境变量。

    1. 新建一个系统变量。

    1. 指定变量名为:SSLKEYLOGFILE,变量值为一个可写入的文本文件。文件夹必须提前创建,若文件尚未创建,可以打开Chrome或Firefox一下,文件会被自动创建。

    1. 在Wireshark中,进入菜单 Edit -> Preferences…。
    2. 展开 Protocols -> SSL,将 (Pre)-Master-Secret log filename 设为步骤3中指定的值。

    1. 点击确认后,就会正确解码HTTPS网络包了。使用 SSLKEYLOGFILE 的好处就是它可以解Diffie-Hellman加密算法。

    使用Wireshark调试SSL/TLS解密数据

    导出SSL/TLS密钥

    1. 点击wireshark如下配置,导出SSL会话密钥

    1. 导出的文件如下所示


    上图中的“Master-Key”为主密钥,主密钥并不是最终加解密使用的密钥,会话密钥是通过主密钥再进一步计算获得。

    导出wireshark调试日志

    1. 在wireshark中设置调试日志保存的位置,如下图所示

    1. 设置如上配置后,点击OK后,数据包会重新在加载,然后就可以打开上图中保存的日志文件,下边截取部分日志查看


    日志中输出了客户端和服务端在协商阶段,计算密钥过程的中间输出,比如“预主密钥”、“主密钥”、客户端和服务端随机数等。

    参考资料

    https://www.joji.me/zh-cn/blog/walkthrough-decrypt-ssl-tls-traffic-https-and-http2-in-wireshark/#md-sslkeylogfile

    展开全文
  • 一 背景以前使用库写过一个https的特定算法的解密,整个测试过程比较麻烦,这边记录下测试准备内容.二 生成自签名证书HTTPS正常情况下使用的证书都是由CA结构颁发的,浏览器内置了根证...

    一 背景

    以前使用库写过一个https的特定算法的解密,整个测试过程比较麻烦,这边记录下测试准备内容.

    二 生成自签名证书

    HTTPS正常情况下使用的证书都是由CA结构颁发的,浏览器内置了根证书,这样我们在访问网站的时候通过多级校验(这个多级认证的意思是,比如我的证书是由A来颁发的,那A是否合法那,A的证书是由B来颁发的,B的证书又是由C来颁发的,最终C是根证书,C证书内置在浏览器中,通过多级认证来完成对服务器认证),来实现对网站的认证。

    对于我们自己做的自签名证书,浏览器在打开我们网站的时候,会进行安全提示,因为可能存在着中间攻击,如果用户准许访问还是可以访问的。

    对于我们内部测试来说,或者我们局域网使用,是没有问题的,我们也可以通过把证书存入的方式,防止下次再出告警;生成私钥和证书,主要是通过openssl工具来生成的。

    2.1 生成私钥和CSR文件

    CSR文件证书签名请求文件,包含了服务器的密钥对,CA按照会校验这个文件,然后验证CSR请求文件。

    执行命令:

    #-nodes 表示私钥不加密,若不带参数将提示输入密码
    #-newkey rsa:2048 -keyout test_key.pem 表示生成私钥(PKCS8格式)
    openssl req -newkey rsa:2048 -nodes -keyout test_key.pem -out csr.pem
    

    需要填些信息,自签名的除了密码,其他的无所谓。

    Generating a 2048 bit RSA private key
    .....................+++
    .......+++
    writing new private key to 'test_key.pem'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [XX]:CN //国家名称(2个字母代码)[XX]:CN     
    State or Province Name (full name) []:sichuan //州或省名
    Locality Name (eg, city) [Default City]:chengdou //地点名称(如城市)
    Organization Name (eg, company) [Default Company Ltd]:test //  组织名称(如公司)
    Organizational Unit Name (eg, p) []:testunit  //  组织单位名称(例如,部分)
    Common Name (eg, your name or your server's hostname) []:testssl.com  //  通用名称(例如,您的姓名或服务器的主机名)
    Email Address []:testssl@163.com //  电子邮件地址
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:12345m
    An optional company name []:
    

    最终生成了密钥对文件和CSR文件。

    [root@localhost testopenssl]# ll
    total 8
    -rw-r--r-- 1 root root 1090 Dec  9 10:11 csr.pem
    -rw-r--r-- 1 root root 1704 Dec  9 10:11 test_key.pem
    
    

    看下内容:

    [root@localhost testopenssl]# cat test_key.pem 
    -----BEGIN PRIVATE KEY-----
    MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCuUjlxWRoP/Ukz
    rCaaFJOcUGebIN7204v9VAjgZPVqCGGiiNPwpqQOjXJCTE+oYQnLKoYsFUW4Rhsw
    gsJWiRsMmCHfKg07VPSvzU2sWwHV3OdEIMIIXxx0z3RhiwIVcztzwQzZXr3g6ciL
    I8ZDtoveI2PocAggQcWRFVXlnllngGnTaHSAAjHR1Z/qkPUX30cLQmF6tMXRiTVN
    ......
    .......
    ......
    F5wdEOBTlbfTRd2jmp3eHnbVhT2RDuG8Xn5ZN+eK5zHpUspDFawTTzg5PFKdtr28
    IWDXzRAaQt5O9XJr5p50Yp5lO/kpOET3gtSJxdcrAoGAf3MQ6l4bgEURZBH1ZNVL
    7qStAy426zXIbY+8A+0fM0YIR4BZ0G++nGIMILayzoIp0s9O8gF0ZiaVthihgah6
    joQyxFosVgsmYx/HSQKODinRWB5AfcPIr2cBXVoMmXZU+vi1a9wrdHAfOU6iCLHC
    8j4XUhdmwI16TrgqM6cfWFI=
    -----END PRIVATE KEY-----
    
    

    2.2 生成自签名证书

    openssl x509 -signkey test_key.pem -in csr.pem -req -days 3650 -out test_cert.pem
    

    显示:

    [root@localhost testopenssl]# openssl x509 -signkey test_key.pem -in csr.pem -req -days 3650 -out test_cert.pem
    Signature ok
    subject=/C=CN/ST=sichuan/L=chengdou/O=asiainfo/OU=testunit/CN=testssl.com/emailAddress=testssl@163.com
    Getting Private key
    

    openssl的命令实在是复杂,这是抄的两个,-signkey是指明使用的密钥对,-in 表示csr文件,-days表示有效期,out最终生成的x509格式的证书文件。

    [root@localhost testopenssl]# more test_cert.pem
    -----BEGIN CERTIFICATE-----
    MIIDmjCCAoICCQDG1mD8Qx+3czANBgkqhkiG9w0BAQsFADCBjjELMAkGA1UEBhMC
    Q04xEDAOBgNVBAgMB3NpY2h1YW4xETAPBgNVBAcMCGNoZW5nZG91MREwDwYDVQQK
    DAhhc2lhaW5mbzERMA8GA1UECwwIdGVzdHVuaXQxFDASBgNVBAMMC3Rlc3Rzc2wu
    Y29tMR4wHAYJKoZIhvcNAQkBFg90ZXN0c3NsQDE2My5jb20wHhcNMjAxMjA5MDIy
    NTMzWhcNMzAxMjA3MDIyNTMzWjCBjjELMAkGA1UEBhMCQ04xEDAOBgNVBAgMB3Np
    Y2h1YW4xETAPBgNVBAcMCGNoZW5nZG91MREwDwYDVQQKDAhhc2lhaW5mbzERMA8G
    A1UECwwIdGVzdHVuaXQxFDASBgNVBAMMC3Rlc3Rzc2wuY29tMR4wHAYJKoZIhvcN
    .....
    s0ErNEkYND4Vk2IdPGKpf0f/XhozsoMeGM3/Zt+vrMU4zITRQ8EhnygxmN3xBrcQ
    o9Vq7x15j3wtaTpnJQbeSLf3ygffegxA8kyzguCe8lWw/nUC3h6rZ77ca/VEFQb6
    tVlLmAu5Ld1iC8x77Io=
    -----END CERTIFICATE-----
    
    

    有时候需要PKCS#12 格式即.p12结尾的证书,命令如下:

     openssl pkcs12 -export -in test_cert.pem  -out test_cert.p12 -inkey test_key.pem 
    

    生成test_cert.p12 文件,需要输出密码12345m

    2.3 提取公钥

    单独提取公钥的命令:

    openssl rsa -in test_key.pem  -pubout -out test_public_key.pem
    

    2.4 提取私钥

     openssl  rsa -in  test_key.pem 
    

    加密的可以通过:

    openssl rsa -in test_key.pem -passin pass:12345m
    

    命令查看,得到私钥:

    -----BEGIN RSA PRIVATE KEY-----
    MIIEowIBAAKCAQEArlI5cVkaD/1JM6wmmhSTnFBnmyDe9tOL/VQI4GT1aghhoojT
    8KakDo1yQkxPqGEJyyqGLBVFuEYbMILCVokbDJgh3yoNO1T0r81NrFsB1dznRCDC
    CF8cdM90YYsCFXM7c8EM2V694OnIiyPGQ7aL3iNj6HAIIEHFkRVV5Z5ZZ4Bp02h0
    gAIx0dWf6pD1F99HC0JherTF0Yk1TY3oVn1uheJj22TAKUG2rUIHQ81ZpwbRwHRd
    ViInEyZ1D1tQRgHBvM8nyvIcz1m5p69Jiq6BJ72lGG7NYcZOYbe5lItOownwaUMS
    qaFL75Lqin8c8902pxxjwJuNmDfFOQNjDYGj+wIDAQABAoIBADkJ5onUIdcBhaZG
    ugrImNQY6w2zX8Fbzv6BNLZX0oVzYJ8SLmcb36pzVeOjnJz3w4Ca1XQvMbTuG49v
    +a7fBd7FGLAwzkuPrNCpWLUAwkT8FyAPp+2dUW5XQzl3hqMGJXnmvRGTEoY5eMku
    V31oibOR2OsBXWdQnhiu5oBPo+ldbOmEgdu3iaPNTtIeap6xDjxlHyd61JcTP+yz
    ....
    /zjr/OQHwKP/1Rmb39wj6wg5AHG9LGkjN1kGyGPZ9tsBm1aZIA+UomUCgYEAyzCA
    GAAd10y7vHc2w8MRQAOjDWwbPrTRnTkdSFnN/ZiUmE4fOg2RJqadnnjR4zNMh3Wi
    wNidhOjr1H8VnydsaTfqFsLS0Ypw6M/THnT8wmKfTe/880XMguUZlwMhzOrHlMRt
    r8Z7kOzkRDGDfzFeLNlxs1g3EIGvfKrCQuXNlt8CgYEAn4jeEIX+9iOfdRSv/k5C
    k0FgHIa81JVEu1ugq6TFl+/QQZxlxgSDz/iNN+n7WJ8v/ifbMqj9e03BT6MbCtyX
    syHz9dIoxAL5MvN0wvM3N4DqS1RT8rC16u55FSC6tOcr7aqFfG3XNWGqrjTwWjMg
    3pJvh95oNJVPLHwSDKTkrbUCgYBrVPxlMTKSN4N4I9U3BcUH9qPcBD5EGoobrj7s
    qBurGT1tUt8l8GK7cwoR2yqsBL4pVBecHRDgU5W300Xdo5qd3h521YU9kQ7hvF5+
    WTfniucx6VLKQxWsE084OTxSnba9vCFg180QGkLeTvVya+aedGKeZTv5KThE94LU
    icXXKwKBgH9zEOpeG4BFEWQR9WTVS+6krQMuNus1yG2PvAPtHzNGCEeAWdBvvpxi
    DCC2ss6CKdLPTvIBdGYmlbYYoYGoeo6EMsRaLFYLJmMfx0kCjg4p0VgeQH3DyK9n
    AV1aDJl2VPr4tWvcK3RwHzlOogixwvI+F1IXZsCNek64KjOnH1hS
    -----END RSA PRIVATE KEY-----
    

    保存为test_private.pem

    三 Tomcat下部署

    3.1 更改配置

    找到conf下面的server.xml 编辑:

            <Connector
               protocol="org.apache.coyote.http11.Http11NioProtocol"
               port="7443" maxThreads="200" ciphers="TLS_RSA_WITH_AES_128_CBC_SHA256,
            TLS_RSA_WITH_AES_128_CBC_SHA,
            TLS_RSA_WITH_AES_128_GCM_SHA256"
               scheme="https" secure="true" SSLEnabled="true"
                keystoreFile="conf/testopenssl/test_cert.p12" keystorePass="12345m" keystoreType="PKCS12"
               clientAuth="false" sslProtocol="TLS"/>
    

    port:指明 https的端口为7443 ciphers: 为密钥套件,故意配置几个容易解密的,便于测试,生产环境不能这样用。keystoreFile:证书文件位置 keystorePass:证书密码 keystoreType:证书类型。

    3.2 重启tomcat

    shutdown.sh
    startup.sh
    

    3.3 配置wireshark

    在编辑地方,找到“首选项” 配置解析的ip,端口,协议和对应的私钥文件,非加密的私钥文件。

    还遇到一个坑,我连vpn测试的,结果抓不到,其实设置下就可以抓到包了,如下图:

    找到vpn的虚拟网卡,勾上一个选项。

    3.4 wireshark解密

    我们因为已经配置了私钥,所以可以通过wireshark抓包并且直接解密,解密的https的报文颜色为淡绿色,如下:

    https解密

    注意:如果你解密不了,可能的原因是,开始抓包的时候,https的交互已经完成,可以重启浏览器连接下试试,如果再不行,重启后台的服务,开始抓包的时候一定要确保https的前面的协商过程也在抓的包里面。

    展开全文
  • Wireshark 解密https 或者 quic 包 wireshark 可以观察http方式的各种信息,方便分析问题,对于https或者quic 加密处理的如何展示明文? 解密https包 tcpdump 抓包 # tcpdump -ni any port 443 -w https.pcap ...
  • 图解wireshark解密SSL报文,帮助更好的分析ssl通信中遇到的问题
  • wireshark解密SSL报文

    千次阅读 2020-11-02 16:41:48
    在SSL/TLS通信调试的过程中,用wireshark捕获的SSL/TLS通信的应用层报文是密文(见图1,协议类型只能解析到TCP),无法直接进行分析,此时我们需要掌握如何通过wireshark解密SSL/TLS报文、利用wireshark网络协议解析...
  • Wireshark 解密 RDP 流量

    2021-04-28 14:06:20
    Wireshark Tutorial: Decrypting RDP Traffic 近年来,攻击者利用远程桌面协议(RDP)访问不安全的服务器和企业网络。自2017年以来,RDP已成为使用勒索软件进行恶意软件攻击的重要载体。安全专业人员通过编写签名来...
  • SSL(Secure Sockets Layer 安全套接层),及其继任者TLS...本文通过服务端、客户端两个角度解释了https报文解密的原理,并解释了https无法解密的情况及原因。https://blog.csdn.net/redwand/article/details/104578732
  • 转载:使用Wireshark解密TLS 1.3流量

    千次阅读 2019-03-19 19:00:00
    使用Wireshark解密TLS 1.3流量 作者: 虞卫东 (微信公众号: https://mp.weixin.qq.com/s/QhodMl210xWMK9XKjVtfAQ ) 2018-05-13 如果你想系统掌握 TLS 协议的细节,了解客户端和服务器消息的交互,非常好的学习工具...
  • 填入你在系统变量中指定的keylog存储路径,以便wireshark访问keylog中的key 从而解密https(ssl) 原理解析: 当你配置了”SSLKEYLOGFILE“这个环境变量,这意味着你告诉chrome 你想知道ch.
  • Wireshark解密SWAN交互报文

    千次阅读 2019-10-31 20:43:43
    首先需要StrongSwan在报文交互中记录下来IKE和ESP的秘钥信息,参见如下的save-keys.opt文件,负责这...最后最关键的是参数wireshark_keys,其值为目录字符串,表示秘钥存储的位置,IKEv1协议的秘钥存储在指定目录的...
  • 按y,继续安装 3、进入root模式,安装 gdebi google-chrome-stable_current_amd64.deb 二、进入root模式启动wireshark 三、开启抓包 1、选择网卡 2、通过终端启动浏览器,访问百度,并过滤ssl的数据包,发现看到的...
  • wireshark解密不通过浏览器的https报文

    千次阅读 2017-02-10 18:13:58
    ServerKeyExchange handshake消息首先,要解密不通过浏览器的https...如果有ServerKeyExchange消息,那么你是不能解密这个报文的。在TLS/SSL协议中,ServerKeyExchange消息被于cipher suite为DHE或者DH相关的cipher s
  • 使用wireshark解密PC浏览器的HTTPS流量

    万次阅读 2016-02-02 11:03:47
    使用wireshark配置解密浏览器端的HTTPS流量
  • wireshark解密https

    2020-08-04 10:07:08
    https(ssl)协议以及wireshark抓包分析与解密 https://blog.csdn.net/u010726042/article/details/53408077 https://jingyan.baidu.com/article/20b68a88b2af7f796cec62b3.html 新建C:\sslkey\sslkeylog.log并...
  • 如何利用Wireshark解密SSL和TLS流量

    千次阅读 2017-05-10 16:26:00
    如何利用Wireshark解密SSL和TLS流量https://support.citrix.com/article/CTX135121 1.有server端的private key,直接在wireshark上使用Edit > Preferences->Protocols->RSA keys list 这个protocol必须是...
  • 手机移动端配置fiddler,wireshark解密HTTPS 流量

    万次阅读 热门讨论 2016-05-06 14:48:17
    介绍如何解密手机的加密流量,通过fiddler实行中间人代理
  • wireshark解密https数据包方法

    千次阅读 2016-04-15 22:29:01
    wireshark在进行数据包抓取时对于http的数据包,直接可以...这里利用ssl加解密流的方式对数据包进行解密: 第一步:设置用户环境变量,将ssl的加解密流保存在特定的文件中: 第二步:在wireshark中导入已经记录的ss
  • 利用Fiddler和Wireshark解密SSL加密流量

    千次阅读 2015-10-02 22:44:22
    Fiddler是一个著名的调试代理工具,它不仅能解析HTTP,而且还...Wireshark则是一个非常强大的网络包监控以及协议分析工具。... 看到这里,大多数人都会很困惑:Fiddler不就能解密SSL流量吗?为什么还需要Wireshark呢?
  • wireshark解密用临时秘钥加密的ssl/tls数据包
  • Wireshark解密https数据

    2019-05-26 13:53:00
    编辑→首选项→Protocols→TLS→RSA key list 解密成功 转载于:https://www.cnblogs.com/wanao/p/10925858.html
  • 使用wireshark 抓取QQ邮箱
  • 我们的wifi 数据包如果你不是选的open model 都是加密的, 那莫我们如何利用wireshark解密data 包呢? 这里我们简单讲一下。 前提: 你知道wifi 的加密方式,ssid , key。 打开wireshark 开始抓包 一般不太...
  • 使用mitmproxy解密SSL流量配合Wireshark进行分析,包括手机,PC软件,浏览器的流量
  • 使用wireshark解密https的方法 方法一: 1、在wireshark的首选项中的protocols的tls选项里添加服务器私钥文件。p12文件需要填写密码。 2、从整个会话开始前开始抓包。 3、https数据包自动解密为http格式的包。 ...
  • 网上各种文章很多,但是具体操作起来还是很多没讲清楚的,自己做完记录一下。 ...使用wireshark解密SSL协议的限制如下文: https://wiki.wireshark.org/TLS#RSA_Keys https://wiki.wireshark....
  • Wireshark对HTTPS数据的解密

    万次阅读 2018-08-29 09:46:11
    本文来自网易云社区之前有介绍《wireshark抓包分析——TCP/IP协议》,然后某天有人问我,示例里是HTTP的,如果是HTTPS,你可以抓包分析吗?基于好奇,我查阅了下相关资料,把一些浅见分享给大家。在讲HTTPS的解密...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,470
精华内容 2,588
关键字:

wireshark解密