CN110678865A - 分布式软件服务的高完整性日志 - Google Patents

分布式软件服务的高完整性日志 Download PDF

Info

Publication number
CN110678865A
CN110678865A CN201880033824.5A CN201880033824A CN110678865A CN 110678865 A CN110678865 A CN 110678865A CN 201880033824 A CN201880033824 A CN 201880033824A CN 110678865 A CN110678865 A CN 110678865A
Authority
CN
China
Prior art keywords
key
service
log
computer system
log chain
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
Application number
CN201880033824.5A
Other languages
English (en)
Other versions
CN110678865B (zh
Inventor
T·阿卡
M·E·皮尔逊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN110678865A publication Critical patent/CN110678865A/zh
Application granted granted Critical
Publication of CN110678865B publication Critical patent/CN110678865B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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/3242Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic 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)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Debugging And Monitoring (AREA)

Abstract

提供了用于为分布式软件服务实现高完整性日志的技术。根据一个实施例集合,在密钥服务器上运行的密钥管理服务可以维护秘密主密钥。密钥管理服务还可以为多个分布式软件服务实例中的每一个生成对于软件服务实例的当前生命周期是唯一的服务密钥,该生成基于主密钥;并且向软件服务实例传输该服务密钥,其中该服务密钥由该软件服务实例在创建高完整性日志时使用。

Description

