티스토리 뷰
SRTP ?
실시간 전송 프로토콜 (Real-time Transport Protocol)로 네트워크 상에서 오디오와 비디오를 전달 하기 위한 통신 프로토콜이다. 전화 WebRTC등 화상통화와 미디어 스트리밍 시스템등에서 주로 사용한다.
SRTP (Secure Real-time Transport Protocol)는 RTP에 보안기술을 접목하여 실시간으로 전송되는 데이터를 암호화하여 송,수신하는 프로토콜을 의미한다. SRTP는 기본적으로 AES 알고리즘을 사용하고 아래와 같이 구성되어있다.
V = 2 | P | X | CC | M | PT | Sequence Number |
Time Stamp | ||||||
Synchronization Source Identifier (SSRC) | ||||||
Contributing Source Identifier (CSRC) | ||||||
Profile -Specific Information (OPTIONAL) | Length (OPTIONAL) | |||||
RTP Header Extension (OPTIONAL) | ||||||
Payload | ||||||
Payload | RTP Padding | RTP Pad Count | ||||
SRTP MIKI (OPTIONAL) | ||||||
Authentication Tag (RECOMMENDED) |
표1.1
V [ Version (2bit) ]
- RTP의 버전을 의미.
P [ Padding (1bit) ]
-패딩 비트가 세팅될 경우 하나 이상의 패딩 바이트가 포함된다. 그리고 페이로드 끝부분에 패딩 바이트를 추가하며 고정 블록 크기의 암호와 알고리즘이나 하위 계층에서 RTP 패킷 운반에 사용할 수 있다. 32bit 단위로 패킷을 맞추기 위해 사용한다. 패딩의 마지막 바이트는 패딩으로 추가한 바이트 수를 의미하는데 해당 길이만큼 바이트를 무시할 수 있다.
X [ Extension (1bit) ]
- 확장 비트가 세팅되면 (rfc-1889)에 정의되어 있는 확장 헤더가 고정 헤더 뒤에 더 붙는다.
CC [CSRC Count (4bit) ]
-고정 헤더 뒤에 추가되는 CSRC Identifier의 개수를 의미
M [ Marker [1bit] ]
-마커는 프로파일에 해석 방법이 정의되어 있고 페이로드 타입에 의해 사용법이 결정된다. 주로 패킷 스트림에서 프레임 경계와 같은 중요한 이벤트를 표시할 때에 사용한다.
PT [ Payload Type ( 7bit ) ]
PT | Name | Type | Clock rate (Hz) | Audio channels | References |
0 | PCMU | Audio | 8000 | 1 | RFC 3551 |
1 | 1016 | Audio | 8000 | 1 | RFC 3551 |
2 | G721 | Audio | 8000 | 1 | RFC 3551 |
3 | GSM | Audio | 8000 | 1 | RFC 3551 |
4 | G723 | Audio | 8000 | 1 | |
5 | DVI4 | Audio | 8000 | 1 | RFC 3551 |
6 | DVI4 | Audio | 16000 | 1 | RFC 3551 |
7 | LPC | Audio | 8000 | 1 | RFC 3551 |
8 | PCMA | Audio | 8000 | 1 | RFC 3551 |
9 | G722 | Audio | 8000 | 1 | RFC 3551 |
10 | L16 | Audio | 44100 | 2 | RFC 3551 |
11 | L16 | Audio | 44100 | 1 | RFC 3551 |
12 | QCELP | Audio | 8000 | 1 | |
13 | CN | Audio | 8000 | 1 | RFC 3389 |
14 | MPA | Audio | 90000 | RFC 2250, RFC 3551 | |
15 | G728 | Audio | 8000 | 1 | RFC 3551 |
16 | DVI4 | Audio | 11025 | 1 | |
17 | DVI4 | Audio | 22050 | 1 | |
18 | G729 | Audio | 8000 | 1 | |
19 | reserved | Audio | |||
20-24 | |||||
25 | CellB | Video | 90000 | RFC 2029 | |
26 | JPEG | Video | 90000 | RFC 2435 | |
27 | |||||
28 | nv | Video | 90000 | RFC 3551 | |
29-30 | |||||
31 | H261 | Video | 90000 | RFC 2032 | |
32 | MPV | Video | 90000 | RFC 2250 | |
33 | MP2T | Audio/Video | 90000 | RFC 2250 | |
34 | H263 | Video | 90000 | ||
35-71 | |||||
72-76 | reserved | RFC 3550 | |||
77-95 | |||||
96-127 | dynamic | RFC 3551 | |||
dynamic | GSM-HR | Audio | 8000 | 1 | |
dynamic | GSM-EFR | Audio | 8000 | 1 | |
dynamic | L8 | Audio | variable | variable | |
dynamic | RED | Audio | |||
dynamic | VDVI | Audio | variable | 1 | |
dynamic | BT656 | Video | 90000 | ||
dynamic | H263-1998 | Video | 90000 | ||
dynamic | MP1S | Video | 90000 | ||
dynamic | MP2P | Video | 90000 | ||
dynamic | BMPEG | Video | 90000 |
SRTP MKI
SDP에 설정된 마스터키가 다수일 경우 사용되는 마스터 인덱스로 표 1.1에 표시된 것처럼 옵션항목이다
Authentication Tag
SRTP 패킷 인증 헤더이며 SDP의 a필드에 표시된다. SRTP의 무경설을 보장하기 위해 존재하고, SRTP의 헤더부터 암호화된 Payload까지 무결성을 체크하며 해시 알고리즘이 사용된다.
SRTP MIKI와 Authentication Tag 항목이 추가되었고 PayLoad는 암호화되어있다. 따라서 Payload의 길이 계산 방식이 다르다.