CN113268784B - 一种嵌入式设备的自毁方法和存储设备 - Google Patents

一种嵌入式设备的自毁方法和存储设备 Download PDF

Info

Publication number
CN113268784B
CN113268784B CN202110557737.3A CN202110557737A CN113268784B CN 113268784 B CN113268784 B CN 113268784B CN 202110557737 A CN202110557737 A CN 202110557737A CN 113268784 B CN113268784 B CN 113268784B
Authority
CN
China
Prior art keywords
partition
self
destruction
size
length
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
CN202110557737.3A
Other languages
English (en)
Other versions
CN113268784A (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.)
Rockchip Electronics Co Ltd
Original Assignee
Rockchip Electronics 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 Rockchip Electronics Co Ltd filed Critical Rockchip Electronics Co Ltd
Priority to CN202110557737.3A priority Critical patent/CN113268784B/zh
Publication of CN113268784A publication Critical patent/CN113268784A/zh
Application granted granted Critical
Publication of CN113268784B publication Critical patent/CN113268784B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • G06F21/79Protecting 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 in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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/4401Bootstrapping
    • 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
    • G06F9/4451User profiles; Roaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及设备自毁领域,特别涉及一种嵌入式设备的自毁方法和存储设备。所述一种嵌入式设备的自毁方法,包括步骤S101:响应自毁模式指令;步骤S102:设备重启,启动引导程序读取引导程序通信块中的自毁信息;步骤S103:判断是否满足预设条件,若满足,则执行步骤S104,若不满足,则执行步骤S105或正常引导设备;步骤S104:执行第一预设操作;步骤S105:判断自毁模式是否为安静模式,若是,执行步骤S106,若否,执行步骤S107;步骤S106:执行第二预设操作,自毁完成;步骤S107:执行第三预设操作,自毁完成。通过以上步骤,能够将设备中flash存储介质的所有区域的用户数据(包括加密数据)和固件进行完全、彻底地销毁和破坏,保护用户数据和固件的安全。

Description

