최신 업데이트:2025-09-05 17:34:19
이 가이드는 토큰 인증(타임스탬프 핫링크 방지라고도 함)의 구성 및 사용 방법을 설명합니다. 이 보안 기능은 라이브 스트리밍 콘텐츠를 무단 액세스와 핫링킹으로부터 보호하기 위해 설계되었습니다.
스트리밍 URL에 암호화된 토큰과 타임스탬프를 추가하여, 누가 얼마 동안 스트림에 접근할 수 있는지 제어할 수 있습니다. 이를 통해 유효한 시간 제한이 있는 URL을 가진 사용자만 콘텐츠를 시청할 수 있으므로, 스트림을 안전하게 보호하고 무단 배포를 방지할 수 있습니다.
인증 프로세스는 세 가지 주요 구성 요소로 이루어져 있습니다:
시청자가 인증된 URL을 사용하여 스트림에 접근하려고 할 때, 당사의 엣지 서버는 다음과 같은 작업을 수행합니다:
토큰이 일치하고 URL의 유효기간이 만료되지 않은 경우, 시청자는 스트림 접근 권한을 부여받습니다. 그렇지 않으면 요청이 거부됩니다.
토큰 인증을 활성화하고 구성하려면 다음 단계를 따르십시오:
아래는 구성 패널의 각 필드에 대한 자세한 설명입니다:
| 필드 | 설명 | 예시/기본값 |
|---|---|---|
| 애플리케이션 이름 | 이 규칙이 적용될 애플리케이션을 지정합니다. 비워두면 모두 적용됩니다.참고: 이 애플리케이션 이름은 현재 Domain에 구성한 이름과 일치해야 합니다. | live,vod |
| 암호문 파라미터 이름 | 암호화된 토큰의 URL 파라미터 이름입니다. | 기본값: wsSecret |
| 시간 파라미터 이름 | 타임스탬프의 URL 파라미터 이름입니다. | 기본값: wsTime |
| KEY | 토큰의 암호화 서명을 생성하는 데 사용되는 개인 비밀 키입니다. | mysecretkey |
| 암호화 시간 포맷 | 타임스탬프의 포맷입니다. | UNIX 타임스탬프 또는 16진수 |
| 유효 기간 | URL이 만료되는 방식입니다. | 기간별, 절대 시간별, 유효 시간별, 또는 시간 확인 안 함. |
| 유효 시간 | 링크가 유효한 시간(초)입니다. (“기간별 유효” 방식에 필수) | 3600 (1시간) |
| 오류 허용 시간 | 서버와 에지 서버 간의 작은 시간 차이로 인해 유효한 URL이 실패하는 것을 방지하기 위해 허용하는 시간(초)입니다. 시계 오차를 보정합니다. | 300 (5분) |
| 암호문 조합 방식 | 토큰 생성을 위해 사용하는 공식입니다. | KEY+Path+Time 이 일반적으로 사용됩니다. |
콘솔에서 기능을 구성한 후에는, 사용자를 위한 동적으로 인증된 URL을 생성하도록 애플리케이션 또는 백엔드 서버를 업데이트해야 합니다.
핵심 로직은 선택한 암호문 조합 방식에 따라 문자열을 만든 후, 해당 문자열의 MD5 해시 값을 계산하는 것입니다. 참고: 해시화할 문자열에 포함되는 구성 요소는 선택한 유효 기간 방식에 따라 달라질 수 있습니다.
구성이 다음과 같다고 가정해보겠습니다:
mysecretkeyKEY+Path+TimewsSecretwsTimeUNIX timestamp3600초 (1시간)http://your.domain.com/live/stream1.flv서버에서 서명된 URL을 생성하는 방법은 다음과 같습니다:
/live/stream1.flv입니다.1678886400.string_to_hash = "mysecretkey/live/stream1.flv1678886400"string_to_hash의 MD5 해시를 계산합니다.wsSecret_value = md5("mysecretkey/live/stream1.flv1678886400")b1b5c2c7e8e5e8e5c2c7b1b5c2c7e8e5라고 가정해봅시다.http://your.domain.com/live/stream1.flv?wsSecret=b1b5c2c7e8e5e8e5c2c7b1b5c2c7e8e5&wsTime=1678886400이 URL을 사용하는 시청자는 1678886400 + 3600 = 1678890000까지 스트림에 접근할 수 있습니다.
이 방법은 생성하는 각 URL에 대해 유효 기간을 동적으로 정의하고 싶을 때 유용합니다. 설정이 이전 예제와 같지만, By Valid Time을 선택한 상황을 가정해보겠습니다.
mysecretkeyKEY+Path+Time (참고: 이 모드에서 해시 계산 시 타임스탬프 뒤에 wsKeepTime 값이 추가됩니다.)wsSecretwsTimeUNIX 타임스탬프7200초 (2시간)https://your.domain.com/live/stream1.sdp다음은 서버에서 서명된 URL을 생성하는 방법입니다:
/live/stream1.sdp.1678886400.7200.wsKeepTime 값)을 결합합니다.string_to_hash = "mysecretkey/live/stream1.sdp16788864007200"wsSecret_value = md5("mysecretkey/live/stream1.sdp16788864007200")20722b11be862a6563657a70a8a8167입니다.wsSecret, wsTime, wsKeepTime을 쿼리 파라미터로 추가합니다.https://your.domain.com/live/stream1.sdp?wsSecret=20722b11be862a26563657a70a8a8167&wsTime=1678886400&wsKeepTime=7200이 방법은 URL을 생성하는 서버가 만료 시간을 실시간으로 설정할 수 있어 더 유연하게 활용할 수 있습니다.