分布式软件服务的高完整性日志
背景技术
许多软件服务生成记录与它们的运行时操作有关的数据(例如事件,交易,消息,错误等)的日志。在业务设置中,确保这种日志的完整性--换句话说,在生成日志后防止和/或检测对日志的修改--对于安全性分析,合规和其他原因至关重要。例如考虑以下场景:攻击者入侵了组织拥有的服务器,并且直到一段时间后才检测到攻击。在这种情况下,从理论上回顾分析服务器日志可以提供有关攻击如何被穿透以及安全漏洞范围的有用信息。然而,如果无法保护日志不受篡改,攻击者可以在攻击时更改记录的数据,以便于掩盖他/她的踪迹,从而使分析无效。
密码学可以是用于实现日志完整性的有用工具,但是现有的密码解决方案难以应用于分布式软件服务(即,包括多个单独的服务实例的软件服务)。这是因为这样的现有解决方案通常需要跨服务实例的某种程度的状态同步和状态持久性,以便公共密码密钥和/或其他安全元数据的跟踪。对状态持久性的需求还意味着,面对服务器/网络故障或可能导致一个或多个服务实例停止并重新启动的服务管理操作(例如软件/硬件升级),这些现有的密码解决方案并不可靠。
除了密码学之外,还存在其他一些对促进日志完整性有用的机制,诸如在组织的基础架构中实现的基于物理或基于软件的访问控制。然而,这些其他机制通常不如基于加密的解决方案安全,并且可能使第三方难以审核和验证。
发明内容
提供了用于为分布式软件服务实现高完整性日志的技术。根据一个实施例集合,在密钥服务器上运行的密钥管理服务可以维护秘密主密钥。密钥管理服务还可以为多个分布式软件服务实例中的每一个生成对于软件服务实例的当前生命周期是唯一的服务密钥,其中该生成基于主密钥;并且将该服务密钥传输给软件服务实例,其中该服务密钥由所述软件服务实例在创建高完整性日志时使用。
通过参考说明书的其余部分和附图,可以实现对本文公开的实施例的性质和优点的进一步理解。
附图说明
图1描绘了根据某些实施例的系统环境的简化框图。
图2描绘了根据某些实施例的用于实现高完整性日志的流程图。
图3描绘了根据某些实施例的用于生成和分配服务密钥的工作流程。
图4描绘了根据某些实施例的用于创建日志链节点的工作流程。
图5和6描绘了根据某些实施例的用于验证日志链的完整性的工作流程。
图7描绘了根据某些实施例的用于执行对数链拼接的工作流程。
图8描绘了根据某些实施例的示例计算机系统的简化框图。
具体实施方式
本公开的实施例提供了一种密码框架,该密码框架使得能够以非常适合于分布式软件服务的挑战和需求的方式来创建高完整性日志。如本文中所使用的,“高完整性”日志是可以经由密码技术被严格验证为准确的(即,未被改变或篡改)的日志。在各种实施例中,每个高完整性日志可以被构造为日志链,该日志链是包括以密码方式彼此链接的日志条目(和相关元数据)的节点链。此日志链数据结构的特征在下面进一步详细描述。
应当理解,以下描述中提供的示例和细节是示意性的,并不旨在限制本公开的实施例。例如某些实施例可以在没有一些所描述的细节的情况下实现,或者可以用其修改或等同形式实现。
此外,应注意,尽管本公开内容讨论了高完整性“日志”的实现,但是对于本公开内容而言,被记录的数据有效载荷的具体结构和内容并不重要。因此,术语“日志”可以被宽泛地解释为涵盖可以由软件服务生成和存储的任意类型的数据(以任意类型的格式)。
1.系统环境和高层流程
图1是根据某些实施例的系统环境100的简化框图。如图所示,系统环境100包括在各自的服务器104(1)-(N)上运行的多个分布式软件服务实例102(1)-(N)(在本文中简称为“服务实例”)。尽管每个服务实例102被描述为在单独的服务器104上运行,但是在某些情况下,这些服务实例中的一些或全部可以托管在单个服务器上,或者托管在面向服务体系结构(SOA)部署中常见的一个或多个服务器的任意集合上。
在实施例集合中,服务实例102(1)-(N)可以是单个分布式软件服务的实例。在另一个实施例集合中,服务实例102(1)-(N)可以是被配置为提供不同(但可能相关或互补)功能的多个分布式软件服务的实例。可以由服务实例102(1)-(N)表示的分布式软件服务的示例包括但不限于金融支付服务、网络/服务器监视服务、企业资源管理服务等。
服务实例102(1)-(N)与日志存储库106通信地耦合,以用于写入与它们的运行时操作有关的数据(例如日志)。例如在服务实例102(1)-(N)是金融支付服务的实例的场景中,每个服务实例102可以被配置为将交易数据写入日志存储库106,该日志存储库106包括在当前时间段(例如,最后一天、最后一周等)中由服务实例处理的支付交易的列表。作为另一示例,在服务实例102(1)-(N)是网络监视服务的实例的场景中,每个服务实例102可以被配置为将监视数据写入日志存储库106中,日志存储库106包括对应由服务器104接收到的网络连接请求的最近历史。在各个实施例中,日志存储库106可以被实现为如图1所示的独立存储设备/服务器/阵列,或者可以被并入到服务器104(1)-(N)中的一个或多个中。
如“背景技术”部分中所述,对于诸如企业、托管服务提供商等的操作软件服务的组织而言,采取确保由服务生成的日志的完整性的措施可能很重要。如果没有这种措施,组织可能会面临更高的安全风险和/或可能无法满足合规标准。然而,用于实现日志完整性的现有密码解决方案存在许多限制和缺陷,尤其是在如图1所示的分布式服务环境中。这种限制/缺点的示例包括例如跨服务实例的全局状态的需求、无法妥善处理服务实例的故障/中断等。
为了解决这些和其他类似的问题,系统环境100包括在密钥服务器110上运行的密钥管理服务108、作为每个服务实例102(1)-(N)的一部分(或与之通信耦合的)的日志链库112、以及在验证服务器116上运行的日志链验证服务114。尽管仅分别描绘了密钥管理服务108和日志链验证服务114的单个实例,但在其他实施例中,可以使用在相同或不同密钥/验证服务器上运行的这些服务中的一项或多项的多个实例。
一般而言,密钥管理服务108、日志链库112(1)-(N)和日志链验证服务114可以协同工作,以使服务实例102(1)-(N)能够以高效、可靠且可扩展的方式创建高完整性日志(构造为日志链)。例如如图2的高级流程图200所示,密钥管理服务108可以维护秘密主密钥Km,该秘密主密钥Km用于生成唯一的每生命周期的服务密钥Ki并在服务实例被启动/初始化时将唯一的每生命周期的服务密钥Ki分发给每个服务实例102(框202和204)。该密钥分发可以以拉动方式(即,响应于从服务实例102(1)-(N)接收到的密钥请求)或以推送方式(即,由密钥管理服务108发起)来执行。服务密钥Ki被称为唯一的“每生命周期”密钥,因为如果服务实例由于例如软件/硬件故障或计划中的服务中断而停止并重新启动,则每个服务实例102可以从密钥管理服务108接收全新的服务密钥Ki。作为向每个服务实例102提供服务密钥Ki的一部分,密钥管理服务108还可以提供用于从主密钥Km得出Ki的元数据。
此外,在每个服务实例102准备写新日志条目时,服务实例的日志链库112可以根据服务实例的服务密钥Ki生成特定于该日志条目的日志密钥Kj(框206)。在一些实施例中,日志密钥Kj可以是非对称私钥/公钥对中的私钥。在其他实施例中,日志密钥Kj可以是对称密钥。在得出日志密钥Kj时,日志链库112可以创建日志链节点,该日志链节点包括(1)服务实例102创建的先前日志链节点的哈希(如果存在),(2)元数据头部,尤其包括用于生成日志密钥Kj和服务密钥Ki的元数据,以及(3)日志条目的内容(即有效载荷)(框208)。日志链库112随后可以使用日志密钥Kj和适当的数字签名函数来对日志链节点进行签名(框210),将所得的数字签名添加到日志链节点(框212),并将日志链节点保存到日志存储库106中,从而完成日志写入操作(框214)。虽然未明确示出,但是日志链库112可以对服务实例102生成的附加日志条目重复这些步骤,从而导致多个日志链节点的链(例如,日志存储库106中所示的日志链216),该多个日志链节点经由每个节点中包括的先前节点哈希相互加密链接。
此外,在需要审核/验证由特定服务实例102写入的日志条目时,日志链验证服务114可以从日志存储库106中取回由服务实例102创建的日志链并验证日志链中的每个节点的数字签名(框218和220)。在使用对称日志密钥Kj对节点进行签名的实施例中,这可以涉及与密钥管理服务108通信以取回主密钥Km,从主密钥Km得出对称密钥(例如使用节点头部中包括的密钥得出元数据),以及使用对称密钥来执行签名验证函数。可替代地,日志链验证服务114可以将密钥得出元数据传递给密钥管理服务108,密钥管理服务108可以使用Km和所提供的元数据来得出对称密钥,并且将所得出的对称密钥返回给日志链验证服务114以用于签名验证。在使用非对称(私有)日志密钥Kj对节点进行签名的实施例中,这可以涉及取回对应的公钥(可以被包括在节点头部中)并使用公钥来执行签名验证函数。如果节点签名可以被验证,则日志链验证服务114可以确定密码链链接是完整的,并因此以高置信度得出结论,而不是日志链中的日志条目是正确和完整的(即,尚未更改)(框222)。
利用图2所示和上面描述的高级方案,可以实现许多技术优势。首先,由于密钥管理服务108从单个主密钥为每个服务实例102在每生命周期的基础上生成服务密钥,因此无需每个服务实例长期持久保存其服务密钥(即跨重新启动)。相反,每次服务实例102初始化时,它都可以从密钥管理服务108请求新的服务密钥,并使用从新服务密钥得出的日志密钥来签署将来的日志条目/节点,而无需考虑其先前的服务密钥。这意味着该方案对于可能导致一个或多个服务实例102(1)-(N)停止并重新启动的故障和其他中断是鲁棒的。注意,由服务实例102使用其先前的服务密钥创建的任意日志链节点仍可以由日志链验证服务114经由包括在日志链节点和主密钥中的密钥得出元数据来验证。
其次,由于服务实例102(1)-(N)使用的服务密钥是分离的,并且对于每个服务实例都是唯一的,因此不需要服务实例102(1)-(N)相互协作以便于商定包括公共密码密钥或其他公共元数据的融合或全局状态。这极大地简化了在大规模分布式服务部署中框架的实现。
第三,如流程图200所示,密钥管理服务108和每个服务实例102之间的通信模式包括每个服务实例生命周期的单个消息交换(即,跨越服务实例启动/初始化到服务实例终止的时间段)-服务密钥在生命周期开始时的通信。一旦每个服务实例102具有其服务密钥,它就可以继续前进以写入其日志条目/日志链节点,而无需再次与密钥管理服务108通信,直到服务实例重新启动为止。结果,密钥管理服务108可以缩放以支持非常大量的并发服务实例。
第四,如前所述,每个服务实例102的日志链库112可以使用非对称或对称日志密钥来对实例的日志链节点进行签名。对非对称和对称方案两者的支持提供了更大的实现灵活性,并允许服务运营商选择针对给定部署最适合的方案。例如在以日志记录性能为首要考虑因素的部署中,对称方案可能更可取,因为使用对称密钥进行数字签名的计算通常比使用非对称密钥进行计算更快。另一方面,在不希望日志链验证服务114访问由密钥管理服务108维护的秘密主密钥的部署中,非对称方法可能更可取,因为使用这种方案,可以使用公共可用信息(即日志链节点公钥)来执行验证任务。
第五,在某些情况下,服务实例102可能由于例如网络中断或密钥管理服务器中断而无法从密钥管理服务108接收新的服务密钥。在这些情况下,服务实例可以继续使用它在与密钥管理服务108的最后一次通信中接收到的现有服务密钥,同时尝试在后台从密钥管理服务108接收新的服务密钥。此后备机制提供了生存能力和鲁棒性,因为它消除了对密钥管理服务器110的严格可用性要求以及服务实例102对密钥管理服务108的硬依赖性。
考虑到前述,本公开的其余部分呈现了可以分别由密钥管理服务108,每个日志链库112和日志链验证服务114执行的工作流程,以便于实现归因于图2中的这些组件的功能。本领域普通技术人员将认识到,这些工作流程仅是示例,并且各种修改、变型和替代是可能的。例如尽管未明确描述,但是在某些实施例中,以下工作流程可能会利用各种服务实例和服务器之间的安全连接,这些连接通常是经由诸如TLS、IPsec、SSH或其他协议的安全协议提供的,以便于确保用于传输密钥和相关元数据的这些服务实例/服务器之间的网络通道的完整性和机密性。应该注意的是,创建的日志链的内容通常不需要机密性;如果需要,日志内容的机密性可以经由传统的加密方法使用从协商的服务密钥得出的密钥来实现。
2.密钥管理服务工作流程
图3描绘了根据某些实施例的可以由密钥管理服务108执行的工作流程300,用于根据图2的框202-204生成服务密钥并将其分发给服务实例102(1)-(N)。从框302开始,密钥管理服务108可以首先获得或生成秘密主密钥Km,密钥管理服务108将使用该秘密主密钥Km来得出服务实例102(1)-(N)的服务密钥。在各种实施例中,主密钥Km是X位(例如256位、512位等)的秘密字符串,其旨在用作长期密钥,并且因此通常不会频繁被更新(例如一年一次、每2年一次,依此类推)。在需要主动/推测安全性作为针对量子计算机的密码破解的防御时,可以将更长的主密钥(例如512位或更长)与仅对称密钥密码学一起使用。执行主密钥更新的特定时间间隔可以基于各种考虑,诸如经由蛮力攻击破解Km的计算可行性、执行密钥更新的管理开销、跟踪过去的主密钥的开销(如果需要验证使用过去的密钥创建的较旧的日志链)等等。在密钥管理服务108确实需要跟踪过去的主密钥的情况下,密钥管理服务108可以将版本号分配给每个存储的主密钥和当前主密钥。此外,在密钥管理服务108被实现为包括多个密钥管理服务实例的分布式服务的情况下,可以在每个密钥管理服务实例上复制Km,使得所有实例都维护相同的当前主密钥。
在框304,密钥管理服务108可以将主密钥Km存储/维护在密钥服务器110上的安全存储/存储器位置中。例如在一些实施例中,密钥管理服务108可以将Km存储在密钥服务器110的基于硬件的可信平台模块(TPM)或硬件安全模块(HSM)。密钥管理服务108然后可以进入一个循环,在该循环中它处理来自服务实例102(1)-(N)的密钥请求。
例如在框306处,密钥管理服务108可以在特定服务实例102被启动/初始化时接收来自服务实例102的请求服务密钥Ki的密钥请求。作为响应,密钥管理服务108可以对请求进行认证(框308),并且假设认证成功,则计算密钥得出函数(KDF),其将主密钥Km和加密随机数noncei作为输入,并输出服务密钥Ki(框310)。noncei的目的是确保在某个可接受的置信区间内,生成的服务密钥是唯一的(即,之前从未为任意其他服务实例生成过)。为了确保这一点,noncei可以是随机生成的数(例如全局唯一标识符或GUID),也可以是单调递增的计数器,每次密钥管理服务108收到密钥请求时,计数器就递增。
一旦已经生成服务密钥Ki,密钥管理服务108就可以将Ki以及用于得出Ki的元数据传输到请求服务实例102(框312)。服务实例102可以随后接收并存储服务密钥和元数据,以供以后在写入日志条目时使用(如在图2的框206-214中所示并且在下面的部分(3)中详细说明)。在框312处与服务密钥一起发送的元数据可以包括noncei,并且在存在主密钥Km的多个版本的情况下,可以包括当前主密钥版本号。
最后,密钥管理服务108可以返回到框306,以便处理来自其他服务实例102(1)-(N)或可能发布了先前请求的同一服务实例的附加密钥请求。例如如关于图2所建议的,在给定服务实例停止和重新启动的场景中,服务实例可以向密钥管理服务108发送新的密钥请求,并获得特定于服务实例的当前生命周期的新服务密钥Ki。因此,由密钥管理实例108生成的每个服务密钥Ki是每生命周期的密钥。重要的是,在这种场景中,服务实例无需记住其先前的服务密钥,从而避免了跨重新启动保持任意持久密码状态的需求。
2.1工作流程优化/增强
在一些实施例中,而非在工作流程300的框310中直接从主密钥Km得出服务密钥Ki,密钥管理服务108可以从被称为时期密钥Ke的中间密钥得出服务密钥Ki。时期密钥Ke可以从主密钥Km得出(使用例如第二密码随机数,称为时期计数器e),并定期更新,诸如每天一次、每周一次等。在此时间间隔内,从服务实例102(1)-(N)接收到的所有密钥请求可以通过从相同的时期密钥Ke(而不是从主密钥Km)得出服务密钥Ki来处理。
对于这种基于时期的密钥得出方案存在多个实际优势。首先,由于时期密钥Ke的安全性要求(可以每天或每周更新)不如针对主密钥Km的安全性要求严格(通常会在更长的时间范围内更新,例如每年一次),时期密钥Ke可以保存在密钥服务器110的常规易失性存储器中。这与主密钥Km相反,主密钥Km通常将被存储在更安全但速度较慢的存储装置/存储器位置中,诸如TPM。这意味着密钥管理服务108可以在处理密钥请求时更快速地取回时期密钥Ke以进行服务密钥得出。
第二,如果以某种方式损害了特定的时期密钥,则唯一受影响的日志链将是使用在该时期密钥所覆盖的时期时间间隔期间得出的服务密钥创建的日志链。使用其他服务密钥创建的日志链将不受影响。
第三,在某些实施例中,可以利用时期计数器e(每次更新时期密钥时递增)来进行自动主密钥更新。例如在确定时期计数器e已经达到或超过某个预先配置的阈值时,密钥管理服务108可以自动地更新主密钥Km。这避免了服务管理员需要记住更新Km的时间表和手动执行更新任务的需要,从而减轻了管理员的管理负担。
在使用基于时期的密钥得出方法的情况下,在框312中,密钥管理服务108可以在与服务密钥Ki一起发送的密钥得出元数据中包括时期计数器e。这将允许日志链验证服务114进行在日志链验证时得出Ke
3.日志链库工作流程(日志链节点创建)
图4描绘了根据某些实施例的可以由每个服务实例102的日志链库112执行的工作流程400,用于根据图2的块206-214将日志条目/日志链节点写入日志存储库106。工作流程400假定服务实例102已经为其当前生命周期从密钥管理服务108接收了服务密钥Ki和相关的密钥得出元数据(例如noncei、主密钥版本(如果适用)和时期计数器e(如果适用)),如前一节所述。
从框402开始,在服务实例102准备好将新的日志条目L写入日志存储库106的时候,服务实例102可以调用日志链库112。作为该调用的一部分,日志链库112可以接收日志条目L的内容(即有效载荷)。
在框404处,日志链库112可以计算KDF,KDF将输入服务密钥Ki和加密随机数counterj作为输入,并且输出特定于日志条目L的日志密钥Kj。Counterj与前面提到的noncei不同,它用来确保在某个可接受的置信区间内,生成的日志密钥对于日志条目L是唯一的(即,之前尚未为任何其他日志条目生成)。如其名称所示,counterj可以是单调递增的计数器,每次写入新的日志条目时(因此,每次创建新的日志链节点时),日志链库112都会对其递增。在一些实施例中,每次重新启动服务实例102时,counterj可以被初始化为零。
一旦已经从服务密钥Ki得出了日志密钥Kj,则日志链库112可以组装日志链节点,该日志链节点包括由库112创建的先前日志链节点的哈希(如果存在这样的先前日志链节点)、日志条目L的有效载荷和元数据头部(框406)。在实施例集合中,该元数据头部可以包括以下信息:
·主密钥版本(如果适用)
·时期计数器e(如果适用)
·Noncei
·Counterj
·服务实例标识符(标识服务实例102)
日志链库112然后可以使用日志密钥Kj对日志链节点的内容(例如哈希、日志有效载荷和元数据头部)进行数字签名,并将所得的数字签名添加到日志链节点(框408和410)。如关于图2所讨论的,可以使用对称密钥方案或非对称密钥方案来执行该签名步骤。利用对称密钥方案,日志链库112可以将日志密钥Kj和日志链节点的内容输入到例如基于消息认证码(MAC)的数字签名算法Amac,以便生成节点签名。在这种情况下,在验证日志链节点的完整性时,日志链验证服务114通常将需要将节点头部中包括的密钥得出元数据提供给密钥管理服务108(或具有对秘密主密钥Km的访问的单独“oracle”),该密钥管理服务108进而又可以从元数据和Km得出日志密钥,并将该日志密钥返回给日志链验证服务114以进行签名验证。
利用非对称密钥方案,日志链库112可以得出日志密钥Kj作为私钥/公钥对中的私钥。例如在一个实施例集合中,日志链库112可以得出日志密钥Kj作为具有对应的ECC公钥Kpub的椭圆曲线密码学(ECC)私有密钥。日志链库112然后可以将私有日志密钥Kj和日志链节点的内容输入到非对称数字签名算法Asig,以便生成节点签名。日志链库112还可以将对应的公钥Kpub添加到日志链节点的元数据头部中。在这种情况下,在验证日志链节点的完整性时,日志链验证服务114有利地不需要访问密钥管理服务108或单独的oracle,因为服务114可以使用公共可用的公钥Kpub来验证节点签名。然而,在对日志链节点进行签名时,此方案通常比对称密钥方案慢。
在框412中,日志链库112可以将数字签名的日志链节点写入日志存储库106,从而将该节点添加到服务实例102的当前日志链中。注意,一个日志链节点指向日志存储库106内的另一个的特定方式可以根据用于将节点存储在日志存储库106中的数据构造(例如链表、数据库表等)而不同。另外,在框414,日志链库112可以使counterj递增。
最后,日志链库112可以返回到框402,以便处理附加日志条目,并且该循环可以重复进行,直到服务实例102关闭为止。应当注意,每次服务实例102停止并随后重新启动时,日志链库112将启动一个新的日志链,该新的日志链未链接到该实例的先前创建的日志链(由于使用了新的服务密钥Ki)。随着时间的推移,这将导致服务实例102在日志存储库106中生成多个单独的日志链。如果认为这些单独的日志链有问题或不合需要,则可以使用“日志拼接”任务将单个服务实例的多个日志链组合为单个长日志链。此日志拼接任务的实现细节在下面的第(5)节中进行说明。
3.1工作流程优化/增强
在一些实施例中,不是在每个日志链节点的元数据头部中包括与服务密钥相关的元数据参数[主密钥版本、时期计数器e、noncei],日志链库112可以仅在初始日志链节点中包括这些参数,其是在服务初始化时创建的。在这些实施例中,初始日志链节点可以被认为是“配置”节点,因为它不包括日志有效载荷;相反,它的唯一目的是记录与服务密钥相关的元数据参数,使得不需要在同一日志链的后续节点中重复这些参数。在服务实例102生成非常大量日志条目的情况下,此优化可以节省日志存储库106上的大量存储空间。
在进一步的实施例中,出于加密敏捷性的目的,日志链库112可以在每个日志链节点(除了初始配置节点之外)的头部中包括:(1)在框404处使用的用于从服务密钥Ki得出日志密钥Kj(即,Akdf)的KDF的标识符,以及(2)在框408处使用的用于对日志链节点进行数字签名的MAC签名函数或非对称签名函数的标识符(即,Amac或Asig)。通过此增强功能,可以根据需要灵活地更改Akdf、Amac和Asig(例如响应于潜在的安全问题或其他因素),同时日志链验证服务114将确切知道如何重新得出日志密钥Kj并基于在节点头部中包含这些参数来验证节点签名。
4.日志链验证服务工作流程
图5和图6描绘了根据某些实施例的可以由日志链验证服务114执行的两个工作流程500和600,以用于根据图2的框218-222来验证日志链的完整性。日志链验证服务114可以在经由上述对称密钥方案对日志链节点进行签名的实施例中执行工作流程500,并且可以在经由上述非对称密钥方案对日志链节点进行签名的实施例中执行工作流程600。请注意,工作流程500和600示出了验证单个日志链节点的过程;因此,应在日志链中的每个节点上重复这些工作流程(例如从头到尾),以便于验证整个日志链的完整性。
从工作流程500的框502开始,日志链验证服务114可以从日志存储库106中取回要验证的日志链节点(即节点N)。在取回节点N后,日志链验证服务114可以提取节点头部中包括的各种元数据参数(例如主密钥版本、时期计数器e、noncei、counterj、Akdf、Amac)(框504)。在其中与服务密钥相关的参数被放置在初始配置节点而不是当前节点N中的实施例中,作为框504的一部分,日志链验证服务114可以遍历该初始节点并从初始节点提取这些参数。
在框506,日志链验证服务114可以调用由密钥管理服务108(或oracle)公开的接口,该密钥管理服务108将与服务密钥相关的元数据(例如时期计数器e和noncei)作为输入、基于主密钥Km得出服务密钥Ki、并且将服务密钥返回到日志链验证服务114(框510)。日志链验证服务114然后可以使用服务密钥Ki、counterj和Akdf来得出日志密钥Kj(框512),并且可以使用日志密钥Kj、节点N的内容、先前节点N-1的计算哈希、以及节点N的存储签名来计算与Amac相对应的签名验证函数(框514)。如果签名验证函数返回成功的结果,则日志链验证服务114可以确定节点N的完整性是完整的(框516和518)。另一方面,如果签名验证函数返回失败结果,则日志链验证服务114可以确定自其创建以来节点N(或日志链中的先前节点)已被改变(框516和520)。
现在转到工作流程600的框602,日志链验证服务114可以从日志存储库106中取回要验证的日志链节点(即节点N)。在取回节点N时,日志链验证服务114可以从节点的元数据头部中提取Asig和Kpub(框604)。日志链验证服务114然后使用公钥Kpub、节点N的内容、先前节点N-1的所计算的哈希、以及节点N的存储的签名来计算与Asig相对应的签名验证函数(框606)。如果签名验证函数返回成功的结果,则日志链验证服务114可以确定节点N的完整性是完整的(框608和610)。另一方面,如果签名验证函数返回失败结果,则日志链验证服务114可以确定自其创建以来节点N(或日志链中的先前节点)已被改变(框608和612)。
应当注意,对于图6的验证工作流程600,日志链验证服务114假定包括在日志链的第一节点中的第一公钥Kpub尚未被伪造。如果日志链中的第一个公钥被伪造,则所有后续节点(以密码方式链接到第一个节点)可以被伪造。日志链验证服务114建立此第一公钥的真实性的一种方式是,密钥管理服务108(而不是日志链库112)在得出实例的服务密钥并将该公钥以及公钥证书提供给服务实例102时生成服务实例102的第一个公钥。服务实例可以在日志链的第一(即配置)节点中包括此密钥管理服务生成的公钥和公钥证书。然后,在验证日志链时,日志链验证服务114可以从配置节点取回公钥和相应的证书,并验证此密钥为密钥管理服务108所拥有。如果此验证成功,则日志链验证服务114可以推断出公钥是真实的,并继续进行其日志链验证处理。
5.日志链拼接工作流程
如以上第(3)节所述,在服务实例102停止并重新启动的情况下,服务实例102将从密钥管理服务108中获得新的服务密钥Ki,并在重新启动之前,开始创建未明确链接到由服务实例102创建的先前日志链的新日志链。在某些情况下,将这些单独的日志链合并为单个长日志链可能会很有用(例如出于报告或其他目的)。为了满足该需求,可以在例如日志链验证服务114(或系统环境100中的某些其他服务)上实现日志拼接任务,其可以将针对单个服务实例的经验证的日志链拼接在一起。图7描绘了根据某些实施例的可由日志拼接任务执行以提供该功能的工作流程700。
在框702处,日志拼接任务可以首先通过查看日志链节点头部中包括的服务实例标识符来标识彼此相关(即,由同一服务实例102生成)的多个已验证日志链。
在框704,日志链拼接任务可以根据所标识的日志链何时被创建来对它们进行排序。在一个实施例集合中,可以通过基于可以包括日志有效载荷的时间戳对日志链进行排序来执行该排序步骤。在另一实施例集合中,可以通过基于节点头部中包括的时期计数器e和noncei对日志链进行排序来执行该排序步骤(该方案假设noncei是递增计数器)。
一旦已经对日志链进行了时间排序,对于每个连续的日志链对,日志拼接任务可以在该对的第一对日志链中的最后一个节点与该对的第二对日志链中的第一节点之间添加链接,从而将它们拼接在一起(框706)。作为其一部分,在某些实施例中,日志拼接任务可以使用第一日志链中最后一个节点的日志密钥来对第二日志链中第一节点的内容进行签名。
6.示例计算机系统
图8描绘了根据某些实施例的示例计算机系统800的简化框图。计算机系统800可以用于实现前述公开中描述的计算设备、系统或服务器中的任意一个,诸如图1的服务器104(1)-(N)、密钥服务器110和验证服务器116。如在图8中所示,计算机系统800包括经由总线子系统804与多个外围设备进行通信的一个或多个处理器802。这些外围设备包括存储子系统806(包括存储器子系统808和文件存储子系统810)、用户接口输入设备812、用户接口输出设备814和网络接口子系统816。
总线子系统804可以提供一种使计算机系统800的各个组件和子系统按预期彼此通信的机制。尽管总线子系统804被示意性地示出为单个总线,但是总线子系统的替代实施例可以利用多个总线。
网络接口子系统816可以用作用于在计算机系统800和其他计算机系统或网络之间传递数据的接口。网络接口子系统816的实施例可以包括例如以太网卡、Wi-Fi和/或蜂窝适配器、调制解调器(电话、卫星、电缆、ISDN等)、数字用户线(DSL)单元和/或类似物。
用户界面输入设备812可以包括键盘、指示设备(例如鼠标、轨迹球、触摸板等)、并入显示器中的触摸屏、音频输入设备(例如语音识别系统、麦克风等)和其他类型的输入设备。通常,术语“输入设备”的使用旨在包括用于将信息输入到计算机系统800中的所有可能类型的设备和机制。
用户界面输出设备814可以包括显示子系统、打印机或诸如音频输出设备等的非可视显示器。显示子系统可以是例如诸如液晶显示器(LCD)或有机发光二极管(OLED)显示器的平面设备。通常,术语“输出设备”的使用旨在包括用于从计算机系统800输出信息的所有可能类型的设备和机制。
存储子系统806包括存储器子系统808和文件/磁盘存储子系统810。子系统808和810代表非暂时性计算机可读存储介质,其可以存储程序代码和/或数据,该程序代码和/或数据提供了本公开实施例的功能。
存储器子系统808包括多个存储器,包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)818和其中存储有固定指令的只读存储器(ROM)820。文件存储子系统810可以为程序和数据文件提供持久性(即非易失性)存储,并且可以包括磁性或固态硬盘驱动器、光驱以及相关联的可移动介质(例如CD-ROM、DVD、蓝光等)、基于可移动闪存的驱动器或卡和/或本领域已知的其他类型的存储介质。
应当理解,计算机系统800是示意性的,并且具有比系统800更多或更少的组件的许多其他配置是可能的。
上面的描述示出了本公开的各种实施例以及可以如何实现这些实施例的各方面的示例。以上示例和实施例不应被认为是仅有的实施例,而是被呈现以说明如由所附权利要求所限定的本公开的灵活性和优点。例如尽管已经针对特定的处理流程和步骤描述了某些实施例,但是对于本领域技术人员而言显而易见的是,本公开的范围并不严格限于所描述的流程和步骤。被描述为顺序的步骤可以并行执行,步骤的顺序可以改变,并且步骤可以被修改、组合、添加或省略。作为另一示例,尽管已经使用硬件和软件的特定组合描述了某些实施例,但是应当认识到,硬件和软件的其他组合也是可能的,并且描述为以软件实现的特定操作也可以以硬件实现,反之亦然。
因此,说明书和附图应被认为是示意性而非限制性的。对于本领域技术人员而言,其他布置、实施例、实现和等同物将是显而易见的,并且在不脱离如所附权利要求书中阐述的本公开的精神和范围的情况下,可以采用其他布置、实施例、实现和等同物。

