CN103946858A - 应用数据的解密和加密 - Google Patents
应用数据的解密和加密 Download PDFInfo
- Publication number
- CN103946858A CN103946858A CN201180075068.0A CN201180075068A CN103946858A CN 103946858 A CN103946858 A CN 103946858A CN 201180075068 A CN201180075068 A CN 201180075068A CN 103946858 A CN103946858 A CN 103946858A
- Authority
- CN
- China
- Prior art keywords
- application data
- deciphering
- encryption
- encrypting
- computing equipment
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 29
- 238000005516 engineering process Methods 0.000 claims description 24
- 238000004891 communication Methods 0.000 claims description 19
- 230000001052 transient effect Effects 0.000 claims description 4
- 238000012423 maintenance Methods 0.000 claims description 2
- 238000010200 validation analysis Methods 0.000 abstract 1
- 238000003860 storage Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 13
- 238000012795 verification Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 241000700605 Viruses Species 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 208000015181 infectious disease Diseases 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000003362 replicative 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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]
- G06F21/12—Protecting executable software
-
- 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]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/12—Payment architectures specially adapted for electronic shopping systems
- G06Q20/123—Shopping for digital content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/12—Payment architectures specially adapted for electronic shopping systems
- G06Q20/123—Shopping for digital content
- G06Q20/1235—Shopping for digital content with control of digital rights management [DRM]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/0021—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/0021—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
- G11B20/00217—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier the cryptographic key used for encryption and/or decryption of contents recorded on or reproduced from the record carrier being read from a specific source
- G11B20/00246—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier the cryptographic key used for encryption and/or decryption of contents recorded on or reproduced from the record carrier being read from a specific source wherein the key is obtained from a local device, e.g. device key initially stored by the player or by the recorder
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/0021—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
- G11B20/00478—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier wherein contents are decrypted and re-encrypted with a different key when being copied from/to a record carrier
Abstract
示例公开了提供解密、验证和加密处理。具体地,公开包括对第一加密的应用数据进行解密,以便随后验证其完整性。公开还包括使用与用于提供第一加密的应用数据的技术不同的技术来对解密的应用数据进行加密,以及然后存储加密的应用数据。
Description
背景技术
在计算技术中,应用程序已经变得越来越多。计算设备的用户依赖于这些应用来运行它们日常生活的许多方面。然而,由于这些应用增加了它们的存在,因此存在对这些计算设备上的应用的安全担忧。
一种担忧是应用可能有病毒或其它类型的感染。例如,应用在计算设备上下载和安装之前或期间,可能遭遇恶意软件、病毒和其它类型的篡改。计算设备继而可能会暴露于应用中的这些缺陷并且变得被损坏。
另一种担忧是未经授权的用户可能查看和/或复制应用中未受保护的代码以便得到对该应用的访问。此外,未经授权的查看器可能转移到其它未经授权的用户。在应用的下载期间或者在应用执行前或后,应用中的代码对于能够复制代码的其它人来说可能是可查看的和/或可能转移到未经授权使用该应用的用户。
现有的安全性实现未能提供应用保护以防止篡改、恶意软件和未经授权的用户访问。
附图说明
在附图中,相同的数字指代相同的组件或块。下面的详细描述参考了附图,在附图中,
图1是用于接收加密的应用数据的示例计算设备的框图;
图2是可以发生在计算设备与可信源之间的示例通信的通信图;
图3是示例应用数据的框图;
图4是在计算设备上执行的用于存储第二加密的应用数据的示例方法的流程图;
图5是在计算设备上执行的用于执行第二解密的应用数据的示例方法的流程图;
图6是用于接收加密组件以执行的示例计算设备的框图。
具体实施方式
如同上面详细描述的,未经授权的用户可以通过查看例如源代码的相关应用文件来得到对计算设备上的应用的访问。例如,在移动计算设备环境中,倾向于维持并良好定义安全性。然而,在桌面环境中,用户可能未被授权查看应用中的源代码,并且可能容易地被授予管理员权限,例如,查看应用的源代码。如果相关应用文件已被篡改,则对应用的未经授权的访问还可能有进一步的问题,因为它也可能破坏计算设备。
为了解决这些问题,本文中公开的各个示例防止对应用数据的未经授权的访问,以帮助防止对计算设备的破坏。应用数据包括与应用相关的至少一个文件,诸如可配置文件、可执行文件、媒体、库、源代码、或元数据。具体地,示例提供了用于从可信源接收第一加密的应用数据的计算设备。然后,计算设备可以对该第一加密的应用数据进行解密,以便验证数据完整性。此外,该计算设备可以使用与第一加密的应用数据不同的技术来对解密的应用数据进行加密,以便随后存储在存储器中。在一个实施例中,可以使用密码算法来对第一加密的应用数据进行加密,并且不同的技术可以使用密钥来对解密的应用数据进行加密,并且反之亦然,在另外的实施例中,第一加密的应用数据可以是使用密钥来加密的,而解密的应用数据可以是使用不同的密钥来加密的。
以这种方式,解密的应用数据的完整性的验证用于检验没有可能破坏应用和/或计算设备的对应用数据的篡改或者改变。此外,使用采用与应用数据的第一加密不同的技术的另一解密和加密防止了对应用数据的未经授权的访问、复制和查看。在这两种情况下,向应用数据和计算设备提供了安全性。
现在参照附图,图1是用于从可信源104接收加密的应用数据106的示例计算设备102的框图。例如,计算设备102可以包括客户端设备、个人计算机、膝上型计算机、移动设备、便携式设备,或适合于接收加密的应用数据106的任何其它计算设备。此外,应该理解的是:虽然计算设备包括所描绘的组件,但其不应该受限于包含图1中所示出的组件。例如,计算设备102还可以包括额外的处理器和/或存储区域等。
可信源104向计算设备102发送加密的应用数据106。具体地,计算设备102处的通信平台108接收加密的应用数据106。可信源104可以包括联网服务器、应用数据库、web服务器、文件服务器、或者适合于发送加密的应用数据106的任何其它计算设备。可信源104可以使用第一加密来对加密的应用数据106进行加密。在一个实施例中,可信源104使用计算设备102与可信源104之间的证书交换或用户id和口令交换,在发送加密的应用数据106之前检验计算设备102。从这个意义上说,可信源104和计算设备102被彼此检验为可信。此外,可信源104可以对应用数据进行加密,以便在传输之前产生加密的应用数据106。加密技术可以包括密码函数或用于对信息进行变换的其它加密处理。
计算设备102上的通信平台108接收加密的应用数据106。通信平台108可以包括网络接口、网络通信或适合于将计算设备102连接到可信源104的其它通信网络。
加密的应用数据106包括与应用相关联的文件,诸如可执行文件、可配置文件、媒体、库、元数据、源代码,或者其它类型的相关应用文件。此外,加密的应用数据106可以包括可执行文件、可配置文件、媒体、库、元数据、源代码等的某种组合。应用包括程序执行特定任务的所有必要的文件,所述特定任务诸如文档编辑应用、媒体应用、web浏览器、游戏应用等。在该实例中,加密的应用数据与应用相比可以具有较小的大小。例如,应用数据可以包括与用户用来玩游戏的游戏应用相关的源代码,其是在发送到计算设备102之前加密的,而应用可以包含用户玩游戏的所有必要的文件,诸如可执行文件、可配置文件等。加密的应用数据106的其它实施例包括应用文件、应用信息、应用的组件、应用软件或应用的其它部分。
在一个示例中,可以将加密的应用数据发送到处理器110,而在另一个示例中,可以将加密的应用数据发送到机器可读存储介质112。而在另外示例中,处理器110可以从通信平台108获取加密的应用数据106。在再另外的实施例中,通信平台108将加密的应用数据106发送到处理器110。
处理器110对应用数据进行解密114,验证应用数据的完整性116,并且然后对应用数据进行加密118以便将其置于存储区域120。作为举例,处理器110可以包括中央处理单元(CPU)、微处理器或其它适合于对应用数据进行解密、验证和加密的可编程设备。
机器可读存储介质112包括可以由处理器执行用于以下操作的可执行指令、固件、和/或软件模块:对应用数据进行解密114,验证完整性116,以及对应用数据进行加密118。机器可读存储介质112可以是包含或存储可执行指令的电子、磁、光、闪速驱动器或其它物理设备。因此,机器可读存储介质112可以是例如,随机存取存储器(RAM)、电可擦写可编程只读存储器(EEPROM)、存储驱动器、光盘只读存储器(CD-ROM)等。因此,机器可读存储介质112可以是非暂态的。在其它实施例中,计算设备102可以包括应用和/或固件,所述应用和/或固件可以独立使用和/或与处理器110相结合使用以便取得、解码和/或执行机器可读存储介质112上和/或存储在计算设备102的另一位置上的指令114、116和118。在另外的实施例中,机器可读存储介质112包括114、116和118,其还可以包括额外的指令。
处理器110对加密的应用数据106进行解密,以便产生解密的应用数据。处理器110可以使用适合于对加密的应用数据106进行解密的解密密钥、解密程序或其它解密函数。
所产生的解密的应用数据由处理器110用于验证解密的应用数据的完整性116。在一个实施例中,处理器110使用校验和程序、校验和函数、密码哈希函数或其它类型的完整性检查函数来验证解密的应用数据的完整性。在另一实施例中,处理器110可以通过从应用数据计算数据值并将其与计算设备102上或诸如可信源104的远程存储位置上存储的值进行比较,来验证解密的应用的完整性。例如,在对加密的应用数据106进行解密之后,处理器对诸如“18$#”的哈希值进行加密,然后将该值与先前计算出的表示特定应用程序和其它应用程序的哈希函数进行比较。将“18$#”值与相应的哈希值进行比较确保没有对应用数据的篡改。
在验证了解密的应用数据之后,处理器110使用与可信源104加密应用数据106所用加密技术不同的加密技术继续对应用数据进行重新加密。在这个意义上,用于产生106的加密技术是第一加密,而在118处使用的加密被认为是第二加密。例如,第一加密可以使用密码函数,而第二加密可以使用私钥来对应用数据进行加密。另外的示例,第一加密可以包括可信源使用密钥对应用数据进行加密,而第二加密使用不同的密钥。在另一实施例中,计算设备102的用户或该计算设备可以对应用数据进行加密118。在该实施例中,对应用数据进行加密可以包括使用作为计算设备的用户特定的密钥的私钥,或者该计算设备特定的私钥。由于在加密的应用文件106的传输之前使用的加密技术被认为是第一加密,而在118处使用的加密方法是第二加密方法,因此加密的应用数据分别被称为第一加密的应用数据和第二加密的应用数据。一旦生成了第二加密的应用数据,该第二加密的应用数据由处理器110存储在存储区域120上。
作为举例,存储区域120可以包括存储器、存储设备或用于存储数据的多种物理介质。例如,存储区域120可以包括一个或多个硬盘、固态驱动器、磁带驱动器、闪速驱动器、纳米驱动器、全息存储设备或这样的存储设备的任意组合。
图2描绘了发生在可信源204、通信平台208、处理器210和存储器220之间的通信。如上所述,通信平台208、处理器210和存储器220是包括在计算设备102中的组件。在这个意义上,图2描绘了可信源204与计算设备102之间的通信。
可信源204向通信平台208发射或发送第一加密的应用文件。可信源204可以包括适合于与计算设备通信的网络通信,诸如无线局域网、蓝牙等。如同之前讨论的,第一加密的应用数据可以至少包括与应用相关联的文件,诸如可执行文件、可配置文件、媒体、库、元数据、源代码或其它类型的相关应用文件。在一个实施例中,可信源204还可以向计算设备发射被加密和存储的加密密钥。在另一实施例中,可信源204在第一加密的应用数据之后发送加密密钥,而在另外的实施例中,可信源204在第一加密的应用数据之前发送加密密钥。在这些实施例中,加密密钥由处理器210用来对第一加密的应用数据进行解密。
通信平台208为处理器210接收要解密的第一加密的应用数据。通过之前的示例,通信平台208包括网络接口、网络通信或适合于将计算设备连接到可信源204的其它通信网络。例如,通信平台208可以包括无线局域网、无线无线电、蓝牙或用于与可信源204进行通信的其它有线或无线通信。
处理器210对第一加密的应用数据进行解密以便验证第一解密的应用数据的完整性。在验证其完整性之后,处理器210对第一解密的应用数据进行加密,其产生要存储在存储器220中的第二加密的应用数据。在一个实施例中,由可信源204发送的加密密钥由处理器210用来对第一加密的应用数据进行解密,被加密并与第二加密的应用数据一起存储在存储器220处。例如,处理器210使用加密密钥来对第一加密的应用数据进行解密。如同之前解释的,解密的应用数据用于计算哈希值以便通过使用校验和程序、校验和函数、密码哈希函数或其它类型的完整性检查函数来验证其完整性。在一个实施例中,处理器210可以通过从应用数据计算数据值并将其与计算设备上或可信源204上存储的值进行比较来验证解密的应用数据的完整性。例如,在对加密的应用数据进行解密之后,处理器210对诸如“18$#”的哈希值进行加密,然后将该值与其它之前计算出的表示特定应用程序和其它应用程序的哈希函数相比较。将“18$#”值与相应的哈希值进行比较确保没有对应用数据的篡改。如果该哈希值与之前计算出的哈希值相对应,则确保了应用数据的完整性,因为没有篡改。然后第一解密的应用数据和加密密钥由处理器使用与用于产生第一加密的应用数据的技术不同的技术来进行重新加密。这生成了第二加密的应用数据。然后,将第二加密的应用数据和加密的加密密钥存储在存储器220中。
存储器220存储第二加密的应用数据。作为举例,存储器220可以包括存储区域、存储设备、或适合于存储加密的应用数据的其它类型的存储设备。例如,存储器可以结合存储介质、处理器来进行操作,或者作为独立的组件来进行操作。如同之前所讨论的,在另一实施例中,存储器220还可以存储加密密钥。处理器210可以从存储器220获取第二加密的应用数据以便检查完整性。在该处理期间,处理器210获取第二加密的应用数据以便对其进行解密,这提供了第二解密的应用数据。在一个实施例中,处理器210额外地验证第二解密的应用数据的完整性,以确保不存在恶意篡改。在该实例中,对第二解密的应用文件的完整性的额外验证确保了当在存储器220中时,不存在对第二解密的应用数据的篡改。一旦验证了第二解密的应用文件的完整性,则可以将第二解密的应用数据的状态从可信源204发射到处理器210。这些状态的示例可以包括:收回、需要更新、保持、执行和/或用于指示第二解密的应用数据的状态的任何其它类型的应用状态。例如,处理器可以接收要保持第二解密的应用数据的状态,此时,处理器210将不执行,直到接收到要执行的状态。在这个意义上,处理器210依赖于第二加密的应用数据的状态来执行其。
如果处理器选择发动第二加密的应用数据,那么处理器210从存储器220获取第二加密的应用数据来对其进行解密,这提供了第二解密的应用数据。然后,处理器210验证第二解密的应用数据的完整性,并且接收更新状态,例如继续应用程序的执行。然后,处理器210可以执行第二解密的应用数据。
转移到图3,框图300描绘了示例应用数据304。具体地,框图300描绘了应用数据304可以包括:可执行文件306、配置文件308、媒体310、库312和/或源代码314。例如,应用数据304可以包含可执行文件306,或者一个以上的配置文件308,以及一个以上的可执行文件306和/或元数据。此外,框图300描绘了应用数据,无论加密或解密与否,在这个意义上,应用数据304可以是加密或解密的应用数据。
可以当在计算设备上时对应用数据304加密或解密。如同之前所讨论的,应用数据304的示例包括:应用文件、应用信息、应用的组件、应用软件或应用的其它部分,并且因此可以贯穿文档互换地使用。虽然图3描绘了应用数据304包括可执行文件306、配置文件308、媒体310、库312、元数据和/或源代码314,但这不应该是限制性的,因为可以存在可以包括但没有在图3中描绘出的其它类型的软件应用信息。以该方式,应用数据304可以包括用来在计算设备上下载、发动和/或执行的与应用相关的一个或多个文件。如上所述,可信源向计算设备发射加密的应用数据304。加密的应用数据304可以是加密形式的应用数据,并且包括306、308、310、312和314中的任意一个或者组合。在计算设备处接收加密的应用文件304,可以在该计算设备处对加密的应用文件304进行解密。此外,如同之前所描述的,处理器可以执行应用数据,这可以包括306、308、310、312和314中的任意一个或组合。
现在参照图4,图4是在计算设备上执行的用于存储第二加密的应用数据的示例方法400的流程图。虽然方法400的执行是参考图1的元件描述的,但对于本领域的技术人员来说,其它合适的组件将是清楚的。可以以存储在诸如存储介质112的机器可读存储介质上的可执行指令的形式,或者以电子电路的形式来实现方法400。
在起点402处,可信源发射第一加密的应用数据。例如,在步骤402处,计算设备可以认证其自己为可信源,并且反之亦然。在一个实施例中,可信源可以在发射之前或者在运送期间对应用数据进行加密,以产生计算设备要接收的第一加密的应用数据。在步骤404处,计算设备的通信平台接收第一加密的应用数据。
接下来,在步骤404处,对第一加密的应用数据进行解密以便生成第一解密的应用数据。在步骤404处,处理器使用解密方法来生成第一解密的应用数据。步骤404可以使用解密技术、解密密钥、解密程序或适合于完成步骤404的其它解密函数。步骤404的另外示例提供:由可信源接收加密密钥,使用其来对第一加密的应用数据进行解密,对该加密密钥进行加密,并且还将该加密密钥存储在计算设备上。步骤404的再另外的示例包括:仅第一加密的应用数据的一部分被解密。又另外的,步骤404的另一示例包括将第一加密的应用数据解密到计算设备的用户不可查看的系统文件中。例如,步骤404将第一加密的应用数据解密到不可查看的存储器或高速缓存中。具体来说,该存储器是计算设备的用户不可查看的,以防止解密的应用数据被复制和/或转移。
在步骤406处,处理器验证第一解密的应用数据的完整性。步骤406,如同之前所解释的,处理器使用校验和函数、校验和程序、密码哈希函数或其它类型的完整性检查函数来计算哈希值,以便验证第一解密的应用数据的完整性。在一个实施例中,处理器可以通过从解密的应用数据计算数据值并且将其与之前计算出的在计算设备上或可信源上存储的解密的应用数据的哈希值进行比较,来验证解密的应用数据的完整性。例如,在处理器对哈希值进行加密之后,将该值与其它之前计算出的表示特定应用程序和其它应用程序的哈希值相比较,以便验证第一解密的应用数据的完整性。在另外的示例中,解密的第一加密的应用数据哈希值可以是“89&*?!”,因此在该步骤期间,诸如图1中的102的计算设备可以尝试在数据库或目录中找到相应的之前计算出的哈希值,以便验证第一解密的应用数据的完整性。数据库或目录可以位于设备上,或者位于诸如可信源的远程存储位置上。在这个意义上,处理器验证不存在对应用数据的篡改。在一个实施例中,如果没有对第一解密的应用数据的完整性的验证,那么应用数据将不会发动或执行。在另一实施例中,可以将应用数据从计算设备擦除。
在步骤408处,处理器对第一解密的应用数据进行加密。此外,处理器使用与由可信源使用的加密技术或方法不同的加密技术或方法来对第一加密应用数据进行加密,以生成第二加密的应用数据。在这个意义上,在步骤402或步骤404处接收的第一加密数据是使用第一加密技术加密的,而步骤408处的加密技术是第二加密技术。例如,第一加密可以使用密码函数,而第二加密可以使用私钥来对应用数据进行加密。在另外的示例中,第一加密可以包括可信源使用密钥对应用数据进行加密,而第二加密使用不同的密钥。在另一实施例中,第二加密技术包括使用计算设备的用户或计算设备特定的密钥。以该方法,加密技术至少基于设备的用户或计算设备。
在步骤410处,存储第二加密的应用数据。例如,如图1中所看到的,第二加密的应用数据存储在存储区域120中。
现在参照图5,图5是在计算设备上执行的用于执行第二加密的应用数据的示例方法500的流程图。此外,方法500提供了第二加密的应用数据的终止。虽然方法500的执行是参考图1的元件描述的,但对于本领域的技术人员来说,其它合适的组件将是清楚的。可以以存储在诸如存储介质112的机器可读存储介质上的可执行指令的形式,或者以电子电路的形式来实现方法500。
作为进一步举例,步骤512是图4中的方法400的继续,并且在存储第二加密的应用数据的步骤410之后开始。在步骤512处,处理器从存储区域获取第二加密的应用数据。在另一实施例中,用户可以发出处理器获取第二加密的应用的请求。
接下来,在步骤514处,对第二加密的应用数据进行解密以便生成第二解密的应用数据。作为举例,步骤514可以使用解密技术、密钥、程序或适合于完成步骤514的其它解密函数对第二加密的应用数据进行解密。作为进一步举例,步骤514将第二加密的应用数据解密到不可查看的存储器或高速缓存中。具体地,该存储器对于计算设备的用户来说是不可查看的。在这个意义上,防止了应用数据被复制。
在步骤516处,在步骤514处所生成的第二解密的应用数据用于验证完整性。完整性的验证确保了不存在对存储器中的第二加密的应用数据的篡改。作为举例,步骤516通过使用密码哈希函数来计算哈希值。具体地,第二解密的应用数据用于计算哈希值,以便通过使用校验和程序、校验和函数、密码哈希函数或其它类型的完整性检查函数来验证其完整性。在步骤516的一个实施例中,包括:计算数据值,以及然后将其与计算设备上或可信源上的其它之前计算出的哈希值相比较。将该计算出的数据值与其它之前计算出的哈希值进行比较确定是否存在相应的哈希值,以便验证应用数据的完整性。在验证之后,可以执行第二解密的应用数据。在另外的示例中,如果没有对完整性的验证,则可以将应用数据从存储器移除或者将不执行应用数据。在步骤518处,接收第二解密的应用数据的状态更新。作为举例,步骤518可以从可信源接收对第二解密的应用数据的当前状态的指引。这可以包括:收回应用数据、更新应用数据、保持、执行应用数据和/或其它类型的状态。例如,在步骤516处验证完整性之后,计算设备可以从可信源接收用于收回应用数据的状态更新,因为用户可能不再被授权执行并操作该特定的应用。因此,在步骤518处,将删除应用数据。
在步骤520处,执行第二解密的应用数据。步骤520,作为举例,计算设备102在验证完整性以及接收执行应用的更新状态之后执行第二解密的应用数据。步骤520的另外的示例包括:发动应用数据、可配置文件和可执行文件来操作应用程序。
在步骤522处,终止第二解密的应用数据。作为举例,步骤522从存储器移除应用程序的所有相关联的解密的组件。步骤522的另外的示例是接收终止第二解密的应用文件的请求,并且将第二解密的应用文件从存储器移除。例如,计算设备的用户可以选择结束应用的会话并将其关闭。计算设备接收终止第二解密的应用文件的请求,并且然后将其从存储器移除。
现在参照图6,图6是用于存储和执行第二应用数据的示例计算设备602的框图。虽然计算设备602包括处理器610和机器可读存储介质612,但其还可以包括对于本领域技术人员来说将合适的其它组件。例如,计算设备602还可以包括存储区域和/或额外的处理器、输入设备等。另外,作为举例,计算设备602可以包括:客户端设备、个人计算机、膝上型计算机、移动设备、便携式设备、或者适合于接收和存储加密的应用数据的任何其它计算设备。
处理器610可以取得、解码和执行指令614、616、618、620、622、624、626、628和630。处理器610可以包括中央处理单元(CPU)、微处理器,或适合于解密、验证、加密、存储、更新、以及执行应用数据的其它可编程设备。具体地,处理器610执行:接收第一加密的应用数据的指令614,解密处理指令616、验证第一解密的应用数据的完整性的指令618、用于生成第二加密的应用数据的加密指令620,以及存储指令622。此外,处理器610从存储器获取第二加密的应用数据以便执行:解密处理指令624,验证第二解密的应用数据的完整性的指令626,更新指令628,以及执行指令630。
机器可读存储介质612可以包括处理器610要取得、解码和执行的指令614、616、618、620、622、624、626、628和630。机器可读存储介质612可以是包含或存储可执行指令的电子、磁、光、存储器、闪速驱动器或其它物理设备。因此,机器可读存储介质612可以是,例如,随机存取存储器(RAM)、电可擦可编程只读存储器(EEPROM)、存储驱动器、光盘只读存储器(CD-ROM)等。因此,机器可读存储介质612可以是非暂态的。在其它实施例中,计算设备602可以包括应用和/或固件,所述应用和/或固件可以独立使用和/或与处理器610相结合使用以便取得、解码和/或执行机器可读存储介质612上的指令。应用和/或固件可以存储在机器可读存储介质612上和/或存储在计算设备602的另一位置上。
本文详细描述了用于通过减少对应用软件的恶意篡改来防止对应用的未经授权的使用以及向计算设备的用户和应用提供安全性机制的实施例。
Claims (15)
1. 一种用于防止对应用数据的未经授权的访问的方法,包括:
对从可信源接收的第一加密的应用数据进行解密,以便生成第一解密的应用数据;
验证对所述第一解密的应用数据的完整性;
使用与用于所述第一加密的应用数据的加密技术不同的加密技术来对所述第一解密的应用数据进行加密,以便生成第二加密的应用数据;以及
将所述第二加密的应用数据存储在计算设备的存储器上。
2. 根据权利要求1所述的方法,其中,所述计算设备上的所述加密技术是加密程序,其使用所述计算设备的用户或所述计算设备中的至少一个特定的密钥。
3. 根据权利要求1所述的方法,其中,验证所述第一解密的应用数据的完整性还包括:
计算所述第一解密的应用数据的哈希值;以及
将所述哈希值与指明的哈希值相比较;
确定所述哈希值是否与所述指明的哈希值相对应,以便确保所述第一解密的应用数据的完整性。
4. 根据权利要求1所述的方法,还包括:
对所述第二加密的应用数据进行解密以生成第二解密的应用数据;
验证所述第二解密的应用数据的完整性;
从所述可信源接收所述第二解密的应用数据的状态更新;以及
在所述计算设备上执行所述第二解密的应用数据。
5. 根据权利要求4所述的方法,其中,接收所述第二解密的应用的状态更新包括下列各项中的至少一项:不可执行、收回、需要更新和保持。
6. 根据权利要求4所述的方法,还包括:
通过从所述计算设备的所述存储器移除与所述第二解密的应用数据相关联的一个或多个文件来终止所述第二解密的应用数据。
7. 一种计算设备,包括:
通信平台,用于:
从可信源接收第一加密的应用数据,其中,所述可信源使用第一加密;
处理器,用于:
对所述第一加密的应用数据进行解密以提供第一解密的应用数据;
验证所述第一解密的应用数据的完整性;
使用与所述第一加密不同的第二加密对所述第一解密的应用数据进行加密以提供第二加密的应用数据;以及
存储器,用于存储所述第二加密的应用数据。
8. 根据权利要求7所述的计算设备,其中,为了对所述第一加密的应用数据进行解密,所述处理器附加地用于:
从所述可信源接收加密密钥;
对所述加密密钥进行加密;以及
存储所述加密密钥。
9. 根据权利要求7所述的计算设备,其中,所述应用数据包括至少一个可执行文件、配置文件、媒体、库、元数据、源代码或者其它软件相关应用文件。
10. 根据权利要求7所述的计算设备,其中,所述第二加密是使用所述计算设备或用户标识中的至少一个特定的密钥的加密技术。
11. 根据权利要求7所述的计算设备,其中,所述处理器附加地用于:
从所述存储器获取所述第二加密的应用数据;
对所述第二加密的应用数据进行解密以提供第二解密的应用数据;
验证所述第二解密的应用数据的完整性;
从所述可信源接收所述第二解密的应用数据的状态;以及
基于所述状态来执行所述第二解密的应用数据。
12. 根据权利要求11所述的计算设备,其中,从所述存储器获取所述第二加密的应用数据包括:所述处理器对用户发起的请求进行响应。
13. 根据权利要求11所述的计算设备,还包括用于所述处理器的存储器,用于:
将所述第二解密的应用数据缓存到所述存储器中;
接收终止所述第二解密的应用数据的请求;以及
将所述第二解密的应用数据从所述存储器移除。
14. 一种包括指令的非暂态机器可读存储介质,所述指令如果被执行则导致处理器用于:
接收使用第一加密来加密的第一加密的应用数据;
基于接收的加密密钥对所述第一加密的应用数据进行解密以生成第一解密的应用数据;
验证所述第一解密的应用数据的完整性;
通过使用与所述第一加密的方法不同的第二加密对所述第一解密的应用数据进行加密来生成第二加密的应用数据;以及
将所述第二加密的应用数据存储在计算设备的存储器中。
15. 根据权利要求14所述的包括指令的非暂态机器可读存储介质,其中如果被执行则导致所述处理器附加地用于:
对所述第二加密的应用数据进行解密以生成第二解密的应用数据;
验证所述第二解密的应用数据的完整性;
从可信源接收所述第二解密的应用数据的状态更新;以及
在所述计算设备上执行所述第二解密的应用数据。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/054078 WO2013048418A1 (en) | 2011-09-29 | 2011-09-29 | Decryption and encryption of application data |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103946858A true CN103946858A (zh) | 2014-07-23 |
Family
ID=47996160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180075068.0A Pending CN103946858A (zh) | 2011-09-29 | 2011-09-29 | 应用数据的解密和加密 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9489520B2 (zh) |
CN (1) | CN103946858A (zh) |
DE (1) | DE112011105688T5 (zh) |
GB (1) | GB2509422B (zh) |
WO (1) | WO2013048418A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111868724A (zh) * | 2017-12-12 | 2020-10-30 | 约翰·阿尔梅达 | 病毒免疫计算机系统和方法 |
CN112214758A (zh) * | 2019-07-09 | 2021-01-12 | 意法半导体(大西部)公司 | 用于管理经加密的软件应用的设备和方法 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2203815B1 (en) * | 2007-09-20 | 2015-08-12 | Uniloc Luxembourg S.A. | Installing protected software product using unprotected installation image |
JP5121542B2 (ja) * | 2008-04-09 | 2013-01-16 | キヤノン株式会社 | アプリケーションパッケジング装置、その制御方法、プログラム |
WO2013182376A1 (en) * | 2012-06-06 | 2013-12-12 | Nec Europe Ltd. | Method and system for executing a secure application on an untrusted user equipment |
US9215067B2 (en) * | 2013-04-05 | 2015-12-15 | International Business Machines Corporation | Achieving storage efficiency in presence of end-to-end encryption using downstream decrypters |
US9246676B2 (en) | 2013-11-22 | 2016-01-26 | Cisco Technology, Inc. | Secure access for encrypted data |
FR3017226B1 (fr) * | 2014-02-03 | 2016-01-29 | St Microelectronics Sa | Procede de securisation d'un code programme, systeme et processeur correspondants |
US9405925B2 (en) | 2014-02-09 | 2016-08-02 | Microsoft Technology Licensing, Llc | Content item encryption on mobile devices |
CN105450620B (zh) | 2014-09-30 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 一种信息处理方法及装置 |
EP3032453B1 (en) | 2014-12-08 | 2019-11-13 | eperi GmbH | Storing data in a server computer with deployable encryption/decryption infrastructure |
WO2016112338A1 (en) * | 2015-01-08 | 2016-07-14 | Intertrust Technologies Corporation | Cryptographic systems and methods |
CN106411830B (zh) * | 2016-01-25 | 2019-06-21 | 平安科技(深圳)有限公司 | 防止访问数据被篡改的方法及移动终端 |
GB2561374B (en) * | 2017-04-11 | 2022-04-06 | Secure Thingz Ltd | Storing data on target data processing devices |
US11113409B2 (en) * | 2018-10-26 | 2021-09-07 | Pure Storage, Inc. | Efficient rekey in a transparent decrypting storage array |
US11443048B2 (en) | 2019-05-06 | 2022-09-13 | Microsoft Technology Licensing, Llc | Install-time procedural content generation for encrypted packages |
DE102019003674A1 (de) * | 2019-05-24 | 2020-11-26 | Giesecke+Devrient Mobile Security Gmbh | Verfahren zum einrichten eines subskriptions-profils, verfahren zum bereitstellen eines subskriptions-profils, teilnehmeridentitätsmodul |
CN110321500B (zh) * | 2019-06-24 | 2021-07-23 | 维沃移动通信有限公司 | 一种网页内容显示方法及装置 |
DE102020006075A1 (de) | 2020-10-05 | 2022-04-07 | Daimler Ag | Verfahren zur Absicherung von gespeicherten Nutzdaten |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1571999A (zh) * | 2001-10-17 | 2005-01-26 | 皇家飞利浦电子股份有限公司 | 安全的单驱动器复制方法和设备 |
CN1780361A (zh) * | 2004-11-24 | 2006-05-31 | 纳格拉影像股份有限公司 | 管理音频/视频数据的单元和所述数据的访问控制方法 |
US20060265603A1 (en) * | 2005-03-24 | 2006-11-23 | Sony United Kingdom Limited | Programmable logic device |
CN101005699A (zh) * | 2006-01-22 | 2007-07-25 | 华为技术有限公司 | 管理终端开放平台权限信息的方法和系统 |
US20080148400A1 (en) * | 2006-10-31 | 2008-06-19 | Hewlett-Packard Development Company, L.P. | Method and apparatus for enforcement of software licence protection |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7298851B1 (en) * | 1992-12-09 | 2007-11-20 | Discovery Communications, Inc. | Electronic book security and copyright protection system |
US7263722B1 (en) * | 1999-05-12 | 2007-08-28 | Fraunhofer Crcg, Inc. | Obfuscation of executable code |
JP2001337865A (ja) * | 2000-05-25 | 2001-12-07 | Minolta Co Ltd | ファイル生成方法およびファイル管理方法ならびにファイル |
US20040037423A1 (en) | 2000-10-17 | 2004-02-26 | Robert Ghanea-Hercock | Mobile programs |
JP2002319230A (ja) * | 2001-01-25 | 2002-10-31 | Sony Computer Entertainment Inc | 記録媒体、情報処理装置、コンテンツ配信サーバ、方法、プログラム、その記録媒体 |
US20030009681A1 (en) * | 2001-07-09 | 2003-01-09 | Shunji Harada | Digital work protection system, recording medium apparatus, transmission apparatus, and playback apparatus |
US7124445B2 (en) | 2002-06-21 | 2006-10-17 | Pace Anti-Piracy, Inc. | Protecting software from unauthorized use by converting source code modules to byte codes |
US7930537B2 (en) | 2002-08-13 | 2011-04-19 | Nokia Corporation | Architecture for encrypted application installation |
US6986041B2 (en) * | 2003-03-06 | 2006-01-10 | International Business Machines Corporation | System and method for remote code integrity in distributed systems |
KR100585095B1 (ko) * | 2003-06-26 | 2006-05-30 | 삼성전자주식회사 | 데이터 전송 시스템에서의 데이터 보호 방법 및 장치 |
US7734932B2 (en) * | 2003-11-10 | 2010-06-08 | Broadcom Corporation | System and method for securing executable code |
US9020854B2 (en) * | 2004-03-08 | 2015-04-28 | Proxense, Llc | Linked account system using personal digital key (PDK-LAS) |
EP1800200B1 (en) * | 2004-10-08 | 2015-12-23 | Koninklijke Philips N.V. | User based content key encryption for a drm system |
US8086871B2 (en) | 2005-04-26 | 2011-12-27 | International Business Machines Corporation | Method for fast decryption of processor instructions in an encrypted instruction power architecture |
DE102005045852A1 (de) | 2005-09-26 | 2007-04-05 | Siemens Ag | Verfahren und System zum Schutz von Quellcode |
US7925250B2 (en) | 2006-03-27 | 2011-04-12 | International Business Machines Corporation | Reuse of a mobile device application in a desktop environment |
JP2008102618A (ja) * | 2006-10-17 | 2008-05-01 | Toshiba Corp | 電子機器およびファームウェア保護方法 |
WO2008100030A1 (en) | 2007-02-12 | 2008-08-21 | Mobiletop Co., Ltd. | Method of downloading mobile contents |
US7971261B2 (en) * | 2007-06-12 | 2011-06-28 | Microsoft Corporation | Domain management for digital media |
US8627079B2 (en) * | 2007-11-01 | 2014-01-07 | Infineon Technologies Ag | Method and system for controlling a device |
US8462954B2 (en) * | 2008-05-30 | 2013-06-11 | Motorola Mobility Llc | Content encryption using at least one content pre-key |
-
2011
- 2011-09-29 CN CN201180075068.0A patent/CN103946858A/zh active Pending
- 2011-09-29 DE DE112011105688.5T patent/DE112011105688T5/de active Pending
- 2011-09-29 US US14/347,550 patent/US9489520B2/en active Active
- 2011-09-29 GB GB1404999.3A patent/GB2509422B/en not_active Expired - Fee Related
- 2011-09-29 WO PCT/US2011/054078 patent/WO2013048418A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1571999A (zh) * | 2001-10-17 | 2005-01-26 | 皇家飞利浦电子股份有限公司 | 安全的单驱动器复制方法和设备 |
CN1780361A (zh) * | 2004-11-24 | 2006-05-31 | 纳格拉影像股份有限公司 | 管理音频/视频数据的单元和所述数据的访问控制方法 |
US20060265603A1 (en) * | 2005-03-24 | 2006-11-23 | Sony United Kingdom Limited | Programmable logic device |
CN101005699A (zh) * | 2006-01-22 | 2007-07-25 | 华为技术有限公司 | 管理终端开放平台权限信息的方法和系统 |
US20080148400A1 (en) * | 2006-10-31 | 2008-06-19 | Hewlett-Packard Development Company, L.P. | Method and apparatus for enforcement of software licence protection |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111868724A (zh) * | 2017-12-12 | 2020-10-30 | 约翰·阿尔梅达 | 病毒免疫计算机系统和方法 |
CN112214758A (zh) * | 2019-07-09 | 2021-01-12 | 意法半导体(大西部)公司 | 用于管理经加密的软件应用的设备和方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2013048418A1 (en) | 2013-04-04 |
US20140237255A1 (en) | 2014-08-21 |
GB201404999D0 (en) | 2014-05-07 |
GB2509422A (en) | 2014-07-02 |
GB2509422B (en) | 2020-12-30 |
DE112011105688T5 (de) | 2014-07-17 |
US9489520B2 (en) | 2016-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103946858A (zh) | 应用数据的解密和加密 | |
US10474823B2 (en) | Controlled secure code authentication | |
CN102271037B (zh) | 基于在线密钥的密钥保护装置 | |
US7596812B2 (en) | System and method for protected data transfer | |
JP4615601B2 (ja) | コンピュータセキュリティシステムおよびコンピュータセキュリティ方法 | |
US9135464B2 (en) | Secure storage system for distributed data | |
KR101657613B1 (ko) | 보안 저장 장치에 저장된 디지털 컨텐츠의 백업 | |
CN111034120B (zh) | 基于身份信息的加密密钥管理 | |
CN102419804B (zh) | 具有冗余安全性的可靠的软件产品验证和激活 | |
US9288054B2 (en) | Method and apparatus for authenticating and managing application using trusted platform module | |
US8181028B1 (en) | Method for secure system shutdown | |
CN113545006A (zh) | 远程授权访问锁定的数据存储设备 | |
CN106936588B (zh) | 一种硬件控制锁的托管方法、装置及系统 | |
KR102013983B1 (ko) | 애플리케이션 무결성 인증 방법 및 인증 서버 | |
CN111316596B (zh) | 具有身份验证的加密芯片 | |
CN112507296A (zh) | 一种基于区块链的用户登录验证方法及系统 | |
CN115374405A (zh) | 软件授权方法、许可授权方法、装置、设备和存储介质 | |
CN103403729A (zh) | 唯一代码签名密钥的安全管理和个性化 | |
US8769301B2 (en) | Product authentication based upon a hyperelliptic curve equation and a curve pairing function | |
CN113545021B (zh) | 预先授权设备的注册 | |
CN113326522A (zh) | 一种数据处理方法、装置、设备和计算机存储介质 | |
JP2016111440A (ja) | 情報処理装置、及びコンピュータプログラム | |
US20170372092A1 (en) | Information processing system, terminal, and determination apparatus | |
WO2022212396A1 (en) | Systems and methods of protecting secrets in use with containerized applications | |
Yoo et al. | Confidential information protection system for mobile devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140723 |