会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 区块链账本 / 可跟踪密钥区块链账本

可跟踪密钥区块链账本

申请号 CN201880084357.9 申请日 2018-12-14 公开(公告)号 CN111512591A 公开(公告)日 2020-08-07
申请人 电子湾有限公司; 发明人 迈克尔·J·T·陈; 肖恩·R·恩布里; 德里克·A·沙莫罗; 阿努杰·考尔; 萨希·查达; 尼基尔·菲尔凯;
摘要 示出了使用可跟踪密钥区块链账本进行密钥管理的技术,该密钥管理涉及:在密钥源处创建加密密钥,生成与该加密密钥相对应的密钥区块链账本的创世区块,以及安全地修改该创始区块以包括描述密钥源的元数据。该技术还涉及:执行关于加密密钥的第一密钥交易,生成与关于加密密钥的第一密钥交易相对应的第一交易区块,以及将第一交易区块添加到密钥区块链账本中,以及安全地修改第一交易区块以包括描述关于加密密钥的第一密钥交易的元数据。
权利要求

1.一种计算机实现的密钥管理方法,包括:在密钥源处创建加密密钥;

生成与所述加密密钥相对应的密钥区块链账本的创世区块;

安全地修改所述创世区块以包括描述所述密钥源的元数据;

执行关于所述加密密钥的第一密钥交易;

生成与关于所述加密密钥的所述第一密钥交易相对应的第一交易区块,并将所述第一交易区块添加到所述密钥区块链账本中;以及安全地修改所述第一交易区块以包括描述关于所述加密密钥的所述第一密钥交易的元数据。

2.根据权利要求1所述的密钥管理方法,其中,安全地修改所述第一交易区块包括:使用区块链修订和修改功能中的至少一项来修改所述第一交易区块,以包括描述关于所述加密密钥的所述第一密钥交易的元数据。

3.根据权利要求1所述的密钥管理方法,所述方法包括:检测对与所述加密密钥相关联的数据或系统的攻击;

使用所述密钥区块链账本中的交易区块的元数据来跟踪所述加密密钥到攻击点;

确定与所述攻击点相对应的交易区块;以及使用来自与所述攻击点相对应的交易区块的元数据来生成指示所述攻击点的警报。

4.根据权利要求1所述的密钥管理方法,其中:关于所述加密密钥的所述第一密钥交易包括轮换所述加密密钥;以及描述所述第一密钥交易的元数据包括描述所述加密密钥的轮换的元数据。

5.根据权利要求1所述的密钥管理方法,其中,描述所述第一密钥交易的元数据包括以下一项或多项:被应用了所述加密密钥的数据、对所述加密密钥执行的操作、利用所述加密密钥的库、对所述加密密钥执行操作的机器或所述加密密钥所在的机器。

6.根据权利要求1所述的密钥管理方法,所述方法包括:执行关于所述加密密钥的第二密钥交易;

生成与关于所述加密密钥的所述第二密钥交易相对应的第二交易区块,并将所述第二交易区块添加到所述密钥区块链账本中;以及安全地修改所述第二交易区块以包括描述关于所述加密密钥的所述第二密钥交易的元数据。

7.根据权利要求1所述的密钥管理方法,所述方法包括:向多个节点广播所述第一交易区块;

在所述多个节点中的一个节点中计算所述第一交易区块的验证解;以及向所述多个节点中的至少一个其它节点广播所述第一交易区块的所述验证解,以验证所述密钥区块链账本上的所述交易区块。

8.根据权利要求1所述的密钥管理方法,所述方法包括:在授权的中央控制节点中验证所述第一密钥交易区块;以及向多个节点广播对所述第一交易区块的验证。

9.一种用于密钥管理的系统,所述系统包括:一个或多个处理器;以及

与所述一个或多个处理器通信的一个或多个存储器设备,所述存储器设备具有存储在其上的计算机可读指令,所述计算机可读指令当由所述处理器执行时使所述处理器:在密钥源处创建加密密钥;

生成与所述加密密钥相对应的密钥区块链账本的创世区块;

安全地修改所述创世区块以包括描述所述密钥源的元数据;

执行关于所述加密密钥的第一密钥交易;

生成与关于所述加密密钥的所述第一密钥交易相对应的第一交易区块,并将所述第一交易区块添加到所述密钥区块链账本中;以及安全地修改所述第一交易区块以包括描述关于所述加密密钥的所述第一密钥交易的元数据。

10.根据权利要求9所述的密钥管理系统,其中,所述系统通过以下方式来安全地修改所述第一交易区块:使用区块链修订和修改功能中的至少一项修改所述第一交易区块,以包括描述关于所述加密密钥的所述第一密钥交易的元数据。

11.根据权利要求9所述的密钥管理系统,所述系统被配置为进行操作以:检测对与所述加密密钥相关联的数据或系统的攻击;

使用所述密钥区块链账本中的交易区块的元数据来跟踪所述加密密钥到攻击点;

确定与所述攻击点相对应的交易区块;以及使用来自与所述攻击点相对应的交易区块的元数据来生成指示所述攻击点的警报。

12.根据权利要求9所述的密钥管理系统,其中:关于所述加密密钥的所述第一密钥交易包括轮换所述加密密钥;以及描述所述第一密钥交易的元数据包括描述所述加密密钥的轮换的元数据。

13.根据权利要求9所述的密钥管理系统,其中,描述所述第一密钥交易的元数据包括以下一项或多项:被应用了所述加密密钥的数据、对所述加密密钥执行的操作、利用所述加密密钥的库、对所述加密密钥执行操作的机器或所述加密密钥所在的机器。

14.根据权利要求9所述的密钥管理系统,其中,所述系统被配置为进行操作以:执行关于所述加密密钥的第二密钥交易;

生成与关于所述加密密钥的所述第二密钥交易相对应的第二交易区块,并将所述第二交易区块添加到所述密钥区块链账本中;以及安全地修改所述第二交易区块以包括描述关于所述加密密钥的所述第二密钥交易的元数据。

15.根据权利要求9所述的密钥管理系统,其中,所述系统被配置为进行操作以:向多个节点广播所述第一交易区块;

在所述多个节点中的一个节点中计算所述第一交易区块的验证解;以及向所述多个节点中的至少一个其它节点广播所述第一交易区块的所述验证解,以验证所述密钥区块链账本上的所述交易区块。

16.根据权利要求9所述的密钥管理系统,其中,所述系统被配置为进行操作以:在授权的中央控制节点中验证所述第一密钥交易区块;以及向多个节点广播对所述第一交易区块的验证。

17.一种具有存储在其上的计算机可执行指令的计算机存储介质,所述计算机可执行指令当由一个或多个处理器执行时,使所述处理器执行密钥管理方法,所述方法包括:在密钥源处创建加密密钥;

生成与所述加密密钥相对应的密钥区块链账本的创世区块;

安全地修改所述创世区块以包括描述所述密钥源的元数据;

执行关于所述加密密钥的第一密钥交易;

生成与关于所述加密密钥的所述第一密钥交易相对应的第一交易区块,并将所述第一交易区块添加到所述密钥区块链账本中;以及安全地修改所述第一交易区块以包括描述关于所述加密密钥的所述第一密钥交易的元数据。

18.根据权利要求17所述的计算机存储介质,其中,所述安全地修改所述第一交易区块包括:使用区块链修订和修改功能中的至少一项来修改所述第一交易区块,以包括描述关于所述加密密钥的所述第一密钥交易的元数据。

19.根据权利要求17所述的计算机存储介质,所述方法包括:检测对与所述加密密钥相关联的数据或系统的攻击;

使用所述密钥区块链账本中的交易区块的元数据来跟踪所述加密密钥到攻击点;

确定与所述攻击点相对应的交易区块;以及使用来自与所述攻击点相对应的交易区块的元数据来生成指示所述攻击点的警报。

20.根据权利要求17所述的机器存储介质,其中:关于所述加密密钥的所述第一密钥交易包括轮换所述加密密钥;以及描述所述第一密钥交易的元数据包括描述所述加密密钥的轮换的元数据。

说明书全文

可跟踪密钥区块链账本

背景技术

