2014년 1월 16일 목요일

[튜토리얼/한글화] EME란 무엇인가? (EME WTF?: An introduction to Encrypted Media Extensions)

HTML5Rocks에 +Sam Dutton의 'EME란 무엇인가?: 암호화된 미디어 확장(EME WTF?: An Introduction to Encrypted Media Extensions)' 튜토리얼이 라이브되었습니다. 이번 번역은 한순보님께서 수고해주셨습니다. :)

EME는 말 그대로 Encrypted Media Extension의 약자로 미디어 엘리먼트(Video, Audio)에 대한 DRM(Digital Rights Management)를 제공하는 규격입니다. 논란이 있기는 했지만 어쨌던 서버에서 제어하던 비디오 등의 미디어 액세스 권한을 브라우저 측으로 내렸다고 봐도 무방합니다. 미디어 서비스를 하시는 분들이 주로 관심이 많겠네요. :)

아래는 W3C Restrict Media Community Group에서 이루어진 EME에 대한 논의 요약입니다. 본문에도 포함되어 있지만 아직 논란이 많은 부분이라 따로 발췌해서 첨부합니다.

  • 장점
    • EME(또는 같은 기술) 없이는 미디어 기업들은 웹을 통해 컨텐츠를 배포하지 않을 것입니다.
    • 잠겨진 장치에 대해 제한된 컨텐츠의 배포를 방지할 수 있습니다.
    • 파편화되고 유지보수가 불가능하며 독점적인 솔루션에 대한 의존을 줄여주는 개방형 표준입니다.
    • CDM으로부터 분리된 EME API 디자인의 유지를 통해 EME가 노후되는 것을 방지할 수 있습니다.
      • 역주: 즉, 실제 복호화 등에 대해 기능이 분리되어 운영체제 등의 업데이트로 지속적으로 암/복호화 등의 기반 기술의 업데이트가 가능하다는 뜻입니다만 이게 논란의 여지이기도 합니다. 인터페이스는 있으나 실제 구현으로 인한 의존도가 있다는 주장도 있다는 것이죠.
    • 컨텐츠 저작자가 수익을 얻는 것을 가능하게 하므로 DRM은 본질적으로 악한 것이 아닙니다.
    • 미디어 기업들이 다른 것을 건드리지 않고 웹을 통해 배포할 수 있도록 합니다.
    • EME(또는 같은 기술)은 W3C에서 관리할 것이며 W3C 표준은 여러개의 산업 표준보다 낫습니다.
  • 단점
    • 실제의 권한 관리는 W3C 규격에 포함되지 않았습니다.
    • 이를 다르게 부르자면 DRM이며 DRM은 오픈 웹에 대해 적대적인 개념입니다.
    • EME는 DRM이고 DRM은 지금까지 절대로 동작한 적이 없습니다.
      • 역주: 즉, DRM이 제대로 지원 및 표준화되어 제공된 사례가 없다는 뜻입니다.
    • (DVD에서 사용자가 광고를 건너뛰는 것을 불가능하게 한 것처럼) 사용자가 아니라 기업의 이익을 위해 설계되어 있습니다.
    • 다른 형태의 DRM보다 접근성에 있어 더 안좋습니다.
    • 본질적으로 플러그인 아키텍처를 의미하는 CDMS에 의존하며 플러그인은 좋지않은 선택입니다.
    • 컨텐츠 보호 메커니즘과 같은 결함이 있습니다 .
    • 스트리밍은 표준이 될 것이며 그 맥락에서 모든 형태의 DRM은 미디어가 훨씬 더 적게 액세스되도록 할 것입니다. 사용자 에이전트, 운영체제 그리고 하드웨어를 방해함으로써 말입니다.


"사실 DRM은 온라인 미디어 산업의 요구사항이 강하게 반영된 것이지만 도입과정에는 많은 논란이 있었습니다. 모두에게 공평하게 정보를 오픈하는 웹에 대해 보안이 아니라 사실상 컨텐츠의 제어를 제공하는 기능을 제공한다는 점과 실제 구현에 있어서 암호화된 컨텐츠를 복호화하기 위한 CDM(Content Decryption Module)은 브라우저 외부에 정의되어 기술의 지나친 경쟁과 파편화를 유도할 수 있다는 점이었죠. 현재 시점에서는 컨텐츠 저작 및 유통측의 손을 들어준 상태입니다만 CDM에 대해서는 지속적인 논란이 있을 것 같습니다."


TL;DR;


EME는 미디어 엘리먼트(Video, Audio)에 대한 DRM(Digital Rights Management)를 제공하는 규격입니다. EME(Encrypted Media Extensions)는 웹 어플리케이션이 암호화된 오디오와 비디오 재생의 허가를 위한 컨텐츠 보호 시스템과 연동할 수 있도록 하는 API를 제공합니다.

이 튜토리얼은 다음과 같은 EME를 이용한 미디어 재생의 개략적인 동작 과정을 다루며

  1. 하나 이상의 암호화된 스트림을 가진 오디오나 비디오의 재생 시도
  2. 브라우저가 미디어의 암호화를 인지하고 액세스를 위한 키 요청 이벤트(needkey)를 메타데이터와 함께 전달하고
  3. 어플리케이션이 needkey 이벤트에 대해 미디어키가 없을 경우 사용가능한 키 시스템과 라이센스 서버를 통해 키 생성합니다.
  4. CDM 연동을 위한 세션을 생성하여
  5. CDM이 준비되면 message 이벤트를 발생하고
  6. 세션이 message 이벤트를 수신하여 라이센스 서버에 대해 키를 요청하고
  7. 라이센스 서버로부터 전달받은 데이터를 미디어 키 세션을 통해 전달받고
  8. 라이센스 내의 키들을 이용하여 미디어 복호화하여
  9. 미디어 재생을 시작

이외에도 기본적인 기능으로 미디어에 대한 복호화 기능을 제공하는 CDM부터 라이센스 서버로부터의 키획득, 일반적인 암호화 및 클리어 키(Clear Key) 등에 대한 소개와 데모 등을 포함하고 있습니다.

보다 자세한 내용은 튜토리얼을 참고하시기 바랍니다.

번역 링크