W3C home > Mailing lists > Public > public-html-ig-ko@w3.org > May 2012

Re: Encrypted Media Extensions v0.1

From: Taehyun Kim <thkim@inisoft.co.kr>
Date: Fri, 25 May 2012 22:00:29 +0900
Message-ID: <CADVo3XMLkm2wvYZeF9c--JuXsRpjei3_s2A9T+PJpWyT_W4DTA@mail.gmail.com>
To: public-html-ig-ko@w3.org
Encrypted Media Extension에 대한 간단 설명을 드리겠습니다.

http://dvcs.w3.org/hg/html-media/raw-file/tip/encrypted-media/stack_overview.png

위 그림만 이해 하시면 됩니다.

CDM이라고 되어 있는 모듈이 DRM/CAS등이 탑재되는 모듈입니다.

App->Player에 재생 요청을 하고 generateKeyRequest()를 하면.

CDM모듈은 KeyRequest를 생성합니다. CDM구현에 따라 다르겠지만
예를 들어 IPTV라면 STB내의 IC카드의 인증서(Private Key)를 기반으로 자신의 Public Key와 Contents
ID등을 전자 서명해서
Key  요청 메시지를 생성합니다. ( 자세한 암호화 방식은 각 CDM마다 다르게 동작합니다. 예를 들어서 설명한 것 입니다. )

App은 이것을 DRM서버로 전달하고 DRM 서버는 KeyRequest메시지안에 있는 Public Key를 이용해서 Contents
Key를 암호화 하여
Response 메시지를 생성합니다.

암호화된 Key Response메시지는 addKey() 함수로 CDM모듈로 전달되고 CDM모듈은 STB내의 IC카드의 private
key를 이용하여
Contents Key 를 복호화 해냅니다.

한번의 Request / Response로 Key가 전달될 수도 있고 단말 인증을 위하여 몇번 더 메시지를 주고 받아야 할 수도
있습니다.
제가 예를 든것은 1번으로 Key가 전달되는 경우입니다. 보통은 4-pass ( 2번의 Req/Resp )로 처리되는 것이 일반적입니다.

하여튼 몇번의 generateKeyRequest() / addKey() 를 반복하고 addKey()가 완료되면

CDM모듈에는 이제 콘텐트를 복호화 할 수 있는 KEY가 존재하게 됩니다.

나머지는 Network로 받은 데이터를 CDM에 전달하면 Media Player에 복호화된 데이터를 전달하는 구조입니다.
제대로 구현하자면 Media Player와 CDM모듈은 OS에서 보호받는 보안 영역에서 구동되는 방식으로 개발되어야 합니다.



-- 
김 태현
e-mail: thkim@inisoft.co.kr
Mobile : 010-3373-7973
google talk: thkim@inisoft.co.kr
Received on Friday, 25 May 2012 14:05:01 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 25 May 2012 14:05:01 GMT