보안 링크 도용 방지란 푸시 스트림과 재생 URL에 있는 txSecret 필드를 말하며, 해커가 백그라운드를 위조하여 푸시 스트림 URL을 생성하거나 재생 주소를 불법으로 탈취하여 이익을 추구하는 것을 방지합니다.
보안 원리
해커가 서버를 위조하여 푸시 스트림 및 재생 URL을 생성하는 것을 방지하기 위해 라이브 방송 관리 콘솔에서 링크 도용 방지를 설정하여 KEY(해커가 획득하지 못하도록 노출하지 말아야 함)를 암호화해 해커가 유효한 푸시 스트림 및 방송 URL을 쉽게 위조하지 못하도록 합니다. 다음 이미지를 참고하십시오.
계산 프로세스
방법1: 인증 키
먼저 공식 홈페이지의 콘솔에서 암호화 키를 설정해야 하며, 해당 암호화 키는 서버에 링크 도용 방지 서명을 생성하는 데 사용됩니다. Tencent Cloud는 사용자와 동일한 키를 가지고 있어 사용자가 생성한 링크 도용 방지 서명을 복호화하고 확인할 수 있습니다.
암호화 키는 푸시 링크 도용 방지 Key 또는 재생 링크 도용 방지 Key일 수 있습니다. 전자는 푸시 링크 도용 방지 URL을 생성하는 데 사용되고 후자는 재생 링크 도용 방지 URL을 생성하는 데 사용됩니다. CSS 콘솔 > 도메인 관리로 이동하여 도메인 이름 또는 관리를 클릭하고 푸시 구성을 선택하여 아래 그림과 같이 푸시 핫링크 도용 방지 KEY를 구성합니다.
재생 링크 도용 방지 Key에 대한 자세한 내용은 재생 링크 도용 방지 활성화 방법은 어떻게 됩니까?를 참고하십시오. 2단계: txTime 생성
서명의 플레인 텍스트는 링크의 유효 기간인 txTime(시간 단위: 초)입니다. 예를 들어 현재 시간이 2018-12-29 11:13:45이고, 생성될 URL이 3시간 동안 유효할 것으로 예상되면 txTime은 2018-12-29 14:13:45로 설정되어야 합니다.
하지만 URL에 이렇게 긴 시간 문자열을 넣는 것은 명백하게 부적절합니다. 실제 사용에서는 2018-12-29 14:13:45를 UNIX 타임스탬프로 변환한 후, 즉 1546064025를 얻습니다. 이러한 변환은 다양한 프로그래밍 언어에서 제공하는 시간 함수를 호출하여 처리할 수 있습니다. 그런 다음 이를 16진수 문자열로 변환하여 문자 길이를 더 줄입니다. 즉, txTime = 1546064025(10진수) = 5C271099(16진수)입니다. 물론, 10진수 문자열 사용도 지원됩니다.
주의사항:
실제 최종 종료 시간은 txTime + 인증 유효 시간으로, 인증 유효 시간을 수정해도 URL 생성에는 영향을 주지 않습니다.
txTime의 만료 시간을 너무 길거나 짧게 설정하는 것은 권장하지 않습니다.
만료 시간이 너무 짧은 경우 호스트가 라이브 방송 시 네트워크가 몇 초간 끊기는 상황이 발생할 때 푸시 스트림 URL이 만료되어 푸시 스트림을 복구하지 못할 수 있습니다.
만료 시간이 너무 길면 도용될 위험이 있습니다.
3단계: txSecret 생성
txSecret 생성 방법 = MD5(KEY + StreamName + txTime)입니다. KEY는 1단계에서 구성된 암호화 KEY이며, 이 예에서 StreamName(스트림 ID라고도 하며, 랜덤 숫자 또는 사용자 ID 사용 권장)은 test입니다. txTime은 마지막 단계에서 계산한 5C271099이고, MD5는 되돌릴 수 없는 표준 단방향 MD5 Hash 알고리즘입니다.
예시:
KEY가 e12c46f2612d5106e2034781ab261ca3인 경우,
txSecret = MD5(e12c46f2612d5106e2034781ab261ca3test5C271099) = f85a2ab363fe4deaffef9754d79da6fe입니다.
4단계: 링크 도용 방지 주소 조합
Tencent Cloud 표준에 부합하는 푸시 스트림 URL은 다음 네 부분으로 구성됩니다.
현재 Tencent Cloud에 푸시 스트림(또는 재생) URL 만료 시간을 알리는 txTime, Tencent Cloud만 복호화하고 인증할 수 있는 txSecret, StreamName, 푸시 스트림 도메인(livepush.tcloud.com으로 가정)이 있다면 표준 URL을 조합할 수 있습니다. 본 문서 예시의 푸시 스트림 URL은 다음과 같습니다. rtmp://livepush.tcloud.com/live/test?txSecret=f85a2ab363fe4deaffef9754d79da6fe&txTime=5C271099
푸시 스트림 예시 코드
CSS 콘솔 > 도메인 관리로 이동하여 사전에 구성한 푸시 도메인 이름을 선택하고 관리 > 푸시 구성을 클릭하여 링크 도용 방지 주소를 생성하는 방법을 보여주는 푸시 주소 예시 코드(PHP 및 Java용)를 표시합니다. 자세한 내용은 푸시 스트림 설정을 참고하십시오.