CN115168813A - 固件签名以及处理器启动方法和装置 - Google Patents

固件签名以及处理器启动方法和装置 Download PDF

Info

Publication number
CN115168813A
CN115168813A CN202210755858.3A CN202210755858A CN115168813A CN 115168813 A CN115168813 A CN 115168813A CN 202210755858 A CN202210755858 A CN 202210755858A CN 115168813 A CN115168813 A CN 115168813A
Authority
CN
China
Prior art keywords
key
signature
firmware
public key
processor
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
Application number
CN202210755858.3A
Other languages
English (en)
Inventor
杜潘洋
张攀勇
李功波
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.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co Ltd
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 Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202210755858.3A priority Critical patent/CN115168813A/zh
Publication of CN115168813A publication Critical patent/CN115168813A/zh
Pending legal-status Critical Current

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • 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/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • 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/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供一种固件签名方法,应用于处理器厂商对片外固件的签名过程,包括:获取随机数,并依据随机数确定协商公钥;获取与目标处理器的根私钥对应的第一公钥,并依据所述第一公钥和随机数确定第一共享密钥;依据第一共享密钥,派生第一签名私钥;采用所述第一签名私钥对固件进行至少一级签名,以确定第一签名;将所述协商公钥、固件以及第一签名存储在片外存储装置中。本发明提供的固件签名以及处理器启动方法和装置,能够有效隔离处理器根私钥和校验固件合法性的第一签名私钥,不但能保证处理器启动流程的安全性,也能保证处理器的根私钥具备不可推测性。

Description

