CN106484477B - 安全的软件下载与启动方法 - Google Patents

安全的软件下载与启动方法 Download PDF

Info

Publication number
CN106484477B
CN106484477B CN201610885227.8A CN201610885227A CN106484477B CN 106484477 B CN106484477 B CN 106484477B CN 201610885227 A CN201610885227 A CN 201610885227A CN 106484477 B CN106484477 B CN 106484477B
Authority
CN
China
Prior art keywords
download
program
equipment
download instruction
field
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
CN201610885227.8A
Other languages
English (en)
Other versions
CN106484477A (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.)
Shanghai Huahong Integrated Circuit Co Ltd
Original Assignee
Shanghai Huahong Integrated Circuit 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 Shanghai Huahong Integrated Circuit Co Ltd filed Critical Shanghai Huahong Integrated Circuit Co Ltd
Priority to CN201610885227.8A priority Critical patent/CN106484477B/zh
Publication of CN106484477A publication Critical patent/CN106484477A/zh
Application granted granted Critical
Publication of CN106484477B publication Critical patent/CN106484477B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Landscapes

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

Abstract

本发明公开了一种安全的软件下载与启动方法,包括如下步骤:步骤1、采用硬件逻辑电路校验由软件实现的启动程序;步骤2、由所述启动程序或者硬件逻辑电路读取下载标志字段;步骤3、如果所述下载标志字段显示目前设备处于可下载应用程序阶段,则启动程序校验下载指令处理程序,然后执行下载指令处理程序;如果所述下载标志字段显示目前设备处于不可下载应用程序阶段,则启动程序校验应用程序,然后执行应用程序。本发明能够抵御攻击者采用不同手段对设备进行的攻击,提高设备的安全性。

Description

