최신 업데이트:2022-04-11 12:56:29
핫링킹은 저작권 침해는 물론 이용자 이탈을 일으킬 수 있습니다. 이는 대역폭 및 서버 유지보수 비용을 증가시켜 전체 수익을 감소시킬 것입니다. 따라서 핫링킹는 시장이 시급히 해결해야 할 이슈입니다.
CDNetworks에서 제공하는 핫링킹 방지 기능은 특정 규칙을 가진 핫링킹 요청을 식별하고 이러한 요청에 대한 서비스 제공을 거부하여 핫링킹을 방지하며, CDNetworks 고객에게 대역폭 및 서버 운영 비용을 절감합니다.
CDNetworks는 다음과 같이 핫링킹 방지 기능을 출시했습니다:
핫링킹 방지 기능 | 기능 설명 |
---|---|
IP 블랙리스트/화이트리스트 핫링킹 방지 | 요청 IP 주소를 식별하기 위해 일치하는 IP 주소만 서비스에 접근할 수 있습니다. |
쿠키 핫링킹 방지 | HTTP 요청에 쿠키 헤더 값을 식별하기 위해 쿠키 헤더와 일치하는 HTTP 요청만 서비스에 접근할 수 있습니다. |
레퍼러 핫링킹 방지 | HTTP 요청에 레퍼러 헤더 값을 식별하기 위해 레퍼러 헤더와 일치하는 HTTP 요청만 서비스에 접근할 수 있습니다. |
UA 헤더 핫링킹 방지 | HTTP 요청에 User-Agent 헤더 값을 식별하기 위해 User-Agent 헤더와 일치하는 HTTP 요청만 서비스에 접근할 수 있습니다. |
사용자 정의 헤더 핫링킹 방지 | 고객 요청에 따라 HTTP 요청에 다른 사용자 정의 헤더를 식별하기 위해 헤더와 일치하는 요청만 서비스에 접근할 수 있습니다. |
타임스탬프 핫링킹 방지 | 고객과 협의한 타임스탬프 및 비밀 키로 URL을 암호화하고 요청 시간이 유효한지 검증합니다. |
Back-to-Origin 인증 핫링킹 방지 | 오리진 서버의 인증 규칙을 준수하여 오리진으로 돌아가 받은 각 요청에 대한 정보를 인증합니다. |
고객은 자신의 비즈니스 유형에 따라 다양한 핫링킹 방지 기능을 선택할 수 있습니다. 아래의 비교가 도움이 될 것입니다.
핫링킹 방지 | 애플리케이션 시나리오 | 장점 |
---|---|---|
기본 핫링킹 방지 | 지정된 IP 주소/웹 페이지/브라우저/플레이어의 요청 및 지정된 쿠키의 요청을 허용하거나 허용하지 않습니다. | 쉽게 실현할 수 있습니다. |
타임스탬프 핫링킹 방지 | 만료되지 않은 요청을 허용합니다. | 핫링킹 방지 효과가 좋고 만료된 모든 요청을 거부합니다. |
BtO 인증 | 각 요청마다 핫링킹 방지 BtO 인증이 필요합니다 | 글로벌 인증 시나리오에서 적용되고 우수한 핫링킹 방지 효과가 있습니다. 글로벌(국가/글로벌) 데이터 분석을 기반으로 인증 결과를 생성할 수 있으며, 방안이 유연하고 자유롭게 정의할 수 있습니다. 사용자 계정 등 정보를 기반으로 인증이 가능합니다. |
기본 핫링킹 방지에는 IP 블랙리스트/화이트리스트, 쿠키, 레퍼러, UA 헤더 및 사용자 정의 헤더 핫링킹 방지가 포함됩니다.
그림1 핫링킹 방지 기본 작업 프로세스
(1)사용자가 CDN PoP에 요청을 보낼 경우;
(2) CDN PoP는 사용자 정보(예를 들어 IP, 레퍼러, 사용자-에이전트 및 쿠키 등)가 설정 요구에 충족하는지 판단합니다. 일치하지 않으면 거절합니다. 로컬에 캐시가 있을 경우 직접 응답하고 없을 경우 오리진에서 해당 리소스를 가져옵니다.
(3) 오리진은 CDN PoP 요청에 응답합니다.
(4) CDN PoP는 클라이언트 요청에 응답하고 리소스를 로컬로 캐시합니다.
기본 핫링킹 방지 기능은 다음과 같은 방법으로 설정할 수 있습니다:
(1) 고객은 SI플랫폼에서 스스로 설정할 수 있습니다;
(2) 해당 CSE는 설정할 수도 있습니다;
IP 블랙리스트 경우, CDNetworks는 스마트 리스트를 지원하고 스마트 리스트는 IP 주소가 edge PoP에 접근 횟수를 제한하여 CC 공격을 방지할 수 있습니다. 이 기능을 활성화하면 CDNetworks 클라우드 플랫폼은 IP 주소의 접근 횟수를 표시하여 접근을 제한합니다. IP 주소는 어떤 도메인의 요청이 설정된 임계값을 초과할 때 이 IP 주소의 접근을 제한합니다. 요청 제한 횟수를 설정할 수 있습니다.
타임스탬프 핫링킹 방지 기능이 활성화되면 고객은 서명 만료 시간 설정을 통해 파일 접근 시간 제한을 제어할 수 있습니다.
타임스탬프 핫링킹 방지는 각 요청 URL에 일정 시간의 "적시성"을 부여합니다. CDN 플랫폼에서 md5 알고리즘을 사용하여 암호문, 만료 시간, 파일 경로 등 정보를 계산함으로써 CDNetworks는 모든 요청 URL에 유일한 값을 제공할 수 있습니다. 이 값을 URL에 추가한 후에 CDN PoP는 요청이 합법적인지 확인할 수 있습니다. 요청에 일치하는 md5 값이 없으면 서비스를 거부합니다. 암호문은 비공개이므로 위조할 수 없습니다.
다음은 타임스탬프 핫링킹 방지의 작업 원리입니다:
일반적인 검증 방법은 MD5 암호화 알고리즘을 사용합니다: 키 및 암호화 규칙에 대해 고객과 합의하고, 규칙에 따라 지정된 매개 변수를 결합하여 MD5값을 계산하며, 계산된 MD5값을 URL에 추가합니다. 암호문은 비공개이므로 URL을 위조할 수가 없습니다. 타임스탬프와 MD5 암호화된 문자열이 포함된 URL이 CDN PoP에 접근하면 CDN PoP는 타임스탬프가 만료되었는지를 먼저 판단합니다. 만료가 되면 요청을 직접 거부하고 그렇지 않으면 합의된 알고리즘을 기반으로 MD5 암호화 문자열을 검증합니다. 검증이 일치하면 CDN PoP는 요청이 합법한 것으로 판단하여 서비스를 제공할 것입니다. 그렇지 않으면 CDN PoP는 URL을 위조한 것으로 판단하여 불법 요청으로 서비스 제공을 거부합니다.
다음 그림과 같이, 일반적인 암호화 규칙은 고객과 합의된 키, URL이 가진 타임스탬프, URL의 파일 경로를 일정한 규칙으로 조합한 후에 해당 MD5값을 계산하는 것입니다.
그림2 타임스탬프 핫링킹 방지 원리
핫링킹 방지 효과에 대한 요구가 높고 URL 시간에 민감한 시나리오에 적용됩니다. 예를 들어 대량 파일 다운로드, 온라인 비디오 보기 등.
그림3 타임스탬프 핫링킹 방지 작업 프로세스
CDNetworks는 고객의 상황에 따라 여러 가지 타임스탬프 유형을 제공합니다.
1) 고객이 애플리케이션을 가지고 있을 때
고객이 애플리케이션을 가지고 있을 때, 예를 들어 라이브 방송이나 다운로드 고객, 고객과 합의되면 단말기/애플리케이션은 이 값을 계산합니다. 요청에 일치하는 md5값이 없으면 서비스를 제공하지 않습니다. 암호문은 비공개이므로 위조할 수 없습니다. 타임스탬프 핫링킹 방지의 URL 암호화는 오리진에 의해 생성되며, CDN은 확인만 수행합니다.
예를 들어:
오리진 URL은 “http://www.example.com/test.jpg”입니다;
타임스탬프가 있는 암호화된 URL은 다음과 같습니다:
(1)“http://www.example.com/test.jpg?CWSecret=c8ba17a8ba47749755ad8754f244108b&CWTime=55d5a69c”
(2)“http://www.example.com/c8ba17a8ba47749755ad8754f244108b/55d5a69c/test.jpg”
이 URL의 매개 변수에 대한 설명:
CWSecrett은 비밀 문자열입니다.
CWSecret = md5 (URI + CWKey + CWTime)
URI = URL경로에 접근하는 최종 사용자– URI.
CWKey =고객과 비밀 키를 협상했습니다.
CWTime =URL의 타임스탬프 값을 요청하고 UNIX time은 16진수 형식으로 사용합니다, 이 예에서 55d5a69c는 2015/8/20 18:6:20 GMT+8을 의미합니다.
2) 고객이 애플리케이션이 없을 경우
주로 단말기가 없는 고객이 사용하는 기능입니다.
이런 상황에서는 클라이언트가 먼저 콘텐츠를 요청하고 오리진에서 암호화된 URL을 제공한 후 사용자가 요청을 처리할 수 있습니다.
3) 고객이 컨텐츠 관리 시스템을 가지고 있을 경우**😗*
주로 "콘텐츠 관리 서버"를 보유한 미디어 엑셀러레이션 고객이 사용하는 기능입니다.
이런 상황에서는 사용자가 콘텐츠 URL을 요청하고 콘텐츠 관리 서버가 암호화된 URL을 제공한 후 사용자가 요청을 처리할 수 있습니다。
4) UTV(URL 태그 검증**)** 타임스탬프 핫링킹 방지가 지원되어 검증 효율성 향상
CDNetworks는 UTV 타임스탬프 핫링킹 방지 방식도 지원하고 애플리케이션 터미널의 두번째 및 후속 요청에 대한 md5값 계산 검증 시간을 단축할 수 있습니다. 상세한 내용은 다음과 같습니다.
그림4 UTV 타임스탬프 핫링킹 방지의 기본 원리
CDNetworks CSE는 고객과 다음 정보를 확인한 후, 설정 구현을 위해 PMS 플랫폼에서 운영팀에 티켓을 보내야 합니다.
CDN PoP는 요청 접수할 때 해당 요청 정보에 대한 BtO 인증을 실시하고 인증 결과에 따라 서비스 제공 여부를 결정합니다.
BTO 인증 핫리킹 방지의 특성은 CDN PoP가 각 요청을 고객 인증 서버로 먼저 전송하고 인증 결과에 따라 서비스 제공 여부를 결정하는 것입니다. 핫링킹 방지에 대한 요구가 높은 고객에게 적용됩니다. 대부분 고객의 인증 서버와 컨텐츠 서버는 서로 독립되어 있습니다.
고객의 아키텍처에 따라 택할 수 있는 오리진으로 돌아가는 방식은 두 가지가 있습니다: “동일한 URL로 요청 및 인증”과 “다른 URL로 요청 및 인증”. 상세한 내용은 작업 프로세스를 참고하십시오.
그림 5 다른 URL로 요청 및 인증
(1) 최종 사용자가 URL1 요청을 시작합니다, 예:
http://cdn.example.com/test.dat?auth=xxxx&name1=value1&name2=value2
(2) CDN PoP는 인증 매개 변수 auth=xxx를 추출하고 다시 작성하여 인증URL2에 추가한 다음 고객 인증 서버로 인증 요청을 전송합니다, 예: http://auth.example.com/authorize?auth=xxxx
(3) 인증 서버는 매개 변수 auth=xxx의 합법성을 인증하고 결과에 응답합니다.
(4) 인증은 성공했지만 CDN PoP가 요청된 콘텐츠를 캐시하지 않으면 CDN PoP는 오리진에서 콘텐츠를 가져올 것입니다. 요청 URL3: 예: http://cdn.example.com/test.dat? name1=value1&name2=value2
(4’) 인증이 성공되면 CDN PoP가 콘텐츠를 캐시할 경우 사용자에게 직접 응답합니다.
(4”) 인증이 실패되면 CDN PoP는 고객이 설정한 정책에 따라 403 Forbidden 또는 302 Redirect(Redirect URL은 고객이 지정해야 함)에 응답합니다.
(5) 오리진은 콘텐츠로 CDN PoP에 응답합니다.
(6) CDN PoP는 콘텐츠로 최종 사용자에게 응답하고 로컬에서 캐시합니다.
그림6 동일한 URL로 요청 및 인증
(1) 최종 사용자가 URL 요청을 합니다.
(2) CDN PoP는 요청에 대해 투명 전송 BtO를 진행합니다.
(3) 오리진이 요청을 검증합니다. 만약 합법적이고 파일을 업데이트하지 않으면 오리진은 304 Not Modified로 응답하고 파일이 업데이트된 경우 200 또는 206(범위 요청이 있을 경우)으로 응답합니다. 요청이 유효하지 않을 경우 오류 상태 코드(기본값 403, 사용자 정의 가능) 또는 302 리디렉션(리디렉션 URL은 고객과 협의 필요)에 응답합니다.
(4) CDN PoP 응답 파일 또는 CDN PoP 응답 거부(403) 또는 302 리디렉션한 페이지에 응답합니다.