DRM 개념 및 용어

PallyCon Multi DRM 서비스는 클라우드 기반의 SaaS (Solution as a Service)로 DRM을 콘텐츠에 적용하는 패키징 솔루션, DRM 라이센스 발급 서비스 및 DRM 콘텐츠 재생을위한 클라이언트 솔루션으로 구성됩니다.

graph LR; subgraph 고객사 서비스 A[원본 콘텐츠] --> B(인코더) B -->|인코딩된 콘텐츠| C(DRM 패키져) C -->|암호화된
DASH/HLS 스트림| D(CDN
스토리지) end subgraph PallyCon 서비스 C -->|패키징
정보| E(PallyCon 멀티DRM
라이선스 서버) E --> |암호화 키| C end subgraph 최종 사용자 D --> |암호화된
DASH/HLS 스트림| F(클라이언트
플레이어) E --> |DRM 라이선스| F end

본 문서에서는 PallyCon 멀티DRM 서비스와 관련된 각종 개념과 용어에 대하여 설명합니다.

DRM (Digital Rights Management)

각종 디지털 콘텐츠의 불법적인 사용을 제한하고, 승인된 사용자의 콘텐츠 사용을 저작권 소유자의 의도에 따라 제어하는 기술입니다. 콘텐츠의 보호를 위한 암호화 기술과 사용 권한 제어를 위한 라이선스 관리 기술로 구성됩니다.

멀티 DRM

다양한 PC, 모바일 및 OTT 클라이언트 환경에서 DRM을 지원하기 위해 각 클라이언트 플랫폼 별로 여러 DRM 기술을 적용하는 것을 말합니다. 클라이언트 환경에 따른 DRM과 스트리밍 프로토콜 지원 정보는 지원 환경 페이지를 참고하시기 바랍니다.

패키징

원본 콘텐츠를 암호화하여 DRM을 적용하는 과정으로, 사전에 패키징된 콘텐츠를 사용자에게 서비스하는 프리 패키징 방식과 콘텐츠 재생 시점에 패키징을 처리하며 전달하는 실시간 패키징 방식이 있습니다.

DRM 패키징에 대한 상세한 설명은 콘텐츠 패키징 가이드를 참고하시기 바랍니다.

패키징 콜백 URL

PallyCon 패키져 또는 Wowza 연동 모듈을 통한 콘텐츠 패키징 시 각 콘텐츠마다 고유한 아이디를 입력하기 위해 사용되는 URL입니다. 연동 규격에 따라 고객사에서 직접 구축한 웹 페이지 URL을 콘솔에 입력하면, PallyCon 서버가 해당 URL을 호출해 통신이 이루어집니다. 패키져에서 직접 콘텐츠 ID를 입력하는 경우에는 이 콜백이 사용되지 않으며, 상세한 내용은 개발자 가이드를 참고하시기 바랍니다.

DRM 라이선스

클라이언트에서 DRM이 적용된 콘텐츠를 사용하기 위해서는 DRM 서버로부터 라이선스를 획득해야 합니다. DRM 라이선스는 콘텐츠 복호화에 사용되는 암호키와 사용 권한 제어 정보(사용 가능 기간, 환경 등)로 구성됩니다. 라이선스 발급 과정에서 사용자 권한을 확인하는 방식에 따라 콜백 방식과 토큰 방식의 연동을 지원합니다.

라이선스 콜백

클라이언트에서 콘텐츠 재생을 위하여 DRM 라이선스를 요청하면, PallyCon 클라우드 서버가 서비스 사이트의 콜백 URL을 호출하여 사용 권한을 확인 후 라이선스를 발급하는 방식입니다.

라이선스 콜백에 대한 상세한 내용은 해당 가이드를 참고하시기 바랍니다.

라이선스 토큰

클라이언트에서 콘텐츠 재생 시, 서비스 사이트가 규격에 따라 라이선스 토큰을 생성해 클라이언트에 전달하면 해당 토큰을 클라이언트가 PallyCon 클라우드 서버에 전송해 DRM 라이선스를 발급받는 방식입니다.

라이선스 토큰에 대한 상세한 내용은 해당 가이드를 참고하시기 바랍니다.

라이선스 콜백 URL

콜백 방식으로 DRM 라이선스를 연동하는 경우에 사용되는 URL입니다. 연동 규격에 따라 고객사에서 직접 구축한 웹 페이지 URL을 콘솔에 입력하면, PallyCon 서버가 해당 URL을 호출해 통신이 이루어집니다. 토큰 방식으로 라이선스를 발급하는 경우에는 이 콜백이 사용되지 않으며, 상세한 내용은 개발자 가이드를 참고하시기 바랍니다.

KMS 토큰

CPIX API를 통한 콘텐츠 패키징 키 연동에 사용되는 인증 토큰입니다. 서비스 사이트마다 고유한 토큰이 생성되며, PallyCon CPIX API 또는 SPEKE API 등 API 별 키 요청 URL에 이 토큰을 추가하여 호출합니다. 상세한 내용은 개발자 가이드를 참고하시기 바랍니다.