CN107534551B - 提供加密数据的方法、计算设备和计算机可读介质 - Google Patents
提供加密数据的方法、计算设备和计算机可读介质 Download PDFInfo
- Publication number
- CN107534551B CN107534551B CN201580079007.XA CN201580079007A CN107534551B CN 107534551 B CN107534551 B CN 107534551B CN 201580079007 A CN201580079007 A CN 201580079007A CN 107534551 B CN107534551 B CN 107534551B
- Authority
- CN
- China
- Prior art keywords
- computing device
- random number
- key data
- memory
- generated
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- 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/321—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 a third party or a trusted authority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本公开涉及提供加密数据的方法、计算设备和计算机可读介质。本文阐述的示例提供了以下方法,包括使用特定于计算设备的第一加密密钥数据来验证要在计算设备上运行的机器可读指令的封装。可以执行经验证的封装,以使用计算设备的真随机数生成器来生成随机数,并且存储所生成的随机数。可以由计算设备的伪随机数生成器基于种子来生成第二加密密钥数据,该种子包括作为第一种子部分的随机数与第二种子部分的组合。可以将第二加密密钥数据的一部分发送到认证机构。该方法还包括接收来自认证机构的基于第二加密密钥数据的所发送的部分的认证值,并且存储认证值。
Description
技术领域
本公开涉及加密数据。
背景技术
计算机网络可以包括多个节点。在一些示例中,每个节点是单独的计算设备,并且可以由多个用户或租户使用,这些用户或租户可以是单独的终端用户、机器可读指令的封装(package)(例如,软件或固件程序或应用),或者是计算网络的另一节点。出于安全原因,可能存在这样的情况:节点和/或其单独的租户使用加密数据来进行操作。
发明内容
根据本公开的一个方面,提供一种向计算设备提供加密数据的方法,包括:使用特定于计算设备的第一加密密钥数据来验证要在计算设备上运行的机器可读指令的封装;由计算设备执行经验证的封装,其中,执行所述封装包括:使用计算设备的真随机数生成器来生成随机数,并且存储所生成的随机数;产生第二加密密钥数据,所述第二加密密钥数据由计算设备的伪随机数生成器基于种子生成,所述种子包括作为第一种子部分的由所述计算设备的真随机数生成器生成的所述随机数与第二种子部分的组合;以及将所述第二加密密钥数据的至少一部分发送到认证机构;所述方法还包括接收来自所述认证机构的基于所述第二加密密钥数据的所发送的部分的认证值,并且存储所述认证值。
根据本公开的一个方面,提供一种计算设备,包括:处理器、第一密钥数据存储器部分和第二密钥数据存储器部分、真随机数生成器、伪随机数生成器、以及保存机器可读指令的存储器;其中,所述第一密钥数据存储器部分保存所述计算设备的第一加密密钥数据;所述第二密钥数据存储器部分保存随机数,所述随机数是由所述真随机数生成器生成的;并且,所述存储器保存:认证值,所述认证值是基于由所述计算设备的伪随机数生成器使用种子生成的数据而生成的,所述种子包括第一种子部分与第二种子部分的组合,所述第一种子部分基于保存在所述第二密钥数据存储器部分中的所述随机数,以及机器可读指令,所述机器可读指令是被使用所述第一加密密钥数据验证的。
根据本公开的一个方面,提供一种非暂时性计算机可读介质,包括当被执行时使得计算设备的处理器进行以下操作的指令:请求并且接收来自计算设备的操作者的操作者密钥数据;通过使用所接收到的操作者密钥数据和保存在计算设备的存储器中的随机数生成密钥来验证所接收到的操作者密钥数据,并且针对保存在所述计算设备的存储器中的证书来验证所生成的密钥,所述证书是基于经验证的操作者密钥数据和所述随机数生成的;请求由计算设备的真随机数生成器生成的随机数,使用由真随机数生成器生成的所述随机数来提供用于生成所述计算设备的用户的身份的第一用户身份密钥部分。
附图说明
现在将参考附图通过非限制性示例的方式对示例进行描述,在附图中:
图1是用于向计算设备提供加密数据的方法的示例的流程图;
图2是用于使计算设备的加密身份无效的方法的示例的流程图;
图3是计算设备的示例的简化示意图;
图4是处理器和存储器的示例的简化示意图;以及
图5是用于向用户提供加密身份的方法的示例的流程图;以及
图6是计算机网络的示例的简化示意图。
具体实施方式
以下具体实施方式参考附图。然而,应当明确地理解,附图仅出于示例说明和描述的目的。虽然在本文档中描述了若干示例,但是修改、改动、以及其它实现方式是可能的。因此,以下具体实施方式不对所公开的示例进行限制。相反,所公开的示例的恰当范围可以由所附权利要求来定义。
图1是示出用于向计算设备(例如,用于提供计算机网络的节点的计算设备)提供加密数据的方法的示例的流程图。分发和存储加密数据提出了技术挑战,因为在分发和使用期间数据必须维持秘密且安全。在分发之后,可能存在这样的情况:只准许特定被授权的实体提供机器可读指令的封装(例如,软件更新或升级),并且这种封装的安全授权是技术挑战。在允许客户端或用户对计算设备进行访问方面提出了类似的挑战。这应该在所需的处理和所占用的存储器空间二者方面安全且高效地实现。
在一些示例中,图1的方法可以在对计算设备进行分发之前执行(例如,在其销售或部署之前执行),并且可以在安全的或可信的环境中执行。
在框102中,使用特定于计算设备的第一加密密钥数据来验证要在计算设备上运行的机器可读指令的封装。在示例中,第一加密密钥数据是对特定于计算设备的公共密钥的处置。例如,第一加密密钥数据可以包括散列,或对公共加密密钥数据的至少一部分执行的一些其它处理的结果。在一个示例中,第一加密密钥数据可以包括公共密钥的一部分的散列(或另一处置),例如,设备的“信任根”公共密钥,即,计算设备的操作系统能够绝对信任的密钥。该处置和/或所使用的密钥数据的部分可以是特定于计算设备的。在这种示例中,第一加密密钥数据可以向计算设备提供设备特定的私有密钥。
如上面所指出的,在一些示例中,这可以在安全环境中执行,例如,在计算设备制造商的场所。在一些这样的示例中,第一加密密钥数据可以是制造商的秘密或者可以基于制造商的秘密而导出。在一些示例中,第一加密密钥数据和/或对第一加密密钥数据所基于的数据进行处置的方法可以从与执行该方法的实体不同的实体提供。例如,该方法可以由设备制造商执行,但是第一加密密钥数据可以是诸如设备的操作者(或预期的操作者)的实体的秘密或者可以基于该秘密而导出。
在一些示例中,第一加密密钥数据可以是被授权对机器可读指令进行部署以用于由计算设备执行的实体的秘密或者可以基于该秘密而导出(该实体可以包括制造商、或预期的操作者、或一些其它实体)。当提供机器可读指令的封装(例如,作为更新或升级的软件或固件程序)时,经授权的实体可以利用签名来对该封装进行签署,能够针对第一加密密钥数据来验证该签名。
在一些示例中,可以由系统内编程器(ISP)将第一加密数据提供给计算设备,系统内编程器(ISP)将第一加密密钥数据高效地“硬编码”到存储器,以使得第一加密密钥数据在存储器的生命周期内不能被更改。在一些示例中,可以使用仅仅能够由ISP等(即,能够写入安装在处理设备中的存储器而不是在安装之前预编程的设备)进行编程的存储器来保存第一加密密钥数据。
在框102中使用的第一加密密钥数据可以用于验证机器可读指令的封装被授权在计算设备上运行。例如,可能已经使用这样的数据对机器可读指令的封装进行签署:能够使用第一加密密钥数据对该数据进行验证(该数据可以包括第一加密密钥数据本身)。由具有对第一加密密钥数据的访问权的签署实体(在一些示例中,提供第一加密密钥数据的相同实体)签署的机器可读指令的封装被认为是可信的。因此,如果签名针对第一加密密钥数据被验证,则认为机器可读指令的封装被验证并且可以准许其执行。在一些示例中,第一加密密钥数据还可以用于在计算设备的部署之后对在使用计算设备时提供的经授权的机器可读指令的封装进行验证,利用能够针对第一加密密钥数据被验证的数据对该封装进行签署。
在框104至108中,经验证的机器可读指令的封装由计算设备执行。例如,这些框可以在计算设备的第一次启动时执行,并且可以在计算设备维持处于可信环境中时执行。在框104中,当机器可读指令的封装执行时,使用计算设备的真随机数生成器来生成随机数。该随机数也被存储。存储可以在生成时进行,但是在该示例中,在下面的框112中进行。在框106中,使用在框104中生成的随机数(作为第一种子部分)和第二种子部分来生成用于计算设备的伪随机数生成器的种子。
第二种子部分可以是被授权对授权用户使用计算设备进行控制的实体(例如,计算设备的预期所有者或操作者)已知的秘密,并且在一些示例中,执行图1的方法的实体不已知。第二种子部分可以是添加到第一密钥部分的秘密“salt”。在一些示例中,第二种子部分不存储在计算设备中,和/或该数据的信息在随后的过程中使用,以便于证明身份或提供授权。例如,如果用户请求对计算设备进行访问,则也可以请求或提供第二种子部分以便于允许对该请求进行确认。在其它示例中,可以请求或提供第二种子部分以便于允许对新的软件等进行确认。
可以以任何方式对第一种子部分和第二种子部分进行组合,从简单的级联到对其进行任何交织或预先确定的处置。然而,组合过程可以是可重复的,以使得在随后的验证过程中种子可以重新生成。
在框108中,通过对第一种子部分和第二种子部分进行组合而提供的种子在伪随机数生成器中用于产生第二加密密钥数据。在一些示例中,在提供第一种子部分的步骤104中生成的随机数可以足够大,使得即使第二种子部分(例如,预期的操作者的秘密salt)受损,第二加密密钥数据也维持高效安全,这是因为需要(仍然秘密的)第一种子部分来重建第二加密密钥数据。
如果能够信任支撑第二加密密钥数据的导出的第一加密密钥数据(即,被视为信任根密钥),并且该过程在可信环境中执行,则也能够信息第二加密密钥数据。
经验证的机器可读指令的封装进一步操作以将第二加密密钥数据的至少一部分发送到认证机构(框110)。在一些示例中,第二加密密钥数据用于提供公共密钥部分(公共密钥部分被发送到认证机构)和私有密钥部分,即,第二加密密钥数据提供公共密钥/私有密钥对。在这样的示例中,伪随机数生成器用作用于提供这样的公共密钥/私有密钥对的熵源。
在框112中,从认证机构接收回认证值。认证机构可以是任何认可站。在一个示例中,如果该过程在制造商的可信环境中执行,则认证机构可以是制造商。在其它示例中,认证机构可以是计算设备的预期的操作者或所有者,或者可以是代表制造商、预期的操作者或所有者、或任何其它可信实体来行动的可信机构。
在框114中,对在框104中生成的随机数和认证值二者进行存储。这些可以被存储,以便于可取回以在验证过程中使用。在一些示例中,随机数可以存储在计算设备的一次可编程存储器中,其可以是防篡改的一次可编程存储器。
因此,基于例如提供第一加密密钥数据的信任根公共密钥,图1的方法允许第二加密密钥数据与计算设备安全地相关联。与这种信任根公共密钥相关联的信任流动到第二加密密钥数据,其可以形成设备的加密身份的基础。该方法可以在分发计算设备之前在安全环境中执行。如下面进一步阐述的,这种用于向计算设备提供加密数据的技术解决方案为以下操作提供了可扩展的基础:高效且安全地验证新的机器可读指令的(多个)封装,验证计算设备的新用户(以及向用户提供加密强身份),和/或验证用于在分发和部署计算设备之后使计算设备的加密身份无效的请求。计算设备本身也提供有加密强身份。
在一些示例中,可以使用只读存储器(ROM)代码来执行图1的方法。在其中第一加密密钥数据基于信任根公共密钥(RoTPK)的一个示例中,框102可以包括从预定义的存储区域加载RoTPK,并且利用第一加密密钥数据对RoTPK的散列进行检查。RoTPK可以被保存在计算设备的存储器或处理器中,以使得RoTPK安全地结合到计算设备。如果存在错误,则该过程可以停止;但是如果检查被验证,则可以从预定义的存储区域(其可以在计算设备的内部或外部)加载机器可读指令的封装。如果机器可读指令的封装已经由对应于RoTPK的私有密钥有效地签署(如针对第一加密密钥数据被验证),则执行机器可读指令的封装。
在一些示例中,预期的操作者或用户可以是计算机可读指令的封装(例如,预期的操作者可以是计算机程序),并且可以在自动化基础上执行该方法。
图2示出了可以例如包括使计算设备退出运行、重新运行、或重新目的化的一部分的方法。该方法也可以在可信环境(例如,由计算设备所有者或计算设备制造商控制的环境)中执行。应当注意,在该方法中使用第二加密密钥数据。因此,该方法可以由能够提供第二种子部分以允许重建第二加密密钥数据的实体执行,或者与这样的实体相关联地执行。
在框202中,接收到对于使认证值无效的请求,该请求包括第二加密密钥数据的第二种子部分(在一些示例中,操作者的秘密salt)。在框204中,所提供的第二种子部分针对第二加密密钥数据被验证。该验证可以包括尝试通过将所提供的声称的第二种子部分与保存在计算设备的存储器中的随机数进行组合来重新生成第二加密密钥数据,以及针对认证值对其中的至少一部分进行确认。
如果该验证成功,则在框206中,计算设备请求在认证机构处撤销认证值。在一些示例中,该请求可以包括基于第一加密密钥数据的挑战,以使得认证机构的身份被验证。在一些示例中,这样的挑战允许确认向计算设备提供其加密身份的认证机构是现在使设备退出运行的相同认证机构(或者受该认证机构信任)。在框208中,将认证值和存储在计算设备上的由真随机数生成器生成的随机数中的至少一个(例如,如上面关于框104所述)删除。在保存随机数的存储器是一次可编程存储器的示例中,这可能不容易被删除(除了通过移除或破坏该一次可编程存储器)。然而,如果删除了认证值,则对于之后使用第二种子部分进行的任何请求,将不能证明重新生成的第二加密密钥数据是真实的:计算设备不再能证明其第二加密密钥数据的真实性,并且因此确认过程(例如,如下面关于图4所描述的)将失败,并且计算设备的加密身份被高效地撤销。如果删除了随机数,将不再可能重新生成第二加密密钥数据。
图3是计算设备300的示意表示,其包括处理器302、第一密钥数据存储器部分304a、第二密钥数据存储器部分304b、第三密钥数据存储器部分306b、真随机数生成器306、伪随机数生成器308、以及存储器310,存储器310保存由处理器302执行的机器可读指令。
第一密钥数据存储器部分304a保存与计算设备相关联的第一加密密钥数据。在该示例中,第一加密密钥数据是公共密钥的设备特定的处置。例如,第一加密密钥数据可以是上面的框102中接收到的数据。第二密钥数据存储器部分304b保存随机数,该随机数由计算设备的真随机数生成器308生成。例如,该随机数可以是在上面的框104中生成的随机数。在该示例中,第三密钥数据存储器部分304b保存用户特定的加密密钥数据,用户加密密钥数据是使用真随机数生成器生成的。
存储器310保存认证值CV,基于由伪随机数生成器308使用包括第一种子部分和第二种子部分的组合的种子而生成的数据来从认证机构接收认证值,其中,第一种子部分基于保存在第二密钥数据存储器部分304b中的随机数。例如,该认证值CV可以是如在上面的框112中接收到的认证值。该认证值可以用于验证用户对计算设备300进行访问的请求。
存储器310还保存机器可读指令312,其可以包括已经使用第一加密密钥数据验证的指令(例如,如在上面的框102中验证或者如在分离的过程中验证的机器可读指令的封装),并且机器可读指令312可以由处理器302执行。
在该示例中,伪随机数生成器308和密钥数据可编程存储器304是防篡改的,因为尝试访问其中的数据将导致对存储器的访问被永久地禁用、删除配置数据等。
在计算设备300的第一次部署时,第三密钥数据存储器部分304c可以是空的。在这种示例中,第三密钥数据存储器部分304c可以稍后填充有用户加密密钥数据。在一些示例中,第三密钥数据存储器部分304c可以填充有用于针对多个用户生成用户特定的加密密钥数据的用户加密密钥数据。在一些示例中,可以在验证对于用户特定的加密密钥数据的请求是与第二种子部分相关联地提供的之后生成用户特定的加密密钥数据。该验证可以包括尝试通过将所提供的声称的第二种子部分与保存在计算设备的存储器中的随机数进行组合来重新生成第二加密密钥数据,以及针对认证值CV对其中的至少一部分进行确认。
例如,如果第二种子部分是操作者的秘密salt,则操作者可以通过允许第二种子部分包括在对于用户特定的加密密钥数据的请求中或以其它方式与该请求相关联来允许针对特定用户生成用户特定的加密密钥数据。如果用户未被授权,则可以保留第二种子部分。在一些示例中,用户(该术语包括人类终端用户和计算机可读指令的封装)可以将第二种子部分直接提供给计算设备(例如,通过使用键盘输入,或使用安全令牌或另一方式)。在其它示例中,可以向操作者(或保存第二种子部分的秘密的任何其它实体)注册和确认用户,该操作者将为用户提供第二种子部分。下文关于下面的图4和图5提供关于发布用户特定的加密密钥数据的进一步讨论。
在一些示例中,可以存在一个或多个附加密钥数据存储器部分304,例如,一个密钥数据存储器部分304用于可以用作多租户节点的计算设备300的每个实际的或预期的用户。由于在这种示例中专用于特定用户的存储器空间较小,用户数量可能很大。在其它示例中,包括用户身份种子的单个随机数可以包括用户加密密钥数据,其保存在密钥数据存储器部分304中,并且可以用于针对多个用户生成用户特定的加密密钥数据,其中每个用户提供附加的、用户特定的种子部分,如下文进一步阐述的。这进一步降低了最小存储器规格。另外注意到,存储种子比存储密钥更空间高效。
在一些示例中,密钥数据存储器部分304中的每一个是一次可编程存储器,并且对存储器部分的访问被限制到在同一计算设备300的处理器302上运行的经验证的机器可读指令的封装(在一些示例中,仅准许经验证的封装的子集对存储器部分304进行访问)。密钥数据存储器部分304可以是防篡改的,并且彼此隔离。在一些示例中,一次可编程存储器空间被分割以提供密钥数据存储器部分304。可以使用在处理器302上操作的低级别代码来执行对存储器空间的分割以及访问控制。
在特定示例中,第一密钥数据存储器部分304a可以保存或基于作为第一实体的秘密的数据(例如,信任根公共密钥的散列(其中制造商进行的用于产生散列的处理是制造商的秘密)、种子、或简单的密钥数据),其被信任用于提供机器可读指令的封装。在一些示例中,第一实体可以是设备制造商。第二密钥数据存储器部分304b可以保存秘密随机数,该秘密随机数可以与设备300的访问权限实体的秘密(第二种子部分)进行组合,以产生能够针对认证值被认证的值。访问权限实体可以用于对哪些用户被允许访问计算设备300进行控制。在一些示例中,访问权限实体是计算设备300的实际操作者或预期操作者。在一些示例中,当秘密在计算设备300处于可信环境中安装或生成时,能够信任保存在密钥数据存储器部分304中的秘密。访问权限实体和第一实体可以是相同的实体或者不同的实体。
例如,如果第一实体希望部署新的可执行指令的封装,则可以使用可以针对保存在第一密钥数据存储器部分304a中的数据被确认的第一实体的秘密对其进行签名。如果访问权限实体想要允许特定用户作为计算设备300的租户,则这可以通过向用户提供其秘密或者向其秘密提供用于生成用户的加密身份的请求来实现,并且该秘密能够针对认证值CV被确认。如果旨在撤销计算设备300的证书,则这也可以由访问权限实体使用其秘密来请求。可以使用保存在第一密钥数据存储器部分304a中的数据对认证机构进行确认。
因此,计算设备300可以部署有要允许向其添加经授权的可执行指令的封装所必需的信息,允许安全地更新和升级计算设备300。此外,计算设备300可以部署有要允许向其经授权的期望用户(例如,被授权对访问权限实体的秘密进行访问的用户)发布加密身份以用作计算设备的租户所必需的信息。
第三密钥数据存储器部分306c可以用于保存秘密,该秘密可以是用户特定的密钥数据或者可以用于生成用户特定的密钥数据,例如,用于向用户提供在计算设备上使用的加密身份。新用户可以提供其自己的秘密来生成加密身份,从而能够针对其他用户保护其信息。可以高效地生成和发布这样的身份,并且不会使用过多的存储空间量。
图4是处理器402与存储器404进行通信的示例。处理器402可以例如用作如关于图3所描述的处理器302,并且存储器404可以用作存储器310。在该示例中,存储器404是非暂时性计算机可读介质,其包括指令,该指令在被执行时使得计算设备的处理器402请求来自设备的操作者的操作者密钥数据。该操作者密钥数据可以用作上述过程中的第二种子部分,并且可以例如包括操作者的“秘密salt”数据。在该示例中,操作者是访问权限实体,并且至少就用作希望访问计算设备资源的用户的守卫(gate keeper)而言对计算设备进行操作。存储器404还可以存储指令,该指令当由处理器402执行时,使得处理器402通过使用接收到的密钥数据和保存在计算设备的存储器中的随机数生成密钥来验证接收到的密钥数据;并且该指令当被执行时,针对保存在设备的存储器中的证书对所生成的密钥进行验证,该证书是基于经验证的所有者密钥数据以及由设备的真随机数生成器生成的随机数生成的(例如,上面提及的认证值CV)。可以向计算设备的真随机数生成器请求随机数,并且该随机数用于生成第一用户身份密钥部分,第一用户身份密钥部分用于生成设备的用户的身份。在一些示例中,随机数是在验证操作者密钥数据之后请求的。在其它示例中,可以在生成随机数之后请求和/或提供操作者密钥数据,并且然后对操作者密钥数据进行验证。
在一些示例中,存储器404可以包括指令,该指令当被执行时,使得处理器402请求来自设备的用户的第二用户身份密钥部分,并且对第一用户身份密钥部分与第二用户身份密钥部分进行组合,以导出计算设备的用户的用户身份。在一些示例中,存储器404可以包括指令,该指令当被执行时,使得处理器402通过将第一用户身份密钥部分与第二用户身份密钥部分的组合用作伪随机数生成器中的种子值来导出用户身份。
在一些示例中,存储器404可以包括指令,该指令当被执行时,使得处理器402验证所接收到的信息的封装是使用这样的数据来签署的:该数据针对保存在计算设备的存储器中的密钥数据能够被验证。例如,该数据可以是如上面描述的第一加密密钥数据。
在一些示例中,存储器404可以包括指令,该指令当被执行时,使得处理器402验证所接收到的用于使认证值无效的请求包括操作者密钥数据,并且如果是,则删除保存在存储器中的认证值。该指令当被执行时,还使得处理器402向认证机构发送请求,请求在认证机构处撤销认证值。
在图5中阐述了在执行计算机可读指令时执行的过程的示例。可以部署诸如上文关于图3所描述的计算设备以及与其相关联的预期的用户或租户。在框502中,在处理器(例如,上面描述的处理器302、402)上执行的机器可读指令的封装请求第二种子部分。如果在框504中,第二种子部分被接收并且针对所存储的认证值被验证(指示操作者信任所提出的用户),则请求随机数(框506)。在一些示例中,该随机数是向设备的真随机数生成器请求的。在其它示例中,该随机数可以保存在存储器中(例如,先前由设备的真随机数生成器生成)。该随机数用作用户身份种子。在该示例中,用户身份种子被写入一次可编程存储器/从一次可编程存储器取回,但是可以使用其它存储器类型。在框508中,用户提供用户特定的种子部分。将用户特定的种子部分与用户身份种子进行组合以提供种子(框510),并且该种子由计算设备的伪随机生成器用于产生用户特定的密钥数据,向用户提供加密身份(框512)。因此,用户身份种子提供第一用户身份密钥部分,而用户特定的种子部分提供第二用户身份密钥部分,并且可以对第一用户身份密钥部分与第二用户身份密钥部分进行组合,以导出设备的用户的用户身份。例如,基于第二种子部分(或操作者密钥数据)进行的验证可以在生成第一用户身份密钥部分之前和/或在生成用户身份之前发生。
用户特定的种子部分可以维持用户的秘密。尽管用户特定的种子部分的机密性可能足以确保用户特定的密钥数据的安全性,但是用户身份种子仍可以维持秘密,以限制可访问的密钥数据的量。
在一些示例中,多个用户可以请求一些熵,以基于单独的用户特定的种子部分和用户身份种子来产生用户特定的密钥数据。在这种示例中,用户身份种子可以维持秘密(即使对于用户),以保护其他用户的安全。
在其它示例中,可以以另一种方式授权用户,例如,通过使用认证机构。在一些示例中,第二加密密钥数据(例如,其私有部分)可以用于对公共密钥进行认证,并且用于该操作的认证值可以存储在计算设备上。在这样的示例中,如果用户可以提供该证书,则用户可以由认证机构验证。
在一些示例中,机器可读指令的封装可以给予用户身份种子对在处理器302、402上运行的另一这种封装(其可以是客户特定的)的完全控制。在这样的示例中,由于经验证的封装不再能强制执行对用户身份种子的访问控制,所以该封装可以由不同的第一加密密钥数据进行认证。
图6是包括多个节点602的计算机网络600的示例。节点602各自具有多个租户604(在本文中也称为用户)。还以虚线示出了示例通信链路。租户604可以包括终端用户、机器可读指令的封装(例如,软件或固件程序)、或其它节点602。图1和图2的方法可以分别用于使这种网络600中的节点602或者在这种网络600中使用的节点602运行或退出运行。在图5中阐述的方法可以用于向租户604发布加密身份。图4的装置可以用作节点602。节点602可以包括数据中心的组件。在一些示例中,存在大量节点,其可以分布在广泛的地理区域上。租户604可以具有不同的安全协议和不同的能力。
参考根据本公开的示例的方法、设备、以及系统的流程图和/或框图对本公开进行描述。虽然上面描述的流程图示出了特定的执行次序,但是执行次序可以与所描述的次序不同。关于一个流程图描述的框可以与另一流程图的框组合。应当理解,流程图和/或框图中的每个流程和/或框、以及流程图和/或框图中的流程和/或图的组合可以通过机器可读指令来实现。
机器可读指令可以例如由通用计算机、专用计算机、嵌入式处理器、或用于实现在说明书和附图中描述的功能的其它可编程数据处理设备的处理器来执行。特别地,诸如处理器302或处理器402的处理器或处理装置可以执行机器可读指令。因此,装置和设备的功能模块可以由执行存储在存储器中的机器可读指令的处理器、或者根据嵌入在逻辑电路中的指令进行操作的处理器来实现。术语“处理器”应被广义地解释为包括CPU、处理单元、ASIC、逻辑单元、或可编程门阵列等。方法和功能模块可以全部由单个处理器执行,或者划分到若干处理器中执行。
这样的机器可读指令还可以存储在计算机可读存储装置中,例如,可以引导计算机或其它可编程数据处理设备在特定模式中进行操作的存储器310或存储器404。
这样的机器可读指令还可以被加载到计算机或其它可编程数据处理设备上,以使得计算机或其它可编程数据处理设备执行用于产生计算机实现的处理的一系列操作,因此,在计算机或其它可编程设备上执行的指令实现由流程图中的(多个)流程和/或框图中的(多个)框指定的功能。
此外,本文的教导可以以计算机软件产品的形式来实现,该计算机软件产品存储在存储介质中,并且包括用于使计算机设备实现在本公开的示例中详述的方法的多个指令。
虽然已经参考某些示例描述了方法、装置、以及相关方面,但是在不脱离本公开的精神的情况下,可以进行各种修改、改变、省略、以及替换。因此,意图在于该方法、装置、以及相关方面仅由所附权利要求及其等同内容的范围进行限制。应当注意,上面提及的示例说明而非限制本文所描述的内容,并且本领域技术人员将能够在不脱离所附权利要求的范围的情况下设计许多替代实现方式。
词语“包括”不排除存在除权利要求中列出的元素之外的元素,“一(a)”或“一个(an)”不排除多个,并且单个处理器或其它单元可以实现权利要求中详述的若干单元的功能。
可以将任何从属权利要求的特征与独立权利要求或其它从属权利要求中的任一个的特征进行组合。
Claims (15)
1.一种向计算设备提供加密数据的方法,包括:
使用特定于计算设备的第一加密密钥数据来验证要在所述计算设备上运行的机器可读指令的封装;
由所述计算设备执行经验证的封装,其中,执行所述封装包括:
使用所述计算设备的真随机数生成器来生成随机数,并且存储所生成的随机数;
产生第二加密密钥数据,所述第二加密密钥数据由所述计算设备的伪随机数生成器基于种子生成,所述种子包括作为第一种子部分的由所述计算设备的真随机数生成器生成的所述随机数与第二种子部分的组合;以及
将所述第二加密密钥数据的至少一部分发送到认证机构;
所述方法还包括接收来自所述认证机构的基于所述第二加密密钥数据的所发送的部分的认证值,并且在所述计算设备的存储器中存储所述认证值。
2.根据权利要求1所述的方法,其中,存储所述第一加密密钥数据和由所述计算设备的所述真随机数生成器生成的所述随机数中的至少一个包括将数据存储在所述计算设备的所述存储器中。
3.根据权利要求2所述的方法,包括将所述第一加密密钥数据和由所述计算设备的所述真随机数生成器生成的所述随机数存储在所述计算设备的分离的一次可编程存储器中。
4.根据权利要求1所述的方法,所述方法在可信环境中执行。
5.根据权利要求1所述的方法,其中,所述第二种子部分是所述计算设备的预期操作者的秘密。
6.根据权利要求1所述的方法,其中,所述第一加密密钥数据和/或所述随机数由所述计算设备的系统内编程器硬编码到所述存储器。
7.根据权利要求1所述的方法,还包括使用所述第一加密密钥来验证接收到的计算机可读指令的封装。
8.根据权利要求1所述的方法,还包括:
接收对于使所述认证值无效的请求,
使用所述第二加密密钥数据来验证所述请求包括所述第二种子部分,并且如果被验证,则:
请求在所述认证机构处撤销所述认证值;以及
删除以下中的至少一个:存储在所述计算设备上的所述认证值和由所述真随机数生成器生成的所述随机数。
9.一种计算设备,包括:
处理器、第一密钥数据存储器部分和第二密钥数据存储器部分、真随机数生成器、伪随机数生成器、以及保存机器可读指令的存储器;
其中,所述第一密钥数据存储器部分保存所述计算设备的第一加密密钥数据;
所述第二密钥数据存储器部分保存随机数,所述随机数是由所述真随机数生成器生成的;
并且,所述存储器保存:
认证值,所述认证值是由认证机构基于由所述计算设备的伪随机数生成器使用种子生成的数据而生成的,所述种子包括第一种子部分与第二种子部分的组合,所述第一种子部分基于保存在所述第二密钥数据存储器部分中的所述随机数,以及
机器可读指令,所述机器可读指令是使用所述第一加密密钥数据被验证的。
10.根据权利要求9所述的计算设备,还包括第三密钥数据存储器部分,所述第三密钥数据存储器部分保存用户加密密钥数据,所述用户加密密钥数据是使用所述真随机数生成器生成的。
11.根据权利要求10所述的计算设备,其中,所述用户加密密钥数据包括在通过使用所述认证值验证用于生成用户的加密身份的请求包括所述第二种子部分之后使用所述真随机数生成器生成的数据。
12.根据权利要求9所述的计算设备,其中,所述伪随机数生成器和所述密钥数据存储器部分是防篡改的。
13.一种非暂时性计算机可读介质,包括当被执行时使得计算设备的处理器进行以下操作的指令:
请求并且接收来自所述计算设备的操作者的操作者密钥数据;
通过使用所接收到的操作者密钥数据和保存在计算设备的存储器中的随机数生成密钥来验证所接收到的操作者密钥数据,并且针对保存在所述计算设备的存储器中的证书来验证所生成的密钥,所述证书是由认证机构基于经验证的操作者密钥数据和所述随机数生成的;
请求由所述计算设备的真随机数生成器生成的随机数,
使用由真随机数生成器生成的所述随机数来提供用于生成所述计算设备的用户的身份的第一用户身份密钥部分。
14.根据权利要求13所述的非暂时性计算机可读介质,还包括当由所述处理器执行时使得所述处理器进行以下操作的指令:
请求来自所述计算设备的用户的第二用户身份密钥部分,以及
组合所述第一用户身份密钥部分与所述第二用户身份密钥部分,以导出所述计算设备的用户的用户身份。
15.根据权利要求13所述的非暂时性计算机可读介质,还包括当由所述处理器执行时使得所述处理器进行以下操作的指令:
通过将所述第一用户身份密钥部分与所述第二用户身份密钥部分的组合用作伪随机数生成器中的种子值来生成所述用户身份。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2015/067543 WO2017016609A1 (en) | 2015-07-30 | 2015-07-30 | Cryptographic data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107534551A CN107534551A (zh) | 2018-01-02 |
CN107534551B true CN107534551B (zh) | 2021-02-09 |
Family
ID=53762185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580079007.XA Active CN107534551B (zh) | 2015-07-30 | 2015-07-30 | 提供加密数据的方法、计算设备和计算机可读介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10686612B2 (zh) |
EP (1) | EP3292495B1 (zh) |
CN (1) | CN107534551B (zh) |
WO (1) | WO2017016609A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110324138B (zh) * | 2018-03-29 | 2022-05-24 | 阿里巴巴集团控股有限公司 | 数据加密、解密方法及装置 |
US11210413B2 (en) * | 2018-08-17 | 2021-12-28 | Microchip Technology Incorporated | Authentication of files |
US11218307B1 (en) | 2019-04-24 | 2022-01-04 | Wells Fargo Bank, N.A. | Systems and methods for generation of the last obfuscated secret using a seed |
AU2020353720A1 (en) * | 2019-09-25 | 2022-03-31 | Commonwealth Scientific And Industrial Research Organisation | Cryptographic services for browser applications |
CN110765488B (zh) * | 2019-10-28 | 2021-11-16 | 联想(北京)有限公司 | 数据存储与读取方法和电子设备 |
CN114124366A (zh) * | 2020-08-31 | 2022-03-01 | 华为技术有限公司 | 一种可信芯片的密钥生成方法及相关设备 |
FR3121765A1 (fr) * | 2021-04-08 | 2022-10-14 | Proton World International N.V. | Procédé d'authentification |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978484A (en) | 1996-04-25 | 1999-11-02 | Microsoft Corporation | System and method for safety distributing executable objects |
US6104810A (en) * | 1997-05-15 | 2000-08-15 | International Business Machines Corporation | Pseudorandom number generator with backup and restoration capability |
US6687375B1 (en) * | 1999-06-02 | 2004-02-03 | International Business Machines Corporation | Generating user-dependent keys and random numbers |
GB2361567B (en) * | 2000-04-18 | 2004-02-11 | Mitel Corp | Hardware authentication system and method |
US7231044B2 (en) * | 2000-10-11 | 2007-06-12 | Digital Authentication Technologies, Inc. | Method and apparatus for real-time digital certification of electronic files and transactions using entropy factors |
US6678707B1 (en) * | 2000-10-30 | 2004-01-13 | Hewlett-Packard Development Company, L.P. | Generation of cryptographically strong random numbers using MISRs |
JP4741503B2 (ja) * | 2003-10-28 | 2011-08-03 | サーティコム コーポレーション | 公開鍵を検証可能に生成する方法及び装置 |
US8050409B2 (en) | 2004-04-02 | 2011-11-01 | University Of Cincinnati | Threshold and identity-based key management and authentication for wireless ad hoc networks |
CN101330438B (zh) | 2007-06-21 | 2011-06-08 | 华为技术有限公司 | 一种节点间安全通信的方法及系统 |
US8700894B2 (en) | 2007-10-17 | 2014-04-15 | Pitney Bowes Inc. | Method and system for securing routing information of a communication using identity-based encryption scheme |
US8347096B2 (en) * | 2009-07-10 | 2013-01-01 | Vasco Data Security, Inc. | Authentication token with incremental key establishment capacity |
US9436815B2 (en) | 2012-07-12 | 2016-09-06 | Xsette Technology, Inc. | Block management unification system and method |
US20140052877A1 (en) | 2012-08-16 | 2014-02-20 | Wenbo Mao | Method and apparatus for tenant programmable logical network for multi-tenancy cloud datacenters |
US9672342B2 (en) * | 2014-05-05 | 2017-06-06 | Analog Devices, Inc. | System and device binding metadata with hardware intrinsic properties |
US20150372813A1 (en) * | 2014-06-23 | 2015-12-24 | Entersekt, LLC | System and method for generating a random number |
-
2015
- 2015-07-30 EP EP15744571.9A patent/EP3292495B1/en active Active
- 2015-07-30 US US15/573,688 patent/US10686612B2/en active Active
- 2015-07-30 WO PCT/EP2015/067543 patent/WO2017016609A1/en active Application Filing
- 2015-07-30 CN CN201580079007.XA patent/CN107534551B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
EP3292495A1 (en) | 2018-03-14 |
US10686612B2 (en) | 2020-06-16 |
US20180152305A1 (en) | 2018-05-31 |
CN107534551A (zh) | 2018-01-02 |
EP3292495B1 (en) | 2019-10-30 |
WO2017016609A1 (en) | 2017-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107534551B (zh) | 提供加密数据的方法、计算设备和计算机可读介质 | |
US8966248B2 (en) | Secure software file transfer systems and methods for vehicle control modules | |
US20200236097A1 (en) | Message authentication with secure code verification | |
CN110597538B (zh) | 一种基于ota升级系统的软件升级方法和ota升级系统 | |
US11218299B2 (en) | Software encryption | |
US10091183B2 (en) | Method and decision gateway for authorizing a function of an embedded control unit | |
US11356425B2 (en) | Techniques for improving security of encrypted vehicle software updates | |
US10348706B2 (en) | Assuring external accessibility for devices on a network | |
US10771467B1 (en) | External accessibility for computing devices | |
US10282549B2 (en) | Modifying service operating system of baseboard management controller | |
JP6387908B2 (ja) | 認証システム | |
US20180365411A1 (en) | Method and security module for providing a security function for a device | |
US20220209946A1 (en) | Key revocation for edge devices | |
AU2020204174B2 (en) | Assuring external accessibility for devices on a network | |
US20180137259A1 (en) | Device and method for adapting the use of an apparatus | |
CN111641507B (zh) | 一种软件通信体系结构组件注册管理方法和装置 | |
KR20230137422A (ko) | 디지털 장치를 위한 신뢰할 수 있는 컴퓨팅 | |
CN115996375A (zh) | 一种实现车辆空中下载的方法及系统 | |
JP2014178906A (ja) | 認証方法、認証プログラムおよび認証装置 |
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 |