固件签名以及处理器启动方法和装置
技术领域
本发明涉及处理器安全启动技术领域,尤其涉及一种固件签名以及处理器启动方法和装置。
背景技术
随着处理器逻辑的复杂性增加,最新的处理器均采用系统级芯片设计,处理器通常内置片内固件(ROM),并且针对片内固件设计了完整性校验电路,从而基于片内固件作为可信根,依次加载和校验片外固件之后,才会执行片外固件。为了确保处理器安全,需要采用安全启动的方式进行启动,安全启动是指保证在处理器上执行的片外固件是处理器厂商认证的固件,因此,需要对片外固件进行校验,如果片外固件被恶意篡改,将阻止系统启动。在现有技术中,在对片外固件进行校验时,处理器根密钥会参与实际的数据签名或者加密计算,会导致恶意攻击者能根据原始数据和结果数据推测密钥。
发明内容
本发明提供的固件签名以及处理器启动方法和装置,能有效隔离处理器根私钥和校验固件合法性的第一签名私钥,不但能保证处理器启动流程的安全性,也能保证处理器的根私钥具备不可推测性。
第一方面,本发明提供一种固件签名方法,应用于处理器厂商对片外固件的签名过程,包括:
获取随机数,并依据随机数确定协商公钥;
获取与目标处理器的根私钥对应的第一公钥,并依据所述第一公钥和随机数确定第一共享密钥;
依据第一共享密钥,派生第一签名私钥;
采用所述第一签名私钥对固件进行至少一级签名,以确定第一签名;
将所述协商公钥、固件以及第一签名存储在片外存储装置中。
可选地,还包括:
获取用于加密所述固件的加密密钥并存储在所述片外存储装置;
依据第一共享密钥,派生第二共享密钥;
采用所述第二共享密钥对所述加密密钥进行加密。
可选地,还包括:
依据第一共享密钥,派生第二签名私钥;
采用所述第二签名私钥对所述加密密钥进行签名获取第二签名,并将第二签名存储在片外存储装置中。
可选地,采用所述第一签名私钥对固件进行至少一级签名,以确定第一签名包括:
获取第三签名私钥,并采用所述第三签名私钥对所述固件进行签名,以获取对应固件的第三签名;
采用所述第一签名私钥对与所述第三签名私钥对应的第三验签公钥进行签名,以获取对应第三验签公钥的第一签名。
第二方面,本发明提供一种处理器启动方法,应用于处理器启动过程,包括:
从片外存储装置读取协商公钥,并依据协商公钥和处理器的根私钥确定第一共享密钥;
依据所述第一共享密钥派生形成第一验签公钥;
依据所述第一验签公钥对固件进行至少一级验签,以确定固件的合法性;
当固件合法时,确定载入所述固件。
可选地,还包括:
依据第一共享密钥,派生第二共享密钥;
采用所述第二共享密钥对所述加密密钥进行解密;
采用所述加密密钥对所述固件进行解密。
可选地,还包括:
依据第一共享密钥,派生第二验签公钥;
采用所述第二验签公钥对所述加密密钥进行验签,以确定所述加密密钥的合法性;
当所述加密密钥合法时,采用所述加密密钥对所述固件进行解密。
可选地,依据所述第一验签公钥对固件进行至少一级验签,以确定固件的合法性包括:
采用第一验签公钥对第三验签公钥的第一签名进行验签,确定第三验签公钥的合法性;
当所述第三验签公钥合法时,采用第三验签公钥对固件的第三签名进行验签,确定固件的合法性。
第三方面,本发明提供一种固件签名装置,应用于处理器厂商对片外固件的签名过程,包括:
协商公钥模块,用于获取随机数,并依据随机数确定协商公钥;
第一共享密钥模块,用于与获取目标处理器的根私钥对应的第一公钥,并依据所述第一公钥和随机数确定第一共享密钥;
第一签名私钥模块,用于依据第一共享密钥,派生第一签名私钥;
第一签名获取模块,用于采用所述第一签名私钥对固件进行至少一级签名,以确定第一签名;
存储模块,用于将所述协商公钥、固件以及第一签名存储在片外存储装置中。
可选地,还包括:
加密密钥模块,用于获取用于加密所述固件的加密密钥并存储在所述片外存储装置;
第二共享密钥模块,用于依据第一共享密钥,派生第二共享密钥;
加密执行模块,用于采用所述第二共享密钥对所述加密密钥进行加密。
可选地,还包括:
第二签名私钥模块,用于依据第一共享密钥,派生第二签名私钥;
密钥签名模块,用于采用所述第二签名私钥对所述加密密钥进行签名获取第二签名,并将第二签名存储在片外存储装置中。
可选地,第一签名获取模块包括:
第一签名子模块,用于获取第三签名私钥,并采用所述第三签名私钥对所述固件进行签名,以获取对应固件的第三签名;
第二签名子模块,用于采用所述第一签名私钥对与所述第三签名私钥对应的第三验签公钥进行签名,以获取对应第三验签公钥的第一签名。
第四方面,本发明提供一种处理器启动装置,应用于处理器启动过程,包括:
共享协商模块,用于从片外存储装置读取协商公钥,并依据协商公钥和处理器的根私钥确定第一共享密钥;
第一验签公钥模块,用于依据所述第一共享密钥派生形成第一验签公钥;
第一签名验签模块,用于依据所述第一验签公钥对固件进行至少一级验签,以确定固件的合法性;
固件载入模块,用于当固件合法时,确定载入所述固件。
可选地,还包括:
第二共享派生模块,用于依据第一共享密钥,派生第二共享密钥;
密钥解密模块,用于采用所述第二共享密钥对所述加密密钥进行解密;
固件解密模块,用于采用所述加密密钥对所述固件进行解密。
可选地,还包括:
第二验签公钥模块,用于依据第一共享密钥,派生第二验签公钥;
密钥验签模块,用于采用所述第二验签公钥对所述加密密钥进行验签,以确定所述加密密钥的合法性;
解密执行模块,用于当所述加密密钥合法时,采用所述加密密钥对所述固件进行解密。
可选地,第一签名验签模块包括:
第一验签子模块,用于采用第一验签公钥对第三验签公钥的第一签名进行验签,确定第三验签公钥的合法性;
第二验签子模块,用于当所述第三验签公钥合法时,采用第三验签公钥对固件的第三签名进行验签,确定固件的合法性。
本发明提供的技术方案中,采用处理器的根私钥和协商公钥进行密钥的派生,从而,能够有效的隔离处理器根私钥和第一签名私钥,能够保证处理器启动流程的安全性,还能够使根私钥具有不可推测性,避免了根私钥泄露的风险。同时,第一签名私钥是依据根私钥和协商公钥进行派生得到的,能够通过变更协商公钥来对第一签名私钥进行改变,即使单次的协商公钥被泄露,也能够保证处理器启动的安全性。在本发明提供的技术方案中,基于非对称加密算法的签名和验签机制,能够有效的保证在处理器上执行的固件是合法的,没有被篡改过的,从而确保整个系统启动流程的可信性。由于第一签名私钥和第一验签公钥的派生是分别由厂商服务器和处理器单独执行的,两者无需进行交互,因此,避免了第一签名私钥和第一验签公钥在生成过程中的泄露风险。
附图说明
图1为本发明一实施例固件签名方法的流程图;
图2为本发明另一实施例固件签名方法的对加密密钥进行加密的流程图;
图3为本发明另一实施例固件签名方法的对加密密钥进行签名的流程图;
图4为本发明另一实施例固件签名方法的进行二级签名的流程图;
图5为本发明一实施例处理器启动方法的流程图;
图6为本发明另一实施例处理器启动方法的交互示意图;
图7为本发明另一实施例处理器启动方法的对加密密钥进行解密的流程图;
图8为本发明另一实施例处理器启动方法的对加密密钥进行验签的流程图;
图9为本发明另一实施例处理器启动方法的对加密密钥进行加密和验签的交互示意图;
图10为本发明另一实施例固件签名方法的进行二级验签的流程图;
图11为本发明另一实施例固件签名方法的进行二级验签的交互示意图;
图12为本发明另一实施例固件签名方法的进行三级验签的交互示意图;
图13为本发明一实施例固件签名装置的示意图;
图14为本发明另一实施例固件签名装置的示意图;
图15为本发明另一实施例固件签名装置的示意图;
图16为本发明另一实施例固件签名装置的第一签名私钥模块的流程图;
图17为本发明一实施例处理器启动装置的流程图;
图18为本发明另一实施例处理器启动装置的示意图;
图19为本发明另一实施例处理器启动装置的示意图;
图20为本发明另一实施例处理器启动装置的第一签名私钥模块的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种固件签名方法,应用于处理器厂商对片外固件的签名过程,如图1所示,包括:
步骤110,获取随机数,并依据随机数确定协商公钥;在一些实施例中,随机数是随机生成的,依据非对称加密算法的生成规则,以随机数作为协商私钥,并依据协商私钥生成协商公钥。
步骤120,获取与目标处理器的根私钥对应的第一公钥,并依据所述第一公钥和随机数确定第一共享密钥;在一些实施例中,处理器的根私钥是处理器具有的秘密信息,在生成第一共享密钥时,厂商服务器首先需要获取处理器的根私钥对应的第一公钥,再依据第一公钥和随机数进行计算得到第一共享密钥。第一共享密钥的形成过程既可以采用软件实现,也可以采用硬件实现,还可以软件调用硬件模块实现。密钥协商的算法流程依赖于具体的非对称密码算法。例如,采用基于椭圆曲线的第一共享密钥计算方式如下:SK=SP*R,其中的“*”表示点乘,SK为第一共享密钥,SP为处理器的根私钥对应的第一公钥,R为随机数。
步骤130,依据第一共享密钥,派生第一签名私钥;在一些实施例中,对第一共享密钥进行派生计算,得到第一签名私钥,第一签名私钥用于直接或间接的对固件进行签名。密钥派生过程既可以采用软件实现,也可以采用硬件实现,还可以软件调用硬件模块实现。密钥派生过程的一种优选实施例如下:基于Hash计算:K=Hash(SK)。密钥派生过程的另一种优选实施例如下:基于加解密计算:将SK拆分为多个数据块,一个数据块作为原始数据,一个数据块作为密钥,一个数据块作为加解密参数,通过加解密计算得到签名私钥K。密钥派生过程的另一种优选实施方式如下:组合Hash计算和加解密计算:先对SK进行Hash之后再做加解密计算;或者先做加解密计算之后再计算Hash。前述各种优选的实施方式中,K为第一签名私钥,SK为第一共享密钥。
步骤140,采用所述第一签名私钥对固件进行至少一级签名,以确定第一签名;在一些实施例中,在对固件进行签名时,可以直接以第一签名私钥作为一级私钥对固件进行签名,即进行一级签名。也可以采用第一签名私钥作为一级私钥,获取一个用于为固件签名的二级私钥,首先采用二级私钥对固件进行签名,再采用第一签名私钥对二级私钥对应的二级公钥进行签名,即,进行二级签名,这种情况下,第一签名应当包括一级签名和二级签名。还可以采用三级私钥对固件签名。
步骤150,将所述协商公钥、固件以及第一签名存储在片外存储装置中。在一些实施例中,协商公钥存储在片外存储装置中,在处理器需要进行验签时,可以获取协商公钥后,依据根私钥和协商公钥生成第一签名私钥,再利用第一签名私钥形成第一验签公钥,采用第一验签公钥对第一签名进行验签。
本发明实施例提供的技术方案中,采用处理器的根私钥对应的第一公钥和随机数进行密钥的派生,从而,能够有效的隔离处理器根私钥和第一签名私钥,能够保证处理器启动流程的安全性,还能够使根私钥具有不可推测性,避免了根私钥泄露的风险。同时,第一签名私钥是依据根私钥对应的第一公钥和随机数进行派生得到的,能够通过变更随机数来对第一签名私钥进行改变,即使单次的第一签名私钥被泄露,也能够保证处理器启动的安全性。在本发明实施例提供的技术方案中,基于非对称加密算法的签名和验签机制,能够有效的保证在处理器上执行的固件是合法的,没有被篡改过的,从而确保整个系统启动流程的可信性。由于第一签名私钥和第一验签公钥的派生是分别由厂商服务器和处理器单独执行的,两者无需进行交互,因此,避免了在第一签名私钥和第一验签公钥在生成过程中的泄露风险。
作为一种可选的实施方式,如图2所示,还包括:
步骤161,获取用于加密所述固件的加密密钥并存储在所述片外存储装置;在一些实施例中,为了确保固件的安全,可以进一步对固件进行加密,因此,可以获取加密密钥来对固件进行加密。加密密钥可以随机生成,也可以预先设定。
步骤162,依据第一共享密钥,派生第二共享密钥;在一些实施例中,在处理器厂商服务器中依据第一共享密钥派生第二共享密钥,在处理器对固件进行解密时,可以依据第一共享密钥独自的派生形成第二共享密钥。
步骤163,采用所述第二共享密钥对所述加密密钥进行加密。在一些实施例中,为确保加密密钥的安全,采用第二共享密钥对加密密钥进行加密。由于处理器能够独立的生成第二共享密钥,因此,在对加密密钥进行解密的过程中,不需要进行交互即能够得到第二共享密钥。在解密过程中,处理器首先采用第二共享密钥对加密密钥进行解密,再采用加密密钥对固件进行解密,以便对固件进行加载。
作为一种可选的实施方式,如图3所示,还包括:
步骤171,依据第一共享密钥,派生第二签名私钥;在一些实施例中,第一共享密钥是处理器厂商服务器和处理器共享的密钥,因此,处理器厂商服务器依据第一共享密钥派生第二签名私钥,能够确保处理器也能够依据同样的方式独立的派生出第二验签公钥。
步骤172,采用所述第二签名私钥对所述加密密钥进行签名获取第二签名,并将第二签名存储在片外存储装置中。在一些实施例中,采用第二签名私钥对加密密钥进行签名,在处理器启动过程中,可以采用对应的第二验签公钥对第二签名进行验签,从而,确定加密密钥的完整性。
作为一种可选的实施方式,如图4所示,步骤140中,采用所述第一签名私钥对固件进行至少一级签名,以确定第一签名包括:
步骤141,获取第三签名私钥,并采用所述第三签名私钥对所述固件进行签名,以获取对应固件的第三签名;在一些实施例中,第三签名私钥可以随机生成,也可以预先设定。采用第三签名私钥对固件进行签名,获取第三签名,在处理器启动过程中,采用第三验签公钥对固件的第三签名进行验签,来确定固件的完整性。
步骤142,采用所述第一签名私钥对与所述第三签名私钥对应的第三验签公钥进行签名,以获取对应第三验签公钥的第一签名。在一些实施例中,采用第一签名私钥对第三验签公钥进行签名,在处理器启动过程中,依据第一签名私钥生成第一验签公钥,采用第一验签公钥对第三验签公钥的第一签名进行验签,来确定第三签名私钥的完整性。
本实施方式中,提供了一种二级签名的具体方案,以第一签名私钥作为一级私钥,以第三签名私钥作为二级私钥。本实施方式能够通过安全传递的方式,进一步的对固件的合法性进行保证。
本发明实施例提供一种处理器启动方法,应用于处理器启动过程,如图5-6所示,包括:
步骤210,从片外存储装置读取协商公钥,并依据协商公钥和处理器的根私钥确定第一共享密钥;在一些实施例中,协商公钥是从片外存储装置中进行读取的,处理器的根私钥是处理器具有的秘密信息,在生成第一共享密钥时,处理器首先需要获取处理器的根私钥,再依据处理器的根私钥和协商公钥进行计算得到第一共享密钥。第一共享密钥的形成过程既可以采用软件实现,也可以采用硬件实现,还可以软件调用硬件模块实现。密钥协商的算法流程依赖于具体的非对称密码算法。例如,采用基于椭圆曲线的第一共享密钥计算方式如下:SK=S*P,其中的“*”表示点乘,SK为第一共享密钥,S为处理器的根私钥,P为协商公钥P,在该计算过程中,由于协商公钥P是依据前述随机数R与椭圆曲线基点G依据符合交换律的计算方式得到的,例如采用点乘的方式时P=R*G;此时,第一共享密钥SK=S*R*G。在固件签名的过程中计算的第一共享密钥SK=SP*R,其中的“*”表示点乘,SK为第一共享密钥,SP为处理器的根私钥对应的第一公钥,R为随机数,在该计算过程中,第一公钥SP是根私钥S与椭圆曲线基点G依据符合交换律的计算方式得到的,例如采用点乘的方式时SP=S*G;此时,第一共享密钥SK=S*G*R。由于在第一共享密钥的计算过程中均采用符合交换律的计算方法进行计算,因此,采用交换律进行交换后,处理器启动过程中形成的第一共享密钥SK=S*R*G=S*G*R;即,处理器启动过程中形成的第一共享密钥与处理器厂商对片外固件的签名过程形成的第一共享密钥是相同的。
步骤220,依据所述第一共享密钥派生形成第一验签公钥;在一些实施例中,对第一共享密钥进行派生计算,得到第一签名私钥,再通过非对称的加密算法,依据第一签名私钥生成第一验签公钥。密钥派生过程既可以采用软件实现,也可以采用硬件实现,还可以软件调用硬件模块实现。密钥派生过程的一种优选实施例如下:基于Hash计算:K=Hash(SK)。密钥派生过程的另一种优选实施例如下:基于加解密计算:将SK拆分为多个数据块,一个数据块作为原始数据,一个数据块作为密钥,一个数据块作为加解密参数,通过加解密计算得到签名私钥K。密钥派生过程的另一种优选实施方式如下:组合Hash计算和加解密计算:先对SK进行Hash之后再做加解密计算;或者先做加解密计算之后再计算Hash。前述各种优选的实施方式中,K为第一签名私钥,SK为第一共享密钥。
步骤230,依据所述第一验签公钥对固件进行至少一级验签,以确定固件的合法性;在一些实施例中,在对固件进行签名时,可以直接以第一签名私钥作为一级私钥对固件进行签名,即进行一级签名,这种情况下,在验签过程中,采用第一验签公钥对固件的第一签名进行验签,其验签过程如图6所示。也可以采用第一签名私钥作为一级私钥,获取一个用于为固件签名的二级私钥,首先采用二级私钥对固件进行签名,再采用第一签名私钥对二级私钥对应的二级公钥进行签名,即,进行二级签名,此时,第一签名既包括二级私钥对固件的签名,也包括第一签名私钥对二级公钥的签名;在这种情况下,在验签过程中,第一验签公钥对二级公钥的签名进行验签,确保二级公钥合法后,再依据二级公钥对固件的签名进行验签,确定固件的合法性,其验签过程如图11所示。还可以采用三级私钥对固件签名,以二级私钥对三级私钥对应的三级公钥进行签名,以第一签名私钥作为一级私钥对二级私钥对应的二级公钥进行签名,即,进行三级签名,此时,第一签名包括三级私钥对固件的签名、二级私钥对三级公钥的签名,还包括第一签名私钥对二级公钥的签名;在这种情况下,需要先采用第一验签公钥公钥的签名进行验签,确定二级公钥的合法性,再依据二级公钥验证三级公钥的合法性,再依据三级公钥对固件的合法性进行验签,其验签过程如图12所示。具体的验签流程,由相应的非对称加解密算法决定,验签可以软件实现,可以硬件实现,也可以软件调用硬件模块实现。
步骤240,当固件合法时,确定载入所述固件。在一些实施例中,如果验签通过,则切换到第一个固件执行,第一个固件负责根据系统启动流程,加载其他固件,并使用验签公钥验证其签名的合法性,只有验签通过之后才切换到相应的固件执行。
本发明实施例提供的技术方案中,采用处理器的根私钥和协商公钥进行密钥的派生,从而,能够有效的隔离处理器根私钥和第一签名私钥,能够保证处理器启动流程的安全性,还能够使根私钥具有不可推测性,避免了根私钥泄露的风险。同时,第一签名私钥是依据根私钥和协商公钥进行派生得到的,能够通过变更协商公钥来对第一签名私钥进行改变,即使单次的第一签名私钥被泄露,也能够保证处理器启动的安全性。在本发明实施例提供的技术方案中,基于非对称加密算法的签名和验签机制,能够有效的保证在处理器上执行的固件是合法的,没有被篡改过的,从而确保整个系统启动流程的可信性。由于第一签名私钥和第一验签公钥的派生是分别由厂商服务器和处理器单独执行的,两者无需进行交互,因此,避免了在第一签名私钥和第一验签公钥在生成过程中的泄露风险。
作为一种可选的实施方式,如图7和图9所示,还包括:
步骤251,依据第一共享密钥,派生第二共享密钥;在一些实施例中,第二共享密钥是用于对加密密钥进行加密的,为了确保处理器能够获得第二共享密钥,处理器和处理器厂商服务器依据第一共享密钥来派生第二共享密钥。由于处理器和处理器厂商服务器形成的第一共享密钥是相同的,再采用相同的派生算法进行派生,即可生成相同的第二共享密钥。
步骤252,采用所述第二共享密钥对所述加密密钥进行解密;在一些实施例中,在对加密密钥进行解密后,即为明文的加密密钥,可以用于固件的加密和解密过程。
步骤252,采用所述加密密钥对所述固件进行解密。在一些实施例中,对固件进行解密后,固件处于可用的状态。
在本实施方式中,为了确保固件的安全,可以进一步对固件进行加密,因此,可以采用加密密钥来对固件进行加密。加密密钥可以随机生成,也可以预先设定。为了进一步的确保加密密钥的安全,对加密密钥进行加密后存储在片外存储装置中。由于处理器能够独立的生成第二共享密钥,因此,在对加密密钥进行解密的过程中,不需要进行交互即能够得到第二共享密钥。在解密过程中,处理器首先采用第二共享密钥对加密密钥进行解密,再采用加密密钥对固件进行解密,以便对固件进行加载。
作为一种可选的实施方式,如图8和图9所示,还包括:
步骤261,依据第一共享密钥,派生第二验签公钥;在一些实施例中,第二验签公钥是用来对加密密钥的第二签名进行验签的第二验签公钥。由于第一共享密钥是处理器厂商服务器和处理器共享的密钥,因此,处理器厂商服务器依据第一共享密钥派生第二签名私钥;处理器在对能够依据同样的方式独立的派生出第二签名私钥,再利用第二签名私钥生成第二验签公钥,从而,确保验签过程的顺利进行。
步骤262,采用所述第二验签公钥对所述加密密钥进行验签,以确定所述加密密钥的合法性;在一些实施例中,芯片厂商服务器采用第二签名私钥来对加密密钥进行签名,在处理器启动过程中,可以采用对应的第二验签公钥对第二签名进行验签,从而,确定加密密钥的完整性。
步骤263,当所述加密密钥合法时,采用所述加密密钥对所述固件进行解密。在一些实施例中,当加密密钥合法时,即表明当前的加密密钥是可用的,可以采用加密密钥对固件进行解密,从而使固件处于可用状态。
作为一种可选的实施方式,如图10-11所示,步骤230中,依据所述第一验签公钥对固件进行至少一级验签,以确定固件的合法性包括:
步骤231,采用第一验签公钥对第三验签公钥的第一签名进行验签,确定第三验签公钥的合法性;在一些实施例中,采用第一签名私钥对第三验签公钥进行签名,在处理器启动过程中,依据第一签名私钥生成第一验签公钥,采用第一验签公钥对第三验签公钥的第一签名进行验签,来确定第三验签公钥的完整性。
步骤232,当所述第三验签公钥合法时,采用第三验签公钥对固件的第一签名进行验签,确定固件的合法性。在一些实施例中,处理器厂商服务器采用第三签名私钥对固件进行签名,获取第一签名,在处理器启动过程中,采用第三验签公钥对固件的第一签名进行验签,来确定固件的完整性。第三签名私钥是处理器厂商服务器随机生成的,也可以是预先设定的。
本实施方式中,如图11所示,提供了一种二级签名的验签具体方案,以第一签名私钥作为一级私钥,以第三签名私钥作为二级私钥。在验签过程中,采用第一验签公钥首先对第三验签公钥进行验签,验签通过后再通过第三验签公钥对固件进行验签。其中,第一验签公钥即附图11中的验签公钥,第三验签公钥即附图11中的二级公钥。本实施方式能够通过安全传递的方式,进一步的对固件的合法性进行保证。当然,还可以采用三级签名的签名过程,在采用三级签名时,验签过程采用三级验签过程,具体过程如图12所示。
本发明提供一种固件签名装置,应用于处理器厂商对片外固件的签名过程,如图13所示,包括:
协商公钥模块,用于获取随机数,并依据随机数确定协商公钥;在一些实施例中,随机数是随机生成的,依据非对称加密算法的生成规则,以随机数作为协商私钥,并依据协商私钥生成协商公钥。
第一共享密钥模块,用于获取目标处理器的根私钥对应的第一公钥,并依据所述第一公钥和随机数确定第一共享密钥;在一些实施例中,处理器的根私钥是处理器具有的秘密信息,在生成第一共享密钥时,厂商服务器首先需要获取处理器的根私钥对应的第一公钥,再依据处理器的第一公钥和随机数进行计算得到第一共享密钥。第一共享密钥的形成过程既可以采用软件实现,也可以采用硬件实现,还可以软件调用硬件模块实现。密钥协商的算法流程依赖于具体的非对称密码算法。例如,采用基于椭圆曲线的第一共享密钥计算方式如下:SK=SP*R,其中的“*”表示点乘,SK为第一共享密钥,S为处理器的根私钥对应的第一公钥,R为随机数。
第一签名私钥模块,用于依据第一共享密钥,派生第一签名私钥;在一些实施例中,对第一共享密钥进行派生计算,得到第一签名私钥,第一签名私钥用于直接或间接的对固件进行签名。密钥派生过程既可以采用软件实现,也可以采用硬件实现,还可以软件调用硬件模块实现。密钥派生过程的一种优选实施例如下:基于Hash计算:K=Hash(SK)。密钥派生过程的另一种优选实施例如下:基于加解密计算:将SK拆分为多个数据块,一个数据块作为原始数据,一个数据块作为密钥,一个数据块作为加解密参数,通过加解密计算得到签名私钥K。密钥派生过程的另一种优选实施方式如下:组合Hash计算和加解密计算:先对SK进行Hash之后再做加解密计算;或者先做加解密计算之后再计算Hash。前述各种优选的实施方式中,K为第一签名私钥,SK为第一共享密钥。
第一签名获取模块,用于采用所述第一签名私钥对固件进行至少一级签名,以确定第一签名;在一些实施例中,在对固件进行签名时,可以直接以第一签名私钥作为一级私钥对固件进行签名,即进行一级签名。也可以采用第一签名私钥作为一级私钥,获取一个用于为固件签名的二级私钥,首先采用二级私钥对固件进行签名,再采用第一签名私钥对二级私钥对应的二级公钥进行签名,即,进行二级签名,这种情况下,第一签名应当包括一级签名和二级签名。还可以采用三级私钥对固件签名。
存储模块,用于将所述协商公钥、固件以及第一签名存储在片外存储装置中。在一些实施例中,协商公钥存储在片外存储装置中,在处理器需要进行验签时,可以获取协商公钥后,依据根私钥和协商公钥生成第一签名私钥,再利用第一签名私钥形成第一验签公钥,采用第一验签公钥对第一签名进行验签。
本发明实施例提供的技术方案中,采用处理器的根私钥对应的第一公钥和随机数进行密钥的派生,从而,能够有效的隔离处理器根私钥和第一签名私钥,能够保证处理器启动流程的安全性,还能够使根私钥具有不可推测性,避免了根私钥泄露的风险。同时,第一签名私钥是依据第一公钥和随机数进行派生得到的,能够通过变更随机数来对第一签名私钥进行改变,即使单次的第一协商私钥被泄露,也能够保证处理器启动的安全性。在本发明实施例提供的技术方案中,基于非对称加密算法的签名和验签机制,能够有效的保证在处理器上执行的固件是合法的,没有被篡改过的,从而确保整个系统启动流程的可信性。由于第一签名私钥和第一验签公钥的派生是分别由厂商服务器和处理器单独执行的,两者无需进行交互,因此,避免了在第一签名私钥和第一验签公钥在生成过程中的泄露风险。
作为一种可选的实施方式,如图14所示,还包括:
加密密钥模块,用于获取用于加密所述固件的加密密钥并存储在所述片外存储装置;在一些实施例中,为了确保固件的安全,可以进一步对固件进行加密,因此,可以获取加密密钥来对固件进行加密。加密密钥可以随机生成,也可以预先设定。
第二共享密钥模块,用于依据第一共享密钥,派生第二共享密钥;在一些实施例中,在处理器厂商服务器中依据第一共享密钥派生第二共享密钥,在处理器对固件进行解密时,可以依据第一共享密钥独自的派生形成第二共享密钥。
加密执行模块,用于采用所述第二共享密钥对所述加密密钥进行加密。在一些实施例中,为确保加密密钥的安全,采用第二共享密钥对加密密钥进行加密。由于处理器能够独立的生成第二共享密钥,因此,在对加密密钥进行解密的过程中,不需要进行交互即能够得到第二共享密钥。在解密过程中,处理器首先采用第二共享密钥对加密密钥进行解密,再采用加密密钥对固件进行解密,以便对固件进行加载。
作为一种可选的实施方式,如图15所示,还包括:
第二签名私钥模块,用于依据第一共享密钥,派生第二签名私钥;在一些实施例中,第一共享密钥是处理器厂商服务器和处理器共享的密钥,因此,处理器厂商服务器依据第一共享密钥派生第二签名私钥,能够确保处理器也能够依据同样的方式独立的派生出第二验签公钥。
密钥签名模块,用于采用所述第二签名私钥对所述加密密钥进行签名获取第二签名,并将第二签名存储在片外存储装置中。在一些实施例中,采用第二签名私钥对加密密钥进行签名,在处理器启动过程中,可以采用对应的第二验签公钥对第二签名进行验签,从而,确定加密密钥的完整性。
作为一种可选的实施方式,如图16所示,第一签名获取模块包括:
第一签名子模块,用于获取第三签名私钥,并采用所述第三签名私钥对所述固件进行签名,以获取对应固件的第三签名;在一些实施例中,第三签名私钥可以随机生成,也可以预先设定。采用第三签名私钥对固件进行签名,获取第三签名,在处理器启动过程中,采用第三验签公钥对固件的第三签名进行验签,来确定固件的完整性。
第二签名子模块,用于采用所述第一签名私钥对与所述第三签名私钥对应的第三验签公钥进行签名,以获取对应第三验签公钥的第一签名。在一些实施例中,采用第一签名私钥对第三验签公钥进行签名,在处理器启动过程中,依据第一签名私钥生成第一验签公钥,采用第一验签公钥对第三验签公钥的第一签名进行验签,来确定第三验签公钥的完整性。
本实施方式中,提供了一种二级签名的具体方案,以第一签名私钥作为一级私钥,以第三签名私钥作为二级私钥。本实施方式能够通过安全传递的方式,进一步的对固件的合法性进行保证。
本发明实施例提供一种处理器启动装置,应用于处理器启动过程,如图17所示,包括:
共享协商模块,用于从片外存储装置读取协商公钥,并依据协商公钥和处理器的根私钥确定第一共享密钥;在一些实施例中,协商公钥是从片外存储装置中进行读取的,处理器的根私钥是处理器具有的秘密信息,在生成第一共享密钥时,处理器首先需要获取处理器的根私钥,再依据处理器的根私钥和协商公钥进行计算得到第一共享密钥。第一共享密钥的形成过程既可以采用软件实现,也可以采用硬件实现,还可以软件调用硬件模块实现。密钥协商的算法流程依赖于具体的非对称密码算法。例如,采用基于椭圆曲线的第一共享密钥计算方式如下:SK=S*P,其中的“*”表示点乘,SK为第一共享密钥,S为处理器的根私钥,P为协商公钥P。
第一验签公钥模块,用于依据所述第一共享密钥派生形成第一验签公钥;在一些实施例中,对第一共享密钥进行派生计算,得到第一签名私钥,再通过非对称的加密算法,依据第一签名私钥生成第一验签公钥。密钥派生过程既可以采用软件实现,也可以采用硬件实现,还可以软件调用硬件模块实现。密钥派生过程的一种优选实施例如下:基于Hash计算:K=Hash(SK)。密钥派生过程的另一种优选实施例如下:基于加解密计算:将SK拆分为多个数据块,一个数据块作为原始数据,一个数据块作为密钥,一个数据块作为加解密参数,通过加解密计算得到签名私钥K。密钥派生过程的另一种优选实施方式如下:组合Hash计算和加解密计算:先对SK进行Hash之后再做加解密计算;或者先做加解密计算之后再计算Hash。前述各种优选的实施方式中,K为第一签名私钥,SK为第一共享密钥。
第一签名验签模块,用于依据所述第一验签公钥对固件进行至少一级验签,以确定固件的合法性;在一些实施例中,在对固件进行签名时,可以直接以第一签名私钥作为一级私钥对固件进行签名,即进行一级签名,这种情况下,在验签过程中,采用第一验签公钥对固件的第一签名进行验签,其验签过程如图6所示。也可以采用第一签名私钥作为一级私钥,获取一个用于为固件签名的二级私钥,首先采用二级私钥对固件进行签名,再采用第一签名私钥对二级私钥对应的二级公钥进行签名,即,进行二级签名,此时,第一签名既包括二级私钥对固件的签名,也包括第一签名私钥对二级公钥的签名;在这种情况下,在验签过程中,第一验签公钥对二级公钥的第一签名进行验签,确保二级公钥合法后,再依据二级公钥对固件的签名进行验签,确定固件的合法性,其验签过程如图11所示。还可以采用三级私钥对固件签名,以二级私钥对三级公钥进行签名,以第一签名私钥作为一级私钥对二级公钥进行签名,即,进行三级签名,此时,第一签名包括三级私钥对固件的签名、二级私钥对三级公钥的签名,还包括第一签名私钥对二级公钥的签名;在这种情况下,需要先采用第一验签公钥对二级公钥的签名进行验签,确定二级私钥的合法性,再采用二级公钥验证三级公钥的合法性,再依据三级公钥对固件的合法性进行验签,其验签过程如图12所示。具体的验签流程,由相应的非对称加解密算法决定,验签可以软件实现,可以硬件实现,也可以软件调用硬件模块实现。
固件载入模块,用于当固件合法时,确定载入所述固件。在一些实施例中,如果验签通过,则切换到第一个固件执行,第一个固件负责根据系统启动流程,加载其他固件,并使用验签公钥验证其签名的合法性,只有验签通过之后才切换到相应的固件执行。
本发明实施例提供的技术方案中,采用处理器的根私钥和协商公钥进行密钥的派生,从而,能够有效的隔离处理器根私钥和第一签名私钥,能够保证处理器启动流程的安全性,还能够使根私钥具有不可推测性,避免了根私钥泄露的风险。同时,第一签名私钥是依据根私钥和协商公钥进行派生得到的,能够通过变更协商公钥来对第一签名私钥进行改变,即使单次的第一签名私钥被泄露,也能够保证处理器启动的安全性。在本发明实施例提供的技术方案中,基于非对称加密算法的签名和验签机制,能够有效的保证在处理器上执行的固件是合法的,没有被篡改过的,从而确保整个系统启动流程的可信性。由于第一签名私钥和第一验签公钥的派生是分别由厂商服务器和处理器单独执行的,两者无需进行交互,因此,避免了在第一签名私钥和第一验签公钥在生成过程中的泄露风险。
作为一种可选的实施方式,如图18所示,还包括:
第二共享派生模块,用于依据第一共享密钥,派生第二共享密钥;在一些实施例中,第二共享密钥是用于对加密密钥进行加密的,为了确保处理器能够获得第二共享密钥,处理器和处理器厂商服务器依据第一共享密钥来派生第二共享密钥。
密钥解密模块,用于采用所述第二共享密钥对所述加密密钥进行解密;在一些实施例中,在对加密密钥进行解密后,即为明文的加密密钥,可以用于固件的加密和解密过程。
固件解密模块,用于采用所述加密密钥对所述固件进行解密。在一些实施例中,对固件进行解密后,固件处于可用的状态。
在本实施方式中,为了确保固件的安全,可以进一步对固件进行加密,因此,可以采用加密密钥来对固件进行加密。加密密钥可以随机生成,也可以预先设定。为了进一步的确保加密密钥的安全,对加密密钥进行加密后存储在片外存储装置中。由于处理器能够独立的生成第二共享密钥,因此,在对加密密钥进行解密的过程中,不需要进行交互即能够得到第二共享密钥。在解密过程中,处理器首先采用第二共享密钥对加密密钥进行解密,再采用加密密钥对固件进行解密,以便对固件进行加载。
作为一种可选的实施方式,如图19所示,还包括:
第二验签公钥模块,用于依据第一共享密钥,派生第二验签公钥;在一些实施例中,第二验签公钥是用来对加密密钥的第二签名进行验签的第二验签公钥。由于第一共享密钥是处理器厂商服务器和处理器共享的密钥,因此,处理器厂商服务器依据第一共享密钥派生第二签名私钥;处理器在对能够依据同样的方式独立的派生出第二签名私钥,再利用第二签名私钥生成第二验签公钥,从而,确保验签过程的顺利进行。
密钥验签模块,用于采用所述第二验签公钥对所述加密密钥进行验签,以确定所述加密密钥的合法性;在一些实施例中,芯片厂商服务器采用第二签名私钥来对加密密钥进行签名,在处理器启动过程中,可以采用对应的第二验签公钥对第二签名进行验签,从而,确定加密密钥的完整性。
解密执行模块,用于当所述加密密钥合法时,采用所述加密密钥对所述固件进行解密。在一些实施例中,当加密密钥合法时,即表明当前的加密密钥是可用的,可以采用加密密钥对固件进行解密,从而使固件处于可用状态。
作为一种可选的实施方式,如图20所示,第一签名验签模块包括:
第一验签子模块,用于采用第一验签公钥对第三验签公钥的第一签名进行验签,确定第三验签公钥的合法性;在一些实施例中,采用第一签名私钥对第三签名私钥进行签名,在处理器启动过程中,依据第一签名私钥生成第一验签公钥,采用第一验签公钥对第三验签公钥的第一签名进行验签,来确定第三验签公钥的完整性。
第二验签子模块,用于当所述第三验签公钥合法时,采用第三验签公钥对固件的第三签名进行验签,确定固件的合法性。在一些实施例中,处理器厂商服务器采用第三签名私钥对固件进行签名,获取第三签名,在处理器启动过程中,采用第三验签公钥对固件的第三签名进行验签,来确定固件的完整性。第三签名私钥是处理器厂商服务器随机生成的,也可以是预先设定的。
本实施方式中,如图11所示,提供了一种二级签名的验签具体方案,以第一签名私钥作为一级私钥,以第三签名私钥作为二级私钥。在验签过程中,采用第一验签公钥首先对第三验签公钥进行验签,验签通过后再通过第三验签公钥对固件进行验签。其中,第一验签公钥即附图11中的验签公钥,第三验签公钥即附图11中的二级公钥。本实施方式能够通过安全传递的方式,进一步的对固件的合法性进行保证。当然,还可以采用三级签名的签名过程,在采用三级签名时,验签过程采用三级验签过程,具体过程如图12所示。
本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (16)

