徐学东,季才伟
(1.长春工程学院机电工程学院,长春 130012;2.长春易申软件有限公司,长春 130012)
随着计算机和网络的高速发展,各类文档普及电子化。相应的文档版权和安全技术也得到了快速发展,数字版权管理(DRM)是其中比较有代表性的技术。将DRM技术用于文档安全管理,可以有效地防止未授权的用户对电子文档的非法获取和使用[1],如 Adobe Content Server、铁卷、天盾等。这些产品均由客户端、许可证服务器和内容服务器等组成。文档首先由打包工具加密,使用权限和密钥保存在许可证中。客户端从内容服务器下载数据文档,使用时必须从许可证服务器获得对应的许可证[2]。上述DRM文档安全产品都存在2个固有的弱点:
(1)对DRM文档的完整解密过程完全在客户机上执行,一旦客户端被破解,则对于文档的保护无从谈起。
(2)DRM文档在修改变更时难以在客户端实时实现再加密处理,影响了文档的可用性。
随着网络的普及和带宽的大幅度提高,基于数据流技术实现本地业务远端实时执行成为可能。本文就是应用把软件动态变化的重要部分转移到远端运行这种设计理念,提出了“壳客户端/实体服务端”(Shell Client/Solid Server,简称SC/SS)模型,基于数据流技术实现客户端关键模块和加解密环节的远端处理,提高了客户端软件的防破解能力,同时解决了DRM文档修改后同步打包的问题。
软件远端执行的相关技术很早就已经实现了,比较典型的是RPC。但文档等较大数字文件的远端处理受响应时间的制约,目前尚未见到有成熟的产品或方案[3]。
我们在前期曾进行数据流实时处理技术方面的研究,在相关的成果中我们以数据流的最小化存储空间开销和高速索引为目标,设计出适合在内存中并行处理的数据流操作树和查询操作树的增量式索引更新算法,降低了数据流操作的时间复杂度。这些成果为电子文档的实时远端处理提供了重要的技术基础。
传统DRM文档安全系统多采用C/S架构模型,其缺点在于对客户端的安全性依赖较大。尽管客户端可以通过代码加密、加壳等技术手段进行保护,但如果遇到恶意破解者,仍可以通过反编译等手段分析软件的保护意图,在适当的位置加上跳转指令,跳过软件的保护机制,破解客户端[4]。
我们认为把客户端的关键模块放到远程运行,使之脱离破解者的控制,是实现系统安全的关键。在前期数据流技术的基础上,我们提出了“壳客户端/实体服务端”(Shell Client/Solid Server,简称SC/SS)模型,如图1所示。
图1 SC/SS模型
我们将DRM中完整意义上的客户端分为框架Framework和关键模块Key Part 2部分。壳客户端主要是Framework,我们称之为Shell Client,它运行时在形式上执行完整客户端的业务,实质上主要负责实现文档数据流的组织和信息采集。Key Part部署在服务端并执行,负责客户端关键代码和文档加解密环节的执行。两者通过数据流技术实现实时交互,其中服务端远端执行后的数据流被壳客户端重组为明码文档在锁定的内存区内运行。Shell Client和Solid Server使用的RPC调用接口为SOAP协议,通讯协议使用双向SSL,保障通讯数据的安全性[4]。此方案可以适用于所有操作系统,并且可以随意调整接口,穿过防火墙的拦截。
实现方案为将原来的客户端文件通过程序分析从所保护的文件中分解出若干个大小合适的代码区块,其中代码区块可以制定,也可以自由选取。转移区块的数量也可以灵活设定,这样在保护不同的程序文件之间就可以存在差异性,保护更有针对性,不存在现有外壳加密技术的破解过程的相似性。
提取分解出的代码区块转移到远端服务器中。在被移去代码区块的程序空洞位置通过文件代理模块和代码区块之间建立对应关系,保证在程序运行的过程中仍为完整的应用程序。代码填充可采用多种方式,如专用的远端模块功能调用、参数信息等。
该方案的创新性在于将DRM客户端程序分解为2部分,其中分解出的关键部分放置到远端服务器,其余部分在客户端机器运行,2部分间通过网络通讯建立相互调用关系,从而使客户端无法摆脱服务端独立完成对数字内容的操作,从而防止了破解者对安全系统的控制。
如图2所示,系统包括安全服务器软件和客户端软件2部分。安全服务器负责用户的身份认证、权限控制,客户端关键模块的运行,DRM文档打包、解密和用户行为审计。客户端软件负责组织文档数据流,与安全服务器进行交互,采集客户机信息发送给安全服务器,并监控电子文件的使用情况,其中将加解密模块分解转移至远端服务器运行。
图2 安全系统总体架构
客户端还通过文件系统过滤器驱动程序,从底层监测用户对文档的操作,包括拷贝、读取、修改等,阻断超出允许权限的操作,并向安全服务器提供详细描述,以备查询。对于恶意行为,可以对服务端进行报警。
DRM文档加解密环节可基于SC/SS模型的实现过程如下:
(1)Shell Client在用户通过验证后启动文档,以流模式将数据进行序列化处理,对字节流进行压缩后通过RPC传输。
(2)服务端接收到数据流后依据特定连接策略生成查询操作树,分解数据块后执行加解密算法,并建立通信安全通道。
(3)解密数据流通过建立通信安全通道,通过SSL加密流的方式将文档传输至客户端的安全内存区。
(4)Shell Client在锁定安全区对数据流反序列化处理,并利用数据流上的频繁项处理算法,在处理流中加入负载脱落算子,实现有效的负载脱落。确保在网络流量有限的情况下提高客户端文档响应效率。该技术将另文介绍。
上述模式下,用户不通过身份验证无法获得在服务端对文档进行处理的权限,由于加解密模块和密钥在远端,客户端无法摆脱服务端对文档的处理。在逻辑上阻断了在客户端独立破解被保护文档的可能性。
系统采用加密卡实现文档打包加解密,密钥分为系统主密钥PEK、文件保护密钥FEK和用户证书密钥UCK。
电子文档通过FEK加密保护,每一个文档记录对应一个单独的FEK。FEK通过PEK加密存储,PEK还可保护系统中的敏感数据。通过数字信封的形式分发FEK,数字信封以用户的证书密钥(UCK)加密保护[5]。用户配发 USBKEY,其中保存数字证书和私钥。其关系见图3。
图3 密钥关系图
图4 文档的应用流程
如图4所示,用户首先通过客户端软件登录安全服务器进行身份认证。文档的解密通过加解密Key Part实现,客户端通过RPC将密文以数据流方式发至服务器,服务器对解密密文,再以明文数据流实时返回客户端。明文在客户机安全内存区中存在,由进程独占锁定保护,防止外部进程访问。用户可以进行权限内的访问操作,同步客户端软件底层监控用户的操作,并将操作记录发送至安全服务器软件。操作后关闭文档,内存中的明文自动删除,仍以密文形式存在于客户机器上。
通讯过程使用双向SSL安全加密通道,保障明文及密文的文件数据流的安全性。这样离开了服务端的支持,客户端无法单方面解密文件。客户端在使用过程中也未获取密钥,也就不存在密文被破解的可能,同时排除了数据流在网络传输过程中被抓包窃取及修改的可能性。
通过数据流远端加解密实现技术解决DRM文档修改同步打包流程如下:
(1)用户获得名为密文V1.0的可修改DRM文档,通过身份认证后系统通过远端处理机制在客户端还原明文V1.0,在进程锁定的安全内存区运行。
(2)用户修改文档,确定保存后形成明文V1.1版本并提交打包请求。
(3)打包请求执行远端处理机制,由服务器依据加密策略设定新的密钥,进行二次加密,加密后的文件数据返回客户端形成修改后的密文V1.1版本,并在服务器存档。
所有操作记录保存在服务器操作日志中,便于审计。
研究成果在吉林省某设计单位进行了试点应用。运行环境为100 M局域网,由2台Dell 5550服务器,10台客户机组成。一台服务器部署安全服务器系统,并配置得安加密系统一套,另一台服务器作为文档服务器。
测试中,10台客户机均执行不同大小的10个CAD文档打开、修改、存储操作请求。测试目标为通过对网络流量的监控,获得身份验证、文档加解密和存储平均延迟,测试结果如表1所示。
表1 系统测试
分析测试数据,其延迟主要出现在文档远端加解密环节。因此改善硬件性能将能有效改善系统性能,较好地满足应用需求。
普通的DRM文档安全产品中,文档的解密和身份认证等处理都在客户端实现,一旦客户端被破解,对DRM文档的保护就无从谈起。同时由于客户端条件的限制,难以实时对文档进行打包加密处理,安全文档的可用性受到极大制约。
针对这些问题,本文提出了SC/SS模型,基于数据流技术实现文档远端加解密和客户端防破解,并在此基础上提出了一整套的文档安全解决方案,满足电子文件全生命周期的安全管理。试点测试表明,该系统在保证性能的情况下较好地解决了上述的2个问题。
[1]蔡皖东,田广利,段琪,等.基于DRM的电子文档保护系统设计与实现[J].微电子学与计算机,2005,22(7):161-164.
[2]Lin E T,Eskieioglu A M,Lagendijk R L,etc.Advanecs in Digital Video Content Protection[J].Proceedings of the IEEE,2005,93(1):171一183.
[3]钟勇,秦小麟,郑吉平,等.一种灵活的使用控制授权语言框架[J].计算机学报,2006,29(8):1408-1418.
[4]Kuhlmann D,Gehring RA.Trusted platforms,DRM,and beyond[A].Becker E.Digital Right s Management:Technological,Economic,Legal and Political Aspects,Lecture Notes in Computer Science 2770[C],Berlin:Springer-Verlag,2003:178-205.
[5]Bettini C,Jajodia S,Wang XS,etc.Provisions and obligations in policy management and security applications[A].Bernstein PA,Loannidis YE,Ramakrishnan R,etc.Proc.of the 28th Int'l Conf.on Very Large Data Bases[C].Hong Kong:Morgan Kaufmann Publishers,2002:502-513.
[6]Barth A,Datta A,Mitchell JC,etc.Privacy and contextual integrity:Framework and application[A].IEEE Press Proc.of the 27th IEEE Symp.on Security and Privacy[C].New York:IEEE Press,2006:184-198.
[7]Chong CN,Ren B,Doumen J,etc.Hartel PH,Corin R.License protection with a tamper-resistant token[A].Chae HL,Moti Y.Proc.of the 5th Int'l Workshop Information Security Applications[C].Heidelberg:Springer-Verlag,2004:223-227.