一、DRM技术简介 
  DRM(Digital Right Management)是数字权限管理的简称,又可以称为“内容数字版权加密保护技术”,是目前应用最广泛的内容版权保护技术。其主要针对媒体文件在使用过程中的版权保护,打击盗版,保护版权所有者的合法权益。 
  众所周知,计算机技术和网络技术的发展大大的推动了媒体文件传播的速度、简化了用户获得媒体的途径。作为媒体文件的版权所有者,一方面可以节省大量的传播费用,借之降低成本、提高利润;另一方面,如果缺乏有效的保护,必然导致盗版泛滥,从而丧失应得利益。因此,随着计算机和网络的高速发展,如何保护网络传媒的合法版权一直是需要解决的最重要问题之一。DRM技术的诞生正是基于这样的目的。 
  DRM技术的基本工作原理可以简要描述为:首先建立数字节目授权中心并编码压缩后的数字节目内容,利用密钥将媒体文件加锁,用户在点播时,从媒体文件获取授权中心的信息并连接获取授权,通过数字节目授权中心的验证授权后,送出相关的密钥解密后才允许播放。目前在计算机上应用最多的是微软的DRM技术。 
  单纯的DRM技术不是本文的重点,因此不再赘述,读者可查询相关协议获得更详细的协议描述。本文重点描述在通信终端上应用的OMA DRM。 
  二、OMA DRM 1.0 
  OMA DRM是OMA(Open Mobie Alliance)开放移动联盟制定的可应用于移动通信终端的的DRM协议。OMA DRM在DRM基本原理的前提下进行了一定程度的变化,从而可以实现比较容易的应用。本文从应用的角度探讨OMA DRM,因此以1.0版本的应用过程为描述重点。 
  OMA DRM 1.0的下载以http协议为基础,简单的可以以DRM Message的形式发送,复杂的则可依据OMA Download协议(OTA)进行。OMA DRM明确了在终端可用的三种DRM保护方式。 
  第一,FL(转发锁定)方式。FL方式要求终端限制用户对于媒体文件的转发。当终端获得媒体文件后,可以自由无限制的在本终端使用,终端必须保护该文件不能通过通信设备或机制被转发到其他设备,包括使用红外、蓝牙、usb、外置存储卡等。在FL方式下,授权中心只负责媒体文件的发送,保护文件的职责在用户使用的具体终端。在FL文件获得的同时向授权中心缴纳版权费用。 
  第二,CD(合并发送)方式。相比FL方式,CD方式会在授权中心进行媒体文件和权限文件的合并打包。用户在使用媒体文件的时候,终端软件会查询权限对象,如果符合权限,则正常播放,否则会提示用户权限已经失效。与FL方式相同,用户在获得CD对象的同时缴纳版权费用。但CD方式高于FL方式,也就是说,终端必须保护CD方式的媒体文件也不能被用户转发。 
  第三,SD(分离发送)方式。SD方式是CD方式的一种改进。随着媒体内容的发展,媒体对象可能很大,单纯依赖移动通信网的下载可能很困难。SD方式首先将媒体文件加密并打包成特定的格式(DCF格式),方便用户可以通过多种方式获得。用户获得媒体文件的过程并不需要缴纳费用。在使用过程中,终端软件会首先从DCF格式内容中获得授权中心的URL,启动浏览器下载包含解密密钥的明文xml权限文件,下载权限文件的过程中用户缴纳相应费用获得不同的使用权限限制。 
  OMA DRM1.0规定了终端对于版权文件的保护原则和基本原理。包括权限保护的通信过程、权限对象的xml规格、SD方式下使用的DCF格式等。 
  三、协议的实现和应用 
  上一节已经提出的OMA DRM1.0对于实现细节没有明确和严格的规定。具体在应用过程中可以还需要明确下面几个细节过程: 
  对FL和CD方式的转发保护。FL文件和CD文件都是明文发送的,转发保护依赖终端软件进行,终端在应用过程中必须提供可靠的转发保护机制。 
  权限文件的保护。对于已经加密的SD文件。对权限文件的保护非常重要,权限文件以明文发送。 
  三种方式如何兼容灵活使用。FL方式、CD方式、SD方式既有共同点,又有区别,应该尽可能灵活的设计应用流程,避免多重和复杂的程序处理。 
  基于以上的考虑,OMA DRM的应用流程设计如下,对DRM message的解析或者OTA的实现都不是DRM的重点,因此本文介绍的流程从下载结束开始,如图1和图2所示。 
  从上面两个核心流程可以看出,本应用过程有下面几个特点。第一,内部密钥的使用确保了转发的不可能;第二,三种方式的文件实现了统一管理,在下载时分流后统一,简化了使用的过程,在具体使用的时刻自动实现了三种类型的分离保护;第三,流程相对简单,由于OMA DRM协议在SD的DCF格式中要求必须使用AES CBC加密算法,因此在对权限文件的加密也可以借用此算法,如果为了简化计算,还可以使用AES ECB算法。对于FL和SD标记的实现也比较简单,在DCF格式中有可扩展字段,简单扩展后就可以实现;第四,对于权限文件的使用更灵活。由于权限文件的原文是XML格式,在嵌入式系统下的实现比较复杂,流程中在下载过程中解析XML后转换为内部格式,这样就回避了权限文件使用过程中反复读取XML,权限消费后又不得不写回XML的过程,可以减少三分之一的XML解析部件的代码量。 
  四、结论 
  尽管上述流程已经非常简单易行,仍有可优化的地方。第一,AES算法比较复杂,需要大量的矩阵运算,但是可以通过查表法来提高运算速度,可使用空间换时间的策略来优化;第二,XML解析算法比较复杂,但是如果仅限读取功能且在XML源出错不需要深入细分错误类型的情况下,可以使用简单的文本查找策略来替代;第三,权限对象可能存在多个,因此内部权限文件通常是权限对象的链表,如果将内部权限的链表对象优化为16字节的倍数,则可以提高权限对象的查找和检索速度。

