发明内容
有鉴于此,本发明的一个主要目的在于提供一种内容阅读系统和方法,可以同时兼顾阅读方式的灵活性和版权保护的安全性。
为此,本发明一实施例提供了一种内容阅读系统,包括:
文档库系统DCMS服务器,用于支持数据内容的存储和解析;接收到专用客户端的页面数据请求时,调用存储的页面数据,提供给专用客户端呈现;接收到Web客户端的页面数据请求时,调取存储的页面数据,形成页面位图,提供给Web客户端。
其中,进一步包括:
Web生成服务器,用于从DCMS服务器获取页面位图,进行切分,同时生成可用于将切分后碎片重组为图片的可执行程序,将碎片和可执行程序提供给Web客户端;和/或
管理服务器,用于提供系统管理、和/或用户管理、和/或内容管理的功能。
其中,所述DCMS服务器包括:
第一模块,用于负责存储管理;
第二模块,用于负责对第一模块存储的页面数据进行解析;
第三模块,用于对经第二模块解析后的数据进行绘制生成页面位图。
其中,所述DCMS服务器进一步包括:
第四模块,用于负责角色管理、和/或权限管理、和/或密钥管理、和/或加/解密管理、和/或签名水印管理。
其中,进一步包括:
专用客户端,用于从DCMS服务器中获取数据内容,解析并呈现给用户阅览。
其中,所述专用客户端包括:
第五模块,用于对DCMS服务器中获取数据内容进行格式解析和绘制。
其中,所述专用客户端进一步包括:
第六模块,用于根据DCMS服务器的用户权限数据控制客户端软件的行为。
其中,所述Web生成服务器包括:
第七模块,用于对DCMS服务器返回的页面位图进行切分,切分成碎片数据;
第八模块,用于生成可用于将切分后碎片重组为图片重现组合呈现在客户端的可执行程序。
其中,所述Web生成服务器进一步包括:
第九模块,用于将切分后的碎片进行混淆处理;和/或
第十模块,用于控制内容的安全读取。
其中,所述DCMS服务器与Web生成服务器之间为文档库标准接口。
其中,所述DCMS服务器与专用客户端之间为文档库标准接口。
本发明一实施例还提供了一种在线阅读方法,包括:
文档库系统DCMS服务器存储和解析数据内容;
接收到专用客户端的页面数据请求时,调用存储的页面数据,提供给专用客户端呈现;
接收到Web客户端的页面数据请求时,调取存储的页面数据,形成页面位图,提供给Web客户端。
其中,所述接收到Web客户端的页面数据请求时,调取存储的页面数据,形成页面位图包括:
调取存储的页面数据,对存储的页面数据进行解析、绘制,生成页面位图。
其中,生成页面位图后,所述方法进一步包括:
对所述页面位图进行切分,并生成将切分后碎片重新组合呈现给Web客户端的可执行程序,将切分后碎片和可执行程序发送给所述Web客户端。
其中,所述方法进一步包括:
对切分后碎片进行混淆;则所述可执行程序用于将切分混淆后的碎片重新组合呈现给Web客户端;和/或,
对数据内容的读取进行控制。
其中,所述对页面位图进行切分包括:
采取固定规则对页面位图进行切分;或
每次随机从切分算法库中抽取一个算法对页面位图进行切分。
其中,所述切分算法为:
将页面位图切分为固定的行和列;或
将页面位图切分为行,每行的列数不同;或
将页面位图切分为列,每列的行数不同。
其中,所述切分算法中的参数包括用户信息和/或页面位图所在文档的特征信息。
其中,所述专用客户端接收到页面数据后,进一步包括:
对接收到的页面数据进行格式解析、绘制。
利用本发明实施例提供的方法,既可以支持用户通过专用客户端进行在线阅览,也可以通过Web客户端进行在线阅览,由于内容的分发由DCMS服务器完成,同时也保证了安全性。
具体实施方式
下面结合附图对本发明的具体实施方式进一步详细说明。
本发明实施例提供了一种内容阅读系统,该内容阅读系统利用一个在线内容服务器同时为专用客户端和通用浏览器提供内容。简而述之,本发明实施例中的内容阅读系统利用一个文档库系统DCMS服务器,用于支持数据内容的存储和解析;接收到专用客户端的页面数据请求时,调用存储的页面数据,提供给专用客户端呈现;接收到Web客户端的页面数据请求时,调取存储的页面数据,形成页面位图,提供给Web客户端。
其中本发明提供的整个在线内容服务器整体架构,以及各子模块之间,子模块与外部专用客户端、Web通用客户端之间的技术接口如图1所示。整个在线内容服务器由DCMS服务器、Web生成服务器、管理服务器三个子模块构成。
DCMS服务器支持数据内容的存储和解析。当专用客户端向其请求页面数据时,DCMS服务器直接从存储模块中调用页面数据提供给专用客户端呈现;当Web客户端经由Web生成服务器向其请求数据时,DCMS服务器调取存储的页面数据,进行格式解析、RIP渲染,形成页面位图,提供给Web生成服务器。
DCMS服务器还进一步负责权限的细粒度控制以及角色管理,当专用客户端和Web客户端通过管理服务器进行用户认证时,管理服务器调用DCMS获取相应的角色信息返回给专用客户端和Web客户端,专用客户端和Web客户端利用该角色信息访问DCMS服务器。
Web生成服务器通过调用DCMS服务器获取页面位图数据,并对数据进行切分混淆,同时生成JavaScript程序传输给Web客户端,该程序可被自动执行,从而将切分后图片碎片组成并呈现在Web客户端。其中,本领域技术人员可以理解,对数据进行混淆的目的是为了进一步保证数据的安全性,在某一个实施例中,也可以不执行混淆操作。进一步的,Web生成服务器还通过调用DCMS服务器来查询对页面位图的权限控制。
管理服务器为DCMS服务器和Web生成服务器提供公共的系统管理、用户管理、内容管理、界面管理的功能。
专用客户端和Web客户端通过登录管理服务器进行用户认证、获取角色信息。管理服务器通过调用DCMS服务器实现上述功能。
DCMS服务器支持UOML标准接口,管理服务器、Web生成服务器、专用客户端均通过UOML标准接口调用DCMS相应功能。管理服务器通过用户管理接口与专用客户端与Web客户端进行通信。Web生成服务器与Web客户端之间利用HTTP协议进行通信。
本领域技术人员可以理解,管理服务器的作用更多在于提供安全的用户认证以及界面管理,对于在线内容阅读来说,在某个实施例下,可以省略该管理服务器。
DCMS服务器由核心模块、格式解析模块、绘制模块、安全控制模块、插件管理模块构成,具体构成如图2所示。
核心模块负责数据的存储管理。
格式解析模块负责对存储的页面数据解析;
绘制模块负责对解析后的数据进行绘制生成页面位图。
当Web生成服务器向DCMS服务器请求页面位图时,格式解析模块和绘制模块被调用。
安全控制模块负责角色管理、权限管理、密钥管理、加/解密管理、签名水印管理。
这些模块作为DCMS服务器的基础模块,每个指令的执行都可能需要调用到这些模块。如管理服务器调用角色管理模块获取角色登录信息,当专用客户端以角色登录并访问DCMS服务器时,调用权限管理模块判断角色的权限;调用加/解密管理模块以及密钥管理模块实现页面数据、权限数据的加/解密;当DCMS向专用客户端提供页面数据以及向Web生成服务器提供页面位图时,调用签名水印管理可以进一步在数据中插入签名和水印,保证数据的安全性。
插件管理模块负责对插件的管理和调用,从而扩展DCMS服务器的功能。
当DCMS服务器与外界的通信遵照UOML标准时,DCMS服务器进一步包括:UOML接口,负责与外部服务器或者客户端的通信。此时,核心模块还负责UOML指令的解析和执行。
这里,DCMS服务器对数据内容至少执行两层加密,具体如下:
当数据存储在DCMS服务器时,对其进行加密存储,该密钥一部分是来自密钥管理模块的固定密钥,另一部分是随机密钥(存储在密文数据中);第二层加密时密文与密码设备绑定,即使内部人拿到了数据,不仅不能解密出明文,也不能在另一台服务器上使用,保证加密数据确保数据在服务器端存储的安全性。
当数据从服务器端传输到专用客户端时,解密第二层加密,利用动态安全信道传输,即在传输时利用动态密钥进行第三层加密,这样即使数据包在传输层被截获,不仅不能被解密出明文,而且将同样的数据包发给另一客户端或者再次发给同一客户端都无效。
利用这种方式在分发、呈现各个环节防止数字内容(无论是加密的密文数字内容还是明文数字内容)被攻击者获取,同时还可以实现对用户权限的细粒度控制,保证任何权限的用户都不能接触到数字内容。
本领域技术人员同样可以理解,在某些实施例中,如仅提供专用客户端的在线阅读时,上述DCMS服务器可能仅包括UOML接口、核心模块。在某些实施例中,如仅提供Web客户端在线阅读时,上述DCMS服务器可能仅包括UOML接口、核心模块、格式解析模块、绘制模块。
专用客户端与在线内容服务器之间为C/S模式,当用户通过专用客户端登录时,专用客户端从DCMS服务器中获取数据内容并呈现给用户阅览。在本发明的一个实施例中,专用客户端从服务器中获取的是加密的数据内容,由专用客户端负责解密。接收到的加密数据内容经两层加密,一层对应的是动态信道加密,一层是服务器端存储时对应的加密。专用客户端接收到数据后,解密动态信道加密,仍然保持存储时对应的加密。客户端只允许数据(不管是密文还是明文)临时存储在内存中,禁止保存到硬盘等永久存储介质。当专用客户端要呈现数据时,边解密边解析,利用实时解密技术解密加密文件,防止通过内存映像截获明文。
这种专用客户端方式可以提高最大化的安全性能,在整个数据过程中均不在硬盘中留存任何数据,即无论明文文件还是密文文件都禁止存放在客户端的永久存储器中,同时根据用户所拥有的权限,客户端的相应功能可以被屏蔽,从而保证在任何时候数据内容都不会被非法截获。
更为重要的是,专用客户端完全使用自主代码支持对数据的自行解析,数字内容的解析与展现均不依赖于第三方的产品,进一步防止了操作系统级别的数据拦截。当数据被呈现后,还可以进一步采用防截屏技术,防止用截屏方式截获信息。
图3所示为本发明一实施例中专用客户端的内部结构图。如图3所示,一个功能较为全面的专用客户端由内容呈现、权限执行、防截屏、用户界面、安全通道管理、反跟踪等功能模块构成。
内容呈现模块:实时处理在线数字内容,通过用户界面展示在最终用户面前。其中内容呈现模块又由实时解密单元、格式解析单元、绘制引擎单元构成。实时解密单元用于解密来自安全通道的数字内容,得到明文版式数据流,本领域技术人员可以理解,只有在接收到的数据内容为加密内容时,需要利用该单元。格式解析单元用于解析实时解密以后的版式数据流,得到可用于直接渲染的图元对象,如文本、图形、图像、控制指令、字体数据等。绘制引擎单元用于将来自版式数据流的图元对象绘制在显示器、打印机等设备上。在绘制过程中,可以根据具体需要调用图像处理单元处理各种不同格式的图像数据,也可以通过字库管理单元处理各种不同格式的字体数据。
安全通道管理模块:建立安全通道,用于与DCMS和管理服务器的交互(如UOML指令),包括数字内容和权限数据等信息的传输。这里,如果DCMS服务器中不包括管理服务器时,安全通道管理中也将不包括管理接口。
权限执行模块:根据来自DCMS服务器的用户权限数据控制客户端软件的行为,如可阅览内容、可打印次数等。
防截屏模块:屏蔽截屏操作,防止用户通过截屏手段,非法盗取被保护的数字内容。
反跟踪模块:针对跟踪软件和技术的实现原理,防止用户攻击版权保护机制、危害系统安全性、盗取被保护的数字内容等。
用户界面模块:提供给最终用户使用的数字内容展现界面,提供丰富、易用的用户交互功能。
本领域技术人员同样可以理解,权限执行模块是为了保证用户的执行权限,防截屏模块、反跟踪模块是为了保证数据内容和软件内容的安全性,用户界面模块是为了保证用户操作界面的友好性,在本发明的某些实施例中,专用客户端可以不包括这些功能模块,或者仅包括部分这样的功能模块。
Web客户端与Web生成服务器为B/S结构,用户通过登录任何Web客户端就可以实现对数字内容的读取。Web客户端的数据内容解析、生成、展现功能实际上均由服务器端实现。当用户通过Web客户端向Web生成服务器请求某一页面数据时,Web生成服务器通过UOML接口调用DCMS服务器,DCMS服务器则提取相应的页面数据,进行格式解析以及RIP处理,生成对应的图片(位图)数据并将其返回Web生成服务器。Web生成服务器按照一定的切分算法将该图片数据切分成很多图片碎片,并生成JavaScript代码返回给Web客户端;web客户端自动执行JavaScript程序,触发图片碎片的调用和组合,形成完整HTML网页呈现出来。为了保证系统的安全性,还可以进一步利用HTML混淆技术对数据以及JavaScript可执行程序进行混淆处理。利用这种方式,用户不需要安装阅览器软件,直接通过浏览器就可以安全地进行数字内容的浏览。
图4是本发明一实施例提供的基于Web的在线阅读系统的处理流程图。利用本实施例提供的流程图,可以清楚的理解当用户登录Web客户端后,整个在线阅览流程。
第1步:用户打开浏览器,通过浏览器访问管理服务器,在通过管理服务器的认证后,准备浏览内容。
第2步:浏览器向Web生成服务器发起阅览请求。
第3步:Web生成服务器向DCMS调用并获取解析后的数据内容,具体为页面的图片数据。
第4步:Web生成服务器对获取的页面图片数据进行切分。
第5步:Web生成服务器对切分后的图片碎片进行混淆,将混淆后数据缓存在服务器中,并利用HTML代码记录碎片的URL地址。
第6步:Web生成服务器生成JavaScript程序,传送到浏览器。
第7步:浏览器自动执行JavaScript程序,调用HTML代码,调用图片碎片,组合为HTML页面信息,呈现给用户。
图5所示为本发明一实施例中Web生成服务器的结构图。如图5所示,Web生成服务器由四个部分构成:内容切分模块、内容呈现模块、内容动态混淆管理模块以及内容读取范围控制模块。Web生成服务器通过UOML接口与DCMS服务器连接,通过HTTP协议等网络协议与Web客户端通信。
其中,内容切分模块负责对DCMS服务器返回的页面位图进行切分,切分成碎片数据。内容混淆模块负责将整个切分后碎片进行混淆处理。通过切分混淆处理后,既使一些盗版者获得了碎片图片,也需要耗费时间重新组合成一张新图。正如前所述,混淆处理是为了保证更近一步的安全性,在某一个实施例中,也可以没有该步骤。
系统提供静态和动态两种切分策略。静态切分是指采用固定规则对图片进行切分,切分算法在一段时间内不会发生变化,将切分后的碎片数据进行缓存,后续再请求该数据时,无需再实时切分。静态切分可用于数据量大,数据保密程度要求不高的情况。
动态切分则是指每次随机从切分算法库中抽取一个算法对图片进行切分,这样对每个图片都可能采取不同的切分算法。这种情况下,通常是根据用户的请求,实时进行切分。动态切分可用于数据量小,数据保密程度要求高的情况。
系统可以根据数据量的大小以及对保密程度的要求修改配置文件切换切分策略。
最简单的切分算法为将图片切分为M*N列,M与N是一个相对固定的数值,即每行的列数相等,例如将图片切分为3*3块,为了提供切分速度,行列数不宜过大。
更为复杂的切分算法不再是单纯地切分为M*N列,而是在切分时每个行的列数都有所不同,如第一行切分为2列,第二行切分为4列,......,第M行切分为2M列;可以根据系统的情况由管理员来设置切分参数。
切分算法中的参数还可以包括文档的页数;这样的话,可以做到同一本出版物的每一页的图片的切割方式都会不同。
另外,切分算法中的参数还可以包括用户名,即根据用户名来计算切分原则,这样可以做到每个用户看到的图片都是以不同的切割算法实现的。
以一个较复杂的算法为例,该切分算法参数包括用户名。
首先计算三个参数:
用户Key:MD5(MD5(用户名+盐值)),即首先对用户名加盐,并对加盐后数据进行MD5运算即可得用户Key;
书名请求指令:利用用户Key对称加密(用户名+书名)得到书名请求指令;根据书名请求指令,服务器端还可以核对用户是否为合法访问,服务器端可利用逆向算法得到相关的用户名和书名信息,并与session中的书名请求指令中的相应信息核对,以判断其是否为合法访问;
书页请求指令:利用用户Key对称加密(用户名+书名+书页)得到书页请求指令;根据书页请求指令,服务器端还可以核对用户是否为合法访问,服务器端可利用逆向算法得到相关的用户名、书名、书页信息,并与session中的书名请求指令中的相应信息核对,以判断其是否为合法访问。
这里对每个指令都增加一个时间戳,该指令仅在该时间戳过期时间范围内有效,以增加安全性。所有的指令发送到服务器端的同时将指令的数字签名送到服务器端验证,如果该指令超过有效时间,则忽略该指令,从而到达防篡改的目的。
则切分的行数为:Md5(书页请求指令+盐值)%最大行数;这里最大行数可以是缺省的,也可以是根据用户终端的屏幕、显示字体自适应变化的;
切分的列数为:Md5(书页请求指令+行数+盐值)%最大列数;这里最大列数可以是缺省的,也可以是根据用户终端的屏幕、显示字体自适应变化的。
切分后的图片碎片存储在服务器端,其URL地址记载在一个HTML代码中,当该HTML代码被调用时,相应的图片碎片依次被调用组合成为一个HTML网页。
内容呈现模块负责将切分混淆后的数据重新组合呈现在Web客户端。
书页请求指令通过验证后,服务器端即直接输出JavaScript代码,JavaScript从服务器端请求记录图片碎片URL的HTML代码。这个过程不需要JavaScript做运算,如何组织碎片是由服务器端完成的,只要把HTML代码传到Web客户端即可。
JavaScript代码由服务器端动态生成,每个用户所得到的JavaScript代码都是不同的。
一旦图片切分的算法被确认,图片组合的算法也即被确定,即将图片碎片依次按顺序组合即可。
客户端JavaScript最终调用显示图片数据的过程可以是:客户端JavaScript调用服务器HTML代码,进而调用图片数据。在这种情况下,JavaScript代码可以利用代码混淆技术进行处理,HTML代码以及图片数据可以利用数据混淆技术进行处理。
为了提供更高的安全性,客户端JavaScript最终调用显示图片数据的过程可以是:客户端JavaScript调用服务器端Web Service,进而调用服务器HTML代码,进而最终调用图片数据。在这种情况下,客户端JavaScript不直接调用HTML代码,而是先调用Web service,执行Web service后,该Web Service才调用HTML。此时,可以利用代码混淆技术对客户端JavaScript代码进行处理;服务器端Web Service代码可以采用代码混淆技术和数据混淆技术中的任一组或其组合进行处理;HTML代码以及图片数据可以利用数据混淆技术进行处理。
为了保证Web浏览的安全性,在JavaScript程序加入用户界面控制代码,防止用户通过浏览器的界面(“右键菜单”、“浏览器菜单”、“Ctr+C快捷键”等)复制页面内容。
内容读取范围控制模块负责控制内容的安全读取,其主要是为了防止用户非法盗取数据内容。即,负责控制哪些用户可以访问哪些范围内的数据内容。在实际应用,该模块可以省略。
本领域技术人员可以理解,本发明中所有模块的划分均基于逻辑层面,其并不代表物理结构的划分。举例说明,本发明实施例中划分出来的两个模块在实际产品中可能在一个实体中实现;本发明实施例中的某一个模块在实际产品中可能分别在两个实体中实现。另外,本发明中所有模块的名称仅作为标记使用,其并不能限定模块的功能和范围。
本发明一实施例还提供了一种在线阅读方法,包括:
文档库系统DCMS服务器存储和解析数据内容;
接收到专用客户端的页面数据请求时,调用存储的页面数据,提供给专用客户端呈现;
接收到Web客户端的页面数据请求时,调取存储的页面数据,形成页面位图,提供给Web客户端。
具体来说,以上实施例中公开的技术方案均适应用该实施例提供的在线阅读方法,在此并不赘述。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。