安全的软件下载与启动方法
技术领域
本发明涉及安全芯片设计技术领域,特别是涉及一种安全的软件下载与启动方法。
背景技术
攻击者可以通过物理攻击手段改写存储器中的程序从而达到非法目的。这种攻击一般在设备关机状态下进行。
另外,设备在生产后,一般都需要根据各个用户的个性化需求,使用不同的应用程序。这些应用程序都是存储在设备的非易失性存储器中。这就意味着设备在生产后是会有一个下载通道供用户下载应用程序的。
这种下载通道同样存在被攻击者利用来达到下载非法程序,破坏设备的安全性的目的。
如何防止这些攻击手段,使得设备更加安全,就是本发明所要解决的问题。
发明内容
本发明要解决的技术问题是提供一种安全的软件下载与启动方法,能够抵御攻击者采用不同手段对设备进行的攻击,提高设备的安全性。
为解决上述技术问题,本发明的安全的软件下载与启动方法,包括如下步骤:
步骤1、采用硬件逻辑电路校验由软件实现的启动程序;
步骤2、由所述启动程序或硬件逻辑电路读取下载标志字段;
步骤3、如果所述下载标志字段显示目前设备处于可下载应用程序阶段,则启动程序校验下载指令处理程序,然后执行下载指令处理程序;
如果所述下载标志字段显示目前设备处于不可下载应用程序阶段,则启动程序校验应用程序,然后执行应用程序。
所述安全的软件下载与启动方法采用的另一方案,包括如下步骤:
步骤A、硬件逻辑电路读取下载标志字段;
步骤B、所述硬件逻辑电路校验由软件实现的启动程序;
步骤C、如果所述下载标志字段显示目前设备处于可下载应用程序阶段,则启动程序校验下载指令处理程序,然后执行下载指令处理程序;
如果所述下载标志字段显示目前设备处于不可下载应用程序阶段,则启动程序校验应用程序,然后执行应用程序。
采用本发明的方法,采用硬件逻辑电路来校验由软件实现的启动程序,能够保证启动程序没有被攻击者篡改。这是由于硬件逻辑电路相比软件程序而言,不容易被攻击者攻击。
采用本发明的方法,使得攻击者难以通过攻击手段来利用设备原有的下载指令处理程序来实施攻击获取设备的机密信息,启动过程中的对运行程序的校验,也使得攻击者在设备关机状态下对设备程序的篡改在启动过程中会被校验出来,而不会被执行。这些都使得设备更加安全。
附图说明
下面结合附图与具体实施方式对本发明作进一步详细的说明:
图1是所述安全的软件下载与启动方法流程示意图;
图2是图1中下载指令处理程序流程示意图。
具体实施方式
所述安全的软件下载与启动方法,包括硬件校验程序,软件启动程序,下载指令处理程序。该方法可以实现安全的软件下载和自启动。使用该方法的设备在非易失性存储器中存储着下载标志字段;也存储着启动程序,下载程序和应用程序各自的长度字段和自校验字段。
参见图1,应用所述安全的软件下载与启动方法的设备在启动后,首先由硬件逻辑电路来校验由软件实现的启动程序。这是由于硬件逻辑电路相比软件程序而言,不容易被攻击者攻击,所以由硬件逻辑电路先来校验软件实现的启动程序,保证启动程序没有被攻击者篡改。然后启动程序或者硬件逻辑电路去读下载标志字段。如果是启动程序去读,那么这一步就必须在硬件逻辑电路校验启动程序这一步之后;如果是硬件逻辑电路去读,那么这一步可以和硬件逻辑电路校验启动程序这一步交换次序。这是因为硬件逻辑电路去读的话,这两步的安全性是一样的;而软件启动程序去读的话,启动程序的安全性是由硬件逻辑电路的校验结果保证的,所以次序不能换。
下载标志字段需要多位冗余表示,并且表示可以下载的条件是等于某个固定数,其他都表示不可下载,这样当非易失性存储器受到攻击时,不容易造成安全问题。所谓的安全问题是指,当设备应该处于不能下载应用程序的阶段时,由于受到攻击,使得设备变为可以下载应用程序了。如果采用1比特作为下载标志字段时,受到攻击后,1比特很容易翻转,从而产生安全问题。当采用多比特,比如用32比特表示时,要把32比特攻击成一个特定的数,明显比攻击使1比特翻转来的难很多。
如果读到下载标志字段显示目前设备处于可下载应用程序的阶段,那么启动程序就校验下载指令处理程序,然后执行下载指令处理程序;如果该下载标志字段显示目前的设备处于不可下载应用程序的阶段,那么启动程序就校验应用程序,然后执行应用程序;也就是说在应用程序或者下载指令处理程序被执行前,都是由启动程序校验过的,以此来保证应用程序或者下载指令处理程序没有被攻击者篡改。
对于下载指令处理程序来说,待下载的应用程序是写在下载指令的数据段中来传送过来的。
结合图2所示,首先,下载指令处理程序会启动接收。收到下载指令后,先校验指令格式是否正确。如果下载指令格式不正确的话,就继续等待接收;如果下载指令格式正确的话,就把指令中的数据段依次写入存放程序的非易失性存储器中;然后再看下载指令中的最后数据标志字段是否是最后一次传送数据,如果不是,那么继续启动接收下一条下载指令,如果是最后的一次传送数据,那么就改写应用程序的长度字段、自校验字段和下载标志字段,最后下载指令处理程序自毁。在下载完后下载指令处理程序自毁,这可以使得攻击者无法再通过攻击手段利用这个下载指令处理程序下载非法程序。自毁可以通过把程序中的某段代码改写成无效代码来实现,也可以通过把下载指令处理程序的自校验字段写入错误值来实现。
上述硬件逻辑电路校验软件实现的启动程序,启动程序校验下载指令处理程序,启动程序校验应用程序;这些描述里面的校验功能,具体实现可以是从固定地址开始,先读待校验程序的长度字段,然后根据长度字段再读一遍长度字段,再读整个程序段,在读的同时会计算校验值,读完后,计算出的校验值再与存在程序段末尾的校验字段比较是否一致,如果一致,校验就通过,否则校验就不通过。校验时,要再读一遍长度字段是为了把长度字段也包含进待校验数据中,这就能保护长度字段如果被攻击者篡改也能被校验出来。
另外,下载指令中包含数据次序字段,数据次序字段表示本次下载指令中的数据是第几个数据,在校验指令格式是否正确的时候,也要检查数据次序字段是否正确,如果次序字段显示本次数据不是紧接着要接收的,这同样被认为是指令格式不正确。
下载标志字段,只有在设备生产时才能写成表示可下载的固定值,并且在写成固定值之前需要执行全擦操作,把设备的存储器中的数据清空;在生产后就只能从这个固定值写为其它值了。这由设备的存储器权限管理模块实现;由设备的外部管脚的电平来表示设备是处于生产阶段还是生产后的阶段;在生产的最后一步,物理地,不可逆地破坏这个外部管脚。这样才能保证标志字段在生产后不被从不可下载的状态改为可下载状态,从而被攻击者利用下载非法程序。在写之前需要执行全擦操作,把设备的存储器中的数据清空,也是为了万一被攻击者攻击成可下载状态了,那么也能保护存储器中的机密数据不被攻击者获得。
启动程序的长度字段和自校验字段在生产后是不能被改写的,应用程序的长度字段和自校验字段在下载标志字段表示不可下载的时候,就不能被改写了,这由设备的存储器权限管理模块实现。这些都是为了防止攻击者篡改这些字段,从而使得启动程序对应用程序的校验失效。
通过以上的种种措施,互相配合,特别是下载完成后自毁下载指令处理程序这一点,使得攻击者难以通过攻击手段来利用设备原有的下载指令处理程序来实施攻击获取设备的机密信息,启动过程中的对运行程序的校验也使得攻击者在设备关机状态下对设备程序的篡改在启动过程中会被校验出来而不会被执行。这些都使得设备更加安全。
以上通过具体实施方式对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。