1.一种固件签名方法,其特征在于,应用于处理器厂商对片外固件的签名过程,包括:
获取随机数,并依据随机数确定协商公钥;
获取与目标处理器的根私钥对应的第一公钥,并依据所述第一公钥和随机数确定第一共享密钥;
依据第一共享密钥,派生第一签名私钥;
采用所述第一签名私钥对固件进行至少一级签名,以确定第一签名;
将所述协商公钥、固件以及第一签名存储在片外存储装置中。
2.根据权利要求1所述的方法,其特征在于,还包括:
获取用于加密所述固件的加密密钥并存储在所述片外存储装置;
依据第一共享密钥,派生第二共享密钥;
采用所述第二共享密钥对所述加密密钥进行加密。
3.根据权利要求2所述的方法,其特征在于,还包括:
依据第一共享密钥,派生第二签名私钥;
采用所述第二签名私钥对所述加密密钥进行签名获取第二签名,并将第二签名存储在片外存储装置中。
4.根据权利要求1所述的方法,其特征在于,采用所述第一签名私钥对固件进行至少一级签名,以确定第一签名包括:
获取第三签名私钥,并采用所述第三签名私钥对所述固件进行签名,以获取对应固件的第三签名;
采用所述第一签名私钥对与所述第三签名私钥对应的第三验签公钥进行签名,以获取对应第三验签公钥的第一签名。
5.一种处理器启动方法,其特征在于,应用于处理器启动过程,包括:
从片外存储装置读取协商公钥,并依据协商公钥和处理器的根私钥确定第一共享密钥;
依据所述第一共享密钥派生形成第一验签公钥;
依据所述第一验签公钥对固件进行至少一级验签,以确定固件的合法性;
当固件合法时,确定载入所述固件。
6.根据权利要求5所述的方法,其特征在于,还包括:
依据第一共享密钥,派生第二共享密钥;
采用所述第二共享密钥对加密密钥进行解密;
采用所述加密密钥对所述固件进行解密。
7.根据权利要求6所述的方法,其特征在于,还包括:
依据第一共享密钥,派生第二验签公钥;
采用所述第二验签公钥对所述加密密钥的第二签名进行验签,以确定所述加密密钥的合法性;
当所述加密密钥合法时,采用所述加密密钥对所述固件进行解密。
8.根据权利要求5所述的方法,其特征在于,依据所述第一验签公钥对固件进行至少一级验签,以确定固件的合法性包括:
采用第一验签公钥对第三验签公钥的第一签名进行验签,确定第三验签公钥的合法性;
当所述第三验签公钥合法时,采用第三验签公钥对固件的第三签名进行验签,确定固件的合法性。
9.一种固件签名装置,其特征在于,应用于处理器厂商对片外固件的签名过程,包括:
协商公钥模块,用于获取随机数,并依据随机数确定协商公钥;
第一共享密钥模块,用于获取与目标处理器的根私钥对应的第一公钥,并依据所述第一公钥和随机数确定第一共享密钥;
第一签名私钥模块,用于依据第一共享密钥,派生第一签名私钥;
第一签名获取模块,用于采用所述第一签名私钥对固件进行至少一级签名,以确定第一签名;
存储模块,用于将所述协商公钥、固件以及第一签名存储在片外存储装置中。
10.根据权利要求9所述的装置,其特征在于,还包括:
加密密钥模块,用于获取用于加密所述固件的加密密钥并存储在所述片外存储装置;
第二共享密钥模块,用于依据第一共享密钥,派生第二共享密钥;
加密执行模块,用于采用所述第二共享密钥对所述加密密钥进行加密。
11.根据权利要求10所述的装置,其特征在于,还包括:
第二签名私钥模块,用于依据第一共享密钥,派生第二签名私钥;
密钥签名模块,用于采用所述第二签名私钥对所述加密密钥进行签名获取第二签名,并将第二签名存储在片外存储装置中。
12.根据权利要求9所述的装置,其特征在于,第一签名获取模块包括:
第一签名子模块,用于获取第三签名私钥,并采用所述第三签名私钥对所述固件进行签名,以获取对应固件的第三签名;
第二签名子模块,用于采用所述第一签名私钥与对所述第三签名私钥对应的第三验签公钥进行签名,以获取对应第三验签公钥的第一签名。
13.一种处理器启动装置,其特征在于,应用于处理器启动过程,包括:
共享协商模块,用于从片外存储装置读取协商公钥,并依据协商公钥和处理器的根私钥确定第一共享密钥;
第一验签公钥模块,用于依据所述第一共享密钥派生形成第一验签公钥;
第一签名验签模块,用于依据所述第一验签公钥对固件进行至少一级验签,以确定固件的合法性;
固件载入模块,用于当固件合法时,确定载入所述固件。
14.根据权利要求13所述的装置,其特征在于,还包括:
第二共享派生模块,用于依据第一共享密钥,派生第二共享密钥;
密钥解密模块,用于采用所述第二共享密钥对所述加密密钥进行解密;
固件解密模块,用于采用所述加密密钥对所述固件进行解密。
15.根据权利要求14所述的装置,其特征在于,还包括:
第二验签公钥模块,用于依据第一共享密钥,派生第二验签公钥;
密钥验签模块,用于采用所述第二验签公钥对所述加密密钥的第二签名进行验签,以确定所述加密密钥的合法性;
解密执行模块,用于当所述加密密钥合法时,采用所述加密密钥对所述固件进行解密。
16.根据权利要求13所述的装置,其特征在于,第一签名验签模块包括:
第一验签子模块,用于采用第一验签公钥对第三验签公钥的第一签名进行验签,确定第三验签公钥的合法性;
第二验签子模块,用于当所述第三验签公钥合法时,采用第三验签公钥对固件的第三签名进行验签,确定固件的合法性。
CN202210755858.3A 2022-06-29 2022-06-29 固件签名以及处理器启动方法和装置 Pending CN115168813A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210755858.3A CN115168813A (zh) 2022-06-29 2022-06-29 固件签名以及处理器启动方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210755858.3A CN115168813A (zh) 2022-06-29 2022-06-29 固件签名以及处理器启动方法和装置

