WebRTC 浏览器端如何抓取和解密 SRTP
WebRTC 默认使用加密协议 SRTP 传输数据,抓包时看不到明文,不便于排查问题。
一种方法是下载开发版浏览器关闭加密选项,需要通讯的对端支持;
另一种方法是打开浏览器的 debug 选项,dump SRTP 解密后的 RTP 数据,下面先介绍这种方法。
1. dump RTP 明文
以 Windows 为例,关闭所有浏览器实例后,cmd下使用下面的选项打开浏览器,浏览器路径换成你的。
"C:\Program Files\Google\Chrome\Application\chrome.exe" --enable-logging --v=1 --force-fieldtrials=WebRTC-Debugging-RtpDump/Enabled/
-
其他平台打开日志的方法类似,详见 https://support.google.com/chrome/a/answer/6271282#zippy=%2Cwindows%2Cmac%2Clinux (移动平台待补充),Windows上的日志路径是
%LOCALAPPDATA%\Google\Chrome\User Data
,也可以使用环境变量CHROME_LOG_FILE
或选项例如--log-file="C:\\tmp\\testchrome.log"
指定。Windows上cmd和PowerShell语法不同,上面的命令是在cmd下运行的。 -
打开试验性选项RTP dump (来源 https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/g3doc/field-trials.md ,浏览器所有选项文档 https://peter.sh/experiments/chromium-command-line-switches/ )。