CN104573527A - 一种基于更新安全机制的uefi***更新方法 - Google Patents
一种基于更新安全机制的uefi***更新方法 Download PDFInfo
- Publication number
- CN104573527A CN104573527A CN201410844498.XA CN201410844498A CN104573527A CN 104573527 A CN104573527 A CN 104573527A CN 201410844498 A CN201410844498 A CN 201410844498A CN 104573527 A CN104573527 A CN 104573527A
- Authority
- CN
- China
- Prior art keywords
- updating file
- updating
- file
- uefi
- descriptor
- 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
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
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (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
本发明公开了一种基于更新安全机制的UEFI***更新方法,属于计算机软件***领域,具体涉及一种UEFI***更新方法,UEFI更新安全机制由分发、验证两个方法组成,用以确保加载至***的更新文件不受篡改、不受非法访问,并且与硬件兼容。通过利用数字签名、加密技术,在更新文件之外封装一层可验证其安全性的外层数据,然后在更新安全机制的验证方法中通过建立DXE驱动,对这一外层数据进行检测,从而判断更新文件是否完整,是否被篡改,是否为非法使用以及是否与硬件兼容。
Description
技术领域
本发明属于计算机软件***领域,具体涉及一种基于更新安全机制的UEFI***更新方法。
背景技术
UEFI(Unified Extensible Firmware Interface)中文译为统一的可扩展固件接口,是Intel提出的用来取代传统BIOS的新一代固件***。UEFI BIOS具有很多上代BIOS所没有的优势,例如包括强大的跨平台兼容性、支持鼠标的图形操作界面、基于模块化的可扩展性以及开发难度的降低等。UEFI具有的这些优势使得UEFIBIOS得到快速发展,已经被越来越多的厂商作为下一代BIOS,预装入出厂设备中。同时UEFI BIOS的快速发展,也带来了一些迫切需要解决的问题,特别是安全方面的问题。UEFI的文件***需要更大的存储空间,所以并不是存储于主板的ROM中,而是在硬盘中隔离出一个小分区作为存储空间。UEFI BIOS这种将文件***保存在硬盘中的方式,虽然提高了性能,但也面临风险。保存在硬盘上的数据极易受到攻击和篡改,尤其是UEFI更新时,由于可以直接从移动存储设备中获取更新文件,对更新文件缺少完整性和可信性的检测机制,更无法保证更新时的安全性。
本方法利用更新安全机制来解决问题。在分发方法中,通过在更新文件之上封装一层可验证其安全性的外层数据,来保证更新文件的完整性、保密性,同时携带与硬件兼容的相关信息;在验证方法中,通过分离外层数据来验证更新文件是否受到篡改、是否为非法使用以及是否与硬件兼容。
为实现上述目地,本发明主要采用以下技术方案。
在分发方法中,通过给更新文件添加数字签名以保证更新文件不被篡改,添加描述信息以保证更新文件不会被用户错误地使用。在验证方法中,通过编写的DXE验证驱动程序,先从更新文件中提取出数字签名验证完整性,然后提取描述信息用来确认适用性。
发明内容
为此本发明的目的是提供一种基于更新安全机制的UEFI***更新方法,包括分发方法和验证方法两部分,在分发方法中通过对更新文件加入描述信息和对更新文件进行签名保证更新文件的适用性、完整性。在验证方法中首先从更新文件中提取出数字签名部分,然后验证签名,最后提取描述信息确认适用性。最后根据验证结果去选择是执行加载更新文件,还是拒绝加载更新文件。
所述的分发方法,其特征在于包括如下步骤:
步骤1.1:在更新文件的末尾加入描述信息,该描述信息用一个3500字节的结构体来存储,该结构体中的每个字段都是字符型数组,具体包含:101字节的公司名称,101字节的发布日期,101字节的版本号,3096字节的此版本改动说明信息,101字节的主板具体型号;
步骤1.2:在更新文件的末尾添加签名,用MD5算法计算更新文件的数字摘要,并采用RSA非对称密钥加密算法,用生成的私钥对更新文件进行签名,生成可以验证文件完整性的数字签名,BIOS开发商把包含公钥的数字证书发布给用户;
所述的验证方法,其功能在UEFI框架中是通过编写一个驱动程序来实现的,该驱动程序类型为遵循UEFI驱动模型的DXE驱动程序,命名为安全性验证DXE驱动程序。验证方法特征在于包括如下步骤:
步骤2.1:安全性验证DXE驱动程序调用UEFI的IO协议扫描移动存储盘,读取更新文件和数字证书;
步骤2.2:从更新文件中提取出数字签名,由于更新文件中的UEFI***文件固定为2M字节,并且描述信息的结构体固定为3500字节,所以可以通过获取更新文件的首地址和两个固定偏移量去提取出数字签名;
步骤2.3:用签名对更新文件进行完整性验证,对更新文件中UEFI***文件和描述信息部分进行MD5计算得到一个数字摘要,然后用数字证书中提供的公钥对签名进行解密,从而获得另外一个数字摘要,最后比较这两个数字摘要是否相同;
步骤2.4:用描述信息进行适用性验证,安全性验证DXE驱动程序读取***的主板型号和当前UEFI***的版本号,然后从描述信息结构体中获取更新文件适应的主板型号和更新文件版本号,最后验证两个主板型号是否匹配,以及更新文件版本号是否比当前运行的版本号高。
本发明与现有技术相比,具有以下明显的优势和有益效果:
根据更新安全机制,在UEFI BIOS文件末尾添加安全保护信息;在UEFI运行阶段,对更新文件进行验证。通过这两个环节,保证了更新文件不受到篡改、不会被非法使用以及保证了与硬件的兼容性,从而填补了UEFI缺少安全机制的空白。
附图说明
图1更新文件结构变化图;
图2将描述信息写入更新文件;
图3保存描述信息的结构体图;
图4保存在更新文件中的签名;
图5更新安全机制验证方法执行流程图。
具体实施方式
为使本发明的上述目的、特征和优点能更加明显易懂,下面将结合本发明的附图,对本发明实施例中的技术方案进行完整、详细的描述。以下描述的实施例只是本发明的部分实施例,并不是全部的实施例。基于本发明的实施例,本领域中的普通技术人员在没有做出创造性劳动的前提下获得的所有其他实施例,均在本发明的保护范围中。
对于安全机制中的分发方法,其主要是为更新文件添加一些信息,这些信息在验证方法中被用来验证更新文件的安全性。在分发方法中,给更新文件添加信息的过程如图1所示,具体步骤如下所示:
步骤1.1:需要对更新文件添加文件描述信息,如图2所示,用户通过DOS界面输入描述信息,保存在一个大小为3500字节的结构体Descrinfo中,该结构体包含的5个字符串类型的成员变量,分别对应保存5条关键描述信息,具体结构图如图3所示。
步骤1.2:通过用户输入的文件路径,导入需要签名的更新文件,利用MD5算法计算出它的数字摘要,然后用RSA非对称密钥加密算法生成的私钥对数字摘要签名,从而生成数字签名。最后将生成的数字签名写入更新文件的末尾,把包含公钥的数字证书发布出去。图4为用Edit Plus的十六进制方式打开的更新文件的尾部内容,被矩形选中部分正是增加的签名部分。
对于安全机制中的验证方法,其运行流程与分发方法互逆的,如图1所示。在这里采用了遵循UEFI驱动模型的DXE驱动程序来设计验证部分。具体的验证流程如图5,步骤如下所示:
步骤2.1:扫描移动存储盘,读取其中的更新文件和数字证书。
步骤2.2:从更新文件中提取出UEFI***文件、描述信息和摘要。对更新文件进行提取的原理是UEFI***文件和描述信息都是固定大小的,其中UEFI***文件大小为2M字节,描述信息结构体Descrinfo的大小为3500字节。首先获得更新文件的首地址,然后根据两个固定的偏移量,即可提取出UEFI***文件和描述信息,剩余的部分就是签名。把获得的三个部分分别存入按照各自大小申请的内存空间contentBuffer、descrBuffer和sigBuffer中。
步骤2.3:利用签名进行完整性验证。对更新文件中包含UEFI***文件和描述信息的部分进行MD5算法计算得到数字摘要M1,用数字证书中提供的公钥对签名进行解密获得数字摘要M2,比较M1和M2是否相等。若不相等,则说明完整性遭到破坏,不再进行以下步骤,到此结束。
步骤2.4:利用描述信息进行适用性验证。从descrBuffer中获得描述信息结构体Descrinfo中的此版本更新文件适用的主板型号BoardID和此版本更新文件的版本号BiosID。然后获得计算机***的主板型号BoardID1和当前运行的UEFI***的版本号BiosID1。对获得的两对值进行比较,如果BoardID不能匹配BoardID1或者版本号BiosID比BiosID1低,则不符合适用性,不再进行更新,到此结束。
Claims (1)
1.一种基于更新安全机制的UEFI***更新方法,其特征在于包括分发和验证方法两部分;在分发方法中通过对更新文件加入描述信息和对更新文件进行签名保证更新文件的适用性、完整性,在验证方法中首先从更新文件中提取出数字签名部分,然后验证签名,最后提取描述信息确认适用性,最后根据验证结果去选择是执行加载更新文件,还是拒绝加载更新文件;
所述的分发方法,其特征在于包括如下步骤:
步骤1.1:在更新文件的末尾加入描述信息,该描述信息用一个3500字节的结构体来存储,该结构体中的每个字段都是字符型数组,具体包含:101字节的公司名称,101字节的发布日期,101字节的版本号,3096字节的此版本改动说明信息,101字节的主板具体型号;
步骤1.2:在更新文件的末尾添加签名,用MD5算法计算更新文件的数字摘要,并采用RSA非对称密钥加密算法,用生成的私钥对更新文件进行签名,生成可以验证文件完整性的数字签名,BIOS开发商把包含公钥的数字证书发布给用户;
所述的验证方法,其功能在UEFI框架中是通过编写一个驱动程序来实现的,该驱动程序类型为遵循UEFI驱动模型的DXE驱动程序,命名为安全性验证DXE驱动程序,验证方法特征在于包括如下步骤:
步骤2.1:安全性验证DXE驱动程序调用UEFI的IO协议扫描移动存储盘,读取更新文件和数字证书;
步骤2.2:从更新文件中提取出数字签名,由于更新文件中的UEFI***文件固定为2M字节,并且描述信息的结构体固定为3500字节,所以可以通过获取更新文件的首地址和两个固定偏移量去提取出数字签名;
步骤2.3:用签名对更新文件进行完整性验证,对更新文件中UEFI***文件和描述信息部分进行MD5计算得到一个数字摘要,然后用数字证书中提供的公钥对签名进行解密,从而获得另外一个数字摘要,最后比较这两个数字摘要是否相同;
步骤2.4:用描述信息进行适用性验证,安全性验证DXE驱动程序读取***的主板型号和当前UEFI***的版本号,然后从描述信息结构体中获取更新文件适应的主板型号和更新文件版本号,最后验证两个主板型号是否匹配,以及更新文件版本号是否比当前运行的版本号高。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410844498.XA CN104573527A (zh) | 2014-12-30 | 2014-12-30 | 一种基于更新安全机制的uefi***更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410844498.XA CN104573527A (zh) | 2014-12-30 | 2014-12-30 | 一种基于更新安全机制的uefi***更新方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104573527A true CN104573527A (zh) | 2015-04-29 |
Family
ID=53089565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410844498.XA Pending CN104573527A (zh) | 2014-12-30 | 2014-12-30 | 一种基于更新安全机制的uefi***更新方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104573527A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106934289A (zh) * | 2015-12-30 | 2017-07-07 | 北京展讯高科通信技术有限公司 | 校验及形成签名映像的方法 |
CN106960155A (zh) * | 2017-03-28 | 2017-07-18 | 联想(北京)有限公司 | 一种基本输入输出***的更新方法和装置 |
CN107193611A (zh) * | 2017-05-31 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种集群***的软件升级方法和*** |
CN108196863A (zh) * | 2018-01-15 | 2018-06-22 | 深圳市共进电子股份有限公司 | 一种固件的升级方法、装置、终端及存储介质 |
CN108228219A (zh) * | 2018-02-28 | 2018-06-29 | 郑州云海信息技术有限公司 | 一种带外刷新bios时验证bios合法性的方法及装置 |
CN108256355A (zh) * | 2018-02-28 | 2018-07-06 | 郑州云海信息技术有限公司 | 一种带外刷新bios时验证bios完整性的方法及装置 |
CN108710804A (zh) * | 2018-05-19 | 2018-10-26 | 济南浪潮高新科技投资发展有限公司 | 一种计算机uefi固件的带硬件加密快速更新方法 |
CN108830086A (zh) * | 2018-06-19 | 2018-11-16 | 郑州云海信息技术有限公司 | 一种bios文件升级方法及相关装置 |
CN110298145A (zh) * | 2019-06-28 | 2019-10-01 | 兆讯恒达微电子技术(北京)有限公司 | 一种基于公开密钥密码算法的固件程序装载保护方法 |
CN111125725A (zh) * | 2019-11-22 | 2020-05-08 | 苏州浪潮智能科技有限公司 | 一种镜像校验的加解密方法、设备及介质 |
CN112925543A (zh) * | 2021-02-25 | 2021-06-08 | 广东电网有限责任公司电力调度控制中心 | 一种密码芯片嵌入式应用升级方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101281468A (zh) * | 2007-04-06 | 2008-10-08 | 三星电子株式会社 | 生成固件更新文件和更新固件的方法和设备 |
CN102279914A (zh) * | 2011-07-13 | 2011-12-14 | 中国人民解放军海军计算技术研究所 | 一种uefi可信支撑***及其控制方法 |
-
2014
- 2014-12-30 CN CN201410844498.XA patent/CN104573527A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101281468A (zh) * | 2007-04-06 | 2008-10-08 | 三星电子株式会社 | 生成固件更新文件和更新固件的方法和设备 |
CN102279914A (zh) * | 2011-07-13 | 2011-12-14 | 中国人民解放军海军计算技术研究所 | 一种uefi可信支撑***及其控制方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106934289A (zh) * | 2015-12-30 | 2017-07-07 | 北京展讯高科通信技术有限公司 | 校验及形成签名映像的方法 |
CN106960155A (zh) * | 2017-03-28 | 2017-07-18 | 联想(北京)有限公司 | 一种基本输入输出***的更新方法和装置 |
CN107193611A (zh) * | 2017-05-31 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种集群***的软件升级方法和*** |
CN108196863A (zh) * | 2018-01-15 | 2018-06-22 | 深圳市共进电子股份有限公司 | 一种固件的升级方法、装置、终端及存储介质 |
CN108228219A (zh) * | 2018-02-28 | 2018-06-29 | 郑州云海信息技术有限公司 | 一种带外刷新bios时验证bios合法性的方法及装置 |
CN108256355A (zh) * | 2018-02-28 | 2018-07-06 | 郑州云海信息技术有限公司 | 一种带外刷新bios时验证bios完整性的方法及装置 |
CN108710804A (zh) * | 2018-05-19 | 2018-10-26 | 济南浪潮高新科技投资发展有限公司 | 一种计算机uefi固件的带硬件加密快速更新方法 |
CN108830086A (zh) * | 2018-06-19 | 2018-11-16 | 郑州云海信息技术有限公司 | 一种bios文件升级方法及相关装置 |
CN110298145A (zh) * | 2019-06-28 | 2019-10-01 | 兆讯恒达微电子技术(北京)有限公司 | 一种基于公开密钥密码算法的固件程序装载保护方法 |
CN111125725A (zh) * | 2019-11-22 | 2020-05-08 | 苏州浪潮智能科技有限公司 | 一种镜像校验的加解密方法、设备及介质 |
CN112925543A (zh) * | 2021-02-25 | 2021-06-08 | 广东电网有限责任公司电力调度控制中心 | 一种密码芯片嵌入式应用升级方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104573527A (zh) | 一种基于更新安全机制的uefi***更新方法 | |
CN111512591B (zh) | 可跟踪密钥区块链账本 | |
CN105391717A (zh) | 一种apk签名认证方法及其*** | |
US8799662B2 (en) | Method and apparatus for validating the integrity of installer files prior to installation | |
US8560823B1 (en) | Trusted modular firmware update using digital certificate | |
CN101436141B (zh) | 基于数字签名的固件升级、固件封装方法与装置 | |
US7711960B2 (en) | Mechanisms to control access to cryptographic keys and to attest to the approved configurations of computer platforms | |
CN102722665B (zh) | 基于tpm/vtpm的可信程序列表生成方法及*** | |
US9465943B2 (en) | Extension of a platform configuration register with a known value | |
CN112507328B (zh) | 一种文件签名方法、计算设备及存储介质 | |
CN103858130A (zh) | 管理权限方法、装置及终端 | |
US8839446B2 (en) | Protecting archive structure with directory verifiers | |
CN103914658A (zh) | 终端设备的安全启动方法及终端设备 | |
CN104317625A (zh) | 一种apk文件的动态加载方法 | |
CN104462965A (zh) | 应用程序完整性验证方法及网络设备 | |
US8745616B1 (en) | Systems and methods for providing digital certificates that certify the trustworthiness of digitally signed code | |
WO2009157133A1 (ja) | 情報処理装置、情報処理方法、これらを実現するコンピュータプログラム及び集積回路 | |
CN106778283A (zh) | 一种***分区关键数据的保护方法及*** | |
CN110795126A (zh) | 一种固件安全升级*** | |
CN108229144B (zh) | 一种应用程序的验证方法、终端设备及存储介质 | |
CN105706099A (zh) | 软件更新装置及软件更新程序 | |
CN104426658A (zh) | 对移动终端上的应用进行身份验证的方法及装置 | |
CN110018841A (zh) | 一种uefi bios升级方法、***及相关装置 | |
KR20160020294A (ko) | 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템 | |
WO2022078366A1 (zh) | 应用保护方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150429 |
|
RJ01 | Rejection of invention patent application after publication |