一种嵌入式设备的自毁方法和存储设备
技术领域
本发明涉及设备自毁领域,特别涉及一种嵌入式设备的自毁方法和存储设备。
背景技术
在一些特殊场合下,可能需要对一些设备进行自毁。目前常见的设备自毁包括物理自毁和软自毁。
物理自毁通过机械的、光、电磁、化学等方式使得设备或其存储介质在物理上得到破坏,破坏后的设备或其存储介质无法继续使用,该方式自毁速度快。软自毁后的设备,通过重新烧录固件等方式可以将设备重新回收利用,该方式自毁速度较慢。
在针对flash存储介质的软自毁方法中,现有的方法和技术存在如下问题中的一个或多个:
有些自毁方法和技术,自毁时仅设置标志位,然后禁止开机,没有真正销毁存储介质中的数据,存在数据和固件安全风险。
有些自毁方法和技术,自毁时仅销毁密钥,没有对存储器中的实际数据进行销毁,存在数据被破解风险。加密只加密用户数据,无法保护设备中固件(即软件)。
有些自毁方法和技术,自毁时仅破坏分区文件系统或者重建文件系统(即快速格式化),没有对数据进行完全彻底的删除,存在数据被盗风险。或者针对文件和文件夹的方式销毁,无法破坏分区文件系统。
有些自毁方法和技术,只销毁部分用户数据(或业务数据),没有对所有用户数据(或用户数据)进行彻底销毁,同时也没有对存储介质中的固件(软件)进行真正销毁,用户数据和固件存在安全风险。
有些自毁方法和技术,需要借助专门硬件或额外硬件投入,成本增加。
有些自毁方法和技术,没有对整块存储介质进行破坏,或者只破坏存储介质中的设备固件,使设备无法开机,但是存在拆机后用户数据被盗风险;或者只破坏用户数据,无法保护设备中固件(即软件)。
现有的方法和技术,即使固件和数据都破坏,通常也只破坏用户可见存储介质区域,对存储介质中隐藏的区域或者需要特殊权限的区域则无法破坏,如eMMC的RPMB、BOOT区域。
现有的方法和技术,在对实际数据进行自毁时,针对同一存储介质,通常对数据无差别对待,即对存储介质中的数据再自毁时无差别对待。而在实际的设备销毁过程中,存储介质不同部分数据的重要性是有区别的。
故此如何提供一种自毁方法,可以对设备存储介质的所有区域和用户数据和固件进行完全、彻底地销毁和破坏成了亟需解决的技术问题。
发明内容
为此,需要提供一种嵌入式设备的自毁方法,用以解决现有技术无法对设备存储介质的所有区域和用户数据和固件进行完全、彻底地销毁和破坏的技术问题,具体技术方案如下:
一种嵌入式设备的自毁方法,包括步骤:
步骤S101:响应自毁模式指令,进入步骤S102;
步骤S102:设备重启,启动引导程序读取引导程序通信块中的自毁信息,进入步骤S103;
步骤S103:判断是否满足预设条件,所述预设条件包括但不限于:自毁信息中包含自毁指令且设备的存储介质为eMMC且存在可信安全操作系统,若满足预设条件,则执行步骤S104,若不满足预设条件,则执行步骤S105或正常引导设备;
步骤S104:执行第一预设操作,进入步骤S105;
步骤S105:判断自毁模式是否为安静模式,若是,则执行步骤S106,若否,则执行步骤S107;
步骤S106:执行第二预设操作,自毁完成;
步骤S107:执行第三预设操作,自毁完成。
进一步的,所述“响应自毁模式指令”前,还包括步骤:
设置引导程序通信块中的自毁信息;
所述自毁信息包括但不限于以下字段:自毁指令、自毁模式、自毁配置文件的路径、分区优先擦除的区域大小;
所述自毁模式包括但不限于:安静模式、提示模式;
所述自毁配置文件包括但不限于:优先模式、数据分区列表、固件分区列表;
所述优先模式包括但不限于:数据优先、固件优先;
所述数据分区列表中分区按优先级排列,所述固件分区列表中分区按优先级排列;
所述“启动引导程序读取引导程序通信块中的自毁信息”,具体还包括步骤:若读取到的自毁模式为安静模式,且设备带显示屏,则发出关闭显示屏背光的指令。
进一步的,所述“步骤S104:执行第一预设操作”,具体还包括步骤:
向所述可信安全操作系统中的某一静态可信应用发送一条特殊指令;
可信安全操作系统中的静态可信应用接收到所述特殊指令后,获取eMMC中RPMB区域的大小,并对该RPMB的完整区域从地址0x0开始,执行覆写某一特殊值操作。
进一步的,所述“步骤S106:执行第二预设操作,自毁完成”,具体还包括步骤:
步骤S201:读取设备的分区表信息,所述分区表信息包括但不限于:每个分区的名字、起始地址、长度,进入步骤S202;
步骤S202:对存储介质中的分区表区域执行覆写某一特殊值操作,如果对应的分区表格式包含备份分区表,则同时对所述备份分区表区域执行覆写某一特殊值操作,进入步骤S203;
步骤S203:根据分区表信息,查找启动引导程序所在分区的起始地址和长度,对该存储区域执行写某一特殊值操作,进入步骤S204;
步骤S204:遍历分区表中除启动引导程序所在分区之外的每一个分区,设置第一阶段销毁的介质长度,该长度取值为:分区大小和引导程序通信块中分区优先擦除的区域大小这两者之间的最小值,即:第一阶段销毁的介质长度=min{分区大小,引导程序通信块中分区优先擦除的区域大小},针对遍历到的每一个分区,从该分区的起始地址开始,对长度为第一阶段销毁的介质长度的区域执行写某一特殊值操作,进入步骤S205;
步骤S205:再次遍历分区表中除启动引导程序所在分区之外的每一个分区,设置第二阶段销毁的介质长度,该长度取值为:该分区大小-引导程序通信块中分区优先擦除的区域大小,即:第二阶段销毁的介质长度=该分区大小-引导程序通信块中分区优先擦除的区域大小,针对遍历到的每一个分区,如果第二阶段销毁的介质长度大于0,则从该分区的起始地址+引导程序通信块中分区优先擦除的区域大小开始,到该分区结束,执行写某一特殊值操作,进入步骤S206;
步骤S206:判断设备的存储介质是否是eMMC,若是,则执行步骤S207,若否,跳转至步骤210;
步骤S207:切换到eMMC的boot区域,对该boot区域从起始地址开始,对整块区域执行写某一特殊值操作,进入步骤S208;
步骤S208:判断GPP区域是否为空,若为非空,则执行步骤S209,若为空,则执行步骤S210;
步骤S209:切换到eMMC的GPP区域,对GPP区域从起始地址开始,对整块区域执行写某一特殊值操作,进入步骤S210;
步骤S210:自毁完成,执行关机操作。
进一步的,所述“步骤S107:执行第三预设操作,自毁完成”,具体还包括步骤:
步骤S301:加载运行自毁模式镜像,引导设备进入自毁模式,进入步骤S302;
步骤S302:自毁程序首先读取引导程序通信块中的信息,进入步骤S303;
步骤S303:判断是否存在自毁指令,若存在,进入步骤S304,若不存在,程序退出;
步骤S304:根据需要提示用户设备正在进行自毁,进入步骤S305;
步骤S305:设置:分区优先擦除大小为引导程序通信块中分区优先擦除的区域大小,自毁优先模式为数据优先,自毁数据分区列表添加一个用户数据区,自毁固件分区列表为空,进入步骤S306;
步骤S306:读取引导程序通信块中自毁配置文件的路径,进入步骤S307;
步骤S307:配置文件是否存在,若存在,进入步骤S308,若不存在,跳转至步骤S309:
步骤S308:解析配置文件中的优先模式字段,如果该字段取值非空并且合法,则更新自毁优先模式的取值;解析配置文件中的数据分区列表字段,如果该字段非空,则更新覆盖自毁数据分区列表;解析配置文件中的固件分区列表字段,如果该字段非空,则更新自毁固件分区列表,进入步骤S309;
步骤S309:读取设备的分区表信息,所述分区表信息包括但不限于:每个分区的名字、起始地址、长度,进入步骤S310;
步骤S310:对存储介质中的分区表区域执行覆写某一特殊值操作,如果对应的分区表格式包含备份分区表,则同时对该备份分区表区域执行覆写某一特殊值操作,进入步骤S311;
步骤S311:根据分区表信息,查找启动引导程序所在分区的起始地址和长度,对该存储区域执行写某一特殊值操作,进入步骤S312;
步骤S312:判断自毁优先模式是否为数据优先,若是则执行第四预设操作,自毁完成,如果自毁模式不为数据优先,则执行第五预设操作,自毁完成。
进一步的,所述“则执行第四预设操作,自毁完成”,具体还包括步骤:
步骤S401:遍历自毁数据分区列表,设置第一阶段销毁的介质长度,该长度取值为:分区大小和分区优先擦除大小这两者之间的最小值,即:第一阶段销毁的介质长度=min{分区大小,分区优先擦除大小},针对遍历到的每一个分区,从该分区的起始地址开始,对长度为第一阶段销毁的介质长度的区域执行写某一特殊值操作,进入步骤S402;
步骤S402:再次遍历自毁数据分区列表,设置第二阶段销毁的介质长度,该长度取值为:该分区大小-分区优先擦除大小,即:第二阶段销毁的介质长度=该分区大小-分区优先擦除大小,针对遍历到的每一个分区,如果第二阶段销毁的介质长度大于0,则从该分区的起始地址+分区优先擦除大小开始,到该分区结束,执行写某一特殊值操作,进入步骤S403;
步骤S403:判断设备的存储介质类型是否是eMMC,若是,进入步骤S404,若否,进入步骤S406;
步骤S404:遍历eMMC的boot0和boot1分区设备节点,首先判断对应分区设备节点文件是否存在,如果存在,首先将该对应分区设备节点的强制只读属性设置为0;以读写的方式打开对应的分区设备节点文件,获取该分区设备节点文件的大小,对该分区设备节点文件从地址0x0开始,到该分区结束,执行写某一特殊值操作,进入步骤S405;
步骤S405:遍历eMMC的gp0~gp4分区设备节点,判断对应分区设备节点文件是否存在,如果存在,将该对应分区设备节点的强制只读属性设置为0,以读写的方式打开对应的分区设备节点文件,获取该分区设备节点文件的大小,对该分区设备节点文件从地址0x0开始,到该分区结束,执行写某一特殊值操作,进入步骤S406:
步骤S406:遍历自毁固件分区列表,设置第一阶段销毁的介质长度,该长度取值为:分区大小和分区优先擦除大小这两者之间的最小值,即:第一阶段销毁的介质长度=min{分区大小,分区优先擦除大小},针对遍历到的每一个分区,从该分区的起始地址开始,对长度为第一阶段销毁的介质长度的区域执行写某一特殊值操作,进入步骤S407;
步骤S407:再遍历自毁固件分区列表,设置第二阶段销毁的介质长度,该长度取值为:该分区大小-分区优先擦除大小,即:第二阶段销毁的介质长度=该分区大小-分区优先擦除大小,针对遍历到的每一个分区,如果第二阶段销毁的介质长度大于0,则从该分区的起始地址+分区优先擦除大小开始,到该分区结束,执行写某一特殊值操作,进入步骤S408;
步骤S408:遍历分区表中除启动引导程序所在分区、自毁数据分区列表和自毁固件分区列表这三者之外的每一个分区,设置第一阶段销毁的介质长度,该长度取值为:分区大小和分区优先擦除大小这两者之间的最小值,即:第一阶段销毁的介质长度=min{分区大小,分区优先擦除大小},针对遍历到的每一个分区,从该分区的起始地址开始,对长度为第一阶段销毁的介质长度的区域执行写某一特殊值操作,进入步骤S409;
步骤S409:再次遍历分区表中除启动引导程序所在分区、自毁数据分区列表和自毁固件分区列表这三者之外的每一个分区,设置第二阶段销毁的介质长度,该长度取值为:该分区大小-分区优先擦除大小,即:第二阶段销毁的介质长度=该分区大小-分区优先擦除大小,针对遍历到的每一个分区,如果第二阶段销毁的介质长度大于0,则从该分区的起始地址+分区优先擦除大小开始,到该分区结束,执行写某一特殊值操作,进入步骤S410;
步骤S410:自毁完成,根据需要提示自毁完成,执行关机操作。
进一步的,所述“则执行第五预设操作,自毁完成”,具体还包括步骤:
步骤S501:判断设备的存储介质类型是否是eMMC,若是则执行步骤S502,若否,则跳转至步骤S504;
步骤S502:遍历eMMC的boot0和boot1分区设备节点,判断对应分区设备节点文件是否存在,如果存在,首先将该对应分区设备节点的强制只读属性设置为0,以读写的方式打开对应的分区设备节点文件,获取该分区设备节点文件的大小,对该分区设备节点文件从地址0x0开始,到该分区结束,执行写某一特殊值操作,进入步骤S503;
步骤S503:遍历eMMC的gp0~gp4分区设备节点,判断对应分区设备节点文件是否存在,如果存在,将该对应分区设备节点的强制只读属性设置为0,以读写的方式打开对应的分区设备节点文件,获取该分区设备节点文件的大小,对该分区设备节点文件从地址0x0开始,到该分区结束,执行写某一特殊值操作,进入步骤S504;
步骤S504:遍历自毁固件分区列表,设置第一阶段销毁的介质长度,该长度取值为:分区大小和分区优先擦除大小这两者之间的最小值,即:第一阶段销毁的介质长度=min{分区大小,分区优先擦除大小},针对遍历到的每一个分区,从该分区的起始地址开始,对长度为第一阶段销毁的介质长度的区域执行写某一特殊值操作,进入步骤S505;
步骤S505:再次遍历自毁固件分区列表,设置第二阶段销毁的介质长度,该长度取值为:该分区大小-分区优先擦除大小,即:第二阶段销毁的介质长度=该分区大小-分区优先擦除大小,针对遍历到的每一个分区,如果第二阶段销毁的介质长度大于0,则从该分区的起始地址+分区优先擦除大小开始,到该分区结束,执行写某一特殊值操作,进入步骤S506;
步骤S506:遍历自毁数据分区列表,设置第一阶段销毁的介质长度,该长度取值为:分区大小和分区优先擦除大小这两者之间的最小值,即:第一阶段销毁的介质长度=min{分区大小,分区优先擦除大小},针对遍历到的每一个分区,从该分区的起始地址开始,对长度为第一阶段销毁的介质长度的区域执行写某一特殊值操作,进入步骤S507;
步骤S507:再次遍历自毁数据分区列表,设置第二阶段销毁的介质长度,该长度取值为:该分区大小-分区优先擦除大小,即:第二阶段销毁的介质长度=该分区大小-分区优先擦除大小,针对遍历到的每一个分区,如果第二阶段销毁的介质长度大于0,则从该分区的起始地址+分区优先擦除大小开始,到该分区结束,执行写某一特殊值操作,进入步骤S508;
步骤S508:遍历分区表中除启动引导程序所在分区、自毁固件分区列表和自毁数据分区列表这三者之外的每一个分区,设置第一阶段销毁的介质长度,该长度取值为:分区大小和分区优先擦除大小这两者之间的最小值,即:第一阶段销毁的介质长度=min{分区大小,分区优先擦除大小},针对遍历到的每一个分区,从该分区的起始地址开始,对长度为第一阶段销毁的介质长度的区域执行写某一特殊值操作,进入步骤S509;
步骤S509:再次遍历分区表中除启动引导程序所在分区、自毁固件分区列表和自毁数据分区列表这三者之外的每一个分区,设置第二阶段销毁的介质长度,该长度取值为:该分区大小-分区优先擦除大小,即:第二阶段销毁的介质长度=该分区大小-分区优先擦除大小,针对遍历到的每一个分区,如果第二阶段销毁的介质长度大于0,则从该分区的起始地址+分区优先擦除大小开始,到该分区结束,执行写某一特殊值操作,进入步骤S510;
步骤S510:自毁完成,根据需要提示自毁完成,执行关机操作。
进一步的,所述“启动引导程序读取引导程序通信块中的自毁信息”前,还包括步骤:
引导程序运行,若设备包含可信安全操作系统,则引导运行设备的可信安全操作系统,并使所述可信安全操作系统处于就绪状态。
进一步的,所述设备包括但不限于:使用flash存储介质的嵌入式设备;
所述flash存储介质包括但不限于:NorFlash、NandFlash、SD卡、TF卡、MMC卡、MicroSD、eMMC。
为解决上述技术问题,还提供了一种存储设备,具体技术方案如下:
一种存储设备,其中存储有指令集,所述指令集用于执行:上述提及的任意步骤。
本发明的有益效果是:一种嵌入式设备的自毁方法,包括步骤:步骤S101:响应自毁模式指令,进入步骤S102;步骤S102:设备重启,启动引导程序读取引导程序通信块中的自毁信息,进入步骤S103;步骤S103:判断是否满足预设条件,所述预设条件包括但不限于:自毁信息中包含自毁指令且设备的存储介质为eMMC且存在可信安全操作系统,若满足预设条件,则执行步骤S104,若不满足预设条件,则执行步骤S105或正常引导设备;步骤S104:执行第一预设操作,进入步骤S105;步骤S105:判断自毁模式是否为安静模式,若是,则执行步骤S106,若否,则执行步骤S107;步骤S106:执行第二预设操作,自毁完成;步骤S107:执行第三预设操作,自毁完成。通过以上步骤,能够将设备中flash存储介质的所有区域的用户数据(包括加密数据)和固件进行完全、彻底地销毁和破坏,保护用户数据和固件的安全。且自毁后的设备通过烧录工具重新烧录固件后,设备还能得到重新使用。整个自毁过程不需要借助专门硬件,即无需增加任何额外硬件投入、节约成本、同时操作简单方便。
进一步的,自毁模式包括但不限于:安静模式、提示模式,优先模式包括但不限于:数据优先、固件优先,支持受胁迫的时候秘密触发,满足不同场景的自毁需求。
进一步的,优先自毁分区表和引导程序分区,由于分区表和引导程序分区占用空间小,自毁时速度快,优先保证设备无法开机,在其他分区的销毁过程中,通过层次化的两阶段销毁,第一阶段破坏分区中最前面的关键信息,速度快,第二阶段对各个分区剩余的数据进行完全彻底的销毁。从而实现以最少的时间破坏存储介质中最关键的信息,以便在异常掉电或时间紧迫等场景时,能够对设备做最大的破坏,同时时间足够时又能实现完全彻底地自毁。
进一步的,以上自毁方法能将整块Flash裸片的所有区域的数据进行彻底和完全的销毁,包括对存储介质中隐藏的区域或者需要特殊权限的区域进行彻底和完全的销毁,如eMMC的RPMB、BOOT和GPP区域中数据的销毁;既彻底销毁设备中的用户数据区域(包括加密数据),保证用户数据安全,同时也彻底销毁设备中的固件(程序)区域,保证设备固件不被窃取,同时破坏终端、使其无法开机。
附图说明
图1为具体实施方式所述一种嵌入式设备的自毁方法的流程图1;
图2为具体实施方式所述一种嵌入式设备的自毁方法的流程图2;
图3为具体实施方式所述一种嵌入式设备的自毁方法的流程图3;
图4为具体实施方式所述一种嵌入式设备的自毁方法的流程图4;
图5为具体实施方式所述一种嵌入式设备的自毁方法的流程图5;
图6为具体实施方式所述一种嵌入式设备的自毁方法的整体流程图;
图7为具体实施方式所述一种存储设备的模块示意图。
附图标记说明:
700、存储设备。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
请参阅图1至图6,在本实施方式中,一种嵌入式设备的自毁方法可应用在一种存储设备上,所述设备包括但不限于:使用flash存储介质的嵌入式设备;所述flash存储介质包括但不限于:NorFlash、NandFlash、SD卡、TF卡、MMC卡、MicroSD、eMMC。
在实际的设备中,存储介质不同部分数据的重要性是有区别的,需要差别对待。故此本方案提出的方法对存储器中的数据进行层次化处理,首先销毁分区表和引导程序,在其他分区数据的具体自毁过程中针对主要物理分区执行两阶段销毁,在第一阶段以最少的时间破坏对应分区最关键的信息,同时在第二阶段对分区进行完全彻底的销毁,实现在最短的时间内对flash存储介质中的数据做最大的破坏。
由于分区表和引导程序分区占用空间小,自毁时速度快,优先保证设备无法开机;在其他分区的销毁过程中,通过层次化的两阶段销毁,第一阶段破坏分区中最前面的关键信息,速度快,第二阶段对各个分区剩余的数据进行完全彻底的销毁。从而实现以最少的时间破坏存储介质中最关键的信息,以便在异常掉电或时间紧迫等场景时,能够对设备做最大的破坏,同时时间足够时又能实现完全彻底地自毁。
以下展开说明:
请参阅图1,一种嵌入式设备的自毁方法的具体实施方式如下:
步骤S101:响应自毁模式指令,进入步骤S102;
步骤S102:设备重启,启动引导程序读取引导程序通信块中的自毁信息,进入步骤S103;
步骤S103:判断是否满足预设条件,所述预设条件包括但不限于:自毁信息中包含自毁指令且设备的存储介质为eMMC且存在可信安全操作系统,若满足预设条件,则执行步骤S104,若不满足预设条件,则执行步骤S105或正常引导设备;
步骤S104:执行第一预设操作,进入步骤S105;
步骤S105:判断自毁模式是否为安静模式,若是,则执行步骤S106,若否,则执行步骤S107;
步骤S106:执行第二预设操作,自毁完成;
步骤S107:执行第三预设操作,自毁完成。
需要说明的是,以上步骤S103中预设条件中自毁信息中是否包含自毁指令、设备的存储介质是否为eMMC、是否存在可信安全操作系统,三者的判断可以同时进行,亦可以是任意排序进行,总之当包含自毁指令且存储介质是eMMC且存在可信安全操作系统的时候,就执行步骤S104,若不包含自毁指令,则设备正常引导,若存储介质不是eMMC或不存在可信安全操作系统,则执行步骤S105。
需要说明的是,在本实施方式中,响应自毁模式指令可为:设备通过某个特殊的物理按键、某个特殊号码的来电/短信、某条包含特殊内容的短信、某个特殊应用的某个特殊暗码,来触发设备重启进入自毁模式。
其中步骤S101前,还需要设置引导程序通信块中的自毁信息,引导程序通信块是设备存储介质中的一块存储区域,用于系统和启动引导程序之间的通信。具体如下:
设置引导程序通信块中的自毁信息;
所述自毁信息包括但不限于以下字段:自毁指令(如boot-destroy)、自毁模式、自毁配置文件的路径、分区优先擦除的区域大小;
所述自毁模式包括但不限于:安静模式、提示模式;
所述自毁配置文件包括但不限于:优先模式、数据分区列表、固件分区列表;
所述优先模式包括但不限于:数据优先、固件优先;
所述数据分区列表中分区按优先级排列,其中数据分区列表包含需要销毁的数据分区列表,按优先级重要程度排列,即列表中最前面的分区先销毁。数据分区中存储的是用户数据;
所述固件分区列表中分区按优先级排列;其中固件分区列表包含需要销毁的固件分区列表,按优先级重要程度排列,即列表中最前面的分区先销毁。固件分区存储的是程序。
自毁模式包括但不限于:安静模式、提示模式,优先模式包括但不限于:数据优先、固件优先,支持受胁迫的时候秘密触发,满足不同场景的自毁需求。
所述“启动引导程序读取引导程序通信块中的自毁信息”,具体还包括步骤:若读取到的自毁模式为安静模式,且设备带显示屏,则发出关闭显示屏背光的指令。
所述“启动引导程序读取引导程序通信块中的自毁信息”前,还包括步骤:
引导程序运行,若设备包含可信安全操作系统,则引导运行设备的可信安全操作系统,并使所述可信安全操作系统处于就绪状态。
一种嵌入式设备的自毁方法,包括步骤:步骤S101:响应自毁模式指令,进入步骤S102;步骤S102:设备重启,启动引导程序读取引导程序通信块中的自毁信息,进入步骤S103;步骤S103:判断是否满足预设条件,所述预设条件包括但不限于:自毁信息中包含自毁指令且设备的存储介质为eMMC且存在可信安全操作系统,若满足预设条件,则执行步骤S104,若不满足预设条件,则执行步骤S105或正常引导设备;步骤S104:执行第一预设操作,进入步骤S105;步骤S105:判断自毁模式是否为安静模式,若是,则执行步骤S106,若否,则执行步骤S107;步骤S106:执行第二预设操作,自毁完成;步骤S107:执行第三预设操作,自毁完成。通过以上步骤,能够将设备中flash存储介质的所有区域的用户数据(包括加密数据)和固件进行完全、彻底地销毁和破坏,保护用户数据和固件的安全。且自毁后的设备通过烧录工具重新烧录固件后,设备还能得到重新使用。整个自毁过程不需要借助专门硬件,即无需增加任何额外硬件投入、节约成本、同时操作简单方便。
以上自毁方法能将整块Flash裸片的所有区域的数据进行彻底和完全的销毁,包括对存储介质中隐藏的区域或者需要特殊权限的区域进行彻底和完全的销毁,如eMMC的RPMB、BOOT和GPP区域中数据的销毁;既彻底销毁设备中的用户数据区域(包括加密数据),保证用户数据安全,同时也彻底销毁设备中的固件(程序)区域,保证设备固件不被窃取,同时破坏终端、使其无法开机。
以下会分别对第一预设操作、第二预设操作和第三预设操作展开具体说明。
第一预设操作:
所述“步骤S104:执行第一预设操作”,具体还包括步骤:
向所述可信安全操作系统中的某一静态可信应用(即静态TA)发送一条特殊指令;
可信安全操作系统中的静态可信应用接收到所述特殊指令后,获取eMMC中RPMB区域的大小,并对该RPMB的完整区域从地址0x0开始,执行覆写某一特殊值操作,完全破坏RPMB文件系统。
请参阅图2,第二预设操作:
所述“步骤S106:执行第二预设操作,自毁完成”,具体还包括步骤:
步骤S201:读取设备的分区表信息,所述分区表信息包括但不限于:每个分区的名字、起始地址、长度,进入步骤S202;
步骤S202:对存储介质中的分区表区域执行覆写某一特殊值操作,如果对应的分区表格式包含备份分区表,则同时对所述备份分区表区域执行覆写某一特殊值操作,进入步骤S203;
步骤S203:根据分区表信息,查找启动引导程序所在分区的起始地址和长度,对该存储区域执行写某一特殊值操作,进入步骤S204;
步骤S204:遍历分区表中除启动引导程序所在分区之外的每一个分区,设置第一阶段销毁的介质长度,该长度取值为:分区大小和引导程序通信块中分区优先擦除的区域大小这两者之间的最小值,即:第一阶段销毁的介质长度=min{分区大小,引导程序通信块中分区优先擦除的区域大小},针对遍历到的每一个分区,从该分区的起始地址开始,对长度为第一阶段销毁的介质长度的区域执行写某一特殊值操作,进入步骤S205;
步骤S205:再次遍历分区表中除启动引导程序所在分区之外的每一个分区,设置第二阶段销毁的介质长度,该长度取值为:该分区大小-引导程序通信块中分区优先擦除的区域大小,即:第二阶段销毁的介质长度=该分区大小-引导程序通信块中分区优先擦除的区域大小,针对遍历到的每一个分区,如果第二阶段销毁的介质长度大于0,则从该分区的起始地址+引导程序通信块中分区优先擦除的区域大小开始,到该分区结束,执行写某一特殊值操作,进入步骤S206;
步骤S206:判断设备的存储介质是否是eMMC,若是,则执行步骤S207,若否,跳转至步骤210;
步骤S207:切换到eMMC的boot区域,对该boot区域从起始地址开始,对整块区域执行写某一特殊值操作,进入步骤S208;
步骤S208:判断GPP区域是否为空,若为非空,则执行步骤S209,若为空,则执行步骤S210;
步骤S209:切换到eMMC的GPP区域,对GPP区域从起始地址开始,对整块区域执行写某一特殊值操作,进入步骤S210;
步骤S210:自毁完成,执行关机操作。
上述步骤S201至步骤S210所提及的某一特殊值操作,可以为0x00,步骤S202中的备份分区表可以如GPT。
如图3所示,第三预设操作:
所述“步骤S107:执行第三预设操作,自毁完成”,具体还包括步骤:
步骤S301:加载运行自毁模式镜像,引导设备进入自毁模式,进入步骤S302。即如果引导程序通信块中的自毁模式字段的取值为空,或者为提示模式,则加载运行自毁模式镜像,引导设备进入自毁模式。
步骤S302:自毁程序首先读取引导程序通信块中的信息,进入步骤S303;
步骤S303:判断是否存在自毁指令,若存在,进入步骤S304,若不存在,程序退出;
步骤S304:根据需要提示用户设备正在进行自毁,进入步骤S305;
步骤S305:设置:分区优先擦除大小为引导程序通信块中分区优先擦除的区域大小,自毁优先模式为数据优先,自毁数据分区列表添加一个用户数据区,自毁固件分区列表为空,进入步骤S306;
步骤S306:读取引导程序通信块中自毁配置文件的路径,进入步骤S307;
步骤S307:配置文件是否存在,若存在,进入步骤S308,若不存在,跳转至步骤S309:
步骤S308:解析配置文件中的优先模式字段,如果该字段取值非空并且合法,则更新自毁优先模式的取值;解析配置文件中的数据分区列表字段,如果该字段非空,则更新覆盖自毁数据分区列表;解析配置文件中的固件分区列表字段,如果该字段非空,则更新自毁固件分区列表,进入步骤S309;
步骤S309:读取设备的分区表信息,所述分区表信息包括但不限于:每个分区的名字、起始地址、长度,进入步骤S310;
步骤S310:对存储介质中的分区表区域执行覆写某一特殊值操作,如果对应的分区表格式包含备份分区表,则同时对该备份分区表区域执行覆写某一特殊值操作,进入步骤S311;
步骤S311:根据分区表信息,查找启动引导程序所在分区的起始地址和长度,对该存储区域执行写某一特殊值操作,进入步骤S312;
步骤S312:判断自毁优先模式是否为数据优先,若是则执行第四预设操作,自毁完成,如果自毁模式不为数据优先,则执行第五预设操作,自毁完成。
上述步骤S301至步骤S312所提及的某一特殊值操作,可以为0x00,步骤S310中的备份分区表可以如GPT。
其中自毁模式为数据优先时,对应的是第四预设操作,为固件优先时,对应的是第五预设操作。以下请参阅图4和图5,分别对第四预设操作和第五预设操作展开说明:
如图4所示,第四预设操作:
所述“则执行第四预设操作,自毁完成”,具体还包括步骤:
步骤S401:遍历自毁数据分区列表,设置第一阶段销毁的介质长度,该长度取值为:分区大小和分区优先擦除大小这两者之间的最小值,即:第一阶段销毁的介质长度=min{分区大小,分区优先擦除大小},针对遍历到的每一个分区,从该分区的起始地址开始,对长度为第一阶段销毁的介质长度的区域执行写某一特殊值操作,进入步骤S402;
步骤S402:再次遍历自毁数据分区列表,设置第二阶段销毁的介质长度,该长度取值为:该分区大小-分区优先擦除大小,即:第二阶段销毁的介质长度=该分区大小-分区优先擦除大小,针对遍历到的每一个分区,如果第二阶段销毁的介质长度大于0,则从该分区的起始地址+分区优先擦除大小开始,到该分区结束,执行写某一特殊值操作,进入步骤S403;
步骤S403:判断设备的存储介质类型是否是eMMC,若是,进入步骤S404,若否,进入步骤S406;
步骤S404:遍历eMMC的boot0和boot1分区设备节点,首先判断对应分区设备节点文件是否存在,如果存在,首先将该对应分区设备节点的强制只读属性设置为0;以读写的方式打开对应的分区设备节点文件,获取该分区设备节点文件的大小,对该分区设备节点文件从地址0x0开始,到该分区结束,执行写某一特殊值操作,进入步骤S405;
步骤S405:遍历eMMC的gp0~gp4分区设备节点,判断对应分区设备节点文件是否存在,如果存在,将该对应分区设备节点的强制只读属性设置为0,以读写的方式打开对应的分区设备节点文件,获取该分区设备节点文件的大小,对该分区设备节点文件从地址0x0开始,到该分区结束,执行写某一特殊值操作,进入步骤S406:
步骤S406:遍历自毁固件分区列表,设置第一阶段销毁的介质长度,该长度取值为:分区大小和分区优先擦除大小这两者之间的最小值,即:第一阶段销毁的介质长度=min{分区大小,分区优先擦除大小},针对遍历到的每一个分区,从该分区的起始地址开始,对长度为第一阶段销毁的介质长度的区域执行写某一特殊值操作,进入步骤S407;
步骤S407:再遍历自毁固件分区列表,设置第二阶段销毁的介质长度,该长度取值为:该分区大小-分区优先擦除大小,即:第二阶段销毁的介质长度=该分区大小-分区优先擦除大小,针对遍历到的每一个分区,如果第二阶段销毁的介质长度大于0,则从该分区的起始地址+分区优先擦除大小开始,到该分区结束,执行写某一特殊值操作,进入步骤S408;
步骤S408:遍历分区表中除启动引导程序所在分区、自毁数据分区列表和自毁固件分区列表这三者之外的每一个分区,设置第一阶段销毁的介质长度,该长度取值为:分区大小和分区优先擦除大小这两者之间的最小值,即:第一阶段销毁的介质长度=min{分区大小,分区优先擦除大小},针对遍历到的每一个分区,从该分区的起始地址开始,对长度为第一阶段销毁的介质长度的区域执行写某一特殊值操作,进入步骤S409;
步骤S409:再次遍历分区表中除启动引导程序所在分区、自毁数据分区列表和自毁固件分区列表这三者之外的每一个分区,设置第二阶段销毁的介质长度,该长度取值为:该分区大小-分区优先擦除大小,即:第二阶段销毁的介质长度=该分区大小-分区优先擦除大小,针对遍历到的每一个分区,如果第二阶段销毁的介质长度大于0,则从该分区的起始地址+分区优先擦除大小开始,到该分区结束,执行写某一特殊值操作,进入步骤S410;
步骤S410:自毁完成,根据需要提示自毁完成,执行关机操作。
上述步骤S401至步骤S410所提及的某一特殊值操作,可以为0x00,步骤S310中的备份分区表可以如GPT。所提及的只读属性可以为force_ro。
请参阅图5,第五预设操作:
所述“则执行第五预设操作,自毁完成”,具体还包括步骤:
步骤S501:判断设备的存储介质类型是否是eMMC,若是则执行步骤S502,若否,则跳转至步骤S504;
步骤S502:遍历eMMC的boot0和boot1分区设备节点,判断对应分区设备节点文件是否存在,如果存在,首先将该对应分区设备节点的强制只读属性设置为0,以读写的方式打开对应的分区设备节点文件,获取该分区设备节点文件的大小,对该分区设备节点文件从地址0x0开始,到该分区结束,执行写某一特殊值操作,进入步骤S503;
步骤S503:遍历eMMC的gp0~gp4分区设备节点,判断对应分区设备节点文件是否存在,如果存在,将该对应分区设备节点的强制只读属性设置为0,以读写的方式打开对应的分区设备节点文件,获取该分区设备节点文件的大小,对该分区设备节点文件从地址0x0开始,到该分区结束,执行写某一特殊值操作,进入步骤S504;
步骤S504:遍历自毁固件分区列表,设置第一阶段销毁的介质长度,该长度取值为:分区大小和分区优先擦除大小这两者之间的最小值,即:第一阶段销毁的介质长度=min{分区大小,分区优先擦除大小},针对遍历到的每一个分区,从该分区的起始地址开始,对长度为第一阶段销毁的介质长度的区域执行写某一特殊值操作,进入步骤S505;
步骤S505:再次遍历自毁固件分区列表,设置第二阶段销毁的介质长度,该长度取值为:该分区大小-分区优先擦除大小,即:第二阶段销毁的介质长度=该分区大小-分区优先擦除大小,针对遍历到的每一个分区,如果第二阶段销毁的介质长度大于0,则从该分区的起始地址+分区优先擦除大小开始,到该分区结束,执行写某一特殊值操作,进入步骤S506;
步骤S506:遍历自毁数据分区列表,设置第一阶段销毁的介质长度,该长度取值为:分区大小和分区优先擦除大小这两者之间的最小值,即:第一阶段销毁的介质长度=min{分区大小,分区优先擦除大小},针对遍历到的每一个分区,从该分区的起始地址开始,对长度为第一阶段销毁的介质长度的区域执行写某一特殊值操作,进入步骤S507;
步骤S507:再次遍历自毁数据分区列表,设置第二阶段销毁的介质长度,该长度取值为:该分区大小-分区优先擦除大小,即:第二阶段销毁的介质长度=该分区大小-分区优先擦除大小,针对遍历到的每一个分区,如果第二阶段销毁的介质长度大于0,则从该分区的起始地址+分区优先擦除大小开始,到该分区结束,执行写某一特殊值操作,进入步骤S508;
步骤S508:遍历分区表中除启动引导程序所在分区、自毁固件分区列表和自毁数据分区列表这三者之外的每一个分区,设置第一阶段销毁的介质长度,该长度取值为:分区大小和分区优先擦除大小这两者之间的最小值,即:第一阶段销毁的介质长度=min{分区大小,分区优先擦除大小},针对遍历到的每一个分区,从该分区的起始地址开始,对长度为第一阶段销毁的介质长度的区域执行写某一特殊值操作,进入步骤S509;
步骤S509:再次遍历分区表中除启动引导程序所在分区、自毁固件分区列表和自毁数据分区列表这三者之外的每一个分区,设置第二阶段销毁的介质长度,该长度取值为:该分区大小-分区优先擦除大小,即:第二阶段销毁的介质长度=该分区大小-分区优先擦除大小,针对遍历到的每一个分区,如果第二阶段销毁的介质长度大于0,则从该分区的起始地址+分区优先擦除大小开始,到该分区结束,执行写某一特殊值操作,进入步骤S510;
步骤S510:自毁完成,根据需要提示自毁完成,执行关机操作。
上述步骤S501至步骤S510所提及的某一特殊值操作,可以为0x00,只读属性可以为force_ro。
上述所有步骤的总的大概流程图如图6所示,其中第四预设操作和第五预设操作在其中未有具体体现。
请参阅图7,在本实施方式中,一种存储设备700包括但不限于:使用flash存储介质的嵌入式设备;所述flash存储介质包括但不限于:NorFlash、NandFlash、SD卡、TF卡、MMC卡、MicroSD、eMMC。具体实施方式如下:
一种存储设备700,其中存储有指令集,所述指令集用于执行:上述提及的一种嵌入式设备的自毁方法可执行的任意步骤。
需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本文所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本发明的专利保护范围之内。