Claims (15)

1.一种计算机系统,包括:
处理器;以及
计算机可读存储介质,具有存储在其上的程序代码,所述程序代码在由所述处理器执行时使得所述处理器:
在所述计算机系统的安全存储或存储器位置中维护主密钥;以及
针对与所述计算机系统通信地耦合的多个分布式软件服务实例中的每个软件服务实例:
生成对于所述软件服务实例的当前生命周期是唯一的服务密钥,所述生成基于所述主密钥;以及
向所述软件服务实例传输所述服务密钥,其中所述服务密钥由所述软件服务实例在创建高完整性日志时使用。
2.根据权利要求1所述的计算机系统,其中所述高完整性日志被构造为包括多个日志链节点的日志链,并且其中除了所述日志链中的第一日志链节点之外的每个日志链节点包括由所述软件服务实例生成的日志条目的有效负载和所述日志链中先前日志链节点的哈希。
3.根据权利要求1所述的计算机系统,其中所述处理器响应于在所述软件服务实例被初始化时从所述软件服务实例接收到的密钥请求来生成所述服务密钥。
4.根据权利要求1所述的计算机系统,其中使得所述处理器生成所述服务密钥的所述程序代码包括使得所述处理器用于以下的程序代码:
计算将所述主密钥和第一密码随机数作为输入的第一密钥得出函数,所述第一密钥得出函数的所述计算产生所述服务密钥。
5.根据权利要求1所述的计算机系统,其中使得所述处理器生成所述服务密钥的所述程序代码包括使所述处理器用于以下的程序代码:
计算将所述主密钥和第一密码随机数作为输入的第一密钥得出函数,第一密钥得出函数的所述计算产生中间密钥;以及
计算将所述中间密钥和第二密码随机数作为输入的第二密钥得出函数,所述第二密钥得出函数的所述计算产生所述服务密钥。
6.根据权利要求4所述的计算机系统,其中所述第一密码随机数与所述服务密钥一起被传输到所述软件服务实例。
7.根据权利要求6所述的计算机系统,其中一旦接收到所述服务密钥,所述软件服务实例被配置为在写入新日志条目时:
生成特定于所述新日志条目的日志密钥,所述生成基于所述服务密钥;
创建日志链节点,所述日志链节点包括所述新日志条目的有效载荷、由所述软件服务实例创建的先前日志链节点的哈希、以及包括所述第一密码随机数的头部;
使用所述日志密钥对所述日志链节点进行数字签名以生成节点签名;
将所述节点签名添加到所述日志链节点;以及
将所述日志链节点保存到日志存储库中。
8.根据权利要求7所述的计算机系统,其中所述日志密钥是对称密钥,并且其中对所述日志链节点进行数字签名包括:计算将所述对称密钥作为输入的消息认证码(MAC)签名函数。
9.根据权利要求8所述的计算机系统,其中所述MAC签名函数的标识符被包括在所述日志链节点的所述头部中。
10.根据权利要求8所述的计算机系统,其中日志链验证服务被配置为通过以下来验证所述日志链节点的完整性:
调用由所述计算机系统公开的接口以用于从所述主密钥得出所述服务密钥;
从所述服务密钥得出所述日志密钥;以及
计算签名验证函数,所述签名验证函数将所述日志密钥作为输入。
11.根据权利要求7所述的计算机系统,其中所述日志密钥是非对称公钥和私钥对中的私钥,并且其中对所述日志链节点进行数字签名包括计算将所述私钥作为输入的签名函数。
12.根据权利要求11所述的计算机系统,其中所述公钥和所述签名函数的标识符被包括在所述日志链节点的所述头部中。
13.根据权利要求12所述的计算机系统,其中日志链验证服务被配置为通过以下来验证所述日志链节点的完整性:
从所述日志链节点的所述头部中检索所述公钥;以及
计算签名验证函数,所述签名验证函数将所述公钥作为输入。
14.一种方法,包括:
通过在密钥服务器上运行的密钥管理服务来维护主密钥;以及
针对多个分布式软件服务实例中的每个软件服务实例:
由所述密钥管理服务生成对于所述软件服务实例的当前生命周期是唯一的服务密钥,所述生成基于所述主密钥;以及
由所述密钥管理服务向所述软件服务实例传输所述服务密钥,其中所述服务密钥由所述软件服务实例在创建高完整性日志时使用。
15.一种计算机可读存储介质,具有存储在其上的由计算机系统可执行的程序代码,所述程序代码使得所述计算机系统能够:
在所述计算机系统的安全存储或存储器位置中维护主密钥;以及
针对与所述计算机系统通信地耦合的多个分布式软件服务实例中的每个软件服务实例:
生成对于所述软件服务实例的当前生命周期是唯一的服务密钥,所述生成基于所述主密钥;以及
向所述软件服务实例传输所述服务密钥,其中所述服务密钥由所述软件服务实例在创建高完整性日志时使用。
CN201880033824.5A 2017-05-22 2018-04-24 分布式软件服务的高完整性日志 Active CN110678865B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/601,518 2017-05-22
US15/601,518 US10615971B2 (en) 2017-05-22 2017-05-22 High integrity logs for distributed software services
PCT/US2018/029007 WO2018217375A1 (en) 2017-05-22 2018-04-24 High integrity logs for distributed software services