原文地址:https://blog.csdn.net/xjbclz/article/details/51842271

OMA DRM原理的研究及实现相关推荐

  1. 量子计算机的研究进展,量子计算原理及研究进展.pdf

    量子计算原理及研究进展 科技导报2017,35(23) 量子计算原理及研究进展量子计算原理及研究进展 韩永建,李传锋,郭光灿 中国科学技术大学:中国科学院量子信息重点实验室,合肥 230026 摘要摘 ...

  2. 看清OMA DRM文件的本质

    Forward Lock Combined Delivery Seperate Delivery DRM 文件的制作 Android中DRM代码结构 DRM即digital right managem ...

  3. OMA DRM V1.0学习笔记

    author: A.TNG email: jiyucn_at_163_dot_com OMA中关于DRM的定义主要是为了给内容提供商提供一种控制媒体对象使用的方式,包括对DRM Message的预览. ...

  4. 关于FPS透视原理的研究(一)

    关于FPS透视原理的研究(一) 方向一GDI绘制 1.CE找基址,人物X,Y,Z鼠标X,Y 这里我选择获取模块句柄的方式为跨进程访问 还有一种为注入方法用到GetModuleHandle 读取数据并在 ...

  5. 群体进化技术原理和研究思路

    学习链接 https://www.bilibili.com/video/BV11X4y1G7ZM/?spm_id_from=333.788.recommend_more_video.10 不同生存条件 ...

  6. 简要介绍 | 交叉熵损失:原理和研究现状

    注1:本文系"简要介绍"系列之一,仅从概念上对交叉熵损失进行非常简要的介绍,不适合用于深入和详细的了解. 注2:"简要介绍"系列的所有创作均使用了AIGC工具辅 ...

  7. 基于新型忆阻器的存内计算原理、研究和挑战

    作者 | 林钰登.高滨.王小虎.钱鹤.吴华强 来源 | <微纳电子与智能制造>期刊 引言 过去半个世纪以来 ,芯片计算性能的提高主要依赖于场效应晶体管尺寸的缩小.随着特征尺寸的减小 ,器件 ...

  8. 基片集成波导原理_ETH研究人员开发微型红外光谱仪 可以集成到芯片当中

    ETH研究人员开发了一种非常紧凑的红外光谱仪,其体积小到可以装在计算机芯片上,并且仍然提供功能性.研究人员说,这种芯片可以在太空和日常生活中使用.一个例子是集成到手机当中. 研究小组表示,将小型红外光 ...

  9. 语音识别技术的原理及研究难点

    在我们的生活中,语言是传递信息最重要的方式,它能够让人们之间互相了解.人和机器之间的交互也是相同的道理,让机器人知道人类要做什么.怎么做.交互的方式有动作.文本或语音等等,其中语音交互越来越被重视,因 ...

最新文章

  1. 安卓照片迁移苹果_转区功能终于上线,安卓苹果可互相迁移,20块一次,每天限量5000名额!...
  2. 实现序列化与反序列化,一定要绕开这些坑!
  3. c++Error:c++调用python文件提示由于找不到python3.8.dll,无法继续运行。。。
  4. awk对某个字段分割处理
  5. Unity 实现物体破碎效果(转)
  6. CentOS下搭建Git服务器Gitosis
  7. Java获取当前时间(二)
  8. mfc oracle数据库编程,testmfc - 源码下载|数据库系统|Oracle数据库|源代码 - 源码中国...
  9. AOSP>设计>测试>(第三节)兼容性测试套件CTS
  10. 跟着王道考研学计算机网络笔记(一):初步了解计算机网络
  11. bin文件用cad打开_bin文件怎么打开?实测可靠方法
  12. vbs格式编程教程提高
  13. UILabel发光字体
  14. FOJ1303——Calendar
  15. Excel在统计分析中的应用—第十二章—回归分析与预测-运用LINEST函数进行多元线性回归分析
  16. android动画知乎,GitHub - ryanhoo/Zhihu-Parallax-Animation: 知乎 Android 客户端启动页的视差动画效果实现...
  17. 听说Python成为世界性语言了? Python是怎么构建世界?字符串在哪里?(三)
  18. Go实战--golang中使用Goji微框架(Goji+Mongodb构建微服务)
  19. A Grain of Sand ——一砂一极乐
  20. 基金定投:100%抄到底的方法

热门文章

  1. 服务器与云服务器租用有哪些区别呢?
  2. 博学谷java题库判断_博学谷Java开发面试基础笔试题及答案分享
  3. @[TOC](CDN防御与高防服务器防御的区别
  4. react中使用macy插件实现瀑布流布局
  5. 网络营销人员21条基本能力要求
  6. eNSP下园区网综合实验分步配置(前言)
  7. 【论文阅读】Text Gestalt: Stroke-Aware Scene Text Image Super-Resolution
  8. ipython出现键盘输入错乱问题
  9. 增长黑客AB-Testing系统设计
  10. 知识点滴 - 无线电频谱划分