Claims (7)

1.一种嵌入式设备的自毁方法,其特征在于,包括步骤:
步骤S101:响应自毁模式指令,进入步骤S102;
步骤S102:设备重启,启动引导程序读取引导程序通信块中的自毁信息,进入步骤S103;
步骤S103:判断是否满足预设条件,所述预设条件包括:自毁信息中包含自毁指令且设备的存储介质为eMMC且存在可信安全操作系统,若满足预设条件,则执行步骤S104,若不包含自毁指令,则正常引导设备,若存储介质不是eMMC或不存在可信安全操作系统,则执行步骤S105;
步骤S104:执行第一预设操作,进入步骤S105;
步骤S105:判断自毁模式是否为安静模式,若是,则执行步骤S106,若否,则执行步骤S107;
步骤S106:执行第二预设操作,自毁完成;
步骤S107:执行第三预设操作,自毁完成;
所述步骤S104:执行第一预设操作,具体还包括步骤:
向所述可信安全操作系统中的某一静态可信应用发送一条特殊指令;
可信安全操作系统中的静态可信应用接收到所述特殊指令后,获取eMMC中RPMB区域的大小,并对该RPMB的完整区域从地址0x0开始,执行覆写某一特殊值操作;
所述步骤S106:执行第二预设操作,自毁完成,具体还包括步骤:
步骤S201:读取设备的分区表信息,所述分区表信息包括:每个分区的名字、起始地址、长度,进入步骤S202;
步骤S202:对存储介质中的分区表区域执行覆写某一特殊值操作,如果对应的分区表格式包含备份分区表,则同时对所述备份分区表区域执行覆写某一特殊值操作,进入步骤S203;
步骤S203:根据分区表信息,查找启动引导程序所在分区的起始地址和长度,对该存储区域执行写某一特殊值操作,进入步骤S204;
步骤S204:遍历分区表中除启动引导程序所在分区之外的每一个分区,设置第一阶段销毁的介质长度,该长度取值为:分区大小和引导程序通信块中分区优先擦除的区域大小这两者之间的最小值,即:第一阶段销毁的介质长度=min{分区大小,引导程序通信块中分区优先擦除的区域大小},针对遍历到的每一个分区,从该分区的起始地址开始,对长度为第一阶段销毁的介质长度的区域执行写某一特殊值操作,进入步骤S205;
步骤S205:再次遍历分区表中除启动引导程序所在分区之外的每一个分区,设置第二阶段销毁的介质长度,该长度取值为:该分区大小-引导程序通信块中分区优先擦除的区域大小,即:第二阶段销毁的介质长度=该分区大小-引导程序通信块中分区优先擦除的区域大小,针对遍历到的每一个分区,如果第二阶段销毁的介质长度大于0,则从该分区的起始地址+引导程序通信块中分区优先擦除的区域大小开始,到该分区结束,执行写某一特殊值操作,进入步骤S206;
步骤S206:判断设备的存储介质是否是eMMC,若是,则执行步骤S207,若否,跳转至步骤210;
步骤S207:切换到eMMC的boot区域,对该boot区域从起始地址开始,对整块区域执行写某一特殊值操作,进入步骤S208;
步骤S208:判断GPP区域是否为空,若为非空,则执行步骤S209,若为空,则执行步骤S210;
步骤S209:切换到eMMC的GPP区域,对GPP区域从起始地址开始,对整块区域执行写某一特殊值操作,进入步骤S210;
步骤S210:自毁完成,执行关机操作;
所述步骤S107:执行第三预设操作,自毁完成,具体还包括步骤:
步骤S301:加载运行自毁模式镜像,引导设备进入自毁模式,进入步骤S302;
步骤S302:自毁程序首先读取引导程序通信块中的信息,进入步骤S303;
步骤S303:判断是否存在自毁指令,若存在,进入步骤S304,若不存在,程序退出;
步骤S304:根据需要提示用户设备正在进行自毁,进入步骤S305;
步骤S305:设置:分区优先擦除大小为引导程序通信块中分区优先擦除的区域大小,自毁优先模式为数据优先,自毁数据分区列表添加一个用户数据区,自毁固件分区列表为空,进入步骤S306;
步骤S306:读取引导程序通信块中自毁配置文件的路径,进入步骤S307;
步骤S307:配置文件是否存在,若存在,进入步骤S308,若不存在,跳转至步骤S309:
步骤S308:解析配置文件中的优先模式字段,如果该字段取值非空并且合法,则更新自毁优先模式的取值;解析配置文件中的数据分区列表字段,如果该字段非空,则更新覆盖自毁数据分区列表;解析配置文件中的固件分区列表字段,如果该字段非空,则更新自毁固件分区列表,进入步骤S309;
步骤S309:读取设备的分区表信息,所述分区表信息包括:每个分区的名字、起始地址、长度,进入步骤S310;
步骤S310:对存储介质中的分区表区域执行覆写某一特殊值操作,如果对应的分区表格式包含备份分区表,则同时对该备份分区表区域执行覆写某一特殊值操作,进入步骤S311;
步骤S311:根据分区表信息,查找启动引导程序所在分区的起始地址和长度,对该存储区域执行写某一特殊值操作,进入步骤S312;
步骤S312:判断自毁优先模式是否为数据优先,若是则执行第四预设操作,自毁完成,如果自毁模式不为数据优先,则执行第五预设操作,自毁完成。
2.根据权利要求1所述的一种嵌入式设备的自毁方法,其特征在于,所述响应自毁模式指令前,还包括步骤:
设置引导程序通信块中的自毁信息;
所述自毁信息包括以下字段:自毁指令、自毁模式、自毁配置文件的路径、分区优先擦除的区域大小;
所述自毁模式包括:安静模式、提示模式;
所述自毁配置文件包括:优先模式、数据分区列表、固件分区列表;
所述优先模式包括:数据优先、固件优先;
所述数据分区列表中分区按优先级排列,所述固件分区列表中分区按优先级排列;
所述启动引导程序读取引导程序通信块中的自毁信息,具体还包括步骤:若读取到的自毁模式为安静模式,且设备带显示屏,则发出关闭显示屏背光的指令。
3.根据权利要求1所述的一种嵌入式设备的自毁方法,其特征在于,所述则执行第四预设操作,自毁完成,具体还包括步骤:
步骤S401:遍历自毁数据分区列表,设置第一阶段销毁的介质长度,该长度取值为:分区大小和分区优先擦除大小这两者之间的最小值,即:第一阶段销毁的介质长度=min{分区大小,分区优先擦除大小},针对遍历到的每一个分区,从该分区的起始地址开始,对长度为第一阶段销毁的介质长度的区域执行写某一特殊值操作,进入步骤S402;
步骤S402:再次遍历自毁数据分区列表,设置第二阶段销毁的介质长度,该长度取值为:该分区大小-分区优先擦除大小,即:第二阶段销毁的介质长度=该分区大小-分区优先擦除大小,针对遍历到的每一个分区,如果第二阶段销毁的介质长度大于0,则从该分区的起始地址+分区优先擦除大小开始,到该分区结束,执行写某一特殊值操作,进入步骤S403;
步骤S403:判断设备的存储介质类型是否是eMMC,若是,进入步骤S404,若否,进入步骤S406;
步骤S404:遍历eMMC的boot0和boot1分区设备节点,首先判断对应分区设备节点文件是否存在,如果存在,首先将该对应分区设备节点的强制只读属性设置为0;以读写的方式打开对应的分区设备节点文件,获取该分区设备节点文件的大小,对该分区设备节点文件从地址0x0开始,到该分区结束,执行写某一特殊值操作,进入步骤S405;
步骤S405:遍历eMMC的gp0~gp4分区设备节点,判断对应分区设备节点文件是否存在,如果存在,将该对应分区设备节点的强制只读属性设置为0,以读写的方式打开对应的分区设备节点文件,获取该分区设备节点文件的大小,对该分区设备节点文件从地址0x0开始,到该分区结束,执行写某一特殊值操作,进入步骤S406:
步骤S406:遍历自毁固件分区列表,设置第一阶段销毁的介质长度,该长度取值为:分区大小和分区优先擦除大小这两者之间的最小值,即:第一阶段销毁的介质长度=min{分区大小,分区优先擦除大小},针对遍历到的每一个分区,从该分区的起始地址开始,对长度为第一阶段销毁的介质长度的区域执行写某一特殊值操作,进入步骤S407;
步骤S407:再遍历自毁固件分区列表,设置第二阶段销毁的介质长度,该长度取值为:该分区大小-分区优先擦除大小,即:第二阶段销毁的介质长度=该分区大小-分区优先擦除大小,针对遍历到的每一个分区,如果第二阶段销毁的介质长度大于0,则从该分区的起始地址+分区优先擦除大小开始,到该分区结束,执行写某一特殊值操作,进入步骤S408;
步骤S408:遍历分区表中除启动引导程序所在分区、自毁数据分区列表和自毁固件分区列表这三者之外的每一个分区,设置第一阶段销毁的介质长度,该长度取值为:分区大小和分区优先擦除大小这两者之间的最小值,即:第一阶段销毁的介质长度=min{分区大小,分区优先擦除大小},针对遍历到的每一个分区,从该分区的起始地址开始,对长度为第一阶段销毁的介质长度的区域执行写某一特殊值操作,进入步骤S409;
步骤S409:再次遍历分区表中除启动引导程序所在分区、自毁数据分区列表和自毁固件分区列表这三者之外的每一个分区,设置第二阶段销毁的介质长度,该长度取值为:该分区大小-分区优先擦除大小,即:第二阶段销毁的介质长度=该分区大小-分区优先擦除大小,针对遍历到的每一个分区,如果第二阶段销毁的介质长度大于0,则从该分区的起始地址+分区优先擦除大小开始,到该分区结束,执行写某一特殊值操作,进入步骤S410;
步骤S410:自毁完成,根据需要提示自毁完成,执行关机操作。
4.根据权利要求1所述的一种嵌入式设备的自毁方法,其特征在于,所述则执行第五预设操作,自毁完成,具体还包括步骤:
步骤S501:判断设备的存储介质类型是否是eMMC,若是则执行步骤S502,若否,则跳转至步骤S504;
步骤S502:遍历eMMC的boot0和boot1分区设备节点,判断对应分区设备节点文件是否存在,如果存在,首先将该对应分区设备节点的强制只读属性设置为0,以读写的方式打开对应的分区设备节点文件,获取该分区设备节点文件的大小,对该分区设备节点文件从地址0x0开始,到该分区结束,执行写某一特殊值操作,进入步骤S503;
步骤S503:遍历eMMC的gp0~gp4分区设备节点,判断对应分区设备节点文件是否存在,如果存在,将该对应分区设备节点的强制只读属性设置为0,以读写的方式打开对应的分区设备节点文件,获取该分区设备节点文件的大小,对该分区设备节点文件从地址0x0开始,到该分区结束,执行写某一特殊值操作,进入步骤S504;
步骤S504:遍历自毁固件分区列表,设置第一阶段销毁的介质长度,该长度取值为:分区大小和分区优先擦除大小这两者之间的最小值,即:第一阶段销毁的介质长度=min{分区大小,分区优先擦除大小},针对遍历到的每一个分区,从该分区的起始地址开始,对长度为第一阶段销毁的介质长度的区域执行写某一特殊值操作,进入步骤S505;
步骤S505:再次遍历自毁固件分区列表,设置第二阶段销毁的介质长度,该长度取值为:该分区大小-分区优先擦除大小,即:第二阶段销毁的介质长度=该分区大小-分区优先擦除大小,针对遍历到的每一个分区,如果第二阶段销毁的介质长度大于0,则从该分区的起始地址+分区优先擦除大小开始,到该分区结束,执行写某一特殊值操作,进入步骤S506;
步骤S506:遍历自毁数据分区列表,设置第一阶段销毁的介质长度,该长度取值为:分区大小和分区优先擦除大小这两者之间的最小值,即:第一阶段销毁的介质长度=min{分区大小,分区优先擦除大小},针对遍历到的每一个分区,从该分区的起始地址开始,对长度为第一阶段销毁的介质长度的区域执行写某一特殊值操作,进入步骤S507;
步骤S507:再次遍历自毁数据分区列表,设置第二阶段销毁的介质长度,该长度取值为:该分区大小-分区优先擦除大小,即:第二阶段销毁的介质长度=该分区大小-分区优先擦除大小,针对遍历到的每一个分区,如果第二阶段销毁的介质长度大于0,则从该分区的起始地址+分区优先擦除大小开始,到该分区结束,执行写某一特殊值操作,进入步骤S508;
步骤S508:遍历分区表中除启动引导程序所在分区、自毁固件分区列表和自毁数据分区列表这三者之外的每一个分区,设置第一阶段销毁的介质长度,该长度取值为:分区大小和分区优先擦除大小这两者之间的最小值,即:第一阶段销毁的介质长度=min{分区大小,分区优先擦除大小},针对遍历到的每一个分区,从该分区的起始地址开始,对长度为第一阶段销毁的介质长度的区域执行写某一特殊值操作,进入步骤S509;
步骤S509:再次遍历分区表中除启动引导程序所在分区、自毁固件分区列表和自毁数据分区列表这三者之外的每一个分区,设置第二阶段销毁的介质长度,该长度取值为:该分区大小-分区优先擦除大小,即:第二阶段销毁的介质长度=该分区大小-分区优先擦除大小,针对遍历到的每一个分区,如果第二阶段销毁的介质长度大于0,则从该分区的起始地址+分区优先擦除大小开始,到该分区结束,执行写某一特殊值操作,进入步骤S510;
步骤S510:自毁完成,根据需要提示自毁完成,执行关机操作。
5.根据权利要求1所述的一种嵌入式设备的自毁方法,其特征在于,所述启动引导程序读取引导程序通信块中的自毁信息前,还包括步骤:
引导程序运行,若设备包含可信安全操作系统,则引导运行设备的可信安全操作系统,并使所述可信安全操作系统处于就绪状态。
6.根据权利要求1至5任一所述的一种嵌入式设备的自毁方法,其特征在于,所述设备包括:使用flash存储介质的嵌入式设备;
所述flash存储介质包括:NorFlash、NandFlash、SD卡、TF卡、MMC卡、MicroSD、eMMC。
7.一种存储设备,其中存储有指令集,其特征在于,所述指令集用于执行:权利要求1至6中的任意一条权利要求的步骤。
CN202110557737.3A 2021-05-21 2021-05-21 一种嵌入式设备的自毁方法和存储设备 Active CN113268784B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110557737.3A CN113268784B (zh) 2021-05-21 2021-05-21 一种嵌入式设备的自毁方法和存储设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110557737.3A CN113268784B (zh) 2021-05-21 2021-05-21 一种嵌入式设备的自毁方法和存储设备

