そもそもRTPとは?
SRTPを理解する前段としてRTPを理解しておきましょう。TCPではなくUDPの上で存在しているリアルタイム性を追求したデータ転送プロトコルです。
RTPパケットのデータ転送を補助する役割を果たしています。
TCPではダメなの?
信頼性が仇になる。
では、UDPではダメなの?
UDPだけでは不十分です。UDPだとポート番号による通信識別と、CRC(Cyclic Redundancy Check)によるデータ破損チェックくらいしかない。リアルタイム通信のためにはもっと様々な情報が必要になる。
仕組み
RTPのヘッダにはデータの順序番号、送信時刻(タイムスタンプ)などが用意されており、受信側はこれをみてデータを時系列に表示、再生することができる。アプリケーション層で作られます。その後、トランスポート層、インターネット層などのTCP/IPの階層でどんどんラップされていきます。
歴史
年 | 説明 |
---|---|
1996年 | RFC1889として勧告された。 |
2003年 | 暗号化などの規定を追加したRFC3550に置き換えられた。 |
RFCとは?
「Request for Comments」の略です。IETF(Internet Engineering Task Force)によって定められるインターネットに関わる文書群です。RTPはRFC文書の中の3550によって定められています。
ユースケース
- IP電話
- 動画ストリーミング(RTSP)
SRTP(Secure Real-time Transport Protocol)とは?
トランスポート層とアプリケーション層の間にあるRTPの代替プロトコル。IETF RFC3711(2004年3月発行)にて規定されています。
メリット
RTPや、RTCPメッセージに対して暗号化、メッセージ認証、リプレイ攻撃に対する保護などをする。
メッセージ認証
受け取ったメッセージに改変が加えられてないことを見分ける機能でデフォルトで「HMAC-SHA1」というハッシュ関数が指定されています。
暗号化方法
デフォルトでAES(Advanced Encryption Standard)のCounter Modeが指定されている。
リプレイ攻撃対策
RTP内のシーケンス番号、SRTPに固有のインデックス番号を認証に含めます。
リプレイ攻撃とは?
ネットワークに流れるデータを盗聴してコピーし認証サーバーへ送ることでなりすます攻撃
この記事へのコメントはありません。