본문 바로가기

IT

[IT 수다떨기 (5)] 멀티 DRM 이해하기

728x90
반응형

 

 

 

5번째로 이야기할 내용은 멀티 DRM이다. 그전에 DRM이라는 단어가 생소한 사람들을 위해 간략하게 이야기해보고자 한다. DRM은 Digital Rights management의 약어로 음악, 영상, 문서 등 파일 자체에 권리를 제공해, 허락된 사용자 외에 접근할 수 없도록 제어하는 기술이다. 아마 우리들은 멜론이나 지니 등 음원사이트에서 혹은 회사에서 많이 봤을 단어라고 생각된다. 이처럼 온라인 상의 ‘콘텐츠 판매자’가 자신의 콘텐츠를 직접적으로 보호해서 사용자(End user)에게 제공하고 싶은 경우 사용이 되곤 한다.

 

문서, 음악, 영상 등의 DRM을 다루는 회사는 현재 많이 존재한다. 이런 DRM 중 나와 관련된 ‘영상 DRM’에 대해 이야기를 해볼 것이며, 영상 DRM에서 가장 중요한 ‘멀티 DRM (Multi DRM)’을 이야기해보고자 한다. 이름에서부터 ‘멀티’가 들어가면, 왠지 ‘싱글 DRM’도 있을 것 같지 않은가? 천천히 ‘싱글 DRM(Single DRM)’부터 현재의 ‘멀티 DRM(Multi DRM)’까지에 대한 이야기를 써보려고 한다.

 

 

ActiveX 설치 플러그인

 

 - 싱글 DRM (Single DRM)

멀티 DRM 이전의 시대에서, 영상 콘텐츠를 보안하고 싶을 경우에는 각기 다른 업체에서 각기 다른 정책으로 나온 ‘싱글 DRM’ 솔루션을 입혀서 영상을 제공했다. 사용자(end user)가 사용하는 브라우저와 OS 정책에 맞춘 DRM들이 달라서, 이 DRM들에 따라 입혀진 콘텐츠들이 여러 개가 발생하고 이로 인해 스토리지도 많은 양을 차지하고, CDN에도 많은 부분을 차지하게 되는 등의 문제가 있었다. 이러한 단점들과 함께, 이런 DRM을 이용하려면 사용자가 플러그인을 이용해서 설치해야 했는데, 이 플러그인은 현재 제공을 안 하는 기능으로, 보안성 문제로 인해 온라인에서 사라진 지 오래전이다.

 

 

멀티 DRM

 

 - 멀티 DRM (Multi DRM)

하지만 HTML5의 Video 태그 (<video>) 및 확장 기술의 등장으로 DRM 시장의 변화가 일어나게 된다. MSE(Media Source extensions)와 EME(Encrypted Media Extensions)이 추가되었기 때문이다.

 

  ▷ MSE를 이용해서 HTML5 자체에서 ABS(Adaptive Bitrate Streaming) 제어가 가능해졌고, 이용한 기술로 변화 태그를 이용해 플러그인을 사용하지 않고, HTML5 App차원에서 ABS 제어 가능할뿐더러, DRM이 입혀진 콘텐츠 제어가 가능하다.

 

   EME는 <video> 태그를 확장해서 플러그인 필요 없이 DRM이 쓰인 파일을 제어할 수 있도록 가능하다. HTML5의 등장으로 싱글 DRM과 달리 주요 브라우저 혹은 OS (마이크로 소프트, 구글, 애플)에서 제공하는 PlayReady, Widevine, Fariplay 설루션을 표준화된 규격에 따라 콘텐츠에 적용하는 '멀티 DRM(Multi-DRM)'이 등장한다.

 

 

그럼 멀티 DRM을 적용하려면 어떻게 해야 하나? 우선, 하나의 원본 콘텐츠에 대해서 멀티 DRM을 적용하고자 한다면, DASH(Dynamic Adaptive Streaming over HTTP)와 HLS(HTTP Live streaming) 두 개의 스트리밍 방식으로 콘텐츠를 패키징 해야 한다.

 

  ▶ DASH는 MS의 PlayReady와 구글의 WideVine DRM을 한 콘텐츠에 적용이 가능하다. 이는 HTTP 환경에서 적응형 스트리밍을 지원하기 위한 표준 프로토콜로 제정되었고, MPEG 포럼에서 재정되었다.

 

   HLS는 애플에서 만든 스트리밍 방식이며, 애플의 Fairplay DRM 적용이 가능하다. 애플 기기에서 이용하려면 반드시 HLS로 콘텐츠 패키징을 진행해야 한다.

 

