Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
libsrtp — SRTP(보안 실시간 전송 프로토콜)용 라이브러리 | Kitploit
도구/GitHubGitHub/cisco/libsrtp
Encryption/Decryption ToolsNetwork SecurityCryptographyAuthentication
GitHubcisco/libsrtp

libsrtp

SRTP(보안 실시간 전송 프로토콜)용 라이브러리

저장소 보기
1.4k5172019일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CMake Build CMake Release Autotools Build Autotools Build Coverity Scan Build Status OSS-Fuzz Status

libSRTP 소개

이 패키지는 Secure Real-time Transport Protocol(SRTP), Universal Security Transform(UST) 및 이를 지원하는 암호화 커널의 구현을 제공합니다. SRTP API는 include/srtp.h에 문서화되어 있으며, 라이브러리는 (컴파일 후) libsrtp2.a에 있습니다.

이 문서는 Cisco Systems, Inc.의 오픈 소스 Secure RTP 라이브러리인 libSRTP를 설명합니다. RTP는 Real-time Transport Protocol로, 전화, 오디오, 비디오와 같은 실시간 데이터 전송을 위한 IETF 표준이며 RFC 3550에 정의되어 있습니다. Secure RTP(SRTP)는 RTP 데이터에 기밀성을 제공하고 RTP 헤더와 페이로드에 인증을 제공하기 위한 RTP 프로필입니다. SRTP는 RFC 3711에 정의된 IETF 표준으로, IETF Audio/Video Transport(AVT) 워킹 그룹에서 개발되었습니다. 이 라이브러리는 SRTP의 모든 필수 기능을 지원하지만 선택 기능 전부를 지원하지는 않습니다. 자세한 내용은 지원 기능 섹션을 참조하십시오.

이 문서는 /doc/ 폴더의 문서 파일을 생성하는 데에도 사용되며, 여기에서 libSRTP API 및 관련 함수에 대한 더 상세한 참조 자료를 만들 수 있습니다(doxygen 설치 필요). 참조 자료는 일부 C 헤더 파일에 포함된 주석에서 자동으로 생성됩니다. 문서는 명확성을 높이기 위해 모듈별로 구성되어 있습니다. 이러한 모듈은 파일과 직접적으로 대응하지는 않습니다. 내부의 암호화 커널은 libSRTP의 기본 기능 중 상당 부분을 제공하지만, 백그라운드에서 작업을 수행하므로 대부분 문서화되어 있지 않습니다.


문의하기

  • [email protected] 뉴스/공지/토론을 위한 일반 메일링 리스트입니다. 공개 리스트이며, 가입은 https://lists.packetizer.com/mailman/listinfo/libsrtp에서 확인하십시오.

  • [email protected] 보안 문제를 libsrtp 유지보수 팀에 공개하기 위한 주소입니다. 비공개 리스트이지만 누구나 보낼 수 있습니다.


목차

  • libSRTP 소개
  • 문의하기
    • 목차
  • 라이선스 및 면책 조항
  • libSRTP 개요
    • Secure RTP 배경
    • 지원 기능
    • 구현 참고 사항
  • libSRTP 설치 및 빌드
    • 빌드 구성 변경
    • Visual Studio 사용
  • 애플리케이션
    • 예제 코드
  • 크레딧
  • 참고 자료

라이선스 및 면책 조항

libSRTP는 소스 코드 배포판에 포함된 다음 라이선스에 따라 배포됩니다. 다른 경로로 라이브러리를 받은 경우를 대비하여 이 매뉴얼에도 수록합니다.

Copyright (c) 2001-2017 Cisco Systems, Inc. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of the Cisco Systems, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


libSRTP 개요

libSRTP는 RTP 및 RTCP를 보호하는 함수를 제공합니다. RTP 패킷은 srtp_protect() 함수를 사용하여 암호화되고 인증되어 SRTP 패킷으로 변환될 수 있습니다. 마찬가지로 SRTP 패킷은 srtp_unprotect() 함수를 사용하여 복호화되고 인증이 검증되어 RTP 패킷으로 변환될 수 있습니다. 유사한 함수가 RTCP 패킷에도 보안을 적용합니다.

srtp_stream_t typedef는 SRTP 스트림과 관련된 모든 상태(암호 및 메시지 인증 함수의 키와 매개변수, 재생 방지 데이터 포함)를 보유하는 구조체를 가리킵니다. 특정 srtp_stream_t는 특정 RTP 및 RTCP 스트림을 보호하는 데 필요한 정보를 보유합니다. 이 데이터 유형은 libSRTP API와 구현을 더 잘 분리하기 위해 의도적으로 불투명하게 유지됩니다.

