CN115552441A - 低信任特权访问管理 - Google Patents
低信任特权访问管理 Download PDFInfo
- Publication number
- CN115552441A CN115552441A CN202180032962.3A CN202180032962A CN115552441A CN 115552441 A CN115552441 A CN 115552441A CN 202180032962 A CN202180032962 A CN 202180032962A CN 115552441 A CN115552441 A CN 115552441A
- Authority
- CN
- China
- Prior art keywords
- access
- request
- transaction
- blockchain
- information system
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/105—Multiple levels of security
-
- 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/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/102—Entity profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- 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/3239—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 non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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/3247—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 digital 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Software Systems (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Economics (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Marketing (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Automation & Control Theory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
- Preparation Of Compounds By Using Micro-Organisms (AREA)
Abstract
一种访问管理处理协调方法、访问管理支配协调器和计算机程序产品。一个实施例可以包括接收用于访问信息***的被管理的资源的请求,从访问管理器查询用于访问该资源的授权,以及响应于该授权的查询,请求访问控制策略更新以准许对该被管理的资源的访问。接收请求、查询授权以及请求访问控制策略更新可以包括生成交易记录,以及将交易记录添加到分布式账本,其中分布式账本同时在整个网络的多个节点处维护交易记录。
Description
背景技术
本公开涉及计算机安全,并且更具体地,涉及协调(orchestrate)对存储/处理敏感数据的关键IT***上的特权和管理功能的访问。
1948年的电子离散变量自动计算机(EDVAC)***的开发经常被引用为计算机时代的开始。从那时起,计算机***已经发展成为极其复杂的设备。当今的计算机***通常包括复杂的硬件和软件组件、应用程序、操作***、处理器、总线、存储器、输入/输出设备等的组合。随着半导体处理和计算机架构的进步推动计算机的性能越来越高,甚至更高级的计算机软件也已经发展为利用硬件的更高性能,导致今天的计算机***比仅仅几年前强大得多。
当今的计算机***对于技术进步是必要的,并且已经成为日常生活的重要部分。结果,这些计算***的安全性的技术问题的重要性增加。计算机安全的一个重要方面是特权访问管理和特权帐户管理。特权用户是在计算***中具有较高访问级别(例如,***的管理员或“根(root)”超级用户)和/或具有特殊访问级别(例如,读取和写入具有秘密信息的文件的能力)的用户。特权访问管理和特权帐户管理又通常涉及管理和审计向那些特权用户提供***和数据访问的帐户。
发明内容
根据本公开的实施例,提供了一种访问管理过程协调方法。一个实施例可以包括接收用于访问信息***的被管理的资源的请求,从访问管理器查询用于访问该资源的授权,以及响应于对该授权的查询,请求访问控制策略更新以准许(grant)对该被管理的资源的访问。接收请求、查询授权以及请求访问控制策略更新可以包括生成交易记录,以及将交易记录添加到分布式账本(distributed ledger),其中分布式账本同时在整个网络的多个节点处维护交易记录。
根据本公开的实施例,一种访问管理支配协调器,包括与区块链网络相关联的对等体节点(peer node),区块链网络包括与资产所有者功能、管理员功能和审计员功能中的至少一个相关联的多个节点。对等体节点可以适于在分布式账本中记录来自信息***的用户的请求访问记录,记录来自资产所有者功能的所有者批准记录,所有者批准记录响应于分布式账本中的请求访问记录,执行响应于所述请求访问记录和所述所有者批准记录的智能合约,所述智能合约准许对所述信息***的访问,其中智能合约改变授权策略以允许用户对信息***的访问,以及在分布式账本中记录智能合约的执行记录。
根据本公开的实施例,一种计算机程序产品包括其上存储有多个指令的非瞬态计算机可读存储介质。当由处理器执行时,该指令可以使处理器接收用于访问信息***的被管理的资源的请求,从访问管理器查询对访问资源的授权,并且响应于查询授权,请求访问控制策略更新以准许对被管理的资源的访问。接收请求、查询授权以及请求访问控制策略更新可以包括生成交易记录,以及将交易记录添加到分布式账本。
上述发明内容并非旨在描述本公开的每个所示实施例或每种实施方式。
附图说明
本申请中包括的附图并入说明书中并形成说明书的一部分。它们示出了本公开的实施例,并且与说明书一起用于解释本公开的原理。附图仅说明某些实施例,而不限制本公开。
图1描绘了与一些实施例一致的云计算环境。
图2描绘了与一些实施例一致的抽象模型层。
图3描绘了与一些实施例一致的数据处理***。
图4是与一些实施例一致的特权协调器的示意图。
图5A描绘了与一些实施例一致的示例区块链架构配置。
图5B示出了与一些实施例一致的区块链交易流。
图6A示出了与一些实施例一致的流程图。
图6B示出了与一些实施例一致的另一流程图。
图6C示出了与一些实施例一致的被配置为执行这里描述的一个或多个操作的示例***。
图6D示出了与一些实施例一致的被配置为执行这里描述的一个或多个操作的另一示例***。
图6E示出了与一些实施例一致的被配置为利用智能合约的另一示例***。
图6F示出了根据一些实施例的包括区块链的***。
图7A示出了根据示例实施例的用于将新块添加到分布式账本的过程。
图7B示出了根据示例实施例的新数据块的内容。
图7C示出了根据示例实施例的数字内容的区块链。
图7D示出了根据示例性实施例的可表示区块链中的块的结构的块。
虽然本发明可以有各种修改和替换形式,但是其细节已经在附图中通过示例的方式示出并且将被详细描述。然而,应当理解,其目的不是将本发明限制于所描述的特定实施例。相反,本发明覆盖落入本发明的精神和范围内的所有修改、等效和替换。
具体实施方式
本公开的各方面涉及计算机安全;更具体的方面涉及协调对存储/处理敏感数据的关键IT***上的特权和管理功能的访问。虽然本公开不一定限于此类应用,但是通过使用此上下文的各种示例的讨论可以理解本公开的各个方面。
IT安全的一个重要方面是管理特权用户的访问,诸如那些可以对存储/处理敏感数据的关键IT***执行管理动作的用户。特权用户对IT***的访问可以由访问控制***基于认证和授权策略来允许或拒绝。这些策略通常由IT***的最高级别管理员来设置。
有效的控制***可以尝试控制对安全策略的修改,以试图确保仅做出批准的改变(例如,当雇用新操作者时,并且因此需要访问IT***以执行他们的工作)。对安全策略的改变又可以由访问管理支配过程通过访问管理支配协调器来管理。
用于管理对IT***的访问的一些访问管理支配处理又可以包括以下动作中的一个或多个:(i)请求访问;(ii)批准访问;(iii)准许访问;(iv)审查访问;(v)撤销访问;以及(vi)授权访问。一些访问管理支配过程ES可以涉及以下实体中的一个或多个:(i)IT***的所有者;(ii)需要访问IT***的特权用户;(iii)IT***的安全的管理者,其控制对IT***的访问策略,该访问策略授权或拒绝对特权用户的访问;(iv)第三方审计机构;以及(v)访问管理过程协调器。
在一些实施例中,该过程可以包括以下工作流程:
1.寻求对IT***中的被管理的资产的授权的用户提交访问请求,通常向访问管理过程协调器提供理由(justification);
2.过程协调器确定谁是被管理的资产和/或IT***的所有者,并将请求路由到它;
3.资产和/或IT***的所有者接收访问请求,审查理由,决定批准或拒绝请求,并将批准/拒绝的请求返回给过程协调器;
4.如果请求被批准,则过程协调器向与被管理的资产和/或IT***相关联的管理者和/或本地控制***提交准许访问请求;
5.管理者和/或本地控制***接收请求,并通过对***的授权策略应用改变来准许请求用户访问,以使特权用户能够登录和访问***;
6.请求、批准/拒绝、访问准许动作由过程协调器记录在审计日志中;以及
7.第三方审计员机构从过程协调器请求审计日志,以审查是否已经根据规章(企业、政府、工业等)准许了访问,以及是否已经正确地应用了所有策略。
当特权用户完成其工作并且不再需要访问时,过程协调器可以向管理员和/或本地控制***提交撤销访问,这通过对***的安全性应用改变来移除访问。在第三方审计员机构(其可能已经标识出违反安全策略并引发请求访问撤销的安全事故)的审查之后,如果当前已经访问IT***的特权用户的IT***所有者仍然具有继续访问IT***的有效理由,则在特权用户的IT***所有者执行定期审查之后,当接收到来自特权用户的移除访问的请求,则分配给访问的最大时间到期,则过程协调器可以触发撤销请求。
在一些实施例中,访问管理支配协调器可以是接收和处理这些请求的***。在这些实施例中,访问管理支配协调器将请求路由到适当的所有者、管理员等。管理目标***的人或组织可以不同于拥有目标***的人或组织:例如拥有数据库***并使用外部安全组织来管理该过程的银行。IT***的管理员还可以是自动***,其在没有判断或进一步验证的情况下执行由过程协调器组织路由到它的准许访问请求。
在一些实施例中,访问管理支配协调器可以有利地包括分布式账本(例如,区块链),其将分散权限并且通过在整个网络的多个点处同时维护交易记录来确保所有涉及方对操作的完全透明性。具体地,一些实施例可以提供访问管理支配处理,用于协调如何请求、批准、准许、撤销、校验等对授权策略的改变,包括访问管理支配协调器接口每个本地IT***访问控制***以请求对授权策略的改变。这样,一些实施例可以提供在参与者之间完成信任的替代方案,因为每个参与者知道没有其他方可以绕过访问管理过程,或者迫使/欺骗雇员准许/撤销访问,即使数据所有者没有发出批准,等等。
具有区块链的一些访问管理支配协调器实施例的一个优点在于,它们可以降低对从内部到访问管理***的攻击(例如,雇员的不良行为)的脆弱性。例如,在没有该特征的情况下,组织中的雇员和/或具有管理他们IT资产的外部组织的雇员可能具有足够的能力来篡改过程并违反安全策略。在这些情况下的欺诈雇员可以向IT***发送“准许访问”请求(即,没有来自***所有者的批准),并且篡改审计日志以隐藏或改变该访问批准。即使日志签名和其它防篡改技术在理论上也可以被具有足够权限的欺诈雇员所规避,例如通过黑客攻击它完全拥有的集中式***代码/配置、停止对欺诈用户的任何访问撤销、向第三方审计员提供未显示安全策略违反的经篡改审计日志等。相反,使用区块链的访问管理支配协调器可以向IT***的所有者、那些IT***的管理员和/或数据管理员提供在所有者没有明确地和透明地批准访问的情况下不能向***和/或数据授予访问的置信度。使用区块链的实施例可进一步帮助重新保证归档的过程(documented processes)不能被绕过的审计员和监管者。这些特征和优点在涉及敏感个人信息、服从规章的数据、机密信息、贸易秘密信息等的情形中可具有特定用途。
另外,一些实施例可确保没有人可伪造“AccessApproved”和“GrantAccess”交易并将它们添加到区块链账本。如果某人确实侵入节点以伪造交易并将它们推入账本,则这些实施例可能不会达成接受交易的共识(consensus)。这又可能是所希望的,因为在一些实施例中,“访问管理器”不再需要成为特权角色,或者甚至不再需要被信任。即,IT所有者可以确信在分布式账本中接受的交易已经被不同方控制的多个节点校验,并且因此没有批准被伪造。或者甚至进一步防止可能出现伪造交易的代码黑客,一些实施例可允许所有者和IT管理员可选地部署其自己的私有节点(即,完全控制代码实现和配置)并将其添加到区块链网络。以这种方式,一些实施例可以提供参与者之间的改进的信任,因为每个参与者知道没有个体或实体能够避开访问管理过程或迫使/欺骗某人准许/撤销访问,即使数据所有者没有发出批准。
一些实施例可以允许IT管理员由目标***的所有者来校验诸如GrantAccess(准许访问)交易和相关联的AccessApproved(访问批准)交易的交易。如果交易与IT管理员所具有的信息不一致,则IT管理员可以阻止该准许。这样,如果IT管理员怀疑试图破坏账本一致性的黑客活动,则他们可以仅从网络断开违规源,或者可以请求网络禁止相关联的访问管理器(并且,如果区块链网络达成一致,访问管理器甚至可以从区块链网络中移除)。
一些实施例还可以提供更好的可审计性,因为对交易序列的审计可以由区块链***密码地保护。在这些实施例中,分布式账本可以是不可变的,并且因此,所接受的交易不能被改变、黑客攻击等。此外,当且仅当网络达成它们有效的共识时,才可以保证交易在分布式账本中被接受。即使在代码改变、协议欺骗/伪造等的情况下,试图将伪造交易侵入账本的攻击者,即使有代码改变、协议欺骗/伪造等,也需要侵入足够多的网络节点,以迫使对伪造交易达成共识。这种可能性具有非常低的成功概率,这甚至可以进一步降低,确保多个(独立的)审计员参与网络并且在大多数审计员没有达成协议的情况下没有共识。在这些实施例中,加入网络以校验交易的审计组织可以为了进一步保护不受可能向它们呈现伪造交易的代码黑客攻击而部署它们的私有节点(具有对代码实现和配置的完全控制)并且将它们添加到区块链网络。
一些实施例可以进一步提供忽略安全过程的分布式***的高可用性。在这些实施例中,一个或多个节点的故障不会影响全局区块链的可用性,并且客户端可以连接到其他节点。
云计算
图1示出了与一些实施例一致的云环境。应当理解,尽管本公开包括关于云计算的详细描述,但是本文所陈述的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。
云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的按需网络访问,所述可配置计算资源可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
·按需自助:云消费者可以单方面地自动地根据需要提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者进行人工交互。
·广域网访问:能力在网络上可用,并且通过促进由异构的薄或厚客户端平台(例如,移动电话、膝上型计算机和PDA)使用的标准机制来访问。
·资源池化:供应商的计算资源被集中以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和重新分配。存在位置无关的意义,因为消费者通常不控制或不知道所提供的资源的确切位置,但是能够在较高抽象级别(例如国家、州或数据中心)指定位置。
·快速弹性:在一些情况下,可以快速且弹性地提供快速向外扩展的能力和快速向内扩展的能力。对于消费者,可用于提供的能力通常看起来不受限制,并且可以在任何时间以任何数量购买。
·测量服务:云***通过利用在适合于服务类型(例如,存储、处理、带宽和活动客户账户)的某一抽象级别的计量能力来自动地控制和优化资源使用。可以监视、控制和报告资源使用,从而为所利用服务的提供者和消费者两者提供透明性。
服务模型如下:
·软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用程序可通过诸如web浏览器(例如,基于web的电子邮件)等瘦客户端界面从各种客户端设备访问。消费者不管理或控制包括网络、服务器、操作***、存储、或甚至单独应用能力的底层云基础结构,可能的例外是有限的客户专用应用配置设置。
·平台即服务(PaaS):提供给消费者的能力是将消费者创建或获取的应用部署到云基础设施上,该消费者创建或获取的应用是使用由提供商支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作***或存储的底层云基础设施,但具有对部署的应用和可能的应用托管环境配置的控制。
·基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其它基本计算资源,所述软件可以包括操作***和应用。消费者不管理或控制底层云基础设施,但具有对操作***、存储、部署的应用的控制,以及可能对选择的联网组件(例如,主机防火墙)的有限控制。
部署模型如下:
·私有云:云基础设施仅为组织操作。它可以由组织或第三方管理,并且可以存在于建筑物内或建筑物外。
·社区云:云基础设施由若干组织共享,并且支持具有共享关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
·公共云:云基础设施可用于一般公众或大型工业群体,并且由销售云服务的组织拥有。
·混合云:云基础设施是两个或更多云(私有、社区或公共)的组合,所述云保持唯一实体,但是通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
云计算环境是面向服务的,其焦点在于无状态、低耦合、模块性和语义互操作性。在云计算的核心是包括互连节点的网络的基础设施。
现在参考图1,描绘了说明性云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,所述本地计算设备诸如例如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机***54N。节点10可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。应当理解,图1中所示的计算设备54A-N的类型仅旨在说明,并且计算节点10和云计算环境50可以通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化设备通信。
现在参考图2,示出了由云计算环境50(图1)提供的一组功能抽象层。应当预先理解,图2中所示的组件、层和功能仅旨在说明,并且本发明的实施例不限于此。如所描绘的,提供了以下层和对应的功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:主机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储装置65;以及网络和网络组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作***74;以及虚拟客户端75。
在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其它资源的动态采购。计量和定价82提供了在云计算环境中利用资源时的成本跟踪,以及用于消耗这些资源的开帐单或***。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。客户入口83为消费者和***管理员提供对云计算环境的访问。服务级别管理84提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(SLA)规划和履行85提供对云计算资源的预安排和采购,其中根据SLA预期未来需求。
工作负载层90提供了可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:绘图和导航91;软件开发和生命周期管理92;虚拟教室教育传送93;数据分析处理94;交易处理95;以及访问管理支配协调器96。
数据处理***
图3示出了根据一些实施例的适合用作云计算环境50中的云计算节点10的数据处理***(DPS)300的实施例。在一些实施例中,DPS 300被实现为个人计算机;服务器计算机;便携式计算机,诸如膝上型或笔记本计算机、PDA(个人数字助理)、平板计算机或智能电话;嵌入到诸如汽车、飞机、电话会议***、电器的较大设备中的处理器;智能设备;或任何其它适当类型的电子设备。此外,可以存在不同于图3所示的组件或除了这些组件之外的组件,并且这些组件的数量、类型和配置可以改变。此外,图3仅描绘了DPS300的代表性主要组件,并且各个组件可以具有比图3中所表示的更大的复杂度。
图3中的数据处理***300包括通过***总线322连接到存储器312的多个中央处理单元310a-310d(这里一般称为处理器310或CPU 310)、大容量存储接口314、终端/显示器接口316、网络接口318和输入/输出(“I/O”)接口320。在该实施例中,大容量存储接口314将***总线322连接到一个或多个大容量存储设备,诸如直接存取存储设备340、通用串行总线(“USB”)存储设备341或可读/可写光盘驱动器342。网络接口318允许DPS 300通过通信介质306与其他DPS 300通信。存储器312还包含操作***324、多个应用程序326和程序数据328。
图3中的数据处理***300实施例是通用计算设备。因此,处理器310可以是能够执行存储在存储器312中的程序指令的任何设备,并且其自身可以由一个或多个微处理器和/或集成电路构成。在该实施例中,DPS 300包含多个处理器和/或处理核,这对于较大的、能力更强的计算机***是典型的;然而,在其它实施例中,计算***300可以包括单个处理器***和/或被设计为仿真多处理器***的单个处理器。此外,处理器310可以使用多个异构数据处理***300来实现,其中主处理器与辅助处理器一起存在于单个芯片上。作为另一个说明性示例,处理器310可以是包含相同类型的多个处理器的对称多处理器***。
当数据处理***300启动时,相关的处理器310最初执行构成操作***324的程序指令,该操作***管理DPS 300的物理和逻辑资源。这些资源包括存储器312、大容量存储接口314、终端/显示器接口316、网络接口318和***总线322。如同处理器310一样,一些DPS300的实施例可以利用多个***接口314、316、318、320和总线322,这些接口又可以各自包括它们自己的单独的、完全编程的微处理器。
用于操作***、应用和/或程序的指令(一般称为“程序代码”、“计算机可用程序代码”或“计算机可读程序代码”)可以最初位于大容量存储设备340、341、342中,其通过***总线322与处理器310通信。不同实施例中的程序代码可以在不同的物理或有形计算机可读介质上实现,诸如***存储器312或大容量存储设备340、341、342。在图3的说明性示例中,指令以持久性存储装置的功能形式存储在直接存取存储设备340上。然后,这些指令被加载到存储器312中以便由处理器310执行。然而,程序代码也可以以功能形式位于可选择性地移除的计算机可读介质342上,并且可以被加载到或传送到DPS 300以便由处理器310执行。
***总线322可以是便于处理器310之间的通信的任何设备;存储器312;以及接口314、316、318、320。此外,尽管在该实施例中的***总线322是相对简单的单个总线结构,其提供***总线322之间的直接通信路径,但是其它总线结构与本公开一致,包括但不限于分层的点对点链路、星形或网状配置、多个分层总线、并行和冗余路径等。
存储器312和大容量存储设备340、341、342协同工作以存储操作***324、应用程序326和程序数据328。在本实施例中,存储器312是能够存储数据和程序的随机存取半导体器件。尽管图3概念性地将该设备描述为单个单片实体,但是在一些实施例中,存储器312可以是更复杂的布置,诸如高速缓存和其它存储器设备的层级。例如,存储器312可存在于多级高速缓存中,并且这些高速缓存可进一步按功能划分,使得一个高速缓存保存指令,而另一个高速缓存保存由一个或多个处理器使用的非指令数据。存储器312还可以是分布式的,并且与不同的处理器310或处理器310的集合相关联,如在各种所谓的非均匀存储器访问(NUMA)计算机架构中的任何一种中已知的。此外,一些实施例可以利用虚拟寻址机制,该机制允许DPS 300表现为好像其访问了大的单个存储实体,而不是访问了多个更小的存储实体,诸如存储器312和大容量存储设备340、341、342。
尽管操作***324、应用程序326和程序数据328被示为包含在存储器312内,但在某些实施例中,它们中的一些或全部可物理地位于不同的计算机***上,并且可例如经由通信介质306远程访问。因此,尽管操作***324、应用程序326和程序数据328被示为包含在存储器312内,但是这些元件不必同时完全包含在同一物理设备中,并且甚至可以驻留在其他DPS 300的虚拟存储器中。
***接口314、316、318、320支持与各种存储和I/O设备的通信。大容量存储接口314支持一个或多个大容量存储设备340、341、342的附接,这些大容量存储设备通常是旋转磁盘驱动存储设备、使用集成电路组件作为存储器以持久地存储数据(通常使用闪存)的固态存储设备(SSD)、或两者的组合。然而,大容量存储设备340、341、342也可以包括其它设备,包括被配置为对于主机表现为单个大型存储设备的盘驱动器阵列(通常称为RAID阵列)和/或档案存储介质,诸如硬盘驱动器、磁带(例如,迷你DV)、可写压缩盘(例如,CD-R和CD-RW)、数字多功能盘(例如,DVD、DVD-R、DVD+RW、DVD-RAM)、全息存储***、蓝色激光盘、IBMMillipede设备等。
终端/显示器接口316用于将一个或多个显示单元,诸如监视器380,直接连接到数据处理***300。这些显示单元380可以是非智能(即哑)终端,诸如LED监视器,或者它们本身可以是用于允许IT管理员和客户与DPS 300通信的完全可编程的工作站。然而,注意,虽然提供显示接口316以支持与一个或多个显示单元380的通信,但是计算机***300不一定需要显示单元380,因为与客户和其他过程的所有所需交互都可以经由网络接口318发生。
通信介质306可以是任何合适的网络或网络的组合,并且可以支持任何合适的协议,该协议适于向/从多个DPS 300传送数据和/或代码。因此,网络接口318可以是促进这种通信的任何设备,而不管网络连接是使用当今的模拟和/或数字技术还是经由未来的某种联网机制来进行的。合适的通信介质306包括但不限于使用“InfiniBand”或IEEE(电气和电子工程师协会)802.3x“以太网”规范中的一个或多个实现的网络;蜂窝传输网络;无线网络实现IEEE 802.11x、IEEE 802.16、通用分组无线服务(“GPRS”)、FRS(家庭无线服务)或蓝牙规范之一;超宽带(“UWB”)技术,例如FCC 02-48中描述的技术;或类似物。本领域技术人员将理解,许多不同的网络和传输协议可被用于实现通信介质306。传输控制协议/网际协议(“TCP/IP”)套件包含合适的网络和传输协议。
访问管理支配协调器
图4是与一些实施例一致的访问管理支配协调器400的示意图。参考经由区块链470通信的***所有者功能450、审计员功能455、请求***特权的用户功能460和***管理员功能465来描述该访问管理支配协调器400实施例。在说明性的交易中,用户从访问管理支配协调器400请求附加特权405,并且所有者功能450可以批准或拒绝该请求415。在所有者功能450批准该请求之后,***管理员功能465可以准许(一个或多个)物理IT***上的对应的访问425、430。审计员455可以确认410所有者批准了那些新特权。在一些实施例中,***所有者功能450、审计员功能455、请求***特权的用户460和***管理员功能465可以全部是不同法律实体的一部分,并且因此可以使用不同的内部技术***来管理访问。在这些用例中,不同的功能可以经由标准化应用编程接口(API)等与访问管理支配协调器400接口。
在该实施例中,区块链470可以是位于不同的逻辑、物理和实***置(地理、组织、托管等)的节点471A、471B、471C、471D(统称为节点471)的网络。节点471可经由加密的网络通信通道472彼此连接。在一些实施例中,如果并且只有当它们已经被区块链470中的其他先前存在的节点471根据共识协议批准这样做时,节点471可以被添加到区块链470中。
在该实施例中,每个节点471可维护列出提交给区块链470的所有接受的交易的分布式账本473的副本(为了清楚起见,在图4中仅示出一个副本)。当且仅当区块链470中的节点471之间根据共识协议存在一致时,才可接受该实施例中的交易。在该实施例中,交易只能被添加到分布式账本473,因为分布式账本473中的所有过去的交易是不可变的并且不能被改变,此外,分布式账本473可以被密码地签名以确保篡改记录实际上是不可能的。
在一些实施例中,节点471可执行智能合约(即,由在账本473中处理交易的客户端(client)提交的计算机程序,诸如以数字化地促进、验证或强制执行交易)。它们的职责可以包括但不限于:(i)校验交易,即参与接受账本中的新交易的共识协议;(ii)向账本提供可以接受或可以不接受的新交易;以及(iii)执行与外部客户端的动作以处理一个或多个交易。可以在区块链470的所有节点471上并行执行智能合约,并且只有当且仅当根据共识协议在网络中的节点471之间存在一致时,智能合约的结果才可以被区块链470接受。
在一些实施例中,区块链470可以是许可的区块链。在这些实施例中,C个客户端(例如,用户、软件应用)可仅经由节点471A、471B、471C、471D连接到区块链470,这些节点认证并授权。这些实施例中的客户端可调用区块链网络API来提交交易、查询交易状态和属性等。这些交易可以包括但不限于:(i)客户端提出要添加到账本的新交易,然后通过共识协议使它们被分布式账本接受;(ii)客户端检查他们被授权处理的分布式账本所接受的新交易;以及(iii)客户端向区块链470提交智能合约。
在一些实施例中,访问管理***可以通过使用区块链470来实现,以使得能够将身份关联到已经被准许了连接/呼叫由区块链470提供的服务的访问权限的实体。这些实体可以具有连接到现有节点471A、471B、471C、471D或添加它们可以连接的附加节点(未示出)的权限。这些实体还可以具有提交来自它们所连接的节点471A、471B、471C、471D的智能合约并与之交互的权限。实体以及它们提交的智能合约可以具有获得/提交具有与访问策略标准匹配的属性的交易的权限。
区块链网络API
一些实施例可以支持以下类型的交易,以及以下属性:
RequestAccess(UID、ITSystemID、特权、原因)
AccessApproved(UID,ITSystemID,特权,UIDOwner,批准描述,RequestTID)
AccessDenied(UID,ITSystemID,特权,UID_downer,拒绝描述,请求TID)
GrantAccess(UID,ITSystemID,特权,UIDAdmin,原因,批准描述,ApprovalTID)
AccessGranted(UID,ITSystemID,特权,UIDAdmin,原因,批准说明,ApprovalTID)
RevokeAccess(UID,ITSystemID,UIDAM/UIDAuditor,原因)
AccessRevoked(UID,ITSystemID,UIDAM/UIDAuditor,原因)
RequestValidationP()
1.关于新RequestAccess(UID、ITSystemID、特权、原因)交易
2.查找***ITSystemiD的UIDOwner
3.提交交易RequestApproveAccess(UID,ITSystemID,特权,UIDOwner,原因,请求TID)
OwnerApprovalP(ITSystemID)
1.关于具有ITSystemID==ITSystemID的新RequestAccess(UID,ITSystemID,特权,UIDOwner)交易
2.验证由UID提供的用于请求访问具有特权的ITSystemID的原因是有效的3.如果有效
1.提交交易ApprovalTID=AccessApproved(UID,ITSystemID,特权,UIDOwner,批准描述,RequestTID)
2.提交交易GrantAccess(UID,ITSystemID,特权,UIDOwner,批准描述,ApprovalTID)
4.否则提交交易AccessDenied(UID,ITSystemID,特权,UIDOwner,拒绝描述,请求TID)
GrantAccessP(ITSystemID)
1.关于具有ITSystemID==ITSystemID的新AccessGranted(UID,ITSystemID,特权,UIDOwner,批准描述,RequestTID)交易
2.对UIDOwner是ITSystemID的所有者的双重检查,然后向ITSystemID访问控制(授权)***发送消息以执行动作:用参数UID、ITSystemID、特权、UIDOwner、批准描述、RequestTID来准许。
准许动作改变授权策略以允许用户UID访问***ITSystemID。LogAccess(ITSystemID)
1.等待来自Bob的请求以执行动作准许或撤销传递参数:UID、ITSystemID、UIDAdmin、描述、请求TID
2.如果action=grant(动作=准许),则更新UID的访问并提交ccessGranted交易(UID,ITSystemID,特权,UIDAdmin,描述,ApprovalTID)
3.否则action=revoke(动作=撤销),则撤销UID的访问并提交交易AccessRevoked(UID,ITSystemID,UIDOwner,description,ApprovalTID)
RevokeAccessP(ITSystemID)
1.关于具有ITSystemID==ITSystemID的新RevokeAccess(UID,ITSystemID,UIDOwner,原因,RequestTID)交易
2.对UIDOwner有效的双重检查,然后向ITSystemID访问控制(授权)***发送消息,以利用参数UID、ITSystemID、UIDOwner、撤销描述、RequestTID执行动作撤销)
撤销动作改变授权策略以拒绝用户UID访问***ITSystemID。AuditActionsP(ITSystemID的列表)
1.关于具有ITSystemID列表中的ITSystemID的新交易
2.校验交易并且遵守安全策略。例如:
·RequestApprove:RequestTID是UID的RequestAccess,UIDOwner是ITSystemID的所有者,原因是有效的·GrantAccess:ApprovalTID是UID/SystemID的AccessApproved交易,UIDOwner是ITSystemID的所有者,批准原因是有效的·AccessGranted:ApprovalTID是UID/SystemID的AccessApproved交易,UIDOwner是ITSystemID的所有者,UIDAdmin是SystemID的管理员,批准原因是有效的·如果策略未被遵守,则开放安全性事故
说明性示例
在说明性的示例中,如果具有以下指定身份的以下实体存在于特定的特权协调***中:
Eve:***ITSystemID1的所有者组织,
Eve:***ITSystemID2的所有者组织
Bob(真人或自动):***ITSystemID1、ITSystemID2的管理员
审计员:ITSystemID1、ITSystemID2的审计组织
Alice:特权用户
定义了以下访问策略:
Eve:读取具有属性ITSystemID=ITSystemID1、ITSystemID2的RequestAccess交易
Eve:提交具有属性ITSystemID=ITSystemID1、ITSystemID2的AccessApproved,AccessDeneed,GrantAccess,RevokeAccess交易
Bob:读取具有属性ITSystemID=ITSystemID1、ITSystemID2的GrantAccess、RevokeAccess、请求交易
Bob:ITSystemID1,ITSystemID2:提交具有属性ITSystemID=ITSystemID1、ITSystemID2的AccessGranted、AccessRevoked交易
审计员:读取具有任何属性的所有类型的交易
并且已经将以下节点添加到区块链470:
节点1:由访问管理组织托管的
节点2:由***ITSystemiDl、***ITSystemiD2的所有者组织托管
节点3:由***ITSystemID1、ITSystemID2的管理员托管
节点4:由ITSystemID1、ITSystemID2的审计组织托管
然后,在该说明性示例中,可由客户端调用操作中的区块链网络API来执行以下处理:
Alice连接到节点1以提交对ITSystemID1的访问请求
Eve连接到节点2并执行OwnerApprovalP(ITSystemID1)程序
Eve连接到节点2并执行OwnerApprovalSP(ITSystemID2)程序
Bob连接到节点3并执行GrantAccessP(ITSystemID1)程序
Bob连接到节点3并执行GrantAccessP(ITSystemID2)程序
Bob连接到节点3并执行RevokeAccessP(ITSystemID1)程序
Bob连接到节点3并执行RevokeAccessP(ITSystemID2)程序
ITSystemID1和ITSystemID2连接到节点3并执行LogAccessP()程序
审计员连接到节点4并执行AuditActionsP审计(ITSystemID1,ITSystemID2)以便执行
区块链架构
图5A示出了与一些实施例一致的区块链架构配置500。这些实施例中的区块链架构500可包括某些区块链元件,例如,一组区块链节点502。该一组块链节点502又可包括一个或多个成员节点504-510(这四个节点仅通过示例来描述)。这些成员节点504-510可参与多个活动,诸如区块链交易增加和校验过程(共识)。成员节点504和510中的一个或多个可基于背书策略背书交易,并可为架构500中的所有区块链节点提供排序服务。成员节点504-510可发起区块链认证并试图写入存储在区块链层516中的区块链不可变账本,其副本也可存储在基础物理基础设施514上。
在一些实施例中,区块链架构500可包括一个或多个应用524,其链接到应用编程接口(API)522以访问和执行存储的程序/应用代码520(例如,链代码、智能合约等)。存储的程序/应用代码520又可以根据参与者所寻求的定制配置来创建,并且可以维护其自身的状态、控制其自身的资产、以及接收外部信息。存储的程序/应用代码S20可以作为交易部署,并且经由附加到分布式账本,安装在所有区块链节点504-510上。
区块链基础或平台512可包括区块链数据、服务(例如,密码信任服务、虚拟执行环境等)的各层,并支持可用于接收和存储新交易并提供对试图访问数据条目的审计员的访问的物理计算机基础设施。区块链层516可暴露提供对处理程序代码和使用物理基础设施514所需的虚拟执行环境的访问的接口。密码信任服务518可用于验证诸如资产交换交易等交易并保持信息私密。
图5A的区块链架构配置可经由区块链平台512所暴露的一个或多个接口和所提供的服务来处理和执行程序/应用代码520。程序/应用代码520可以控制块链资产。例如,代码520可以存储和传送数据,并且可以由成员节点504执行,以智能合约和具有条件或服从其执行的其他代码元素的相关联的链码的形式510。作为非限制性示例,可以创建智能合约以执行提醒、更新和/或服从改变、更新等的其他通知。智能合约本身可以用于标识与账本的授权和访问要求以及使用相关联的规则。例如,(一个或多个)文档属性信息526可由包括在区块链层516中的一个或多个处理实体(例如,虚拟机)处理。结果528可以包括多个链接的共享文档。物理基础设施514可用于检索本文所述的任何数据或信息。
在一些实施例中,智能合约可以经由高级应用和编程语言来创建,并且然后被写入区块链中的块。智能合约可以包括向区块链(例如,区块链对等体(peer)的分布式网络)注册、存储和/或复制的可执行代码。交易是智能合约代码的执行,其可以响应于与智能合约相关联的条件被满足而被执行。智能合约的执行可以触发对数字块链账本的状态的(一个或多个)信任修改。在一些实施例中,由智能合约执行引起的对块链账本的(一个或多个)修改可以通过一个或多个共识协议在整个块链对等体的分布式网络中自动复制。
智能合约可以以键-值对的格式将数据写入区块链。在一些实施例中,智能合约代码还可以读取存储在区块链中的值,并且在应用操作中使用它们。这些实施例中的智能合约代码然后可以将各种逻辑操作的输出写入区块链中。在一些实施例中,智能合约代码可以用于在虚拟机或其他计算平台中创建临时数据结构。在这些实施例中,被写入区块链的数据可以是公共的,或者可以被加密并被维护为私有。智能合约所使用/生成的临时数据可由所提供的执行环境保持在存储器中,并且然后一旦标识了区块链所需的数据就可被删除。
在一些实施例中,链码可以包括具有附加特征的智能合约的代码解释。在一些实施例中,可将链码实现为部署在计算网络上的程序代码,其中在共识过程期间由链式校验器一起执行并校验该链码。链码可以接收散列,并且可以从区块链中检索与通过使用先前存储的特征提取器创建的数据模板相关联的散列。如果散列标识符的散列与从所存储的标识符模板数据创建的散列匹配,则链码可向所请求的服务发送授权密钥。所述链码可以向区块链写入与密码细节相关联的数据。
图5B示出了根据一些实施例的区块链的节点之间的区块链交易流550的示例。这些实施例中的交易流可包括由应用客户端节点560发送给背书对等体节点581的交易提议591。背书对等体实体581可以验证客户端签名并执行链码功能以发起交易。输出可以包括链码结果、在链码中读取的一组键/值版本(读取集)以及在链码中写入的一组键/值(写入集)。然后,如果批准,则可将提议响应592连同背书签名一起发送回客户端560。
作为响应,客户端560可以将背书组合成交易有效载荷593,并将其广播到排序服务节点584。排序服务节点584随后可以将排序的交易作为块在通道上递送到所有对等体点581-583。在提交到区块链之前,每个对等体581-583校验该交易。例如,在一些实施例中,对等体可检查背书策略以确保指定对等体的正确分配已签名结果并对照交易有效载荷593认证了签名。
继续参考图5B,在一些实施例中,客户端节点560可以通过构造请求并将其发送到可以充当背书者的对等体节点581来发起交易591。客户端560可以包括利用支持软件开发工具包(SDK)的应用,其可以利用可用的API来生成交易提议。交易提议又可以是调用链码功能的请求,使得数据可以被读取和/或写入到分布式账本(即,写入用于资产的新键值对)。SDK可以用作填补将交易提议封装为适当的架构化格式(例如,远程过程调用(RPC)上的协议缓冲器),并采用客户端的密码凭证来产生交易提议的唯一签名。
作为响应,背书对等体节点581可以验证:(a)交易提议形成良好;(b)过去还没有提交交易(重放攻击保护);(c)签名有效;以及(d)提交者(在该示例性实施例中为客户端560)被正确地授权在该通道上执行所提议的操作。背书对等体节点581可将交易提议输入作为所调用的链码功能的自变量。然后,可对当前状态数据库执行该链码,以产生包括响应值、读取集和写入集的交易结果。在一些实施例中,此时不对账本进行更新。相反,该组值连同背书对等体节点581的签名可作为提议响应592被传回给客户端560的SDK,后者解析应用要消费的有效载荷。
作为响应,客户端560的应用可检查/验证背书对等体的签名,并可比较提议响应以确定该提议响应是否相同。如果链码只查询账本,则应用可以检查查询响应,并且通常不向排序节点服务584提交交易。如果客户端应用意图将交易提交给排序节点服务584以更新账本,则应用可以确定在提交之前是否已经满足指定的背书策略(即,交易所必需的所有对等体节点是否背书了交易)。这里,客户端可以仅包括交易的多方中的一方。在这种情况下,每个客户端可以具有它们自己的背书节点,并且每个背书节点将需要背书该交易。该架构使得即使应用选择不检查响应或以其它方式转发未受背书的交易,背书策略仍将由对等体实施并在提交校验阶段得到支持。
在成功检查之后,在操作593中,客户端560可将背书汇集到交易中,并且可将交易提议和交易消息内的响应广播到排序节点584。交易可以包含读取/写入集、背书对等体的签名和通道ID。排序节点584不需要检查交易的全部内容以便执行其操作,而是排序节点584可简单地从网络中的所有通道接收交易,按通道按时间顺序排序它们,并且按通道创建交易块。
交易的块可以在通道上从排序节点584递送到所有对等体节点581-583。可以校验块内的交易594以确保满足任何背书策略,并且确保自从由交易执行生成读取集以来,不存在对读取集变量的账本状态的改变。块中的交易可以被标记为有效或无效。此外,在操作595中,每个对等体节点581-583可以将块附加到通道的链,并且对于每个有效交易,写入集被提交到当前状态数据库。可以发出事件以通知客户端应用该交易(调用)已经被不可变地附加到链,以及通知该交易是有效还是无效。
许可的区块链
图6A示出了与一些实施例一致的许可的区块链网络的示例,其特征在于分布式、分散式对等体架构。在该示例中,区块链用户602可向许可的区块链604发起交易。在该示例中,交易可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用、直接通过API等来发出。网络可以提供对诸如审计员的监管者606的访问。区块链网络操作者608管理成员许可,诸如将监管者606注册为“审计员”并且将区块链用户602注册为“客户端”。审计员可以被限制为仅查询账本,而客户端可以被授权部署、调用和查询某些类型的链码。
在一些实施例中,区块链开发者610可以编写链码和客户端应用。这些实施例中的区块链开发者610可通过接口将链码直接部署到网络。为了在链码中包括来自传统数据源612的凭证,开发者610可使用带外(out-of-band)连接来访问数据。在该示例中,区块链用户602可通过对等体节点614连接到许可区块链604。在进行任何交易之前,对等体节点614可以从管理用户角色和许可的证书授权机构616检索用户的登记和交易证书。在一些实施例中,区块链用户必须拥有这些数字证书以便在许可的区块链604上交易。在其他实施例中,区块链用户可使用其他技术来认证,诸如经由分布式信任链。同时,可能需要试图利用链码的用户验证他们在传统数据源612上的凭证。为了确认用户的授权,链码可使用通过传统处理平台618到该数据的带外连接。
图6B示出了与一些实施例一致的许可的区块链网络的另一示例,其特征在于分布式、分散式对等体架构。在该示例中,区块链用户622可向许可的区块链624提交交易。在该示例中,交易可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用、直接通过API等来发出。网络可以提供对诸如审计员的监管者626的访问。区块链网络操作者628管理成员许可,诸如将监管者626登记为“审计员”并且将区块链用户622登记为“客户端”。审计员可以被限制为仅查询账本,而客户端可以被授权部署、调用和查询某些类型的链码。
这些实施例中的区块链开发者631可写入链码和客户端应用。区块链开发者631可通过接口将链码直接部署到网络。为了在链码中包括来自传统数据源632的凭证,开发者631可以使用带外连接来访问数据。在该示例中,区块链用户622通过对等体节点634连接到网络。在进行任何交易之前,对等体节点634从证书管理机构636获取用户的登记和交易证书。在一些实施例中,区块链用户必须拥有这些数字证书以便在许可的区块链624上交易。在其他实施例中,区块链用户可使用其他技术来认证,诸如经由分布式信任链。同时,可能需要试图利用链码的用户验证他们在传统数据源632上的凭证。为了确认用户的授权,链码可以通过传统的处理平台638使用带外连接到该数据。
图6C示出了与一些实施例一致的包括被配置为执行各种操作的物理基础设施611的示例***。参考图6C,物理基础设施611包括模块688和模块689。模块619包括区块链620和智能合约630(其可以驻留在区块链620上),其可以执行包括在任何示例实施例中的任何操作步骤678(在模块612中)。步骤/操作678可包括所描述或描绘的一个或多个实施例,并且可表示从一个或多个智能合约630和/或区块链620写入或读取的输出或写入信息。物理基础设施611、模块688和模块689可包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块688和模块689可以是相同的模块。
图6D示出了与一些实施例的被配置为执行各种操作的另一示例***。参考图6D,该***包括模块612和模块614。模块614包括区块链620和智能合约630(其可以驻留在区块链620上),其可以执行包括在任何示例实施例中的任何操作步骤678(在模块612中)。步骤/操作678可包括所描述或描绘的一个或多个实施例,并且可表示从一个或多个智能合约630和/或区块链620写入或读取的输出或写入信息。物理模块612和模块614可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块612和模块614可以是相同的模块。
图6E示出了与一些实施例的被配置为利用合同方之间的智能合约配置和被配置为在区块链620上实施智能合约条款的中介服务器的示例***。参考图6E,该配置可以表示由显式标识一个或多个用户设备652和/或656的智能合约630驱动的通信会话、资产转移会话或过程或规程。智能合约执行的执行、操作和结果可以由服务器654管理。智能合约630的内容可能需要由作为智能合约交易各方的实体652和656中的一个或多个进行数字签名。智能合约执行的结果可以作为区块链交易被写入区块链620。智能合约630驻留在区块链620上,其可以驻留在一个或多个计算机、服务器、处理器、存储器和/或无线通信设备上。
图6F示出了与一些实施例的包括区块链的***660。参考图6D的示例,应用编程接口(API)网关662提供用于访问区块链逻辑(例如,智能合约630或其他链码)和数据(例如,分布式账本等)的公共接口。在该示例中,API网关662是用于通过将一个或多个实体652和656连接到区块链对等体(即,服务器654)来在区块链上执行交易(调用、查询等)的公共接口。这里,服务器654是区块链网络对等体组件,其保存世界状态的副本和允许客户端652和656查询关于世界状态的数据以及将交易提交到锁链网络中的分布式账本,其中,取决于智能合约630和背书策略,背书对等体将运行智能合约630。
块处理
图7A示出了与一些实施例一致的新块被添加到分布式账本720的过程700,并且图7B示出了与一些实施例一致的用于区块链的新数据块结构730的内容。新数据块730可以包含文档链接数据。
参照图7A,客户端(未示出)可以向区块链节点711、712和/或713提交交易。客户端可以是从任何源接收的指令,以在区块链722上制定活动。作为示例,客户端可以是代表请求者(诸如设备、人或实体)行动以提议对区块链的交易的应用。多个区块链对等体(例如,区块链节点711、712和713)可维护区块链网络的状态和分布式账本720的副本。不同类型的区块链节点/对等体可以存在于区块链网络中,包括模拟和背书由客户提出的交易的背书对等体,以及验证背书、校验交易并将交易提交到分布式账本720的提交对等体。在一些实施例中,区块链节点711、712和713可以执行背书者节点、提交者节点或两者的角色。
分布式账本720可以包括以块存储不可改变的有序记录的区块链,以及维护区块链722的当前状态的状态数据库724(当前世界状态)。每个通道可以存在一个分布式账本720,并且每个对等体为其成员的每个通道维护其自己的分布式账本720的副本。区块链722可以是交易日志,其被构造为散列链接块,其中每个块包含N个交易的序列。块可以包括各种组件,例如图7B所示。块的链接(图7A中的箭头所示)可以通过在当前块的块报头内添加在先块报头的散列来生成。以此方式,区块链722上的所有交易可被排序并密码地链接在一起,从而防止篡改区块链数据而不破坏散列链接。此外,由于链接,区块链722中的最后区块表示在其之前到来的每个交易。区块链722可以存储在对等体文件***(本地或附加存储)上,对等体文件***支持仅附加区块链工作负载。
区块链722和分布式账本720的当前状态可以被存储在状态数据库724中。这里,当前状态数据表示区块链722的链交易日志中曾经包括的所有密钥(key)的最新值。链代码调用针对状态数据库724中的当前状态执行交易。为了使这些链码交互更有效,所有密钥的最新值都可以存储在状态数据库724中。状态数据库724可以包括区块链722的交易日志中的索引视图,因此,可以在任何时间从链中重新生成索引视图。在接受交易之前,状态数据库724可以在对等体启动时自动恢复(或者如果需要的话生成)。
背书节点从客户端接收交易并基于模拟结果背书该交易。背书节点持有模拟交易提议的智能合约。当背书节点背书交易时,背书节点创建交易背书,其是从背书节点到客户端应用的指示模拟交易的背书的签名响应。背书交易的方法取决于可在链码内指定的背书策略。背书策略的示例是“大多数背书的对等体必须背书该交易”。不同的通道可以具有不同的背书策略。背书的交易由客户端应用转发给排序服务710。
排序服务710接受背书的交易,将它们排序成块,并将这些块传递给提交对等体。例如,当达到交易的阈值、定时器超时或另一条件时,排序服务710可以发起新块。在图7A的示例中,区块链节点712是已经接收到用于存储在区块链722上的新数据块730的提交对等体。区块链中的第一块可以被称为起源块,起源块包括关于区块链、其成员、存储在其中的数据等的信息。
排序服务710可以由一组排序者组成。在一些实施例中,排序服务710可以不处理交易、智能合约或维护共享账本。相反,这些实施例中的排序服务710可以接受背书的交易并指定将这些交易提交给分布式账本720的顺序。区块链网络的架构可被设计成使得“排序”的特定实现(例如,Solo、Kafka、BFT等)变为可插式组件。
在一些实施例中,可以以一致的顺序将交易写入分布式账本720。在这些实施例中,可以建立交易的顺序以确保当将对状态数据库724的更新提交给网络时它们是有效的。与加密货币区块链***(例如Bitcoin等)不同,在加密货币区块链***中,排序通过密码难题的解决或挖掘而发生,在该示例中,分布式账本720的各方可以选择最适合该网络的排序机制。
在一些实施例中,当排序服务710初始化新数据块730时,新数据块730可以被广播到提交对等体(例如,区块链节点711、712和713)。作为响应,每个提交对等体可以通过检查以确保读取集和写入集仍然匹配状态数据库724中的当前世界状态来校验新数据块730内的交易。具体地,提交对等体可以确定在背书者模拟交易时存在的读取数据是否与状态数据库724中的当前世界状态相同。当提交对等体校验交易时,交易可以被写入分布式账本720上的区块链722,并且可以用来自读取-写入集的写数据更新状态数据库724。在一些实施例中,如果交易失败(例如,如果提交对等体发现读取-写入集不匹配状态数据库724中的当前世界状态),则排序成块的交易仍可被包括在该块中,但被标记为无效,并且状态数据库724不被更新。
参考图7B,在一些实施例中,存储在分布式账本720的区块链722上的新数据块730(也称为数据块)可以包括多个数据段,诸如块报头740、块数据750和块元数据760。应当理解,图7B中所示的各种所示块及其内容,诸如新数据块730及其内容,仅仅是示例,而不意味着限制示例实施例的范围。新数据块730可以将N个交易(例如,1、10、100、200、1000、2000、3000等)的交易信息存储在块数据750内。新数据块730还可包括到块报头740内的(例如,图7A中的区块链722上的)先前块的链接。特别地,块报头740可包括先前块报头的散列。块报头740还可以包括唯一的块号、新数据块730的块数据750的散列等。新数据块730的块号可以是唯一的,并且以各种顺序(诸如从零开始的递增/顺序)分配。
块数据750可以存储记录在新数据块730内的每个交易的交易信息。例如,交易数据可以包括以下中的一个或多个:交易的类型、版本、时间戳、分布式账本720的通道ID、交易ID、纪元(epoch)、有效载荷可见性、链码路径(部署tx)、链码名称、链码版本、输入(链码和功能)、诸如公钥和证书的客户端(创建者)标识、客户端的签名、背书者的身份、背书者签名、提议散列、链码事件、响应状态、命名空间、读取集(通过交易读取的键和版本的列表等)、写入集(键和值的列表等)、开始键、结束键、键的列表、Merkel树查询摘要等。可以为N个交易中的每一个存储交易数据。
在一些实施例中,块数据750还可存储新数据762,其向区块链722中的散列链接的区块链添加附加信息。附加信息可以包括本文描述或描绘的步骤、特征、过程和/或动作中的一个或多个。因此,新数据762可以被存储在分布式账本720上的块的不可变日志中。存储此新数据762的益处中的一些反映于本文所揭示和描绘的各种实施例中。尽管在图7B中,新数据762被描绘在块数据750中,但是在一些实施例中,它也可以位于块报头740或块元数据760中。新数据762还可以包括用于链接组织内的文档合成键。
块元数据760可以存储元数据的多个字段(例如,作为字节数组等)。元数据字段可以包括:块创建上的签名、对最后配置块的参考、标识块内的有效和无效交易的交易过滤器、排序该块的排序服务的最后偏移量持久保存等等。签名、最后配置块和排序者元数据可以由排序服务710添加。同时,块的提交者(诸如区块链节点712)可以基于背书策略、读取/写入集的验证等来添加有效性/无效性信息。交易过滤器可以包括大小等于块数据750中的交易的数量的字节数组和标识交易是有效/无效的验证码。
图7C示出了与一些实施例一致的用于数字内容的区块链770的实施例。数字内容可以包括一个或多个文件和相关联的信息。文件可以包括交易数据、媒体、图像、视频、音频、文本、链接、图形、动画、网页、文档或其他形式的数字内容。一些区块链实施例的不可改变的、仅附加的方面可能是期望的,以用作保护数字内容的完整性、有效性和真实性的安全措施,使得其适合用于法律程序,其中适用准入规则或考虑证据或数字信息的呈现和使用是另外感兴趣的其他设置。在这种情况下,数字内容可以被称为数字证据。
这些实施例中的区块链可以以各种方式形成。在一个实施例中,数字内容可以被包括在区块链本身中并且从区块链本身访问。例如,区块链的每个块可以沿着相关联的数字内容存储参考信息的散列值(例如,报头、值等)。然后,可以一起加密散列值和相关联的数字内容。因此,每个块的数字内容可以通过解密区块链中的每个块来访问,并且每个块的散列值可以用作参考先前块的基础。这可以如下说明:
在一个实施例中,数字内容可以不包括在区块链中。例如,区块链可以存储每个块的内容的加密散列而没有任何数字内容。数字内容可以存储在与原始文件的散列值相关联的另一存储区域或存储器地址中。另一存储区域可以是用于存储区块链的相同存储设备,或者可以是不同的存储区域,或者甚至是单独的关系数据库。可以通过获得或查询感兴趣的块的散列值,然后在存储区域中查找具有与实际数字内容相对应地存储的值,来参考或访问每个块的数字内容。例如,可以由数据库看门人(gatekeeper)来执行该操作。这可以如下说明:
在图7C的示例实施例中,区块链770包括以有序序列密码链接的多个块7781、7782、…778N,其中N≥1。用于链接块7781、7782、…778N的加密可以是多个密钥或非密钥散列功能中的任何一个。在一个实施例中,块7781、7782、…778N经受散列功能,该散列功能从基于块中的信息的输入产生n位字母数字输出(其中n是256或另一数字)。这种散列功能的示例包括但不限于:SHA型(SHA代表安全散列算法)算法、Merkle-Damagard算法、HAIFA算法、Merkle-tree算法、基于随机数的算法和非抗冲PRF算法。在另一实施例中,块7781、7782、…778N可以通过不同于散列功能的功能来加密链接。为了说明的目的,以下描述是参考散列功能,例如SHA-2来进行的。
区块链中的块7781、7782、…778N中的每一个可包括报头、文件的版本、以及值。作为区块链中的散列的结果,报头和值对于每个块可以是不同的。在一个实施例中,该值可以被包括在报头中。如以下更详细地描述的,文件的版本可以是原始文件或者可以是原始文件的不同版本。
区块链的第一块7781被称为起源块,并且可以包括报头7721、原始文件7741和初始值7761。用于起源块并且实际上在所有后续块中的散列方案可以变化。例如,第一块7781中的所有信息可以一起并且一次被散列,或者第一块7781中的信息的每一个或一部分可以被单独地散列,然后可以执行单独散列的部分的散列。
报头7721可包括一个或多个初始参数,其例如可包括版本号、时间戳、随机数(nonce)、根信息、难度等级、共识协议、持续时间、媒体格式、源、描述性关键字和/或与原始文件7741和/或区块链相关联的其他信息。报头7721可自动生成(例如,通过区块链网络管理软件)或由区块链参与者手动生成。与区块链中的其他块7782至778N中的报头不同,起源块的报头7721可不参考先前块,仅因为不存在先前块。
起源块的原始文件7741可以是例如在设备被包括在区块链中之前经过或未经过处理的设备所捕获的数据。原始文件7741可以通过***的接口从设备、媒体源或节点接收。原始文件7741可以与元数据相关联,该元数据例如可以由用户、设备和/或***处理器手动地或自动地生成。元数据可以被包括在与原始文件7741相关联的第一块7781中。
起源块的值7761可以是基于原始文件7741的一个或多个唯一属性生成的初始值。在一个实施例中,一个或多个唯一属性可以包括原始文件7741的散列值、原始文件7741的元数据、以及与文件相关联的其它信息。在一个实现中,初始值7761可以基于以下唯一属性:
1)SHA-2计算的原始文件的散列值
2)发起设备ID
3)原始文件的开始时间戳
4)原始文件的初始存储位置
5)当前控制原始文件和相关联的元数据的软件的区块链网络成员ID
区块链中的其他块7782到778N也具有报头、文件和值。然而,与第一块的报头7721不同,其他块中的报头7722至772N中的每一个都包括紧接在前的块的散列值。紧接在前块的哈希值可以只是先前块的报头的哈希值,也可以是整个先前块的哈希值。通过将在前块的散列值包括在每个剩余块中,可以在逐块的基础上执行从第N块回到起源块(以及相关联的原始文件)的跟踪,如箭头780所示,以建立可审计且不可变的监管链。
其他块中的报头7722至772N中的每一个还可以包括其他信息,例如版本号、时间戳、随机数、根信息、难度等级、共识协议和/或与相应的文件和/或一般区块链相关联的其他参数或信息。
其他块中的文件7742至774N中可以等于原始文件,或者可以是起源块中原始文件的修改版本,这取决于例如所执行的处理的类型。所执行的处理的类型可在块与块之间变化。处理可以涉及例如对在前块中的文件的任何修改,诸如编校(redact)信息或以其他方式改变文件的内容、从文件中取走信息、或向文件添加或附加信息。
附加地或替换地,处理可仅涉及从在前块复制文件、改变文件的存储位置、从一个或多个在前块分析文件、将文件从一个存储装置或存储器位置移动到另一个存储装置或存储器位置、或相对于区块链的文件和/或其相关联的元数据执行动作。涉及分析文件的处理可以包括例如附加、包括或者以其他方式关联各种分析、统计或与文件相关联的其他信息。
其他块中的其他块7762至776N中的每一个中的值是唯一值,并且作为所执行的处理的结果,它们都是不同的。例如,任何一个块中的值对应于先前块中的值的更新版本。更新反映在被分配了值的块的散列中。因此,块的值提供了在块中执行了什么处理的指示,并且还允许跟踪通过块链回到原始文件。该跟踪确认了文件在整个区块链中的监管链。
例如,考虑其中在先前块中的文件的部分被编校、分块或像素化以便保护文件中所示的人的身份的情况。在这种情况下,包括编校文件的块将包括与编校文件相关联的元数据,例如,编校是如何执行的、谁执行了编校、(一个或多个)编校发生的时间戳等。元数据可以被散列以形成该值。因为该块的元数据不同于被散列以形成先前块中的值的信息,所以这些值彼此不同并且可以在解密时被恢复。
在一个实施例中,当以下中的任何一个或多个发生时,可以更新先前块的值(例如,计算的新散列值)以形成当前块的值。在该示例实施例中,可以通过对下面提到的信息的全部或一部分进行散列来计算新散列值。
a)如果文件已经以任何方式被处理(例如,如果文件被编校、复制、更改、访问、或采取了某一其他动作),则为新SHA-2计算的散列值
b)文件的新存储位置
c)与文件相关联的标识的新元数据
d)文件的访问或控制从一个区块链参与者到另一区块链参与者的转移
图7D示出了与一些实施例一致的块的实施例,其可以表示块链790中的块的结构。块Blocki可以包括报头772i、文件774i和值776i。
报头772i可以包括先前块Blocki-1的散列值和附加参考信息,该附加参考信息例如可以是本文讨论的任何类型的信息(例如,包括参考、特性、参数等的报头信息)。在一些实施例中,除了起源块之外,所有块可以参考先前块的散列。先前块的散列值可以仅仅是先前块中的报头的散列,或者是先前块中的全部或部分信息的散列,包括文件和元数据。
文件774i可以包括多个数据,诸如顺序的数据1、数据2、…、数据N。数据被标记有元数据1、元数据2、…、元数据N,它们描述与数据相关联的内容和/或特性。例如,例如,每个数据的元数据可以包括:指示数据的时间戳的信息、处理数据、指示数据中描绘的人或其他内容的关键字、和/或可能有助于整体建立文件的有效性和内容的其他特征,特别是其使用数字证据,例如,如结合下面讨论的实施例所描述的。除了元数据之外,每个数据可以用对先前数据的参考REF1、REF2,...,REFN来标记,以防止篡改、文件中的间隙以及文件中的顺序参考。
一旦元数据被分配给数据(例如,通过智能合同),在一些实施例中,元数据在散列不变的情况下不能被更改,这可以被容易地标识以便无效。因此,这些实施例中的元数据创建了可以被访问以供区块链中的参与者使用的信息的数据日志。
在一些实施例中,值776i可以是散列值或基于先前讨论的任何类型的信息计算的其他值。例如,对于任何给定块Blocki,可以更新该块的值以反映针对该块执行的处理,例如,新散列值、新存储位置、相关联的文件的新元数据、控制或访问的转移、标识符、或要添加的其他动作或信息。尽管每个块中的值被示为与文件和报头的数据的元数据分开,但是在另一实施例中,该值可以部分或全部基于该元数据。
一旦形成了区块链770,在一些实施例中,在任何时间点,通过向区块链查询跨越块的值的交易历史,可以获得文件的不可改变的监管链。该查询或跟踪过程可以开始于解密最当前包括的块(例如,最后(第N个)块)的值,然后继续解密其他块的值,直到到达起源块并且恢复原始文件。解密也可涉及解密每个块中的报头和文件以及相关联的元数据。
可以基于在每个块中发生的加密类型来执行解密。这可以涉及私钥、公钥或公钥-私钥对的使用。例如,当使用非对称加密时,区块链参与者或网络中的处理器可使用预定算法生成公钥和私钥对。公钥和私钥可以通过某种数学关系彼此相关联。公共密钥可以被公开分发以用作从其他用户接收消息的地址,例如IP地址或家庭地址。私钥可以保持秘密并且可以用于对发送到其他区块链参与者的消息进行数字签名。该签名又可以被包括在消息中,以便接受者可以使用发送者的公钥来验证。这样,接受者可以确信只有发送者可以发送该消息。
在一些实施例中,生成密钥对可类似于在区块链上创建帐户,但不必实际上在任何地方注册。在这些实施例中,在区块链上执行的每个交易可以由发送者使用其私钥来数字地签名。该签名可帮助确保仅账户的所有者可跟踪和处理(如果在由智能合约确定的许可范围内)区块链的文件。
计算机程序产品
尽管已经参考本发明的某些示例详细描述了本发明,但是在不脱离本发明的基本精神或属性的情况下,本发明还可以以其它特定形式来实施。例如,本发明可以是任何可能的技术细节集成水平的***、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。计算机可读程序指令可以在单个计算机上存储和执行,或者在相同位置或不同位置处被划分在不同计算机之间,以用于存储和执行。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码设备,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如Smalltalk、C++等)和过程编程语言(例如“C”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在客户计算机上执行,部分在客户计算机上执行,作为独立软件包执行,部分在客户计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到客户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
这些计算机可读程序指令可以被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的部件(mean)。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
通用
附图中的流程图和框图示出了根据本发明的各种实施例的***、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施例中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以作为一个步骤来实现,同时、基本同时、以部分或全部时间重叠的方式执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图示出的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的***来实现。
在此参考根据本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。此外,附图中的流程图和框图示出了根据本发明的各种实施例的***、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施例中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图示出的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的***来实现。
在本说明书中使用的任何特定程序术语仅仅是为了方便,因此本发明不应限于仅在由这样的术语标识和/或暗示的任何特定应用中使用。因此,例如,被执行以实现本发明的实施例的例程,无论是作为操作***的一部分还是特定应用、组件、程序、模块、对象或指令序列来实现,都可以被称为“程序”、“应用”、“服务器”或其他有意义的术语。实际上,在不脱离本发明的范围的情况下,可以使用其它替代硬件和/或软件环境。
因此,希望在此描述的实施例在所有方面都被认为是说明性的而非限制性的,并且参考所附权利要求来确定本发明的范围。
Claims (20)
1.一种访问管理过程协调方法,包括:
接收用于访问信息***的被管理的资源的请求;
从访问管理器查询用于访问所述资源的授权;以及
响应于所述授权的查询,请求访问控制策略更新以准许对被管理的资源的访问;
其中,接收所述请求、查询所述授权以及请求所述访问控制策略更新包括:
生成交易记录;以及
将所述交易记录添加到分布式账本,其中,所述分布式账本同时在整个网络的多个节点处维护所述交易记录。
2.根据权利要求1所述的方法,其中,所述方法还包括在所述分布式账本的多个节点之间交换所述交易记录。
3.根据前述权利要求中任一项所述的方法,其中,所述多个节点经由密码地保护的通道互连。
4.根据前述权利要求中任一项所述的方法,其中,所述交易记录包括从包括以下的组中选择的至少一个管理动作:请求访问动作、访问批准动作、访问拒绝动作、访问准许动作、撤销访问动作和访问撤销动作。
5.根据权利要求4所述的方法,其中,与所述访问准许动作相关联的管理动作改变授权策略以允许用户访问所述信息***。
6.根据权利要求4至5中任一项所述的方法,其中,与所述撤销访问动作相关联的管理动作改变授权策略以拒绝用户对所述信息***的访问。
7.根据权利要求4至6中任一项所述的方法,还包括:
将所述交易记录传输到所述信息***;以及
自动地执行所述信息***上的管理动作。
8.根据前述权利要求中任一项所述的方法,其中,请求所述访问控制策略更新包括执行处理所述分布式账本中的交易的智能合约。
9.根据前述权利要求中任一项所述的方法,其中:
所述信息***的被管理的资源是多个信息***的多个被管理的资源中的一个;
所述多个信息***中的每一个包括本地访问控制***;并且
所述方法还包括调用所述本地访问控制***中的一个来请求改变本地授权策略。
10.根据前述权利要求中任一项所述的方法,还包括:
将所接收的请求发送到所述信息***的所有者;
从所述信息***的所有者接收响应于所述请求的批准;
将所述批准记录在所述分布式账本中;
将所述请求发送到所述信息***的管理员;
在所述信息***上执行响应于所述请求的动作;以及
将所述动作记录在所述分布式账本中。
11.一种访问管理支配协调器,包括:
与区块链网络相关联的对等体节点,所述区块链网络包括与资产所有者功能、管理员功能和审计员功能中的至少一个相关联的多个节点,所述对等体节点适于:
在分布式账本中记录来自信息***的用户的请求访问记录;
记录来自所述资产所有者功能的所有者批准记录,所述所有者批准记录响应于所述分布式账本中的请求访问记录;
执行响应于所述请求访问记录和所述所有者批准记录的智能合约,所述智能合约准许对所述信息***的访问,其中,所述智能合约改变授权策略以允许所述用户访问所述信息***;以及
在所述分布式账本中记录所述智能合约的执行记录。
12.根据权利要求11所述的访问管理支配协调器,其中,所述对等体节点进一步适于:
将所述请求访问记录、所述所有者批准记录和所述执行记录中的一个或多个存储在交易块中;
选择所述多个节点中的一个作为签名节点以根据共识协议对所述交易块签名;以及
由所选择的签名节点对所述交易块签名。
13.根据权利要求11到12中任一项所述的访问管理支配协调器,其中,所述对等体节点还适于:
接收将新节点添加到所述区块链网络的新对等体请求;以及
根据共识协议将所述新对等体请求传输到所述区块链网络中的所述多个节点以供批准。
14.根据权利要求11至13中任一项所述的访问管理支配协调器,其中,改变所述授权策略包括调用与所述信息***相关联的本地访问控制***以请求改变本地授权策略。
15.根据权利要求11至14中任一项所述的访问管理支配协调器,其中,所述对等体节点进一步适于审查所述分布式账本以寻找不与所有者批准记录相关联的执行记录。
16.一种计算机程序产品,包括其上存储有多个指令的非暂时性计算机可读存储介质,所述指令在由处理器执行时使所述处理器:
接收用于访问信息***的被管理的资源的请求;
从访问管理器查询用于访问所述资源的授权;以及
响应于查询所述授权,请求访问控制策略更新以准许对所述被管理的资源的访问;
其中,接收所述请求、查询所述授权以及请求所述访问控制策略更新包括:
生成交易记录;以及
将所述交易记录添加到分布式账本。
17.根据权利要求16所述的计算机程序产品,其中,所述交易记录包括从包括以下的组中选择的至少一个管理动作:请求访问记录、访问批准记录、访问拒绝记录、访问准许记录、撤销访问记录和访问撤销记录。
18.根据权利要求16至17中任一项所述的计算机程序产品,其中:
所述信息***的被管理的资源是多个信息***的多个被管理的资源中的一个;
所述多个信息***中的每一个包括本地访问控制***;以及
还包括指令,所述指令在由处理器执行时使所述处理器调用所述本地访问控制***中的一个来请求改变本地授权策略。
19.根据权利要求16至18中任一项所述的计算机程序产品,还包括指令,所述指令在由处理器执行时使所述处理器:
将所接收的请求发送到所述信息***的所有者;
从所述信息***的所有者接收响应于所述请求的批准;
将所述批准记录在所述分布式账本中;
将所述请求发送到所述信息***的管理员;
在所述信息***上执行响应于所述请求的动作;以及
将所述动作记录在所述分布式账本中。
20.根据权利要求16至19中任一项所述的计算机程序产品,其中,请求所述访问控制策略更新包括执行处理所述分布式账本中的交易的智能合约。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/866,929 US20210352077A1 (en) | 2020-05-05 | 2020-05-05 | Low trust privileged access management |
US16/866,929 | 2020-05-05 | ||
PCT/IB2021/052873 WO2021224696A1 (en) | 2020-05-05 | 2021-04-07 | Low trust privileged access management |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115552441A true CN115552441A (zh) | 2022-12-30 |
Family
ID=78413301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180032962.3A Pending CN115552441A (zh) | 2020-05-05 | 2021-04-07 | 低信任特权访问管理 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20210352077A1 (zh) |
JP (1) | JP2023524659A (zh) |
KR (1) | KR20220160021A (zh) |
CN (1) | CN115552441A (zh) |
AU (1) | AU2021269192A1 (zh) |
DE (1) | DE112021001413T5 (zh) |
GB (1) | GB2610144A (zh) |
WO (1) | WO2021224696A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11550307B2 (en) * | 2020-08-26 | 2023-01-10 | Accenture Global Solutions Limited | Asset management, registry, and tracking on shared blockchain nodes |
CN112347456B (zh) * | 2020-10-28 | 2023-09-01 | 达闼机器人股份有限公司 | 程序验证方法和装置、平台和用户终端及在线服务*** |
US11675917B2 (en) * | 2021-04-22 | 2023-06-13 | Bank Of America Corporation | Electronic system for dynamically permitting and restricting access to and modification of computer resources |
US20220383305A1 (en) * | 2021-05-28 | 2022-12-01 | Civic Technologies, Inc. | Methods and apparatus for validation of rules of a smart contract on a centralized or distributed digital ledger |
WO2024016022A1 (en) * | 2022-07-15 | 2024-01-18 | Ramdass Vivek Anand | Variable node box ("vnb") |
WO2024096914A1 (en) * | 2022-10-31 | 2024-05-10 | Venkataraman Mohan | Blockchain based document and data sharing |
CN116860362B (zh) * | 2023-07-05 | 2024-03-19 | 广州市玄武无线科技股份有限公司 | 一种应用于流程编排引擎的插件事务管理方法及装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2256934C (en) * | 1998-12-23 | 2002-04-02 | Hamid Bacha | System for electronic repository of data enforcing access control on data retrieval |
US10484343B1 (en) * | 2017-10-03 | 2019-11-19 | Cerebri AI Inc. | Distributed logging for securing non-repudiable multi-party transactions |
CN111699504A (zh) * | 2017-10-23 | 2020-09-22 | 维恩知识产权有限公司 | 经由区块链交易平台进行ip所有权和ip注册的***和方法 |
US11093558B2 (en) * | 2017-11-14 | 2021-08-17 | International Business Machines Corporation | Providing accountability of blockchain queries |
US20190173854A1 (en) * | 2017-11-22 | 2019-06-06 | Michael Beck | Decentralized information sharing network |
US11243945B2 (en) * | 2017-12-11 | 2022-02-08 | International Business Machines Corporation | Distributed database having blockchain attributes |
CN108123936B (zh) * | 2017-12-13 | 2021-04-13 | 北京科技大学 | 一种基于区块链技术的访问控制方法及*** |
CN110401618A (zh) * | 2018-04-24 | 2019-11-01 | ***通信集团广东有限公司 | 区块链数据访问控制的方法及装置 |
MX2021005659A (es) * | 2018-11-13 | 2021-09-10 | Banqu Inc | Gestión de permisos para acceder a datos de usuario en una red de confianza de registro distribuido. |
US11140201B2 (en) * | 2019-02-19 | 2021-10-05 | International Business Machines Corporation | Security platform for multi-component system and services thereof |
US11436368B2 (en) * | 2019-04-04 | 2022-09-06 | Accenture Global Solutions Limited | Personal data management system |
US11556923B2 (en) * | 2019-05-24 | 2023-01-17 | Visa International Service Association | Blockchain enabled service request system |
US11252166B2 (en) * | 2019-07-31 | 2022-02-15 | Advanced New Technologies Co., Ltd. | Providing data authorization based on blockchain |
US11496518B2 (en) * | 2019-08-02 | 2022-11-08 | Dell Products L.P. | System and method for distributed network access control |
US20210135857A1 (en) * | 2019-11-05 | 2021-05-06 | Verizon Patent And Licensing Inc. | System and methods for distributed runtime logging and transaction control for multi-access edge computing services |
US11611560B2 (en) * | 2020-01-31 | 2023-03-21 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing consensus on read via a consensus on write smart contract trigger for a distributed ledger technology (DLT) platform |
-
2020
- 2020-05-05 US US16/866,929 patent/US20210352077A1/en active Pending
-
2021
- 2021-04-07 AU AU2021269192A patent/AU2021269192A1/en active Pending
- 2021-04-07 DE DE112021001413.7T patent/DE112021001413T5/de active Pending
- 2021-04-07 JP JP2022564722A patent/JP2023524659A/ja active Pending
- 2021-04-07 KR KR1020227035935A patent/KR20220160021A/ko active Search and Examination
- 2021-04-07 WO PCT/IB2021/052873 patent/WO2021224696A1/en active Application Filing
- 2021-04-07 GB GB2218057.4A patent/GB2610144A/en active Pending
- 2021-04-07 CN CN202180032962.3A patent/CN115552441A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
AU2021269192A1 (en) | 2022-11-03 |
DE112021001413T5 (de) | 2023-01-12 |
GB202218057D0 (en) | 2023-01-18 |
JP2023524659A (ja) | 2023-06-13 |
US20210352077A1 (en) | 2021-11-11 |
GB2610144A (en) | 2023-02-22 |
KR20220160021A (ko) | 2022-12-05 |
WO2021224696A1 (en) | 2021-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11972004B2 (en) | Document redaction and reconciliation | |
US11741083B2 (en) | Cross-shard private atomic commit | |
US20200394321A1 (en) | Document redaction and reconciliation | |
US20210352077A1 (en) | Low trust privileged access management | |
US11693948B2 (en) | Verifiable labels for mandatory access control | |
US11431503B2 (en) | Self-sovereign data access via bot-chain | |
US11360946B2 (en) | Tracking data transfers | |
CN110674128B (zh) | 区块链的链上治理 | |
US11917088B2 (en) | Integrating device identity into a permissioning framework of a blockchain | |
US20220103532A1 (en) | Consensus service for blockchain networks | |
CN112241919A (zh) | 具有数据流控制的多域区块链网络 | |
US11457066B2 (en) | Splitting and merging of storages | |
US11888981B2 (en) | Privacy preserving auditable accounts | |
US11621858B2 (en) | Anonymity mechanisms in permissioned blockchain networks | |
CN115004625A (zh) | 用于区块链分类账的索引结构 | |
US11550796B2 (en) | Coexistence mediator for facilitating blockchain transactions | |
US11804950B2 (en) | Parallel processing of blockchain procedures | |
US11876903B2 (en) | Decentralized broadcast encryption and key generation facility | |
CN111797426B (zh) | 一种用于去信任通知服务的方法和*** | |
US11263333B2 (en) | Multi-subject device access authorization | |
US11640392B2 (en) | Blockchain endorsement agreement | |
US11782823B2 (en) | Automatically capturing weather data during engineering tests | |
US20220067028A1 (en) | Trustless operations for blockchain networks | |
CN112084187A (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 |