[0001] 密钥管理是对加密系统中的加密密钥的管理,并且包括处理密钥的生成、交换、存储、使用、销毁和替换。它通常包括加密协议、密钥服务器和用户过程。当在许多密钥管理系统中创建密钥时,密钥通常包括加密证书,以管控密钥的使用方式、证明密钥的机构以及密钥的生命周期策略。
[0002] 鉴于这些和其他考虑因素,提出了本文所做的公开。

发明内容

[0003] 本文公开的技术涉及可跟踪的密钥区块链账本。所公开的技术涉及生成代表密钥交易的交易区块,并将区块链接在不间断的区块链中以创建安全且可跟踪的密钥区块链账本。提供了用于将元数据添加到记录了与密钥交易(例如,对密钥执行的操作、被应用了密钥的数据、利用密钥的库以及对密钥执行操作或密钥所在的机器)有关的信息的每个交易区块的机制。
[0004] 所公开的密钥区块链账本可以用于将密钥可跟踪性扩展到密钥的某些方面。密钥区块链账本中的元数据使密钥能够在密钥审核期间被跟踪,即使在执行修改密钥的密钥操作(例如密钥轮换)使得不能根据原始密钥来导出原始密钥的情况下也如此。如果密钥被破解,这可以允许密钥被跟踪到攻击点。
[0005] 在各种示例中,示出了用于密钥管理的技术,该技术涉及:在密钥源处创建加密密钥,生成与该加密密钥相对应的密钥区块链账本的创世区块,以及安全地修改该创始区块以包括描述密钥源的元数据。这些技术还涉及:执行关于加密密钥的第一密钥交易,生成与关于加密密钥的第一密钥交易相对应的第一交易区块,以及将第一交易区块添加到密钥区块链账本中,以及安全地修改第一交易区块以包括描述关于加密密钥的第一密钥交易的元数据。在一些示例中,安全地修改交易区块涉及:使用区块链修订或修改功能来修改交易区块以包括描述密钥交易的元数据。密钥交易的一个示例是密钥的轮换。
[0006] 在本文公开的技术的另一方面中,该技术涉及检测对与加密密钥相关联的数据或系统的攻击。该方面还涉及:使用密钥区块链账本中的交易区块的元数据来跟踪加密密钥到攻击点,以及确定与攻击点相对应的交易区块。该方面还涉及:使用来自与攻击点相对应的交易区块的元数据来生成指示攻击点的警报。
[0007] 应当理解,上述主题还可以被实现为计算机控制的装置、计算机过程、计算系统或者被实现为诸如计算机可读介质之类的制品。通过阅读以下具体实施方式并查看相关附图,这些和各种其他特征将显而易见。提供了本发明内容以用简化形式来介绍对下面在具体实施方式中进一步描述的构思的选择。
[0008] 本发明内容不旨在标识所请求保护主题的关键特征或必要特征,本发明内容也不旨在用于限制所请求保护主题的范围。此外,所请求保护的主题不限于解决了在本公开的任何部分中指出的任何或所有缺点的实施方式。

附图说明

[0009] 参考附图描述了具体实施方式。在附图中,附图标记最左的数字标识了首次出现该附图标记的附图。不同附图中的相同附图标记指示相似或相同的项目。
[0010] 图1是示出了用于密钥区块链账本的系统的说明性示例的架构图;
[0011] 图2是示出了密钥区块链账本的说明性示例的数据架构图;
[0012] 图3A和图3B是示出了用于创建密钥区块链账本的过程的说明性示例的控制流程图;
[0013] 图3C是示出了针对向不可信节点分发的密钥区块链账本的验证过程的说明性示例的控制流程图;
[0014] 图4是示出了针对密钥区块链账本的验证过程的说明性示例的控制流程图;
[0015] 图5是示出了用于能够实现本文提出的各技术的各方面和各技术的计算系统的说明性计算机硬件和软件架构的计算机架构图;
[0016] 图6是示出了能够实现本文提出的各技术的各方面和各技术的分布式计算环境的图;以及
[0017] 图7是示出了用于能够实现本文提出的各技术的各方面和各技术的计算设备的计算设备架构的计算机架构图。

具体实施方式