Publications (2)

Publication Number Publication Date
CN110678865A true CN110678865A (zh) 2020-01-10
CN110678865B CN110678865B (zh) 2024-06-25

Family

ID=62148495

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880033824.5A Active CN110678865B (zh) 2017-05-22 2018-04-24 分布式软件服务的高完整性日志

Country Status (4)

Country Link
US (1) US10615971B2 (zh)
EP (1) EP3631668B1 (zh)
CN (1) CN110678865B (zh)
WO (1) WO2018217375A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023035743A1 (en) * 2021-09-09 2023-03-16 International Business Machines Corporation Prevention of race conditions in a dual-server storage system for generation of encryption key

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11544249B2 (en) * 2018-11-27 2023-01-03 International Business Machines Corporation Reducing signature verifications of database entries
US11777748B2 (en) * 2018-11-28 2023-10-03 International Business Machines Corporation Trusted timestamping
CN109687956B (zh) * 2018-12-11 2023-02-10 北京数盾信息科技有限公司 一种统一给客户提供密钥管理和密钥运算服务系统
US12058144B2 (en) * 2019-02-12 2024-08-06 Nokia Technologies Oy Method and apparatus for protecting integrity of digital information
US11343089B2 (en) * 2019-07-10 2022-05-24 Tunnel VUE Inc. Cryptography system and method
CN113010480B (zh) * 2020-03-26 2024-03-19 腾讯科技(深圳)有限公司 日志处理方法、装置、电子设备及计算机可读存储介质
TWI766608B (zh) * 2021-03-10 2022-06-01 新加坡商捷普電子(新加坡)公司 程式簽章方法
US20230185794A1 (en) * 2021-12-14 2023-06-15 Akamai Technologies, Inc. High performance distributed system of record with ledger configuration system
CN114567502B (zh) * 2022-03-04 2024-03-01 南京联成科技发展股份有限公司 一种基于过程管控的通信网络中可信安全日志管理的系统

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1437808A (zh) * 2000-06-20 2003-08-20 格姆普拉斯公司 采用密钥的数据处理
US20030200178A1 (en) * 2002-04-18 2003-10-23 International Business Machines Corporation Managing licensing of distributed applications
CN1820448A (zh) * 2003-06-19 2006-08-16 国际商业机器公司 用于使用三阶段加密来加密和验证消息的系统和方法
CN101039186A (zh) * 2007-05-08 2007-09-19 中国科学院软件研究所 系统日志的安全审计方法
RU2006114900A (ru) * 2006-05-03 2007-11-20 Самсунг Электроникс Ко., Лтд. (KR) Способ распределенного управления ключами на основе схемы предварительного распределения ключей
US20090016534A1 (en) * 2006-07-14 2009-01-15 Kinamik Data Integrity, S.L. Method and system of generating immutable audit logs
CN102546607A (zh) * 2010-12-15 2012-07-04 微软公司 在云上提供安全服务
US20140181517A1 (en) * 2012-12-12 2014-06-26 Nokia Corporation Cloud Centric Application Trust Validation
CN104392185A (zh) * 2014-12-01 2015-03-04 公安部第三研究所 在云环境日志取证中实现数据完整性验证的方法
CN104486307A (zh) * 2014-12-03 2015-04-01 中国电子科技集团公司第三十研究所 一种基于同态加密的分权密钥管理方法
WO2016090249A1 (en) * 2014-12-05 2016-06-09 Pcms Holdings, Inc. Protecting the integrity of log entries in a distributed system
US20160182473A1 (en) * 2014-12-19 2016-06-23 Amazon Technologies, Inc. Multi-faceted compute instance identity
CN106105146A (zh) * 2014-02-24 2016-11-09 亚马逊科技公司 在密码证明资源处保护客户端指定凭证

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9313248B2 (en) 2006-04-13 2016-04-12 Johnny Stuart Epstein Method and apparatus for delivering encoded content
US8627112B2 (en) * 2010-03-30 2014-01-07 Novell, Inc. Secure virtual machine memory
US9846899B1 (en) * 2012-08-31 2017-12-19 Amazon Technologies, Inc. Dynamic software licensing
US9367701B2 (en) 2013-03-08 2016-06-14 Robert Bosch Gmbh Systems and methods for maintaining integrity and secrecy in untrusted computing platforms
US9495251B2 (en) 2014-01-24 2016-11-15 Commvault Systems, Inc. Snapshot readiness checking and reporting
US9882825B2 (en) * 2014-03-14 2018-01-30 Citrix Systems, Inc. Method and system for securely transmitting volumes into cloud
US20160162897A1 (en) 2014-12-03 2016-06-09 The Filing Cabinet, LLC System and method for user authentication using crypto-currency transactions as access tokens
CN107533501A (zh) 2015-03-20 2018-01-02 里维茨公司 使用区块链自动认证设备完整性
US10033702B2 (en) 2015-08-05 2018-07-24 Intralinks, Inc. Systems and methods of secure data exchange

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1437808A (zh) * 2000-06-20 2003-08-20 格姆普拉斯公司 采用密钥的数据处理
US20030200178A1 (en) * 2002-04-18 2003-10-23 International Business Machines Corporation Managing licensing of distributed applications
CN1820448A (zh) * 2003-06-19 2006-08-16 国际商业机器公司 用于使用三阶段加密来加密和验证消息的系统和方法
RU2006114900A (ru) * 2006-05-03 2007-11-20 Самсунг Электроникс Ко., Лтд. (KR) Способ распределенного управления ключами на основе схемы предварительного распределения ключей
US20090016534A1 (en) * 2006-07-14 2009-01-15 Kinamik Data Integrity, S.L. Method and system of generating immutable audit logs
CN101039186A (zh) * 2007-05-08 2007-09-19 中国科学院软件研究所 系统日志的安全审计方法
CN102546607A (zh) * 2010-12-15 2012-07-04 微软公司 在云上提供安全服务
US20140181517A1 (en) * 2012-12-12 2014-06-26 Nokia Corporation Cloud Centric Application Trust Validation
CN104838616A (zh) * 2012-12-12 2015-08-12 诺基亚技术有限公司 云中心应用信任验证
CN106105146A (zh) * 2014-02-24 2016-11-09 亚马逊科技公司 在密码证明资源处保护客户端指定凭证
CN104392185A (zh) * 2014-12-01 2015-03-04 公安部第三研究所 在云环境日志取证中实现数据完整性验证的方法
CN104486307A (zh) * 2014-12-03 2015-04-01 中国电子科技集团公司第三十研究所 一种基于同态加密的分权密钥管理方法
WO2016090249A1 (en) * 2014-12-05 2016-06-09 Pcms Holdings, Inc. Protecting the integrity of log entries in a distributed system
US20160182473A1 (en) * 2014-12-19 2016-06-23 Amazon Technologies, Inc. Multi-faceted compute instance identity

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023035743A1 (en) * 2021-09-09 2023-03-16 International Business Machines Corporation Prevention of race conditions in a dual-server storage system for generation of encryption key
US12058244B2 (en) 2021-09-09 2024-08-06 International Business Machines Corporation Prevention of race conditions in a dual-server storage system for generation of encryption key

