WebRTC: Difference between revisions
(Add Key Question about single UDP port STUN-based WebRTC capture) |
(Rewrite: konsolidace, lepší struktura, tabulka pro srovnání metod, warning/note boxy, See Also sekce) |
||
| Line 1: | Line 1: | ||
{{DISPLAYTITLE:Monitoring Encrypted WebRTC (WSS/DTLS-SRTP)}} | {{DISPLAYTITLE:Monitoring Encrypted WebRTC (WSS/DTLS-SRTP)}} | ||
'''This guide | '''This guide covers monitoring encrypted WebRTC traffic with VoIPmonitor, including SIP over Secure WebSocket (WSS) and DTLS-SRTP media encryption.''' | ||
== Overview == | == Overview == | ||
VoIPmonitor can | WebRTC requires encrypted transport for both signaling and media: | ||
* '''WSS (Secure WebSocket):''' SIP signaling encrypted with TLS | |||
* '''DTLS-SRTP:''' Media (RTP) encrypted via DTLS key negotiation | |||
VoIPmonitor can decrypt both layers using either a private TLS key or the SSL Key Logger method. | |||
<kroki lang="mermaid"> | <kroki lang="mermaid"> | ||
%%{init: {'flowchart': {'nodeSpacing': 15, 'rankSpacing': 30}}}%% | |||
flowchart LR | flowchart LR | ||
subgraph Browser["WebRTC Client"] | subgraph Browser["WebRTC Client"] | ||
WC[Web Browser] | WC[Web Browser] | ||
end | end | ||
subgraph PBX["Asterisk PBX"] | subgraph PBX["Asterisk PBX"] | ||
WSS[WSS :8089] | WSS[WSS :8089] | ||
SRTP[DTLS-SRTP] | SRTP[DTLS-SRTP] | ||
end | end | ||
subgraph VM["VoIPmonitor"] | subgraph VM["VoIPmonitor"] | ||
CAP[ | CAP[Capture] | ||
DEC[ | DEC[Decrypt] | ||
CDR[CDR | CDR[CDR] | ||
end | end | ||
WC -->|"SIP/WSS"| WSS | |||
WC -->|"SIP | WC -->|"Media"| SRTP | ||
WC -->|"Media | WSS -.->|"mirror"| CAP | ||
SRTP -.->|"mirror"| CAP | |||
WSS -.->|" | CAP --> DEC --> CDR | ||
SRTP -.->|" | |||
CAP --> | |||
</kroki> | </kroki> | ||
== | == Prerequisites: Configure sipport == | ||
= | {{Warning|1=VoIPmonitor only monitors port 5060 by default. You '''must''' add WebRTC ports to <code>sipport</code> or traffic will be ignored.}} | ||
Edit <code>/etc/voipmonitor.conf</code>: | Edit <code>/etc/voipmonitor.conf</code>: | ||
<syntaxhighlight lang="ini"> | <syntaxhighlight lang="ini"> | ||
# Add | # Add WebRTC ports (WS=8088, WSS=8089) | ||
sipport = 5060,8088,8089 | sipport = 5060,8088,8089 | ||
# Or use port ranges | # Or use port ranges | ||
sipport = 5060,8080-8090 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Restart after changes: <code>systemctl restart voipmonitor</code> | |||
In | {{Note|1=In probe/server architecture, configure <code>sipport</code> on '''both''' probe and server.}} | ||
== Decryption Methods == | |||
Choose based on your environment: | |||
= | {| class="wikitable" | ||
|- | |||
! Method !! When to Use !! Limitations | |||
|- | |||
| '''A: Private Key''' || Development/testing, RSA ciphers || Fails with TLS 1.3/PFS (DHE/ECDHE) | |||
|- | |||
| '''B: SSL Key Logger''' || Production, TLS 1.3, PFS, distributed setups || Requires library injection on PBX | |||
|} | |||
=== Method A: Private Key === | |||
<syntaxhighlight lang="ini"> | <syntaxhighlight lang="ini"> | ||
# /etc/voipmonitor.conf | # /etc/voipmonitor.conf | ||
ssl = yes | ssl = yes | ||
ssl_ipport = 192.168.2.107:8089 /etc/asterisk/keys/asterisk.pem | ssl_ipport = 192.168.2.107:8089 /etc/asterisk/keys/asterisk.pem | ||
# Or use CIDR for multiple hosts | |||
ssl_ipport = 192.168.2.0/24:8089 /path/to/key.pem | |||
ssl_ipport = 192.168.2.0/24:8089 /path/to/ | |||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Method B: SSL Key Logger === | |||
Works with ALL cipher suites including TLS 1.3 and PFS. | |||
'''1. Compile the library:''' | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git clone https://github.com/voipmonitor/sniffer.git /usr/local/src/voipmonitor-git | |||
git clone https://github.com/voipmonitor/sniffer.git voipmonitor-git | cd /usr/local/src/voipmonitor-git/tools/ssl_keylogger/ | ||
cd voipmonitor-git/tools/ssl_keylogger/ | |||
make | make | ||
</syntaxhighlight> | </syntaxhighlight> | ||
'''2. Configure PBX to send session keys:''' | |||
For Asterisk ( | For Asterisk (create <code>/etc/default/asterisk-ssl</code>): | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
SSLKEYLOG_UDP='127.0.0.1:1234' | SSLKEYLOG_UDP='127.0.0.1:1234' | ||
LD_PRELOAD='/usr/local/src/voipmonitor-git/tools/ssl_keylogger/sslkeylog.so' | LD_PRELOAD='/usr/local/src/voipmonitor-git/tools/ssl_keylogger/sslkeylog.so' | ||
</syntaxhighlight> | </syntaxhighlight> | ||
For FreeSWITCH | For FreeSWITCH, add to systemd service: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
ExecStart=env SSLKEYLOG_UDP='127.0.0.1:1234' LD_PRELOAD='/ | ExecStart=env SSLKEYLOG_UDP='127.0.0.1:1234' LD_PRELOAD='/path/to/sslkeylog.so' /usr/bin/freeswitch ... | ||
</syntaxhighlight> | </syntaxhighlight> | ||
'''3. Configure VoIPmonitor:''' | |||
<syntaxhighlight lang="ini"> | <syntaxhighlight lang="ini"> | ||
# /etc/voipmonitor.conf | # /etc/voipmonitor.conf | ||
ssl = yes | ssl = yes | ||
ssl_ipport = 192.168.2.0/24:8089 # NO key file path! | |||
ssl_ipport = 192.168.2.0/24:8089 | |||
# | |||
ssl_sessionkey_udp = yes | ssl_sessionkey_udp = yes | ||
ssl_sessionkey_udp_port = 1234 | ssl_sessionkey_udp_port = 1234 | ||
# Add loopback if sending keys locally | |||
interface = eth0,lo | |||
</syntaxhighlight> | </syntaxhighlight> | ||
{{Tip|1=For distributed mode (<code>packetbuffer_sender=yes</code>), send keys to the '''central server IP''', not localhost.}} | |||
For complete | For complete SSL Key Logger documentation, see [[Tls#Method_2:_SSL_Key_Logger|TLS Decryption]]. | ||
== | == Asterisk Configuration == | ||
=== Step 1: Generate TLS Certificates === | === Step 1: Generate TLS Certificates === | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
mkdir -p /etc/asterisk/keys && cd /etc/asterisk/keys | |||
mkdir -p /etc/asterisk/keys | |||
cd /etc/asterisk/keys | |||
# | # Create CA | ||
openssl genrsa -des3 -out ca.key 4096 | openssl genrsa -des3 -out ca.key 4096 | ||
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt | openssl req -new -x509 -days 3650 -key ca.key -out ca.crt | ||
# | # Create server certificate | ||
openssl genrsa -out key.pem 2048 | openssl genrsa -out key.pem 2048 | ||
openssl req -new -key key.pem -out server.csr | |||
openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out cert.crt | |||
# | # Combine for Asterisk | ||
cat key.pem cert.crt > asterisk.pem | |||
cat key.pem | |||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Step 2: Configure | === Step 2: Configure HTTP Server === | ||
<code>/etc/asterisk/http.conf</code>: | |||
<syntaxhighlight lang="ini"> | <syntaxhighlight lang="ini"> | ||
[general] | [general] | ||
enabled = yes | enabled = yes | ||
bindaddr = 0.0.0.0 | bindaddr = 0.0.0.0 | ||
bindport = 8088 ; | bindport = 8088 ; WS (unencrypted) | ||
tlsenable = yes | tlsenable = yes | ||
tlsbindaddr = 0.0.0.0:8089 ; | tlsbindaddr = 0.0.0.0:8089 ; WSS (encrypted) | ||
tlscertfile = /etc/asterisk/keys/asterisk.pem | tlscertfile = /etc/asterisk/keys/asterisk.pem | ||
tlscipher = AES128-SHA | tlscipher = AES128-SHA | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Step 3: Configure RTP | === Step 3: Configure RTP === | ||
<code>/etc/asterisk/rtp.conf</code>: | |||
<syntaxhighlight lang="ini"> | <syntaxhighlight lang="ini"> | ||
[general] | [general] | ||
icesupport = yes | icesupport = yes | ||
; stunaddr = stun.l.google.com:19302 | ; stunaddr = stun.l.google.com:19302 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Step 4: Configure PJSIP | === Step 4: Configure PJSIP === | ||
Disable old chan_sip in <code>/etc/asterisk/modules.conf</code>: | |||
<syntaxhighlight lang="ini"> | <syntaxhighlight lang="ini"> | ||
noload => chan_sip.so | noload => chan_sip.so | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<code>/etc/asterisk/pjsip.conf</code>: | |||
<syntaxhighlight lang="ini"> | <syntaxhighlight lang="ini"> | ||
[global] | [global] | ||
type = global | type = global | ||
realm = 192.168.2.107 | |||
realm = 192.168.2.107 | |||
; --- Transports --- | ; --- Transports --- | ||
| Line 274: | Line 176: | ||
protocol = udp | protocol = udp | ||
bind = 0.0.0.0:5060 | bind = 0.0.0.0:5060 | ||
[transport-wss] | [transport-wss] | ||
| Line 285: | Line 182: | ||
bind = 0.0.0.0:8089 | bind = 0.0.0.0:8089 | ||
; --- WebRTC | ; --- WebRTC Template --- | ||
[webrtc-template](!) | |||
[webrtc | |||
type = endpoint | type = endpoint | ||
disallow = all | disallow = all | ||
allow = opus,ulaw,alaw | allow = opus,ulaw,alaw | ||
context = internal-webrtc | context = internal-webrtc | ||
media_encryption = dtls | media_encryption = dtls | ||
dtls_verify = fingerprint | dtls_verify = fingerprint | ||
| Line 303: | Line 195: | ||
use_avpf = yes | use_avpf = yes | ||
ice_support = yes | ice_support = yes | ||
rtcp_mux = yes | rtcp_mux = yes | ||
; --- | ; --- User 101 --- | ||
[101](webrtc | [101](webrtc-template) | ||
[ | auth = 101-auth | ||
aors = 101-aor | |||
[101-auth] | |||
type = auth | type = auth | ||
auth_type = userpass | auth_type = userpass | ||
username = 101 | username = 101 | ||
password = | password = secret101 | ||
[ | [101-aor] | ||
type = aor | type = aor | ||
max_contacts = 1 | max_contacts = 1 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Step 5: | === Step 5: Dialplan === | ||
<code>/etc/asterisk/extensions.conf</code>: | |||
<syntaxhighlight lang="ini"> | <syntaxhighlight lang="ini"> | ||
[internal-webrtc] | [internal-webrtc] | ||
exten => | exten => _1XX,1,Dial(PJSIP/${EXTEN}) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== | == WebRTC Client Setup (sipML5) == | ||
Using [https://www.doubango.org/sipml5/call.htm sipML5]: | |||
'''Basic Settings:''' | |||
* Display Name: <code>101</code> | |||
* Private Identity: <code>101</code> | |||
* Public Identity: <code>sip:101@192.168.2.107</code> | |||
* Password: <code>secret101</code> | |||
* Realm: <code>192.168.2.107</code> | |||
'''Expert Mode:''' | |||
* WebSocket Server URL: <code>wss://192.168.2.107:8089/ws</code> | |||
* Enable RTCWeb Breaker: Checked | |||
* Disable 3GPP Early IMS: Checked | |||
{{Warning|1=Before login, open <code><nowiki>https://192.168.2.107:8089/ws</nowiki></code> in browser and accept the self-signed certificate.}} | |||
== | == Third-Party WebRTC Monitoring (--rtp-no-sig) == | ||
For monitoring WebRTC where you have no access to signaling (e.g., external providers). | |||
=== | === When to Use === | ||
* Third-party WebRTC service without signaling access | |||
* Only media (RTP) stream is accessible | |||
* | * Need QoS metrics without decryption | ||
* | |||
=== Configuration === | === Configuration === | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
# | # Start with --rtp-no-sig flag | ||
voipmonitor --rtp-no-sig --interface eth0 | voipmonitor --rtp-no-sig --interface eth0 | ||
# | # Or add to systemd service ExecStart line | ||
</syntaxhighlight> | </syntaxhighlight> | ||
'''Behavior:''' | |||
* CDRs created from RTP packets using SSRC identifiers | |||
* QoS metrics (MOS, jitter, packet loss) collected without decryption | |||
* Caller ID and call direction unavailable | |||
=== With Audio Replay === | |||
Combine <code>--rtp-no-sig</code> with SSL Key Logger for full monitoring: | |||
<syntaxhighlight lang="ini"> | |||
# On WebRTC server | |||
<syntaxhighlight lang=" | |||
# On | |||
SSLKEYLOG_UDP='10.0.0.10:1234' | SSLKEYLOG_UDP='10.0.0.10:1234' | ||
LD_PRELOAD='/ | LD_PRELOAD='/path/to/sslkeylog.so' | ||
# On | # On VoIPmonitor sensor | ||
ssl = yes | |||
ssl_sessionkey_udp = yes | ssl_sessionkey_udp = yes | ||
ssl_sessionkey_udp_port = 1234 | ssl_sessionkey_udp_port = 1234 | ||
</syntaxhighlight> | |||
== See Also == | |||
* [[Tls]] - Complete TLS/SRTP decryption guide | |||
* [[Sniffer_configuration]] - Full configuration reference | |||
* [[Sniffing_modes]] - Deployment topologies | |||
== AI Summary for RAG == | == AI Summary for RAG == | ||
'''Keywords:''' webrtc, wss, secure websocket, dtls, srtp, encrypted, tls, ssl, asterisk, pjsip, freeswitch, decryption, ssl_ipport, sslkeylog, ld_preload, ssl_sessionkey_udp, sipport, rtp-no-sig | '''Summary:''' Guide for monitoring encrypted WebRTC (WSS/DTLS-SRTP) with VoIPmonitor. CRITICAL: Add WebRTC ports to <code>sipport</code> (e.g., <code>sipport = 5060,8088,8089</code>) before configuring decryption. Two methods: Private Key (<code>ssl_ipport = IP:PORT /path/key.pem</code>) fails with TLS 1.3/PFS; SSL Key Logger works with all ciphers via <code>LD_PRELOAD</code> injection and <code>ssl_sessionkey_udp=yes</code>. For distributed mode, send keys to central server IP. Includes Asterisk WSS/PJSIP setup. Use <code>--rtp-no-sig</code> for third-party WebRTC without signaling access. | ||
'''Keywords:''' webrtc, wss, secure websocket, dtls, srtp, encrypted, tls, ssl, asterisk, pjsip, freeswitch, decryption, ssl_ipport, sslkeylog, ld_preload, ssl_sessionkey_udp, sipport, rtp-no-sig, pfs, tls 1.3, distributed mode, 8088, 8089 | |||
'''Key Questions:''' | '''Key Questions:''' | ||
* How do I monitor encrypted WebRTC calls with VoIPmonitor? | * How do I monitor encrypted WebRTC calls with VoIPmonitor? | ||
* Why is VoIPmonitor not detecting WebRTC | * Why is VoIPmonitor not detecting WebRTC traffic? | ||
* How do I configure sipport for WebRTC ports 8088/8089? | * How do I configure sipport for WebRTC ports 8088/8089? | ||
* What is the SSL Key Logger | * What is the difference between Private Key and SSL Key Logger decryption methods? | ||
* How do I configure | * How do I configure Asterisk for secure WebRTC? | ||
* How does --rtp-no-sig work for third-party WebRTC monitoring? | |||
* How does | |||
* How do I decrypt DTLS-SRTP for audio replay? | * How do I decrypt DTLS-SRTP for audio replay? | ||
Latest revision as of 16:50, 8 January 2026
This guide covers monitoring encrypted WebRTC traffic with VoIPmonitor, including SIP over Secure WebSocket (WSS) and DTLS-SRTP media encryption.
Overview
WebRTC requires encrypted transport for both signaling and media:
- WSS (Secure WebSocket): SIP signaling encrypted with TLS
- DTLS-SRTP: Media (RTP) encrypted via DTLS key negotiation
VoIPmonitor can decrypt both layers using either a private TLS key or the SSL Key Logger method.
Prerequisites: Configure sipport
⚠️ Warning: VoIPmonitor only monitors port 5060 by default. You must add WebRTC ports to sipport or traffic will be ignored.
Edit /etc/voipmonitor.conf:
# Add WebRTC ports (WS=8088, WSS=8089)
sipport = 5060,8088,8089
# Or use port ranges
sipport = 5060,8080-8090
Restart after changes: systemctl restart voipmonitor
ℹ️ Note: In probe/server architecture, configure sipport on both probe and server.
Decryption Methods
Choose based on your environment:
| Method | When to Use | Limitations |
|---|---|---|
| A: Private Key | Development/testing, RSA ciphers | Fails with TLS 1.3/PFS (DHE/ECDHE) |
| B: SSL Key Logger | Production, TLS 1.3, PFS, distributed setups | Requires library injection on PBX |
Method A: Private Key
# /etc/voipmonitor.conf
ssl = yes
ssl_ipport = 192.168.2.107:8089 /etc/asterisk/keys/asterisk.pem
# Or use CIDR for multiple hosts
ssl_ipport = 192.168.2.0/24:8089 /path/to/key.pem
Method B: SSL Key Logger
Works with ALL cipher suites including TLS 1.3 and PFS.
1. Compile the library:
git clone https://github.com/voipmonitor/sniffer.git /usr/local/src/voipmonitor-git
cd /usr/local/src/voipmonitor-git/tools/ssl_keylogger/
make
2. Configure PBX to send session keys:
For Asterisk (create /etc/default/asterisk-ssl):
SSLKEYLOG_UDP='127.0.0.1:1234'
LD_PRELOAD='/usr/local/src/voipmonitor-git/tools/ssl_keylogger/sslkeylog.so'
For FreeSWITCH, add to systemd service:
ExecStart=env SSLKEYLOG_UDP='127.0.0.1:1234' LD_PRELOAD='/path/to/sslkeylog.so' /usr/bin/freeswitch ...
3. Configure VoIPmonitor:
# /etc/voipmonitor.conf
ssl = yes
ssl_ipport = 192.168.2.0/24:8089 # NO key file path!
ssl_sessionkey_udp = yes
ssl_sessionkey_udp_port = 1234
# Add loopback if sending keys locally
interface = eth0,lo
💡 Tip: For distributed mode (packetbuffer_sender=yes), send keys to the central server IP, not localhost.
For complete SSL Key Logger documentation, see TLS Decryption.
Asterisk Configuration
Step 1: Generate TLS Certificates
mkdir -p /etc/asterisk/keys && cd /etc/asterisk/keys
# Create CA
openssl genrsa -des3 -out ca.key 4096
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
# Create server certificate
openssl genrsa -out key.pem 2048
openssl req -new -key key.pem -out server.csr
openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out cert.crt
# Combine for Asterisk
cat key.pem cert.crt > asterisk.pem
Step 2: Configure HTTP Server
/etc/asterisk/http.conf:
[general]
enabled = yes
bindaddr = 0.0.0.0
bindport = 8088 ; WS (unencrypted)
tlsenable = yes
tlsbindaddr = 0.0.0.0:8089 ; WSS (encrypted)
tlscertfile = /etc/asterisk/keys/asterisk.pem
tlscipher = AES128-SHA
Step 3: Configure RTP
/etc/asterisk/rtp.conf:
[general]
icesupport = yes
; stunaddr = stun.l.google.com:19302
Step 4: Configure PJSIP
Disable old chan_sip in /etc/asterisk/modules.conf:
noload => chan_sip.so
/etc/asterisk/pjsip.conf:
[global]
type = global
realm = 192.168.2.107
; --- Transports ---
[transport-udp]
type = transport
protocol = udp
bind = 0.0.0.0:5060
[transport-wss]
type = transport
protocol = wss
bind = 0.0.0.0:8089
; --- WebRTC Template ---
[webrtc-template](!)
type = endpoint
disallow = all
allow = opus,ulaw,alaw
context = internal-webrtc
media_encryption = dtls
dtls_verify = fingerprint
dtls_cert_file = /etc/asterisk/keys/asterisk.pem
dtls_ca_file = /etc/asterisk/keys/ca.crt
dtls_setup = actpass
use_avpf = yes
ice_support = yes
rtcp_mux = yes
; --- User 101 ---
[101](webrtc-template)
auth = 101-auth
aors = 101-aor
[101-auth]
type = auth
auth_type = userpass
username = 101
password = secret101
[101-aor]
type = aor
max_contacts = 1
Step 5: Dialplan
/etc/asterisk/extensions.conf:
[internal-webrtc]
exten => _1XX,1,Dial(PJSIP/${EXTEN})
WebRTC Client Setup (sipML5)
Using sipML5:
Basic Settings:
- Display Name:
101 - Private Identity:
101 - Public Identity:
sip:101@192.168.2.107 - Password:
secret101 - Realm:
192.168.2.107
Expert Mode:
- WebSocket Server URL:
wss://192.168.2.107:8089/ws - Enable RTCWeb Breaker: Checked
- Disable 3GPP Early IMS: Checked
⚠️ Warning: Before login, open https://192.168.2.107:8089/ws in browser and accept the self-signed certificate.
Third-Party WebRTC Monitoring (--rtp-no-sig)
For monitoring WebRTC where you have no access to signaling (e.g., external providers).
When to Use
- Third-party WebRTC service without signaling access
- Only media (RTP) stream is accessible
- Need QoS metrics without decryption
Configuration
# Start with --rtp-no-sig flag
voipmonitor --rtp-no-sig --interface eth0
# Or add to systemd service ExecStart line
Behavior:
- CDRs created from RTP packets using SSRC identifiers
- QoS metrics (MOS, jitter, packet loss) collected without decryption
- Caller ID and call direction unavailable
With Audio Replay
Combine --rtp-no-sig with SSL Key Logger for full monitoring:
# On WebRTC server
SSLKEYLOG_UDP='10.0.0.10:1234'
LD_PRELOAD='/path/to/sslkeylog.so'
# On VoIPmonitor sensor
ssl = yes
ssl_sessionkey_udp = yes
ssl_sessionkey_udp_port = 1234
See Also
- Tls - Complete TLS/SRTP decryption guide
- Sniffer_configuration - Full configuration reference
- Sniffing_modes - Deployment topologies
AI Summary for RAG
Summary: Guide for monitoring encrypted WebRTC (WSS/DTLS-SRTP) with VoIPmonitor. CRITICAL: Add WebRTC ports to sipport (e.g., sipport = 5060,8088,8089) before configuring decryption. Two methods: Private Key (ssl_ipport = IP:PORT /path/key.pem) fails with TLS 1.3/PFS; SSL Key Logger works with all ciphers via LD_PRELOAD injection and ssl_sessionkey_udp=yes. For distributed mode, send keys to central server IP. Includes Asterisk WSS/PJSIP setup. Use --rtp-no-sig for third-party WebRTC without signaling access.
Keywords: webrtc, wss, secure websocket, dtls, srtp, encrypted, tls, ssl, asterisk, pjsip, freeswitch, decryption, ssl_ipport, sslkeylog, ld_preload, ssl_sessionkey_udp, sipport, rtp-no-sig, pfs, tls 1.3, distributed mode, 8088, 8089
Key Questions:
- How do I monitor encrypted WebRTC calls with VoIPmonitor?
- Why is VoIPmonitor not detecting WebRTC traffic?
- How do I configure sipport for WebRTC ports 8088/8089?
- What is the difference between Private Key and SSL Key Logger decryption methods?
- How do I configure Asterisk for secure WebRTC?
- How does --rtp-no-sig work for third-party WebRTC monitoring?
- How do I decrypt DTLS-SRTP for audio replay?