Publications (2)

Publication Number Publication Date
CN113268784A CN113268784A (zh) 2021-08-17
CN113268784B true CN113268784B (zh) 2022-06-21

Family

ID=77232296

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110557737.3A Active CN113268784B (zh) 2021-05-21 2021-05-21 一种嵌入式设备的自毁方法和存储设备

Country Status (1)

Country Link
CN (1) CN113268784B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113642008B (zh) * 2021-10-14 2021-12-28 飞天诚信科技股份有限公司 一种更换智能pos设备开机画面的实现方法及装置
CN113778760B (zh) * 2021-11-11 2022-03-11 麒麟软件有限公司 基于嵌入式系统的关键数据自毁与自动还原方法及装置
CN115270206A (zh) * 2022-09-21 2022-11-01 北京万里红科技有限公司 安全终端的销毁方法、安全终端及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104733046A (zh) * 2013-12-19 2015-06-24 三星电子株式会社 非易失性存储装置的擦除方法及应用该方法的存储装置
CN104796532A (zh) * 2015-03-13 2015-07-22 广东欧珀移动通信有限公司 一种销毁移动终端的方法及装置
CN106295362A (zh) * 2016-07-29 2017-01-04 福州瑞芯微电子股份有限公司 一种芯片自毁装置及方法
CN109800605A (zh) * 2019-01-25 2019-05-24 杭州电子科技大学 一种安全计算机

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10579288B2 (en) * 2017-08-31 2020-03-03 Micron Technology, Inc. Prioritized security

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104733046A (zh) * 2013-12-19 2015-06-24 三星电子株式会社 非易失性存储装置的擦除方法及应用该方法的存储装置
CN104796532A (zh) * 2015-03-13 2015-07-22 广东欧珀移动通信有限公司 一种销毁移动终端的方法及装置
CN106295362A (zh) * 2016-07-29 2017-01-04 福州瑞芯微电子股份有限公司 一种芯片自毁装置及方法
CN109800605A (zh) * 2019-01-25 2019-05-24 杭州电子科技大学 一种安全计算机

