CN106575334A - 访问受保护软件应用 - Google Patents
访问受保护软件应用 Download PDFInfo
- Publication number
- CN106575334A CN106575334A CN201580044847.2A CN201580044847A CN106575334A CN 106575334 A CN106575334 A CN 106575334A CN 201580044847 A CN201580044847 A CN 201580044847A CN 106575334 A CN106575334 A CN 106575334A
- Authority
- CN
- China
- Prior art keywords
- software application
- content
- drm
- protected
- application
- 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 256
- 238000004590 computer program Methods 0.000 claims abstract description 14
- 230000004224 protection Effects 0.000 claims description 186
- 238000003032 molecular docking Methods 0.000 claims description 103
- 238000012544 monitoring process Methods 0.000 claims description 6
- 239000003795 chemical substances by application Substances 0.000 description 162
- 230000004044 response Effects 0.000 description 54
- 230000005540 biological transmission Effects 0.000 description 48
- 230000008569 process Effects 0.000 description 42
- 230000006870 function Effects 0.000 description 25
- 238000004364 calculation method Methods 0.000 description 18
- 238000013507 mapping Methods 0.000 description 18
- 238000012545 processing Methods 0.000 description 18
- 230000008859 change Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 15
- 239000000463 material Substances 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 13
- 238000012795 verification Methods 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 10
- 230000003993 interaction Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 238000003825 pressing Methods 0.000 description 6
- 230000006978 adaptation Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 238000005538 encapsulation Methods 0.000 description 4
- 241000894007 species Species 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 210000003205 muscle Anatomy 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 241000208340 Araliaceae Species 0.000 description 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 description 2
- 229940104697 arixtra Drugs 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- KANJSNBRCNMZMV-ABRZTLGGSA-N fondaparinux Chemical compound O[C@@H]1[C@@H](NS(O)(=O)=O)[C@@H](OC)O[C@H](COS(O)(=O)=O)[C@H]1O[C@H]1[C@H](OS(O)(=O)=O)[C@@H](O)[C@H](O[C@@H]2[C@@H]([C@@H](OS(O)(=O)=O)[C@H](O[C@H]3[C@@H]([C@@H](O)[C@H](O[C@@H]4[C@@H]([C@@H](O)[C@H](O)[C@@H](COS(O)(=O)=O)O4)NS(O)(=O)=O)[C@H](O3)C(O)=O)O)[C@@H](COS(O)(=O)=O)O2)NS(O)(=O)=O)[C@H](C(O)=O)O1 KANJSNBRCNMZMV-ABRZTLGGSA-N 0.000 description 2
- 235000008434 ginseng Nutrition 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000007790 scraping Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000009966 trimming Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 241000255777 Lepidoptera Species 0.000 description 1
- 208000031481 Pathologic Constriction Diseases 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000008485 antagonism Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009118 appropriate response Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 238000011049 filling Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000005577 local transmission Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000009329 sexual behaviour Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 210000001215 vagina Anatomy 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]
- G06F21/105—Arrangements for software license management or administration, e.g. for managing licenses at corporate level
-
- 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/16—Program or content traceability, e.g. by watermarking
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/36—User authentication by graphic or iconic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0021—Image watermarking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/254—Management at additional data server, e.g. shopping server, rights management server
- H04N21/2541—Rights Management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/107—License processing; Key processing
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/84—Protecting input, output or interconnection devices output devices, e.g. displays or monitors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
- H04L2209/603—Digital right managament [DRM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Databases & Information Systems (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
描述了一种供第一软件应用访问计算设备上的受保护软件应用的方法。所述第一软件应用不被配置成与所述受保护软件应用对接。所述计算设备包括:对接应用,被配置成与所述受保护软件应用对接。所述方法包括:所述第一软件应用与所述对接应用对接,从而使所述对接应用访问所述受保护软件应用。所述第一软件应用被配置成与所述对接应用对接。还描述了一种使用预先加密数据块的库生成图像的经加密版本的方法,相同的内容加密密钥已经被用于对所述预先加密数据块中的每一个进行加密。所述方法包括:由来自所述库的预先加密数据块的有序序列形成所述图像的经加密版本,其中所述有序序列中的每一个预先加密数据块对应于构成所述图像的多个子图像中的相应子图像。还描述了对应的计算设备、计算机程序和计算机可读介质。
Description
技术领域
本发明涉及用于使第一软件应用能够访问计算设备上的受保护软件应用的方法、计算机设备、计算机程序和计算机可读介质。
本发明进一步涉及用于生成图像的经加密版本的方法、计算机设备、计算机程序和计算机可读介质。
背景技术
计算设备(诸如客户端设备)包括用于执行和存储未受保护“正常”客户端软件应用的应用处理模块。该计算设备还可以包括用于执行和存储一个或多个受信软件应用的受保护处理模块。受信软件应用一般具有应用处理模块中的关联客户端应用,该关联客户端应用被配置成与受保护处理模块中的受信应用对接。受保护处理模块中的保护设施仅对受信应用及其关联客户端应用来说可用。特别地,现有受信应用的功能和能力当前对该计算设备的应用处理模块中的其他正常应用来说不可用。这尤其在下述实现中有问题:该实现中,不可能安装新受信应用或利用新功能扩展现有受信应用。本发明力图克服该问题。
发明内容
实质上,本发明的实施例涉及在应用处理模块中操作的软件应用,该应用处理模块使用现有客户端应用来调用受保护受信应用(例如,受保护处理器模块中的受信应用)以获得对受信应用的功能的访问权。
根据本发明的第一方面,提供了一种供第一软件应用访问计算设备上的受保护软件应用的方法。所述第一软件应用不被配置成与所述受保护软件应用对接。所述计算设备包括:对接应用,被配置成与所述受保护软件应用对接。所述方法包括:所述第一软件应用与所述对接应用对接,从而使所述对接应用访问所述受保护软件应用。所述第一软件应用被配置成与所述对接应用对接。
因此,第一软件应用使用对接应用来间接访问受保护软件应用的功能,否则该功能不会对它来说可用。这凭借对接应用来使第一软件应用能够使用受保护软件应用的安全性基础设施以例如获得对受保护外设(诸如显示器、键盘、鼠标、扬声器等)的访问权。
在一个有利实施例中,所述受保护软件应用是DRM客户端,并且所述对接应用是媒体播放器应用,使得所述方法包括:所述第一软件应用将DRM保护的内容发送到所述媒体播放器应用,从而使所述媒体播放器应用访问所述DRM客户端,以便使得能够在所述计算设备上呈现所述DRM保护的内容。所述DRM客户端可以被配置成防止和/或限制在所述计算设备上执行的其他软件应用访问所述DRM保护的内容。所述DRM保护的内容可以包括被所述第一软件应用的提供商知道且被所述第一软件应用的用户知道的共享秘密。这使用户能够验证所呈现的DRM保护的内容来源于所述第一软件应用的提供商。
在另一实施例中,所述计算设备包括用于获得用户输入的输入设备。所述受保护软件应用被配置成安全地从所述输入设备获得所述用户输入,使得所述方法包括:所述第一软件应用与所述对接应用对接,从而使所述对接应用访问所述受保护软件应用,以便安全地从所述输入设备获得所述用户输入。所述受保护软件应用被配置成防止所述计算设备上的其他软件应用访问从所述输入设备获得的所述用户输入。所述输入设备可以是指纹传感器、触摸屏、相机、麦克风、鼠标和键区之一。
有利地,所述受保护软件应用凭借由计算设备操作系统提供的软件模糊处理和/或节点锁定和/或隔离和/或由计算设备操作系统进行的安全加载而受保护。在一个实施例中,所述受保护软件应用凭借下述方式而受保护:所述受保护软件应用被配置成在所述计算设备的受保护模块中执行,所述第一软件应用和所述对接应用不被配置成在所述受保护模块中执行。
存在本发明的第一方面的许多应用,特别是当受保护软件应用是DRM客户端并且对接应用是媒体播放器以使得第一软件应用可以利用设备的安全视频路径时。具体应用包括机器人规避、用户身份的验证、安全交易、安全码生成、安全文档编辑、安全视频会议、以及显示的完整性。在每一种情况下,存在在设备上本地生成DRM保护的内容或可替换地使用客户端-服务器实现由此在服务器处生成DRM保护的内容的可能性。本地实施例大多数涉及使用白盒子加密。然而,在安全码生成应用中,可能在不使用白盒子加密的情况下本地生成DRM保护的码内容。该思想形成了本发明的另一方面的基础,如下面所描述。
根据本发明的第二方面,描述了一种使用预先加密数据块的库生成图像的经加密版本的方法,相同的内容加密密钥已经被用于对所述预先加密数据块中的每一个进行加密。所述方法包括:由来自所述库的预先加密数据块的有序序列形成所述图像的经加密版本,其中所述有序序列中的每一个预先加密数据块对应于构成所述图像的多个子图像中的相应子图像。
所述方法可以进一步包括:将所述图像的经加密版本与所述内容加密密钥的经加密版本一起封装,以形成所述图像的DRM保护的版本。
所述图像可以包括机器可读代码(例如,QR码)和/或键区。
预先加密数据块的有序序列中的每一个数据块可以形成所述图像的经加密版本中的I帧的相应切片。
预先加密数据块的库中的每一个数据块可以表示n×m个像素的子图像,其中n和m是整数。
在一个实施例中,预先加密数据块的库中的每一个数据块对应于以MPEG-2视频编码格式存在的宏块。
所述图像的经加密版本可以形成加密视频的一部分。
所述方法可以进一步包括:从服务器接收至少一个加密数据块。所述至少一个加密数据块对应于构成所述图像的所述多个子图像中的相应至少一个子图像。所述至少一个加密数据块已经是使用所述内容加密密钥来加密的。来自所述服务器的所述至少一个加密数据块与来自所述库的预先加密数据块的有序序列组合,以形成所述图像的经加密版本。
来自所述库的预先加密数据块的序列可以包括所述有序序列中的固定位置处的至少一个固定数据块。
根据本发明的第三方面,提供了一种被布置成实施根据第一方面的方法的计算设备。
根据本发明的第四方面,提供了一种计算机程序,其在由一个或多个处理器执行时使所述一个或多个处理器实施根据第一方面的方法。
根据本发明的第五方面,提供了一种计算机可读介质,其存储根据第三方面的计算机程序。
在所附权利要求中陈述本发明的其他优选特征。
附图说明
现在将作为示例参照附图来描述本发明的实施例,在附图中:
图1示意性地图示了可在本发明的实施例中使用的计算机系统100的示例;
图2是基于全局平台TEE架构的现有技术架构图;
图3是由TEE架构产生的现有技术软件架构;
图4是图3的现有技术软件架构的示例,其中客户端应用是媒体播放器并且受信应用是DRM客户端;
图5示意性地图示了本发明的实施例;
图6示意性地图示了本发明的媒体播放器实施例;
图7A示意性地图示了用于使用图6的媒体播放器实施例进行机器人规避的设备/服务器实现方式;
图7B是示意性地图示了与图7A的用于机器人规避的设备/服务器实现方式相关的方法的流程图;
图7C示意性地图示了用于使用图6的媒体播放器实施例进行机器人规避的本地设备实现方式;
图7D是示意性地图示了与图7C的用于机器人规避的本地设备实现方式相关的方法的流程图;
图8A示意性地图示了用于使用图6的媒体播放器实施例验证用户身份的设备/服务器实现方式;
图8B是示意性地图示了与图8A的用于验证用户身份的设备/服务器实现方式相关的方法的流程图;
图8C示意性地图示了用于使用图6的媒体播放器实施例验证用户身份的本地设备实现方式;
图8D是示意性地图示了与图8C的用于验证用户身份的本地设备实现方式相关的方法的流程图;
图9A示意性地图示了用于再次使用图6的媒体播放器实施例与POS终端进行安全交易的设备/服务器实现方式;
图9B是示意性地图示了与图9A的用于安全交易的设备/服务器实现方式相关的方法的流程图;
图9C示意性地图示了当服务器离线时图9A的安全交易实现方式的可替换实现方式;
图9D是示意性地图示了与图9C的用于安全交易的离线服务器实现方式相关的方法的流程图;
图9E示意性地图示了用于再次使用图6的媒体播放器实施例与POS终端进行安全交易的本地设备实现方式;
图9F是示意性地图示了与图9E的用于安全交易的本地设备实现方式相关的方法的流程图;
图10A示意性地图示了用于再次使用图6的媒体播放器实施例进行安全代码生成(例如,以便实现与POS终端的交易)的本地设备实现方式;
图10B是示意性地图示了与图10A的用于代码生成的本地设备实现方式相关的方法的流程图;
图10C示出了可能使用图10A的方法、作为中间步骤而生成的部分模糊的QR码的示例;
图10D示出了图10C的部分模糊的QR码的经校正(即,非模糊)版本;
图10E是示意性地图示了与图10A的用于代码生成的本地设备实现方式相关的可替换方法的流程图;
图11A是示意性地图示了用于使用图6的媒体播放器实施例进行安全消息传递的方法的流程图;
图11B示意性地图示了生成要在图11A的实现方式中使用的DRM保护的消息内容的一种方式;
图11C是示意性地图示了与基于图11A和11B生成和呈现受保护消息相关的方法的流程图;
图11D示意性地图示了生成要在图11A的实现方式中使用的DRM保护的消息内容的另一方式;
图12A示出了可被一起用于生成任何QR码的子图像的集合;
图12B示出了示例性QR码,并图示了被用于形成QR码的顶部分的图12A的子图像;以及
图12C和12D示出了可以如何根据图12A的子图像的可替换排序来生成图12B的QR码的顶部分。
具体实施方式
在下面的描述中以及在附图中,描述本发明的某些实施例。然而,将领会的是,本发明不限于所描述的实施例,并且一些实施例可能不将下面描述的所有特征都包括进来。然而,将显而易见的是,在不脱离如所附权利要求中阐述的本发明的更宽精神和范围的情况下,本文可以作出各种修改和改变。
1——系统概览
图1中示意性地图示了计算机系统100的示例。系统100包括计算机102。计算机102包括储存介质104、存储器106、处理器108、接口110、用户输出接口112、用户输入接口114和网络接口116,全部通过一个或多个通信总线118链接在一起。
储存介质104可以是任何形式的非易失性数据储存设备,诸如硬盘驱动器、磁盘、光盘、ROM等中的一个或多个。储存介质104可以存储操作系统,以供处理器108按顺序执行以使计算机102起作用。储存介质104还可以储存一个或多个计算机程序(或者软件或指令或代码)。
存储器106可以是适于存储数据和/或计算机程序(或者软件或指令或代码)的任何随机存取存储器(储存单元或易失性储存介质)。
处理器108可以是适于执行一个或多个计算机程序(诸如,存储在储存介质104上和/或存储在存储器106中的那些计算机程序)的任何数据处理单元,该一个或多个计算机程序中的一些可以是根据本发明实施例的计算机程序或者下述计算机程序:其在由处理器108执行时使处理器108实施根据本发明实施例的方法并将系统100配置成根据本发明实施例的系统。处理器108可以包括单个数据处理单元或者彼此并行或协作地操作的多个数据处理单元。处理器108在实施本发明实施例的数据处理操作时可以将数据存储到储存介质104和/或存储器106和/或从储存介质104和/或存储器106读取数据。
接口110可以是用于提供面向处于计算机102外部或可从计算机102移除的设备122的接口的任何单元。设备122可以是数据储存设备,例如光盘、磁盘、固态储存设备等中的一个或多个。设备122可以具有处理能力——例如,设备可以是智能卡。接口110可以因而根据其从处理器108接收的一个或多个命令来从设备122访问数据、或将数据提供给设备122、或与设备122对接。
用户输入接口114被布置成从系统100的用户或操作者接收输入。用户可以经由系统100的连接到用户输入接口114或与用户输入接口114通信的一个或多个输入设备(诸如鼠标(或其他定点设备)126和/或键盘124)来提供该输入。然而,将领会的是,用户可以经由一个或多个附加或可替换输入设备(诸如触摸屏)将输入提供给计算机102。计算机102可以将经由用户输入接口114从输入设备接收的输入存储在存储器106中以供处理器108后续访问和处理,或者可以将它直接传递到处理器108以使得处理器108可以相应地对用户输入作出响应。
用户输出接口112被布置成将图形/视觉和/或音频输出提供给系统100的用户或操作者。由此,处理器108可以被布置成指示用户输出接口112形成表示期望图形输出的图像/视频信号并将该信号提供给系统100的连接到用户输出接口112的监视器(或者屏幕或显示单元)120。附加地或可替换地,处理器108可以被布置成指示用户输出接口112形成表示期望音频输出的音频信号并将该信号提供给系统100的连接到用户输出接口112的一个或多个扬声器121。
最后,网络接口116提供供计算机102从一个或多个数据通信网络下载数据和/或将数据更新到一个或多个数据通信网络的功能。
将领会的是,图1中图示且上面描述的系统100的架构仅是示例性的,并且在本发明的实施例中可以使用具有不同架构(例如,具有比图1中所示的部件更少的部件或者具有与图1中所示的部件相比附加和/或可替换的部件)的其他计算机系统100。作为示例,计算机系统100可以包括下述各项中的一个或多个:个人计算机;服务器计算机;移动电话;平板电脑;膝上型电脑;电视机;机顶盒;游戏控制台;其他移动设备或消费电子设备;等等。
2——示例性TEE架构
图1的计算机系统100可以包括片上系统(SoC)。当前SoC设备常常包括用于通用应用的多个处理器核和仅执行受信应用的受保护处理器。这种芯片设备被用在广泛的消费者装备设备(诸如数字TV接收机、移动电话和平板计算机)中。
跨产业全局平台关联标识符开发并发布规范,该规范促进了安全芯片技术上多个应用的安全且可互操作的部属和管理。全局平台架构文档描述了受信执行环境(TEE)和用于这种环境的标准化应用编程接口(API)。图2是基于全局平台TEE架构的架构图。
图2的SoC 200包括受保护处理器模块210和应用处理器模块220。应用处理器模块220形成用于一般软件应用和操作系统的富执行环境(在全局平台术语中)。受保护处理器模块210形成TEE并仅运行实现安全性敏感功能的受信应用。受保护处理器模块210中的资源对应用处理器模块220中的软件应用来说不是直接可访问的。这两个模块之间的通信一般被实现在OS驱动器中。
除了诸如受保护CPU、受保护密码模块和受保护存储器模块(例如,RAM、ROM和一次性可编程(OTP)存储器)之类的相当典型计算资源外,受保护处理器模块210包括用于安全地与外围硬件部件(未示出)对接的受保护外围模块。受保护处理器模块210的所有模块通过一个或多个通信总线全部链接在一起。还存在用于与应用处理器模块220的串行链路通信的串行链路。应用处理器模块220包括主CPU和存储器模块(例如,RAM、ROM和OTP存储器)。应用处理器模块220还包括用于与外围部件对接的外围模块。应用处理器模块220的所有模块通过一个或多个通信总线全部链接在一起。图2中还示出了外部存储器(包括受保护部件)。
(受保护处理器模块210中执行的)受保护外围模块中的受信软件应用能够与终端用户交互,同时防止(应用处理器模块220中执行的)标准软件应用观察该交互。
将理解的是,图1的储存介质104和存储器106可以包括图2的受保护处理器模块210和应用处理器模块220两者的ROM、RAM和OTP以及外部存储器。类似地,图1的处理器108可以包括图2的主CPU和受保护CPU两者。
存在用于建立全局平台TEE的若干不同实现方式可替换方案。简单实现方式将受保护处理器模块210和应用处理器模块220组合为单个SoC 200上的分离模块。另一实现方式使用硬件安全情境切换部件,其允许应用处理器模块220和受保护处理器模块210共享相同计算资源,但在对资源的访问完全分离的情况下。另外其他实现方式使用外部受保护处理器模块210或者甚至可移除受保护处理器模块210。
TEE架构导致如图3中图示的软件架构。受信应用310在受保护处理器模块210中执行,因此其具有对受保护处理器模块210中的保护资源的完全访问权。受信应用310对接到在应用处理器模块220中执行的客户端应用320。客户端应用320充当服务提供商300与受信应用310之间的中介。客户端应用320实现在应用处理器模块220的软件基础设施中很好地支持的功能和用户接口。因此,客户端应用320和受信应用310一起提供对由受保护模块210中的硬件安全性措施(受信外设)支持的受保护服务的访问权。
图4中示出了媒体播放器示例。在该示例中,客户端应用是媒体播放器420,受信应用是DRM客户端410,并且服务提供商是与同DRM客户端410相关的DRM服务器430通信的内容提供商400。将领会的是,DRM客户端的功能性很好地被本领域技术人员所理解。在WO2013120538中提供了与DRM功能性有关的进一步细节,WO2013120538的整体内容通过引用并入本文。DRM客户端410可以具有对受信外设的访问权。
参照图4,媒体播放器420可以使用DRM客户端410(其在受保护处理器模块210中操作)以对从内容提供商400接收的经保护数字媒体内容进行解密和解码。DRM客户端410还使媒体播放器420能够安全地呈现内容(例如,音频和视频)。在TEE中操作的DRM客户端保护在内容解码和内容呈现中使用的所有缓冲器,因此,应用处理器模块220中的正常软件应用在内容解密操作之后不能观察到与内容相关联的任何数据。在该示例中,受保护处理器模块210防止依赖于观察数据缓冲器、通信接口或输出设备的攻击。即使攻击者在应用处理器模块220中使用在最高特权级别处执行的软件应用,受保护处理器模块210也抵御这些攻击。这种DRM功能性是很好理解的。
ARM® TrustZone®列出了其TEE实现的DRM客户端的以下目的:
· 从解密到解码、解压缩和呈现/输出到外部链路的端到端视频路径必须是硬件隔离的,使得内容被保护以抵御未授权软件过程和其他硬件部件。
· 在处理、解码、混频和呈现内容时使用的存储器缓冲器需要被硬件访问控制引擎保护,使得缓冲器对其他未授权软件或硬件部件来说不可访问。输出仅被允许内部显示或经由诸如HDCP或DTCP之类的经保护链路而导出。
· 与解码器、混频器和呈现器相关联的固件以及任何软件部件(诸如,直接在设立经保护存储器路径时使用的DRM代理)应当被保护以抵御篡改,包括使关键部件被置于安全处理空间中、或者在启动时和/或在运行时被完整性检查和监视、或者等同措施。
全局平台规范和ARM® TrustZone®示例示出了:TEE实现的DRM客户端可以提供与仅使用应用处理器模块的实现方式相比的益处。由于诸如安卓之类的流行操作系统的“开放”性质,攻击者可以开发和部署下述应用:该应用可以窃听经保护内容处理的现有接口以获得内容的高质量未保护拷贝。DRM客户端的TEE实现方式减轻了该类攻击。由此,用于移动电话和平板电脑的大多数SoC设备以TEE实现的DRM客户端为特征,如本领域技术人员将理解的那样。
应当注意,全局平台将TEE定义为支持分离环境的硬件和软件的组合。在许多DRM实现方式中,如全局平台所定义的TEE未被使用。TEE可以仅仅是在硬件级别处与主应用处理器(在ARM® TrustZone®的情况下,这是硬件管理程序;在大多数机顶盒片上系统的情况下,其为实际分离处理器;在其他实例中,可想到地,其甚至可以是逻辑门的隔离集合)分离的过程。将理解的是,可以使用上面提到的TEE实现方式中的任一个来实现DRM客户端(诸如DRM客户端410)。全局平台TEE是实现与主CPU分离的DRM客户端的单个示例性方法。
3——本发明的第一方面
图5中示意性地图示了本发明的第一方面。计算设备500包括第一软件应用530、对接应用525和受保护软件应用515。对接应用525被配置成与受保护软件应用515对接。第一软件应用530不被配置成与受保护软件应用515对接(使得受保护软件应用515的功能性对第一软件应用530来说不是直接可访问的)。换言之,受保护软件应用515的(一个或多个)接口对第一软件应用530来说不是(直接)可访问的。然而,第一软件应用530被配置成与对接应用525对接。图5中图示的架构使第一软件应用530能够访问受保护软件应用515。这通过第一软件应用530与对接应用525对接而完成,从而使对接应用525访问受保护软件应用515。
因此,本发明的第一方面是一种方法,供第一软件应用在受保护软件应用仅将其(一个或多个)接口暴露于多个预定对接应用时利用受保护软件应用的功能性。第一软件应用不是预定对接应用之一。该方法包括:第一软件应用经由预定对接应用之一间接地访问受保护软件应用。
计算设备500可以是客户端设备。示例性计算设备500包括移动设备(诸如智能电话或平板电脑)、PC和膝上型电脑。也可想到其他计算设备500。
受保护软件应用515是受保护(或经保护)软件应用。特别地,受保护软件应用515包括抵御至少一种形式的攻击的保护。例如,受保护软件应用515可以凭借由操作系统提供的软件模糊处理和/或节点锁定和/或隔离而受保护。一个示例性安全性实现方式是使用受保护模块510,如图5中所示。可选的是,图5中以虚线示出了受保护模块510。在受保护软件应用515的该“受保护模块”实现方式中,受保护模块510可以对应于上述架构中的受保护处理模块210,并可以形成受信执行环境(TEE)。在该实施例中,受保护软件应用515等同于上述受信应用310,使得受保护软件应用515安全地执行/运行(且可以安全地存储)在受保护模块510中。受保护软件应用515受制于受保护模块510的保护设施,使得受保护软件应用515可以被视为“受保护的”(或经保护的)。
如前所提到的那样,对接应用525被配置成与受保护软件应用515对接(即,交互或通信)。换言之,对接应用525与受保护软件应用515相关联,使得受保护软件应用515经由对接应用525可访问。对接应用525还可以以某种方式(例如,通过软件模糊处理或上述其他安全性实现方式)“受保护”。
在图5的安全性实现方式中,对接应用525和第一软件应用530二者均在受保护模块510外执行/运行。特别地,对接应用525和第一软件应用530可以在计算设备500的第一模块520中执行且存储在计算设备500的第一模块520中,第一模块520与受保护模块510不同(且分离)。第一模块520可以对应于上述架构中的应用处理模块220。因此,对接应用525可以等同于上述客户端应用320。
对接应用525因而被配置成与在受保护模块(TEE)中执行的受保护软件应用515协作地提供受保护功能。优选地,对接应用525与受保护软件应用515之间的接口受保护,使得通信可以不被计算设备上的其他软件应用监视。换言之,受保护软件应用515与对接应用525之间的接口被配置成使得两者之间的交互不能被在计算设备500上执行的其他软件应用(特别地,受保护模块510外的那些软件应用)观察到。因此,在第一模块520中执行的其他软件应用不能观察到受保护软件应用515与对接应用525之间的交互。该“不可观察”功能性很好地被本领域技术人员理解(参见例如现有技术DRM客户端)。
一般地,第一软件应用530是想要能够使用受保护软件应用515的受保护功能性的软件应用。第一软件应用530可以是操作系统、设备驱动器、二进制可执行程序和以源代码格式存在(例如,在浏览器或虚拟机中执行)的软件应用之一。
如上所提到,第一软件应用530被配置成与对接应用525对接,从而使对接应用525访问受保护软件应用515。例如,第一软件应用530可以向对接应用525发送访问受保护软件应用515的请求。因此,本发明的第一方面使第一软件应用530能够间接访问受保护软件应用515。因此,第一软件应用530的终端用户能够(经由关联对接应用525)与受保护软件应用515交互而不被在受保护模块510外的计算设备500上执行的其他软件应用观察到。第一软件应用530从而使用对接应用525和受保护软件应用515来提供受保护功能。实践中,第一软件应用530可以针对关联服务提供商540(基于对接应用525和受保护软件应用515的功能性)提供安全性功能。
在图5的受保护模块实现方式中,第一软件应用不被配置成与被配置成在受保护模块中执行的任何软件应用对接。换言之,受保护模块对第一软件应用来说根本不可访问。这是对接应用被用作中介的原因。更一般地,被配置成在受保护模块(诸如受保护软件应用)中执行的任何软件应用仅经由一个或多个预定访问应用而可访问,该一个或多个预定访问应用包括对接应用但不包括第一软件应用。因此,受保护模块不可访问,除了可被预先授权的应用访问。这种“受保护模块”在智能电话等等中常见,特别是对于受保护DRM客户端的实现方式。
根据上述方法,第一软件应用530能够使用对接应用525的公共特征,以便例如获得对由受保护模块(TEE)中的硬件安全性措施支持的受保护服务的访问权。受保护软件应用515可以提供抵御在设备500上执行的其他应用的攻击的保护。例如,对接应用525可以使用受保护软件应用515中的功能性,以在设备500的屏幕上显示不能由在相同计算设备500上操作的其他软件应用访问的图像。可替换地,对接应用525可以使用受保护软件应用515中的功能性,以便以下述这种方式安全地从输入设备(诸如指纹读取器)获得输入:输入不能被相同计算设备500中的另一应用拦截或观察到。在现有技术中,这种功能是针对特定远程服务提供商(例如,服务提供商300)而实现的,该特定远程服务提供商还已经作出在计算设备500上安装对接应用525(例如,客户端应用320)和受保护软件应用515(例如,受信应用310)的布置。第一软件应用530与对接应用525对接,以激活由对接应用525和受保护软件应用515提供的受保护功能性。
特别地,面向受保护模块510中的受信应用(诸如受保护软件应用515)的接口对以源代码格式分发且在虚拟机中执行或在脚本语言解释器中评估的软件应用来说不可用。换言之,对接应用525可以不是以源代码格式分发或者在虚拟机中执行或在脚本语言解释器中评估的软件应用。因此,使用第一软件应用530的另一优势是:受信应用的功能性可以变为对以源代码格式分发且在虚拟机中执行或在脚本语言解释器中评估的软件应用来说可用,这是由于第一软件应用可以以这些格式之一存在,同时仍能够与对接应用525对接。
例如,本发明的第一方面的实现方式可以是安卓实现方式。然而,可想到其他实现方式。
对接应用525可以包括与第三方对接的接口(例如,图3的客户端应用320具有与服务提供商300对接的接口)。在该情况下,第一软件应用530可以被配置成使用该相同第三方接口来与对接应用525对接。由于客户端应用320与服务提供商300之间的任何接口可以是专有的,因此对于第一软件应用530而言,首先获取使用专有接口的能力可能是必要的。因此,第一软件应用530可能首先需要与服务提供商300通信以获得访问面向客户端应用320(即,对接应用525)的接口的相关许可。可替换地,客户端应用320与服务提供商300之间的接口可以是公共的。可替换地,第一软件应用530可以经由对接应用525的可替换公共接口(或公共功能性)来与对接应用对接。第一软件应用530使用对接应用525对接到服务提供商,以激活由对接应用525和受保护软件应用515提供的受保护功能性。
服务提供商540将消息发送到第一软件应用530,第一软件应用530处理消息并使用面向对接应用525和受保护软件应用515的接口实现期望安全性功能。像客户端应用320与服务提供商300之间的接口那样,第一软件应用530与服务提供商540之间的接口常常是专有的,且可以受保护、被加密或以其他方式经保护以便防止攻击。
在一些实施例中,可以存在在相同设备500上操作的多个对接应用和/或多个受保护软件应用和/或多个第一软件应用。(该多个对接应用中的)单个对接应用可能能够与多个受保护软件应用对接,和/或(该多个受保护软件应用中的)单个受保护软件应用可能能够支持多个(不同)对接应用。类似地,(该多个第一软件应用中的)单个第一软件应用可以被配置成与多个对接应用对接,和/或(该多个对接应用中的)单个对接应用可能能够与多个第一软件应用对接。
考虑到下述实施例:其中,对接应用525是计算设备500上的多个对接应用之一。每一个对接应用被配置成与受保护软件应用515的相应实例对接。换言之,每一个对接应用对接到受保护软件应用515的唯一实例,从而提供与受保护软件应用515通信的各种对接应用之间的隔离。当使用(如图5中所示的)受保护软件应用515的“受保护模块”实现方式时,每一个对接应用处于受保护模块510外,并可以处于第一模块520中。
类似地,考虑到下述实施例:其中,第一软件应用530是计算设备500上的多个第一软件应用之一。每一个第一软件应用被配置成与对接应用525的相应实例对接。换言之,每一个第一软件应用对接到对接应用525的唯一实例,从而提供与对接应用525通信的各种第一软件应用之间的隔离。当使用(如图5中所示的)受保护软件应用515的“受保护模块”实现方式时,每一个第一软件应用处于受保护模块510外,并可以处于第一模块520中。
受保护软件应用仅经由一个或多个预定访问应用而可访问,该一个或多个预定访问应用包括对接应用但不包括第一软件应用。
4——媒体播放器实施例
部分地响应于来自电影和电视工作室的压力,DRM客户端/模块当前存在以启用诸如设备500之类的用户设备中的安全视频路径。这意味着:在黑客在设备内部的软件不能够看到正在屏幕上显示的视频的情况下对视频进行解密和显示是可能的,如下所述。
图6中示出了媒体播放器实施例。在该实施例中,对接应用是或包括媒体播放器或媒体播放器应用625,并且受保护软件应用是或包括DRM客户端615。图6的实施例使用DRM客户端615的公共“受保护模块”实现方式,如上参照图5所述。然而,将理解的是,取代该“受保护模块”实现方式或者除该“受保护模块”实现方式外,可以使用DRM客户端615的其他安全性实现方式(例如,软件模糊处理)。
媒体播放器625可以使用(在受保护模块510中操作的)DRM客户端615以安全地对经保护的数字媒体内容进行解密和解码。然而,不是从内容提供商(诸如内容提供商400)接收经保护的数字内容,而是媒体播放器625从第一软件应用530接收与其自身的服务提供商540相关联的经保护的数字内容。经保护的数字内容可以由服务提供商540提供(其中第一软件应用530充当中介)。这种内容可以由服务提供商540自身提供,或者可以由服务提供商结合DRM服务器提供。可替换地,如果第一软件应用530以某种方式(例如,凭借软件模糊处理)受保护,则经保护的数字内容可以由第一软件应用530自身生成。
DRM客户端410还使媒体播放器420能够安全地呈现经保护的数字内容(例如,音频和/或视频)。因此,第一软件应用530可以被配置成向媒体播放器625发送DRM保护的内容,从而使媒体播放器625访问DRM客户615,以便使得能够在计算设备500上呈现DRM保护的内容。DRM客户端可以被配置成防止和/或限制在计算设备500上执行的其他软件应用访问(即,查看/捕获/呈现/等)DRM保护的内容。因此,DRM保护的文件可以被用于以在相同平台上运行的其他应用不能访问显示存储器的方式在计算设备500上显示图像。DRM客户端615是与供经保护内容由媒体播放器625呈现的保护方案相关联的DRM客户端。
在该实施例中,第一软件应用530可以首先向媒体播放器625发送呈现请求且其次向媒体播放器625发送经保护内容。可替换地,在将经保护内容发送到媒体播放器625时,呈现请求可以是隐式的。这触发了实现经保护回放的DRM客户端615,经保护回放包括所呈现的流的经保护输出。经保护内容的呈现是在广泛的软件开发套件、媒体库和系统API中以及在解释器环境(浏览器)和虚拟机环境(Java VM)中支持的。因此,在该媒体播放器实施例中,本发明的第一方面允许第一软件应用530使用这种现有内容呈现接口(即,媒体播放器625)以获得对经保护输出外设(音频/视频)的访问权。
在一个实施例中,DRM保护的内容可以包括音频内容,并且DRM客户端615可以被配置成防止计算设备500上的其他软件应用获得在使用计算设备500的扬声器加以呈现时的所呈现的音频内容的记录。
在一个实施例中,DRM保护的内容可以包括图像内容,并且DRM客户端615可以被配置成防止计算设备500上的其他软件应用获得在计算设备500的屏幕上呈现时的图像内容的屏幕截图。图像内容可以来自静止图像或视频内容。将理解的是,屏幕截图(或屏幕捕获或屏幕捕捉或屏幕转储或屏幕攫取)是由设备500拍摄以记录在屏幕(或监视器或电视或另一视觉输出设备)上显示的可视项目的图像。在一个实施例中,图像内容可以包括字符的集合(例如,数字键区),其中字符在图像中的位置被随机指派,使得由用户进行的输入的软件应用监视位置(在图像上)不能确定对应字符输入。例如,考虑到这种键区在触摸屏上的显示以使用户能够例如录入登录ID或口令。监视由用户进行的屏幕触摸的位置的软件应用将不能确定关联字符输入。字符的位置对查看经保护DRM内容的所呈现版本的用户来说清楚已知。字符的位置对第一软件应用530的提供商(例如,服务提供商540)来说也已知,使得提供商540能够从用户获得安全输入,而字符输入对在设备500上执行的其他软件应用来说不可观察。
将领会的是,一些实施例可想到与安全地显示的DRM保护的内容的用户交互。例如,上述实施例可能要求用户使用所显示的字符集合(诸如键区)提供字符输入。在这样的情况下,第一软件应用530被布置成接收用户交互(例如,键区输入)并将它们传递到服务提供商540,优选地受保护(例如,经加密)接口。由此,服务提供商540可能希望更改正在向用户显示的DRM保护的内容。例如,如果用户正在凭借字符键区来录入登录ID或口令,则服务提供商540可能希望随着登录ID或口令正在被录入而将其显示给用户(以便给用户提供与它们到目前为止已经提供哪些字符输入有关的反馈)。
可替换地/附加地,服务提供商可能希望在单个字符的每一个用户输入之后更改所显示的字符的位置。因此,响应于接收到标识或指定一个或多个用户交互的数据,服务提供商540实时地将可替换或经更新的DRM保护的内容提供给第一软件应用530,以用于经由由媒体播放器625和DRM客户端615提供的经保护视频路径进行呈现。为了实现该功能性,服务提供商540可能正在与DRM服务提供商(诸如,图4的DRM服务器430)对接。将领会的是,服务提供商540可以包括一个或多个服务器,其中至少一个可以是云服务器。类似地,DRM服务提供商可以包括一个或多个DRM服务器,其中至少一个可以是云服务器。云架构的使用使服务提供商540和DRM服务提供商能够实时处理交互式内容。在可替换实施例中,内容可以是未随着用户与在计算设备500上安全地呈现的内容的版本交互而修改的单个文件或流。
如本领域技术人员将很好地理解的那样,DRM系统使得能够以下述这种方式保护内容:其仅可以被呈现在特定计算设备上,该特定计算设备包括具有特定DRM客户端ID的DRM客户端615。此外,如上所述,第一软件应用530使用户能够与计算设备交互,以安全地提供特定输入(例如,登录ID和口令)。特征的该组合提供了高度地受保护的系统和方法,其中,第一软件应用530可能要求(i)正确计算设备和(ii)正确用户二者存在,以使得能够在计算设备上持续执行第一软件应用530。例如,参照下面的安全支付示例,第一软件应用530可以被配置成使得仅在正确设备上显示了DRM内容而用户输入正确PIN(其仅对它们来说已知)的情况下支付交易将可能被批准。这提供了针对这种交易的双层安全性。
第一软件应用530可以被配置成以对接应用530预定的格式将输入和/或内容提供给对接应用525。作为示例,考虑图6的媒体播放器实施例。第一软件应用530向媒体播放器625发送经保护内容文件(或流)。媒体播放器625与DRM客户端615协作地处理文件以呈现经保护内容。在该示例中,TEE中的DRM客户端615还将保护内容的经解码的输出以抵御计算设备中的其他客户端应用的观察。第一软件应用530可以支持依赖于计算设备500中的媒体播放器625和DRM客户端615的特征集合的不同经保护内容文件的生成。例如,如果第一软件应用530的功能是安全地显示经保护图像,但媒体播放器625仅支持经保护视频的回放,则第一软件应用530可以被配置成在添加由计算设备500中的媒体播放器625支持的DRM客户端615所要求的保护之前将图像编码为静止图像的重复序列。
一般地,媒体播放器应用具有用户友好界面,以使得能够使用媒体播放器应用来呈现来自多种多样的源的多种多样的内容。因此,媒体播放器625可以具有使其能够从任何第三方应用接收DRM保护的内容的公共可用界面和功能性。如上所提到的那样,应当以适于由媒体播放器625处理的预定格式将DRM保护的内容提供给媒体播放器625。因此,第一软件应用530自身可以被配置成以适于媒体播放器625的格式输出DRM保护的内容。可替换地,API可以被用于使第一软件应用530能够有效地与媒体播放器625对接。媒体播放器625可以被配置成接收具有和/或不具有伴随的DRM执照/证书的DRM保护的内容。
当第一软件应用530向媒体播放器625发送DRM保护的内容以用于结合DRM客户端615进行呈现时,将理解的是,仅具有对适当DRM执照的访问权的DRM客户端615将能够在设备500上呈现DRM保护的内容。因此,第一软件应用530进一步被配置成与关联于DRM客户端615的DRM服务器430通信,从而确保DRM客户端615具有对与DRM保护的内容相关联的DRM执照的访问权。例如,第一软件应用530可以被配置成请求DRM服务器430生成DRM执照以使DRM客户端615能够呈现源自第一软件应用530的DRM保护的内容。可替换地,第一软件应用530可以被配置成从DRM服务器430获得DRM执照并经由媒体播放器625向DRM客户端615发送所获得的DRM执照。第一软件应用530可以进一步被配置成将DRM执照与DRM保护的内容一起封装,以用于发送到媒体播放器625。
将领会的是,单个DRM执照可以足以供DRM客户端615呈现经由媒体播放器625从第一软件应用530接收的所有后续DRM保护的内容。在该情况下,第一软件应用530一般可以将DRM保护的内容与要使用的DRM执照的指示一起而不是与实际DRM执照自身一起转发到媒体播放器625。取而代之,DRM执照可以由DRM客户端615安全地本地存储,且可以在必要时由DRM客户端615在接收到源自第一软件应用530的呈现请求(其中这种请求将指定该DRM执照是要使用的那一个)时访问。DRM客户端615可能最初已经接收到与源自第一软件应用530的初始DRM保护的内容一起的本地存储的DRM执照(即,与来源于第一软件应用530的初始呈现请求一起从媒体播放器625c接收)。可替换地,在第一软件应用530根本未具有对DRM执照的访问权的情况下,DRM客户端615可能最初已经从DRM服务器430接收到/检索到本地存储的DRM执照(即,可以经由与DRM保护的内容不同的路径接收到DRM执照)。这是可行的,由于第一软件应用530自身不要求对DRM执照的访问权。
DRM保护的内容可以包括第一软件应用530的提供商(即,服务提供商540)和第一软件应用530的用户已知的共享秘密。这种共享秘密的包括使用户能够验证所呈现的DRM保护的内容来源于第一软件应用530的提供商540。这有助于防止攻击,由此攻击者使设备500呈现所攻击的功能而不是来自服务提供商540的原始内容。例如,共享秘密可以包括仅对用户来说以及对服务提供商530来说已知的视频或图像内容(例如,用户的照片、特定颜色方案、特定图标或特定显示布局)。在计算设备上呈现经保护内容期间,包括视频或图像内容的共享秘密可以被用作背景。共享秘密可以取而代之/此外包括音频内容(诸如用户的名字的记录)。为了提供最佳保护,共享内容仅被服务提供商540和用户知道。
总的来说,根据该媒体播放器实施例,提供了一种供第一软件应用访问计算设备上的DRM客户端(受保护软件应用)的方法。第一软件应用不被配置成与DRM客户端对接。计算设备包括被配置成与DRM客户端对接的媒体播放器应用(对接应用)。该方法包括:第一软件应用向媒体播放器应用发送DRM保护的内容,从而使媒体播放器应用访问DRM客户端,以便使得能够在计算设备上呈现内容,其中DRM客户端被配置成防止和/或限制在计算设备上执行的其他软件应用访问内容。
下面详细描述图6的媒体播放器实施例的多个应用。这些应用中的许多应用允许其中计算设备连接到服务器的客户端/服务器实现方式以及计算设备自身上的可替换本地实现方式二者。关于本地实现方式,该方法进一步包括:第一软件应用凭借抵抗白盒子攻击的受保护软件代码生成DRM保护的内容。受保护软件代码可以凭借软件模糊处理(即,通过使用经变换的域)而受保护。受保护软件代码可以被配置成生成或选择要DRM保护的内容以及对该内容进行加密,从而生成DRM加密的内容。可以使用白盒子加密模块来对内容进行加密。可以在对内容进行加密时使用与DRM客户端相关联的数据(例如,公开密钥或DRM客户端ID)。在一个实施例中,受保护软件代码可以被配置成使用内容加密密钥(CEK)来对内容进行加密,并且受保护软件代码可以被配置成将经加密内容与CEK一起封装以生成DRM保护的内容。在每一种情况下,DRM客户端被配置成对DRM保护的内容进行解密。
关于客户端-服务器实现方式,该方法进一步包括:第一软件应用从服务器接收DRM保护的内容。该方法可以进一步包括:第一软件应用向服务器发送与DRM客户端相关联的数据(例如,公开密钥或DRM客户端ID)以在生成DRM保护的内容时使用。该方法可以进一步包括:(a)第一软件应用响应于在计算设备上呈现DRM保护的内容而接收用户输入;(b)第一软件应用向服务器发送所接收的用户输入;以及(c)第一软件应用从服务器接收验证消息,其中验证消息基于所接收的用户输入与关联于DRM保护的内容的预定响应之间的比较。该方法可以进一步包括:第一软件应用向服务器发送与计算设备的用户相关联的标识信息,以在生成DRM保护的内容时使用。验证消息可以进一步基于所述标识信息。
应用A:机器人规避
CAPTCHA是公知的技术,其被用于验证软件应用与人类终端应用交互且不与模拟终端用户的另一软件应用(即,机器人或自动程序(bot))交互。本文描述的方法可以用于以不同的方式实现与CAPTCHA技术相同的目的(即,验证终端用户的存在)。
在该机器人规避应用示例中,第一软件应用530是旨在验证终端用户是实际的人而不是机器人/自动化程序的软件应用。实质上,第一软件应用530使用媒体播放器625和DRM客户端615以生成从终端用户请求特定输入的输出。在已经从终端用户接收到输入的情况下,第一软件应用530仅在验证输入的有效性之后继续有意义地发挥功能。
在一个实施例中,提供了一种供第一软件应用访问计算设备上的DRM客户端(受保护软件应用)的方法。第一软件应用不被配置成与DRM客户端对接。计算设备包括被配置成与DRM客户端对接的媒体播放器应用(对接应用)。该方法包括:(a)第一软件应用向媒体播放器应用发送DRM保护的内容,从而使媒体播放器应用访问DRM客户端,以便使得能够在计算设备上呈现内容,其中DRM客户端被配置成防止和/或限制在计算设备上执行的其他软件应用访问内容。参照机器人规避,内容包括音频和/或视频挑战内容,该音频和/或视频挑战内容包括具有关联预定响应的挑战,并且计算设备进一步包括用于获得用户输入的输入设备。该方法进一步包括:(b)响应于在计算设备上呈现挑战内容而从输入设备获得/接收用户输入;以及(c)将所获得的用户输入与关联预定响应进行比较,以便验证第一软件应用是否与人类终端用户交互。步骤(b)可以由第一软件应用执行。步骤(c)可以在本地实现方式中由第一软件应用执行或者在客户端/服务器实现方式中由服务器执行。
关于本地实现方式,该方法进一步包括:第一软件应用凭借抵抗白盒子攻击的受保护软件代码来生成DRM保护的内容。受保护软件代码可以凭借软件模糊处理(即,通过使用经变换的域)而受保护。受保护软件代码可以被配置成生成或选择要DRM保护的内容以及对该内容进行加密,从而生成DRM加密的内容。可以使用白盒子加密模块来对内容进行加密。可以在对内容进行加密时使用与DRM客户端相关联的数据(例如,公开密钥或DRM客户端ID)。在一个实施例中,受保护软件代码可以被配置成使用内容加密密钥(CEK)来对内容进行加密,并且受保护软件代码可以被配置成将经加密内容与CEK一起封装以生成DRM保护的内容。在每一种情况下,DRM客户端被配置成对DRM保护的内容进行解密。受保护软件代码可以进一步被配置成执行比较步骤(c)。这种实现方式等同地适用于下面描述的应用B、C和D的至少一些本地实现方式。
关于客户端-服务器实现方式,该方法进一步包括:第一软件应用从服务器接收DRM保护的内容。该方法可以进一步包括:第一软件应用向服务器发送与DRM客户端相关联的数据(例如,公开密钥或DRM客户端ID)以在生成DRM保护的内容时使用。该方法可以进一步包括:第一软件应用向服务器发送所接收的用户输入以及第一软件应用从服务器接收验证消息,其中验证消息基于所接收的用户输入与关联于DRM保护的内容的预定响应之间的比较。该方法可以进一步包括:第一软件应用向服务器发送与计算设备的用户相关联的标识信息,以在生成DRM保护的内容时使用。验证消息可以进一步基于所述标识信息。
由于DRM客户端615被配置成防止和/或限制在计算设备500上执行的其他软件应用访问挑战内容,挑战内容仅是人类终端用户凭借计算设备500上的视频或图像显示和/或凭借来自计算设备500的扬声器的音频输出而可辨别的。因此,假定可以从任何数目的可能性选择挑战内容,则自动程序将选择随机响应,而人类终端用户可以输入已看到和/或听到所呈现的挑战内容的正确预定响应。因此,该方法适于验证计算设备上的第一软件应用与人类终端用户交互。
使用由DRM客户端615提供的安全/经保护视频路径,可以在显示器上和/或经由计算设备500的音频扬声器呈现安全地呈现的挑战。例如,呈现可以包括:基于所显示的验证屏幕来显示从用户请求数据录入的验证屏幕。验证屏幕可能包括在可变位置处具有OK按钮的简单消息。验证屏幕可能包括以字符串的形式存在的验证码以及供用户在继续进行之前录入验证码的请求。可替换地,验证屏幕可以向用户问封闭式问题,诸如“下面的圆圈是什么颜色的——红色、绿色还是蓝色”或者“在上面的图像中示出了多少只蝴蝶”。仅真实的人将能够查看所显示的验证屏幕以便正确地录入所请求的数据,从而确保第一软件应用530仅能够被真实的用户使用。在该情况下,不存在使用随机键区的需要,这是由于验证屏幕所请求的数据可能针对第一软件应用530的每一次使用而改变,因此,在该情况下,监视用户输入对攻击者来说将没有任何价值。可替换地,呈现可以包括:经由计算设备500的扬声器来安全地输出音频。例如,音频输出可能是“请凭借您的键区来录入以下验证码:3 7 5 9”。此外,安全地呈现的挑战可以包括音频和视频分量二者。例如,验证屏幕可能示出蝴蝶的图像,并且音频输出可能是“请录入图像中所示的蝴蝶的数目”。由于DRM内容可以包含图像、视频和/或音频片段,因此广泛的机制可用以将挑战传达给终端用户。类似地,存在可从终端用户请求的广泛的输入。用户输入的示例是:鼠标点击的序列、键盘数据的序列、触摸板姿势的序列、麦克风的记录(音频样本)、相机的记录(照片或视频)和/或生物测量扫描设备(例如,指纹检测器)的记录。如将理解的那样,存在无尽数目的可能性以使用来自计算设备500的安全音频和/或视频输出来确定挑战,从而使得几乎不可能使机器人能够录入正确数据(甚至假定机器人知道要求数据录入亦如此)。
图7A示意性地图示了该机器人防止实施例的示例性实现方式,其中计算设备500凭借网络710连接到服务器/服务提供商540。如前所述,计算设备500包括第一软件应用530、媒体播放器应用625和受保护DRM客户端615,它们全部一起起作用以使得能够在计算设备500上受保护地呈现和输出内容。图7A中未显式示出第一软件应用530、媒体播放器应用625和受保护DRM客户端615,但下面参照图中所示的元件来描述它们的功能。服务器540包括DRM服务器720,DRM服务器720用于使用DRM客户端615来创建用于在计算设备500上呈现的DRM保护的内容。特别地,DRM保护的内容一般包括使用由标记法{Content}CEK表示的内容加密密钥(CEK)加密的音频和/或视频内容。如本领域技术人员将很好地理解的那样,DRM保护的内容还包括DRM权利对象,DRM权利对象包括:
(i)可选地,DRM客户端ID(MID);
(ii)经加密内容密钥{CEK}MID_PK,其已经使用DRM客户端615的公开密钥(MID_PK)而加密;
(iii)与DRM保护的内容相关联的使用规则;以及
(iv)可选地,DRM系统认证码(DRM AC),其典型地是使用DRM系统密钥的DRM权利对象中的数据的密码散列。
DRM服务器720一般将公开密钥密码术用于CEK的加密,这是由于这使DRM服务器720能够生成随机CEK并使用公开密钥来对其进行加密以用在预期接收者的移动计算设备500的DRM客户端615中。
参照图7A,在执行期间的某个点处,第一软件应用530希望执行检查以确认其与真实终端用户而不是机器人交互。因此,第一软件应用530指示计算设备500以将与其DRM客户端615相关的信息(例如,DRM客户端ID)发送到服务器540。服务器540然后使用挑战生成器以便以视频和/或音频内容文件的形式生成或选择可变挑战内容,该视频和/或音频内容文件包括供用户响应于挑战内容提供指定输入的请求。在每当生成或选择挑战内容时挑战内容将变化的意义上,挑战内容是“可变的”。基于DRM客户端ID,DRM服务器720将挑战内容转换/加密成适于在计算设备500上呈现的DRM保护的挑战内容730,如上所述。服务器540将DRM保护的挑战内容730发送到计算设备500。第一软件应用530将DRM保护的挑战内容730发送到媒体播放器应用625,从而使媒体播放器应用625访问DRM客户端615,以便使得能够在计算设备500上受保护地呈现挑战内容730(参见,图7A的“内容呈现”和“内容输出”)。DRM客户端615保护所呈现的输出以抵御由在相同计算设备500上执行的其他软件应用访问。终端用户然后响应于所呈现的挑战内容而提供输入。用户输入可能是键盘序列、鼠标点击序列、某个音频输入等。第一软件应用530获得(即,采集和记录)该输入,并指示计算设备500以将用户输入(或输入序列)发送到服务器540。服务器540可以可选地使用响应映射模块以便使用与所生成的可变挑战内容有关的信息将用户输入映射到用户响应。可替换地,用户响应不必依赖于所生成的可变挑战内容,在该情况下,响应映射模块不是必需的。服务器540然后使用响应验证模块以将用户响应与关联于挑战内容的预定响应进行比较。作为验证过程的一部分,服务器540给第一软件应用530提供指示用户响应是否与预定响应相同的验证消息。第一软件应用530然后相应地基于所接收的验证消息而继续。例如,第一软件应用530可以被配置成使得应用的有意义执行仅在验证消息为肯定(即,所获得的输入匹配于预定响应)的情况下才继续。该操作模式在基于web的应用中是公共的,且可以被实现在支持针对DRM保护的内容回放的API的现代网页浏览器中。由于攻击者不具有对挑战内容的访问权(由于DRM保护的传输和呈现),因此攻击者/机器人不能从大量可能性提供正确输入数据,使得即使当计算设备500已经受到损害时也提供了安全的自动程序防止机制。
图7B中示意性地图示了上述服务器/设备方法,图7B是示出了由计算设备500实施的方法步骤和由服务器540实施的方法步骤的流程图。
在变形中,上述机器人防止方法可以被整体本地实现在计算设备500上而不需要服务器,如图7C中示意性地图示的那样。在该实施例中,计算设备500内部生成或选择可变挑战内容。特别地,第一软件应用530被配置成生成或选择DRM保护的挑战内容730。挑战内容自身类似于上面参照图7A描述的类型的视频和/或音频内容文件。为了保护以抵御其他软件应用从第一软件应用530的代码或从其在执行期间的数据结构获得挑战内容,第一软件应用530可以将软件模糊处理和白盒子加密技术用于以受保护方式生成挑战内容,如下所述。
在图7C中所示的实施例中,如下生成DRM保护的挑战内容。首先,第一软件应用530使用挑战内容生成模块744,以生成或选择可变挑战,且然后使用可以用于生成经变换内容的预先存储的经变换符号以及挑战数据来在经变换的域中生成挑战内容文件。经变换的域的使用对软件代码和关联数据结构进行模糊处理,使得原始(未经变换)代码和数据可能不容易被攻击者辨别。接着,第一软件应用530的白盒子加密模块746使用被配置成在经变换数据上操作的白盒子加密来对经变换挑战内容进行加密。白盒子加密模块746使用内容加密密钥(CEK)来对数据进行加密。相同CEK被包含在DRM权利对象中。然后将经加密数据传递到内容封装器或复用器748,以将经加密数据与关联于挑战内容的使用的DRM权利对象一起封装,从而输出DRM保护的挑战内容730。第一软件应用530将DRM保护的挑战内容730发送到媒体播放器应用625,从而使媒体播放器应用625访问DRM客户端615,以便使得能够在计算设备500上受保护地呈现挑战内容730(参见图7C的“内容呈现”和“内容输出”)。特别地,DRM客户端被配置成将DRM权利对象从DRM保护的挑战内容730解封装,并使用它以对DRM保护的挑战内容730进行解密以用于呈现。DRM客户端615还保护所呈现的输出以抵御由在相同计算设备500上执行的其他软件应用访问。如在图7A的服务器实施例中那样,然后存在后跟响应映射(可选)和响应验证的用户输入,但这些过程全部在图7C的实施例中本地发生。第一软件应用530的模块744、746、748中的每一个、以及预先存储的经变换符号以及响应映射和响应验证模块全部是使用软件模糊处理来保护以抵御攻击者的。
图7D中示意性地图示了上述本地设备方法,图7D是示出了在明文域中(即,在没有软件模糊处理的情况下)实施的方法步骤和在经变换的域中实施的方法步骤的流程图。如图7D中示意性地图示的那样,挑战内容的安全呈现可以在明文域和/或经变换的域中发生。例如,DRM客户端615可以通过软件模糊处理(其指示使用经变换的域)而受保护,或者可以通过使用受保护模块510(其不必要求软件模糊处理)而受保护。
在对图7C中所示的实施例来说可替换的本地实施例中,第一软件应用530可以使用多个预先封装的DRM保护的挑战内容文件之一和所预期的响应的经保护(例如,经变换)版本。应当注意,在PCT/EP2014/070669中详细讨论了DRM保护的挑战内容730的本地生成/选择,PCT/EP2014/070669的整个内容通过引用并入本文。
参照图12A-D在“应用D:安全代码生成”部分的结尾处描述用于生成DRM保护的挑战内容730的可替换本地方法;该可替换本地方法避免了使用白盒子加密模块746。在该情况下,要加密的“图像”是挑战内容。将依赖于挑战内容的种类来选择预先加密的数据块的库。
由于视频存储器的保护(即,由于使用由媒体播放器应用625和DRM客户端615构成的安全视频路径),攻击软件不可能获取所呈现的挑战。因此,这种攻击软件不可能(可靠地)生成适当响应以便使第一软件应用530相信其与正常人类终端用户交互。
用于验证计算设备上的第一软件应用与人类终端用户交互的本方法具有与当前CAPTCHA技术相比的多个优势。CAPTCHA技术通过使去往终端用户的挑战请求模糊来实现人类存在检测机制,使得软件程序非常难以读取文本。模糊技术需要抵抗广泛的攻击,诸如使用神经网络和人类反馈的图像识别。相比之下,上述新机器人规避方法不要求用户输入请求的任何模糊处理,因此,其可以利用容易读取和理解的请求图像和/或音频剪辑来实现人类存在检测。
由于DRM内容可以包含图像、视频和/或音频片段,因此广泛的机制可用以将输入请求传达给终端用户。类似地,存在可从终端用户请求的广泛的输入。用户输入的示例是:鼠标点击的序列、键盘数据的序列、触摸板姿势的序列、麦克风的记录(音频样本)、相机的记录(照片或视频)和/或生物测量扫描设备(例如,指纹检测器)的记录。对于简单终端用户存在检测,简单用户输入请求是优选的。为了防止重放攻击,期望用户输入(和输入请求)在用户之间以及在不同实例之间变化。
应用B:用户身份的验证
上述机器人规避技术使第一软件应用530能够确保其将服务提供给人类终端用户而不是自动化实例。一些软件程序(或web服务)想要将它们的服务仅提供给特定人类终端用户。为了识别特定终端用户,现有软件程序依赖于检测终端用户所具有的某物(例如,软件狗、智能卡、具体受保护数据储存器、指纹、具体语音模式等)或终端用户所知道的某物(例如,PIN码、口令、密码短语等)。上述媒体播放器实施例可以被用于验证用户身份,如下所述。在该情况下,第一软件应用530是可操作以验证终端用户的身份的软件应用。
现在将在PIN录入方面简要描述基于用户所知道的某物识别特定用户的一个示例。在该情况下,PIN是用户所知道的信息,并且第一软件应用530是要求由用户进行PIN录入的软件应用。实质上,第一软件应用530与媒体播放器625对接,以便使用DRM客户端615以凭借安全视频路径显示PIN录入图像内容。重要的是,由于PIN录入图像内容是经由上述安全/经保护视频路径来显示的,因此在设备500上执行的其他软件应用不能查看或访问PIN录入图像内容。PIN录入图像内容可以包括PIN录入请求。可替换地,PIN录入请求可以是在显示PIN了录入图像内容之前显示的,或者PIN录入请求可以是凭借计算设备500上的扬声器(例如,说出“请录入您的PIN”的语音)来可听地发布的。PIN录入图像内容包括字符集合(例如,以数字或字母数字键区的形式存在)以使用户能够录入他们的PIN。优选地,字符(例如,数字和/或字母)在PIN录入图像内容中的位置可以被随机指派(即,键区按钮针对不同实例具有独特位置),使得相同字符排序/布局不太可能被使用两次。这意味着字符排序对攻击者来说不是已知的,即使攻击者从针对PIN录入而使用第一软件应用530的不同(例如,合法)的实例知道字符排序亦如此。这使攻击者非常难以通过监视用户输入序列来确定所录入的PIN,这是由于输入序列随机地与所录入的PIN相关联。在一个实施例中,PIN录入图像内容可以请求录入多于一个数据字段(例如,登录ID和PIN)。在可替换实施例中,可以使用分离的图形以请求录入每一个数据字段。在一些实施例中,还可以显示共享秘密。第一软件应用530接收用户输入序列。仅具有PIN录入图像内容(例如,键区配置/布局)的知识的应用可以根据用户输入序列确定所录入的PIN。随后,所录入的PIN与关联于终端用户的预定PIN的比较确定第一软件程序530的持续操作。
接下来的是想要基于终端用户所知道的秘密的事物验证用户身份的第一软件应用530的一般描述。这支持“您知道的事物”模型,其中终端用户使用甚至在受损害的计算设备上也不将有意义的信息提供给攻击者的输入机制来录入获得录入所需的秘密知识。在该示例中,秘密知识是用户密码,其可以是PIN、短语、口令或者任何其他秘密用户标识知识。
图8A示意性地图示了该用户身份验证实施例的示例性实现方式,其中计算设备500凭借网络710连接到服务器/服务提供商540。如前所述,计算设备500包括第一软件应用530、媒体播放器应用625和受保护DRM客户端615,它们全部一起起作用以使得能够在计算设备500上受保护地呈现和输出内容。图8A中未显式示出第一软件应用530、媒体播放器应用625和受保护DRM客户端615,但下面参照图中所示的元件来描述它们的功能。服务器540包括DRM服务器720,DRM服务器720用于使用DRM客户端615来创建用于在计算设备500上呈现的DRM保护的内容。如下所述,计算设备500和服务器540交换信息以便验证终端用户的身份。
在执行期间的某个点处,第一软件应用530希望凭借仅对特定用户来说已知的密码验证用户的身份。因此,第一软件应用530指示计算设备500以将非敏感用户标识信息(即,用户ID,诸如绰号、用户名、电子邮件地址、客户ID等)发送到服务器540。第一软件应用530还指示计算设备500以将与其DRM客户端615相关的信息(例如,DRM客户端ID)发送到服务器540;这使服务器能够针对第一软件应用530正在其上运行的具体计算设备500而准备DRM保护的内容。服务器具有对包含所有可能用户ID和对应密码(其可能是PIN码或密码短语等)的数据库840的访问权。
在第一软件应用530请求时,服务器540使用密码录入内容生成器,以便以视频和/或音频内容文件的形式生成或选择可变密码录入内容,该视频和/或音频内容文件将被用于在获得用户密码时支持第一软件应用530。
可变密码录入内容可以是包括键区的密码录入图形,如上参照上述PIN录入示例所述。可变密码录入内容的其他示例是包括图像和/或图标的集合的密码录入图形或者任何下述其他虚拟输入图形:其可以采取不同布局,使得仅图形的发布者可以根据所采集的用户输入序列重构秘密用户知识(即,密码)。这些示例中的每一个依赖于用户输入序列的定位/位置以基于图形布局的知识来重构由用户输入的密码。可替换地,可变密码录入内容可以被构造成依赖于用户输入序列的定时以基于可变密码录入内容的知识来重构由用户输入的密码。例如,可变密码录入内容可以包括符号和/或字符的循环序列(即,视频)。由用户进行的鼠标点击、按键按压或屏幕触摸的定时然后可以被映射到在该时间处显示的具体符号/字符。在该示例中,去往第一软件应用530的每一个用户输入事件触发采集视频显示时间(例如,从视频播放器API)以及可能触发其他事件相关值。注意,在该示例中,按键按压、屏幕触摸或鼠标定位/位置的实际值与确定所选符号/字符不相关。密码录入内容可以组合(a)从符号/字符的时间序列(即,符号/字符的旋转木马)选择符号/字符的上述系统和(b)上述基于定位/位置的系统。特别地,用户输入序列的定时和/或位置可以被映射以指示由用户录入的密码。例如,密码录入内容可能是包括每图形多个不同字符/符号的键区(或其他密码录入图形)的旋转木马。可替换地,可以使用下述变形:其中,密码录入图形(例如,键区布局)在每一个单个用户输入事件之后改变。这可以是利用密码录入图形(例如,键区布局)的序列实现的,其中,每一个用户事件(例如,屏幕触摸)触发第一软件应用530以与媒体播放器625对接,以便使DRM客户端615凭借安全视频路径继续回放到下一密码录入图形。密码录入内容的另一变形涉及音频。例如,可以经由扬声器将字符/符号的旋转木马可听地呈现给用户(而不是经由如上所述的屏幕/显示器来可视地呈现它)。类似地,不是经由键盘、鼠标或触摸屏接收用户输入,用户输入序列可以是由计算设备的麦克风接收的可听输入序列。因此,如果计算设备上的DRM客户端615能够在不允许在计算设备上执行的其他软件应用访问麦克风输入的情况下安全地接收到麦克风输入,则用户可以说出密码。可替换地,使用旋转木马基于定时的输入序列,用户可以响应于由旋转木马呈现的符号/字符中的一些或每一个而提供所说出的输入(例如,“是”或“否”),以便有效地提供符号/字符的序列作为输入。
如上所提及,服务器540以视频和/或音频内容文件的形式生成或选择可变密码录入内容。基于DRM客户端ID(其先前由计算设备500提供),DRM服务器720将密码录入内容转换成适于在计算设备500上呈现的DRM保护的密码录入内容830。服务器540将DRM保护的密码录入内容830发送到计算设备500。第一软件应用530将DRM保护的密码录入内容830发送到媒体播放器应用625,从而使媒体播放器应用625访问DRM客户端615,以便使得能够在计算设备500上受保护地呈现密码录入内容830(参见图8A的“内容呈现”和“内容输出”)。DRM客户端615保护所呈现的输出以抵御由在相同计算设备500上执行的其他软件应用访问。终端用户然后响应于所呈现的密码录入内容而提供输入(即,输入序列)。用户输入可能是键盘序列、鼠标点击序列、屏幕触摸的序列、某个音频输入等,如上所述。第一软件应用530获得表示如用户所输入的密码的该用户输入序列。第一软件应用530获得该输入序列并指示计算设备500以将用户输入序列发送到服务器540。被发送到服务器540的用户输入序列可以包括用户输入的定时和/或位置。对于音频输入,用户输入的定时和/或所说出的词可以被发送到服务器540。服务器540使用密码映射模块以便使用与所生成的可变密码录入内容有关的信息将用户输入序列映射到输入密码。例如,在可变键区的情况下,按钮按动坐标的序列映射到所按压的按钮的序列。由于服务器540知道每一个符号/字符按钮在键区上的位置,因此其可以生成表示如用户所输入的密码的符号/字符的序列。服务器540然后使用用户验证模块以将如用户所输入的密码与针对该用户ID而存储在数据库840中的密码进行比较。因此,在该验证步骤中使用终端用户标识信息(即,用户ID)。作为验证过程的一部分,服务器540给第一软件应用530提供指示输入用户密码是否与所存储的用户密码相同的验证消息。第一软件应用530然后相应地基于所接收的验证消息而继续。换言之,验证消息确定第一软件应用530的持续执行。基于验证消息的结果的这种进一步功能步骤是公知的,且不形成本发明的一部分。
如上所述,图8A中的内容呈现模块和显示存储器(即,内容输出模块)二者均经保护(即,受保护),使得软件应用的仅非常小的集合可以访问经解码的数据或视频存储器。优选地,仅第一软件应用530能够访问经解码的数据或视频存储器。这由受保护模块510中的软件施行;具体地,这由DRM客户端615施行。密码录入内容的音频和/或视频内容因而对攻击软件来说不可访问、对恶意软件来说不可访问、或不可由受损害的内核(或操作系统)自身访问。如上所述,密码录入内容的音频和/或视频内容用于变换用户输入的序列以生成由用户输入的密码。因此要求密码录入内容的知识,以便将用户输入的序列映射到输入密码。密码录入内容在每一次实例化时不同,并且所呈现的内容对在计算设备的应用处理器模块上执行的其他软件应用来说不可访问。这两个因素甚至在受损害的计算设备上保护密码录入机制。
图8B中示意性地图示了上述服务器/设备方法,图8B是示出了由计算设备500实施的方法步骤和由服务器540实施的方法步骤的流程图。与图7B的机器人规避方法相比的主要区别是:映射步骤在图8B的用户身份验证实施例中不再是可选的,这是由于必要的是,在密码表示敏感数据时,由用户输入的密码对攻击者来说不可访问。相比之下,如果在这不是敏感数据时攻击者能够访问由用户输入的挑战响应,则无关紧要。
媒体播放器实施例的该应用特别地与具有触摸屏的移动计算设备(诸如智能电话和平板电脑等等)相关。
如果受保护模块510(例如,DRM客户端615)支持用于提供受保护输入(例如,凭借受保护麦克风提供受保护音频输入)的方式,则系统可以进一步受保护。理论上,受保护模块510可能保护输入设备的控制寄存器的存储器地址。然而,这可能难以在多任务环境中控制,这是由于这将阻止其他软件应用接收用户输入。当前,受保护输入设备的一个示例可能是指纹读取器或类似生物测量输入设备。
如图8C中示意性地图示,上述用户身份验证方法可以被整体本地实现在计算设备500上而不需要服务器。该本地实现方式更易受到攻击,因此其典型地用于例外情形,诸如对服务器540来说通信网络的暂时缺乏。在该实施例中,计算设备500内部生成或选择可变密码录入内容。特别地,第一软件应用530被配置成生成或选择DRM保护的密码录入内容830。
图8C示出了图8A的三个服务器模块,其现在在第一软件应用530的控制下被本地实现在计算设备500上。特别地,在图8C的本地实施例中,密码录入内容生成器模块、密码映射模块和用户验证模块被实现在计算设备500上。如在图7C中所示的本地机器人规避实施例中那样,攻击者可以具有对计算设备500中的第一软件应用530的代码和数据的访问权,因此这三个模块将数据传输和软件模糊处理技术用于安全性。在第一软件应用530的经变换数据中对具有用户ID和密码的数据库进行编码。图8A的服务器540上的DRM服务器720被白盒子加密模块746替代,白盒子加密模块746对包含可变密码录入内容的视频和/或音频内容的经编码内容进行加密。特别地,以与生成上面参照图7C描述的DRM保护的挑战内容730相对应的方式生成DRM保护的密码录入内容830。仅有的区别是:与图7C的挑战内容生成模块744形成对照,在图8C的实施例中使用密码录入内容生成器模块844。
如在图8A的服务器实施例中那样,然后存在后跟响应映射和响应验证的用户输入,但这些过程全部在图8C的实施例中本地发生。第一软件应用530的模块844、746、748中的每一个、以及预先存储的经变换符号以及响应映射和响应验证模块全部是使用软件模糊处理来保护以抵御攻击者的。
图8D中示意性地图示了上述本地设备方法,图8D是示出了在明文域中(即,在没有软件模糊处理的情况下)实施的方法步骤和在经变换的域中实施的方法步骤的流程图。
参照图12A-D在“应用D:安全代码生成”部分的结尾处描述用于生成DRM保护的密码录入内容830的可替换本地方法;该可替换本地方法避免了使用白盒子加密模块746。在该情况下,要加密的“图像”是密码录入内容。将依赖于密码录入内容的种类来选择预先加密的数据块的库。
在一个实施例中,提供了供第一软件应用访问计算设备上的DRM客户端(受保护软件应用)的方法。第一软件应用不被配置成与DRM客户端对接。计算设备包括被配置成与DRM客户端对接的媒体播放器应用(对接应用)。该方法包括:(a)第一软件应用向媒体播放器应用发送DRM保护的内容,从而使媒体播放器应用访问DRM客户端,以便使得能够在计算设备上呈现内容,其中DRM客户端被配置成防止和/或限制在计算设备上执行的其他软件应用访问内容。参照用于基于用户所知道的内容验证用户身份的上述方法,计算设备进一步包括用于获得用户输入的输入设备,并且内容包括音频和/或视频密码录入内容。该方法进一步包括:(b)请求与特定用户ID相关联的密码的用户输入;以及(c)响应于在计算设备上呈现密码录入内容而从输入设备获得用户输入。特别地,内容可以进一步包括表示针对与该特定用户ID相关联的密码的用户输入的请求的音频和/或视频内容,如步骤(b)中那样。因此,步骤(a)和(b)可以被同时执行(即,步骤(b)的用户输入请求可以隐式地形成步骤(a)中所呈现的内容的一部分)。下面总体上描述本地和客户端-服务器实施例。
用户身份的验证的本地实现方式可以具有与上述本地机器人规避实现方式共有的许多特征/步骤,因此这些特征/步骤将不在这里重复。然而,在本地身份验证实施例中,该方法进一步包括第一软件应用执行下述步骤:(d)将所获得的用户输入映射到输入密码,其中所述映射要求对密码录入内容的访问;以及(e)将输入密码与关联于该特定用户ID的密码进行比较,以便验证第一软件应用是否与具有该特定用户ID的用户交互。步骤(b)和(c)应当凭借受保护软件代码(像用于生成DRM保护的内容的受保护软件代码)而实现。攻击者不具有对密码录入内容的访问权。因此,监视输入设备上的用户输入的攻击者不能将用户输入映射到输入密码,因此不能获得对该敏感数据的访问权。因此,该方法适于验证计算设备上的第一软件应用与具有特定用户ID的用户交互。
用户身份的验证的客户端-服务器实现方式可以具有与上述客户端-服务器机器人规避实现方式共有的许多特征/步骤,因此这些特征/步骤将不在这里重复。然而,参照验证用户身份,验证消息基于所接收的用户输入与关联于该特定用户ID的密码之间的比较。因此,服务器基于密码录入内容将所接收的用户输入映射到输入密码,并且然后,服务器执行输入密码和关联于该特定用户ID的密码的比较,以便生成验证消息以用于发送到计算设备。
如上所述,音频和/或视频密码录入内容可以包括包含字符集合的图像,使得由用户进行的输入的位置与对应字符相关联。字符在图像中的位置被随机指派,使得监视由用户进行的输入的位置的软件应用不能在不访问图像的情况下确定对应字符输入。音频和/或视频密码录入内容可以附加地/可替换地包括在不同时间处显示字符集合的视频,使得由用户进行的输入的定时与对应字符相关联。字符在视频中的定时被随机指派,使得监视由用户进行的输入的位置的软件应用不能在不访问视频的情况下确定对应字符输入。
如上所述的用户身份的验证可以包括作为密码输入内容的一部分的键区的显示。在虚拟环境中录入密码代码的过程受制于广泛的攻击。一个这种攻击涉及攻击者观察按键按压、鼠标点击和屏幕坐标,以获得针对特定终端用户的密码。一种用于减轻这种攻击的方式是对键区的数字值进行随机化。换言之,整数0-9可以被随机指派给键区按钮。因此,不是使用排序1-2-3-4-5-6-7-8-9-0,有时取而代之使用可替换的随机排序(例如,2-6-4-5-9-8-0-1-3-7)。随机排序可以针对每一次实例化而改变,使得观察屏幕按压或鼠标点击的攻击者将不能在没有在每一种情况下使用的特定随机排序的知识的情况下确定所录入的密码。
上述键区随机化技术的劣势是:其阻挠了有助于记住密码的终端用户的肌肉记忆。因此,当利用随机化键区而呈递时,用户可能不能够记住他们的密码,这是由于输入模式的肌肉记忆不再是合适的帮助记忆的东西。因此,期望能够生成仍使得能够使用密码的肌肉记忆的安全键区。通过引用并入此处的申请号为1506048.6的英国专利申请提供了通过将几何变换操作应用于预定标准代码输入机构而生成的用户输入机构(例如,键区)。
根据申请号为1506048.6的英国专利申请的第一方面,提供了一种保护敏感信息的用户输入的方法。该方法包括:(a)生成用于在第一显示器上显示的多个符号的第一布局,以使得能够提供用户输入的第一序列,每一个用户输入对应于第一显示器上的符号中的相应一个符号;以及(b)在后续时间处,生成用于在第二显示器上显示的该多个符号的第二布局,以使得能够提供用户输入的第二序列,每一个用户输入对应于第二显示器上的符号中的相应一个符号。第一和第二布局不同于彼此,并且第一和第二布局均维持该多个符号的预定二维排序。
根据申请号为1506048.6的英国专利申请的第二方面,提供了一种保护敏感信息的用户输入的方法。该方法包括:生成用于在显示器上显示的多个符号的布局,以使得能够提供用户输入的序列,每一个用户输入对应于显示器上的符号中的相应一个符号。所生成的布局是该多个符号的预定标准布局的经修改版本。换言之,所生成的布局不同于该多个符号的预定标准布局。此外,所生成的布局维持该多个符号的预定标准布局的二维排序。
根据申请号为1506048.6的英国专利申请,可以与第一布局不同地扩缩第二布局。可以相对于第一布局平移第二布局。可以相对于第一布局旋转第二布局。该多个符号的预定二维排序可以包括该多个符号的行和列。与第一布局相比,第二布局可以包括行或列的一个或多个对之间的不同的间距。除该多个符号外,第一和第二布局中的至少一个可以包括一个或多个伪符号,使得与伪符号之一相对应的用户输入被视为空输入。该一个或多个伪符号可以被布置成以该多个符号的预定二维排序形成额外的行和/或列。
可以想到,可以生成申请号为1506048.6的英国专利申请中描述的各种键区布局,以形成上面结合用户身份的验证而描述的密码录入内容的一部分。
特别地,上面已经结合凭借终端用户所知道的某秘密信息验证终端用户身份描述了图8A和8C。然而,另一选项是供终端用户演示他们“具有某物”(例如,软件狗、智能卡、具体受保护数据储存器、指纹、具体语音模式等)。这种实现方式通过下述方式来进行操作:返回可变终端用户输入序列,该可变终端用户输入序列与包含在被递送到计算设备500的受保护内容文件中的可变请求的呈现相联系。在计算设备500上呈现的可变请求因而需要导致可变响应。基于终端用户所具有的某物的可能的可变用户输入的一些示例如下:
· 请求用户使用视频编辑工具上传具体视频的具体部分。因此,用户在该情况下所具有的事物是具体视频文件。
· 请求用户拍摄“自拍照”并通过使用由第一软件应用530提供的某个编辑设施剪裁图像来选择特定面部特征。因此,用户在该情况下所具有的事物是他们自己的脸。
· 请求用户进行特定词或短语的语音记录或者图像或视频中所示的项目的描述的语音记录。因此,用户在该情况下所具有的事物是他们自己的语音。
· 请求用户在指定背景的情况下拍摄提供商发布的项目的照片。因此,用户在该情况下所具有的事物是提供商发布的项目。
· 请求用户进行具体手指的指纹扫描(或者这种扫描的序列)。因此,用户在该情况下所具有的事物是他们自己的(一个或多个)指纹。
在该实施例中,服务器540具有确定基于请求的用户输入包括终端用户所具有的事物的所请求部分所必需的信息。因此,服务器540具有数据库840,数据库840具有将用户输入与所请求内容进行比较所必需的信息。数据库840可以包括文件的拷贝(例如,具体视频文件)、向终端用户发布的项目的图像、用户的语音的特性、指纹扫描或类似数据。将领会的是,对图8A和8C中所示的系统的小功能性改变将足以实现该“您所具有的某物”用户验证方案。
在一个实施例中,提供了一种供第一软件应用访问计算设备上的DRM客户端(受保护软件应用)的方法。第一软件应用不被配置成与DRM客户端对接。计算设备包括被配置成与DRM客户端对接的媒体播放器应用(对接应用)。该方法包括:(a)第一软件应用向媒体播放器应用发送DRM保护的内容,从而使媒体播放器应用访问DRM客户端,以便使得能够在计算设备上呈现内容,其中DRM客户端被配置成防止和/或限制在计算设备上执行的其他软件应用访问内容。参照用于基于用户所具有的内容验证用户身份的上述方法,内容包括:音频和/或视频请求内容,其包括针对与特定用户ID相关联的特定数据的请求。该方法进一步包括:(b)响应于在计算设备上呈现请求内容而从用户获得数据;以及(c)将来自用户的数据与关联于该特定用户ID的特定数据进行比较,以便验证第一软件应用是否与具有该特定用户ID的用户交互。
攻击者不具有对请求内容的访问权,且可能也不具有对特定数据的访问权,因此攻击者将不能够适当地满足数据请求。因此,该方法潜在地提供了双层安全性。如上所讨论,数据可以是图像文件、视频文件、音频文件、生物测量数据等等。重要的是,数据与仅特定终端用户对其具有不受限访问权的某物相关。因此,该方法适于验证计算设备上的第一软件应用与具有特定用户ID的用户交互。
最后,应当注意,图8A-8D分别与图7A-7D共享许多相似性,除了其中描述了具体区别。
应用C:安全交易
支付软件应用常常要求一些用户交互以定义通常以最终交互结束的交易,在该最终交互中,用户授权银行执行指定交易。这些最终授权步骤可能包括显示要授权的数额和/或使用户录入授权交易的PIN。在对抗支付应用的一个已知攻击中,攻击者具有在篡改显示以改变数额和/或数额可支付到的那方的细节的设备中运行的软件应用。这使用户授权与在屏幕上显示的交易不同的交易。本发明的第一方面能够提供抵御这种攻击的防御,如下所述。
在该应用示例中,第一软件应用530是这样的软件应用,其可操作以获得针对第一软件应用530代表地特定终端用户执行的特定交易的批准。第一软件应用530可以利用现有DRM客户端615(和对应媒体播放器应用625)以实现安全支付/交易。这种交易的示例是来自电子商店的购买、在计算机游戏内作出的购买、或者银行交易。下述实施例使软件程序能够从用户获得非常难以被攻击者伪造的批准(或确认)。
现在简要地描述介绍性交易批准示例。要批准/授权的支付数额将通常被显示给用户(例如,经由图1的屏幕120),作为还包括键区的静止图像的一部分。优选地,静止图像被随机地布局,且可以具有诸如图形中的精细图案种类的其他对策,使得尝试覆盖到屏幕上的攻击者将需要匹配布局(他们不具有对其的访问权)。例如,在优选实施例中,使用可变键区,使得字符(例如,数字和/或字母)在所显示的键区中的位置被随机指派,使得字符排序对攻击者来说不是已知的。因此,相同字符排序不太可能被使用两次。这使攻击者非常难以通过监视输入序列来确定用户的PIN,这是由于输入序列随机地与用户的PIN相关联。静止图像可以进一步包括共享秘密(即,仅对支付应用的用户和提供商来说已知的秘密数据),诸如特定标志和/或照片和/或具体文本。共享秘密对攻击者来说不可用(由于其被DRM客户端615安全地呈现),这使攻击者非常难以在不向用户报警的情况下篡改显示。特别地,如果共享秘密未被正确显示(或者根本未被显示),则将向用户报警显示已经被篡改。因此,共享秘密的正确显示可以用于向用户验证显示尚未被篡改。
为了使得能够在该安全支付实施例中确认交易,基于静止图像来生成I帧(或视频序列)。然后使I帧对DRM封装器来说可访问,以便生成I帧的DRM保护的版本以及用于使用户的设备500能够对视频进行解锁(按照标准DRM过程)的权利对象。然后通过经保护的视频路径来在用户的设备500上播放I帧,如任何正常件的高价值内容将是的那样。换言之,第一软件应用530将DRM保护的I帧发送到媒体播放器625,媒体播放器625访问DRM客户端615以便使得能够在客户端设备500上安全地呈现视频。具有对设备的主CPU的完全访问权(即,受保护模块外的完全访问权)的攻击者不能看到所呈现的视频,这是因为DRM和视频回放与主CPU隔离。
交易的确认通过用户在键区上按压“OK”按钮或录入PIN而继续。支付应用530捕获屏幕触摸(或者对于非触摸屏实施例,鼠标点击)的位置,并验证(例如通过参照相关服务器540)触摸匹配于屏幕上的适当位置。攻击者可以看到触摸的位置但不知道它们对应于哪些数字。因此,整个交易实际上对具有计算设备500上的非受保护应用处理器(即,主CPU)的完全控制的任何局内人来说不可见。
媒体播放器实施例的该应用特别地与具有触摸屏的移动计算设备(诸如智能电话和平板电脑等等)相关。
图9A示意性地图示了该安全交易实施例的示例性实现方式,其中计算设备500凭借网络710连接到服务器/服务提供商540。如前所述,计算设备500包括第一软件应用530、媒体播放器应用625和受保护DRM客户端615,它们全部一起起作用以使得能够在计算设备500上受保护地呈现和输出内容。图9A中未显式示出第一软件应用530、媒体播放器应用625和受保护DRM客户端615,但下面参照图中所示的元件来描述它们的功能。服务器540包括DRM服务器720,DRM服务器720用于使用DRM客户端615来创建用于在计算设备500上呈现的DRM保护的内容。交易细节由外部销售点(POS)终端950提供,尽管其他外部源可以可替换地生成交易细节(例如,触发游戏中购买的在线游戏软件应用)。如下所述,计算设备500与POS终端950和服务器540交换信息以便使终端用户能够安全地批准交易。
在执行期间的某个点处,第一软件应用530希望具有与由特定用户批准的POS终端950的交易。第一软件应用530从POS终端950接收相关交易信息(例如,交易数额、收款人等)。在收到来自第一软件应用530的指令时将该交易信息发送到服务器540。附加地,第一软件应用530指示计算设备500以将非敏感用户标识信息/用户细节(即,用户ID,诸如绰号、用户名、电子邮件地址、客户ID、用户账号等)发送到服务器540。第一软件应用530还指示计算设备500以将与其DRM客户端615相关的信息(例如,DRM客户端ID)发送到服务器540;这使服务器能够针对第一软件应用530正在其上运行的具体计算设备500而准备DRM保护的内容。服务器具有对包含所有可能用户ID和对应秘密密码(其可能是PIN码或密码短语等)的数据库840的访问权。
在第一软件应用530请求时,服务器540使用交易批准生成器,以便以视频和/或音频内容文件的形式生成或选择可变交易批准内容,该视频和/或音频内容文件将被用于在获得针对交易的用户批准时支持第一软件应用530。交易批准内容的视频和/或音频内容包括可变密码录入内容,诸如用于密码录入的可变键区图像(上面参照图8A来描述可变密码录入内容的其他示例)。交易批准内容的视频和/或音频内容还包括交易信息(其先前被计算设备500提供给服务器540)中的至少一些,并可以包括与商业应用相关的其他内容。
接着,基于DRM客户端ID(其先前被计算设备500提供给服务器540),DRM服务器720将交易批准内容转换成适于在计算设备500上呈现的DRM保护的交易批准内容930。服务器540将DRM保护的交易批准内容930发送到计算设备500。第一软件应用530将DRM保护的交易批准内容930发送到媒体播放器应用625,从而使媒体播放器应用625访问DRM客户端615,以便使得能够在计算设备500上受保护地呈现交易批准内容(参见图8A的“内容呈现”和“内容输出”)。DRM客户端615保护所呈现的输出以抵御由在相同计算设备500上执行的其他软件应用访问。终端用户查看和/或侦听提供交易细节中的至少一些且请求录入密码的所呈现的交易批准内容。如果用户希望继续进行交易,则他们响应于所呈现的密码录入内容而提供输入(即,输入序列)。用户输入可能是键盘序列、鼠标点击序列、屏幕触摸的序列、某个音频输入等,如上所述。第一软件应用530获得表示如用户所输入的密码的该用户输入序列。第一软件应用530获得该输入序列并指示计算设备500以将用户输入序列发送到服务器540。被发送到服务器540的用户输入序列可以包括用户输入的定时和/或位置。对于音频输入,用户输入的定时和/或所说出的词可以被发送到服务器540。
在已经接收到用户输入序列的情况下,服务器540使用密码映射模块以便使用与所生成的可变密码录入内容有关的信息将用户输入序列映射到输入密码,如上参照图8A所述。服务器540然后使用用户和交易验证模块以将如用户所输入的密码与针对该用户ID而存储在数据库840中的密码进行比较。因此,在该验证步骤中使用终端用户标识信息(即,用户ID)。作为验证过程的一部分,服务器540给第一软件应用530提供指示输入用户密码是否与所存储的用户密码相同的验证消息。第一软件应用530然后相应地基于所接收的验证消息而继续。换言之,验证消息确定第一软件应用530的持续执行。例如,第一软件应用530很可能基于验证消息将交易响应消息返回到POS终端950。
图9B中示意性地图示了上述服务器/设备方法,图9B是示出了由计算设备500实施的方法步骤和由服务器540实施的方法步骤的流程图。
图9A示出了使计算设备500能够安全地批准购买交易的服务器540。在如交易批准内容中显示的那样用户已经批准交易之后,服务器540中的可选交易适配模块可以将经批准交易转换成适于在传统交易基础设施中处理的格式。换言之,可以对来自经批准交易的交易信息进行重新格式化和/或加强,以与特定交易基础设施(例如,关联于图9A中所示的银行960的交易基础设施)兼容。这可以涉及添加用户专用信息(诸如银行细节)以及使用与终端用户相关联的密码密钥以执行进一步操作所需的一些密码操作。附加用户专用信息和相关密码密钥被包含在服务器540上的数据库840中。因此,在图9A的实施例中,计算设备500不必具有对批准支付所需的任何敏感用户信息和/或密钥的访问权。这提供了附加安全性。交易适配功能性常被称为“虚拟安全元件”。计算设备500中的第一软件应用530与服务器540上的虚拟安全元件的组合等同于由交易(无线)银行智能卡和信用卡提供的功能性。本文描述的安全交易方法利用甚至在受损害的客户端计算设备上安全地批准支付交易的能力扩展虚拟安全元件概念。
如果计算设备500与服务器540之间的通信网络710不是操作的,则上面参照图9A描述的实施例不能够提供任何交易的批准。图9C示意性地图示了本地实施例,其中,即使当服务器540暂时离线时,第一软件应用530也能够批准交易。在该实施例中,计算设备500内部生成或选择交易批准内容。特别地,第一软件应用530被配置成生成或选择DRM保护的交易批准内容930。
如前所述,第一软件应用530在计算设备500上执行(例如,在应用处理器模块220中)。第一软件应用将交易信息(中的至少一些)与可变密码录入内容一起编码成交易批准内容文件。第一软件应用530然后使用先前描述的步骤(参见图7B和8C)以生成DRM保护的交易批准内容930。如前所述。第一软件应用530将DRM保护的交易批准内容发送到媒体播放器应用625,从而使媒体播放器应用625访问DRM客户端615,以便使得能够在计算设备500上呈现交易批准内容。由此,使用经保护内容呈现通路来在计算设备500上呈现交易批准内容。DRM客户端615被配置成防止和/或限制在计算设备500上执行的其他软件应用访问交易批准内容。如前所述,终端用户查看和/或侦听所呈现的交易批准内容,所呈现的交易批准内容提供交易细节中的至少一些并请求录入密码。
接着,第一软件应用530获得(即,采集和记录)用户输入(其可以是用户输入的序列),并使用内容和输入封装器952将其与DRM保护的交易批准内容930一起封装。由于服务器540是离线的,因此经封装的数据作为交易响应消息而被返回到POS终端950。POS终端950然后可以转发交易响应消息以用于在支付基础设施中进一步处理。特别地,当服务器540回到在线时,POS终端950及其支付基础设施可以将交易响应消息转发到服务器540。交易响应消息然后可以由服务器540分析,并被转换成与POS终端950的支付基础设施兼容的验证消息。这可能要求支付基础设施中的数据处理协议的一些适配。图9C的实施例的主要优点是:攻击者难以观察到或修改密码录入内容,并且仅要求从计算设备500中的第一软件应用530到POS终端950的单个通信。
图9D中示意性地图示了上述本地设备方法,图9D是示出了在明文域中(即,在没有软件模糊处理的情况下)实施的方法步骤和在经变换的域中实施的方法步骤的流程图。
应当注意,图9A-9D分别与图7A-7D(和8A-8D)共享许多相似性,除了其中描述了具体区别。
如果支付基础设施或POS终端950的协议不支持对交易响应消息的包括以及交易响应消息向服务器540的转发(如在图9C的实现方式中那样),则不同的实现方式是必要的。图9E中示意性地图示了这种经修改实现方式,图9E示出了可操作以批准支付交易并返回与现有POS终端950及其支付基础设施兼容的交易响应消息(例如,支付批准)的第一软件应用530的架构。图9E包含上面已经描述的若干元件。
在POS终端950请求针对交易的批准(针对服务、货物等等的支付)之后,第一软件应用530生成DRM保护的交易批准内容930,如上参照图9C所述。在经变换的域中(例如,使用软件模糊处理),将用户输入的序列映射到代码录入符号的序列。特别地,第一软件应用530访问密码录入内容(在经变换的域中)并使用该密码录入内容以将用户输入映射到输入密码。仍在经变换的域中,然后将输入密码与第一软件应用的经变换数据进行组合以导出密钥。第一软件应用530的交易适配模块然后使用该密钥以将交易信息变换成可由POS终端950及其支付基础设施处理的交易响应消息(例如,支付授权或支付拒绝)。
第一软件应用530在图9E的实现方式中比在图9A或9C的实现方式中更易受到攻击。例如,攻击者可能能够在终端用户已经批准不同的交易之后将经修改交易信息插入到交易适配模块中。软件模糊处理措施可以被用于使该攻击更困难。可以想到,在可能的情况下将使用图9A的实现方式,其中图9C提供回退实现方式,并且然后图9E表示最后手段实现方式。因此,抵御攻击的进一步防御性措施依赖于下述事实:图9E中所示的操作模式将被相对不经常地使用。还将可能的是,在支付请求和密码密钥中包括用于针对图9E中所示的操作模式限制最大交易值的元素。然后,对于更高值交易,将需要使用图9A(或者可能图9C)的更安全在线实现方式。利用这种附加措施,图9E的实现方式可以在有限网络连接性的情况下提供功能性的有用降级。
图9F中示意性地图示了上述本地设备方法,图9F是示出了在明文域中(即,在没有软件模糊处理的情况下)实施的方法步骤和在经变换的域中实施的方法步骤的流程图。
参照图12A-D在“应用D:安全代码生成”部分的结尾处描述用于生成DRM保护的交易批准内容830的可替换本地方法;该可替换本地方法避免了使用白盒子加密模块746。在该情况下,要加密的“图像”是交易批准内容。将依赖于交易批准内容的种类来选择预先加密的数据块的库。
重要的是,尽管上面的交易示例描述了经历与POS终端950的交易的计算设备500,但是将理解的是,存在多种其他交易批准环境,其中本方法将是等同适用的。具体地,POS终端是计算设备500希望与之交易的第三方的一个示例。取而代之,其他第三方设备/服务器可以提供相关交易信息等。附加地,可以涉及其他中介(例如,触发游戏中购买的在线游戏软件应用将涉及第三方游戏服务器而不是POS终端950)。在另一示例中,在线银行交易仅要求计算设备500与服务器540之间的交互(即,将不存在外部第三方,诸如POS终端950)。在该情况下,交易信息将已经被服务器540知道,因此将不需要设备500将交易信息发送到服务器作为图9B中所示的流程的一部分。因此,将理解的是,上面参照图9A-9F的描述是示例性的而非进行限制,并且本领域技术人员将领会到该方法对在计算设备500与另一方之间生成要求被用户批准的交易的更一般适用性。
在一个实施例中,提供了供第一软件应用访问计算设备上的DRM客户端(受保护软件应用)的方法。第一软件应用不被配置成与DRM客户端对接。计算设备包括被配置成与DRM客户端对接的媒体播放器应用(对接应用)。该方法包括:(a)第一软件应用向媒体播放器应用发送DRM保护的内容,从而使媒体播放器应用访问DRM客户端,以便使得能够在计算设备上呈现内容,其中DRM客户端被配置成防止和/或限制在计算设备上执行的其他软件应用访问内容。参照上述安全交易实施例,计算设备进一步包括用于获得用户输入的输入设备。内容包括音频和/或视频批准代码录入内容和交易内容,其中交易内容包括与要由具有特定用户ID的用户批准的交易相关的交易信息。该方法进一步包括:(b)请求与特定用户ID相关联的批准代码的用户输入;以及(c)响应于在计算设备上呈现内容而从输入设备获得用户输入。特别地,内容可以进一步包括表示针对与该特定用户ID相关联的批准代码的用户输入的请求的音频和/或视频内容,如步骤(b)中那样。因此,步骤(a)和(b)可以被同时执行(即,步骤(b)的用户输入请求可以隐式地形成步骤(a)中所呈现的内容的一部分)。该方法可以进一步包括:第一软件应用最初接收包括交易信息的交易请求。批准代码可以是与该特定用户ID相关联的密码。在该情况下,批准代码录入内容包括密码录入内容,诸如键区。可替换地,批准代码可以包括另一种形式的批准输入,诸如指纹或照片或软件狗等。
在优选实施例中,计算设备具有对服务器的访问权(如图9B中那样)以验证输入批准代码。该方法可以进一步包括:第一软件应用试图连接到服务器;以及响应于到服务器的成功连接而继续该段落中描述的一些/所有步骤。在该实施例中,该方法进一步包括:第一软件应用从服务器接收DRM保护的内容。该方法可以进一步包括:第一软件应用将与DRM客户端相关联的数据(例如,公开密钥或DRM客户端ID)发送到服务器,以在生成DRM保护的内容时使用。该方法可以进一步包括:第一软件应用向服务器发送与计算设备的用户相关联的标识信息(例如,用户ID)。标识信息可以是在生成DRM保护的内容时使用的。该方法可以进一步包括:第一软件应用将交易信息中的至少一些发送到服务器,以在生成交易内容时使用。该方法可以进一步包括:第一软件应用向服务器发送所接收的用户输入;以及第一软件应用随后从服务器接收验证消息,其中验证消息基于所接收的用户输入与关联于该特定用户ID的批准代码之间的比较。因此,使用批准代码录入内容,服务器将所接收的用户输入映射到输入批准代码。然后,使用标识信息,服务器执行输入批准代码和关联于该特定用户ID的批准代码的比较,以便生成验证消息以用于发送到计算设备。
现在考虑可替换实施例,借此,计算设备不具有对服务器的访问权。因此,响应于到服务器的失败连接,该方法可以进一步包括该段落中描述的一些/所有步骤。安全交易的本地实现方式可以具有与上面在部分4A和4B中描述的本地实现方式共有的许多特征/步骤,因此这里不会重复这些特征/步骤。然而,在第一本地安全交易实施例中,该方法进一步包括:第一软件应用(d1)将所获得的用户输入与DRM保护的内容一起封装以形成经封装的数据,并(e1)作为对初始交易请求的响应而提供经封装的数据。因此,在该实施例中,接收到经封装的数据的设备随后将向服务器发送经封装的数据(例如,一旦服务器回到在线),使得服务器可以使用批准代码录入内容将所获得的用户输入映射到输入批准代码(如在客户端-服务器实施例中那样),但稍后一旦POS终端能够连接到服务器,就将执行该映射。在第二本地安全交易实施例中,该方法可以进一步包括:第一软件应用取而代之执行下述步骤:(d2)将所获得的用户输入映射到输入批准代码,其中所述映射要求对批准代码录入内容的访问;以及(e2)将输入批准代码与关联于该特定用户ID的批准代码进行比较,以便验证特定用户已经批准所述交易。因此,在该第二本地实施例中,映射步骤在计算设备500上本地由第一软件应用530执行。步骤(d2)和(e2)应当凭借受保护软件代码(像用于生成DRM保护的内容的受保护软件代码)而实现。在该第二本地实施例中,验证步骤(e2)可以包括下述步骤:基于输入批准代码来导出密钥;以及使用该密钥以将交易信息变换成交易响应消息,其中如果输入批准代码匹配于与该特定用户ID相关联的批准代码,则交易响应消息是交易批准消息,并且其中如果输入批准代码不匹配于与该特定用户ID相关联的批准代码,则交易响应消息是交易拒绝消息。
在客户端-服务器实施例和本地实施例二者中,攻击者均不具有对批准代码录入内容的访问权。因此,监视输入设备上的用户输入的攻击者不能将用户输入映射到输入批准代码,因此不能获得对该敏感数据的访问权。
应用D:安全代码生成
条形码是对特定数据进行表示/编码的光学机器可读代码。一维(1D)条形码通过使平行线的宽度和间距发生变化来对称地表示数据。在更近时期,条形码已经演进成在两个维度(2D)中使用矩形、点、六边形和其他几何图案。矩阵码(也称为2D条形码或简称为2D码)是用于表示信息的二维方式。其类似于线性(1维)条形码,但可以表示每单位面积的更多数据。QR码是矩阵码的示例。
存在现有交易授权系统,其依赖于POS处的商家来光学扫描来自终端用户的移动计算设备的屏幕的条形码(例如,QR码)。在这种现有系统中,本地条形码生成软件应用从终端用户获得秘密代码,将其与在初始化期间建立和/或与移动应用的环境相关联的其他参数(GPS、WiFi网络数据等)进行组合,并使用该信息来生成条形码以用于在移动计算设备上显示。商家扫描显示所生成的批准代码的移动计算设备的屏幕,将其附着到交易信息,并将这一点转发到支付基础设施。设备的用户仅在敲定购买时允许扫描过程。
然而,关于上述现有系统的问题是:条形码生成软件应用易受攻击,例如从受损害或受恶意攻击(rooted)的移动计算设备启动的攻击。受损害移动计算设备包含恶意软件(参见例如http://en.wikipedia.org/wiki/Malware),受恶意攻击移动计算设备包含恶意套件(rootkit)(参见例如http://en.wikipedia.org/wiki/Rootkit)。本发明的实施例可以用于通过生成和显示包括条形码的DRM保护的内容来解决该问题。在该情况下,第一软件应用530是可操作以安全地生成条形码(或其他机器可解释代码)的软件应用。
图10A示意性地图示了该安全条形码生成实施例的示例性实现方式,其中在计算设备500上本地生成条形码。如前所述,计算设备500包括第一软件应用530、媒体播放器应用625和受保护DRM客户端615,它们全部一起起作用以使得能够在计算设备500上受保护地呈现和输出内容。图10A中未显式示出第一软件应用530、媒体播放器应用625和受保护DRM客户端615,但下面参照图中所示的元件来描述它们的功能。图10A示出了计算设备上的第一软件应用530可以如何用于生成条形码以用于授权POS终端950处的终端用户的交易或识别该终端用户。
在执行期间的某个点处,第一软件应用530希望提供表示供POS终端使用的数据的条形码。可以期望的是,条形码仅仅表示如存储在移动计算设备500上的用户或设备数据。例如,可以期望的是,条形码表示用户或设备标识信息(诸如电话号码)、或者用户的银行或信用卡细节、或者与POS终端950相关的用户的客户号码。在这样的情况下,不要求用户输入,并且计算设备500可以在没有来自用户的交互的情况下基于该数据来生成安全条形码。因此,在经变换的域中(例如,使用软件模糊处理技术),第一软件应用530采取经变换数据并使用条形码生成器模块1044以生成经变换条形码(条形码T)。例如,第一软件应用可能采取经变换银行账户细节,且然后应用经变换条形码生成算法。可选地,可能在生成经变换条形码期间使用经变换的压缩算法。第一软件应用530然后使用白盒子加密模块746来对经变换条形码进行加密。然后(使用复用器748)将经加密且经变换的条形码与对应DRM权利对象进行组合,以产生DRM保护的条形码内容1050。在该部分的结尾处描述用于生成DRM保护的条形码内容1050的可替换本地方法;该可替换本地方法避免了使用白盒子加密模块746。
第一软件应用530将DRM保护的条形码内容1030发送到媒体播放器应用625,从而使媒体播放器应用625访问DRM客户端615,以便使得能够在计算设备500上受保护地呈现条形码内容1030(参见图10A的“内容呈现”和“内容输出”)。DRM客户端615保护所呈现的输出以抵御由在相同计算设备500上执行的其他软件应用访问。安全地呈现的条形码然后可以由POS终端950处的光学读取器扫描,例如用于批准交易。如上所述的用于安全代码生成的第一软件应用530防止攻击者读取屏幕或在另一设备上显示所生成的DRM保护的条形码内容。因此,攻击者将被强制对第一软件应用530的受保护代码生成进行反向工程。
在变形中,用户输入可以附加地被要求以生成条形码。例如,在生成和安全地呈现条形码之前,可以修改第一软件应用530以请求和认证来自终端用户的密码(例如,PIN)。这在图10A中由从用户输入模块到条形码生成模块1044的箭头图示。在该情况下,条形码不仅示出具体移动计算设备500存在于POS终端950处,而且示出在生成条形码期间有特定终端用户存在。密码录入在上面的“用户身份的验证”部分中被详细描述,因此不会在这里重复。
图10B中示意性地图示了上述本地设备方法,图10B是示出了在明文域中(即,在没有软件模糊处理的情况下)实施的方法步骤和在经变换的域中实施的方法步骤的流程图。
现在描述要求用户输入的可替换示例。在该情况下,条形码不仅示出具体移动计算设备500存在于POS终端950处,而且示出在生成条形码期间有人类的人存在(而不是机器)。因此,该实施例具有与前述机器人规避实施例的一些相似性。
在该实施例中,第一软件应用530可以被修改成使得其最初生成并安全地显示以下述这种方式(至少)部分地模糊的条形码:其不能被POS终端950处的条形码扫描器读取/识别/解释。模糊的条形码的生成和显示是完全如上参照图10A所述的那样完成的,除了在该情况下模糊步骤在白盒子加密之前发生。
图10C中示出了部分模糊的条形码1000的示例。在该示例中,条形码是QR码,但可以等同地使用其他类型的条形码。QR码1000部分地被图像中的随机位置处的“OK”按钮1010模糊。在该示例中,在模糊的QR码1000的旁边的所显示的图像中安全地呈现模糊的QR码1000的丢失部分1020,但丢失部分1020的显示不是必不可少的。响应于安全呈现(且部分模糊)的QR码1000,用户按压计算设备500的屏幕上的“OK”按钮1010。第一软件应用530然后接收用户输入,即,屏幕按压的坐标。假定屏幕按压的坐标匹配于“OK”按钮1010的坐标,则第一软件应用530继续生成并安全地呈现经校正(即,最终)QR码1030(没有模糊),如图10D中所示。具体地,第一软件应用重新使用条形码生成模块1044、白盒子加密模块746和复用器748以生成经校正条形码1030。由于“OK”按钮1010的坐标可以变化,因此攻击者(其不具有对安全呈现的内容的访问权)不可能知道校正过程的正确输入(即,正确坐标)。在一个示例中,用户输入的坐标可以用于将丢失部分1020正确地定位在“OK”按钮1010顶上。
图10E中示意性地图示了上述本地设备方法,图10E是示出了在明文域中(即,在没有软件模糊处理的情况下)实施的方法步骤和在经变换的域中实施的方法步骤的流程图。在图10E中,部分模糊的条形码被称为“初始内容”。
尽管在上面的示例中“OK”按钮1010被用于模糊目的,但将理解的是,可以可替换地使用其他模糊技术。示例性模糊技术包括降低的对比度、颜色映射、模糊化、以及用于防止条形码能够被POS终端扫描的类似技术。还可以将模糊过程与如上关于机器人规避实施例所述的人类存在检测技术进行组合。
而且,应当注意,可以将密码录入与使条形码模糊进行组合,使得校正过程涉及用户输入表示密码(而不是用户输入表示上面的示例中的“OK”按钮的位置)。
将理解的是,在使用前述应用部分A、B和C中描述的机制中的任一个获得用户输入之后,安全条形码生成(如上所述)可以顺序地发生。这些变形顺序过程提供了类似的功能性和可比较的保护水平,并且甚至在严重受损害(移动)计算设备500中,它们也全部是安全的。
上面已经参照条形码描述了本发明的该安全代码生成实施例。然而,将理解的是,在可替换实施例中,可以使用可机器解释的任何DRM保护的输出(视频、图像、音频)。
因此,在该实施例中,提供了一种供第一软件应用访问计算设备上的DRM客户端(受保护软件应用)的方法。第一软件应用不被配置成与DRM客户端对接。计算设备包括被配置成与DRM客户端对接的媒体播放器应用(对接应用)。该方法包括:(a)第一软件应用向媒体播放器应用发送DRM保护的内容,从而使媒体播放器应用访问DRM客户端,以便使得能够在计算设备上呈现内容,其中DRM客户端被配置成防止和/或限制在计算设备上执行的其他软件应用访问内容。参照上述安全代码生成实施例,内容包括以机器可解释代码的形式存在的音频和/或视频内容。该方法进一步包括:(b)将计算设备呈递给与计算设备分离的机器,使得机器可以解释在计算设备上呈现的代码。
攻击者不具有对所呈现的代码的访问权。因此,攻击者不能获得对该敏感数据的访问权。例如,该方法使计算设备上的第一软件应用能够被用于使用代码来批准/授权交易。
可选地,计算设备进一步包括用于获得用户输入的输入设备,并且在步骤(a)和(b)之前,该方法进一步包括:(c)第一软件应用向媒体播放器应用发送DRM保护的初始内容,从而使媒体播放器应用访问DRM客户端,以便使得能够在计算设备上呈现初始内容,其中DRM客户端被配置成防止和/或限制在计算设备上执行的其他软件应用访问初始内容;(d)响应于在计算设备上呈现初始内容而从输入设备获得用户输入;以及(e)响应于用户输入是与所呈现的初始内容相关联的有效用户输入,继续执行步骤(a)和(b)。
初始内容可以包括在步骤(a)中安全地呈现的机器可解释代码的部分模糊版本。在该情况下,用户输入可以与模糊的位置相关。可替换地,初始内容可以包括音频和/或视频密码录入内容,如前所述。可替换地,初始内容可以包括音频和/或视频请求内容,如前所述。
在优选实施例中,机器可解释代码是条形码,诸如QR码。
DRM保护的内容可以在设备500上本地生成,或者可以由服务器生成。
在客户端-服务器实现方式中,该方法进一步包括:第一软件应用从服务器接收DRM保护的内容(以及在适用的情况下,初始的DRM保护的内容)。该方法可以进一步包括:第一软件应用将与DRM客户端相关联的数据(例如,公开密钥或DRM客户端ID)发送到服务器,以在生成DRM保护的内容(以及在适用的情况下,初始的DRM保护的内容)时使用。该方法可以进一步包括:第一软件应用向服务器发送所接收的用户输入,使得服务器可以验证所接收的用户输入是否对于初始内容而言有效。在该情况下,服务器需要仅当所接收的用户输入是有效的时才将后续的DRM保护的内容发送到设备(以用于在步骤(a)中呈现)。
关于本地实现方式,该方法进一步包括:第一软件应用凭借抵抗白盒子攻击的受保护软件代码生成DRM保护的内容(以及在适用的情况下,初始的DRM保护的内容)。受保护软件代码可以凭借软件模糊处理(即,通过使用经变换的域)而受保护。受保护软件代码可以被配置成生成或选择要DRM保护的内容以及对该内容进行加密,从而生成DRM加密的内容。可以使用白盒子加密模块来对内容进行加密。可以在对内容进行加密时使用与DRM客户端相关联的数据(例如,公开密钥或DRM客户端ID)。在一个实施例中,受保护软件代码可以被配置成使用内容加密密钥(CEK)来对内容进行加密,并且受保护软件代码可以被配置成将经加密内容与CEK一起封装以生成DRM保护的内容。在每一种情况下,DRM客户端被配置成对DRM保护的内容进行解密。
上面参照图10A和10B描述了一种用于生成DRM保护的代码内容1050的本地方法。我们现在描述用于生成图像的DRM保护的版本(例如,DRM保护的条形码内容1050)的可替换方法。该可替换本地方法通过取而代之使用预先加密的数据块的库来避免使用图10A的白盒子加密模块746,如下所述。
总的来说,描述了一种使用预先加密的数据块的库生成图像(例如,机器可读代码)的经加密版本的方法,相同内容加密密钥(CEK)已经被用于对预先加密的数据块中的每一个进行加密。该方法包括:由来自库的预先加密的数据块的有序序列形成图像的经加密版本,其中有序序列中的每一个预先加密的数据块对应于构成图像的多个子图像中的相应子图像。下面将参照其中图像包括QR码的实施例来描述该方法,但将领会的是,取而代之,要保护的图像可以包括另一种形式的机器可读代码(诸如条形码),或者可以包括例如键区。事实上,要保护的图像可以是由子图像的预定集合(或“字母表”)构成的任何图像。例如,可以使用与字母、数字和标点符号相对应的子图像的预定集合来形成包括文本的图像。
参照QR码示例,图12A示出了可以用于生成任何QR码的16个不同子图像。特别地,相同的16个子图像还可以用于生成任何其他黑白(二进制图像)。在图12A中已经将该16个子图像编号为从0到15。将领会的是,图12A中所示的16个子图像是示例性的,并且事实上,QR码可以由多个不同子图像集合形成。一个其他示例是2个子图像的集合,一个子图像是黑色正方形(例如,1像素正方形或更大正方形)并且另一个子图像是对应的白色正方形。将领会的是,也存在其他这种子图像集合。优选地,对于处理效率,子图像大于单个像素,例如,至少大出一个量级(10个或更多个像素)或大出两个量级(100个或更多个像素)。这样,可以从比图像中的像素总数小的总数的子图像生成图像。因此,本方法更适于生成不具有高空间分辨率的图像的经加密版本。因此,本方法特别好地适于例如QR码的所生成的经加密版本,该版本是例如具有相对于标准智能电话屏幕分辨率的低空间分辨率的非常简单的二进制(黑白)图像。
图12B中示出了示例性QR码。在图12B中,QR码的顶部分被与图12A中所示的编号子图像相对应的编号子图像的序列覆盖。如果内容编码方案使用左到右和顶到底扫描线格式并且块大小等于扫描线大小,则块序列{14, 12, 12, 10, 1, 15, 5, 13, 0, 14, 12,12, 10, 10, 15, 10, 10, 8, 3, 0, 2, 0, 10, 15, 10, 10, 10, 12, 8, 10, 1, 7,4, 15, 2, 10, 12, 8, 10, 12, 12, 12, 8, 11, 8, 9, 9, 8, 12, 12, 12, 8}对QR图像的前四线(行)进行编码。应当清楚的是,可以使用该机制来对整个图像进行编码。因此,可以基于图12A中所示的子图像的有序序列来构造任何QR码。
因此,为了避免使用白盒子加密模块,可以对图12A中所示的子图像的预定“字母表”中的每一个进行预先加密,以形成预先加密的数据块的库。使用相同CEK来对预先加密的数据块中的每一个进行加密。预先加密的数据块的库对设备上的软件应用(下文中被称为“app”)来说可访问。app可以是第一软件应用。app具有每一个经加密数据块所包含的内容的知识。换言之,app具有对图12A中所示的子图像与存储在库中的预先加密的数据块之间的映射的访问权。由于每一个经加密数据块始终对应于相同子图像,因此可以使用数据变换技术以使攻击者难以从应用软件获得经加密的块。给定预先加密的数据块的库,则app可以使用经修改的QR码生成算法,其生成块标识符的序列并输出来自库的预先加密的数据块的对应序列,以产生图像/QR码的经加密版本。由于视频编码格式基于经编码图像数据的次序(例如左到右、顶到底序列)来指派隐式放置信息,因此预先加密的数据块的放置次序可以用于使用仅预先加密的数据块来生成不同QR码。
在优选实施例中,将图像的经加密版本(包括预先加密的数据块的有序序列)与内容加密密钥的经加密(即,预先加密)版本一起封装,以形成图像的DRM保护的版本。例如,可以将图像的经加密版本与预先生成的DRM权利对象一起封装,其中预先生成的DRM权利对象包括CEK的预先加密版本。已经预先生成和存储DRM权利对象以供app访问。因此,经封装内容包括图像/QR码的DRM保护的版本。CEK被要求以用于对图像的经加密版本进行解密。可以以下述这种方式对CEK进行加密:其可以仅由特定DRM客户端解密。例如,可以使用特定DRM客户端的公开密钥来对CEK进行加密。这保护了CEK,并因此保护了经加密内容文件,以抵御第三方访问。DRM客户端被配置成通过首先对所供给的CEK进行解密来处理经加密内容文件。特别地,app可以将DRM保护的QR码发送到媒体播放器应用,从而使媒体播放器应用访问DRM客户端,以便使得能够在计算设备上呈现QR码。在可替换实施例中,可以与图像的经加密版本分离地提供CEK(即,封装步骤是可选的)。在另一可替换实施例中,CEK的提供可能根本不是必需的。取而代之,CEK可以是特定DRM客户端的公开密钥,使得DRM客户端能够利用其自身的私有密钥来对图像的经加密版本进行解密。
因此,在该实施例中,QR码由设备500上的app在经加密的域中生成。具体地,app进行预先加密的数据块的选择,以创建可由DRM客户端解密且被显示在屏幕上的QR码。该内容构造方法避免了使用白盒子加密步骤。该变形提供了性能优点并防止对抗加密算法的白盒子实现方式的攻击。随着该技术替代经变换图像生成和加密步骤,可以通过将该技术应用于本发明的第一方面的前述应用中的任一个来提供类似优点。例如,将理解的是,可以根据本方法来在经加密的域中构造用于密码录入的键区。在该情况下,预定子图像将包括键区的数字。固定子图像可以被用于创建周围的键区自身。
在MPEG中,你可以定义作为视频/图像帧的区域的切片。如果你将切片对准到构成QR码的子图像,则你可以通过组合切片来构建QR图像。因此,预先加密的数据块的库可以包括预先加密的I帧切片,每一个I帧切片是相应子图像的经加密版本。例如,如果子图像是黑色或白色正方形,则全部两个子图像(黑色子图像和白色子图像)均可以被编码为I帧切片。app然后决定选择哪个切片。通过在切片之间进行选择以及可能具有一些固定切片或从服务器发送的切片,app可以一起拼合出完整的帧。因此,预先加密的数据块的有序序列中的每一个数据块形成图像的经加密版本中的I帧的相应切片。
在一个实施例中,预先加密的数据块的库中的每一个数据块表示n×m个像素的子图像,其中n和m是整数。为了简明,优选地,m=n。在具体实施例中,m=n=16,使得预先加密的数据块的库中的每一个数据块表示16×16个像素的子图像,且对应于以MPEG-2视频编码格式存在的宏块。因此,可以在MPEG-2视频I帧的宏块中对每一个子图像进行编码。在另一实施例中,m=n=8,使得预先加密的数据块的库中的每一个数据块表示8×8个像素的子图像,且对应于以MPEG-2视频编码格式存在的DCT块。对于其他视频编码格式,到像素的不同映射可能是优选的。可以将子图像的大小适配于视频(图像)编码方案,以启用扫描线次序和扫描线像素高度。库包含I帧的预先加密版本,该预先加密版本包含对每一个子图像中的像素值进行编码的宏块。在预先加密步骤之前,可选地将I帧调整成匹配于加密过程的要求。在块密码的情况下,使用视频呈现过程将忽略的数据(所谓的“位填充”)将I帧扩展到加密算法的块大小。由于已经利用相同CEK对所有经加密的块进行预先加密,因此app可以以适当扫描线次序布置一系列块并将其与以本地DRM客户端为目标的预先加密的CEK一起封装。将从上面的描述中理解的是,图像的经加密版本可以形成经加密视频的一部分。
如前所提及,可以将来自库的预先加密的数据块的序列与一个或多个固定数据块或从服务器接收的数据块进行组合。因此,在一个实施例中,该方法进一步包括:从服务器接收至少一个经加密数据块。该至少一个经加密数据块对应于构成图像的该多个子图像中的相应至少一个子图像。该至少一个经加密数据块已经使用与库中的预先加密的数据块相同的CEK而加密。在该实施例中,将来自服务器的该至少一个经加密数据块与来自库的预先加密的数据块的有序序列进行组合,以形成图像的经加密版本。可替换地/附加地,来自库的预先加密的数据块的有序序列可以包括有序序列中的固定位置处的至少一个固定数据块。固定数据块可以用于表示例如QR码的边界或键区的轮廓。
在图12B中,将QR码分割成子图像开始于与第一子图像的左上角相对应的QR码的左上部。可以以多种不同方式将相同QR码分割成子图像。例如,图12C示出了其中扫描线早半个块开始的可替换方案,并且图12D示出了其中扫描线也往上高半个块开始的另一可替换方案。在这些可替换方案中的每一个中,初始QR码图像可以被视为略微不同。例如,图12B的QR码图像在右手侧具有白空间的垂直线,并且图12C的QR码图像在左手侧具有白空间的垂直线,并且图12D的QR码图像在左手侧具有白空间的垂直线以及在QR码上面具有白空间的水平线。将QR码分割成子图像的各种方式可以用于实现不同QR码生成方法。使QR生成过程变化可以在保护QR码生成以抵御白盒子攻击场景时有用。
特别地,已经特别结合生成DRM保护的代码内容(例如,参见图10A中所示的DRM保护的代码内容1050)描述了用于生成图像的经加密版本的上述方法。然而,将领会的是,可以在媒体播放器实施例的可替换本地实现方式中使用相同方法。例如,该方法可以用于在上面参照图7C讨论的本地机器人规避示例中构造DRM保护的挑战内容730。而且,该方法可以用于在上面参照图8C讨论的本地用户验证示例中构造DRM保护的密码录入内容830。附加地,该方法可以用于在上面参照图9C讨论的本地安全交易示例中构造DRM保护的交易批准内容930。在每一种情况下,该可替换方法通过取而代之使用预先加密的数据块的库来避免使用白盒子加密模块746。在每一种情况下,应当适当选择预先加密的数据块的库。例如,当生成DRM保护的密码录入内容830时,图像可以包括键区。因此,预先加密的数据块的库应当表示可以用于构造合适键区的子图像。该方法仅受库的大小限制。清楚地,要求相对小的库以构造QR码(或其他二进制码),而将要求较大的库以构造彩色图像。因此,该方法特别适于构造简单图像(诸如二进制黑白图像,例如QR码等等)。
应用E:安全消息传递
移动计算设备(诸如移动电话)上的消息传递应用使终端用户能够将消息发送到另一终端用户的移动计算设备。这种消息传递应用的示例是SMS、Messages、WhatsApp、WeChat、Telegram、Tencent QQ、Facebook Messenger、Viber、Line和Snapchat。消息可以包含文本、表情符号、图形、图像、照片、链接、音频片段和/或视频片段。一些消息传递应用允许用户利用防止接收者存储或捕获所接收的图像/照片的选项发送图像/照片。现有应用通过在首先呈现内容(参见例如Snapchat)之后或在几秒之后删除消息(的部分)来实现该功能性。它们还采取一些措施来防止所呈现的消息内容的拷贝并使利用相机/记录器捕获所呈现的消息变得复杂。
因此,在该实施例中,提供了一种供第一软件应用访问计算设备上的DRM客户端(受保护软件应用)的方法。第一软件应用不被配置成与DRM客户端对接。计算设备包括被配置成与DRM客户端对接的媒体播放器应用(对接应用)。该方法包括:(a)第一软件应用向媒体播放器应用发送DRM保护的内容,从而使媒体播放器应用访问DRM客户端,以便使得能够在计算设备上呈现内容,其中DRM客户端被配置成防止和/或限制在计算设备上执行的其他软件应用访问内容。按照安全消息传递,内容包括音频和/或视频消息内容。
在该应用示例中,第一软件应用530是消息传递应用。消息传递应用与媒体播放器625对接,以便使用DRM客户端615以凭借安全视频路径来显示消息。甚至可以使用DRM客户端的有限数目的回放或时间窗口以定义消息的生存时间。换言之,DRM保护的内容可以进一步包括DRM权利对象,DRM权利对象包括用于访问内容的规则,并且DRM客户端可以被配置成根据DRM权利对象的规则来提供对内容的访问。规则可以指定内容的至少部分可被呈现在计算设备上的总次数。规则可以指定计算设备上的内容的至少部分的寿命。其他类型的DRM规则将对本领域技术人员来说是公知的,且在这里可以在适当时被等同地应用。
现在让我们考虑生成DRM保护的消息内容的方法。
可以使用上面关于安全交易应用而描述的键区屏幕覆盖来键入新消息。再一次,这意味着屏幕按压的位置可能对攻击者来说已知,但在没有屏幕覆盖(其是通过使用安全视频路径来保护的)的知识的情况下,这些没有意义。可替换地,消息传递应用可以处理屏幕按压,将它们转换成按键触击,刷新(消息的)图像,生成图像的DRM保护的I帧,并将其发送回到安全视频路径(使用媒体播放器625和DRM客户端615)以刷新屏幕。
在一个实现方式中,消息内容和(一个或多个)预期接收者对消息传递服务器(诸如服务器540)来说可访问。因此,关于接收消息,服务器540上的DRM服务器720能够将消息内容封装为适于在(一个或多个)预期接收者的(一个或多个)计算设备500上呈现的DRM保护的消息内容。特别地,服务器540能够将(一个或多个)预期接收者与具有(一个或多个)特定DRM客户端615的(一个或多个)特定计算设备相关联。然后向计算设备上的第一软件应用530发送DRM保护的消息内容(音频、图像、视频等),并且第一软件应用530使用安全视频路径(即,媒体播放器应用625和DRM客户端615的组合)以安全地呈现计算设备500上的消息内容。DRM保护的消息内容的DRM权利对象确保了DRM客户端615保护消息内容以抵御屏幕抓取和/或限制针对经保护内容的播放的量(例如,其可以被设置成仅播放一次)。图11A中示意性地图示了该实现方式的方法,图11A示出了由服务器执行的方法步骤和由计算设备(即,接收设备500R)执行的方法步骤。
在另一实现方式中,期望消息传递服务器540不具有访问其所处理的消息的明文版本的能力。换言之,期望服务器540简单地执行发送和接收计算设备500S和500R之间的消息路由。该实现方式要求发送计算设备500S上的消息传递应用1130S本地生成DRM保护的消息内容(的至少部分)。图11B中示意性地图示了用于将消息本地变换成DRM保护的消息内容文件的系统架构。
图11B示出了想要将消息内容1100发送到接收计算设备500R上的另一消息传递应用1120R的发送计算设备500S上的消息传递应用1130S。接收设备500R的DRM客户端615R的公开密钥(即,PK_R)对发送设备500S上的消息传递应用1130S来说是已知的,这是由于接收设备500R是发送设备500S的已知联系人。设立该类型的联系人数据是已知的。消息传递应用1130S包含用于产生内容加密密钥(CEK)的随机数生成器1102。消息传递应用1130S还包含可操作以使用CEK对消息内容1100进行加密的内容加密模块1104。由于接收设备500R需要能够恢复消息内容1100,因此将CEK发送到接收设备500R也是必要的。对于消息内容1100,CEK也需要被加密。因此,消息传递应用1130S进一步包含可操作以使用PK_R对CEK进行加密的CEK加密模块1106。这是相对标准的实践,这是由于大多数DRM系统使用公开密钥密码算法和与目的地设备相关联的公开密钥来CEK进行加密。在这两个加密步骤之后,消息内容1100对第三方(诸如消息传递服务器540)来说不再可访问。因此,经加密数据(即,经加密消息内容和经加密CEK)可以被安全地发送到消息传递服务器540,而不允许服务器540访问明文消息内容540。服务器540然后可以继续将经加密数据转发到预期接收设备500R。仅预期接收设备500R能够对CEK进行解密,该CEK已经利用其自身的公开密钥(PK_R)而加密。因此,仅预期接收设备500R能够对消息内容1100进行解密,使得消息内容1100受保护以抵御被其他设备呈现。清楚地,发送设备500S的消息传递应用1130S的相关模块将需要受保护(例如,通过白盒子密码术和/或软件模糊处理等),如前所述。
有利地,DRM封装器1108可以被用于将经加密数据(即,经加密消息内容和经加密CEK)封装成以适于接收设备500R的格式存在的DRM保护的消息内容1110。作为封装步骤的一部分,还可以向使用规则1112(例如,以DRM权利对象的形式存在)和/或DRM认证码(AC)(未示出)添加DRM保护的消息内容1110。如上所述,规则可以限制接收设备500R呈现消息内容。例如,规则可以声明:消息内容的回放可以仅发生有限次数(例如,一次)和/或所呈现的消息内容被保护以抵御拷贝(例如,屏幕抓取)。DRM权利对象可能需要被认证(签名)以使得能够仅被接收设备500R中的DRM客户端615R处理。DRM封装器1108可以被实现在消息传递服务器540中而不损失通信秘密性。可替换地,如果DRM封装器1108被配置为真实DRM内容源,则其可以被实现在本地发送设备500S中。这依赖于DRM系统的详情。利用消息传递应用1130S中的该功能,可以使用传统消息传递基础设施来递送消息内容1100。由于现今存在若干种不同DRM系统被部属在移动设备中,因此消息传递应用将理想地被配置成支持多个DRM内容保护系统。该方法的优点是:更难拦截消息,并且更难以记录或转发所呈现的消息内容。
图11C中示意性地图示了上述实现方式的方法,图11C示出了由发送设备500S执行的方法步骤、由服务器540执行的方法步骤和由接收设备500R执行的方法步骤。在图11C中所示的实施例中,包括DRM封装器1108的是服务器540。然而,如上所述,这是可选的。DRM封装器可以潜在地被排除(依赖于接收设备500R中可处理的经加密数据的格式),或者可以形成发送设备500S的一部分。
上面参照图11B和11C描述的实现方式与下述情形相关:其中在消息传递应用1130S内以及使用消息传递基础设施执行所有内容加密。然而,如图11D中所图示,在发送设备500S中还可以利用单独的消息保护应用1130S以执行内容加密。这使终端用户能够与消息传递应用提供商无关地添加内容安全性特征。注意,现有消息传递平台不能限制消息内容的回放、拷贝和转发。相比之下,关于图11D的实施例描述的单独消息保护应用1130和关联基础设施支持将广泛的消息保护功能添加到消息传递应用。
图11D示出了包括消息传递应用1120S和消息保护应用1130S的发送设备500S。经由网络710和消息传递服务器1140a将消息发送到接收设备500R。接收设备500R自身包括与发送设备500S的消息传递应用1120S相对应的消息传递应用1120R。
发送设备500S上的消息传递应用1120S产生消息内容1100。然而,消息保护应用1130与消息传递应用1120S对接,以接收消息内容并将其加密成DRM保护的消息内容。这可以以与生成图11B中所示的DRM保护的消息内容1110类似的方式进行。这可以本地进行,或者结合消息保护应用1130S通过网络710连接到的消息保护服务器1140b而进行。一旦数据已经被加密,消息保护应用1130就使用消息传递基础设施(即,网络720和消息传递服务器1140b)将DRM保护的消息内容转发到接收设备500R的消息传递应用1120R。因此,消息传递应用1120R在接收设备500R处接收DRM保护的消息内容。优选地,接收设备500R的消息传递应用1120R然后可以使用图11A的方法以安全地呈现接收设备500R上的所接收的消息内容。
注意,消息保护应用1130S可以包括:多个经加密CEK,覆盖与终端用户相关联的多个接收设备500R。消息保护应用1130S可以具有启用或排除这些接收设备500R中的一些的设置。消息保护应用1130S还使用户能够配置使用规则,该使用规则控制特定接收设备500R上的消息内容的呈现。
如果接收设备500R没有安装消息保护应用(如图11D中那样),则针对接收设备500R的公开密钥(PK_R)可以被消息保护服务器1140b提供给发送设备500S。因此,消息保护服务器1140b包括:数据库,使特定消息的目的地地址能够被映射到计算设备500R的DRM客户端ID和关联DRM公开密钥(PK_R)。如果数据库的相关部分未被填充(即,如果映射信息不立即对特定目的地地址而言可用),则消息保护应用1130S可以利用CEK对消息内容进行加密,但可以不利用相关PK_R对CEK进行加密。此外,消息保护应用1130S不能够构造DRM权利对象,直到计算设备500R使消息保护服务器1130S能够获得相关DRM参数为止。一种获得这些参数的方式是使消息保护应用1130S随联系消息保护服务器1140b且提供所要求的DRM参数的请求来发送消息。在针对接收设备500R的DRM参数已经被提供给消息保护服务器1140b之后,消息保护基础设施(即,消息保护服务器1140b和消息保护应用1130S)能够构造和提供适于呈现消息内容的DRM权利对象。
媒体播放器实施例的这些安全消息传递应用特别地与具有触摸屏的移动计算设备(诸如智能电话和平板电脑等等)相关。
应用F:安全文档编辑
在该应用示例中,第一软件应用530是文档编辑应用。文档编辑应用与媒体播放器625对接,以便使用DRM客户端615以凭借安全视频路径来显示文档。在该实施例中按照通常那样执行键盘上的按键触击以允许自然键入。然而,攻击者将仅看到由用户本地作出的改变而不是整个文档。再一次,要么通过创建从针对改变的云到屏幕的视频序列来进行用户反馈的创建,要么文档编辑应用处理按键输入并创建在屏幕上显示的经封装DRM文件。再一次,DRM时间窗口可以被应用以管理访问。附加地,每当文档被打开时,可能需要关联权利对象——这使得能够非常精细地将对敏感的访问记入日志。
应用G:安全视频会议
在该应用示例中,第一软件应用530是视频会议应用。视频会议应用与媒体播放器625对接,以便使用DRM客户端615以凭借安全视频路径来显示所接收的视频会议馈送/流。可以以该方式安全地显示所接收的视频和/或音频。这防止攻击者观察到视频会议的视频和/或音频内容。
应用H:显示的完整性
在该应用示例中,第一软件应用530是旨在将特定内容显示给用户的软件应用。第一软件应用530与媒体播放器625对接,以便使用DRM客户端615以凭借安全视频路径来显示内容。由于攻击者不能观察到安全地显示的内容,因此攻击者难以以较小的方式修改所观察的内容而不向用户报警。
例如,所显示的内容可以包括仅对第一软件应用530的提供商(例如,服务提供商540)和第一软件应用的用户来说已知的共享秘密(例如,特定颜色方案、布局、照片、图标等等),并且由用户对显示进行的任何修改将不必然能够确保共享秘密的显示的完整性。
另一示例与上述安全银行应用相关。在该情况下,可以安全地显示包括例如要由用户验证的交易数额的内容以及“OK”按钮(等等),一旦它们被满足(所显示的交易数额正确),用户就可以按压该“OK”按钮。攻击者将发觉难以在没有内容的布局的知识的情况下在显示器上覆盖可替换的交易数额(使得用户无意地授权比预期的交易大得多的交易)。例如,可以在屏幕上的随机位置中显示按钮和验证数额。
显示应用的该完整性的一个另外示例与网页的显示相关。网页常常包括经授权的广告,并且攻击者可能旨在利用可替换(未经授权)的广告覆盖经授权的广告。在该示例中,第一软件应用530使得能够显示网页(即,内容是网页)。第一软件应用530与媒体播放器625对接,以便使用DRM客户端615以凭借安全视频路径来显示网页。换言之,网页被呈现为受保护视频或静止图像。这使得攻击者不可能以不会与网页的实际内容发生干扰的方式在网页上覆盖广告。特别地,由于攻击者不能观察到网页的布局(其可以包括用于显示经授权的广告的广告区域),因此攻击者不知道广告区域在网页上的位置,因此不能将他们自己的(未经授权的)广告放置在(一个或多个)经授权的广告上方。因此,在没有用户的知识的情况下覆盖经授权的广告(或其他经授权内容)存在小得多的机会。
5-用户输入实施例
在一些实施例中,计算设备500可以包括用于获得用户输入的输入设备。例如,输入设备可以包括图1的鼠标126和/或键盘124。输入设备可以可替换地/附加地包括指纹传感器、触摸屏、相机、麦克风和/或键区。在这样的情况下,受保护软件应用615可以被配置成安全地从输入设备获得用户输入。受保护软件应用615可以进一步被配置成防止计算设备上的其他软件应用访问从输入设备获得的用户输入。因此,第一软件应用530与对接应用625对接,从而使对接应用625访问受保护软件应用615,以便安全地从输入设备获得用户输入。该实施例保护用户输入以抵御由计算设备500上的其他软件应用窥探。
6-修改
将领会的是,本发明的上述实施例和实现方式的特征和步骤可以被组合,除非这种组合在该描述中被显式地否认。
将领会的是,所描述的方法已经被示作按具体次序实施的个体步骤。然而,本领域技术人员将领会的是,可以按不同的次序组合或实施这些步骤,同时仍实现期望结果。
将领会的是,可以使用多种不同信息处理系统来实现本发明的实施例。特别地,尽管其附图和讨论提供了示例性计算系统和方法,但这些被提出只是为了提供在讨论本发明的各种方面时有用的参考。本发明的实施例可以在任何合适数据处理设备(诸如个人计算机、膝上型电脑、个人数字助理、移动电话、机顶盒、电视、服务器计算机等)上实施。当然,已经出于讨论的目的而简化系统和方法的描述,并且它们仅是可以用于本发明实施例的许多不同类型的系统和方法中的一种。将领会的是,逻辑块之间的边界仅是说明性的,并且可替换实施例可以合并逻辑块或元件,或者可以对各种逻辑块或元件施加功能性的交替分解。
将领会的是,上面提及的功能性可以被实现为作为硬件和/或软件的一个或多个对应模块。例如,上面提及的功能性可以被实现为一个或多个软件模块以供系统的处理器执行。可替换地,上面提及的功能性可以被实现为硬件,诸如一个或多个现场可编程门阵列(FPGA)、和/或一个或多个专用集成电路(ASIC)、和/或一个或多个数字信号处理器(DSP)、和/或其他硬件布置。本文包含的流程图中实现或如上所述的方法步骤均可以由对应的相应模块实现;本文包含的流程图中实现或如上所述的多个方法步骤可以一起由单个模块实现。
将领会的是,在本发明实施例由计算机程序实现的限度内,那么,承载计算机程序的储存介质和传输介质形成本发明的方面。计算机程序可以具有一个或多个程序指令或程序代码,其在由计算机执行时实施本发明实施例。如本文使用的术语“程序”可以是被设计用于在计算机系统上执行的指令序列,并可以包括子例程、功能、过程、模块、对象方法、对象实现、可执行应用、小应用程序、小服务程序、源代码、目标代码、共享库、动态链接库、和/或被设计用于在计算机系统上执行的其他指令序列。储存介质可以是磁盘(诸如硬盘驱动器或软盘)、光盘(诸如CD-ROM、DVD-ROM或蓝光盘)或存储器(诸如ROM、RAM、EEPROM、EPROM、闪存或便携式/可移除存储器设备)等。传输介质可以是通信信号、数据广播、两个或更多个计算机之间的通信链路等。
Claims (33)
1.一种使用预先加密数据块的库生成图像的经加密版本的方法,相同的内容加密密钥已经被用于对所述预先加密数据块中的每一个进行加密,所述方法包括:由来自所述库的预先加密数据块的有序序列形成所述图像的经加密版本,其中所述有序序列中的每一个预先加密数据块对应于构成所述图像的多个子图像中的相应子图像。
2.根据权利要求1所述的方法,进一步包括:将所述图像的经加密版本与所述内容加密密钥的经加密版本一起封装,以形成所述图像的DRM保护的版本。
3.根据权利要求1或权利要求2所述的方法,其中所述图像包括机器可读代码。
4.根据权利要求1或权利要求2所述的方法,其中所述图像包括键区。
5.根据任一前述权利要求所述的方法,其中预先加密数据块的有序序列中的每一个数据块形成所述图像的经加密版本中的I帧的相应切片。
6.根据任一前述权利要求所述的方法,其中预先加密数据块的库中的每一个数据块表示n×m个像素的子图像,其中n和m是整数。
7.根据任一前述权利要求所述的方法,其中预先加密数据块的库中的每一个数据块对应于以MPEG-2视频编码格式存在的宏块。
8.根据任一前述权利要求所述的方法,其中所述图像的经加密版本形成加密视频的一部分。
9.根据任一前述权利要求所述的方法,进一步包括:从服务器接收至少一个加密数据块,所述至少一个加密数据块对应于构成所述图像的所述多个子图像中的相应至少一个子图像,所述至少一个加密数据块已经是使用所述内容加密密钥来加密的,其中来自所述服务器的所述至少一个加密数据块与来自所述库的预先加密数据块的有序序列组合,以形成所述图像的经加密版本。
10.根据任一前述权利要求所述的方法,其中来自所述库的预先加密数据块的有序序列包括所述有序序列中的固定位置处的至少一个固定数据块。
11.一种供第一软件应用访问计算设备上的受保护软件应用的方法,所述第一软件应用不被配置成与所述受保护软件应用对接,所述计算设备包括被配置成与所述受保护软件应用对接的对接应用,所述方法包括:
所述第一软件应用与所述对接应用对接,从而使所述对接应用访问所述受保护软件应用,所述第一软件应用被配置成与所述对接应用对接。
12.根据权利要求11所述的方法,其中所述第一软件应用被配置成以由所述对接应用预定的格式将输入和/或内容提供给所述对接应用。
13.根据权利要求11或权利要求12所述的方法,其中所述对接应用包括与第三方对接的接口,所述第一软件应用被配置成使用所述接口来与所述对接应用对接。
14.根据权利要求11至13中任一项所述的方法,其中所述对接应用是所述计算设备上的多个对接应用之一,每一个对接应用被配置成与所述受保护软件应用的相应实例对接。
15.根据权利要求11至14中任一项所述的方法,其中所述第一软件应用是所述计算设备上的多个第一软件应用之一,每一个第一软件应用被配置成与所述对接应用的相应实例对接且不被配置成与所述受保护软件应用对接。
16.根据权利要求11至15中任一项所述的方法,其中所述受保护软件应用仅经由一个或多个预定访问应用而可访问,所述一个或多个预定访问应用包括所述对接应用但不包括所述第一软件应用。
17.根据权利要求11至16中任一项所述的方法,其中所述第一软件应用是操作系统、设备驱动器、二进制可执行程序之一,并且软件应用是源代码格式。
18.根据权利要求11至17中任一项所述的方法,其中所述受保护软件应用包括DRM客户端,并且所述对接应用包括媒体播放器应用,使得所述方法包括:所述第一软件应用将DRM保护的内容发送到所述媒体播放器应用,从而使所述媒体播放器应用访问所述DRM客户端,以便使得能够在所述计算设备上呈现所述DRM保护的内容。
19.根据权利要求18所述的方法,其中所述DRM保护的内容包括被所述第一软件应用的提供商知道且被所述第一软件应用的用户知道的共享秘密。
20.根据权利要求18或权利要求19所述的方法,其中所述DRM客户端被配置成防止和/或限制在所述计算设备上执行的其他软件应用访问所述DRM保护的内容。
21.根据权利要求20所述的方法,其中所述DRM保护的内容包括音频内容,并且所述DRM客户端被配置成防止所述计算设备上的其他软件应用获得在使用所述计算设备的扬声器加以呈现时的所述音频内容的记录。
22.根据权利要求20或权利要求21所述的方法,其中所述DRM保护的内容包括图像内容,并且所述DRM客户端被配置成防止所述计算设备上的其他软件应用获得在所述计算设备的屏幕上呈现时的所述图像内容的屏幕截图。
23.根据权利要求22所述的方法,其中所述DRM保护的内容包括视频内容,所述视频内容包括所述图像内容。
24.根据权利要求22或权利要求23所述的方法,其中所述图像内容包括字符的集合,所述字符在所述图像中的位置被随机指派,使得监视由用户进行的输入的位置的软件应用不能确定对应的字符输入。
25.根据权利要求11至24中任一项所述的方法,其中所述计算设备包括用于获得用户输入的输入设备,并且其中所述受保护软件应用被配置成安全地从所述输入设备获得所述用户输入,使得所述方法包括:所述第一软件应用与所述对接应用对接,从而使所述对接应用访问所述受保护软件应用,以便安全地从所述输入设备获得所述用户输入,所述受保护软件应用被配置成防止所述计算设备上的其他软件应用访问从所述输入设备获得的所述用户输入。
26.根据权利要求25所述的方法,其中所述输入设备是指纹传感器、触摸屏、相机、麦克风、鼠标和键区之一。
27.根据权利要求11至26中任一项所述的方法,其中所述受保护软件应用凭借由计算设备操作系统提供的软件模糊处理和/或节点锁定和/或隔离和/或由计算设备操作系统进行的安全加载而受保护。
28.根据权利要求11至27中任一项所述的方法,其中所述受保护软件应用凭借下述方式而受保护:所述受保护软件应用被配置成在所述计算设备的受保护模块中执行,所述第一软件应用和所述对接应用不被配置成在所述受保护模块中执行。
29.根据权利要求28所述的方法,其中所述第一软件应用不被配置成与被配置成在所述受保护模块中执行的任何软件应用对接。
30.根据权利要求28或权利要求29所述的方法,其中被配置成在所述受保护模块中执行的软件应用仅经由一个或多个预定访问应用而可访问,所述一个或多个预定访问应用包括所述对接应用但不包括所述第一软件应用。
31.一种被布置成实施根据任一前述权利要求所述的方法的计算设备。
32.一种计算机程序,其在由一个或多个处理器执行时使所述一个或多个处理器实施根据权利要求1-30中任一项所述的方法。
33.一种计算机可读介质,其存储根据权利要求32所述的计算机程序。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EPPCT/EP2014/067841 | 2014-08-21 | ||
PCT/EP2014/067841 WO2016026532A1 (en) | 2014-08-21 | 2014-08-21 | User authentication using a randomized keypad over a drm secured video path |
PCT/EP2015/069294 WO2016026972A1 (en) | 2014-08-21 | 2015-08-21 | Accessing a secured software application |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106575334A true CN106575334A (zh) | 2017-04-19 |
Family
ID=51483394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580044847.2A Pending CN106575334A (zh) | 2014-08-21 | 2015-08-21 | 访问受保护软件应用 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10417399B2 (zh) |
EP (1) | EP3183681B1 (zh) |
CN (1) | CN106575334A (zh) |
WO (2) | WO2016026532A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109802999A (zh) * | 2018-12-28 | 2019-05-24 | 北京指掌易科技有限公司 | 一种通过vsa技术在pc端实现移动应用功能的方法 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105592799B (zh) * | 2013-10-04 | 2018-11-06 | 皇家飞利浦有限公司 | 用于自动化心搏识别的超声系统和方法 |
WO2016026532A1 (en) | 2014-08-21 | 2016-02-25 | Irdeto B.V. | User authentication using a randomized keypad over a drm secured video path |
GB201418815D0 (en) | 2014-10-22 | 2014-12-03 | Irdeto Bv | Providing access to content |
WO2016112338A1 (en) * | 2015-01-08 | 2016-07-14 | Intertrust Technologies Corporation | Cryptographic systems and methods |
CN105898622A (zh) * | 2015-10-29 | 2016-08-24 | 乐视致新电子科技(天津)有限公司 | 一种视频数字版权保护方法及系统 |
US10771478B2 (en) * | 2016-02-18 | 2020-09-08 | Comcast Cable Communications, Llc | Security monitoring at operating system kernel level |
GB2547954B (en) * | 2016-03-03 | 2021-12-22 | Zwipe As | Attack resistant biometric authorised device |
US11010810B1 (en) * | 2016-05-12 | 2021-05-18 | Brett Pylant | Computerized system and method for automatically establishing a network connection for a real-time video conference between users |
US10389517B2 (en) * | 2016-06-27 | 2019-08-20 | Nxp B.V. | Using secure key storage to bind a white-box implementation to one platform |
US11113380B2 (en) | 2016-07-15 | 2021-09-07 | Irdeto B.V. | Secure graphics |
CN106355072B (zh) * | 2016-08-19 | 2019-02-22 | 沈建国 | 三维模型验证码的实现方法及其装置 |
US10657234B2 (en) * | 2017-08-31 | 2020-05-19 | Behaviometrics Ab | Method, computer program, and system to realize and guard over a secure input routine based on their behavior |
US10698752B2 (en) | 2017-10-26 | 2020-06-30 | Bank Of America Corporation | Preventing unauthorized access to secure enterprise information systems using a multi-intercept system |
US10708641B2 (en) | 2017-11-29 | 2020-07-07 | Sony Corporation | QR codes for guided service authorization |
US11064153B2 (en) * | 2018-08-21 | 2021-07-13 | Gopro, Inc. | Methods and apparatus for encrypting camera media |
EP3672248B1 (en) | 2018-12-21 | 2021-01-27 | Axis AB | A method and system for adding image content that contains one or more graphical objects to an image frame using an encoder |
US11823198B1 (en) | 2019-02-18 | 2023-11-21 | Wells Fargo Bank, N.A. | Contextually escalated authentication by system directed customization of user supplied image |
US11366879B2 (en) * | 2019-07-08 | 2022-06-21 | Microsoft Technology Licensing, Llc | Server-side audio rendering licensing |
US10970379B2 (en) * | 2019-08-12 | 2021-04-06 | Jessie Cortez | System and method for accessing secured data |
JP7314416B2 (ja) * | 2019-12-11 | 2023-07-25 | ダブリュ.エル.ゴア アンド アソシエイツ,インコーポレイティド | 蒸気ポンプの性能を評価するための方法 |
US11714676B2 (en) * | 2020-01-03 | 2023-08-01 | International Business Machines Corporation | Software-directed value profiling with hardware-based guarded storage facility |
US20210350020A1 (en) * | 2020-05-10 | 2021-11-11 | Eiko Onishi | De-identified Identity Proofing Methods and Systems |
US11734414B2 (en) | 2020-09-29 | 2023-08-22 | Renesas Electronics Corporation | Method and system for generating and accessing guard services for secure services and operations thereof |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050094808A1 (en) * | 2003-10-31 | 2005-05-05 | Pedlow Leo M.Jr. | Dynamic composition of pre-encrypted video on demand content |
US20070011718A1 (en) * | 2005-07-08 | 2007-01-11 | Nee Patrick W Jr | Efficient customized media creation through pre-encoding of common elements |
US20100166054A1 (en) * | 2008-12-31 | 2010-07-01 | General Instrument Corporation | Hybrid video encoder including real-time and off-line video encoders |
CN103390124A (zh) * | 2012-05-08 | 2013-11-13 | 迪斯克雷蒂克斯科技公司 | 安全输入和处理口令的设备、系统和方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7171558B1 (en) * | 2000-09-22 | 2007-01-30 | International Business Machines Corporation | Transparent digital rights management for extendible content viewers |
GB0024919D0 (en) * | 2000-10-11 | 2000-11-22 | Sealedmedia Ltd | Method of further securing an operating system |
US8145914B2 (en) * | 2005-12-15 | 2012-03-27 | Microsoft Corporation | Client-side CAPTCHA ceremony for user verification |
US8516603B2 (en) * | 2010-07-21 | 2013-08-20 | Cox Communications, Inc. | Systems and methods providing a separable digital rights management application |
CN104221023B (zh) | 2012-02-17 | 2017-11-03 | 爱迪德技术有限公司 | 用于数字权利管理的方法、装置和系统 |
US9344275B2 (en) * | 2012-05-08 | 2016-05-17 | Arm Technologies Israel Ltd. | System, device, and method of secure entry and handling of passwords |
US20140047557A1 (en) * | 2012-07-16 | 2014-02-13 | Infosys Limited | Providing access of digital contents to online drm users |
US9430618B2 (en) * | 2013-09-27 | 2016-08-30 | Konica Minolta Laboratory U.S.A., Inc. | Messaging administration based on digital rights management services |
KR101883816B1 (ko) * | 2013-12-19 | 2018-07-31 | 인텔 코포레이션 | 클라이언트 디바이스 상에서의 다수의 디지털 저작권 관리 프로토콜 지원 기술 |
WO2016026532A1 (en) | 2014-08-21 | 2016-02-25 | Irdeto B.V. | User authentication using a randomized keypad over a drm secured video path |
-
2014
- 2014-08-21 WO PCT/EP2014/067841 patent/WO2016026532A1/en active Application Filing
-
2015
- 2015-08-21 WO PCT/EP2015/069294 patent/WO2016026972A1/en active Application Filing
- 2015-08-21 CN CN201580044847.2A patent/CN106575334A/zh active Pending
- 2015-08-21 US US15/502,199 patent/US10417399B2/en active Active
- 2015-08-21 EP EP15759696.6A patent/EP3183681B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050094808A1 (en) * | 2003-10-31 | 2005-05-05 | Pedlow Leo M.Jr. | Dynamic composition of pre-encrypted video on demand content |
US20070011718A1 (en) * | 2005-07-08 | 2007-01-11 | Nee Patrick W Jr | Efficient customized media creation through pre-encoding of common elements |
US20100166054A1 (en) * | 2008-12-31 | 2010-07-01 | General Instrument Corporation | Hybrid video encoder including real-time and off-line video encoders |
CN103390124A (zh) * | 2012-05-08 | 2013-11-13 | 迪斯克雷蒂克斯科技公司 | 安全输入和处理口令的设备、系统和方法 |
Non-Patent Citations (1)
Title |
---|
NITHIN等: "《Image Encryption based on FEAL algorithm》", 《INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTER SCIENCE AND TECHNOLOGY》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109802999A (zh) * | 2018-12-28 | 2019-05-24 | 北京指掌易科技有限公司 | 一种通过vsa技术在pc端实现移动应用功能的方法 |
Also Published As
Publication number | Publication date |
---|---|
US10417399B2 (en) | 2019-09-17 |
US20170228525A1 (en) | 2017-08-10 |
EP3183681A1 (en) | 2017-06-28 |
EP3183681B1 (en) | 2021-06-09 |
WO2016026972A1 (en) | 2016-02-25 |
WO2016026532A1 (en) | 2016-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106575334A (zh) | 访问受保护软件应用 | |
KR101878149B1 (ko) | 패스워드의 보안 입력 및 처리 장치, 시스템 및 방법 | |
CN108769027B (zh) | 安全通信方法、装置、移动终端和存储介质 | |
CN102567662B (zh) | 用于处理数据的装置和方法 | |
CN103390124B (zh) | 安全输入和处理口令的设备、系统和方法 | |
CN103929307B (zh) | 密码输入方法、智能密钥设备以及客户端装置 | |
US8868927B1 (en) | Method and apparatus for secure data input and output | |
TW201108699A (en) | Authentication method and system | |
JP2008269610A (ja) | リモートアプリケーションを対象とした機密データの保護 | |
CN111027632A (zh) | 一种模型训练方法、装置及设备 | |
CN109644196A (zh) | 消息保护 | |
CN108027853B (zh) | 多用户强认证令牌 | |
US11693944B2 (en) | Visual image authentication | |
CN108141350A (zh) | 从非安全终端确保交易的方法 | |
US20200220715A1 (en) | Visual Image Authentication | |
US20110202772A1 (en) | Networked computer identity encryption and verification | |
CN101741826A (zh) | 在虚拟化平台上实现加密卸载的系统和方法 | |
CN109740360A (zh) | 一种文档授权装置、客户端和方法 | |
CN117751551A (zh) | 用于安全互联网通信的系统和方法 | |
CN114240347A (zh) | 业务服务安全对接方法、装置、计算机设备、存储介质 | |
CN105591746B (zh) | 一种在线绑定受理终端的处理方法以及处理系统 | |
CN113193956B (zh) | 账号信息处理方法及装置 | |
JP2006004321A (ja) | セキュリティシステム | |
CN115834791B (zh) | 利用矩阵密钥的图像加解密传输方法和电子设备 | |
CN201286107Y (zh) | 安全设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170419 |
|
WD01 | Invention patent application deemed withdrawn after publication |