Publications (1)

Publication Number Publication Date
CN115168813A true CN115168813A (zh) 2022-10-11

Family

ID=83490231

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210755858.3A Pending CN115168813A (zh) 2022-06-29 2022-06-29 固件签名以及处理器启动方法和装置

Country Status (1)

Country Link
CN (1) CN115168813A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115766043A (zh) * 2023-01-06 2023-03-07 北京象帝先计算技术有限公司 一种片外固件的验签方法、装置、芯片及电子设备
CN117556430A (zh) * 2024-01-12 2024-02-13 上海芯联芯智能科技有限公司 一种安全启动方法、装置、设备及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115766043A (zh) * 2023-01-06 2023-03-07 北京象帝先计算技术有限公司 一种片外固件的验签方法、装置、芯片及电子设备
CN117556430A (zh) * 2024-01-12 2024-02-13 上海芯联芯智能科技有限公司 一种安全启动方法、装置、设备及存储介质
CN117556430B (zh) * 2024-01-12 2024-03-29 上海芯联芯智能科技有限公司 一种安全启动方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN111181720B (zh) 基于可信执行环境的业务处理方法及装置
KR101391151B1 (ko) 세션 키를 이용한 인증 방법 및 이를 위한 장치
JP4638912B2 (ja) ディストリビューションcdを使用した、署名されたグループにおけるダイレクトプルーフの秘密鍵を装置に伝達する方法
EP2989741B1 (en) Generation of working security key based on security parameters
CN115168813A (zh) 固件签名以及处理器启动方法和装置
JP4851497B2 (ja) 双線形マップからの直接匿名認証のための装置および方法
US20130019110A1 (en) Apparatus and method for preventing copying of terminal unique information in portable terminal
CN112241527B (zh) 物联网终端设备的密钥生成方法、系统及电子设备
KR101968382B1 (ko) Tpm 기반의 사용자 장치 및 이를 이용한 부팅 방법
CN111814132B (zh) 安全认证方法及装置、安全认证芯片、存储介质
CN110855667B (zh) 一种区块链加密方法、装置及系统
CN102270285B (zh) 密钥授权信息管理方法及装置
CN109150811A (zh) 一种实现可信会话的方法及装置、计算设备
CN110492989B (zh) 私钥的处理方法、访问方法和对应方法的介质、装置
CN114189862A (zh) 无线终端及无线终端在Uboot模式下的接口访问鉴权方法
CN108242997B (zh) 安全通信的方法与设备
CN114329614A (zh) 一种基于字符串混淆的数据脱敏方法及系统
CN114329522A (zh) 一种私钥保护方法、装置、系统及存储介质
Sadqi et al. A cryptographic mutual authentication scheme for web applications
KR100897075B1 (ko) 배포 cd를 사용하는 장치에 서명 그룹의 다이렉트 증명개인 키들을 전달하는 방법
JP5847345B1 (ja) 情報処理装置、認証方法及びプログラム
CN116992494B (zh) 一种用于景区数据流通的安全保护方法、设备和介质
CN117556430B (zh) 一种安全启动方法、装置、设备及存储介质
US20240143727A1 (en) Device authentication method and system, iot device and authentication server
CN117527209A (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