Also Published As

Publication number Publication date
CN113268784A (zh) 2021-08-17

Similar Documents

Publication Publication Date Title
CN113268784B (zh) 一种嵌入式设备的自毁方法和存储设备
US10509568B2 (en) Efficient secure boot carried out in information processing apparatus
CN102630320B (zh) 信息处理装置以及应用程序不正当协作防止方法
JP5740646B2 (ja) ソフトウェアのダウンロード方法
KR100929870B1 (ko) 컴퓨터 시스템의 바이오스 보안 유지방법
JP6585072B2 (ja) 不揮発性メモリ又はセキュア素子へのデータの読み込みを安全に行うこと
JPH09500469A (ja) メモリカード及びその作動方法
JP4256859B2 (ja) 半導体記憶装置
CN112347518B (zh) 储存装置
CN110020561B (zh) 半导体装置和操作半导体装置的方法
JP2001356963A (ja) 半導体装置およびその制御装置
CN110598384B (zh) 信息保护方法、信息保护装置及移动终端
CN110968254A (zh) 一种非易失性存储器的分区保护方法及装置
CN113127011A (zh) 电子设备及电子设备的操作方法
CN112613011B (zh) U盘系统认证方法、装置、电子设备及存储介质
CN106951771B (zh) 一种安卓操作系统的移动终端使用方法
JPH10105408A (ja) 情報処理装置
JP2004503860A (ja) データ処理方法及び保護された命令の実行のための装置
KR100300794B1 (ko) 칩카드에정보를입력하는방법
CN114817935A (zh) 一种芯片安全启动方法
CN111125723A (zh) 加密卡识别方法、装置、设备及存储介质
JP2005292959A (ja) 不揮発性メモリモジュール及び不揮発性メモリシステム
CN109460262B (zh) 验证主系统镜像合法性的方法、系统、安卓设备及介质
CN108990046B (zh) 移动网络的连接方法
CN115525933B (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