跳到主要內容

SRTP 深入解析:VoIP 語音加密、訊息鑑別與重放保護的端對端安全實踐

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,才能真正實現端對端的完整語音通訊保護,避免竊聽與中間人攻擊。

📚 參考文獻

  1. RFC 3711 – The Secure Real-time Transport Protocol (SRTP),IETF 官方規範
  2. RFC 5764 – DTLS Extension to Establish Keys for SRTP,IETF 官方規範
  3. RFC 8827 – WebRTC Security Architecture,IETF 官方規範

⚠️ 本文內容基於撰寫時的最新資訊,實際應用時請參考官方文件的最新版本。

留言