ZRTP(ZとReal-time Transport Protocolから構成)は、Real-time Transport Protocolに基づくVoice over IP (VoIP)電話通話の2つのエンドポイント間で暗号化用の鍵をネゴシエートするための暗号鍵合意プロトコルです。暗号化にはDiffie-Hellman鍵交換とSecure Real-time Transport Protocol (SRTP)を使用します。ZRTPは、 Phil ZimmermannがBryce Wilcox-O'Hearn、Colin Plumb、Jon Callas 、Alan Johnstonの協力を得て開発し、2006年3月5日にZimmermann、Callas、Johnstonによってインターネット技術タスクフォース(IETF)に提出され、2011年4月11日にRFC 6189として公開されました。
ZRTP(「Z」は発明者であるZimmermannにちなみ、「RTP」はReal-time Transport Protocolの略)[ 1 ]は、インターネットドラフトでは「SIP(セッション開始プロトコル)などの他のシグナリングプロトコルを使用して確立されたReal-time Transport Protocol(RTP)メディアストリームにおいて、インバンドでの通話セットアップ中にDiffie-Hellman鍵交換を実行する鍵合意プロトコル」と説明されています。これにより共有秘密が生成され、それを使用してSecure RTP(SRTP)セッションの鍵とソルトが生成されます。ZRTPの特徴の1つは、鍵管理にSIPシグナリングやサーバーに一切依存しないことです。他のVoIPクライアントがZRTPをサポートしている場合、自動検知による 日和見暗号化をサポートします
このプロトコルは、事前の共有秘密を必要とせず、公開鍵インフラストラクチャ(PKI) や証明機関にも依存しません。実際、一時的な Diffie–Hellman キーは各セッションの確立時に生成されます。これにより、信頼できるサードパーティの作成と維持の複雑さを回避できます。
これらのキーは、セッション シークレットの生成に使用されます。このセッション シークレットから、SRTP セッションのセッション キーとパラメータが、以前に共有されたシークレット (存在する場合) とともに派生されます。これにより、2 つのエンドポイント間の最初のセッションに攻撃者が存在しない限り、 中間者 (MiTM) 攻撃に対する保護が提供されます。
ZRTPは、SIP、 H.323、Jingle、分散ハッシュテーブルシステムなど、あらゆるシグナリングプロトコルで使用できます。ZRTPはシグナリング層から独立しており、すべてのキーネゴシエーションはRTPメディアストリームを介して行われます。
ZRTP プロトコル拡張である ZRTP/S は、狭帯域ビットストリーム指向のプロトコルであり、2 つのエンドポイント間のビットストリーム内ですべての主要なネゴシエーションを実行するため、GSM、UMTS、ISDN、PSTN、SATCOM、UHF / VHF無線などのあらゆる種類の従来の電話ネットワークで実行できます。
アラン・ジョンストンは、このプロトコルをZRTPと名付けました。これは、初期のインターネットドラフトではRTPパケットにヘッダー拡張を追加することをベースとしていたため、ZRTPはRTPの亜種とみなされていたためです。その後のドラフトでは、パケット形式が変更され、RTPとの構文上の区別が容易になりました。この変更により、現在ではZRTPは擬似的な頭字語となっています。
Diffie -Hellman鍵交換だけでは、中間者攻撃に対する保護は提供されません。最初のセッション(共有秘密が存在しないとき)に攻撃者が実際に存在しないことを確認するために、Short Authentication String(SAS)方式が使用されます。通信当事者は、両方のエンドポイントに表示される共有値を口頭で相互確認します。値が一致しない場合、中間者攻撃が示唆されます。ZRTPプロトコルに対して理論化されている特定の攻撃は、両当事者の合成音声を作成して偽のSASを読み上げることを含み、「Rich Little攻撃」として知られていますが、この種の攻撃はプロトコルのセキュリティに対する深刻なリスクとは考えられていません。[ 2 ] SASは鍵交換の認証に使用され、これは基本的に2つのDiffie-Hellman値の暗号ハッシュです。SAS値は両方のZRTPエンドポイントにレンダリングされます。認証を実行するために、このSAS値は音声接続を介して通信相手に読み上げられます両端の値が一致しない場合は中間者攻撃が示唆されます。一致する場合、中間者攻撃である可能性は極めて低くなります。DH交換におけるハッシュコミットメントの使用により、攻撃者は攻撃において正しいSASを生成するために1回の推測しか行えなくなります。つまり、SASは非常に短くなる可能性があるということです。例えば、16ビットのSASでは、攻撃者が検出されない可能性は65536回のうち1回しかありません。
ZRTPは、鍵の連続性に基づく中間者攻撃に対する第2層の認証を提供します。これは、ハッシュ化された鍵情報をキャッシュし、次の通話で使用するために保存します。この情報は、次の通話のDH共有秘密鍵と混合され、SSHと同様の鍵の連続性を実現します。中間者が最初の通話に不在の場合、以降の通話から締め出されます。したがって、SASが使用されなくても、中間者が最初の通話に不在であったため、ほとんどの中間者攻撃は阻止されます。
ZRTPは
ZRTPの商用実装としては、RokaComのRokaCom [ 13 ]、PrivateWaveのPrivateWave Professional [ 14 ]、さらに最近ではZimmermann氏が設立したSilent CircleのSilent Phone [ 15 ]などが挙げられます。また、AcrobitsのSoftphoneもあります。[ 16 ] Draytekは、一部のVoIPハードウェアとソフトウェアでZRTPをサポートしています。[ 17 ] [ 18 ]
ZRTPをサポートする無料SIPプロバイダーのリストが公開されています。[ 11 ]