SRTP 세션 내에는 여러 스트림이 있을 수 있으며, 각 스트림은 특정 송신자로부터 시작됩니다. 각 소스는 자체적으로 시작하는 RTP 및 RTCP 스트림을 보호하기 위해 별도의 스트림 컨텍스트를 사용합니다. srtp_t typedef는 SRTP 세션과 관련된 모든 상태를 보유하는 구조체를 가리킵니다. 단일 srtp_t와 연관된 여러 스트림 컨텍스트가 있을 수 있습니다. 스트림 컨텍스트는 srtp_t와 독립적으로 존재할 수 없지만, 물론 단일 스트림 컨텍스트만 포함하는 srtp_t를 생성할 수는 있습니다. SRTP 세션에 참여하는 장치는 해당 세션의 각 소스에 대해 스트림 컨텍스트를 보유해야 각 송신자로부터 수신한 데이터를 처리할 수 있습니다.

libSRTP에서 세션은 srtp_create() 함수를 사용하여 생성됩니다. 세션에서 구현할 정책은 불투명한 srtp_policy_t 핸들로 이 함수에 전달됩니다. 단일 정책 핸들은 하나의 스트림 정책을 설명합니다. 여러 스트림을 구성하려면 세션을 만들고 srtp_stream_add()로 추가 정책을 추가하십시오.

정책 핸들은 srtp_policy_set_* 함수로 구성됩니다. 최소한 SSRC 선택, 프로필 선택, 키/솔트 자료가 포함됩니다. 프로필은 RTP/RTCP 암호화 정책 설정을 구성하고, SSRC 선택기는 해당 정책이 적용되는 방식과 위치를 식별합니다.


Secure RTP 배경

이 섹션에서는 SRTP를 검토하고 libSRTP에서 사용되는 몇 가지 용어를 소개합니다. RTP 세션은 한 쌍의 대상 전송 주소, 즉 네트워크 주소와 RTP 및 RTCP용 UDP 포트 쌍으로 정의됩니다. RTCP(RTP 제어 프로토콜)는 RTP 세션의 참가자 간 조정(예: 수신자에서 송신자로의 피드백 제공)에 사용됩니다. SRTP 세션도 유사하게 정의됩니다. 이는 SRTP 프로필이 사용되고 있는 RTP 세션일 뿐입니다. SRTP 세션은 SRTP 또는 SRTCP 대상 전송 주소로 전송되는 트래픽으로 구성됩니다. 세션의 각 참가자는 동기화 소스(SSRC) 식별자로 식별됩니다. 일부 참가자는 SRTP 트래픽을 전혀 보내지 않을 수 있습니다. 이들은 수신자 보고서와 같은 SRTCP 트래픽을 보내더라도 수신자라고 합니다.

RTP는 동일한 세션 동안 여러 소스가 RTP 및 RTCP 트래픽을 보낼 수 있도록 허용합니다. 동기화 소스 식별자(SSRC)는 이러한 소스를 구별하는 데 사용됩니다. libSRTP에서는 특정 소스의 SRTP 및 SRTCP 트래픽을 스트림이라고 합니다. 각 스트림에는 고유한 SSRC, 시퀀스 번호, 롤오버 카운터 및 기타 데이터가 있습니다. 옵션, 암호화 메커니즘 및 키의 특정 선택을 정책이라고 합니다. 세션 내의 각 스트림에는 서로 다른 정책을 적용할 수 있습니다.

주어진 세션의 모든 스트림에 단일 정책을 사용할 수 있지만, 단일 키가 여러 스트림에서 공유되는 경우에는 주의가 필요합니다. 키 공유를 사용할 때 스트림을 식별하는 SSRC 값은 반드시 서로 달라야 합니다. 이 요구 사항은 각 SRTP 및 SRTCP 키가 단일 송신자에 의해서만 암호화에 사용된다는 규칙을 사용하여 강제할 수 있습니다. 즉, 키는 특정 장치에서 시작된 스트림에서만 공유됩니다(물론 다른 SRTP 참가자는 복호화를 위해 키를 사용해야 합니다). libSRTP는 키가 인바운드 및 아웃바운드 데이터 모두에 사용되는 경우를 감지하여 이 강제를 지원합니다.


지원 기능

이 라이브러리는 SRTP의 구현 필수 기능 전체(RFC 3711에 정의된 대로)를 지원합니다. 이러한 기능 중 일부는 srtp_policy_t 핸들로 적절한 정책을 설정하여 런타임에 선택(또는 선택 해제)할 수 있습니다. 프로토콜의 다른 일부 동작은 예외 이벤트에 대한 적절한 이벤트 핸들러를 정의하여 조정할 수 있습니다. 생성된 문서의 SRTPevents 섹션을 참조하십시오.

SRTP 사양에 설명된 일부 옵션은 지원되지 않습니다. 여기에는 다음이 포함됩니다.

  • 0이 아닌 키 유도 속도(key derivation rate),
  • F8 암호,
  • 마스터 키 선택을 위한 패킷 인덱스 사용.
도구 다운로드