使用 Wireshark 解码 TLS 调用时出现问题
Having issues decoding TLS call with Wireshark
我的供应商是 运行 Asterisk 11
,后端是 pjsip
。我正在尝试使用 Blink
桌面为 Windows
作为客户端设置安全通信。它使用 TLS
注册,但无法进行调用并出现以下错误:
SDP Negotiation failed: No active media stream after negotiation (PJSIP_SDPNEG_ENOMEDIA)
error screenshot
Asterisk
似乎正在使用 Let's Encrypt 证书,我可以在 PJSIP
设置中看到它。
[transport-secure-tpl](!)
cert_file=/etc/asterisk/asterisk.pem
priv_key_file=/etc/asterisk/asterisk.pem
cipher=ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-SHA256,ECDHE-ECDSA-AES128-SHA256,ECDHE-RSA-AES128-SHA,ECDHE-ECDSA-AES128-S$
method=sslv23
我下载了这个文件,并在 Blink
设置中使用了 TLS 证书。我还使用同一个文件尝试使用 Wireshark
解码数据包,以查看可能存在的问题并且无法解码。
Wireshark settings
Wireshark Screenshot
这里是 Wireshark
调试日志:
Wireshark
SSL 调试日志
Wireshark version: 3.2.0 (v3.2.0-0-ge0ed4cfa3d72)
GnuTLS version: 3.6.3
Libgcrypt version: 1.8.3
KeyID[20]:
| 94 2b a5 28 69 30 b0 e7 af 90 4c 23 44 5f 2f d2 |.+.(i0....L#D_/.|
| 7a 57 a2 76 |zW.v |
ssl_init private key file C:/Users/user/Downloads/cert - private.pem successfully loaded.
ssl_init port '5061' filename 'C:/Users/user/Downloads/cert - private.pem' password(only for p12 file) ''
association_add tls.port port 5061 handle 0000025C956BD270
dissect_ssl enter frame #19 (already visited)
packet_from_server: is from server - FALSE
conversation = 0000025C90850440, ssl_session = 0000000000000000
record: offset = 0, reported_length_remaining = 256
dissect_ssl3_record: content_type 22 Handshake
dissect_ssl3_handshake iteration 1 type 1 offset 5 length 247 bytes
我做错了什么?
是的,TLS 连接旨在防止 "decode" 像第三方那样。
这是连接的主要目标。
所以你不应该期望解码它。
相反,您可以在 asterisk 上进行 sip 调试。
这个问题似乎比我原先想象的要难。我最终从 Asterisk 捕获了流量,现在有了我需要的东西。
我的供应商是 运行 Asterisk 11
,后端是 pjsip
。我正在尝试使用 Blink
桌面为 Windows
作为客户端设置安全通信。它使用 TLS
注册,但无法进行调用并出现以下错误:
SDP Negotiation failed: No active media stream after negotiation (PJSIP_SDPNEG_ENOMEDIA) error screenshot
Asterisk
似乎正在使用 Let's Encrypt 证书,我可以在 PJSIP
设置中看到它。
[transport-secure-tpl](!)
cert_file=/etc/asterisk/asterisk.pem
priv_key_file=/etc/asterisk/asterisk.pem
cipher=ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-SHA256,ECDHE-ECDSA-AES128-SHA256,ECDHE-RSA-AES128-SHA,ECDHE-ECDSA-AES128-S$
method=sslv23
我下载了这个文件,并在 Blink
设置中使用了 TLS 证书。我还使用同一个文件尝试使用 Wireshark
解码数据包,以查看可能存在的问题并且无法解码。
Wireshark settings
Wireshark Screenshot
这里是 Wireshark
调试日志:
Wireshark
SSL 调试日志
Wireshark version: 3.2.0 (v3.2.0-0-ge0ed4cfa3d72)
GnuTLS version: 3.6.3
Libgcrypt version: 1.8.3
KeyID[20]:
| 94 2b a5 28 69 30 b0 e7 af 90 4c 23 44 5f 2f d2 |.+.(i0....L#D_/.|
| 7a 57 a2 76 |zW.v |
ssl_init private key file C:/Users/user/Downloads/cert - private.pem successfully loaded.
ssl_init port '5061' filename 'C:/Users/user/Downloads/cert - private.pem' password(only for p12 file) ''
association_add tls.port port 5061 handle 0000025C956BD270
dissect_ssl enter frame #19 (already visited)
packet_from_server: is from server - FALSE
conversation = 0000025C90850440, ssl_session = 0000000000000000
record: offset = 0, reported_length_remaining = 256
dissect_ssl3_record: content_type 22 Handshake
dissect_ssl3_handshake iteration 1 type 1 offset 5 length 247 bytes
我做错了什么?
是的,TLS 连接旨在防止 "decode" 像第三方那样。
这是连接的主要目标。
所以你不应该期望解码它。
相反,您可以在 asterisk 上进行 sip 调试。
这个问题似乎比我原先想象的要难。我最终从 Asterisk 捕获了流量,现在有了我需要的东西。