Wednesday, April 29, 2009

Java ODP (On Device Portal)

http://java.sun.com/products/java-odp/

Learning Path: MIDlet Life Cycle

http://developers.sun.com/mobility/learn/midp/lifecycle/

DCF (DRM Content Format)

DCF는 사실 암호화된 컨텐츠의 확장자로 더 많이 보인다.



우리가 핸드폰에서 유료 서비스로 받은 음악 파일의 확장자는 mp3, wma가 아닌 dcf로 되어 있는 경우가 많다.



사실 DCF는 DRM Contents Format의 약자로 OMA DRM에서 컨텐츠를 암호화하는 방법을 말하며

암호화 방법은 Symmetric encryption 방법을 사용한다.

(Symmetric encryption에 대해서는 암호화를 전문으로 하는 사람만 관심있을 것 같다. 저기 다른 글에서 스크랩 해 놓았다.)



DCF 방식에서 파일 구조는 헤더(Header), 컨텐츠로 구분되며 간혹 컨텐츠 뒤에 특정 데이터가 더 있는 경우도 있다. 헤더는 암호화 되어 있지 않으며 컨텐츠만 암호화 되어 있어야 하며, 헤더는 단순 문자열 정보로 컨텐츠 타입, 암호화 방식이나 기타 정보들이 저장된다.



이 부분은 직접 파일을 뜯어 보지 않았는데 문서가 하나 있어서 대충 훝어 보면 다음과 같이 정보가 나열되어 있는 것 같다.



1. Media Type

2. Application/vnd.oma.drm.content

1) Version (uint8)

2) ContentTypeLen (uint8)

3) ContenURILen (uint8)

4) ContentType

5) ContentURI

6) HeadersLen (uintvar)

7) DataLen (uintvar)

8) Headers

9) Data



Data가 나오기 전까지가 앞에서 말한 헤더라고 생각하면 될 것 같고

여기에서 나온 Header는 추가의 메타 정보를 저장하고 있는 부분이라고 생각하면 될 것 같다.

메타 정보에는 Encryption method, Right issue, Content Name, Content Description, Content Vendor, Icon-URI 등이 있다.



관심있는 사람은 DCF 파일 하나 구해서 열어서 계산해 봐도 재미있을 듯..











권리 객체는 암호화를 풀수 있는 (보통 decryption이라고 한다.) CEK(Content Encryption Key)를 가지고 있다. 권리 객체는 OMA REL(Right Expression! Language)로 만들어져 있다고 한다. 사실 DRM이 전공이 아니라서 이 부분에 대해서는 관심이 없다.

mobility: Home

mobility: Home

Roland Products :: What's New

Roland Products :: What's New