보안 실시간 전송 프로토콜

Secure Real-time Transport Protocol

Secure Real-time Transport Protocol(SRTP)은 Real-time Transport Protocol(RTP) 프로파일입니다.유니캐스트멀티캐스트애플리케이션 양쪽에서 RTP 데이터에 대한 암호화, 메시지 인증 및 무결성 재생 공격 보호를 제공하기 위한 것입니다.Cisco와 Ericson소규모 인터넷 프로토콜암호화 전문가 팀이 개발했습니다.2004년 3월에 IETF에 의해 최초로 발행되었습니다. RFC3711.

RTP에는 RTP 세션을 제어하기 위해 사용되는RTP Control Protocol(RTCP)이 수반되기 때문에 SRTP에는 Secure RTCP(SRTCP)라고 하는 자매 프로토콜이 있습니다.이 프로토콜은 RTCP에서 RTP에 제공되는 것과 동일한 기능을 SRTP에 안전하게 제공합니다.

SRTP 또는 SRTCP 의 이용은, RTP 또는 RTCP 애플리케이션에서는 옵션입니다.단, SRTP 또는 SRTCP 가 사용되고 있는 경우에서도, 제공되는 기능(암호화나 인증등)은 모두 옵션이며, 개별적으로이네이블 또는 디세이블이 가능합니다.유일한 예외는 SRTCP를 사용할 때 필수적인 메시지 인증 기능입니다.

데이터 흐름 암호화

SRTP 및 SRTCP는 기본 암호로 Advanced Encryption Standard(AES)를 사용합니다.AES 블록암호를 스트림암호로서 사용할 수 있도록 하기 위해서, 다음의 2개의 암호 모드가 정의되어 있습니다.

세그먼트 정수 카운터 모드
일반적인 카운터 모드. 임의의 블록에 랜덤으로 액세스 할 수 있습니다.이것은, 신뢰할 수 없는 네트워크상에서 RTP 트래픽이 동작해, 패킷이 없어질 가능성이 있는 경우에 불가결합니다.일반적으로 카운터 역할에는 거의 모든 함수를 사용할 수 있습니다.단, 이 함수가 많은 반복 횟수 동안 반복되지 않는다고 가정합니다.단, RTP 데이터의 암호화 표준은 일반적인 정수 증분 카운터일 뿐입니다.이 모드로 동작하는 AES는 기본 암호화 알고리즘으로 기본 키사이즈는 128비트, 기본 세션솔트 키 길이는 112비트입니다
f8 모드
검색 가능하고 변경된 초기화 기능으로 향상된 출력 피드백 모드의 변형입니다.암호화 키 및 salt 키의 기본값은 카운터 모드의 AES와 동일합니다(이 모드로 동작하는AES는 3G 모바일네트워크에서 사용하도록 선택되었습니다).

AES 암호 외에 SRTP를 사용하면 지원되는 대체 암호로 간주할 수 있는 소위 NULL 암호를 사용하여 암호화를 완전히 비활성화할 수 있습니다.실제로 NULL 암호는 암호화를 수행하지 않습니다.암호화 알고리즘은 ID 함수로 기능하며 입력 스트림을 변경하지 않고 출력 스트림에 복사합니다.이 암호 모드를 SRTP 호환 시스템에 구현하려면 필수입니다.따라서 SRTP에 의해 보증된 기밀성 보증이 필요하지 않을 때 사용할 수 있으며 인증이나 메시지 무결성 등의 기타 SRTP 기능을 사용할 수 있습니다.

SRTP는 새로운 암호화 알고리즘을 쉽게 수용할 수 있으므로 새로운 암호화 알고리즘은 새로운 동반 표준 트랙 RFC의 공개를 통해서만 도입할 수 있다고 SRTP 표준에서는 규정되어 있습니다.이 RFC는 새로운 알고리즘을 명확하게 정의해야 합니다.

인증, 무결성 및 재생 보호

위의 암호화 알고리즘만으로는 메시지의 무결성이 보호되지 않으며 공격자는 데이터를 복호화할 수 없지만 이전에 전송된 데이터를 위조하거나 재생할 수 있습니다.따라서 SRTP 표준은 데이터의 무결성과 재생으로부터 안전을 보호하는 수단도 제공한다.

