SRTP 深入解析:VoIP 語音加密與端對端安全實踐
VoIP 通話若未加密,封包極易被中間人擷取竊聽。SRTP(Secure Real-time Transport Protocol)作為 RTP 的安全延伸,提供加密、鑑別與重放保護,是保障語音通訊安全的核心協定。
SRTP 的三大安全機制
SRTP 定義於 RFC 3711,在 RTP 標頭之外附加安全功能。機密性方面,預設採用 AES-128 搭配 Counter Mode(AES-CM)加密語音 Payload,確保內容不被明文竊取。訊息鑑別方面,使用 HMAC-SHA1 對封包計算 MAC,防止封包被篡改或偽造。重放保護方面,透過滑動視窗(Replay Window)追蹤封包序號,丟棄重複或過期封包,有效抵禦重放攻擊。
金鑰管理本身不在 SRTP 範疇內,需仰賴 DTLS-SRTP(RFC 5764)或 MIKEY 協定於通話建立前完成金鑰交換,SRTP 僅負責後續的加密傳輸。
與 SIPS 搭配的端對端安全架構
SRTP 僅保護媒體封包,訊號層(Signaling)的安全需靠 SIPS(SIP over TLS)覆蓋。完整的 VoIP 安全架構須同時部署兩者:SIPS 保護 SDP 交涉內容(包含 SRTP 金鑰材料),SRTP 保護實際語音串流。若僅用 SRTP 而忽略 SIPS,攻擊者仍可在訊號層竊取金鑰,使加密形同虛設。
在 WebRTC 環境中,DTLS-SRTP 為強制標準(RFC 8827),瀏覽器原生支援,無需額外設定,是目前最普及的 SRTP 金鑰交換方式。
💡 重點整理
- 加密演算法:預設 AES-128-CM,保護語音 Payload 機密性。
- 訊息鑑別:HMAC-SHA1 MAC 附於封包尾端,防止篡改與偽造。
- 重放保護:滑動視窗機制追蹤序號,拒絕重複封包。
- 完整安全:必須搭配 SIPS 或 DTLS,訊號與媒體層缺一不可。
SRTP 是 VoIP 媒體安全的基石,但它只是安全架構的一半。唯有結合 SIPS 或 DTLS-SRTP,才能真正實現端對端的完整語音通訊保護,避免竊聽與中間人攻擊。
📚 參考文獻
- RFC 3711 – The Secure Real-time Transport Protocol (SRTP),IETF 官方規範
- RFC 5764 – DTLS Extension to Establish Keys for SRTP,IETF 官方規範
- RFC 8827 – WebRTC Security Architecture,IETF 官方規範
⚠️ 本文內容基於撰寫時的最新資訊,實際應用時請參考官方文件的最新版本。
留言
張貼留言