CN108632024B - 一种运行引导程序的方法及装置 - Google Patents

一种运行引导程序的方法及装置 Download PDF

Info

Publication number
CN108632024B
CN108632024B CN201710169541.0A CN201710169541A CN108632024B CN 108632024 B CN108632024 B CN 108632024B CN 201710169541 A CN201710169541 A CN 201710169541A CN 108632024 B CN108632024 B CN 108632024B
Authority
CN
China
Prior art keywords
check value
key
encrypted
boot program
storage area
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
Application number
CN201710169541.0A
Other languages
English (en)
Other versions
CN108632024A (zh
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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201710169541.0A priority Critical patent/CN108632024B/zh
Publication of CN108632024A publication Critical patent/CN108632024A/zh
Application granted granted Critical
Publication of CN108632024B publication Critical patent/CN108632024B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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
    • 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/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种运行引导程序的方法及装置,所述方法包括:从外部存储器中读取加密过的第一密钥;利用对应的第二密钥对加密过的第一密钥进行解密,得到第一密钥;从外部存储器中读取加密过的引导程序的版本头;利用第一密钥对加密过的引导程序的版本头进行解密,得到引导程序的版本头;从外部存储器中的引导程序中读取部分数据,并计算其第一校验值;如果所述第一校验值与版本头中的第二校验值相同,则根据第三密钥对引导程序的部分数据进行解密;运行引导程序的部分数据。通过本发明实施例的技术方案,可以实现BOOT程序加密密钥在不需要额外存储器的情况下的加密存储,进一步降低设备成本、提高设备性能。

Description

一种运行引导程序的方法及装置
技术领域
本发明涉及计算机控制技术领域,尤其涉及一种运行引导程序的方法及装置。
背景技术
目前,嵌入式***中,设备一般从外部存储设备中读取引导程序BOOT程序,启动引导程序。直接焊接在设备中的外部存储设备,若外部存储设备中的程序不加任何防护,黑客可以利用***的漏洞,获取到BOOT程序,亦可焊下存储设备FLASH,通过其他设备暴力读取FLASH中的BOOT程序,反汇编分析BOOT程序并修改BOOT程序,再次写入FLASH。
为保护BOOT程序不被损坏,现有技术往往对BOOT程序进行加密处理,处理器启动时,需先对BOOT程序进行解密,再运行BOOT程序。对BOOT程序进行加密处理,需要额外的存储设备用来存储解密的密钥,势必需要额外增加设备成本。
发明内容
本发明要解决的技术问题是提供一种运行引导程序的方法,利用此方法实现BOOT程序加密密钥在不需要额外存储器的情况下的加密存储,进一步降低设备成本、提高设备性能。
本发明提供的技术方案如下:
一种运行引导程序的方法,所述方法包括:
从外部存储器中第一存储区域读取加密过的第一密钥;
利用与所述第一密钥对应的第二密钥对所述加密过的第一密钥进行解密,得到所述第一密钥;
从所述外部存储器中第二存储区域读取加密过的引导程序的版本头;
利用所述第一密钥对所述加密过的引导程序的版本头进行解密,得到所述引导程序的版本头;
从所述外部存储器中第三存储区域存储的引导程序中读取部分数据,并计算所述部分数据的第一校验值;
如果所述部分数据的第一校验值与所述版本头中第一预定位置的第二校验值相同,则根据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密;
运行所述引导程序的部分数据。
进一步地,所述运行引导程序的方法中,所述从所述外部存储器中第三存储区域存储的引导程序中读取部分数据,并计算所述部分数据的第一校验值的步骤之前,所述方法还包括:
根据所述版本头的第三预定位置的第三校验值,和/或所述版本头的第四预定位置的第四校验值,判断所述版本头是否有效;
如果所述第三校验值与第一预定值相同,和/或所述第四校验值与第二预定值相同,则判断结果为所述版本头有效。
进一步地,所述运行引导程序的方法中,所述根据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密包括:
根据所述版本头的第五预定位置的第五校验值,判断所述外部存储器中第三存储区域存储的引导程序是否加密;
如果所述外部存储器中第三存储区域存储的引导程序加密,根据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密。
进一步地,所述运行引导程序的方法中,所述方法还包括:
从所述外部存储器中第三存储区域存储的引导程序中读取引导程序数据,并计算所述引导程序数据的第六校验值;
如果所述引导程序数据的第六校验值与所述版本头中第六预定位置的第七校验值相同,进一步判断所述外部存储器中第三存储区域存储的所述引导程序是否加密;
如果所述外部存储器中第三存储区域存储的引导程序未加密,运行所述引导程序;
如果所述外部存储器中第三存储区域存储的引导程序加密,根据所述版本头中第二预定位置的第三密钥对所述引导程序进行解密后,运行所述引导程序。
进一步地,所述运行引导程序的方法中,所述加密过的引导程序的版本头包括:
存放于第一预定位置的第二校验值;
存放于第二预定位置的第三密钥;
存放于第三预定位置的第三校验值;
存放于第四预定位置的第四校验值;
存放于第五预定位置的第五校验值;
以及,存放于第六预定位置的第七校验值。
此外,本发明还涉及一种运行引导程序的装置,所述装置包括:
第一读取模块,用于从外部存储器中第一存储区域读取加密过的第一密钥;
第一解密模块,用于利用与所述第一密钥对应的第二密钥对所述加密过的第一密钥进行解密,得到所述第一密钥;
第二读取模块,用于从所述外部存储器中第二存储区域读取加密过的引导程序的版本头;
第二解密模块,用于利用所述第一密钥对所述加密过的引导程序的版本头进行解密,得到所述引导程序的版本头;
第一处理模块,用于从所述外部存储器中第三存储区域存储的引导程序中读取部分数据,并计算所述部分数据的第一校验值;
第三解密模块,用于当所述第一处理模块计算所述部分数据的第一校验值与所述版本头中第一预定位置的第二校验值相同时,所述第三解密模块根据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密;
程序运行模块,用于运行所述引导程序的部分数据。
进一步地,所述运行引导程序的装置中,所述装置还包括:
第一校验模块,所述第一校验模块用于根据所述版本头的第三预定位置的第三校验值,和/或所述版本头的第四预定位置的第四校验值,判断所述版本头是否有效;
如果所述第三校验值与第一预定值相同,和/或所述第四校验值与第二预定值相同,则判断结果为所述版本头有效。
进一步地,所述运行引导程序的装置中,所述装置还包括:
第二校验模块,所述第二校验模块用于根据所述版本头的第五预定位置的第五校验值,判断所述外部存储器中第三存储区域存储的引导程序是否加密;
如果所述外部存储器中第三存储区域存储的引导程序加密,所述第三解密模块根据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密。
进一步地,所述运行引导程序的装置中,所述装置还包括:
第三读取模块,用于从所述外部存储器中第三存储区域存储的引导程序中读取引导程序数据,并计算所述引导程序数据的第六校验值;
第三校验模块,所述第三校验模块用于当所述引导程序数据的第六校验值与所述版本头中第六预定位置的第七校验值相同时,进一步判断所述外部存储器中第三存储区域存储的所述引导程序是否加密;
如果所述第三校验模块判断所述外部存储器中第三存储区域存储的引导程序未加密,所述程序运行模块运行所述引导程序;
第四解密模块,用于当所述第三校验模块判断所述外部存储器中第三存储区域存储的引导程序加密时,根据所述版本头中第二预定位置的第三密钥对所述引导程序进行解密,所述引导程序进行解密后,所述程序运行模块运行所述引导程序。
进一步地,所述运行引导程序的装置中,所述第二存储区域包括:
第一预定位置,用于存放第二校验值;
第二预定位置,用于存放第三密钥;
第三预定位置,用于存放第三校验值;
第四预定位置,用于存放第四校验值;
第五预定位置,用于存放第五校验值;
以及,第六预定位置,用于存放第七校验值。
本发明所带来的有益效果如下:
本发明实施例所提供的一种运行引导程序的方法及装置,通过设备中央处理器CPU与外部存储器的数据相互配合,实现BOOT程序加密密钥的加密存储。利用此方法本发明实施例技术方案,可以实现BOOT程序加密密钥在不需要额外存储器的情况下的加密存储,从而进一步降低设备成本、进一步提高设备性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1表示本发明实施例提供的一种运行引导程序的方法的流程图;
图2表示本发明实施例提供的外部存储器结构示意图;
图3表示本发明实施例提供的另一种运行引导程序的方法的流程图;
图4表示本发明实施例涉及的引导程序的版本头的结构示意图;
图5表示本发明实施例提供的运行引导程序的装置的结构示意图。
具体实施方式
下面将结合具体的实施例和附图,对本发明作进一步的详细说明。所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,图1是本发明实施例提供的一种运行引导程序的方法的流程图,如图1所示,所述方法包括:
S101、从外部存储器中第一存储区域读取加密过的第一密钥。
本发明实施例中,加密过的第一密钥存储于外部存储器中的第一存储区域,而不需要额外存储器,有利于降低设备成本、进一步提高设备性能。
参见图2,图2是本发明实施例提供的外部存储器结构示意图,如图2所示,所述外部存储器包括:第一存储区域110、第二存储区域120、第三存储区域130。其中,第一存储区域110用于存储加密过的密钥信息,如RSA公钥;第二存储区域120用于存储加密过的版本头;第三存储区域用于存储加密过的BOOT程序版本。
S102、利用与所述第一密钥对应的第二密钥对所述加密过的第一密钥进行解密,得到所述第一密钥。
本发明实施例中,通过对所述加密过的密钥进行解密得到所述第一密钥。其中,所述第一密钥可以为RSA-2048公钥,其数据格式如表1所示。
表1第一密钥数据格式
偏移,单位:字节 含义
0~3 密钥类型,0-RSA 2048
4~7 CRC32
8~511 存放原始密钥
S103、从所述外部存储器中第二存储区域读取加密过的引导程序的版本头。
S104、利用所述第一密钥对所述加密过的引导程序的版本头进行解密,得到所述引导程序的版本头。
本发明实施例中,通过利用所述第一密钥对加密过的引导程序的版本头进行解密,得到所述引导程序的版本头,如表2所示。其中,所述引导程序的版本头主要包括用于对所述引导程序解密的密钥,以及用于判断所述引导程序相关状态的系列校验值。
表2版本头格式
Figure BDA0001250761020000061
Figure BDA0001250761020000071
S105、从所述外部存储器中第三存储区域存储的引导程序中读取部分数据,并计算所述部分数据的第一校验值。
S106、判断部分数据的第一校验值与所述版本头中第一预定位置的第二校验值相同,如果是,则进入S107;否则,进入S109;
S107、根据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密,然后进入S108。
S108、运行所述引导程序的部分数据。
S109、启动失败,输出出错信息。
本发明实施例中,所述部分数据可以为所述引导程序的头8K数据,所述部分数据第一校验值可以为用于判断所述部分数据状态是否完整的所述部分数据哈希HASH值。
应当理解的是,所述部分数据可以为所述引导程序的头8K数据,但并不局限于所述引导程序的头8K数据,可以根据需要在所述引导程序的数据中进行选取。
当所述部分数据的第一校验值与所述版本头中第一预定位置的第二校验值相同时,判定所述部分数据状态完整,根据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密,运行所述引导程序的部分数据。
当所述部分数据的第一校验值与所述版本头中第一预定位置的第二校验值不同时,判定所述部分数据状态完整、所述部分数据被破坏,不运行所述引导程序,启动失败。
进一步地,所述运行引导程序的方法中,所述利用所述第一密钥对所述加密过的引导程序的版本头进行解密,得到所述引导程序的版本头的步骤之前,所述方法还包括:
根据所述版本头的第三预定位置的第三校验值,和/或所述版本头的第四预定位置的第四校验值,判断所述版本头是否有效;
如果所述第三校验值与第一预定值相同,和/或所述第四校验值与第二预定值相同,则判断结果为所述版本头有效。
本发明实施例中,如表2所示,所述版本头的第三预定位置的第三校验值和所述第四预定位置的第四校验值为MAGIC值和循环冗余校验值CRC32值。所述MAGIC值为0x626F6F74,且所述第8~255字节数据的循环冗余校验值CRC32值等于第4~7字节CRC32值时,判断所述版本头有效。当判断所述版本头有效时,进一步执行S104;当判断所述版本头无效时,不运行所述引导程序,启动失败。
进一步地,所述运行引导程序的方法中,所述根据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密的步骤之前,所述方法还包括:
根据所述版本头的第五预定位置的第五校验值,判断所述外部存储器中第三存储区域存储的引导程序是否加密;
如果所述外部存储器中第三存储区域存储的引导程序加密,根据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密。
本发明实施例中,如表2所示,所述版本头的第五预定位置的第五校验值为标志Flag,采用所述判断Flag的值判断所述引导程序是否加密。若所述引导程序未加密,直接运行所述引导程序的部分数据;若所述引导程序加密,则据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密,然后运行所述引导程序的部分数据。其中,Flag的加密方式如表3所示。
表3 Flag的加密方式
00 不加密
01 AES-128
10 Reserved
11 Reserved
进一步地,如图3所示,图3是本发明实施例提供的另一种运行引导程序的方法的流程图,其中S101至S109同前所述,所述方法还包括:
S201、从所述外部存储器中第三存储区域存储的引导程序中读取引导程序数据,并计算所述引导程序数据的第六校验值;
S202、如果所述引导程序数据的第六校验值与所述版本头中第六预定位置的第七校验值相同,进一步判断所述外部存储器中第三存储区域存储的所述引导程序是否加密;
S203、如果所述外部存储器中第三存储区域存储的引导程序加密,进行S204;否则,进行S205。
S204、根据所述版本头中第二预定位置的第三密钥对所述引导程序进行解密。
S205、运行所述引导程序。
进一步地,图4是本发明实施例涉及的引导程序的版本头结构组成示意图,如图4所示,所述运行引导程序的方法中,所述加密过的引导程序的版本头包括:
存放于第一预定位置的第二校验值301;
存放于第二预定位置的第三密钥302;
存放于第三预定位置的第三校验值303;
存放于第四预定位置的第四校验值304;
存放于第五预定位置的第五校验值305;
以及,存放于第六预定位置的第七校验值306。
此外,本发明实施例还包括一种运行引导程序的装置,图5是本发明实施例所提供的运行引导程序的装置的结构示意图,如图5所示,所述装置包括:
第一读取模块501,用于从外部存储器中第一存储区域读取加密过的第一密钥;
第一解密模块502,用于利用与所述第一密钥对应的第二密钥对所述加密过的第一密钥进行解密,得到所述第一密钥;
第二读取模块503,用于从所述外部存储器中第二存储区域读取加密过的引导程序的版本头;
第二解密模块504,用于利用所述第一密钥对所述加密过的引导程序的版本头进行解密,得到所述引导程序的版本头;
第一处理模块505,用于从所述外部存储器中第三存储区域存储的引导程序中读取部分数据,并计算所述部分数据的第一校验值;
第三解密模块506,用于当所述第一处理模块计算所述部分数据的第一校验值与所述版本头中第一预定位置的第二校验值相同时,所述第三解密模块根据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密;
程序运行模块507,用于运行所述引导程序的部分数据。
进一步地,如图5所示,所述运行引导程序的装置中,所述装置还包括:
第一校验模块601,所述第一校验模块601用于根据所述版本头的第三预定位置的第三校验值,和/或所述版本头的第四预定位置的第四校验值,判断所述版本头是否有效;
如果所述第三校验值与第一预定值相同,和/或所述第四校验值与第二预定值相同,则判断结果为所述版本头有效。
进一步地,如图5所示,所述运行引导程序的装置中,所述装置还包括:
第二校验模块602,所述第二校验模块602用于根据所述版本头的第五预定位置的第五校验值,判断所述外部存储器中第三存储区域存储的引导程序是否加密;
如果所述外部存储器中第三存储区域存储的引导程序加密,所述第三解密模块506根据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密。
进一步地,如图5所示,所述运行引导程序的装置中,所述装置还包括:
第三读取模块603,用于从所述外部存储器中第三存储区域存储的引导程序中读取引导程序数据,并计算所述引导程序数据的第六校验值;
第三校验模块604,所述第三校验模块604用于当所述引导程序数据的第六校验值与所述版本头中第六预定位置的第七校验值相同时,进一步判断所述外部存储器中第三存储区域存储的所述引导程序是否加密;
如果所述第三校验模块判断所述外部存储器中第三存储区域存储的引导程序未加密,所述程序运行模块507运行所述引导程序;
第四解密模块605,用于当所述第三校验模块604判断所述外部存储器中第三存储区域存储的引导程序加密时,根据所述版本头中第二预定位置的第三密钥对所述引导程序进行解密,所述引导程序进行解密后,所述程序运行模块507运行所述引导程序。
进一步地,所述运行引导程序的装置中,所述第二存储区域包括:
第一预定位置,用于存放第二校验值;
第二预定位置,用于存放第三密钥;
第三预定位置,用于存放第三校验值;
第四预定位置,用于存放第四校验值;
第五预定位置,用于存放第五校验值;
以及,第六预定位置,用于存放第七校验值。
应理解的是在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露方法和设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块、单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。
以上所述仅为解释本发明的较优实施例,并非对本发明做任何形式上的限制。凡在相同的发明精神下所作出的有关本发明的任何修饰或变更,都应仍然包括在本发明意图保护的范围之内。

Claims (10)

1.一种运行引导程序的方法,其特征在于,所述方法包括:
从外部存储器中第一存储区域读取加密过的第一密钥;
利用与所述第一密钥对应的第二密钥对所述加密过的第一密钥进行解密,得到所述第一密钥;
从所述外部存储器中第二存储区域读取加密过的引导程序的版本头;
利用所述第一密钥对所述加密过的引导程序的版本头进行解密,得到所述引导程序的版本头;
从所述外部存储器中第三存储区域存储的引导程序中读取部分数据,并计算所述部分数据的第一校验值;
如果所述部分数据的第一校验值与所述版本头中第一预定位置的第二校验值相同,则根据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密;
运行所述引导程序的部分数据。
2.根据权利要求1所述运行引导程序的方法,其特征在于,所述从所述外部存储器中第三存储区域存储的引导程序中读取部分数据,并计算所述部分数据的第一校验值的步骤之前,所述方法还包括:
根据所述版本头的第三预定位置的第三校验值,和/或所述版本头的第四预定位置的第四校验值,判断所述版本头是否有效;
如果所述第三校验值与第一预定值相同,和/或所述第四校验值与第二预定值相同,则判断结果为所述版本头有效。
3.根据权利要求1所述运行引导程序的方法,其特征在于,所述根据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密包括:
根据所述版本头的第五预定位置的第五校验值,判断所述外部存储器中第三存储区域存储的引导程序是否加密;
如果所述外部存储器中第三存储区域存储的引导程序加密,根据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密。
4.根据权利要求1所述运行引导程序的方法,其特征在于,所述方法还包括:
从所述外部存储器中第三存储区域存储的引导程序中读取引导程序数据,并计算所述引导程序数据的第六校验值;
如果所述引导程序数据的第六校验值与所述版本头中第六预定位置的第七校验值相同,进一步判断所述外部存储器中第三存储区域存储的所述引导程序是否加密;
如果所述外部存储器中第三存储区域存储的引导程序未加密,运行所述引导程序;
如果所述外部存储器中第三存储区域存储的引导程序加密,根据所述版本头中第二预定位置的第三密钥对所述引导程序进行解密后,运行所述引导程序。
5.根据权利要求1-4任一项所述运行引导程序的方法,其特征在于,所述加密过的引导程序的版本头包括:
存放于第一预定位置的第二校验值;
存放于第二预定位置的第三密钥;
存放于第三预定位置的第三校验值;
存放于第四预定位置的第四校验值;
存放于第五预定位置的第五校验值;
以及,存放于第六预定位置的第七校验值。
6.一种运行引导程序的装置,其特征在于,所述装置包括:
第一读取模块,用于从外部存储器中第一存储区域读取加密过的第一密钥;
第一解密模块,用于利用与所述第一密钥对应的第二密钥对所述加密过的第一密钥进行解密,得到所述第一密钥;
第二读取模块,用于从所述外部存储器中第二存储区域读取加密过的引导程序的版本头;
第二解密模块,用于利用所述第一密钥对所述加密过的引导程序的版本头进行解密,得到所述引导程序的版本头;
第一处理模块,用于从所述外部存储器中第三存储区域存储的引导程序中读取部分数据,并计算所述部分数据的第一校验值;
第三解密模块,用于当所述第一处理模块计算所述部分数据的第一校验值与所述版本头中第一预定位置的第二校验值相同时,所述第三解密模块根据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密;
程序运行模块,用于运行所述引导程序的部分数据。
7.根据权利要求6所述的运行引导程序的装置,其特征在于,所述装置还包括:
第一校验模块,所述第一校验模块用于根据所述版本头的第三预定位置的第三校验值,和/或所述版本头的第四预定位置的第四校验值,判断所述版本头是否有效;
如果所述第三校验值与第一预定值相同,和/或所述第四校验值与第二预定值相同,则判断结果为所述版本头有效。
8.根据权利要求6所述的运行引导程序的装置,其特征在于,所述装置还包括:
第二校验模块,用于根据所述版本头的第五预定位置的第五校验值,判断所述外部存储器中第三存储区域存储的引导程序是否加密;
如果所述外部存储器中第三存储区域存储的引导程序加密,所述第三解密模块还用于根据所述版本头中第二预定位置的第三密钥对所述引导程序的部分数据进行解密。
9.根据权利要求6所述的运行引导程序的装置,其特征在于,所述装置还包括:
第三读取模块,用于从所述外部存储器中第三存储区域存储的引导程序中读取引导程序数据,并计算所述引导程序数据的第六校验值;
第三校验模块,用于当所述引导程序数据的第六校验值与所述版本头中第六预定位置的第七校验值相同时,判断所述外部存储器中第三存储区域存储的所述引导程序是否加密;
如果所述第三校验模块判断所述外部存储器中第三存储区域存储的引导程序未加密,所述程序运行模块运行所述引导程序;
第四解密模块,用于当所述第三校验模块判断所述外部存储器中第三存储区域存储的引导程序加密时,根据所述版本头中第二预定位置的第三密钥对所述引导程序进行解密,所述引导程序进行解密后,所述程序运行模块运行所述引导程序。
10.根据权利要求6-9任一项所述的运行引导程序的装置,其特征在于,所述第二存储区域包括:
第一预定位置,用于存放第二校验值;
第二预定位置,用于存放第三密钥;
第三预定位置,用于存放第三校验值;
第四预定位置,用于存放第四校验值;
第五预定位置,用于存放第五校验值;
以及,第六预定位置,用于存放第七校验值。
CN201710169541.0A 2017-03-21 2017-03-21 一种运行引导程序的方法及装置 Active CN108632024B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710169541.0A CN108632024B (zh) 2017-03-21 2017-03-21 一种运行引导程序的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710169541.0A CN108632024B (zh) 2017-03-21 2017-03-21 一种运行引导程序的方法及装置

Publications (2)

Publication Number Publication Date
CN108632024A CN108632024A (zh) 2018-10-09
CN108632024B true CN108632024B (zh) 2022-06-28

Family

ID=63687301

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710169541.0A Active CN108632024B (zh) 2017-03-21 2017-03-21 一种运行引导程序的方法及装置

Country Status (1)

Country Link
CN (1) CN108632024B (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100654446B1 (ko) * 2004-12-09 2006-12-06 삼성전자주식회사 보안 부팅 장치 및 방법
JP2010262715A (ja) * 2009-05-11 2010-11-18 Renesas Electronics Corp メモリ検査システム及びメモリ検査方法
CN103135995A (zh) * 2011-11-22 2013-06-05 中兴通讯股份有限公司 一种BootLoader的备份管理方法及装置
CN105487888A (zh) * 2015-11-26 2016-04-13 武汉光迅科技股份有限公司 一种生成在***升级和/或在应用升级的升级文件的方法
CN106503494A (zh) * 2016-11-05 2017-03-15 福建省北峰电讯科技有限公司 一种带有片上闪存微控制器的固件保护单元及保护方法

Also Published As

Publication number Publication date
CN108632024A (zh) 2018-10-09

Similar Documents

Publication Publication Date Title
CN109388975B (zh) 针对安全性和可靠性的存储器组织
US10469256B2 (en) Cryptographic communication system and cryptographic communication method
US9418027B2 (en) Secure boot information with validation control data specifying a validation technique
US11151290B2 (en) Tamper-resistant component networks
JP4851182B2 (ja) マイクロコンピュータ、マイクロコンピュータに対するプログラム書込み方法、及び書込み処理システム
CN102163268B (zh) 在执行期间验证软件代码的完整性的方法和设备
US8127144B2 (en) Program loader operable to verify if load-destination information has been tampered with, processor including the program loader, data processing device including the processor, promgram loading method, and integrated circuit
US20180204004A1 (en) Authentication method and apparatus for reinforced software
CN109445705B (zh) 固件认证方法及固态硬盘
CN111404682A (zh) 一种Android环境密钥分段处理方法及装置
US7979628B2 (en) Re-flash protection for flash memory
CN110659506A (zh) 基于密钥刷新对存储器进行重放保护
US11601283B2 (en) Message authentication code (MAC) based compression and decompression
US20200233676A1 (en) Bios management device, bios management system, bios management method, and bios management program-stored recording medium
CN111176696B (zh) 存储芯片的升级方法、装置、终端设备及介质
CN108632024B (zh) 一种运行引导程序的方法及装置
CN114816549B (zh) 一种保护bootloader及其环境变量的方法及***
CN111949996A (zh) 安全私钥的生成方法、加密方法、***、设备及介质
CN114579337A (zh) 用于在用户设备中生成核心转储的方法和***
CN114969794A (zh) SoC***及数据加密方法
CN114928551B (zh) 一种***配置方法、装置和存储介质
US20230119890A1 (en) Method for securely processing digital information in a secure element
CN113032265B (zh) 非对称加密算法测试方法、装置、计算机设备及存储介质
CN116414737A (zh) 微控制芯片及存取方法
CN114564754A (zh) 一种dram内存完整性保护方法、装置、电子设备及存储介质

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