메시지를 인증하고 무결성을 보호하기 위해 HMAC-SHA1 알고리즘을[1] 사용합니다.이것에 의해, 160 비트의 결과가 생성되어 80 또는 32 비트로 잘라져 각 패킷에 부가되는 인증 태그가 됩니다.HMAC는 패킷payload 및 패킷헤더로부터의 자료(패킷시퀀스 번호 포함)에 걸쳐 계산됩니다.리플레이 공격으로부터 보호하기 위해 수신자는 이전에 수신한 메시지의 시퀀스 번호를 유지하고 수신된 각 메시지의 시퀀스 번호와 비교하여 이전에 수신되지 않은 경우에만 새 메시지를 허용합니다.이 접근방식은 무결성 보호에 의존하여 검출하지 않으면 시퀀스 번호를 변경할 수 없습니다.

키 파생

키 파생 함수는 암호 컨텍스트에서 사용되는 다른 키(SRTP 및 SRTCP 암호화 키 및 솔트, SRTP 및 SRTCP 인증 키)를 암호학적으로 안전한 방법으로 하나의 마스터 키에서 도출하기 위해 사용된다.따라서 키 관리 프로토콜은 하나의 마스터 키만 교환하면 되며, 키 파생 기능을 적용하여 필요한 세션 키가 모두 생성됩니다.

키 파생 함수를 정기적으로 적용하면 공격자가 단일 세션 키로 암호화된 대량의 암호문을 수집하는 것을 방지할 수 있습니다.이를 통해 대량의 암호문을 사용할 수 있을 때 보다 쉽게 실행할 수 있는 특정 공격에 대한 보호 기능을 제공합니다.또한 키 파생 함수의 여러 응용 프로그램은 손상된 세션 키가 동일한 마스터 키에서 파생된 다른 세션 키를 손상시키지 않는다는 점에서 후방 및 전방 보안을 제공한다.즉, 공격자가 세션키를 회복해도 동일한 마스터키에서 파생된 이전 및 이후 세션키로 보호된 메시지를 해독할 수 없습니다(물론 유출된 마스터키로 파생된 모든 세션키가 나타납니다).

SRTP는 외부 키 관리 프로토콜을 사용하여 초기 마스터 키를 설정합니다.SRTP에서 사용하도록 특별히 설계된 두 가지 프로토콜은 ZRTP와 MIKE입니다.SRTP 키를 네고시에이트 하는 다른 방법도 있습니다.SDES 키 교환 방식을 사용하는 제품을 제공하고 있는 벤더가 몇 개 있습니다.

상호 운용성과 응용 프로그램

SRTP 를 서포트하는 전화기, 서버, 및 애플리케이션에 대해서는, 「VoIP 소프트웨어의 비교」를 참조해 주세요.

텔레포니(VoIP)

웹 브라우저 지원

SRTP를 지원하는 기존 브라우저

메인라인에 SRTP가 일정 수준 있는 웹 브라우저 제품군으로 코어 렌더링 시스템에서 브랜치를 업데이트합니다.

지금까지 텍스트 기반 웹 브라우저에 대한 알려진 SRTP 지원은 없습니다.VPN에서 SRTP를 사용할 수 있지만 웹 브라우저와 함께 사용할 수 있는 VPN 네트워크는 없습니다.

표준 문서

  • RFC 3711, 제안된 표준, 안전한 실시간 전송 프로토콜(SRTP)
  • RFC 4771, Secure Real-Time Transport Protocol(SRTP)을 위한 롤오버 카운터를 전송하는 제안된 표준 무결성 변환
  • RFC 3551, Standard 65, 최소한의 제어로 음성 및 화상 회의를 위한 RTP 프로파일
  • RFC 3550, Standard 64, RTP: 실시간응용 전송 프로토콜
  • RFC 2104, Informational, HMAC: 메시지 인증을 위한 키 해시

레퍼런스

  1. ^ RFC 2104
  2. ^ "Secure Calling Tutorial - Asterisk Project - Asterisk Project Wiki". wiki.asterisk.org. Retrieved 2019-12-22.
  3. ^ "Asterisk SRTP". VoIP-Info. 2007-02-13. Retrieved 2019-12-22.