제품 / 핫링크 방지 및 이미지 암호화 시스템EFV PROTECTION

핫링크 방지 및 이미지 암호화 시스템

상용 수준의 무단 직접 링크 및 다운로드 방지 기능

제품소개

개발자용 활용

EFV 상위 버전은 이미지와 표지 암호화, hls 기반 이중 암호화, 타임스탬프 보호 및 요청 횟수 제한 등 여러 보호 기능을 제공합니다. 개발자는 이를 자체 시스템에 연동할 수 있습니다. 원리와 자세한 설명은 문서에서 확인할 수 있습니다.

hls 기반 이중 암호화

이 시스템은 Polyv의 핫링크 방지 전략을 참고합니다. hls.js를 수정하여 자체 복호화 로직을 구현하고, 양방향 대칭 암호화와 복호화를 수행합니다. 암호화 및 복호화 로직은 JS 코드 난독화로 보호합니다. Polyv와 유사한 수정 버전의 HLS.JS를 사용해 호출 도메인을 제한하고, EFV 백엔드와 대칭 암호화 및 복호화를 수행합니다. 핫링크, 다운로드, 세그먼트 병합, 보호 기능 해제를 막고 지정된 도메인에서만 호출하도록 제한합니다.

  1. 수정된 HLS.JS에 자체 암호화 및 복호화 로직을 구현했습니다.
  2. EFV와 프런트엔드 HLS.JS 사이의 대칭 암호화 및 복호화 로직으로 핫링크, 세그먼트 병합, 다운로드를 구조적으로 방지합니다.
  3. HLS.JS의 여러 암호화 및 복호화 계층은 보호 기능 해제를 매우 어렵게 합니다. 코드는 1만 줄이 넘으며, 직접 시도하면 그 난도를 확인할 수 있습니다.
  4. 통신용 KEY가 있기 때문에 보호 기능 해제가 불가능합니다. 핫링크 방지 KEY를 바꾸고 HLS.JS를 다시 생성할 때마다 완전히 새로운 버전이 됩니다. 단 1분이면 전체 보호 구조를 새롭게 만들 수 있습니다.
  5. 보안 전문가들의 테스트를 환영합니다. 무단 재생에 성공한다면 제가 패배를 인정하겠습니다!

이미지 및 표지 암호화

이미지 암호화를 켜면 트랜스코딩으로 생성된 표지와 스크린샷이 모두 읽을 수 없는 암호화 파일로 변환됩니다. 링크를 열면 파일이 다운로드되지만 실제 이미지 내용은 볼 수 없습니다. 브라우저에서 정상적으로 표시하려면 프런트엔드에서 전용 복호화 js 플러그인을 사용해야 합니다. 언제든지 끌 수 있으며, 끄면 포스터와 표지가 정상적으로 표시됩니다.

이미지 및 표지의 텍스트 변환

텍스트 변환은 자동으로 활성화됩니다. 표지와 스크린샷의 직접 링크를 bash64 형식의 txt 텍스트 링크로 동적으로 변환합니다. 링크를 열면 이미지 대신 텍스트가 표시되며 서버 자원 소모도 매우 적습니다. 이후 프런트엔드에서 bash64 복호화를 통해 데이터를 사용할 수 있습니다.

타임스탬프 보호 및 요청 횟수 제한

설정에서 타임스탬프와 재생 횟수 기반 핫링크 방지를 켜고 key를 지정합니다. 이 key를 사용하여 매개변수를 조합하고 md5 암호화를 적용한 뒤 결과를 m3u8 주소에 추가합니다. 백엔드는 링크와 매개변수가 올바른지 확인하고, 올바를 때만 정상 콘텐츠를 반환합니다. 그렇지 않으면 바로 403 상태를 반환하거나 미리 설정한 여러 광고 세그먼트 중 하나를 무작위로 반환합니다.