CN104067286A - 无效托管密钥的检测 - Google Patents
无效托管密钥的检测 Download PDFInfo
- Publication number
- CN104067286A CN104067286A CN201380005350.0A CN201380005350A CN104067286A CN 104067286 A CN104067286 A CN 104067286A CN 201380005350 A CN201380005350 A CN 201380005350A CN 104067286 A CN104067286 A CN 104067286A
- Authority
- CN
- China
- Prior art keywords
- key
- file
- confirmation data
- trustship
- hash
- 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.)
- Granted
Links
- 238000001514 detection method Methods 0.000 title description 7
- 238000012550 audit Methods 0.000 claims abstract description 5
- 238000000034 method Methods 0.000 claims description 64
- 238000012790 confirmation Methods 0.000 claims description 51
- 230000004044 response Effects 0.000 claims description 11
- 238000004321 preservation Methods 0.000 claims description 8
- 230000009471 action Effects 0.000 claims description 7
- 150000003839 salts Chemical class 0.000 claims description 4
- 238000010200 validation analysis Methods 0.000 abstract 4
- 230000007246 mechanism Effects 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 8
- 230000015654 memory Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- 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
-
- 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/3236—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 cryptographic hash functions
- H04L9/3242—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 cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- 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/3263—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 involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
使用一秘密信息(例如,秘密密钥)以及每个托管密钥专用的一公共信息(例如,证书散列或公钥)来生成安全散列,诸如基于散列的消息认证码(“HMAC”)。使用秘密密钥确保了托管密钥确认数据只有通过知晓秘密密钥才可生成,这阻止了攻击者生成适当的托管密钥确认数据。使用证书散列作为公共数据会将每个托管密钥确认数据绑定到特定证书,从而阻止攻击者从另一个托管密钥简单复制该确认数据。任何被发现是无效的托管密钥可从文件容器移除,并审计日志可被生成使得公司、个人、或其它实体能够知晓可能的安全性违背的企图。
Description
背景
诸如文字处理应用、电子表格应用、和演示应用的文档创建应用,有时提供文档加密机制,通过该机制用户可提供用于加密文档的口令以防止对包含其中的信息的未经授权的访问。有些时候,没有暗中共享该口令的其他人可能需要包含在经加密的文档中的信息。例如,当用由公司一个雇员所创建的口令加密了一个文档而该雇员离开公司或仅仅是忘记该口令时,无人能够访问此文档,而该文档可能包含诸如人力资源或财务信息的至关重要且机密的公司信息。
为了无需知晓口令而能够解密经加密的文档,可使用托管密钥机制。托管密钥机制是一种在受口令保护的文档中用于自动添加被称为托管密钥的基于证书的解密密钥的可配置机制。托管密钥机制允许口令保护的文档使用证书来解密而无需知晓口令,使得允许诸如上面所描述的实例中的文档恢复情形。
经加密的文档有时使用两步***。例如,在文档每一次被保存时,随机生成的秘密密钥被用于加密整个文档。用户提供的口令被用于导出新密钥,该新密钥用于加密该秘密密钥。经加密的秘密密钥可作为纯文本被存储在文档中。为解密该文档,密钥从用户输入的口令中导出并用于解密秘密密钥,秘密密钥然后被用于解密文档。
托管密钥机制通过使用配置好的公钥加密秘密密钥来工作,公钥可以也可以不包含在文档的证书中。经加密的秘密密钥(即,托管密钥),连同口令加密的秘密密钥一起,也被添加到文档。有私钥的任何人然后可解密该秘密密钥,从而解密该文档。由于秘密密钥在每次文档被保存时改变,文档中现存的任何托管密钥需要用新的秘密密钥来更新。托管密钥机制对设法获得对受保护的文档访问的攻击者而言不是没有弱点的。
本文所做出的本公开正是关于这些和其他考虑事项而提出的。
发明内容
在此描述了用于无效托管密钥(诸如由攻击者***文件的那些无效托管密钥)的检测的概念和技术。作为示例,并为了示出使用上述托管密钥机制的潜在的弱点,考虑一个情形,其中攻击者获得对经口令保护的文件的访问,但是该攻击者没有口令且因此不能打开文件。该攻击者能改变文件容器以包括他或她自己的托管密码。由于攻击者不知道秘密密钥,新添加的恶意托管密钥是无效的。换言之,恶意托管密钥包含不同于实际中间加密密钥的密钥。当合法用户随后打开并接着重新保存该文件时,文件容器中全部的托管密钥可用新的秘密密钥来更新。作为该更新的结果,攻击者的恶意托管密钥现在有了有效的经加密的秘密密钥(即,新秘密密钥)而不是最初包含的不正确的密钥。攻击者随后能够解密并访问此文件,从而绕开了托管密钥机制。
在此揭示的概念和技术提供了这样的机制,在文件被保存后文件中现存的托管密钥可被刷新并维护,而不允许上面的攻击情形。因为只有证书拥有者能够解密托管密钥,托管密钥不能被解密以检查有效性。在此描述的概念和技术还提供确认文件容器中的每个托管密钥而无需访问证书的私钥的机制。
根据一个方面,使用一秘密信息(例如,秘密密钥)以及每个托管密钥专用的一公共信息(例如,证书散列或公钥)来生成安全散列,诸如基于散列的消息认证码(“HMAC”)。使用秘密密钥确保了托管密钥确认数据只有通过知晓秘密密钥才可生成,这阻止了攻击者生成适当的托管密钥确认数据。使用证书散列或公钥作为公共数据会将每个托管密钥确认数据绑定到特定证书,从而阻止攻击者从另一个托管密钥简单复制该确认数据。任何被发现是无效的托管密钥可从文件容器移除,并审计日志可被生成使得公司、个人、或其它实体能够知晓可能的安全性违背的企图。如果文档由某一版本的软件(其不知晓对更新先前合法托管密钥的需求)编辑,类似的,但不是恶意的情况可能发生。在任一情况下,可检测所提供的托管密钥是否应当被更新。
根据另一方面,在被执行以保存文件的保存操作期间,确认数据被添加到文件容器中的每个托管密钥。接着,在被执行以打开文件的打开操作期间,确认数据被生成并与在保存操作期间被添加到每个托管密钥的确认数据进行比较。如果匹配存在,托管密钥被判定为有效。否则,托管密钥被判定为无效,且该托管密钥可从文件容器移除并可被记录。
应当理解,上述主题可被实现为计算机控制的装置、计算机进程、计算***或诸如计算机可读存储介质等制品。通过阅读下面的详细描述并审阅相关联的附图,这些及各种其他特征将变得显而易见。
提供本发明内容是为了以简化的形式介绍将在以下具体实施方式中进一步描述的选择的概念。本发明内容并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在将本概述用来限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任一部分中所提及的任何或所有缺点的实现。
附图说明
图1是根据说明性实施例示出用于向文档添加一个或多个托管密钥的确认数据的方法的各方面的流程图。
图2A和2B是根据说明性实施例示出用于确认一个或多个托管密钥的方法的各方面的流程图。
图3是示出能够实现本文中所呈现的实施例的各方面的计算***的说明性计算机硬件和软件体系结构的计算机体系结构图。
详细描述
以下详细描述涉及用于无效托管密钥的检测的概念和技术。作为在此描述的概念和技术的一个方面,使用一秘密信息(例如,秘密密钥)和每个托管密钥专用的一公共信息(例如,证书散列)来生成诸如HMAC的安全散列。该秘密密钥可以被存储在由中间密钥保护的加密信息中,仅仅为被授权解密该文档的人所知晓。使用秘密密钥确保了托管密钥确认数据只有通过知晓秘密密钥才可生成,这阻止了攻击者生成适当的托管密钥确认数据。使用证书散列或公钥作为公共数据会将每个托管密钥确认数据绑定到特定证书,从而阻止攻击者从另一个托管密钥简单复制该确认数据。任何被发现是无效的托管密钥可从文件容器移除,并审计日志可被生成使得公司、个人、或其它实体能够知晓可能的安全性违背的企图。
尽管在结合计算机***上的操作***和应用程序的执行而执行的程序模块的一般上下文中提出了本文描述的主题,但是本领域技术人员将认识到,其他实现可以结合其他类型的程序模块来执行。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本领域技术人员将明白,可以利用其他计算机***配置来实施本文描述的主题,这些计算机***配置包括手持式设备、多处理器***、基于微处理器的或可编程消费电子产品、小型计算机、大型计算机等等。
在以下详细描述中,参考了构成详细描述的一部分并作为说明示出了各具体实施方式或示例的附图。现在参考附图(遍布若干附图中相同的标号表示相同的元素),将提出用于无效托管密钥的检测的计算***、计算机可读存储介质和计算机实现的方法的各方面。
现在转到图1,将详细描述用于向一个或多个托管密钥的文件添加确认数据的方法100的各方面。应该理解,不一定按任何特定次序来呈现此处公开的方法的操作,并且构想了用替换次序来执行部分或全部操作是可能的。为了易于描述和说明,按所示次序来呈现各操作。可以添加、省略和/或同时执行操作,而不脱离所附权利要求书的范围。
还应该理解,所示方法可以在任何时候结束并且不必完整地执行。这些方法的部分或全部操作和/或基本等效的操作可通过执行计算机存储介质上所包括的计算机可读指令来执行,如在下文中所定义的。如在说明书和权利要求书中使用的术语“计算机可读指令”及其变型,在本文是用来广泛地包括例程、应用、应用模块、程序模块、程序、组件、数据结构、算法等等。计算机可读指令可以在各种***配置上实现,包括单处理器或多处理器***、小型计算机、大型计算机、个人计算机、手持式计算设备、基于处理器的可编程消费电子产品、其组合等等。
因此,应该理解,此处所述的逻辑操作被实现为(1)一系列计算机实现的动作或运行于计算***上的程序模块,和/或(2)计算***内的互连的机器逻辑电路或电路模块。该实现是取决于计算***的性能及其他要求的选择问题。因此,此处描述的逻辑操作被不同地称为状态、操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以用软件、固件、专用数字逻辑及其任何组合来实现。
该方法100被描述为在被执行来保存文件的保存操作期间执行。本文以下描述的各方面不必对某应用、应用类型、文件,或文件类型是特定的。在一些实施例中,应用被配置成打开第一状态的文件,接收诸如编辑或其它交互的用户输入,并保存不同于第一状态的第二状态的文件。在其它实施例中,文件被保存,但是不对文件数据作出修改。在一些是实施例中,文件随对元数据、格式参数,或文件内包含的不是文件数据的其它数据的改变而被保存。在一些实施例中,应用被配置成存储文件,但是可能也可能不具有执行除了打开和保存以外的操作的能力。例如,在一些实现中,应用可能不被配置成以任何方式编辑文件。在一些实施例中,保存操作包括复制和粘贴操作,其中第一文件被复制并粘贴从而创建并保存新文件。
在一些实施例中,文件是文档,诸如文字处理文档、电子表格文档、演示文档、绘图文档,或协作文档。在一些实施例中,用于创建和/或查看这样的文档的应用分别是文字处理应用(诸如可以从华盛顿州雷蒙德市的微软公司获得的MICROSOFT WORD)、电子表格应用(诸如可以从华盛顿州雷蒙德市的微软公司获得的MICROSOFT EXCEL)、演示应用(诸如可以从华盛顿州雷蒙德市的微软公司获得的MICROSOFT POWERPOINT)、绘图应用(诸如可以从华盛顿州雷蒙德市的微软公司获得的MICROSOFT VISIO),或协作应用(诸如可以从华盛顿州雷蒙德市的微软公司获得的MICROSOFT SHAREPOINT)。在一些实施例中,应用是只读应用,配置成允许用户查看但不编辑文档。在其它实施例中,应用是读/写应用,配置成允许用户查看并编辑文档。该应用可以是本地地安装在计算机***上的独立应用、安装在可由计算机***远程地访问的远程***上的远程应用,或web应用。可以构想其它文档类型和相关联的应用。
方法100也针对包含一个或多个托管密钥的文件来描述。替换地或另外地,包含文件的文件容器可包含一个或多个托管密钥。一些托管密钥可被存储在文件容器中而其它可被存储在文件本身中。文件容器是容器或包装元文件格式,其规范描述了不同数据元素和元数据如何共存在文件中。
方法100在操作102开始,其中接收到保存文件的指令。保存文件的指令可通过由配置成保存文件的应用呈现的或该应用的图形用户界面(“GUI”)或其它用户界面来接收。GUI可被表示为菜单或菜单的一部分,如图标、如功能区界面或功能区界面的部分、作为弹出GUI、它们的一些组合等等。保存文件的指令可经由接口设备(诸如键盘、键区、鼠标、游戏垫、遥控设备),或经由任何通过一个或多个按钮、触摸屏、触摸垫、麦克风的其它接口设备,或提供用户可用来指令应用保存文件的机制的其它人机接口来接收。可构想这些接口设备中的一个或多个上专用的或编程了的物理保存按钮。
方法100余下的操作在由操作102中所接收的保存文件的指令所触发的保存操作期间执行。从操作102,方法100前进到操作104,其中使用秘密密钥生成安全散列。在一些实施例中,秘密密钥是随机或伪随机生成的,并被用于加密文件。在一些实施例中,秘密密钥使用用户提供的口令来加密。在一些实施例中,经加密的秘密密钥以纯文本被存储在文件中。可替换地,经加密的秘密密钥可以某其它格式被存储在文件中。
在一些实施例中,在操作104中生成的安全散列是散列消息认证码,或被称为散列消息认证校验和(“HMAC”)。在一些实施例中,HMAC是使用作为一秘密信息的秘密密钥和专用于HMAC要被生成的特定托管密钥的某公共信息(诸如证书数据或公钥)来生成的。在替换的实施例中,替代HMAC,秘密密钥的常规散列和证书数据(或公钥)被使用。尽管各实施例中利用常规散列所得的散列可能密码性较弱,然而,常规散列的使用可在特定情形中找到应用。
如果在每个保存操作期间或为其它熵目的不被改变,在一些实施例中,正如该情况下,每个托管密钥的随机盐值被生成并被包括在散列或HMAC中。盐值随后和托管密钥数据的其余部分一起被存储在文件容器中。
从操作104,方法100前进到操作106,其中使用操作104中生成的安全散列来对证书数据进行散列,以生成托管密钥的确认数据。可替换地,公钥可被使用来代替证书数据。方法100接着前进到操作108,其中确认数据、证书数据,和经加密的秘密密钥被写到文件的文件容器中。可替换地,该数据的全部或部分直接被写入文件中。方法100接着前进到操作110,其中文件容器被保存。方法100从操作110行进至操作112,在此处方法100结束。
转到图2A和2B,用于确认一个或多个托管密钥的方法200的各方面将被详细描述。方法200被描述为在打开操作期间执行,所述打开操作用于打开在参考图1所示的方法100描述的保存操作执行期间被保存的文件。文本以下描述的各方面也不必对某应用、应用类型、文件,或文件类型是特定的。在一些实施例中,应用被配置成打开文件并允许文件的编辑。在一些实施例中,应用被配置成打开文件,但是可能也可能不具有执行除了打开以外的操作的能力。例如,在一些实现中,应用可能不被配置成以任何方式编辑文件。在一些实施例中,根据方法200的用于打开文件的应用和根据上述方法100的用于保存文件的应用是同一个。在其它实施例中,这些应用不同。用于保存文件的计算机***或设备可以是与用于打开该文件的计算机***或设备相同或不同的。
首先转到图2A,方法200开始并前进到操作202,其中接收到打开文件的指令。响应于打开文件的指令,请求用于秘密密钥的解密的用户输入。在一些实施例中,对用户输入的请求是呈现在提示用户提供用户输入的应用内的通知,尽管请求可以采取替换形式。在一些实施例中所请求的用户输入是认证凭证,例如但不限于,口令、通行码、个人识别号、安全问题/答案、通行短语、语音通行短语、其它安全证书,及其组合等等。在一些实施例中,所请求的用户输入包括对来自两个或多个以下类别的多因素认证凭证的请求:一个人拥有什么、一个人是什么、一个人知晓什么、一个人已经做了什么,和一个人位于什么地方。
打开文件的指令可通过由配置成打开文件的应用呈现的或该应用的GUI或其它用户界面来接收。GUI可被表示为菜单或菜单的一部分,如图标、如功能区界面或功能区界面的部分、作为弹出GUI或弹出GUI的部分、它们的一些组合等等。可替换地,打开文件的指令可经由接口设备(诸如键盘、键区、鼠标、游戏垫、遥控设备),或经由任何通过一个或多个按钮、触摸屏、触摸垫、麦克风的其它接口设备,或提供用户可用来指令应用打开文件的机制的其它人机接口来接收。可构想这些接口设备中的一个或多个上专用的或编程了的物理打开按钮。
从操作202,方法200前进到操作204,其中响应于操作202中对用户输入的请求接收到用户输入。方法200接着前进到操作206,其中作出关于在操作204中接收到的用户输入是否有效的判定。该判定可基于将在操作204中接收的用户输入与所期望的用户输入(诸如所期望的口令或其它所期望的认证凭证)进行比较来作出。所期望的用户输入可被存储在应用正在其上执行的同一个计算机或设备上,或可被远程地存储在诸如配置成确认在操作204接收的用户输入的认证服务器上。
如果在操作206,判定用户输入不有效,方法200前进到操作208,其中指示用户输入无效的消息被呈现。可替换地,指示用户输入是无效的消息不被呈现。在一些实施例中,一旦作出用户输入不是有效的判定或在其后一时间,应用关闭。在任何情况中,方法200接着前进到操作210,其中方法200结束。
如果,在操作206,判定了用户输入是有效的,方法200前进到操作212,其中秘密密钥被解密。从操作212,方法200前进到操作214,其中使用秘密密钥生成安全散列。在一些实施例中,操作214中生成的安全散列是HMAC。在一些实施例中,HMAC是使用作为一秘密信息的秘密密钥和专用于HMAC要被生成的特定托管密钥的某公共信息(诸如证书数据或公钥)来生成的。在替换的实施例中,替代HMAC,秘密密钥的常规散列和证书数据(或公钥)被使用。尽管各实施例中利用常规散列所得的散列可能密码性较弱,然而,常规散列的使用可在特定情形中找到应用。
从操作214,方法200前进到操作216,其中使用操作214中生成的安全散列来对证书数据进行散列,以生成托管密钥的确认数据。可替换地,公钥可被使用代替证书数据。方法200接着前进到图2B,具体地,操作218。在操作218,操作216生成确认数据与在图1的操作110中的文件容器中保存的确认数据进行比较。从操作218,方法200前进到操作220,其中作出关于在两组确认数据之间是否存在匹配的判定。
如果,在操作220,判定在确认数据组之间不存在匹配,方法200前进到操作222,其中作出托管密钥无效的判定并且将该无效托管密钥从文件移除。方法200接着前进到操作224,其中无效托管密钥被记录。在一些实施例中,生成***审计,使得对文件的安全性感兴趣的公司或其它实体可知晓可能的安全性违背的企图。可替换地,无效托管密钥不被记录。在任何情况中,方法200接着前进回到图2A,且具体地,操作210,其中方法200结束。
在另一个实施例中(未示出),在操作224,方法200前进到操作228,其中文件被打开。在这个实施例中,指示文件可能已经被篡改的警告可被呈现给用户。方法200接着可前进回到图2A,且具体地,操作210,其中方法200结束。
如果,在操作220,判定了在确认数据组之间存在匹配,方法200前进到操作226,其中判定了托管密钥是有效的。方法200接着前进到操作228,其中文件被打开。从操作228,方法220前进回到图2A,且具体地,操作210,其中方法200结束。
尽管托管密钥在图2中被描述为在打开操作期间确认,可以理解托管密钥可另选地在保存操作期间作为后台任务或响应于特定预定义输入来被确认。
图3示出能够执行本文所描述的用于无效托管密钥的检测的说明性计算机体系结构300。由此,图3所示的计算机体系结构300示出服务器计算机、移动电话、PDA、智能电话、台式计算机、上网本计算机、平板计算机、和/或膝上型计算机的体系结构。计算机体系结构300可用于执行本文所呈现的软件组件的任何方面。
图3所示的计算机体系结构300包括中央处理单元302(“CPU”)、包括随机存取存储器306(“RAM”)和只读存储器(“ROM”)308的***存储器304、以及将存储器304耦合至CPU302的***总线310。基本输入/输出***被存储在ROM308中,该***包含帮助诸如在启动期间计算机体系结构300中的元件之间传递信息的基本例程。计算机体系结构300还包括用于存储操作***314、应用316和数据318的大容量存储设备312。数据318包括诸如上面所描述的托管密钥、秘密密钥、证书、安全散列、确认数据和文件数据之类的一个或多个托管密钥320、一个或多个秘密密钥322、一个或多个证书或公钥324,一个或多个安全散列326、确认数据328,和文件数据330。
CPU302被配制成执行操作***314。操作***314是用于控制计算机体系结构300的操作的应用程序。应用316是被配置成在操作***314之上执行以提供本文所述的各种功能的可执行程序。例如,应用316可提供上面参考图1和2A/2B分别描述的关于确认托管密钥的保存操作和打开操作。在一些实施例中,应用316被配置成打开第一状态的文件,接收诸如编辑或其它交互的用户输入,并保存不同于第一状态的第二状态的文件。在其它实施例中,应用316被配置成保存文件,即使没有对文件数据330作出改变。在一些实施例中,文件随对元数据、格式参数,或文件内包含的不是可见数据的其它数据的改变而被保存。在一些实施例中,应用316被配置成保存文件,但是可能也可能不具有执行除了打开和保存以外的操作的能力。例如,在一些实现中,应用316可能不被配置成以任何方式编辑文件。
在一些实施例中,应用316是文字处理应用(诸如可以从华盛顿州雷蒙德市的微软公司获得的MICROSOFT WORD)、电子表格应用(诸如可以从华盛顿州雷蒙德市的微软公司获得的MICROSOFT EXCEL)、演示应用(诸如可以从华盛顿州雷蒙德市的微软公司获得的MICROSOFT POWERPOINT)、绘图应用(诸如可以从华盛顿州雷蒙德市的微软公司获得的MICROSOFT VISIO),或协作应用(诸如可以从华盛顿州雷蒙德市的微软公司获得的MICROSOFTSHAREPOINT)。替换地或另外地,应用316是一个或多个前述文档创建应用的基于web的版本,并且在这些实施例中,计算机体系结构300用作被配置成将应用316作为基于web的应用提供的服务器计算机的体系结构。
大容量存储设备312通过连接至总线310的大容量存储控制器(未示出)连接至CPU302。大容量存储设备312及其相关联的计算机可读介质为计算机体系结构300提供非易失性存储。虽然对此处包含的计算机可读介质的描述引用了诸如硬盘或CD-ROM驱动器之类的大容量存储设备,但是本领域的技术人员应该明白,计算机可读介质可以是可由计算机体系结构300访问的任何可用计算机存储介质或通信介质。
通信介质包括诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,且包含任何传递介质。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被更改或设定的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外、和其它无线介质。上述的任意组合也应包括在计算机可读介质的范围之内。
作为示例而非限制,计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。例如,计算机介质包括但不限于,RAM、ROM、EPROM、EEPROM、闪存或其他固态存储器技术、CD-ROM、数字多功能盘(“DVD”)、HD-DVD、蓝光(BLU-RAY)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或能用于存储所需信息且可以由计算机体系结构300访问的任何其他介质。为了声明的目的,短语计算机存储介质摂及其变型本质上不包括波、信号和/或其他瞬态和/或无形通信介质。
根据各个实施例,计算机体系结构300可使用通过网络332到远程计算机的逻辑连接在联网环境中操作。网络332可以是互联网、因特网、内联网或外联网。可以通过一个或多个有线或无线接入网络(未示出)来提供对网络332的接入,如本领域的技术人员将理解的。
计算机体系结构300可以通过连接至总线310的网络接口单元314来连接到网络332。应当理解,网络接口单元314还可用于连接到其他类型的网络和远程计算机***。计算机体系结构300也可包括输入/输出控制器316,用于接收和处理来自多个其他设备,包括键盘、鼠标、电子指示笔、或其他输入设备(未在图3中示出)的输入。类似地,输入/输出控制器316可提供到显示屏、打印机、或者其他类型的输出设备(在图3中也未示出)的输出。
应当理解,本文所描述的软件组件在被加载到CPU302中并被执行时可以将CPU302和总体计算机体系结构300从通用计算***变换成为方便本文所提出的功能而定制的专用计算***。CPU302可以用任意数量的晶体管或其他分立的电路元件(它们可以分别地或共同地呈现任意数量的状态)构建。更具体地,CPU302可以响应于包含在本文所公开的软件模块中的可执行指令来作为有限状态机进行操作。这些计算机可执行指令可以通过指定CPU302如何在各状态之间转换来变换CPU302,由此变换了构成CPU302的晶体管或其它分立硬件元件。
对本文所提出的软件模块的编码也可变换本文所提出的计算机可读介质的物理结构。在本说明书的不同实现中,物理结构的具体转换可取决于各种因素。这样的因素的示例可以包括,但不仅限于:用于实现计算机可读介质的技术、计算机可读介质被表征为主存储器还是辅存储器等等。例如,如果计算机可读介质被实现为基于半导体的存储器,则本文所公开的软件可以通过变换半导体存储器的物理状态而在计算机可读介质上编码。例如,软件可以变换构成半导体存储器的晶体管、电容器或其它分立电路元件的状态。软件还可变换这些组件的物理状态以在其上存储数据。
作为另一示例,本文所公开的计算机可读介质可以使用磁或光技术来实现。在这些实现中,本文所提出的软件可以在磁或光介质中编码了软件时变换所述磁或光介质的物理状态。这些转换可包括更改给定磁性介质内的特定位置的磁性特征。这些变换还可以包括改变给定光学介质内的特定位置的物理特征或特性,以改变这些位置的光学特性。在没有偏离本说明书的范围和精神的情况下,物理介质的其他转换也是可以的,前面提供的示例只是为了便于此讨论。
鉴于以上内容,应当理解,在计算机体系结构300中发生许多类型的物理变换以便存储并执行本文所提出的软件组件。还应当理解,计算机体系结构300可包括其它类型的计算设备,包括手持式计算机、嵌入式计算机***、个人数字助理、以及本领域技术人员已知的其它类型的计算设备。还可构想计算机体系结构300可以不包括图3所示的全部组件、可包括在图3中未明确地示出的其他组件、或者可利用完全不同于图3所示的体系结构。
基于上述内容,应当理解,本文已经公开了用于无效第三方密钥的检测的技术。虽然用计算机结构特征、方法和变换动作、特定计算机器、以及计算机可读介质专用的语言描述了本文中所描述的主题,但是应当理解,所附权利要求书中所定义的本发明不必限于本文中所描述的具体特征、动作、或介质。相反,这些具体特征、动作以及介质是作为实现权利要求的示例形式而公开的。
以上所述的主题仅作为说明提供,并且不应被解释为限制。可对本文中所描述的主题作出各种修改和改变,而不必遵循示出和描述的示例实施例和应用且不背离所附权利要求书中所阐述的本发明的真正精神和范围。
Claims (15)
1.一种用于生成托管密钥确认数据的计算机实现的方法,所述计算机实现的方法包括执行计算机实现的操作,所述操作用于:
使用计算机,接收保存文件的指令;
使用所述计算机,使用秘密密钥生成安全散列,所述秘密密钥被用于加密所述文件;
使用所述计算机,使用所述安全散列对公钥进行散列,以生成用于托管密钥的确认数据,其中所述确认数据被生成以用作确认操作的一部分,以在对所述文件执行后面的操作期间确认所述托管密钥;以及
使用所述计算机,保存所述确认数据、所述公钥,和所述秘密密钥。
2.如权利要求1所述的计算机实现的方法,其特征在于,所述安全散列是基于散列的消息认证码(“HMAC”)。
3.如权利要求1所述的计算机实现的方法,其特征在于,进一步包括:
接收打开所述文件的指令;
响应于接收到打开所述文件的指令,请求用于秘密密钥的解密的用户输入;
接收用户输入;
判定所述用户输入是否有效;
响应于判定所述用户输入有效;
解密所述秘密密钥;
使用所述秘密密钥来生成进一步的安全散列;
使用所述进一步的安全散列来对所述公钥进行散列,以生成所述托管密钥的进一步的确认数据,
将所述确认数据与所述进一步的确认数据进行比较,
如果所述确认数据与所述进一步的确认数据匹配,判定所述托管密钥是有效的并打开所述文件,以及
如果所述确认数据与所述进一步的确认数据不匹配,判定所述托管密钥不是有效的并将无效的托管密钥从所述文件移除。
4.如权利要求1所述的计算机实现的方法,其特征在于,进一步包括:
生成所述托管密钥的盐值;以及
将所述盐值添加到所述安全散列。
5.如权利要求1所述的计算机实现的方法,其特征在于,保存所述确认数据、所述公钥和所述秘密密钥包括:将所述确认数据、所述公钥和所述秘密密钥保存到所述文件。
6.如权利要求1所述的计算机实现的方法,其特征在于,保存所述确认数据、所述公钥和所述秘密密钥包括:将所述确认数据、所述公钥和所述秘密密钥保存到包含所述文件的文件容器。
7.一种用于确认托管密钥的计算机实现的方法,所述计算机实现的方法包括执行计算机实现的操作,所述操作用于:
使用计算机,接收对文件执行操作的指令,所述文件具有与之相关联的托管密钥的确认数据,所述确认数据已通过使用安全散列对证书数据进行散列而生成,所述安全散列是在对所述文件执行的保存操作期间使用秘密密钥来生成的;
响应于接收对所述文件执行所述操作的指令,使用所述计算机,请求对所述秘密密钥的解密的用户输入;
使用所述计算机,接收用户请求;
使用所述计算机,判定所述用户输入是否有效;
响应于判定所述用户输入有效,
使用所述计算机,解密所述秘密密钥,
使用所述计算机,使用所述秘密密钥来生成进一步的安全散列;
使用所述计算机,使用所述进一步的安全散列来对所述证书数据进行散列,以生成所述托管密钥的进一步的确认数据,
使用所述计算机,将所述确认数据与所述进一步的确认数据进行比较,
如果所述确认数据与所述进一步的确认数据匹配,使用所述计算机,判定所述托管密钥是有效的并对所述文件执行所述操作,以及
如果所述确认数据与所述进一步的确认数据不匹配,使用所述计算机,判定所述托管密钥不是有效的并移除无效的托管密钥与所述文件的关联。
8.如权利要求7所述的计算机实现的方法,其特征在于,所述安全散列和所述进一步的安全散列是基于散列的消息认证码(“HMAC”)。
9.如权利要求7所述的计算机实现的方法,其特征在于,所述操作是打开操作、重新保存操作,或后台任务。
10.如权利要求7所述的计算机实现的方法,其特征在于,还包括记录所述无效托管密钥。
11.如权利要求10所述的计算机实现的方法,其特征在于,记录所述无效托管密钥包括生成***审计。
12.如权利要求7所述的计算机实现的方法,其特征在于,在接收对所述文件执行所述操作的指令之前,所述文件被保存为包括所述确认数据、所述托管密钥、所述证书数据,和所述秘密密钥。
13.如权利要求7所述的计算机实现的方法,其特征在于,在接收对所述文件执行所述操作的指令之前,所述文件被保存在文件容器中,所述文件容器包括所述确认数据、所述托管密钥、所述证书数据,和所述秘密密钥。
14.一种其上存储有计算机可读指令的计算机存储介质,所述指令在由计算机执行时致使所述计算机:
接收打开文件的指令,所述文件具有与之相关联的托管密钥的确认数据,所述确认数据已通过使用基于散列的消息认证码(“HMAC”)对证书数据进行散列而生成,所述基于散列的消息认证码是对所述文件执行的保存操作期间使用秘密密钥来生成的;
响应于接收到打开所述文件的指令,请求用于所述秘密密钥的解密的认证凭证;
接收认证凭证;
判定所述认证凭证是否有效;
响应于判定所述认证凭证有效,
解密所述秘密密钥;
使用所述秘密密钥生成进一步的HMAC,
使用所述HMAC来对所述证书数据进行散列,以生成所述托管密钥的进一步的确认数据,
将所述确认数据与所述进一步的确认数据进行比较,
如果所述确认数据与所述进一步的确认数据匹配,判定所述托管密钥是有效的并响应于打开所述文件的指令打开所述文件,以及
如果所述确认数据与所述进一步的确认数据不匹配,判定所述托管密钥不是有效的,并移除无效的托管密钥与所述文件的关联,并记录所述无效的托管密钥。
15.如权利要求14所述的计算机存储介质,其特征在于,其上还存储有在由所述计算机执行时使所述计算机执行以下动作的计算机可读指令:
在接收打开所述文件的指令之前,接收保存所述文件的指令;
使用所述秘密密钥来生成所述HMAC,所述秘密密钥被用于加密所述文件;
使用所述HMAC来对所述证书数据进行散列,以生成所述托管密钥的确认数据;以及
将所述确认数据、所述证书数据,和所述秘密密钥写入并保存到所述文件或包含所述文件的文件容器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/350,360 US8667284B2 (en) | 2012-01-13 | 2012-01-13 | Detection of invalid escrow keys |
US13/350,360 | 2012-01-13 | ||
PCT/US2013/020913 WO2013106492A1 (en) | 2012-01-13 | 2013-01-10 | Detection of invalid escrow keys |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104067286A true CN104067286A (zh) | 2014-09-24 |
CN104067286B CN104067286B (zh) | 2017-03-29 |
Family
ID=48780839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380005350.0A Active CN104067286B (zh) | 2012-01-13 | 2013-01-10 | 无效托管密钥的检测 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8667284B2 (zh) |
EP (1) | EP2803011B1 (zh) |
JP (1) | JP6046745B2 (zh) |
KR (1) | KR102133606B1 (zh) |
CN (1) | CN104067286B (zh) |
WO (1) | WO2013106492A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9087205B2 (en) * | 2013-10-11 | 2015-07-21 | Sap Se | Shared encrypted storage |
US9639710B2 (en) * | 2013-12-23 | 2017-05-02 | Symantec Corporation | Device-based PIN authentication process to protect encrypted data |
DE102014213454A1 (de) * | 2014-07-10 | 2016-01-14 | Siemens Aktiengesellschaft | Verfahren und System zur Erkennung einer Manipulation von Datensätzen |
CN106936794B (zh) * | 2015-12-30 | 2021-01-08 | 阿里巴巴集团控股有限公司 | 一种用于更改秘钥的方法、装置及设置秘钥的方法、装置 |
US10509574B2 (en) * | 2016-02-08 | 2019-12-17 | Microsoft Technology Licensing, Llc | Container credentialing by host |
CN107122139A (zh) * | 2017-04-28 | 2017-09-01 | 深圳天珑无线科技有限公司 | 数据写入方法及装置、数据读取方法及装置 |
CN107492032A (zh) * | 2017-09-18 | 2017-12-19 | 发贵科技(贵州)有限公司 | 一种企业财务审计报告管理***及其数据库平台 |
US11025642B1 (en) * | 2018-03-23 | 2021-06-01 | Amazon Technologies, Inc. | Electronic message authentication |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1729526A (zh) * | 2000-12-28 | 2006-02-01 | 英特尔公司 | 通过在媒体的剪辑区存储验证数据而验证媒体密钥块的完整性 |
EP1641176A1 (en) * | 2004-09-27 | 2006-03-29 | Axalto SA | Escrowing services oriented encryption and decryption methods |
US20110252243A1 (en) * | 2010-04-07 | 2011-10-13 | Apple Inc. | System and method for content protection based on a combination of a user pin and a device specific identifier |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5633929A (en) * | 1995-09-15 | 1997-05-27 | Rsa Data Security, Inc | Cryptographic key escrow system having reduced vulnerability to harvesting attacks |
US6249866B1 (en) * | 1997-09-16 | 2001-06-19 | Microsoft Corporation | Encrypting file system and method |
JP2000267565A (ja) * | 1999-03-12 | 2000-09-29 | Mitsubishi Electric Corp | 暗号化復号化装置及びプログラムを記録したコンピュータ読み取り可能な記録媒体 |
US6931549B1 (en) | 2000-05-25 | 2005-08-16 | Stamps.Com | Method and apparatus for secure data storage and retrieval |
US20030204724A1 (en) * | 2002-04-30 | 2003-10-30 | Microsoft Corporation | Methods for remotely changing a communications password |
US7272231B2 (en) | 2003-01-27 | 2007-09-18 | International Business Machines Corporation | Encrypting data for access by multiple users |
GB2419762A (en) | 2004-11-01 | 2006-05-03 | Sony Uk Ltd | Method of generating protected media signals by replacing data bits with hash values |
JP4489712B2 (ja) * | 2006-02-24 | 2010-06-23 | 大日本印刷株式会社 | 電子フォーム処理方法 |
US20080005024A1 (en) | 2006-05-17 | 2008-01-03 | Carter Kirkwood | Document authentication system |
WO2008128212A1 (en) * | 2007-04-12 | 2008-10-23 | Ncipher Corporation Ltd. | Method and system for identifying and managing encryption keys |
JP4843587B2 (ja) * | 2007-04-24 | 2011-12-21 | 日本電信電話株式会社 | 情報記録媒体のセキュリティ方法、情報処理装置、プログラム及び記録媒体 |
US20100005318A1 (en) * | 2008-07-02 | 2010-01-07 | Akram Hosain | Process for securing data in a storage unit |
US8315395B2 (en) | 2008-12-10 | 2012-11-20 | Oracle America, Inc. | Nearly-stateless key escrow service |
US20110047371A1 (en) | 2009-08-18 | 2011-02-24 | Benjamin William Timby | System and method for secure data sharing |
US8539234B2 (en) | 2010-03-30 | 2013-09-17 | Salesforce.Com, Inc. | Secure client-side communication between multiple domains |
US8510552B2 (en) | 2010-04-07 | 2013-08-13 | Apple Inc. | System and method for file-level data protection |
US8589680B2 (en) | 2010-04-07 | 2013-11-19 | Apple Inc. | System and method for synchronizing encrypted data on a device having file-level content protection |
-
2012
- 2012-01-13 US US13/350,360 patent/US8667284B2/en active Active
-
2013
- 2013-01-10 WO PCT/US2013/020913 patent/WO2013106492A1/en active Application Filing
- 2013-01-10 KR KR1020147019250A patent/KR102133606B1/ko active IP Right Grant
- 2013-01-10 JP JP2014552276A patent/JP6046745B2/ja active Active
- 2013-01-10 CN CN201380005350.0A patent/CN104067286B/zh active Active
- 2013-01-10 EP EP13735912.1A patent/EP2803011B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1729526A (zh) * | 2000-12-28 | 2006-02-01 | 英特尔公司 | 通过在媒体的剪辑区存储验证数据而验证媒体密钥块的完整性 |
EP1641176A1 (en) * | 2004-09-27 | 2006-03-29 | Axalto SA | Escrowing services oriented encryption and decryption methods |
US20110252243A1 (en) * | 2010-04-07 | 2011-10-13 | Apple Inc. | System and method for content protection based on a combination of a user pin and a device specific identifier |
Also Published As
Publication number | Publication date |
---|---|
KR20140109952A (ko) | 2014-09-16 |
EP2803011B1 (en) | 2018-10-10 |
US8667284B2 (en) | 2014-03-04 |
JP2015505221A (ja) | 2015-02-16 |
US20130185557A1 (en) | 2013-07-18 |
EP2803011A4 (en) | 2015-08-26 |
CN104067286B (zh) | 2017-03-29 |
WO2013106492A1 (en) | 2013-07-18 |
KR102133606B1 (ko) | 2020-07-13 |
JP6046745B2 (ja) | 2016-12-21 |
EP2803011A1 (en) | 2014-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104067286A (zh) | 无效托管密钥的检测 | |
US9621343B1 (en) | Systems and methods for providing information security using context-based keys | |
CN103455764B (zh) | 一种基于文件分割合并技术的文件加密以及解密*** | |
CN101689989B (zh) | 用于创建和确认密码保护文档的方法和装置 | |
CN111310208A (zh) | 数据处理方法、***、平台、设备及机器可读介质 | |
CN109412812B (zh) | 数据安全处理***、方法、装置和存储介质 | |
CN101743714B (zh) | 更新和确认密码保护文档 | |
CN101953111A (zh) | 用于保密数据的***和方法 | |
CN102073826A (zh) | 利用轻量级数字水印添加组件的数字版权管理的***和方法 | |
CN102334124A (zh) | 文件的保护方法及装置 | |
KR20140043459A (ko) | 디지털 자산들의 값을 결정하고 사용하기 위한 방법 및 장치 | |
EP4285566A1 (en) | Containment of sensitive data within a communication platform | |
EP2709333A1 (en) | Method and devices for data leak protection | |
CN113792307A (zh) | ***管理方法、装置及电子设备 | |
CN111159661A (zh) | 一种防止反编译方法、装置、电子设备及存储介质 | |
US20140089025A1 (en) | Authenticating a response to a change request | |
CN116686316A (zh) | 加密文件控制 | |
CN101833618A (zh) | 一种基于内容的加密、解密方法及安全保护*** | |
TWI444849B (zh) | 透過伺服器驗證並授權解密以監控個資檔案之系統及方法 | |
Mittal | Attribute based encryption for secure data access in cloud | |
CN111639353A (zh) | 一种数据管理方法、装置、嵌入式设备及存储介质 | |
GB2540138A (en) | Method of exchanging digital content | |
Dhanasekaran et al. | Payment security mechanism of intelligent mobile terminal | |
van Cleeff | Future consumer mobile phone security: A case study using the data-centric security model | |
US9779255B2 (en) | Split storage and communication of documents |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150805 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150805 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |