CN112733154B - 一种龙芯pmon安全启动方法 - Google Patents
一种龙芯pmon安全启动方法 Download PDFInfo
- Publication number
- CN112733154B CN112733154B CN202110120475.4A CN202110120475A CN112733154B CN 112733154 B CN112733154 B CN 112733154B CN 202110120475 A CN202110120475 A CN 202110120475A CN 112733154 B CN112733154 B CN 112733154B
- Authority
- CN
- China
- Prior art keywords
- pmon
- information
- password
- metric value
- hardware
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
- G06F21/46—Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种龙芯pmon安全启动方法,该方法先获取硬件设备信息、再设置或更新安全验证密码、然后计算硬件设备的度量值和计算***启动配置信息的度量值、度量值校验后进行安全验证pmon更新操作。本发明保证pmon***运行阶段***的软硬件环境的可信和pmon更新操作的可信,若***检测到不可信的设备,或者启动配置文件发生更改,在度量值校验的过程中就会被提示。只有通过密码安全验证,不可信的操作才会被认为是可信。本发明方法通过密码校验,鉴别度量结果中不可信的硬件和文件,保证pmon***运行阶段***的软硬件环境的可信和pmon更新操作的可信,流程简便,易于操作。
Description
技术领域
本发明涉及嵌入式设备可信计算领域,具体是一种基于密码验证的嵌入式设备龙芯pmon安全启动方法。
背景技术
当今时代是信息化时代,信息传递使我们的生活越来越方便快捷,人们获取信息的途径也越来越多,但由此带来的信息安全问题也正日益严峻。
Pmon是一个兼有BIOS和boot loader功能的开放源码软件,多用于嵌入式***。与BIOS相比功能不足,与常见的bootloader 相比,功能要丰富的多。基于龙芯的***采用pmon 作为类 BIOS 兼 bootloader,并做了很多完善工作。为了使嵌入式设备启动过程安全,目前大多***采取使用TCM(TrustedCryptograp hicModule)模块加定制BIOS的机制,在***中建立一个信任根,通过度量校验方式,将信任传递到整个***。现有技术中还没有不使用TCM模块来建立信任根,使用密码验证的方式创建信任,因此,研究在pmon中基于密码验证的设备安全启动方式具有重要的意义。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种新的龙芯pmon安全启动方法,该方法通过密码校验,鉴别度量结果中不可信的硬件和文件,保证pmon***运行阶段***的软硬件环境的可信和pmon更新操作的可信,流程简便,易于操作。
本发明所要解决的技术问题是通过以下的技术方案来实现的。本发明是一种龙芯pmon安全启动方法,具步骤如下:
S1、获取硬件设备信息,将各硬件设备关键信息统一整理;
S2、设置或更新安全验证密码,为***提供信任条件;
S3、计算硬件设备的度量值,通过加密算法使硬件设备得到可标识的度量值;
S4、计算***启动配置信息的度量值,通过加密算法使***启动信息得到可标识的度量值;
S5、度量值校验,涉及到度量值在存储空间的读写和度量值的差异比较,还使用密码安全验证鉴定度量结果中不可信的硬件和文件;
S6、安全验证pmon更新操作,使pmon始终保持可信,防止非法用户篡改pmon。
作为本发明的进一步改进:所述步骤S1中,使用接口函数将硬件设备信息统一整理,即方便了后面对信息的进一步加密处理,也使本发明对pmon代码的修改与pmon原先代码分隔开来,保证本发明不对pmon原有功能产生影响。
作为本发明的进一步改进,步骤S2中,设置或更新安全验证密码,在***启动过程中会有3秒等待时间,在这3秒等待时间中若按下键盘上的Y键再按下Enter,则可以设置或更新安全验证密码,若按下的是其它键再按下Enter,***直接跳过S2,若3秒内不按任何键,***也会跳过S2。
作为本发明的进一步改进,所述步骤S2中,更新密码需要先输入原密码进行验证,新密码需要连续输入两次才可设置成功。密码通过加密处理然后存储到存储pmon的flash中,存储过程中保证存储密码操作不会损坏pmon。当pmon被更新后密码将被擦除,需要重新设置密码。
步骤S3中,计算硬件设备的度量值是通过MD5算法,将每一个设备根据其设备信息计算出其特有的MD5值。使用MD5加密压缩算法,将数据量较大且数据形式不统一的各个设备信息计算得到统一形式的度量值,方便后面对度量值的校验。
步骤S4中,计算***启动配置信息的度量值,需要读取***启动硬盘中boot.conf文件,并计算该文件的度量值。将存储在启动硬盘中的启动信息通过读文件的操作读取到缓存数组中,然后计算缓存数组的MD5值。
步骤S5中,度量值校验,先将存储在flash中的各硬件和boot.conf文件的度量值读出,再逐个比较各个度量与此次计算出的度量值之间是否存在差异,存在差异的进行安全验证,若密码验证成功,立即在flash中更新最新计算得到的度量值,然后进入下一个度量值的校验,直至全部校验完成。
使用一个单独的flash用来存储度量值,进行度量值的读写操作。将校验的设备分为两部分,一部分为必要设备,一部分为可选设备,当必要设备不存在或被更改,校验过程中都会提示需要安全验证,但可选设备只有出现新设备时才会提醒安全验证,若可选设备不存在,校验过程中不会提示安全验证。
步骤S6中,为了使pmon不被篡改,pmon更新命令初始状态是关闭的;自定义opfload命令,执行该命令,***提示输入安全验证密码即S2所设置的安全验证密码,若密码正确则该命令执行成功,成功的结果是pmon更新命令变为打开状态,从而保证pmon更新操作的安全可信。添加新命令opfload,使更新pmon前必须进过安全验证,避免pmon被篡改的风险。
本发明是基于安全等级和成本的要求,不使用TCM模块来建立信任根,而是使用密码验证的方式创建信任,填补了在pmon中基于密码验证的设备安全启动方式的空白。不仅能满足bootloaderd功能的需求,还能通过密码安全验证,确保pmon***运行阶段软硬件环境的安全可信。
与现有技术相比,本发明方法具有以下有益效果:
1)本发明采用国产龙芯3a处理器,核心硬件自主可控;本发明在硬件上不添加TCM模块,单纯修改软件完成安全启动的目的,节约设计、生产成本;在保证密码***露的前提下,本发明安全启动策略相当完备。
2)本发明方法通过密码校验,鉴别度量结果中不可信的硬件和文件,保证pmon***运行阶段***的软硬件环境的可信和pmon更新操作的可信,流程简便,易于操作。
具体实施方式
以下进一步描述本发明的具体实施例。以下实施便仅用于说明和阐述以使本领域技术人员进一步理解本发明,而不构成对本发明范围的限制。
一种龙芯pmon的安全启动方法,通过密码校验,鉴别度量结果中不可信的硬件和文件,保证pmon***运行阶段***的软硬件环境的可信和pmon更新操作的可信,包括以下步骤:
S1、获取硬件设备信息,将***各硬件设备关键信息统一整理;
S2、设置或更新安全验证密码,为***提供信任条件;
S3、计算硬件设备的度量值,通过加密算法使硬件设备得到可标识的度量值;
S4、计算***启动配置信息的度量值,通过加密算法使***启动信息得到可标识的度量值;
S5、度量值校验,涉及到度量值在存储空间的读写和度量值的差异比较,还使用密码安全验证鉴定度量结果中不可信的硬件和文件;
S6、安全验证pmon更新操作,使pmon始终保持可信,防止非法用户篡改pmon。
步骤S1中,在pmon原有代码中添加一个.c文件,在该.c中先定义存储各硬件设备信息的全局变量,然后定义用于收集各硬件设备信息的接口函数,该接口函数通过形参来传入硬件设备信息。接下来,通过查找各硬件设备信息在代码中的位置,然后在各所处位置调用接口函数,就可以使用该接口函数将各硬件设备信息通过形参传递到函数内部,再在函数内部将形参的值赋值给前面定义的全局变量。这样,添加的.c中就收集到各硬件设备的信息了。通过接口函数,使本发明对pmon代码的修改部分与pmon原先代码分隔开来,单独在一个.c文件中对各硬件设备信息进行处理,保证不对pmon原有功能产生影响。具体收集的设备信息包括CPU串码、硬盘串码、PCIE设备、USB设备、网络MAC等,可以按照需求进行增添或删减。
步骤S2中,***在此有3秒延时,用户可以通过按键跳出延时,进入按键判断,若无按键输入,则3秒后结束S2。在进入按键判断后,若输入的按键是先Y后Enter,则进入密码的设置,其他按键输入方式无法进入密码设置。此策略的目的是即在安全校验前提供了设置密码的入口,又保证了在不需要设置密码时***能够自动完成启动。设置密码可以使用任何形式的字符进行组合,最高不超过27位。
步骤S3中,通过MD5加密压缩算法,使用各硬件设备信息计算它们的度量值。对于某个设备有多个关键信息的,选取其中最有代表性的信息(如序列号、产品类型、厂商等)来计算度量值,若该信息为空,再选取次要代表性的设备信息来计算度量值,若该设备所有产品信息都为空,则使用空值计算度量值。
步骤S4中,启动硬盘中一般都有存储启动信息的文件,通过文件IO操作,读取启动信息到缓存数组中。通过MD5加密压缩算法,使用缓存数组计算它的度量值。若启动硬盘中没有存储启动信息,则使用空值计算度量值。
步骤S5中,因为初始时flash中还没有存储度任何度量值,所以第一次计算各硬件设备度量值后与flash中存储的度量值进行比较时,每一次比较的结果都将是度量值存在差异,需要对每一个设备都进行一次安全验证,通过安全验证的设备,其度量值将保存到flash中供下次校验时读取。到下次进行度量值校验时,若是必要设备发生替换或增减,校验就会提示某必要设备度量值存在差异。对可选设备的校验,只要该设备在flash中存在与之匹配的度量值,则校验通过,否则校验不通过,不判别设备是否有替换或增减。若以上校验不通过,则需要进行安全验证。安全验证首先会判断当前是否设置了安全验证密码,若不存在,则立即重启,用户可在S2中设置安全验证密码。若存在了安全验证密码,则只要输入一次安全验证密码并密码验证通过了,该安全验证即通过,若密码输入错误,***将立即重启。等到安全验证通过后,新的度量值就会替换旧的存储到flash中,然后***继续下一个度量值的校验。
步骤S6中,在***启动过程中按C键进入到pmon命令行,输入新命令opfload,***提示输入安全验证密码,若密码正确,则pmon更新命令被打开,若密码错误,则***立即重启。
上述技术方案采用国产龙芯3a处理器,在硬件上不添加TCM模块,单纯修改软件完成安全启动的目的,在保证密码***露的前提下,实现安全启动且策略相当完备;在原有pmon代码基础上添加相对独立的安全启动管理模块,不对pmon原有代码产生影响。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (1)
1.一种龙芯pmon的安全启动方法,其特征在于,通过密码校验,鉴别度量结果中不可信的硬件和文件,使pmon***运行阶段***的软硬件环境可信和pmon更新操作可信,包括以下步骤:
S1、获取硬件设备信息,将***各硬件设备关键信息统一整理;
S2、设置或更新安全验证密码,为***提供信任条件;
S3、计算硬件设备的度量值,通过加密算法使硬件设备得到可标识的度量值;
S4、计算***启动配置信息的度量值,通过加密算法使***启动信息得到可标识的度量值;
S5、度量值校验,涉及到度量值在存储空间的读写和度量值的差异比较,还使用密码安全验证鉴定度量结果中不可信的硬件和文件;
S6、安全验证pmon更新操作,使pmon始终保持可信,防止非法用户篡改pmon;
步骤S1中,在pmon原有代码中添加一个.c文件,在该.c文件中先定义存储各硬件设备信息的全局变量,然后定义用于收集各硬件设备信息的接口函数,该接口函数通过形参来传入硬件设备信息;接下来,通过查找各硬件设备信息在代码中的位置,然后在各所处位置调用接口函数,使用该接口函数将各硬件设备信息通过形参传递到函数内部,再在函数内部将形参的值赋值给前面定义的全局变量;这样,添加的.c文件中就收集到各硬件设备的信息了;通过接口函数,使pmon代码的修改部分与pmon原先代码分隔开来,单独在一个.c文件中对各硬件设备信息进行处理;具体收集的设备信息包括CPU串码、硬盘串码、PCIE设备、USB设备、网络MAC;按照需求进行增添或删减;
步骤S2中,***在此有3秒延时,用户通过按键跳出延时,进入按键判断,若无按键输入,则3秒后结束S2;
在进入按键判断后,若输入的按键是先Y后Enter,则进入密码的设置,其他按键输入方式无法进入密码设置;设置密码使用任何形式的字符进行组合,最高不超过27位;
步骤S3中,通过MD5加密压缩算法,使用各硬件设备信息计算它们的度量值;
对于某个设备有多个关键信息的,选取其中最有代表性的信息来计算度量值,若该信息为空,再选取次要代表性的设备信息来计算度量值,若该设备所有产品信息都为空,则使用空值计算度量值;
步骤S4中,启动硬盘中存储启动信息的文件,通过文件IO操作,读取启动信息到缓存数组中;
通过MD5加密压缩算法,使用缓存数组计算它的度量值;若启动硬盘中没有存储启动信息,则使用空值计算度量值;
步骤S5中,因为初始时flash中还没有存储度任何度量值,所以第一次计算各硬件设备度量值后与flash中存储的度量值进行比较时,每一次比较的结果都将是度量值存在差异,需要对每一个设备都进行一次安全验证,通过安全验证的设备,其度量值将保存到flash中供下次校验时读取;
到下次进行度量值校验时,若是必要设备发生替换或增减,校验提示该必要设备度量值存在差异;对可选设备的校验,只要该设备在flash中存在与之匹配的度量值,则校验通过,否则校验不通过,不判别设备是否有替换或增减;若以上校验不通过,则需要进行安全验证;安全验证首先判断当前是否设置了安全验证密码,若不存在,则立即重启,用户在S2中设置安全验证密码;若存在了安全验证密码,则只要输入一次安全验证密码且密码验证通过了,该安全验证即通过,若密码输入错误,***将立即重启;安全验证通过后,新的度量值替换旧的度量值存储到flash中,然后***继续下一个度量值的校验;
步骤S6中,在***启动过程中按C键进入到pmon命令行,输入新命令opfload,***提示输入安全验证密码,若密码正确,则pmon更新命令被打开,若密码错误,则***立即重启。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110120475.4A CN112733154B (zh) | 2021-01-28 | 2021-01-28 | 一种龙芯pmon安全启动方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110120475.4A CN112733154B (zh) | 2021-01-28 | 2021-01-28 | 一种龙芯pmon安全启动方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112733154A CN112733154A (zh) | 2021-04-30 |
CN112733154B true CN112733154B (zh) | 2023-01-20 |
Family
ID=75594406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110120475.4A Active CN112733154B (zh) | 2021-01-28 | 2021-01-28 | 一种龙芯pmon安全启动方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112733154B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109889477A (zh) * | 2018-12-20 | 2019-06-14 | 北京华胜天成信息技术发展有限公司 | 基于可信密码引擎的服务器启动方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101281577B (zh) * | 2008-05-16 | 2010-06-23 | 北京工业大学 | 一种对bios进行保护的可信计算***及其应用方法 |
CN102279914B (zh) * | 2011-07-13 | 2014-08-06 | 中国人民解放军海军计算技术研究所 | 一种uefi可信支撑***及其控制方法 |
CN102332070A (zh) * | 2011-09-30 | 2012-01-25 | 中国人民解放军海军计算技术研究所 | 一种可信计算平台的信任链传递方法 |
CN109214187B (zh) * | 2017-06-29 | 2021-01-22 | 龙芯中科技术股份有限公司 | 一种控制计算机启动的方法、装置和电子设备 |
CN108345804B (zh) * | 2018-03-22 | 2021-01-08 | 北京可信华泰信息技术有限公司 | 一种可信计算环境中的存储方法和装置 |
US11411941B2 (en) * | 2019-01-04 | 2022-08-09 | Comcast Cable Communications, Llc | Establishing trust with network device |
-
2021
- 2021-01-28 CN CN202110120475.4A patent/CN112733154B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109889477A (zh) * | 2018-12-20 | 2019-06-14 | 北京华胜天成信息技术发展有限公司 | 基于可信密码引擎的服务器启动方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112733154A (zh) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8560845B2 (en) | System and method for tamper-resistant booting | |
TWI667586B (zh) | 用以核對uefi認證變量變化之系統及方法 | |
EP0849657B1 (en) | Secure data processing method and system | |
US8108536B1 (en) | Systems and methods for determining the trustworthiness of a server in a streaming environment | |
CN103329095B (zh) | 用编码的信息验证管理程序 | |
CN101256608B (zh) | 安全操作方法和*** | |
EP3458999A1 (en) | Self-contained cryptographic boot policy validation | |
CN101657792A (zh) | 可信部件更新***和方法 | |
CN106384052A (zh) | 一种实现BMC U‑boot可信启动控制的方法 | |
US11783041B2 (en) | Electronic device for updating firmware based on user authentication and an operating method thereof | |
KR20170095394A (ko) | 보안 배터리 인증 | |
CN112148314B (zh) | 一种嵌入式***的镜像验证方法、装置、设备及存储介质 | |
CN115934194A (zh) | 一种控制器启动方法、装置、电子设备及储存介质 | |
CN118302990A (zh) | 用于基于设备所有者来生成密钥的sram物理不可克隆功能(puf)存储器 | |
US11366911B2 (en) | Cryptography module and method for operating same | |
CN112733154B (zh) | 一种龙芯pmon安全启动方法 | |
WO2017092507A1 (zh) | 应用加密方法、装置和应用访问方法、装置 | |
CN111143826A (zh) | 一种bios的用户账号密码设置方法、装置及相关设备 | |
CN112861137A (zh) | 安全固件 | |
CN114995894A (zh) | 操作***的启动控制方法、终端设备及可读存储介质 | |
KR102031248B1 (ko) | 보안 모듈을 이용한 실행 환경의 안전성 검증 방법 | |
CN117235747B (zh) | 一种linux下修改bios开机密码的方法 | |
TWI818221B (zh) | 可認證晶片外部除錯功能韌體程式與除錯使用者的晶片與方法 | |
US12008107B2 (en) | Chip and method capable of authenticating off-chip debug firmware program and debug user | |
CN118260727A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |