CN103377325B - 一种保护电子书内容的方法、系统和设备 - Google Patents
一种保护电子书内容的方法、系统和设备 Download PDFInfo
- Publication number
- CN103377325B CN103377325B CN201310159674.1A CN201310159674A CN103377325B CN 103377325 B CN103377325 B CN 103377325B CN 201310159674 A CN201310159674 A CN 201310159674A CN 103377325 B CN103377325 B CN 103377325B
- Authority
- CN
- China
- Prior art keywords
- data
- content
- css
- fascination
- section
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 230000008569 process Effects 0.000 claims abstract description 37
- 208000027534 Emotional disease Diseases 0.000 claims abstract description 31
- 230000000739 chaotic effect Effects 0.000 claims description 21
- 230000006870 function Effects 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 5
- 230000005611 electricity Effects 0.000 claims description 2
- 230000007480 spreading Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000007790 scraping Methods 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 3
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 108010022579 ATP dependent 26S protease Proteins 0.000 description 1
- 241001101720 Murgantia histrionica Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000011241 protective layer Substances 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
- Storage Device Security (AREA)
Abstract
本发明的实施例涉及电子书内容保护。特别地,本发明的实施例公开了一种用于保护电子书免于未授权访问的系统和方法。通过将用于书籍的HTML划分成部分来撕碎它,并且选择方案被用来在部分之中散布迷惑数据。动态生成的层叠样式表被用来定义用于迷惑和内容数据的模式,从而使得在客户端设备上的浏览器正确处理HTML,但是比如web刮削器之类的未授权程序不能正确处理HTML。
Description
技术领域
本公开内容总体上涉及电子书领域,并且更具体地涉及保护电子书内容免于未授权复制。
背景技术
被实施为专用设备或者被实施为个人计算机、平板计算机和智能电话上的软件的电子书阅读器已经变得非常流行。随着越来越多的书籍以电子形式销售,已经出现关于如何最好地保护那些书籍免于未授权复制的考虑。
一种用于呈现电子书的已知技术是经由使用超文本标记语言(HTML)的web浏览器。这种系统的优点在于大多数现代计算机已经配备有用于处理HTML内容的硬件和软件,比如web浏览器(例如,由Google有限公司提供的ChromeTM浏览器)。HTML是一种灵活和易用的语言,因此可以用现有HTML工具实施许多电子书特征。
然而,使用HTML的一个弊端在于也存在许多已知的如下技术,这些技术可以被容易地应用以规避用于保护电子书免于盗版的技术措施。
例如,即使电子书阅读器应用可以要求用于访问书库的口令,但是一旦已经应用了这样的授权,用户就可以能够复制书籍的多个部分以用于未授权的进一步使用或者再销售。具体而言,各种被称为“屏幕刮削器(scraper)”、“内容刮削器”、“数据刮削器”或者“web刮削器”(这里被通称为“刮削器”)的多个应用程序自动捕获HTML页面,并且可以被容易地应用于从电子书复制和粘贴页面以快速创建书籍的未授权副本。因此,提供一种用于保护基于HTML的电子 书内容免于这样的未授权使用的机制将是有利的。
发明内容
公开了一种用于保护内容数据免于被在其上处理内容数据的计算机的用户未授权访问的系统、方法和计算机可读存储介质。在一个方面中,选择用于将内容数据划分成多个分节的方式,该方式并未以对于用户而言明显的方式存储。将内容数据撕碎成多个分节,并且通过在多个分节之中散布多个迷惑数据(有时也被称为“垃圾”数据)部分来混乱内容数据。
在另一方面中,响应于选择的模式执行散布。在又一方面中,HTML标签被用来定义多个分节。在又一方面中,选择的模式使用动态生成的层叠样式表来实施。在一个有关方面中,动态生成的层叠样式表通过处理JavaScript来实施。
在一些方面中,选择的模式是多个位。在一些方面,选择包括以对于用户而言不明显的方式翻转位的子集。
在说明书中描述的特征和优点并非全部囊括,并且具体而言,许多附加特征和优点鉴于附图、说明书和权利要求书将为本领域普通技术人员所理解。另外,应当注意,已经主要出于可读性和指导目的而选择在说明书中使用的语言,并且该语言可以未被选择以界定或者限制公开的主题内容。
附图说明
公开的实施例具有将从具体实施方式、所附权利要求书和附图中更容易清楚的其它优点和特征。附图的简要介绍如下。
图1图示了能够从机器可读介质读取指令并且在处理器中执行它们的示例机器的部件的一个实施例。
图2是图示了根据一个实施例的提供方设备和用户设备的高级图。
图3是图示了一个实施例中的用于混乱HTML的示例性过程 的流程图。
图4是进一步具体图示了图3的撕碎步骤的流程图。
图5是进一步具体图示了图3的选择符处理步骤的流程图。
图6是进一步具体图示了图3的混乱步骤的流程图。
具体实施方式
附图和下文描述仅通过示例方式涉及优选实施例。应当注意,根据下文讨论将容易将这里公开的结构和方法的备选实施例认识作为可以在不脱离要求保护的内容的原理的情况下运用的可行备选。为了方便并且为了有助于可读性,描述的实施例和权利要求将待保护的具体文本称为电子书。应当理解,这旨在于涵盖所有数字文本形式,包括但不限于:电子书、电子杂志、电子报纸和包括在电子阅读设备上显示的内容的任何其它这样的实体。
现在将具体参照若干实施例,在附图中示出这些实施例的示例。注意,无论在何处实践,相似或者相同标号可以使用于附图中并且可以指示相似或者相同功能。附图仅出于例示的目的而描绘公开的系统(或者方法)的实施例。本领域技术人员将从下文描述中容易认识到可以运用这里举例说明的结构和方法的备选实施例而不脱离这里描述的原理。
计算机器架构
图1是图示了能够从机器可读介质读取指令并且在处理器中执行它们的示例机器的部件的框图。具体而言,图1以计算机系统100的示例形式示出了机器的图解表示,在该计算机系统内可以执行用于使机器执行这里讨论的方法中的任何一种或者多种方法的指令124(例如,软件)。在备选实施例中,机器作为独立设备来操作或者可以被连接(例如,联网)到其它机器。在联网部署中,机器可以在服务器-客户端网络环境中在服务器机器或者客户端机器的能力内操作,或者在对等(或者分布式)网络环境中作为对等机器来操 作。
机器可以是服务器计算机、客户端计算机、个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、智能电话、web装置、网络路由器、交换机或者桥接器或者能够执行指令124(依序或者以别的方式)的任何机器,这些指令指定该机器将进行的动作。另外,尽管仅图示了单个机器,但是术语“机器”还可以用来包括个别或者联合执行指令124以执行这里讨论的方法中的任何一种或者多种方法的机器的任何汇集。
示例计算机系统100包括处理器102(例如,中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、一个或者多个专用集成电路(ASIC)、一个或者多个射频集成电路(RFIC)或者这些处理器的任何组合)、主存储器104和静态存储器106,其被配置用于经由总线108相互通信。计算机系统100还可以包括图形显示单元110(例如,等离子体显示面板(PDP)、液晶显示器(LCD)、投影仪或者阴极射线管(CRT))。计算机系统100还可以包括文字数字输入设备112(例如,键盘)、光标控制设备114(例如,鼠标、跟踪球、操纵杆、运动传感器或者其它指点工具)、数据存储库116、信号生成设备118(例如,扬声器)、音频输入设备126(例如,麦克风)和网络接口设备120,其也被配置用于经由总线108通信。
数据存储库116包括在其上存储指令124(例如,软件)的机器可读介质122,这些指令体现这里描述的方法或者功能中的任何一种或者多种方法或者功能。指令124(例如,软件)也可以在它们由计算机系统100执行期间完全或者至少部分驻留于主存储器104内或者处理器102(例如,处理器的高速缓冲存储器内)内,主存储器104和处理器102也构成机器可读介质。可以经由网络接口120通过网络(未示出)传输或者接收指令124(例如,软件)。
尽管在一个示例实施例中将机器可读介质122示出为单个介质,但是术语“机器可读介质”还可以用来包括能够存储指令124(例 如,指令124)的单个介质或者多个介质(例如,集中式或者分布式数据库或者关联高速缓存和服务器)。术语“机器可读介质”还可以用来包括能够存储用于由机器执行的指令(例如,指令124),并且使得机器执行这里公开的方法中的任何一种或者多种方法的任何介质。术语“机器可读介质”包括但不限于固态存储器这一形式的数据贮存库、光学介质和磁介质。
配置概况
图2是图示根据一些实施例的配置用于保护电子书数据免于屏幕刮削的提供方设备200和用户设备210的高级图。提供方设备200包括内容混乱子系统201,该内容混乱子系统具有HTML模块202、撕碎模块203、混乱模块204和JavaScript模块205。下文描述这些部件的操作。提供方设备200还包括用于与用户设备210通信(例如,经由因特网)的网络接口120和数据存储库116,其中例如存储与电子书对应的数据。
用户设备210包括电子书阅读器211和网络接口120(用于例如经由因特网与提供方设备200通信)。电子书阅读器211在所示实施例中包括显示模块212和浏览器模块213。下文描述这些部件的操作。
在一个实施例中,在提供方设备200处在数据存储库116中存储电子书。在这一实施例中,如这里描述的那样在提供方设备200处预备并且向用户设备210供应与书籍对应的HTML。因此,提供方设备200充当服务器,并且用户设备210充当客户端。然而,应当认识到,在其它实施例中如这里描述的那样可以在用户设备210处本地存储电子书数据并且可以同样地在用户设备210处本地生成用于允许显示电子书的HTML。一种用来获得电子书的具体方法是经由使得用户设备210能够与在线书商和贮存库(比如GOOGLE PLAY TM、GOOGLE TM PLAY BOOKS、GOOGLE BOOKSTM和GOOGLE EBOOKSTORETM)交互的网络接口120。备选地,可以从便携计算 机可读介质(比如闪存驱动、紧致盘(CD)或者数字万用盘(DVD))复制电子书。
在一些环境中,使用HTML来实现在显示模块上显示电子书的文本。HTML经由简单的定界符或者标签允许应用各种字体大小、样式、颜色、布局等以向用户提供书籍的文本和图元的令人愉快的显示。如图2中所示,电子书阅读器211包括显示模块212和浏览器模块213。许多计算机具有通过软件和硬件二者实施的通用显示功能,该通用显示功能允许显示来自各种来源的数据;这些部件被称为显示模块212。为了清楚,单独图示浏览器模块213以强调这样的计算机经常配备有例如从网页取回数据并且预备它以用于使用显示模块212例如在电子书阅读器211上显示的一个或者多个浏览器程序。在其它实施例中,可以用各种方式分配显示模块212和浏览器模块213的功能或者一般而言可以将两个模块实施为单一子系统。
在许多实施例中,电子书阅读器211还具有用于使对电子书内容的访问限于已经购买访问权的人士的访问控制机制,比如口令控制。除非已经比如通过录入识别的口令确认了访问权,否则这样的机制经常防止前述HTML内容向浏览器模块213发送。然而,一旦用户已经获得访问并且向浏览器模块213和显示模块212提供HTML以向用户呈现书籍的内容,通常存在对内容的控制的一些丢失。例如,如果用户设备是个人计算机,则简单键盘命令(比如ALT-PrtScn)有效捕获计算机窗口的图像并且可以向另一程序复制该内容。多数复杂应用程序(比如刮削器)自动捕获旨在用于向用户显示而不是用于由另一程序使用的信息并且使这样的数据可用于其它类型的用户。这样的使用的一个示例是复制电子书。
已知由来已久地知道简单地复制向设备(比如浏览器模块213)发送的数据产生可能并不希望的结果。例如,在这样的数据是采用HTML格式时,将数据视为纯文本产生与书籍的实际内容不对应的定界符和显示指令。例如,书籍的第一页可以包括章节名称、章节编号、用于开始章节的文本的装饰性首字母下沉和用于继续章节的 文本的正文文本。这些元素中的每个元素可以被HTML元素(比如开始标签、结束标签等)括在一起。作为常见示例,配对<p>和</p>用来表示段落。
使用被称为文档对象模型或者DOM的结构可实现更多复杂布局,该结构可以用来组织电子文档以用于例如通过操控层叠样式表或者CSS属性进行显示。因此,可以按照复杂得多的方式在HTML中代表可以向用户表现为电子书中的简单文本句子的内容。
即使这样,现代刮削器仍然可以处理典型HTML内容并且按照需要容易地去除或者转译各种格式化元素以例如在字处理应用中干净地呈现网页的被复制部分。在一些实施例中,这合乎需要,但是对于电子书,结果可能是购买用于阅读电子书的权利的一个人可以容易地将该书籍复制成另一格式以用于再销售或者某一其它未授权使用。例如,被称为Firebug的开源软件工具包括允许从原始浏览器向其它介质容易地复制HTML内容的DOM树资源管理器(tree explorer)特征。
为了解决针对电子书的这一潜在顾虑,已经进行尝试以提供如下HTML,该HTML在经由浏览器模块213(例如,web浏览器)呈现时表现为书籍的干净文本,但是在经由刮削器捕获时不容易被转换成用于其它介质的干净文本。优选地,这样的机制并不要求专门化软件(例如,“插件”),并且在所支持的浏览器之中通用地运作。
在一个实施例中,这由提供方设备200的内容混乱子系统201上的撕碎模块203和混乱模块204实现。具体而言,撕碎模块203取得HTML(比如在数据存储库116中保持的书籍的由HTML模块202生成的原生HTML内容)的部分并且将它分解成更小构成元素。混乱模块204继而在更小元素的每个相邻对之间散布非可见或者“迷惑”HTML元素。在一些实施例中,JavaScript模块205还响应于来自浏览器模块213的请求提供用于如下文描述的那样动态创建CSS的密钥。在向显示模块212呈现以用于向用户显示时,所得数据表 现为电子书的干净文本,但是在由典型刮削器捕获时,垃圾元素难以去除,因此增加为了制作书籍内容的未授权副本而需要的努力。
为了添加另一级保护,内容混乱子系统被配置用于动态选择在撕碎模块203、混乱模块204或者二者的操作中使用的参数。无论是否实际上实施为撕碎模块203、混乱模块204、JavaScript模块205的部分或者以别的方式实施,可以认为这样的操作提供内容混乱子系统201的“选择符”模块(未示出)。通过随时间改变这样的参数,变得甚至更难以让刮削器断定如何对向浏览器模块213发送的HTML进行解码。
为了进一步说明如这里阐述的电子书阅读器210的操作,考虑以下示例。一条“原生”(即未受保护的)HTML内容可以表现如下:
尽管在这一示例中存在一些标签,但是处理极为常见的HTML元素以使得在捕获内容的实质的过程中实质上忽略它们对于刮削器的提供方而言将是相当简单的编程实践。如上文提到的那样,如由以下撕碎的相同内容的示例示出的那样,撕碎可以使得对于web刮削程序而言更困难:
HTML中的“span”标签仅指示装入的元素的逻辑分组,该分组在这一实例中未指示实际处理中的任何改变。然而,它给将寻求捕获这一文本的内容的任何web刮削程序带来附加负担,即,这样的程序将需要实际处理大量标签以提取它们标记的有意义内容。
为了进一步增加刮削器的负担,混乱模块204向内容添加附加HTML,例如:
这里,CSS属性(“display”)被用来控制实际显示哪些文本部分而不显示哪些文本部分。具体而言,“o:nth-child(2n){display:none}”行意味着将仅显示由<o></o>对括在一起的每隔一组文本。因此,处理HTML的浏览器模块213将显示“Whe”和“n y”而忽略“abc”。“display”属性仅为以这一方式可用的控件的一个示例,并且其它选择是可能的,比如绝对定位选择,这些选择将在指定的位置(该位置可以离开浏览器窗口的页面,例如-9999px)或者颜色(该颜色可以透明)呈现文本以实现相似结果。此外,在这一示例中插入的迷惑文本总是相同(“abc”),但是在一些实施例中被动态或者甚至随机生成迷惑文本以使得对于刮削器而言更难以标识它为迷惑数据。关于DOM、CSS和HTML如何操作的更多信息可从本领域技术人员已知的各种来源获得,例如从World Wide Web Consortium(W3C)网站获得。一篇这样的参考文献在http://www.w3.org/standards/webdesi en/htmlcss,这是也提供指向其它有关指导的链接的页面。
尽管这一方式使广义刮削器的输出实质上不可用于捕获原有内容,但是它对于打算复制这样的内容的人士而言仍然未带来巨大 困难,因为用于撕碎和混乱的方案从HTML本身中显而易见。因此,程序员可以容易地向刮削器中编写用于处理这些标签以便取回原有内容的特征。
为了使自动化取回原有内容更困难,静态CSS(比如“o:nth-child(2n){display:none}”)被替换为在一些实施例中由混乱模块204以使得难以解析或者猜测原有内容的序列的方式生成的动态CSS。在更多实施例中,JavaScript模块205进一步指引这样的动态CSS生成的方式。具体而言,用于迷惑数据的标签类型和迷惑数据的位置是可以出于这一目的而被操控的两个参数。在一个示例中,从原本未影响经由显示模块212在用户设备210上的显示的可用标签组随机选择使用的实际标签,从而使得除了在上例中使用的<o></o>对之外也可以使用随机选择的对(比如<a></a>、<b></b>、<i></i>、<s></s>等)作为用于数据的“包装”(只要另外出于HTML处理中的其它目的而指定了它们)。
可用来阻碍刮削的另一参数是实际和迷惑数据的定位。在上例中示出的第n个子函数是一种可能性;在其它实施例中,HTML技术人员已知的其它技术也可使用。在一些实施例中使用多个CSS选择符,从而使得一个选择符超越前代选择符,从而使得选择符集合将各种传入位置映射到传出位置。在恰当处理时,将所有迷惑数据标记为“display:none”,从而使得它未出现于电子书阅读器211上而所有实际数据将出现(即适当标记为例如“display:inline”)。
如果混乱模块204随机分配实际和迷惑数据的模式,则使得实际和迷惑数据的定位进一步更难以确定。作为示例,在一个实施例中,使用16个组块的模式大小,其中每个组块为实际数据(“R”)或者迷惑数据(“G”)。一个这样的模式则将是:
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6
R G R G R G G R G R G R G G R G
如果1被用来代表实际数据而0被用来代表迷惑数据,则对应16位长的位图是0xA952或b1010100101010010。
上述模式的可视性在一个实施例中由以下选择符实施:
o:nth-child(16n+1){display:inline;}
o:nth-child(16n+2){display:hidden;}
o:nth-child(16n+3){display:inline;}
o:nth-child(16n+4){display:hidden;}
o:nth-child(16n+5){display:inline;}
o:nth-child(16n+6){display:hidden;}
o:nth-child(16n+7){display:hidden;}
o:nth-child(16n+8){display:inline;}
o:nth-child(16n+9){display:hidden;}
o:nth-child(16n+10){display:inline;}
o:nth-child(16n+11){display:hidden;}
o:nth-child(16n+12){display:inline;}
o:nth-child(16n+13){display:hidden;}
o:nth-child(16n+14){display:hidden;}
o:nth-child(16n+15){display:inline;}
o:nth-child(16n){display:hidden;}
这不仅是在客户端侧浏览器上解析起来很慢的逐个方式,而且对于刮削器而言相当易于通过编写某一正则表达式(regular expression)来解析(即无需全CSS处理引擎)。然而,同样,优选的是刮削器不能判断使用这一特定选择符方案,因为如果方案已知,则对应的简单编程可以用来根据这一方案进行处理以取回原有内容。为了混乱位置选择符,在一个实施例中,混乱模块204应用递增CSS规则,从而使得一个规则超越先前规则并且以可以在浏览器模块213处恰当解码的方式这样做,因为提供全CSS处理引擎以用于这样的解码。作为具体事项,所得HTM实质上不能使用通常存在于刮削器中的简单处理模块来解码。在这一实例中,在真正CSS处理与更简单方式之间的不同在于真正CSS处理引擎在它执行规则选择时维持当前元素的CSS属性的命令式状态,因此使递增规则的处理成为可能。
在一个具体实施例中,使用位翻转方式,该方式改变实际和迷惑数据的模式如下。首先,初始地假设开始位图为简单,因为每位代表实际内容,即1111111111111111。对于这一例示性实施例,应用四轮混乱如下:2n+i(0<=i<2)、4n+j(0<=j<4)、8n+k(0<=k<8)、16n+1(0<=1<16),其中随机挑选i=1、j=3、k=7、1=9。处理继而继续如下:在第一轮中,设置所有2n+1位为被隐藏:
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
在第二轮中,设置所有4n+3位为被示出:
0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1
在第三轮中,设置所有8n+7位为被隐藏:
0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 1
最后,在第四轮中,设置所有16n+9位为被示出:
0 1 1 0 0 1 0 1 1 1 1 1 0 1 0 1
这一最后位图指示在服务器侧上,实际内容被放置于为1的所有位中,迷惑数据被放置于为0的所有位中。继而,从服务器向浏览器供应的采样输出将是:
其中“c”指示实际内容并且“g”指示迷惑(或者“垃圾”)数据。如果向常规浏览器(例如,由Google有限公司提供的ChromeTM浏览器)中插入这一HTML,则它将仅示出内容标签而未示出迷惑标签,因为浏览器按照在HTML的顶部的样式表正确执行CSS规则。然而,典型的web刮削器将不能正确执行这些CSS规则。
作为附加保护层,在一些实施例中,在客户端的浏览器将从服务器计算机向客户端计算机初始地发送的CSS应用于混乱的内容之前进一步处理它。具体而言,在加载页面时,JavaScript代码要求用户设备210(客户端)从在提供方设备200(服务器)处的JavaScript模块205获得随机密钥(例如,上文提到的随机生成的位图之一)。在又一实施例中,在服务器处加密并且在客户端处使用本领域技术人员已知的标准JavaScript技术来解密这一密钥。JavaScript继而使用位图以动态构造CSS。以这一方式,添加使得对于如下刮削处理器而言难以区分实际内容与迷惑内容的附加更多级保护,该刮削处 理器不是能够进行复杂CSS和JavaScript处理的鲁棒浏览器。
在图2中所示的实施例中,电子书阅读器211是在用户设备210上运行的软件,该软件配置用户设备210以经由网络接口120显示和操控作为一个或者多个数据文件存储于远程数据存储库116中的电子书。在其它实施例中,从用户设备210上的存储装置(未示出)本地访问这样的书籍数据。浏览器模块213响应于具体电子书的用户选择来处理电子书数据文件并且经由用户设备210的显示模块212向用户呈现其中描述的内容。
下文参照具体实施例更具体描述可以用来提供上述功能的系统和方法。
混乱处理
图3是图示了在示例性实施例中使用的用于混乱电子书的HTML的方法300的高级步骤的流程图。该方法通过例如从数据存储库116获得用于处理的HTML内容的一部分(步骤310)来开始。接着,在步骤320中,如上文描述的那样撕碎HTML块以将它分解成更小数据段,可以在这些数据段之中并置迷惑数据。在一些实施例中,实际和迷惑数据段为固定大小,而在其它实施例中,它们均被动态设定尺寸以使得在迷惑数据与实际数据之间的区分对于刮削器而言更困难。
接着,在步骤330中,如上文详述的那样进行动态选择符处理。在各种实施例中,以让通用web刮削器难以正确解译的方式(比如经由上文描述的位翻转)来创建和嵌套不同类型的CSS选择符。
接着,在步骤340中,根据选择符混乱HTML内容,从而产生如下HTML块,该HTML块根据由授权的显示设备(例如,显示模块212和浏览器模块213)可以处理但是由解译HTML的刮削器不能处理的选择符方案散布实际数据和迷惑数据。最后,在步骤350中,向显示设备发送HTML以用于向用户呈现内容。
应当注意,在一些实现方式中,经由选择符的撕碎和混乱可以 主要是独立过程,其中撕碎仅定义何处分解原有内容并且混乱确定在原有数据的段之间插入什么。在其它实现方式中,让一个过程在另一过程之前被进行可以有意义,并且可以更紧密地耦合和集成撕碎和混乱功能。以对于预计的浏览器处理器(即“目标”浏览器)而言解译起来简单直接但是对于预计的刮削器处理器(即“目标”刮削器)而言难以解译的方式散布实际和迷惑数据的任何方式可以提供有帮助的结果,其中如对于使用环境而言适合的那样选择具体实现方式(例如,更简单的方案用于更不复杂的用户设备和关于盗版的更低顾虑)。
图4图示了一个实施例中的用于撕碎(例如,如在图3的步骤320中那样)的示例性过程400。当在步骤421中调用过程400之后,在步骤422中根据对应规则(例如,上文讨论的规则)向数据串添加HTML的一部分。接着,继而在步骤423中再次按照上文讨论的对应规则添加迷惑数据的一部分。如果存在更多HTML待处理,则在步骤424中使处理返回到步骤422;否则处理在步骤425中结束。
图5图示了一个实施例中的用于动态选择符处理(例如,如在图3的步骤330中那样)的示例性过程500。当在步骤531中调用过程500之后,在步骤532中递增选择符级以例如选择如上文讨论的选择符O:nth-child(2n+1){display:none;}。在步骤533中,应用该选择符作为用于处理HTML数据的当前部分的活跃选择符。如果存在更多选择符级待处理(比如在上文讨论的示例中的O:nth-child(4n+3){display:inline;}),则在步骤534中使处理返回到步骤532;否则处理在步骤535中结束。
图6图示了一个实施例中的用于混乱处理(例如,如在图3的步骤340中那样)的示例性过程600。当在步骤641中调用过程600之后,在步骤642中抓取将受到混乱处理的数据的下一部分,并且按照如上文讨论的当前适用规则,在步骤643中混乱内容数据。如果存在更多数据待处理,则在步骤644中使处理返回到步骤642;否则处理在步骤645中结束。
附加配置考虑
贯穿本说明书,多个实例可以实施被描述为单个实例的部件、操作或者结构。虽然将一种或者多种方法的个别操作图示和描述为单独操作,但是可以并行执行个别操作中的一个或者多个操作并且未要求按照所示顺序执行操作。可以将在示例配置中作为分离的部件而呈现的结构和功能实施为组合的结构或者部件。类似地,可以将作为单个部件而呈现的结果和功能实施为分离的部件。这些和其它变化、修改、添加以及改进落入这里的主题内容的范围内。
这里将某些实施例描述为包括逻辑或者多个部件、模块或者机制。模块可以构成软件模块(例如,在机器可读介质中或者在传输信号中体现的代码)或者硬件模块。硬件模块是能够执行某些操作的有形单元并且可以用某种方式来配置或者布置。在示例实施例中,一个或者多个计算机系统(例如,独立客户端或者服务器计算机系统)或者计算机系统的一个或者多个硬件模块(例如,处理器或者处理器组)可以由软件(例如,应用或者应用部分)配置为操作用于执行如这里描述的某些操作的硬件模块。
在各种实施例中,可以机械地或者电子地实施硬件模块。例如,硬件模块可以包括被持久地配置(例如,作为专用处理器(比如现场可编程门阵列(FPGA)或者专用集成电路(ASIC)))以用于执行某些操作的专用电路或者逻辑。硬件模块也可以包括被软件暂时配置以用于执行某些操作的可编程逻辑或者电路(例如,包含于通用处理器或者其它可编程处理器内)。将理解,用于机械地、在专用和持久配置的电路中或者在暂时配置的电路(例如,由软件配置)的判决可以由成本和时间考虑驱动。
这里描述的示例方法的各种操作可以至少部分由被(例如,由软件)暂时配置或者被持久配置以用于执行相关操作的一个或者多个处理器执行。无论是暂时还是持久配置,这样的处理器可以构成操作以用于执行一个或者多个操作或者功能的处理器实施的模块。 这里所称的模块可以在一些示例实施例中包括处理器实施的模块。
一个或者多个处理器也可以操作以用于支持在“云计算”环境中或者作为“软件即服务”(SaaS)执行相关操作。例如,操作中的至少一些操作可以由计算机组(作为包括处理器的机器的示例)执行,经由网络(例如,因特网)和经由一个或者多个适当接口(例如,应用程序接口(API))可访问这些操作。
操作中的某些操作的执行可以被分布于一个或者多个处理器之中而不是仅驻留于单个机器内但是跨越多个机器来部署。在一些示例实施例中,一个或者多个处理器或者处理器实施的模块可以位于单个地理位置中(例如,家庭环境、办公室环境或者服务器场内)。在其它示例实施例中,可以跨越多个地理位置分布一个或者多个处理器或者处理器实施的模块。
在对作为位或者二进制数字信号存储于机器存储器(例如,计算机存储器)内的数据的操作的算法或者符号表示方面呈现本说明书的一些部分。这些算法或者符号表示是数据处理领域普通技术人员用来向本领域其他技术人员传达他们的工作实质的技术的示例。如这里所用,“算法”是促成所需结果的操作或者相似处理的自一致序列。在本文上下文中,算法和操作涉及到对物理数量的物理操控。通常但是并非必需,这样的数量可以采用能够由机器存储、访问、传送、组合、比较或者以别的方式操控的电、磁或者光学信号的形式。主要出于普遍使用的原因而使用诸如“数据”、“内容”、“位”、“值”、“元素”、“符号”、“字符”、“项”、“数”、“数值”等用词来指代这样的信号有时是便利的。然而,这些用词仅为便利标记并且将与适当物理数量相关联。
除非另有明示,这里使用诸如“处理”、“计算”、“运算”、“确定”、“呈现”、“显示”等用词的讨论可以指代如下机器(例如,计算机)的动作或者过程,该机器操控或者变换在一个或者多个存储器(例如,易失性存储器、非易失性存储器或者其组合)、寄存器或者接收、存储、传输或者显示信息的其它机器部件内表示为物理(例如,电 子、磁或者光学)数量的数据。
如这里所用,对“一个实施例”或者“实施例”的任何引用意味着结合该实施例描述的特定元素、特征、结构或者特性包含于至少一个实施例中。短语“在一个实施例中”出现于说明书中的各处未必都指代相同实施例。
可以使用表达“耦合”和“连接”及其衍生表达来描述一些实施例。例如,可以使用术语“耦合”来描述一些实施例以指示两个或者更多元素相互直接物理或者电接触。在另一例子中,可以使用术语“耦合”来描述一些实施例以指示两个或者更多元素直接物理或者电接触。然而,术语“耦合”也可以意味着两个或者更多元素未相互直接接触、但是仍然相互配合或者交互。实施例在本文中不受限制。
如这里所用,术语“包括”、“具有”或者其任何其它变化旨在于覆盖非穷举包括。例如,包括元素列表的过程、方法、物品或者装置未必仅限于那些元素、但是可以包括未明确列举的或者这样的过程、方法、物品或者装置固有的其它元素。另外除非相反明示,“或者”指代包括意义的或者而不是穷举意义的或者。例如,以下各项中的任一项满足条件A或者B:A为真(或者存在)并且B为假(或者不存在)、A为假(或者不存在)并且B为真以及A和B均为真(或者存在)。
此外,对“一个/一种”的使用用来描述这里的实施例的元素和部件。这样做仅为了方便并且给出本发明的一般意义。应当解读这一描述包括一个或者至少一个,并且单数除非明显的是它另有含义则也包括多个。
在阅读本公开内容时,本领域技术人员将理解用于如下系统和过程的更多附加备选结构和功能设计,该系统和过程用于通过这里的公开原理保护电子书免于未授权访问。因此,尽管已经图示和描述具体实施例和应用,但是将理解,公开的实施例不限于这里公开的精确构造和部件。可以在这里公开的方法和装置的布置、操作和细节上做出本领域技术人员将清楚的各种修改、改变和变化而不脱 离在所附权利要求中定义的精神实质和范围。
Claims (17)
1.一种保护电子书内容数据免于在其上处理所述电子书内容数据的计算机的用户的未授权访问的方法,所述方法包括:
通过将所述电子书内容数据划分成多个分节来撕碎所述电子书内容数据;
由一个或者多个处理器通过在所述多个分节之中散布多个迷惑数据部分来混乱所述内容数据,由此创建包括多个段的受保护的内容数据,每个段包括电子书内容数据的所述分节之一或者所述迷惑数据部分之一;以及
将指示哪些段包括内容数据的附加电子书与所述受保护的内容数据包括在一起。
2.根据权利要求1所述的方法,其中所述附加电子书是指示哪些段将被显示的CSS显示属性函数。
3.根据权利要求1所述的方法,其中所述附加电子书包括使用动态生成的层叠样式表实施的多个选择符。
4.根据权利要求1所述的方法,其中所述附加电子书包括通过处理JavaScript以便生成随机化的层叠样式表实施的多个选择符。
5.根据权利要求1所述的方法,其中所述指示包括被依序应用的多个嵌套函数,每个函数翻转位图中的指示哪些段对应于内容数据的位的子集。
6.根据权利要求1所述的方法,其中所述散布响应于选择的模式执行,其中所述模式包括多个位,并且其中所述附加电子书包括所述多个位的JavaScript加密的表示。
7.一种保护电子书内容数据免于在其上处理所述电子书内容数据的计算机的用户的未授权访问的系统,所述系统包括:
撕碎模块,配置用于将所述电子书内容数据划分成多个分节;
混乱模块,配置用于在所述多个分节之中散布多个迷惑数据部分,由此创建包括多个段的受保护的内容数据,每个段包括电子书内容数据的所述分节之一或者所述迷惑数据部分之一;以及
将指示哪些段包括内容数据的附加电子书与所述受保护的内容数据包括在一起。
8.根据权利要求7所述的系统,其中所述附加电子书是指示哪些段将被显示的CSS显示属性函数。
9.根据权利要求7所述的系统,其中所述附加电子书包括使用动态生成的层叠样式表实施的多个选择符。
10.根据权利要求7所述的系统,其中所述附加电子书包括通过处理JavaScript以便生成随机化的层叠样式表实施的多个选择符。
11.根据权利要求7所述的系统,其中所述指示包括被依序应用的多个嵌套函数,每个函数翻转位图中的指示哪些段对应于内容数据的位的子集。
12.根据权利要求7所述的系统,其中所述散布响应于选择的模式执行,其中所述模式包括多个位,并且其中所述附加电子书包括所述多个位的JavaScript加密的表示。
13.一种用于保护电子书内容数据免于在其上处理所述内容数据的计算机的用户的未授权访问的设备,所述设备包括:
用于通过将所述电子书内容数据划分成多个分节来撕碎所述电子书内容数据的装置;
用于通过以对于所述用户而言不明显的方式在所述多个分节之中散布多个迷惑数据部分来混乱所述内容数据由此创建包括多个段的受保护的内容数据的装置,每个段包括电子书内容数据的所述分节之一或者所述迷惑数据部分之一;以及
用于将指示哪些段包括内容数据的附加电子书与所述受保护的内容数据包括在一起的装置。
14.根据权利要求13所述的设备,其中所述附加电子书是指示哪些段将被显示的CSS显示属性函数。
15.根据权利要求13所述的设备,其中所述附加电子书包括使用动态生成的层叠样式表来实施的多个选择符。
16.根据权利要求13所述的设备,其中所述附加电子书包括通过处理JavaScript以便生成随机化的层叠样式表来实施的多个选择符。
17.根据权利要求13所述的设备,其中所述指示包括被依序应用的多个嵌套函数,每个函数翻转位图中的指示哪些段对应于内容数据的位的子集。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/453,146 US9015851B2 (en) | 2012-04-23 | 2012-04-23 | Electronic book content protection |
US13/453,146 | 2012-04-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103377325A CN103377325A (zh) | 2013-10-30 |
CN103377325B true CN103377325B (zh) | 2016-08-10 |
Family
ID=48044660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310159674.1A Expired - Fee Related CN103377325B (zh) | 2012-04-23 | 2013-04-22 | 一种保护电子书内容的方法、系统和设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9015851B2 (zh) |
EP (1) | EP2657873B1 (zh) |
KR (1) | KR102042722B1 (zh) |
CN (1) | CN103377325B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9444797B2 (en) * | 2014-07-10 | 2016-09-13 | Empire Technology Development Llc | Protection of private data |
US9824075B1 (en) * | 2016-03-31 | 2017-11-21 | Google Inc. | System and method for interaction coverage |
US10846417B2 (en) * | 2017-03-17 | 2020-11-24 | Oracle International Corporation | Identifying permitted illegal access operations in a module system |
KR102355235B1 (ko) * | 2020-10-15 | 2022-02-07 | 주식회사 디알엠인사이드 | 웹 브라우저 기반 컨텐츠의 보안을 위한 서비스 제공 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6782509B1 (en) * | 1998-09-17 | 2004-08-24 | International Business Machines Corporation | Method and system for embedding information in document |
CN101059800A (zh) * | 2006-04-21 | 2007-10-24 | 上海晨兴电子科技有限公司 | 在手机上显示电子书的方法和设备 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0929040A3 (en) * | 1997-12-25 | 2007-06-27 | Nippon Telegraph and Telephone Corporation | Microprocessor with data randomizing |
US6832215B2 (en) * | 2000-07-21 | 2004-12-14 | Microsoft Corporation | Method for redirecting the source of a data object displayed in an HTML document |
JP2002132586A (ja) * | 2000-10-25 | 2002-05-10 | Pumpkin House:Kk | コンテンツへの情報埋込み方法および装置,コンテンツ復元方法および装置,ならびに情報取出し方法および装置 |
JP2004302818A (ja) * | 2003-03-31 | 2004-10-28 | Clarion Co Ltd | ハードディスク装置、情報処理方法及びプログラム |
US8130746B2 (en) * | 2004-07-28 | 2012-03-06 | Audible Magic Corporation | System for distributing decoy content in a peer to peer network |
GB0620855D0 (en) | 2006-10-19 | 2006-11-29 | Dovetail Software Corp Ltd | Data processing apparatus and method |
SE534996C2 (sv) * | 2008-06-19 | 2012-03-13 | Starta Eget Boxen 10516 Ab | Scrapingskydd för information |
RU2556338C2 (ru) * | 2009-01-19 | 2015-07-10 | Конинклейке Филипс Электроникс Н.В. | Браузер с состоящей из двух частей машиной обработки сценариев для защиты конфиденциальности |
US20110219455A1 (en) | 2010-03-04 | 2011-09-08 | International Business Machines Corporation | Random injection-based deactivation of web-scrapers |
TW201212009A (en) * | 2010-09-03 | 2012-03-16 | Ko-Cheng Fang | Method for preventing optical disks from malicious copy |
-
2012
- 2012-04-23 US US13/453,146 patent/US9015851B2/en not_active Expired - Fee Related
-
2013
- 2013-04-02 EP EP13161954.6A patent/EP2657873B1/en not_active Not-in-force
- 2013-04-22 KR KR1020130044106A patent/KR102042722B1/ko active IP Right Grant
- 2013-04-22 CN CN201310159674.1A patent/CN103377325B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6782509B1 (en) * | 1998-09-17 | 2004-08-24 | International Business Machines Corporation | Method and system for embedding information in document |
CN101059800A (zh) * | 2006-04-21 | 2007-10-24 | 上海晨兴电子科技有限公司 | 在手机上显示电子书的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
US20130283384A1 (en) | 2013-10-24 |
EP2657873A3 (en) | 2015-03-25 |
CN103377325A (zh) | 2013-10-30 |
KR20130119359A (ko) | 2013-10-31 |
EP2657873A2 (en) | 2013-10-30 |
KR102042722B1 (ko) | 2019-11-08 |
EP2657873B1 (en) | 2017-06-07 |
US9015851B2 (en) | 2015-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Khairullah | A novel steganography method using transliteration of Bengali text | |
CN102902661A (zh) | 一种实现电子书超链接的方法 | |
EP2948941A1 (en) | Method for controlling the display of a portable computing device | |
CN103377325B (zh) | 一种保护电子书内容的方法、系统和设备 | |
CN103870583B (zh) | 一种基于关系型数据库的在线可控浏览pdf文档的方法 | |
US10013263B2 (en) | Systems and methods method for providing an interactive help file for host software user interfaces | |
US20150310122A1 (en) | Web ui builder application | |
CN106575300A (zh) | 用于识别文档中的对象的基于图像的搜索 | |
CN102411614A (zh) | 图像搜索结果的显示 | |
CN109543454A (zh) | 一种反爬虫方法及相关设备 | |
CN107025480A (zh) | 图像生成方法及其设备 | |
CN107368511A (zh) | 一种信息展示方法及装置 | |
US11164052B2 (en) | Image processing of webpages | |
US11775749B1 (en) | Content masking attacks against information-based services and defenses thereto | |
Taleby Ahvanooey et al. | An innovative technique for web text watermarking (AITW) | |
CN103150339B (zh) | 产品说明书的提供方法、系统及母书服务器 | |
CN105988665A (zh) | 信息复制系统、信息复制方法及电子设备 | |
CN109255355A (zh) | 图像处理方法、装置、终端、电子设备及计算机可读介质 | |
US20160232151A1 (en) | Responsive course design system and method | |
CN103400175A (zh) | 图形识别码处理方法及装置 | |
CN110083751A (zh) | 网页数据防爬虫抓取方法及装置、存储介质、电子设备 | |
US9966044B2 (en) | Method for controlling the display of a portable computing device | |
CN103077238B (zh) | 电子文档的提供方法、系统、母书服务器及子书客户端 | |
Tair | The importance of responsive logo design across a wide range of devices on the web | |
US20150205764A1 (en) | Encoding information into text for visual representation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: California, USA Patentee after: Google Inc. Address before: California, USA Patentee before: Google Inc. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160810 |