Claims (12)

1.一种安全的软件下载与启动方法,其特征在于,包括如下步骤:
步骤1、采用硬件逻辑电路校验由软件实现的启动程序;
步骤2、由所述启动程序或者硬件逻辑电路读取下载标志字段;
步骤3、如果所述下载标志字段显示目前设备处于可下载应用程序阶段,则启动程序校验下载指令处理程序,然后执行下载指令处理程序;
如果所述下载标志字段显示目前设备处于不可下载应用程序阶段,则启动程序校验应用程序,然后执行应用程序。
2.一种安全的软件下载与启动方法,其特征在于,包括如下步骤:
步骤A、硬件逻辑电路读取下载标志字段;
步骤B、所述硬件逻辑电路校验由软件实现的启动程序;
步骤C、如果所述下载标志字段显示目前设备处于可下载应用程序阶段,则启动程序校验下载指令处理程序,然后执行下载指令处理程序;
如果所述下载标志字段显示目前设备处于不可下载应用程序阶段,则启动程序校验应用程序,然后执行应用程序。
3.如权利要求1或2所述的方法,其特征在于:待下载的应用程序写在下载指令的数据段中,然后进行传输;具体实现的方法如下,
步骤a、所述下载指令处理程序启动接收;收到下载指令后,先校验指令格式是否正确;如果下载指令格式不正确,则继续等待接收;如果下载指令格式正确,则将下载指令中的数据段依次写入存放程序的非易失性存储器中;
步骤b、查看下载指令中的最后数据标志字段是否为最后一次传送数据;如果不是,则继续启动接收下一条下载指令;如果是最后一次传送数据,则改写应用程序的长度字段、自校验字段和下载标志字段,最后下载指令处理程序自毁。
4.如权利要求3所述的方法,其特征在于:所述下载指令包含数据次序字段,该数据次序字段表示本次下载指令中的数据是第几个数据,当所述下载指令处理程序校验指令格式是否正确时,需要检查数据次序字段是否正确,如果数据次序字段显示本次数据不是紧接着要接收的,则同样被认为是指令格式不正确。
5.如权利要求3所述的方法,其特征在于:所述下载指令处理程序自毁,通过将程序中的某段代码改写成无效代码实现,或者通过将下载指令处理程序的自校验字段写入错误值实现。
6.如权利要求3所述的方法,其特征在于:所述下载标志字段,采用多位冗余表示,并且表示可以下载的条件是等于某个固定数,其他都表示不可下载。
7.如权利要求1或2所述的方法,其特征在于:所述下载标志字段,只有在设备生产时才能写成表示可下载的固定值,并且在写成固定值之前需要执行全擦操作,把设备的存储器中的数据清空;在生产后则只能从所述固定值写为其它值。
8.如权利要求7所述的方法,其特征在于:由设备的存储器权限管理模块确定设备所处的阶段;由设备的外部管脚的电平来表示设备是处于生产阶段还是生产后的阶段;在生产的最后一步,物理地,不可逆地破坏该外部管脚。
9.如权利要求1或2所述的方法,其特征在于:所述启动程序的长度字段和自校验字段在生产后不能被改写。
10.如权利要求9所述的方法,其特征在于:由设备的存储器权限管理模块确定设备所处的阶段;由设备的外部管脚的电平来表示设备是处于生产阶段还是生产后的阶段;在生产的最后一步,物理地,不可逆地破坏该外部管脚。
11.如权利要求1或2所述的方法,其特征在于:应用程序的长度字段和自校验字段在所述下载标志字段表示不可下载时,则不能被改写。
12.如权利要求1或2所述的方法,其特征在于:所述校验从固定地址开始,先读待校验程序的长度字段,然后根据长度字段再读一遍长度字段;之后读整个程序段,这时在读的同时计算校验值,读完后,将计算出的校验值与存在程序段末尾的校验字段进行比较,如果一致,则校验通过,否则校验不通过。
CN201610885227.8A 2016-10-11 2016-10-11 安全的软件下载与启动方法 Active CN106484477B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610885227.8A CN106484477B (zh) 2016-10-11 2016-10-11 安全的软件下载与启动方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610885227.8A CN106484477B (zh) 2016-10-11 2016-10-11 安全的软件下载与启动方法