728x90

 

이를 사용하면 기본적으로 많이 사용하는 브라우저와 OS에서 멀티 DRM을 적용한 콘텐츠를 재생하는데 큰 문제없지만, 운영하는 입장에서는 HLS와 DASH으로 구현된 멀티 DRM 콘텐츠는 비용이 증가되는 단점이 발생된다. 싱글 DRM으로 여러 벌의 DRM이 입혀진 콘텐츠를 운영하는 것 보다는 매우 낮지만, 두 개의 DRM 방식으로 적용된 DRM 컨텐츠 용량 차지로 인해 이용하는 저장공간은 높아지기 때문이다.

 

또한, 라이브 인코딩에 사용 시에는 두 개의 DRM이 한 번에 패키징이 이뤄지니 지연 시간이 증가할 수밖에 없고, 엔드유저가 사용하는 브라우저나 OS에 따라서 두 개의 DRM 파일이 전달되어 CDN 비용도 증가한다. 사용은 편해졌지만 이러한 문제점들 때문에, 관련 업체들은 단일 콘텐츠 표준을 만들기 위해 계속해서 노력 중에 있다. 이러한 멀티 DRM의 개발 사항들은 추후 다른 포스팅으로 이야기를 하겠다.

 

그럼에도 많이 사용하는 이유는 아무래도 편리함이다. 최근 DRM 회사들이 자체 제작한 개별 Agent를 설치하지 않고, DRM 파일을 재생할 수 있다는 것이 가장 큰 장점이며, 이를 기반으로 현재 넷플릭스나 혹은 콘텐츠 업체에서 많이 사용하고 있다. 이를 이용해서 녹화나 캡처의 차단을 막을 수 있는 설루션도 적용시킬 수 있으니 콘텐츠에 대한 보안이 적절하다. 하지만 DRM을 사용하고 있음에도 불구하고, 불법 녹화를 감행하는 사람들이 있다. 이런 사람들을 위해 방지하는 서비스는 ‘포렌식 워터마킹’이다. 이는 추후의 동영상 보안 포스팅에서 자세히 이야기를 하려고 한다.


마지막 이야기 내용은 멀티 DRM을 적용하는 워크플로우이다.

 

1.   VOD나 live를 스토리지에 올립니다. 이때 스토리지 부분부터 전송단, 그리고 콘텐츠 키의 인증정책을 구성하는 부분 모두 클라우드로 구성되어 있습니다.

2.   스토리지에 저장된 VOD와 live 파일을 MP4 집합으로 인코딩하고, 콘텐츠 키를 만들어 인코딩 된 VOD나 Live에 연결합니다. 이때, 콘텐츠 키에는 VOD나 Live의 암호화 키가 들어있습니다. 

3.   콘텐츠 키의 권한 부여 정책을 구성하고, 인증 정책을 구성합니다. 이 콘텐츠 키가 클라이언트에 전달되려면 먼저 정책을 충족해야 합니다.

4.   전달되는 VOD나 live에 대한 정책을 구성합니다. 이때, DASH, MPEG, HLS와 같은 프로토콜과 동적 암호화 유형, 암호화 및 암호 해독에 관한 정보가 포함됩니다. 이후 유저가 볼 수 있는 스트리밍 URL을 생성해서 전달하게 됩니다.

 

출처 : docs.microsoft.com

 

 

자세한 개발적인 내용은 상단에서 확인이 가능하며, 유저가 해당 DRM이 걸린 파일을 보기 위해서는 콘텐츠 제작자가 발급한 클라이언트가 있어야 하는데, 멀티 DRM의 경우에는 유저가 가지고 있는 ‘인증 토큰’을 이용하며, 이는 상단의 그림에 나와있는 브라우저에서 모두 적용될 수 있다. 즉, 멀티 DRM의 라이선스도, 인증 토큰도, 배포자가 DRM으로 둘러싼 동영상도 모두 브라우 저단을 통해서 움직일 수 있게 되었고, 초반에 말한 HTML5의 등장으로 인해, 쉽게 멀티 DRM을 이용할 수 있게 되었다. 이런 기능은 현재 영상 기반의 시대에 살아가고 있는 우리 주변에서 쉽게 접할 수 있는데, 특히 넷플릭스에서 캡처했을 때에 캡처가 안 되는 것도 해당 부분에 속한다.

 

5부작으로 영상 IT 관련한 기본적인 이야기를 하였으니, 다음부터는 다양한 분야의 IT 이야기를 끄적여보고자 한다.

728x90
반응형