- 浏览: 196039 次
- 性别:
- 来自: 北京
最新评论
-
zeroliu:
测试评论。。。
UMP编程比赛:封装TCP连接池和DAL客户端接口库。(7.27更新) -
zeroliu:
新的代码,有一个平滑压缩的处理,还有变灰的处理。
impor ...
Java小程序:批量图片处理(缩小和添加Logo) -
小冰糕:
kenter1643 写道前几天我也在弄串口通讯,也是得到空的 ...
学习笔记:Java串口编程(短信Modem). -
salever:
不错,
学习笔记:Java串口编程(短信Modem). -
zeroliu:
我发现本帖,在blog栏目已经找不到了,搜索也不行,不知道什么 ...
反编译android应用,降低权限反吸费和隐藏广告,重新打包和签名【原创】
http://zeroliu.blogdriver.com/zeroliu/1266005.html
【虎.无名】OMA-DRM-2学习笔记:OMA-TS-DRM-DCF-V2_0-20060303-A.pdf
4, introduction
The DRM Content Format is closely related to the Rights Expression Language specification [DRMREL-v2], which defines the syntax and semantics for the Rights Objects.
The file format is extensible, so additional features may be added in the future while maintaining compatibility with the older versions.
Compatibility with the version 1 Content Format [DRMCF-v1] is not maintained by this specification, therefore a different MIME type is used.
注:从上看出DRMCF-v2与DRMCF-v1格式不兼容,并使用了独立的MIME类型;
There are two profiles of the DRM Content Format. One is used for Discrete Media (such as still images) and one for Continuous Media (such as music or video).
注:新的DRMREL-v2分别针对Discrete Media和Continuous Media定义了两种配置格式;
The Content Issuer can decide which profile to use for their content, but in general, the profile for Continuous Media should be used for Continuous Media content, in order to create a harmonious user experience. The Discrete Media profile should be used for other types of content.
To a User, the difference is that a file conforming to the Discrete Media profile looks like a DRM protected file, whereas a file conforming to the Continuous Media profile looks and functions like a media file to the outside.
注:如何决定采用哪种格式。。。
5. DRM Content Format
There are two DRM Content Format profiles: DCF,PDCF...
DCF:This specification defines the Discrete Media format based on the types of the ISO base media file format [ISO14496-12], instead of WSP types [WSP] used in Version 1 [DRMCF-v1]. By using the ISO principles, the DCF format maintains the extensible nature of the ISO format, while keeping overhead minimal.
PDCF(Packetized DCF):Continuous media is protected in a separate profile because it is packetized and thus the profile is called the Packetized DCF (PDCF). Applications that read and parse Continuous Media are meant to work on the file on a packet-by-packet basis. An OMA DRM compliant streaming server MUST be able to understand the Content Format’s structure in order to break the content into headers and packets that can be delivered to a client that understands the Content Format.
注:DCF基于ISO14496-12来定义,而不是象DRMCF-v1一样基于WSP类型。
5.1.1 ISO File structure
The ISO base media file format is structured around an object-oriented design of boxes.
A basic box has two mandatory fields, size and type. The type identifier is used to dynamically bind a box to a statically defined type and the size is an offset from start to the end of the box. A Box type identifier is a Unique Identifier Number. List of reserved numbers can be found in Appendix B. The identifier is constructed from four bytes, each representing a human-readable character, thus the name Four Character Code (4CC).
The ISO base format uses a language called Syntax Description Language (SDL) for defining data structures.
注:采用面向对象的SDL来描述DCF-v2/ISO的结构。基本结构有size和type两个字段,既可视为int(32)整数,也可视为4个ASCII字节(4CC)格式;
aligned(8) class Box (unsigned int(32) boxtype, optional unsigned int(8)[16] extended_type) {
unsigned int(32) size;
unsigned int(32) type = boxtype;
//条件扩充(略)
}
aligned(8) class FullBox(unsigned int(32) type, unsigned int(8) v, bit(24) f) extends Box(type) {
unsigned int(8) version = v;
unsigned int(24) flags = f; //bit(24)=unsigned int(24)
}
注:那么FullBox将有一下几个字段;
Size unsigned int(32) Offset to the end of the box
Type unsigned int(32) Box type 4CC
Version unsigned int(8) Version field
Flags unsigned int(24) Additional flags
The numeric fields in the ISO format are in network byte order.
注:以上结构采用aligned(8)字节对齐(即按字节对齐,而不是缺省的int32对齐,无填充),以及网络字节顺序。
5.2.1 Common Headers Box
aligned(8) class OMADRMCommonHeaders extends FullBox('ohdr', version, 0) {
unsigned int(8) EncryptionMethod; // Encryption method
unsigned int(8) PaddingScheme; // Padding type
unsigned int(64) PlaintextLength; // Plaintext content length in bytes
unsigned int(16) ContentIDLength; // Length of ContentID field in bytes
unsigned int(16) RightsIssuerURLLength; // Rights Issuer URL field length in bytes
unsigned int(16) TextualHeadersLength; // Length of the TextualHeaders array in bytes
char ContentID[]; // Content ID string
char RightsIssuerURL[]; // Rights Issuer URL string
string TextualHeaders[]; // Additional headers as Name:Value pairs
Box ExtendedHeaders[]; // Extended headers boxes
}
This box MUST appear in both DCF and PDCF.
疑问:如何确定ExtendedHeaders的长度,由PlaintextLength来决定?报文体用ExtendedHeaders来包装?允许多个Box?
5.2.1.1 Common Headers Version
The version field of the FullBox defines which version of DRM Content Format specification was used by the author of the Content Object.
The value for version MUST be 0 for objects conforming to this specification.
注:填充0
5.2.1.2 EncryptionMethod Field:NULL、AES_128_CBC、AES_128_CTR
Rights Issuers should take care in using NULL EncryptionMethod because, given a null-encrypted Media Object within a DCF or PDCF, the following statements hold true:
-Null-encrypted Media Objects do not have any Confidentiality protection.
-Null-encrypted Media Objects can always be used without an associated Rights Object.
-Null-encrypted Media Objects may not have any integrity protection.
注:不推荐用Null-encrypted方式,无需权限对象就可使用。
5.2.1.4 PlaintextLength Field
The PlaintextLength field defines the length of the original plaintext. If the content is encrypted, it MUST have a PlaintextLength value set.
If the extracted content length does not match the PlaintextLength field value, it is an error and the Content Object MUST be discarded.
注:如加密,则填写加密后的长度。
5.2.1.5 ContentIDLength Field
The ContentIDLength field defines the number of bytes occupied by the ContentID field. The value MUST be greater than zero.
A Device MUST support ContentIDs of at least 256 bytes. For best interoperability, content author should not use a ContentID larger than 256 bytes.
注:ContentIDLength和RightsIssuerURLLength,长度应在(0..256]的范围内;
5.2.1.7 TextualHeadersLength Field
Thus, conforming tools MUST use the TextualHeadersLength field. A Device MUST support textual headers of at least 2048 bytes total length.
注:设备至少支持2048的TextualHeadersLength长度。
5.2.1.8 ContentID Field
The ContentID field MUST contain a globally unique identifier for this Content Object. Note that even if two or more Content Objects contain the same Media Object, the Content Objects will each have a different (and globally unique) ContentID.
The value MUST be encoded using US-ASCII encoding.
The value MUST be a unique URI according to [RFC2396].
If the Content Object is referenced from a DRM Rights Object, the value of the ContentID field MUST match the value of the referencing element of the Rights Object as defined in [DRMREL-v2]. The ContentID MUST be in the ‘cid-url’ format of [RFC2392].
注:必须按US-ASCII编码,必须符合URI规范。对于OMA-DRM-2还必须按照cid-url格式。
5.2.1.9 RightsIssuerURL Field
The value of the RightsIssuerURL MUST be a URL according to [RFC2396], and MUST be an absolute identifier. The RightsIssuerURL MAY be empty e.g. if the Content Object is not encrypted.
注:当Null-encrypted时,改字段允许为null。
5.2.2 Textual Headers
注:范例 Silent:on-demand;http://myissuer.com/silent?cid=428\0Preview:instant;cid:429@myissuer.com\0
Each supported header is defined using augmented Backus-Naur Form (BNF) [RFC2234].
The textual headers are encoded using UTF-8 encoding.
Ordering of headers is significant, and the headers MUST be in the order of priority, from highest to lowest. This means that e.g. if the textual headers include both Silent and Preview headers, whichever appears first in the field is considered to have priority over the second.
注:所支持的头信息由BNF[RFC2234]来定义。按UTF-8编码。多个头信息按优先级从高到低来排列。
5.2.2.1 Silent header
格式:Silent:on-demand;silent-rights-url或者Silent:in-advance;silent-rights-url
The parameter silent-rights-url MUST be a URL according to [RFC2396] and a successful request to the URL MUST return a ROAP Trigger, a Download Descriptor or a bundled Download Descriptor and ROAP Trigger as defined in [DRMv2].
注:为URL格式,返回ROAP触发器、DD描述、或者DD+ROAP
If silent-rights-url is a HTTP URL and the request fails with error code 404 Not Found [RFC2616], the Device SHOULD NOT make further requests to the URL. If the request fails with some other error, the Device MAY retry the request at a later time.
注:如果返回404错误,不再请求;否则,可以重试改URL。
The parameter silent-rights-url MUST be specified on the Silent header. The device MUST use this silent-rightsurl to obtain rights silently and automatically according to [DRM-v2].
注:设备自动按照DRM-v2通过silent-rights-url来获取权限。
5.2.2.2 Preview header
The Preview header contains an indication to the client that it is possible to provide a preview for this DRM Content.
5.2.2.3 ContentURL header
The ContentURL header is used to indicate a location for acquiring the DCF or PDCF.
注:用于不支持当前dcf包装的媒体文件时,下载同一个内容的其他版本。
5.2.2.6 Custom headers
Content author MAY insert additional Custom headers to the TextualHeaders field. Custom headers MUST follow the generic syntax defined below, encoded using UTF-8 encoding.
Consuming Devices MUST ignore the headers that they do not recognize.
注:用户自定义header信息,必须用UTF-8编码,设备必须能忽略不识别的头信息。
5.2.3 Extended Headers
The ExtendedHeaders field MAY include zero or more nested boxes that add functionalities to the common headers. The ExtendedHeaders field continues until the end of the parent box is reached.
注:允许0个或者多个nested的Box
5.2.3.1 Group ID
The ExtendedHeaders field MAY include one instance of the OMADRMGroupID Box:
aligned (8) class OMADRMGroupID extends FullBox('grpi', version, 0) {
unsigned int(16) GroupIDLength; // length of the Group ID URI
unsigned int(8) GKEncryptionMethod; // Group Key encryption algorithm
unsigned int(16) GKLength; // length of the encrypted Group Key
char GroupID[GroupIDLength]; // Group ID URI
byte GroupKey[GKLength]; // Encrypted Group Key and encryption information
}
注:可以包含1个OMADRMGroupID实例。type定义为'grpi'。
The GroupID value identifies this DCF as part of a group of DCF's whose Rights can be defined in a common group Rights Object instead of (or in addition to) in separate content-specific Rights Objects.
The value of GroupID MUST be a URI according to [RFC2396] and MUST contain a globally unique identifier. The value MUST be encoded using US-ASCII encoding.
注:GroupID表示该DCF是一组DCF的一部分,使用公共的组权限对象RO。GroupID按URI格式来定义,使用US-ASCII编码。
Generally each content item in a group will be encrypted with a different content item encryption key.
A single additional key (used for the whole group) is used to encrypt each content item encryption key for storage in the GroupKey field.
注:一般每个内容项将使用不同的CEK加密。而额外的组密钥GEK,用来加密各个CEK。
Note that since the Group ID box is part of the OMA DRM container box, it is possible for different content items in a multipart DCF to belong to different groups
注:(没明白)
The NULL EncryptionMethod MUST NOT be used as a GKEncryptionMethod.
注:EncryptionMethod不允许使用NULL
5.2.4 Mutable DRM Information Box
A Device MAY modify, extend, truncate, delete or add the MutableDRMInformation box.
The contents of the box MUST be interpreted as an array of Boxes, continuing until the end of the parent box.
注:把内容解析为Box数组,从父Box的结束处开始。
aligned(8) MutableDRMInformation extends Box(‘mdri’) {
Box data[]; // array of any boxes and free space
}
5.2.4.1 Transaction Tracking Box
The OMA DRM Transaction Tracking Box enables transaction tracking as defined in [DRM-v2] section 12.3.
The OMADRMTransactionTracking box MUST include a single TransactionID value as defined below. It MAY appear in both DCF and PDCF.
注:用于跟踪会话,在DCF/PDCF中都可能出现。
aligned(8) class OMADRMTransactionTracking extends FullBox('odtt', 0, 0) {
char TransactionID[16]; // value to enable transaction tracking
}
The Rights Issuer MAY provide any value as a TransactionID to the DRM Agent during the Rights acquisition process and the TransactionID included in the DRM Container may be changed by the DRM Agent as defined in [DRM-v2]. When packaging content, the TransactionID MAY be set to an arbitrary value.
注:TransactionID可以使用任意值填充,DRM Agent有可能修改该值。(Why?)
5.2.4.2 Rights Object Box
The rights object box MAY be used to insert a Protected Rights Object, defined in [DRM-v2] section 5.3.8, into a DCF or PDCF.
A MutableDRMInformation box MAY include zero or more Rights Object boxes.
The Rights Object is treated as binary data and a Device MAY add or delete Rights Object boxes in the MutableDRMInformation box.
aligned(8) class OMADRMRightsObject extends FullBox('odrb', 0, 0) {
byte Data[]; // binary Rights Object
}
注:MutableDRMInformation可能包含0个或多个OMADRMRightsObject。设备在处理过程中可能会添加或删除OMADRMRightsObject信息。
5.3 DCF Hash Calculation
Content Objects MAY be protected for integrity by including a DCF hash into a Rights Object or ROAP request. Since (P)DCF MAY include structures editable by the Device, these structures are excluded from hash calculation. The DCF hash MUST be calculated from the beginning of the DCF to the end of the last OMADRMContainer, ignoring the MutableDRMInformation box. PDCF hash MUST be calculated from the beginning of the PDCF, skipping the MutableDRMInformation box after the movie box, or end of file in case there is no MutableDRMInformation box present.
注:内容的hash可能会用在Rights Object或者ROAP request中。考虑到DCF/PDCF可能被设备修改,计算hash时候需要特别注意,需要忽略MutableDRMInformation部分。
6. Discrete Media Profile (DCF)
6.1 DCF MIME Type
注:MIME类型必须是application/vnd.oma.drm.dcf,文件后缀名“.odf”.
发表评论
-
反编译android应用,降低权限反吸费和隐藏广告,重新打包和签名【原创】
2011-07-27 13:20 8727功能:反编译apk降低权限及重新签名 场景:很多软件,申请了一 ... -
修复mina2客户端IoSession.close()在jdk1.5下关闭不彻底问题
2009-11-23 15:51 6129原帖:http://hi.baidu.com/zeorliu/ ... -
日志API改进:用commons-log还是slf4j?这是一个问题!
2009-02-11 10:23 3686用commons-log还是slf4j?这是一个问题! 看jd ... -
在Web中动态生成验证码:Servlet和Rest模式
2008-09-24 10:23 3577【虎.无名】登录处理常用到一个生成随机校验码图片的处理。下面是 ... -
【虎.无名】自定义Java的REST行为分发器
2008-09-10 09:10 3026【虎.无名】在Restlet和Rails中,资源所支持的Act ... -
算法分析:货郎担问题求解分析
2008-07-22 10:28 4640【虎.无名】看到一个帖子 【迷题:走遍全国各省会的最短路线问题 ... -
答复: 谁能告诉我,什么是企业“级”应用?
2008-04-24 16:16 2244http://www.iteye.com/topic/1078 ... -
答greatolee:OMADRM的agent并不能获取明文内容
2008-04-23 17:00 1997greatolee,您好! OMADRM有2个版本,你说的是O ... -
答g_ktcy短信格式:文本,超长文本,WapPush、OMA-DRM权限、Wap书签、GPRS配置
2008-04-17 15:57 3171g_ktcy,您好! 短信有很多种类:文本,超长文本,WapP ... -
Linux下通过ftp命令实现断点续传(reget)
2008-02-19 14:43 13693同事在Linux通过FTP获取一个1.3G的大文件,传了一个上 ... -
学习笔记:Java串口编程(短信Modem).
2007-08-03 12:04 18880最终目标:在Linux下提供一个稳定可靠的Java短信发送服务 ... -
Symbian OS C++学习笔记2异常退出
2007-03-21 09:40 3232Ch2. 异常退出(Leave) -------------- ... -
OMADRM2学习笔记:DCF-v2结构解析
2007-03-21 09:39 2843【虎.无名】由于需要支持流媒体格式,因而OMA-DRM-DCF ... -
Symbian OS C++学习笔记1命名约定
2007-03-09 15:52 2363http://zeroliu.blogdriver.com/z ... -
用Java动态代理实现委托模式
2006-10-23 17:35 5409委托模式是软件设计模式中的一项基本技巧。在委托模式中,有两个对 ... -
Java开发八荣八耻 zt
2006-10-20 09:54 1714以动手实践为荣,以只看不练为耻。 以打印日志为荣,以出错不报为 ... -
查看磁盘剩余空间:Java代码改进
2006-10-09 10:09 8442原来发布在Blog上的:http://zeroliu.blog ...
相关推荐
根据提供的文件信息,我们可以深入探讨OMA-AD-DRM-V2_0-20060303-A文档中的关键知识点,主要包括OMA架构协议的介绍、信任模型以及Use Case的应用场景。 ### OMA架构协议介绍 #### 1. OMA概述 OMA(Open Mobile ...
本文档标题为“OMA-AD-SUPL-V2_0-***-C.pdf”,从标题和描述中可以看出,文档属于技术标准或协议的一部分,其中“OMA”指的可能是“Open Mobile Alliance”(开放移动联盟),这是一个全球性的行业组织,旨在为移动...
2. **OMA-TS-DRM_DRM-V2_1-20081106-A.pdf**:这是技术规范文档,详细阐述了OMA DRM的核心功能和实现细节,可能包括系统架构、安全机制、协议交互等方面。 3. **OMA-TS-DRM_REL-V2_1-20081014-A.pdf**:同样为技术...
文件列表中的"OMA-RD-DRM-V2_2-20100629-C.pdf"可能是OMA DRM的规范文档,详细描述了DRM系统的设计、实施和互操作性要求。另一方面,"OMA-ERELD-DRM-V2_2-20100629-C.pdf"可能涵盖了与内容发布和许可相关的部分,...
"OMA-TS-DRM_DRM-V2_1-20081106-A.doc" 这个文档很可能是OMA DRM v2.1 规范的官方技术规格文档,包含了详细的技术要求、接口定义、安全模型、实施指南等内容。通过深入阅读这个文档,开发者和系统集成商可以了解到...
OMA是一个全球性的行业联盟,成立于2002年,旨在为移动通信行业制定开放的技术标准和规范。OMA致力于确保不同厂商和不同网络之间的互操作性,以加速新服务和应用的部署。通过制定标准,OMA支持各种移动服务,包括...
3. **OMA-TS-DRM_DCF-V2_0_2-20080723-A.pdf**:DCF(Delivery Context Framework)可能涉及内容的传输和分发环境,定义了如何在不同的网络条件和设备环境下安全地传输DRM保护的内容。 4. **OMA-AD-DRM-V2_0_1-...
4. **OMA DRM核心功能**:OMA-Download-DRM-V1_0-20040615-A.pdf可能详细阐述了DRM的核心功能,包括内容加密算法、用户设备上的DRM客户端功能、以及与服务器端的交互协议。 5. **OMA DRM Content Format**:OMA-...
压缩包中的文件“OMA-TS-DRM-DRM-V2_0-20060303-A.pdf”是OMA DRM V2.0规范的详细技术文档,包含了该标准的所有细节和技术要求,对于开发者、设备制造商和内容服务提供商来说是重要的参考资料。通过阅读这份文档,...
《OMA-RD-PoC-V2_1-20110802-A》是针对Push-to-Talk Over Cellular(PoC)技术的一份重要文档,它详细阐述了PoC的功能需求,旨在为开发者、系统设计者以及相关行业从业者提供全面的指导。PoC是一种基于移动通信网络...
### OMA DRM 规范详解 #### 一、OMA DRM 概述 **OMA DRM(Open Mobile Alliance Digital Rights Management)** 是由开放移动联盟(Open Mobile Alliance, OMA)制定的一套数字版权管理标准。该标准旨在为移动设备...
《OMA-TS-PoC_System_Description-V2_1-20110802-A》这份文档详细阐述了Push-to-Talk over Cellular(POC)系统的运作机制和技术规范,是理解移动通信中即时语音通信服务的重要参考资料。POC是一种在移动网络上实现...
基于对DRM重要性的关注,全球许多标准组织和厂商 纷纷独立或联合进行了DRM技术研究,推出了各自的技术 标准。在oMA(开放移动联盟)...DRM2.O标准,此标准是目前业界最成熟、参与者最多、影 0向力最大的主流DRM标准。
根据文档标题“OMA-TS-DM_Protocol-V1_2_1-20080617-A.pdf”,我们可以了解到这是一份关于OMA DM基础规范的文档,具体为MDM(Device Management Protocol)协议部分,版本号为1.2.1,发布日期为2008年6月17日。...
"OMA-AD-PoC-V2_1-20110802-A.pdf"这份文档详细阐述了OMA的POC(Proof of Concept,概念验证)的总体架构,它是POC技术的一个关键组成部分。在POC的概念验证阶段,OMA通常会制定一套详细的技术规范,用于测试和验证...
### 一种基于Android DRM框架实现OMA DRM的方法 #### 概述 随着高清媒体内容的快速发展,对于此类内容的保护变得日益重要。数字版权管理(Digital Rights Management, DRM)作为一种广泛应用的技术,在保护数字...
SUPL V1.0是该协议的第一个版本,于2007年6月15日发布,其文档名为"OMA-ERP-SUPL-V1_0-20070615-A",这表明它是OMA Enhanced 911(ERP)工作组的一部分,专注于紧急呼叫服务中的定位技术。 SUPL协议基于GPS...