Publications (2)

Publication Number Publication Date
CN106484477A CN106484477A (zh) 2017-03-08
CN106484477B true CN106484477B (zh) 2019-11-12

Family

ID=58269262

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610885227.8A Active CN106484477B (zh) 2016-10-11 2016-10-11 安全的软件下载与启动方法

Country Status (1)

Country Link
CN (1) CN106484477B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108513169B (zh) * 2018-04-04 2021-09-24 海信视像科技股份有限公司 一种芯片下载启动程序的方法、芯片及液晶电视

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001195247A (ja) * 2000-01-07 2001-07-19 Nec Corp ソフトウェアの安全性を検証し保証するシステム及び方法
CN1897515A (zh) * 2006-06-29 2007-01-17 中兴通讯股份有限公司 一种保证设备软件在线下载可靠性的方法
CN101122936A (zh) * 2007-09-21 2008-02-13 武汉大学 一种可信机制上的嵌入式平台引导
CN101965570A (zh) * 2008-02-29 2011-02-02 先进微装置公司 具有安全启动机制的计算机***

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001195247A (ja) * 2000-01-07 2001-07-19 Nec Corp ソフトウェアの安全性を検証し保証するシステム及び方法
CN1897515A (zh) * 2006-06-29 2007-01-17 中兴通讯股份有限公司 一种保证设备软件在线下载可靠性的方法
CN101122936A (zh) * 2007-09-21 2008-02-13 武汉大学 一种可信机制上的嵌入式平台引导
CN101965570A (zh) * 2008-02-29 2011-02-02 先进微装置公司 具有安全启动机制的计算机***

Also Published As

Publication number Publication date
CN106484477A (zh) 2017-03-08

Similar Documents

Publication Publication Date Title
CN111095213B (zh) 嵌入式程序的安全引导方法、装置、设备及存储介质
US10509568B2 (en) Efficient secure boot carried out in information processing apparatus
US11829479B2 (en) Firmware security verification method and device
US20210149681A1 (en) Secure Firmware Management with Hierarchical Boot Sequence using Last Known Good Firmware
US20090260084A1 (en) Method for verifying conformity of the logical content of a computer appliance with a reference content
EP2088529A2 (en) System and method for securing and executing a flash routine
US10846421B2 (en) Method for protecting unauthorized data access from a memory
CN102968392A (zh) 防止存储器转储的微处理器
CN106484477B (zh) 安全的软件下载与启动方法
EP1739587A1 (en) Portable electronic apparatus and secured data output method therefor
US11269986B2 (en) Method for authenticating a program and corresponding integrated circuit
CN106935266B (zh) 从存储器中读取配置信息的控制方法、装置和***
CN108537066A (zh) 安全代码跳转和执行选通
JP4701260B2 (ja) 情報処理装置、情報処理方法、および、情報処理プログラム
US10242183B2 (en) Method of executing a program by a processor and electronic entity comprising such a processor
US20240012903A1 (en) Method for Executing a Program on a Data Processing Device
Francillon et al. Comments on Refutation of On the difficulty of software-based attestation of embedded devices
CN109614807B (zh) 一种敏感信息的保护方法及设备及可读存储介质
EP3889816A1 (en) Method for securely processing digital information in a secure element
US7822953B2 (en) Protection of a program against a trap
JP6969114B2 (ja) Icカード、icカードの起動処理方法、およびicカードの起動処理プログラム
Fukami et al. Keyless Entry: Breaking and Entering eMMC RPMB with EMFI
CN118312966A (zh) 一种可信启动***以及可信启动方法
CN116204867A (zh) 升级签名固件的方法、电子设备和存储介质
CN116257839A (zh) 升级签名固件的方法、电子设备和存储介质

Legal Events

Date Code Title Description
C06 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