Also Published As

Publication number Publication date
US10615971B2 (en) 2020-04-07
EP3631668A1 (en) 2020-04-08
EP3631668B1 (en) 2021-05-26
WO2018217375A1 (en) 2018-11-29
US20180337772A1 (en) 2018-11-22
CN110678865B (zh) 2024-06-25

Similar Documents

Publication Publication Date Title
CN110678865B (zh) 分布式软件服务的高完整性日志
JP7461417B2 (ja) セキュアなオフチェーンのブロックチェーントランザクション
JP6690066B2 (ja) パブリックサイドチェーンを使用してコンソーシアムブロックチェーンに記憶されたデータの完全性を検証すること
CN108076057B (zh) 一种基于区块链的数据保全系统及方法
RU2723072C1 (ru) Достижение консенуса между сетевывыми узлами в распределенной системе
CA3058238C (en) Data isolation in blockchain networks
CN111433803B (zh) 区块链通信和排序
Wang et al. Enabling public verifiability and data dynamics for storage security in cloud computing
US10659219B1 (en) Workflow management via distributed ledgers and smart contracts
US11074139B2 (en) Dynamic block chain system using metadata for backing up data based on digest rules
US20160365978A1 (en) Making cryptographic claims about stored data using an anchoring system
EP3791538B1 (en) Shared blockchain data storage based on error correction code
US20190207748A1 (en) Blockchain storage device
US10951417B2 (en) Blockchain-based transaction verification
JP2021522738A (ja) 誤り訂正符号に基づく共有されたブロックチェーンデータの記憶のコンセンサス
JP2021528882A (ja) 共有されたブロックチェーンデータの記憶の優先順位付け
CA3098932A1 (en) Data security of shared blockchain data storage based on error correction code
CN111033491A (zh) 基于纠错编码存储共享的区块链数据
WO2021143364A1 (zh) 获取去中心化应用集群中的交易处理状态的方法及装置
CN110827034A (zh) 用于发起区块链交易的方法及装置
US20170093575A1 (en) Code signing service
US20230342762A1 (en) Updating digital assets transactions in isolated devices
US20240097884A1 (en) Time intervals for stateful signature production
Abraham et al. Proving possession and retrievability within a cloud environment: A comparative survey
US20230254154A1 (en) Enabling internal and external verification of hash-based signature computations by signing server

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
GR01 Patent grant
GR01 Patent grant