[0018] 以下具体实施方式描述了用于在密钥管理系统中使用区块链来创建密钥区块链账本的技术,即使在修改密钥使得无法根据修改后的密钥来导出原始密钥时,也可以跟踪该密钥区块链账本。某些示例使用区块链技术的修订和修改功能来将元数据添加到区块链的区块中,该元数据与密钥交易事件的密钥操作有关。
[0019] 按照惯例,通常密钥和与该密钥有关的生命周期策略一起发行。一种常见的生命周期策略是密钥轮换策略,其需要定期(例如每年)轮换密钥。例如,美国国家标准技术研究院(NIST)规定了一个生命周期策略,即256比特AES密钥在两年后需要轮换。密钥轮换策略的其他示例也与被应用了密钥的数据量有关。在另一个示例中,NIST规定:即使尚未达到2年的时间限制,AES-GCM-256密钥在被应用于64GB数据后也必须轮换。
[0020] 当轮换密钥时,通常需要密钥正交性,即,新密钥不能被非预期方、人或机器根据原始密钥来导出。这在密钥审核期间提出了密钥可跟踪性问题。当在没有根据主密钥或父密钥/种子密钥来导出的情况下执行密钥轮换时,这特别成问题。
[0021] 如果密钥被破解并且该密钥在审核期间无法被跟踪,则可能无法标识攻击点,例如数据、机器、所使用的系统依赖性、所涉及的人员等。因此,防止了识别安全缺陷或漏洞,并且无法执行深度取证。所公开的技术提供了实现密钥可跟踪性的安全密钥区块链账本。通过创建代表密钥交易的区块并将区块链接在不间断的区块链中,可以创建安全密钥区块链账本。提供了用于将元数据添加到记录与密钥交易(例如,对密钥执行的操作、被应用了密钥的数据、利用密钥的库以及对密钥执行操作或密钥所在的机器)有关的信息的每个区块的机制。用于将元数据安全地添加到区块链中的区块的机制的示例包括区块链修订和修改功能。
[0022] 在各种示例中,所公开的密钥区块链账本可用于将密钥可跟踪性扩展到密钥的某些方面,例如:密钥的使用方式;密钥与哪个服务有关;历史数据日志,例如故障和可能的攻击尝试;以及跟踪密钥使用到轮换密钥时的服务。跟踪密钥使用到服务(tracing key usage to a service)尤其对于支持静态数据(data-at-rest)特别重要,因为它涉及与相同数据相关联的密钥和/或与彼此相关或与不同数据相关的密钥。
[0023] 在某些简化的示例中,用于密钥管理的方法、系统或计算机可读介质涉及通过以下方式来构建可跟踪的密钥区块链账本:通过在密钥源处创建加密密钥,生成与该加密密钥相对应的密钥区块链账本的创世区块,以及安全地修改该创始区块以包括描述密钥源的元数据。这些示例还涉及:执行关于加密密钥的密钥交易,生成与关于加密密钥的密钥交易相对应的交易区块,以及将该交易区块添加到密钥区块链账本中,以及安全地修改该交易区块以包括描述关于加密密钥的密钥交易的元数据。
[0024] 某些示例使用区块链修订和修改功能以将元数据安全地引入密钥区块链账本的交易区块。
[0025] 某些示例使用交易区块中的元数据来跟踪密钥区块链账本,以通过以下操作来确定攻击点和生成警报:检测对与加密密钥相关联的数据或系统的攻击,使用密钥区块链账本中的交易区块的元数据来跟踪加密密钥到攻击点,确定与攻击点相对应的交易区块,以及使用来自与攻击点相对应的交易块的元数据来生成指示攻击点的警报。
[0026] 这些是简化的示例,并且在可跟踪的密钥区块链账本中可以考虑许多因素,下面将对此进行更详细的讨论。
[0027] 如将在本文中更详细地描述的,应当理解,本文描述的技术的实施方式和技术可以包括使用固态电路、数字逻辑电路、计算机组件和/或在一个或多个输入设备上执行的软件。本文描述的信号可以包括用于传送密钥的改变状态、与密钥相关联的数据或与密钥有关的其他信息的模拟和/或数字信号。
[0028] 虽然本文描述的主题是在程序模块结合计算机系统上的操作系统和应用程序的执行而执行的一般上下文中提出的,但是本领域技术人员将认识到,可以组合其他类型的程序模块来执行其他实施方式。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构等。此外,本领域技术人员将理解,本文描述的主题可以与其他计算机系统配置一起实施,该其他计算机系统配置包括多处理器系统、大型计算机、基于微处理器的或可编程的消费电子产品、迷你计算机、手持式设备等。
[0029] 通过使用本文描述的技术,区块链用于提供账本,该账本用于跟踪密钥管理信息,例如对密钥的修改或使用。这些技术通过使用区块链来提供密钥账本。某些配置可能有益于在密钥的生命周期中审核或跟踪密钥,即使以无法根据修改后的密钥来导出原始密钥的方式修改了密钥也是如此。在本文描述的技术提供的许多好处中,这些技术可以提供安全的分布式区块链密钥账本。根据本文公开的技术的实施方式,还可以实现除本文提到的那些好处以外的其他技术效果。
[0030] 在以下具体实施方式中,参考形成具体实施方式一部分的附图,并且在附图中通过说明性方式示出了特定配置或示例。现在参考附图,其中贯穿若干幅图中相同的数字代表相同的元素,将描述用于可跟踪的密钥区块链账本的计算系统、计算机可读存储介质以及计算机实现的方法的各方面。如将在下面相对于附图更详细地描述的,存在可以体现本文描述的功能和技术的许多应用和服务。
[0031] 图1是示出了具有在硬件安全模块(HSM)130中生成的密钥的密钥区块链账本140的系统100的一个示例的架构图。在此示例中,一组可信节点(服务器120A~120D)经由网络150互连。在HSM 130中创建私钥,并为建立密钥账本的区块链来产生创世区块142A。
[0032] 当在HSM 130中创建私钥时,创建用于区块链的创世区块142A,其包括标识密钥的生成源(例如HSM 130)以及生成模式(例如密钥的类型、协议等)的元数据。使用签名对创世区块142A进行签名,该签名是使用与密钥有关的信息来加密生成的。实际上,除了检查源的正确熵之外,还会向密钥发行经签名的出生证书,其包括有关密钥生成的信息。
[0033] 在一个示例中,用根据用于对密钥证书进行签名的密钥值以及与密钥和密钥源信息有关的信息所导出的签名对创始区块142A进行签名。
[0034] 当发生密钥交易时,例如每次轮换密钥时,都会创建交易区块,对其进行签名并将其添加到密钥区块链账本140中。在图1的示例中,每个交易区块142B~142E代表密钥交易,例如密钥轮换或密钥使用。密钥区块链账本140可以被分发到可信集群的节点,例如服务器120A~120D。
[0035] 使用安全加密操作来将与密钥交易(例如,对数据、机器、经签名的内核或库的引用)有关的元数据添加到密钥区块链账本140中的区块142B~142E,以插入和声明信息,例如将注释或记录添加到交易区块。
[0036] 在密钥区块链账本的某些示例中,这些安全加密操作可以包括后验(posteriori)修订和后验修改。在一些示例中,可以添加特定标签以区分修改和修订。在图1的示例中,密钥区块链账本140的区块142A~142E经过修改和修订操作,这类似于区块链分叉,不同之处在于,在本技术中,可由授权方或受信方进行改变,并且改变(例如修改或修订)模式可以标识。由安全加密操作(例如修改或修订操作)引入的数据被反映在密钥区块链账本140的交易区块中,例如区块链的交易区块的特定默克尔树(Merkle tree)分支。
[0037] 修改操作通常将改变数据添加到交易区块中的元数据,但保留原始历史数据的细节不变,例如添加了新的事实,没有替换任何事实。例如,修改数据可以指示:检测到导致对与密钥相关联的某些加密数据进行数据转储(dump)的尝试,但是该尝试是倒填日期(back-dated)到已知时间的,在该已知时间该密钥是有效的,并且自该密钥有效的已知时间以来已刷新新密钥N次。
[0038] 修订操作通常指示:部分历史数据是不正确的,且已授权的勘误数据被添加到元数据中,例如被替换的事实,即否认并重述(disclaimed and re-stated)。例如,发现针对与密钥相关联的数据的使用的策略被错误陈述,但是密钥数据已被倒填日期到已知密钥有效的已知时间的,并且自该已知时间以来已刷新新密钥N次。
[0039] 注意,按照惯例,区块链是不可变的,因此通常不可能在事后从区块链中清除、修订或修改信息。当信息在事后不准确或不完整时,这可能是一个问题。相对地,当策略被授权和修改时,本技术是可扩展的。这将由经证明和授权的修改机制来指定。因此,本技术使得能够执行深度数据取证。
[0040] 图2是示出了基于图1的密钥账本140的区块142A~142E的密钥区块链账本200的简化示例的数据架构图。图2的密钥区块链账本200示例被简化以示出区块210A~210E的区块头、元数据和签名,以便演示使用区块链的可跟踪的安全密钥账本。在图2的示例中,当由HSM创建密钥时,由图1的HSM 130生成具有ID“<hardware_tamperproof>.<application_name>.mother.key”的创世区块210A。
[0041] 图3A的控制流程图示出了生成创世区块的过程300的一个示例。在302处,例如由HSM 130来创建密钥(例如公钥私钥对)。在304处,针对新密钥创建具有描述关于密钥起源的信息的元数据1(Metadata1)的创世区块210A。在所示的示例中,元数据1(Metadata1)包括密钥的源(source)(例如HSM 130)和密钥的发行机构(issuing authority)、以及密钥的策略数据(policies)(例如轮换需求)。在306处,例如由位于服务器120A中的密钥管理应用对创世区块210A进行加密并使用签名1(signature1)进行签名以提供密钥出生证书。
[0042] 因为区块210A是创世区块,因此不存在将创世区块链接到的前一个区块,例如,前一个版本:NIL(Previous version:NIL)。因为创世区块210A是在创建点处链上仅有的区块,所以它也是结束区块,例如,下一版本索引:NIL(Next Version index:NIL)。
[0043] 当发生密钥操作时,例如密钥轮换或密钥使用,将交易区块添加到区块链200。每个交易区块都包含元数据,该元数据包括密钥的密钥可跟踪性信息,例如执行密钥轮换的机器、被应用了密钥的数据、密钥所在的机器、经签名的内核、库等。每个交易区块都包含哈希指针(作为指向前一个区块的链接)、时间戳和交易数据。区块链固有的抵抗数据修改,其保持元数据的完整性,并且即使对密钥进行了修改,使得原始密钥或早期版本的密钥无法根据密钥的经修改形式来导出,也可以在密钥的整个生命周期对其进行跟踪。注意,元数据也可以是指向可以找到跟踪信息的资源或日志的位置的指针。
[0044] 在图2的上下文中,在图3B的控制流程图中示出了交易区块创建过程350的示例。在352处,当发生密钥交易事件时,例如,将密钥应用于数据,则在354处创建另一交易区块
210B,将其区块链接到创世区块210A,并且在356处对该交易区块进行加密和签名以确保交易区块的真实性。
[0045] 在360处,交易区块210B被修订或修改为包括元数据2(Metadata2),该元数据2包括与密钥交易事件有关的密钥可跟踪性信息,例如已被应用了密钥的数据(data)、经签名的内核(signed kernels)或库(libraries)、或执行密钥轮换的机器(machine)或密钥所在的机器。创世区块210A被修订以包括对交易区块210B的引用,例如,下一版本索引:0.2(Next Version index:0.2)。交易区块210B包括指向创世区块210A的链接,例如,前一个版本索引:0.1(Previous version index:0.1),并对交易区块210B进行签名,例如签名2(signature2)。
[0046] 类似地,当随后的密钥交易事件发生时创建交易区块210C~210E并且交易区块被区块链到密钥区块链账本200中,以提供使用交易区块的元数据所能够跟踪的安全密钥日志。随着每个区块的添加,所添加的区块包括指向前一个区块的链接,并且修改前一个区块以包含指向所添加的区块的链接。
[0047] 在图2的示例中,修改操作用于添加注释(例如0.x被定义为0.end;例如0.x是根据新分支来导出的)。修订操作用于陈述勘误(ID:被从“<hardware_tamperproof>.<application_name>.mother.key”重新定义/重命名到“smartcard.mother.key”)。
[0048] 在将元数据添加到密钥区块链账本200中的交易区块210A~210E的一个示例中,利用准不可变主密钥来修订账本200的交易区块210A~210E。在此示例中,修订功能包括:密码、签名和更新,并且可以包括原始链锁和中间链间锁以允许修改,这可以是交易区块
210A~210E中的分离的文本。
[0049] 在另一示例中,为简单起见,假设密钥不可变。这也可能与轮换安全日志/账本密钥和修订/修改生命周期状态密钥有关。也可以利用导出密钥。不可变密钥还可以是准不可变密钥,例如证书机构(CA)发行的密钥作为与安全记录器一起使用的具有长寿命的中间密钥。例如:
[0050] key_to_sign_its_own_cert=PBKDF2(针对签名密钥所导出的准不可变密钥,索引+resultant_key);以及
[0051] 签名=hmac(熵日志/熵日志的哈希+可选的机器和库等,key_to_sign_its_own_cert)。
[0052] 密钥区块链账本200可以被分发到可信集群或公共区块链。尽管本文公开的技术的各方面类似于智能合约,但是在本技术中,合约的策略可以确定维护密钥区块链账本的方式。例如,该策略可能要求:验证或授权过程是通过对可信节点集群的集中控制来确定的。在这种情况下,集中控制可以是可信节点,例如证书机构,其被授权对交易区块进行证明和签名以对其进行验证,并且可能不需要矿工进行验证。
[0053] 备选地,该策略可以提供由不可信节点的分散集群决定的验证过程。在将密钥区块链账本分发到不可信节点的集群的情形下,可以采用对链中的区块进行挖掘来验证密钥区块链账本。
[0054] 密钥区块链账本的一个方面是,它可以允许将私钥维护在单个安全实体(例如HSM 130)内。这可以将攻击风险集中到安全性为主要关注点的集中模块,而业务功能则使用作为加密服务提供方的单个安全实体。
[0055] 从另一角度来看,因为密钥及其简档(例如属性和规则)是与服务绑定的实体(例如,法律实体),因此可以将密钥视为具有值或货币。如果密钥不轮换,则值不会改变,因为服务的性质不会改变。然而,如果密钥确实轮换,则服务改变,并且密钥交易会被记录在密钥区块链账本中,被重新进行哈希处理并向节点的网络广播,取决于期望的实施方式这些节点可以是可信或不可信的。在将交易区块的内容保持为秘密的示例中,仅释放和挖掘每个交易区块的签名,以用于公开建立密钥区块链账本。
[0056] 区块链可以使用各种时间戳方案(例如工作量证明)来使改变序列化。备选共识方法包括权益证明和燃烧证明,其也可以用于使改变序列化。
[0057] 如上所述,在一些示例中,矿工可以验证密钥区块链账本以保护区块链。在这种情况下,矿工可以集体商定要使用的验证解。然而,如果使用小型网络,例如私有网络,则解可以是默克尔树,并且可能不需要挖掘验证解。在创建密钥时,它是未确认和未标识的实体。为了成为经确认的“货币”的一部分,可以将其添加到区块链中,且因此涉及可信集群的概念。
[0058] 在可信集群中,当轮换密钥时,每个节点都会竞争以确认下一个“交易”(密钥轮换或修订/修改),因此可能不需要不变的密钥。因此,当每个节点竞争轮换并验证密钥轮换时,没有单个节点将在该共享密钥上针对整个集群来签名。在一个示例中,节点竞争挖掘并获得最低的哈希值:min{previous_hash,contents_hash,random_nonce_to_be_guess}->结果。交易顺序受计算竞赛的保护(相信没有人能击败网络)。如果服务简档(例如人力证书简档(HCP))或密钥(实体)将由用于建立的民主节点确认并建立,则这是有用的。相互认证参数会进行广播和确认,因此不存在两次轮换。当重新分配服务简档时,对于HCP可能同样如此。
[0059] 通过跨受限网络来广播元数据以认证秘密账本,例如仅广播经签名的哈希值,区块链可以减少数据集中存储带来的风险。分散共识使区块链适合于对秘密交易或事件的记录。还可以对可能包含与密钥相关的资源的位置在内的元数据进行加密以用于受限访问,以便元数据不公开与密钥有关的资源的网络配置信息。
[0060] 在社区安排基于“诚信”协议的情况下,即在没有单个节点可以控制整个集群的情况下,可以利用挖掘过程对双重记账、覆盖或重放攻击进行威慑。挖掘的工作假设是存在诚实方的同等权力分布,而诚实方的权力高于不诚实方或盗用方。分散式系统中的每个节点或矿工都有区块链副本。没有集中的“官方”副本存在,并且没有哪个用户比任何其他用户更“可信”。使用软件向网络广播交易。挖掘节点验证交易,将它们添加到它们正在建设的区块中,然后向其他节点广播已完成的区块。
[0061] 注意,在受限制的网络中,被授权检查或挖掘密钥生命周期跟踪的利益相关者可能会也可能不会访问密钥本身,但必须拥有针对元数据的密钥(因为它们是受限制网络的成员并且是可信的)以获取详细信息。由于将密钥应用于具有不同数据分类的数据,因此可以对利益相关者进行划分。
[0062] 分散式区块链也可以使用临时(ad-hoc)安全消息传递和分布式联网。在该示例中,密钥区块链账本与常规区块链的不同之处可以在于存在集中票据交换所,例如用于验证的经授权的中央控制。没有挖掘过程,可信集群可被包含在集中式区块链中,而不是公共或民主区块链中。一种看待这种情况的方式是:分散的部分被称为“民主的N个诚实方”(多个诚实方是一种密码学概念),而集中的部分被称为“用于区块链信息校正的可信君主制”。将修订和修改机制维护为集中授权并保持离线,类似于密钥的根证书机构,可能会有好处。
[0063] 在一些示例中,可以通过加密手段将针对分布式可跟踪密钥区块链账本的访问限制为仅对授权服务器开放。由于密钥区块链账本是分布式的,因此授权服务器可以对其进行验证。公钥可被用作密钥区块链上的地址。
[0064] 注意,分散式区块链的增长可能伴随着节点集中化的风险,因为在更大数据上进行操作所需的计算机资源变得越来越昂贵。
[0065] 图3C是示出了针对向不可信节点分发的密钥区块链账本的验证过程370的示例的控制流程图。在过程370中,当针对密钥交易来创建交易区块时,在372处向不可信节点的集群广播密钥交易。在374处,节点进行竞争以计算用于交易的验证解。在376处,获胜节点广播交易区块的验证解,并将交易区块添加到其密钥区块链账本的副本中。在378处,响应于获胜节点的广播,其他节点按照获胜节点建立的交易顺序将交易区块添加到其密钥区块链账本的副本中。分散式验证协议维护密钥区块链账本的完整性。
[0066] 图4是示出了使用所公开技术的密钥区块链账本的密钥跟踪过程400的说明性示例的控制流程图。即使已轮换了密钥,并且在没有根据主密钥或者父密钥或种子密钥来导出的情况下执行密钥轮换(例如,维护了密钥正交性),也可以对密钥进行跟踪。在该示例中,在402处,检测到对由密钥保护的数据或系统的攻击,其中,密钥具有如上所述的密钥区块链账本。在404处,使用交易区块的元数据,密钥区块链账本的区块可以被跟踪到密钥的起源(例如创世区块)。
[0067] 在406处,使用来自密钥区块链账本的元数据,确定与对密钥的攻击点相对应的交易区块或与密钥有效的最后时间点有关的交易区块。在408处,使用来自密钥区块链账本的元数据来生成指示所标识的攻击点的警报。备选地,警报可以指示密钥最后有效的那个点,用于确定哪些实体(例如数据、DLL、经签名的内核或系统)可能已被攻击所破解。
[0068] 本技术可以涉及在一个或多个机器中发生的操作。如本文所使用的,“机器”是指用指令编程以执行专门的计算操作的物理数据存储和处理硬件。应该理解,两个或更多不同的机器可以共享硬件组件。例如,相同的集成电路可以是两个或更多个不同机器的部分。
[0069] 本领域的普通技术人员将认识到,可以利用各种各样的方法并将其与涉及可跟踪密钥区块链账本的本方法相组合。本文所述的可跟踪密钥区块链账本的不同方面的特定示例是说明性的,且并不旨在限制所示出的技术的范围。
[0070] 注意,可以在诸如图6中的计算机环境602之类的服务器或云中实现过程200、300、350和400以及本文描述的其他过程的至少一部分,并且定义如本文所讨论的翻译或解释的用户控制信号的结果的数据可以被传送到用户设备以进行显示。备选地,可跟踪密钥区块链账本过程可以在客户端设备中实现。在其他示例中,一些操作可以在一组计算资源(例如服务器)中实现,而其他步骤可以在其他计算资源(例如客户端设备)中实现。
[0071] 应当理解,本文描述的方法可以在任何时间结束,并且不需要整体执行。可以通过执行计算机存储介质上包括的计算机可读指令来执行本文描述的方法的一些或全部操作和/或实质上等效的操作,如下文所定义。如说明书和权利要求书中所使用的术语“计算机可读指令”及其变体在本文中被广泛地使用以包括例程、应用、应用模块、程序模块、程序、组件、数据结构、算法等。可以在各种系统配置上实现计算机可读指令,该各种系统配置包括单处理器或多处理器系统、迷你计算机、大型计算机、个人计算机、手持计算设备、基于微处理器的可编程消费电子产品、其组合等。
[0072] 因此,应当理解,本文描述的逻辑操作被实现为(1)计算机实现的动作或在计算系统上运行的程序模块的序列和/或(2)计算系统内的互连的机器逻辑电路或电路模块。该实现是取决于计算系统的性能和其他需求的选择问题。因此,本文描述的逻辑操作被不同地称为状态、操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以以软件、固件、专用数字逻辑及其任何组合来实现。
[0073] 如本文所述,结合本文所述的附图,例程(200、300、350和400)的操作在本文中被描述为至少部分地由应用、组件和/或电路来实现。尽管以下图示涉及图1、图5、图6和图7的组件,但是可以理解,例程的操作也可以以许多其他方式来实现。例如,例程可以至少部分地由计算机处理器或另一计算机的一个或多个处理器来实现。此外,例程的一个或多个操作可以备选地或附加地至少部分地由单独工作或与其他软件模块结合工作的计算机来实现。
[0074] 例如,例程的操作在本文中被描述为至少部分地由应用、组件和/或电路(在本文中一般被称为模块)来实现。在一些配置中,模块可以是动态链接库(DLL)、静态链接库、由应用程序编程接口(API)产生的功能、经编译的程序、经解释的程序、脚本或任何其他可执行指令集。数据和/或模块(例如本文公开的数据和模块)可被存储在一个或多个存储器组件中的数据结构中。可以通过对数据结构的链接或引用进行寻址从数据结构中检索数据。
[0075] 尽管以下图示涉及图1、图5、图6和图7的组件,但是可以理解,例程(200、300、350、370和400)的操作也可以以许多其他方式来实现。例如,例程可以至少部分地由另一台远程计算机或本地计算机或电路的处理器来实现。此外,例程的一个或多个操作可以备选地或附加地至少部分地由单独工作或与其他软件模块结合工作的芯片组来实现。适用于提供本文公开的技术的任何服务、电路或应用都可以在本文描述的操作中使用。
[0076] 图5示出了能够执行本文描述的程序组件的计算机(例如服务器120A~120D(图1))的示例计算机架构500的附加细节。因此,图5中示出的计算机架构500示出了服务器计算机、移动电话、PDA、智能电话、台式计算机、上网本计算机、平板计算机、车载计算机、游戏机和/或膝上型计算机。可以利用计算机架构500来执行本文提出的软件组件的任何方面。
[0077] 图5中示出的计算机架构500包括中央处理单元502(“CPU”)、包括随机存取存储器506(“RAM”)和只读存储器(“ROM”)508在内的系统存储二器504以及将存储器504耦合到CPU 
502的系统总线510。基本输入/输出系统(包含有助于(例如,在启动过程中)在计算机架构
500内的子元件之间传输信息的基本例程)可被存储在ROM 508中。计算机架构500还包括大容量存储设备512,其用于存储操作系统507、诸如密钥区块链账本数据520和加密数据530之类的数据、密钥储存库540以及一个或多个应用程序。
[0078] 大容量存储设备512通过连接到总线510的大容量存储控制器(未示出)连接到CPU 502。大容量存储设备512及其关联的计算机可读介质针对计算机架构500提供非易失性存储。尽管本文包含的计算机可读介质的描述是指大容量存储设备,例如固态驱动器、硬盘或CD-ROM驱动器,但本领域技术人员应当理解,计算机可读介质可以是计算机架构500可以存取的任何可用的计算机存储介质或通信介质。
[0079] 通信介质在调制数据信号(如载波或其他传输机制)中包括计算机可读指令、数据结构、程序模块或其他数据,并且包括任何传送介质。术语“调制数据信号”是指具有以便在信号中编码信息的方式来改变或设置其一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声音、RF、红外和其他无线介质之类的无线介质。以上任何项的组合也应当被包括在计算机可读介质的范围内。
[0080] 作为示例而非限制,计算机存储介质可以包括以任何方法或技术实现的易失性和非易失性、可移除和不可移除介质,用于存储信息,例如计算机可读指令、数据结构、程序模块或其他数据。例如,计算机介质包括(但不限于):RAM、ROM、EPROM、EEPROM、闪存或其他固态存储器技术、CDROM、数字通用光盘(“DVD”)、HD-DVD、BLU-RAY或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备、或可以用于存储期望信息并且可以由计算机架构500存取的任何其他介质。出于权利要求的目的,短语“计算机存储介质”、“计算机可读存储介质”及其变体不包括波、信号和/或其他瞬时和/或无形通信介质本身。
[0081] 根据各种配置,计算机架构500可以使用通过网络556和/或另一网络(未示出)的连到远程计算机的逻辑连接,在联网环境中操作。计算机架构500可以通过连接到总线510的网络接口单元514连接到网络556。应当理解,网络接口单元514也可以用于连接到其他类型的网络和远程计算机系统。计算机架构500还可以包括输入/输出控制器516,用于接收和处理来自许多其他设备的输入,该其他设备包括键盘、鼠标、游戏控制器、电视遥控器或电子触控笔(图5中未示出)。类似地,输入/输出控制器516可以向显示屏、打印机或其他类型的输出设备(在图5中也未示出)提供输出。
[0082] 应当理解,本文描述的软件组件可以在被加载到CPU 502中并被执行时,将CPU 502和整个计算机架构500从通用计算系统转换成被定制以促进本文提出的功能的专用计算系统。CPU 502可以由任意数量的晶体管或其他分立电路元件来构造,其可以单独或共同地假设任意数量的状态。更具体地,响应于本文公开的软件模块中包含的可执行指令,CPU 
502可以作为有限状态机操作。这些计算机可执行指令可以通过指定CPU 502如何在状态之间转换来对CPU 502进行转换,从而对构成CPU 502的晶体管或其他分立的硬件元件进行转换。
[0083] 对本文提出的软件模块进行编码也可以转换本文提出的计算机可读介质的物理结构。在本说明书的不同实施方式中,物理结构的特定转换可以取决于各种因素。这样的因素的示例可以包括(但不限于)用于实现计算机可读介质的技术,而不管计算机可读介质被表征为主存储装置还是辅助存储装置等。例如,如果计算机可读介质被实现为基于半导体的存储器,则本文公开的软件可以通过转换半导体存储器的物理状态而在计算机可读介质上进行编码。例如,软件可以转换构成半导体存储器的晶体管、电容器或其他分立电路元件的状态。该软件还可以转换这些组件的物理状态,以便在其上存储数据。
[0084] 作为另一示例,可以使用磁性或光学技术来实现本文公开的计算机可读介质。在这样的实施方式中,当本文提出的软件在磁性或光学介质中进行编码时,其可以转换磁性或光学介质的物理状态。这些转换可以包括改变给定磁性介质内特定位置的磁性特征。这些转换还可以包括改变给定光学介质内特定位置的物理特征或特性,以改变那些位置的光学特性。在不脱离本说明书的范围和精神的情况下,对物理介质的其他转换是可能的,提供前述示例仅是为了促进该讨论。
[0085] 鉴于以上内容,应当理解,在计算机架构500中发生了许多类型的物理转换,以便存储和执行本文提出的软件组件。还应该理解,计算机架构500可以包括其他类型的计算设备,其包括手持计算机、嵌入式计算机系统、个人数字助理以及本领域技术人员已知的其他类型的计算设备。还可以设想,计算机架构500可以不包括图5中示出的所有组件,可以包括在图5中未明确示出的其他组件,或者可以利用与图5中示出的架构完全不同的架构。
[0086] 图6描绘了能够执行本文描述的用于可跟踪密钥区块链账本的软件组件的说明性分布式计算环境600。因此,图6中示出的分布式计算环境600可以用于执行本文提出的软件组件的许多方面。例如,分布式计算环境600可以用于执行本文描述的软件组件的一个或多个方面。
[0087] 根据各种实施方式,分布式计算环境600包括在网络604上操作、与之通信或作为其一部分的计算环境602。如上所述,网络604可以是网络556或可以包括网络556。网络604还可以包括各种接入网络。一个或多个客户端设备606A~606N(以下统称为和/或一般称为“客户端606”)可以经由网络604和/或其他连接(图6中未示出)与计算环境602通信。在一个示出的配置中,客户端606包括计算设备606A,例如膝上型计算机、台式计算机或其他计算设备;板或平板计算设备(“平板计算设备”)606B;移动计算设备606C,例如移动电话、智能电话、车载计算机或其他移动计算设备;服务器计算机606D;和/或其他设备606N,其可以包括硬件安全模块。应当理解,任何数量的设备606可以与计算环境602通信。本文参考图5和图6示出和描述了设备606的两个示例计算架构。应当理解,本文示出和描述的示出的设备606和计算架构仅是说明性的,并且不应被解释为以任何方式受到限制。
[0088] 在所示的配置中,计算环境602包括应用服务器608、数据存储设备610和一个或多个网络接口612。根据各种实施方式,应用服务二器608的功能可以由作为网络604的一部分或与之通信的一台或多台服务器计算机提供。应用服务器608可以托管各种服务、虚拟机、门户和/或其他资源。在所示的配置中,应用服务器608托管一个或多个虚拟机614,用于托管应用或其他功能。根据各种实施方式,虚拟机614托管用于可跟踪密钥区块链账本的一个或多个应用和/或软件模块。应当理解,该配置仅是说明性的,并且不应被解释为以任何方式受到限制。
[0089] 根据各种实施方式,应用服务器608还包括一个或多个密钥管理服务618和一个或多个区块链服务620。密钥管理服务618可以包括用于管理用于加密数据和通信的密钥的服务。区块链服务620可以包括用于(例如通过创建创世区块、交易区块以及执行验证)参与对一个或多个区块链的管理的服务。
[0090] 如图6所示,应用服务器608还可以托管其他服务、应用、门户和/或其他资源(“其他资源”)624。其他资源624可以包括(但不限于)数据加密、数据共享或任何其他功能。
[0091] 如上所述,计算环境602可以包括数据存储设备610。根据各种实施方式,数据存储设备610的功能由在网络604上操作或与之通信的一个或多个数据库或数据储存库提供。数据存储设备610的功能还可以由被配置为托管计算环境602的数据的一台或多台服务器计算机提供。数据存储设备610可以包括、托管或提供一个或多个真实或虚拟数据储存库626A~626N(以下统称为和/或一般称为“数据储存库626”)。数据储存库626被配置为托管由应用服务器608使用或创建的数据和/或其他数据。数据储存库626的各方面可以与用于使用加密密钥安全地加密和存储文件的服务相关联。尽管在图6中未示出,但是数据储存库626也可以托管或存储网页文档、word文档、演示文档、数据结构、推荐引擎执行的算法和/或任何应用程序或另一模块所使用的其他数据。
[0092] 计算环境602可以与网络接口612通信或者可以被网络接口612访问。网络接口612可以包括各种类型的网络硬件和软件,用于支持两个或更多个计算设备之间的通信,这些计算设备包括(但不限于)客户端606和应用服务器608。应当理解,网络接口612也可以用于连接到其他类型的网络和/或计算机系统。
[0093] 应当理解,本文描述的分布式计算环境600可以向本文描述的软件元件的任何方面提供可以被配置为执行本文公开的软件组件的任何方面的任意数量的虚拟计算资源和/或其他分布式计算功能。根据本文公开的构思和技术的各种实施方式,分布式计算环境600可以使用设备606将本文描述的软件功能作为服务提供给客户端。应当理解,设备606可以包括真实或虚拟机,其包括(但不限于)服务器计算机、网络服务器、个人计算机、移动计算设备、智能电话和/或可以包括用户输入设备的其他设备。因此,除了其他方面外,本文公开的构思和技术的各种配置使被配置为访问分布式计算环境600的任何设备能够利用本文描述的用于可跟踪密钥区块链账本的功能。
[0094] 现在转到图7,针对可跟踪密钥区块链账本,本文描述了能够执行各种软件组件的计算设备的说明性计算设备架构700。计算设备架构700可应用于管理安全数据的计算设备。在一些配置中,计算设备包括(但不限于)移动电话、车载计算机、平板设备、板设备、便携式视频游戏设备、传统台式计算机、便携式计算机(例如,膝上型计算机、笔记本计算机、超便携式计算机和上网本)、服务器计算机、游戏机和其他计算机系统。计算设备架构700可应用于图1所示的服务器120A~120D和图6所示的计算设备606A~606N。
[0095] 图7所示的计算设备架构700包括处理器702、存储器组件704、网络连接组件706、传感器组件708、输入/输出组件710和电源组件712。在所示的配置中,处理器702与存储器组件704、网络连接组件706、传感器组件708、输入/输出(“I/O”)组件710和电源组件712进行通信。尽管在图7所示的各个组件之间未示出任何连接,但是这些组件可以交互执行设备功能。在一些配置中,组件被布置为经由一个或多个总线(未示出)进行通信。
[0096] 处理器702包括中央处理单元(“CPU”),其被配置为处理数据、执行一个或多个应用程序的计算机可执行指令以及与计算设备架构700的其他组件通信以便执行本文描述的各种功能。处理器702可以用来执行本文提出的软件组件的各方面,尤其是那些至少部分利用安全数据的方面。
[0097] 在一些配置中,处理器702包括图形处理单元(“GPU”),其被配置为加速由CPU执行的操作,包括(但不限于)通过执行安全计算应用、通用科学和/或工程计算应用以及诸如高分辨率视频(例如620P、1080P和更高分辨率)、视频游戏、三维(“3D”)建模应用等之类的图形密集型计算应用来执行的操作。在一些配置中,处理器702被配置为与分立GPU(未示出)通信。在任何情况下,都可以根据协同处理CPU/GPU计算模型来配置CPU和GPU,其中,应用的顺序部分在CPU上执行,而计算密集型部分则由GPU加速。
[0098] 在一些配置中,处理器702连同本文以下描述的一个或多个其他组件一起是片上系统(“SoC”)或被包括在片上系统(“SoC”)中。例如,SoC可以包括处理器702、GPU、网络连接组件706中的一个或多个以及传感器组件708中的一个或多个。在一些配置中,部分地利用层叠封装(“PoP”)集成电路封装技术来制造处理器702。处理器702可以是单核或多核处理器。
[0099] 可以根据可从英国剑桥的ARM控股获得许可的ARM架构来创建处理器702。备选地,处理器702可以根据x86架构(例如,从加利福尼亚州山景城的英特尔公司等获得)来创建。在一些配置中,处理器702是从加利福尼亚州圣地亚哥的高通获得的SNAPDRAGON SoC、从加利福尼亚州圣克拉拉的英伟达获得的TEGRA SoC、从韩国首尔的三星获得的HUMMINGBIRD SoC、从德克萨斯州达拉斯的德州仪器获得的开放多媒体应用平台(“OMAP”)SoC、上述任何SoC的定制版本或专有SoC。
[0100] 存储器组件704包括随机存取存储器(“RAM”)714、只读存储器(“ROM”)716、集成存储存储器(“集成存储设备”)718和可移除存储存储器(“可移除存储设备”)720。在一些配置中,RAM 714或其一部分、ROM 716或其一部分和/或RAM 714和ROM 716的某种组合被集成在处理器702中。在一些配置中,ROM 716被配置为存储固件、操作系统或其一部分(例如,操作系统内核)和/或从集成存储设备718和/或可移除存储设备720中加载操作系统内核的引导加载器。
[0101] 集成存储设备718可以包括固态存储器、硬盘或固态存储器和硬盘的组合。集成存储设备718可以被焊接或以其他方式连接至逻辑板,处理器702和本文描述的其他组件也可以被连接至该逻辑板。因此,集成存储设备718被集成在计算设备中。集成存储设备718被配置为存储操作系统或其一部分、应用程序、数据以及本文描述的其他软件组件。
[0102] 可移除存储设备720可以包括固态存储器、硬盘或固态存储器和硬盘的组合。在一些配置中,提供可移除存储设备720代替集成存储设备718。在其他配置中,可移除存储设备720被提供作为附加的可选存储设备。在一些配置中,可移除存储设备720与集成存储设备
718逻辑地组合,使得总可用存储设备可作为总组合存储容量可用。在一些配置中,向用户示出了集成存储设备718和可移除存储设备720的总组合容量,而不是针对集成存储设备
718和可移除存储设备720的单独的存储容量。
[0103] 可移除存储设备720被配置为插入可移除存储存储器插槽(未示出)或其他机构中,通过其可移除存储设备720被插入和固定以促进连接,可移除存储设备720可通过该连接与计算设备的其他组件通信,例如处理器702。可移除存储设备720可以以各种存储器卡格式来体现,该存储器卡格式包括(但不限于)PC卡、压缩闪存卡、记忆棒、安全数字(“SD”)、迷你SD、微型SD、通用集成电路卡(“UICC”)(例如,订户身份模块(“SIM”)或通用SIM(“USIM”))、专有格式等。
[0104] 可以理解,存储器组件704中的一个或多个可以存储操作系统。根据各种配置,操作系统可以包括(但不限于)服务器操作系统,例如由The Open Group认证的UNIX和由Free Software Foundation认证的LINUX的各种形式,或者软件即服务(SaaS)架构(例如华盛顿州雷蒙德市微软公司的MICROSFT AZURE或华盛顿州西雅图市亚马逊公司的AWS)的各方面。操作系统还可以包括华盛顿州雷蒙德市微软公司的WINDOWS MOBILE OS、微软公司的WINDOWS PHONE OS、微软公司的WINDOWS、加利福尼亚州帕洛阿尔托的惠普公司的PALM WEBOS、加拿大安大略省滑铁卢市捷迅有限公司的BLACKBERRY OS、加利福尼亚州库比蒂诺的苹果公司的MAC OS或IOS以及加利福尼亚州山景城的谷歌公司的ANDROID OS。可以设想其他操作系统。
[0105] 网络连接组件706包括无线广域网组件(“WWAN组件”)722、无线局域网组件(“WLAN组件”)724和无线个域网组件(“WPAN组件”)726。网络连接组件706促进与网络756或另一网络(可以是WWAN、WLAN或WPAN)的通信。尽管仅示出了网络756,但是网络连接组件706可以促进与包括图5的网络556在内的多个网络的同时通信。例如,网络连接组件706可以促进经由WWAN、WLAN或WPAN中的一个或多个与多个网络同时通信。
[0106] 网络756可以是或可以包括WWAN,例如利用一种或多种移动电信技术以经由WWAN组件722向利用计算设备架构700的计算设备提供语音和/或数据服务的移动电信网络。移动电信技术可以包括(但不限于)全球移动通信系统(“GSM”)、码分多址(“CDMA”)ONE、CDMA7000、通用移动电信系统(“UMTS”)、长期演进(“LTE”)和全球微波接入互操作性(“WiMAX”)。此外,网络756可以利用(上述标准可以使用或可以不使用的)各种信道接入方法,其包括(但不限于)时分多址(“TDMA”)、频分多址(“FDMA”)、CDMA、宽带CDMA(“W-CDMA”)、正交频分复用(“OFDM”)、空分多址(“SDMA”)等。可以使用通用分组无线业务(“GPRS”)、增强型数据速率全球演进(“EDGE”)、包括高速下行链路分组接入(“HSDPA”)、增强型上行链路(“EUL”)或以其他方式的称为高速上行链路分组接入(“HSUPA”)、演进的HSPA(“HSPA+”)在内的高速分组接入(“HSPA”)协议族、LTE和各种其他当前和将来的无线数据接入标准来提供数据通信。网络756可以被配置为使用以上技术的任何组合来提供语音和/或数据通信。网络756可以被配置为或适合于根据下一代技术来提供语音和/或数据通信。
[0107] 在一些配置中,WWAN组件722被配置为向网络756提供双多模式(dual-multi-mode)连接。例如,WWAN组件722可以被配置为提供针对网络756的连接,其中,网络756经由GSM和UMTS技术或经由各技术的某个其他组合来提供服务。备选地,可以利用多个WWAN组件722来执行这样的功能和/或提供附加的功能以支持其他不兼容的技术(即,不能由单个WWAN组件支持)。WWAN组件722可以促进针对多个网络(例如,UMTS网络和LTE网络)的类似连接。
[0108] 网络756可以是根据一个或多个电气和电子工程师协会(“IEEE”)802.11标准(例如IEEE 802.11a、802.11b、802.11g、802.11n和/或将来的802.11标准(本文统称为WI-FI))来操作的WLAN。还设想802.11标准草案。在一些配置中,利用一个或多个无线WI-FI接入点来实现WLAN。在一些配置中,一个或多个无线WI-FI接入点是充当WI-FI热点的具有针对WWAN的连接的另一计算设备。WLAN组件724被配置为经由WI-FI接入点连接到网络756。可以经由各种加密技术来保护此类连接,该加密技术包括(但不限于)WI-FI保护接入(“WPA”)、WPA2、有线等效保密(“WEP”)等。
[0109] 网络756可以是根据红外数据协会(“IrDA”)、蓝牙、无线通用串行总线(“USB”)、Z-Wave、ZIGBEE或某种其他短距离无线技术来操作的WPAN。在一些配置中,WPAN组件726被配置为促进经由WPAN与诸如外围设备、计算机或其他计算设备之类的其他设备通信。
[0110] 传感器组件708包括磁力计728、环境光传感器730、接近传感器732、加速度计734、陀螺仪736和全球定位系统传感器(“GPS传感器”)738。可以设想,其他传感器,例如(但不限于)温度传感器或冲击检测传感器,也可以被并入计算设备架构700中。
[0111] I/O组件710包括显示器740、触摸屏742、数据I/O接口组件(“数据I/O”)744、音频I/O接口组件(“音频I/O”)746、视频I/O接口组件(“视频I/O”)748和相机750。在一些配置中,将显示器740和触摸屏742加以组合。在一些配置中,数据I/O组件744、音频I/O组件746和视频I/O组件748中的两个或更多个组合在一起。I/O组件710可以包括被配置为支持以下描述的各种接口的分立处理器,或者可以包括内置于处理器702中的处理功能。
[0112] 所示的电源组件712包括一个或多个电池752,其可以连接至电池计量器754。电池752可以是可充电的或一次性的。可充电电池类型包括(但不限于)锂聚合物、锂离子、镍镉和镍金属氢化物。电池752中的每个电池可以由一个或多个单元制成。
[0113] 电源组件712还可以包括电源连接器,该电源连接器可以与一个或多个上述I/O组件710组合。电源组件712可以经由I/O组件与外部电源系统或充电设备接口对接。
[0114] 最后,尽管已经以特定于结构特征和/或方法动作的语言描述了各种配置,但是应当理解的是,在所附表示中限定的主题不必受限于描述的特定特征或动作。相反,特定特征和动作是作为实现所要求保护的主题的示例形式而公开的。
[0115] 考虑到以下示例给出了本公开:
[0116] 示例1:一种计算机实现的密钥管理方法,包括:在密钥源处创建加密密钥;生成与所述加密密钥相对应的密钥区块链账本的创世区块;安全地修改所述创世区块以包括描述所述密钥源的元数据;执行关于所述加密密钥的第一密钥交易;生成与关于所述加密密钥的所述第一密钥交易相对应的第一交易区块,并将所述第一交易区块添加到所述密钥区块链账本中;以及安全地修改所述第一交易区块以包括描述关于所述加密密钥的所述第一密钥交易的元数据。
[0117] 示例2:根据示例1所述的密钥管理方法,其中,安全地修改所述第一交易区块包括:使用区块链修订和修改功能中的至少一项来修改所述第一交易区块,以包括描述关于所述加密密钥的所述第一密钥交易的元数据。
[0118] 示例3:根据示例1所述的密钥管理方法,所述方法包括:检测对与所述加密密钥相关联的数据或系统的攻击;使用所述密钥区块链账本中的交易区块的元数据来跟踪所述加密密钥到攻击点;确定与所述攻击点相对应的交易区块;以及使用来自与所述攻击点相对应的交易区块的元数据来生成指示所述攻击点的警报。
[0119] 示例4:根据示例1所述的密钥管理方法,其中:关于所述加密密钥的所述第一密钥交易包括轮换所述加密密钥;以及描述所述第一密钥交易的元数据包括描述所述加密密钥的轮换的元数据。
[0120] 示例5:根据示例1所述的密钥管理方法,其中,描述所述第一密钥交易的元数据包括以下一项或多项:被应用了所述加密密钥的数据、对所述加密密钥执行的操作、利用所述加密密钥的库、对所述加密密钥执行操作的机器或所述加密密钥所在的机器。
[0121] 示例6:根据示例1所述的密钥管理方法,所述方法包括:执行关于所述加密密钥的第二密钥交易;生成与关于所述加密密钥的所述第二密钥交易相对应的第二交易区块,并将所述第二交易区块添加到所述密钥区块链账本中;以及安全地修改所述第二交易区块以包括描述关于所述加密密钥的所述第二密钥交易的元数据。
[0122] 示例7:根据示例1所述的密钥管理方法,所述方法包括:向多个节点广播所述第一交易区块;在所述多个节点中的一个节点中计算所述第一交易区块的验证解;以及向所述多个节点中的至少一个其它节点广播所述第一交易区块的所述验证解,以验证所述密钥区块链账本上的所述交易区块。
[0123] 示例8:根据示例1所述的密钥管理方法,所述方法包括:在授权的中央控制节点中验证所述第一密钥交易区块;以及向多个节点广播对所述第一交易区块的验证。
[0124] 示例9:一种用于密钥管理的系统,所述系统包括:一个或多个处理器;以及与所述一个或多个处理器通信的一个或多个存储器设备,所述存储器设备具有存储在其上的计算机可读指令,所述计算机可读指令当由所述处理器执行时使所述处理器:在密钥源处创建加密密钥;生成与所述加密密钥相对应的密钥区块链账本的创世区块;安全地修改所述创世区块以包括描述所述密钥源的元数据;执行关于所述加密密钥的第一密钥交易;生成与关于所述加密密钥的所述第一密钥交易相对应的第一交易区块,并将所述第一交易区块添加到所述密钥区块链账本中;以及安全地修改所述第一交易区块以包括描述关于所述加密密钥的所述第一密钥交易的元数据。
[0125] 示例10:根据示例9所述的密钥管理系统,其中,所述系统通过以下方式来安全地修改所述第一交易区块:使用区块链修订和修改功能中的至少一项来修改所述第一交易区块,以包括描述关于所述加密密钥的所述第一密钥交易的元数据。
[0126] 示例11:根据示例9所述的密钥管理系统,所述系统被配置为进行操作以:检测对与所述加密密钥相关联的数据或系统的攻击;使用所述密钥区块链账本中的交易区块的元数据来跟踪所述加密密钥到攻击点;确定与所述攻击点相对应的交易区块;以及使用来自与所述攻击点相对应的交易区块的元数据来生成指示所述攻击点的警报。
[0127] 示例12:根据示例9所述的密钥管理系统,其中:关于所述加密密钥的所述第一密钥交易包括轮换所述加密密钥;以及描述所述第一密钥交易的元数据包括描述所述加密密钥的轮换的元数据。
[0128] 示例13:根据示例9所述的密钥管理系统,其中,描述所述第一密钥交易的元数据包括以下一项或多项:被应用了所述加密密钥的数据、对所述加密密钥执行的操作、利用所述加密密钥的库、对所述加密密钥执行操作的机器或所述加密密钥所在的机器。
[0129] 示例14:根据示例9所述的密钥管理系统,其中,所述系统被配置为进行操作以:执行关于所述加密密钥的第二密钥交易;生成与关于所述加密密钥的所述第二密钥交易相对应的第二交易区块,并将所述第二交易区块添加到所述密钥区块链账本中;以及安全地修改所述第二交易区块以包括描述关于所述加密密钥的所述第二密钥交易的元数据。
[0130] 示例15:根据示例9所述的密钥管理系统,其中,所述系统被配置为进行操作以:向多个节点广播所述第一交易区块;在所述多个节点中的一个节点中计算所述第一交易区块的验证解;以及向所述多个节点中的至少一个其它节点广播所述第一交易区块的所述验证解,以验证所述密钥区块链账本上的所述交易区块。
[0131] 示例16:根据示例9所述的密钥管理系统,其中,所述系统被配置为进行操作以:在授权的中央控制节点中验证所述第一密钥交易区块;以及向多个节点广播对所述第一交易区块的验证。
[0132] 示例17:一种具有存储在其上的计算机可执行指令的计算机存储介质,所述计算机可执行指令当由一个或多个处理二器执行时,使所述处理器执行密钥管理方法,所述密钥管理方法包括:在密钥源处创建加密密钥;生成与所述加密密钥相对应的密钥区块链账本的创世区块;安全地修改所述创世区块以包括描述所述密钥源的元数据;执行关于所述加密密钥的第一密钥交易;生成与关于所述加密密钥的所述第一密钥交易相对应的第一交易区块,并将所述第一交易区块添加到所述密钥区块链账本中;以及安全地修改所述第一交易区块以包括描述关于所述加密密钥的所述第一密钥交易的元数据。
[0133] 示例18:根据示例17所述的计算机存储介质,其中,安全地修改所述第一交易区块包括:使用区块链修订和修改功能中的至少一项来修改所述第一交易区块,以包括描述关于所述加密密钥的所述第一密钥交易的元数据。
[0134] 示例19:根据示例17所述的计算机存储介质,所述方法包括:检测对与所述加密密钥相关联的数据或系统的攻击;使用所述密钥区块链账本中的交易区块的元数据来跟踪所述加密密钥到攻击点;确定与所述攻击点相对应的交易区块;以及使用来自与所述攻击点相对应的交易区块的元数据来生成指示所述攻击点的警报。
[0135] 示例20:根据示例17所述的计算机存储介质,其中:关于所述加密密钥的所述第一密钥交易包括轮换所述加密密钥;以及描述所述第一密钥交易的元数据包括描述所述加密密钥的轮换的元数据。
[0136] 示例21:根据示例17所述的计算机存储介质,其中,描述所述第一密钥交易的元数据包括以下一项或多项:被应用了所述加密密钥的数据、对所述加密密钥执行的操作、利用所述加密密钥的库、对所述加密密钥执行操作的机器或所述加密密钥所在的机器。
[0137] 示例22:根据示例17所述的计算机存储介质,所述方法包括:执行关于所述加密密钥的第二密钥交易;生成与关于所述加密密钥的所述第二密钥交易相对应的第二交易区块,并将所述第二交易区块添加到所述密钥区块链账本中;以及安全地修改所述第二交易区块以包括描述关于所述加密密钥的所述第二密钥交易的元数据。
[0138] 示例23:根据示例17所述的计算机存储介质,所述方法包括:向多个节点广播所述第一交易区块;在所述多个节点中的一个节点中计算所述第一交易区块的验证解;以及向所述多个节点中的至少一个其它节点广播所述第一交易区块的所述验证解,以验证所述密钥区块链账本上的所述交易区块。
[0139] 示例24:根据示例17所述的计算机存储介质,所述方法包括:在授权的中央控制节点中验证所述第一密钥交易区块;以及向多个节点广播对所述第一交易区块的验证。