CN111191196A - 嵌入式程序运行方法、装置、计算机设备及存储介质 - Google Patents
嵌入式程序运行方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN111191196A CN111191196A CN202010003210.1A CN202010003210A CN111191196A CN 111191196 A CN111191196 A CN 111191196A CN 202010003210 A CN202010003210 A CN 202010003210A CN 111191196 A CN111191196 A CN 111191196A
- Authority
- CN
- China
- Prior art keywords
- program
- password
- identification information
- encryption
- bootstrap
- 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
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000003860 storage Methods 0.000 title claims abstract description 21
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 6
- 230000009191 jumping Effects 0.000 claims description 4
- 238000012795 verification Methods 0.000 description 17
- 238000004422 calculation algorithm Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000005336 cracking Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000012356 Product development Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005498 polishing Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例公开了一种嵌入式程序运行方法、装置、计算机设备及存储介质。所述方法包括:通过引导程序对设备标识信息进行加密运算,得到解密密码;如果所述解密密码与预存的加密密码相同,通过所述引导程序加载主程序。本发明实施例可以提高程序的安全性,同时减少嵌入式程序加密的成本。
Description
技术领域
本发明实施例涉及加密领域,尤其涉及一种嵌入式程序运行方法、装置、计算机设备及存储介质。
背景技术
安装在在芯片内的嵌入式程序在不加密的情况下,极易被获取并破解.导致核心设计和关键技术被窃取,侵害产品开发公司的合法权益,因此对嵌入式程序进行加密尤为重要。
嵌入式芯片一般都有内部只读内存ROM(闪存FLASH)供用户存放程序,有的芯片还会提供电可擦可编程只读EEPROM存储器.系统运行时,嵌入式芯片直接读取ROM执行代码或先将ROM保存的程序加载到内存(随机存取存储器RAM)中再执行。
目前嵌入式程序加密一般采用:1、芯片打磨,隐藏芯片的型号信息。这种加密方式过于简单,对熟悉芯片的解密人员基本不起作用;2、额外增加加密芯片实施加密。该方式破解比较复杂,但需要增加额外的成本,加密较为复杂,不利于软件升级;3、通过芯片与嵌入式控制器的相互认证,并按照预设密钥更新方式对密钥进行更新处理,这种加密方式视加密算法的复杂程度而增加破解难度,而且还关系到加密解密的操作方式,实施难度,对后续程序升级的影响。
发明内容
本发明实施例提供一种嵌入式程序运行方法、装置、计算机设备及存储介质,可以提高程序的安全性,同时减少嵌入式程序加密的成本。
第一方面,本发明实施例提供了一种嵌入式程序运行方法,包括:
通过引导程序对设备标识信息进行加密运算,得到解密密码;
如果所述解密密码与预存的加密密码相同,通过所述引导程序加载主程序。
第二方面,本发明实施例还提供了一种嵌入式程序运行装置,包括:
解密密码计算模块,用于通过引导程序对设备标识信息进行加密运算,得到解密密码;
应用程序加载模块,用于如果所述解密密码与预存的加密密码相同,通过所述引导程序加载主程序。
第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序所述处理器执行所述程序时实现如本发明实施例中任一所述的嵌入式程序运行方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的嵌入式程序运行方法。
本发明实施例在主程序运行之前,通过引导程序计算解密密码,并在引导程序确定加密码通过验证之后,加载主程序,实现在密码验证之后正常运行主程序,解决了现有技术中加密方式简单、加密方式成本高和加密操作实施难度大的问题,仅通过引导程序进行加密验证,降低加密方式的成本和实施难度,可以兼顾软件安全性以及加密成本。
附图说明
图1是本发明实施例中的一种嵌入式程序运行方法的流程图;
图2a是本发明实施例中的一种嵌入式程序运行方法的流程图;
图2b是本发明实施例中的一种程序更新方法的流程图;
图2c是本发明实施例中的一种程序加密方法的流程图;
图2d是本发明实施例中的一种程序解密方法的流程图;
图3是本发明实施例中的一种嵌入式程序运行装置的结构示意图;
图4是本发明实施例中的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一中的一种嵌入式程序运行方法的流程图,本实施例可适用于在加密验证通过之后嵌入式设备中的程序正常运行的情况,该方法可以由本发明实施例提供的嵌入式程序运行装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成计算机设备中。如图1所示,本实施例的方法具体包括:
S110,通过引导程序对设备标识信息进行加密运算,得到解密密码。
本发明实施例中的引导程序和主程序均置于嵌入式芯片中。嵌入式芯片中部署的程序为嵌入式程序。
其中,引导程序用于引导主程序(也即操作系统)运行,具体是初始化硬件设备,将软硬件环境设定可运行的状态,以便为最终调用操作系统内核以及运行应用程序做好准备。设备标识信息用于标识和确定软硬件。加密运算用于根据设备标识信息生成密码。解密密码用于与加密密码进行比对,以实现密码验证。主程序作为设备的中心程序,可以通过调用子程序实现设备的各种功能。
具体的,设备标识信息可以包括硬件设备的身份标识(Identity,ID)信息和/或软件的ID信息。
可选的,所述设备标识信息包括硬件标识信息和/或受保护存储器存储的信息;其中,所述硬件标识信息包括芯片标识信息和/或至少一个功能模块。
硬件标识信息用于标识硬件。芯片标识信息用于标识芯片。其中,标识信息可以是指ID信息。功能模块可以是指实现特定功能的硬件模块(如滤波电路等)。受保护存储器可以是指该存储器被外部写入数据,但受保护不允许外部读取和改写的存储器。受保护存储器存储的信息可以是指不允许外部读取和改写的信息。
通过设置设备标识信息包括多个软件标识信息和/或硬件标识信息,增加设备标识信息的多样性,以及设备标识信息的覆盖范围,实现增加生成密码的信息长度和来源,从而提高密码的破解难度,以及提高软件的安全性。
可选的,所述解密密码和所述加密密码的密码长度为12字节。
通过将密码长度设置为12字节,提高密码的破解难度,从而提高软件的安全性。
具体的,设备标识信息获取方式:分别从芯片标识信息和至少一个功能模块的标识信息中提取数据,进行组合,形成设备标识信息。
示例性的,当功能模块的数量大于等于5时,分别从芯片标识信息和至少一个功能模块的标识信息中提取数据2个字节数据,形成12字节数据,作为设备标识信息;当功能模块的数量小于5时,分别从至少一个功能模块的标识信息中提取数据2个字节数据,从芯片标识信息提取至少2个字节数据,形成12字节数据,作为设备标识信息。
具体是,分别从芯片ID信息和n个功能模块ID信息中各取2字节,如不够12字节,取芯片ID信息补齐。选取规则:芯片ID信息中2字节+第1个功能模块ID信息中2字节+…+第n个功能模块ID信息中2字节。当n小于5时,取芯片ID信息中与前面不同的字节,直到补齐12字节。示例性的,每个ID信息取前2字节,当n小于5时,取芯片ID信息中第2个字节之后的数据,直到补齐12字节。一般芯片ID信息的长度为12字节。
相应的,12字节设备标识信息的加密算法包括:从6种加密算法中依次选择一种加密算法对设备标识信息进行加密运算,得到每种加密算法对应的部分密码;按照加密算法的选择顺序对各加密算法对应的部分密码进行组合,形成设备标识信息匹配的解密密码。
其中:
1.解密密码中前3字节的加密算法为:按照每个字节在设备标识信息中的位序,从每个字节中提取与位序匹配的两个位数据,进行组合形成第一部分密码;其中,两个位数据的位序之差为4,相邻位序的字节对应的首个位数据的位序之差为2。
前3字节:设备标识信息进行循环左移2位(1个字节8位),然后每字节取2个位,规则如下:第n字节取0+n和4+n位,如1+n和4+n大于8则取除8后的余数作为选取的位序号,一共24位,刚好3个字节。说明:第1字节取第0+1=1和第4+1=5位,第2字节取第0+2=2和4+2=6位,以此类推,第6字节取第0+6=6和第(4+6)%8=2位(大于8时取余数)。
2.解密密码中第4-6字节的加密算法为:根据设备标识信息位序为4-6的字节对应的十进制的末位数,分别从设备标识信息查询匹配的字节,进行组合,形成第二部分密码。
第4-6字节:以设备标识信息的第4-6字节数据的个位数(转换为十进制中的末位)为序号,在12个字节ID中选取3个数,如序号大于12则取除12的余数。
3.解密密码中第7-8字节的加密算法为:从计数值和/或采样值中选择两个字节,形成第三部分密码。
第7-8字节:为随机码,取系统定时器的计数值或模数转换(Analog toDigital,A/D)采样值(如有),校验密码时不使用,作为干扰字节,让破译者觉得没有规律。
4.解密密码中第9-10字节的加密算法为:对设备标识信息位序为2-11的字节进行循环校验计算,生成的循环校验码作为第四部分密码。
第9-10字节:设备标识信息中第2-11字节(共10字节)的循环校验码(CRC16)运算的校验值。
5.解密密码中第11字节的加密算法为:对设备标识信息位序为奇数的字节,进行异或运算,形成第五部分密码。
第11字节:设备标识信息中序号为奇数的数据(共6字节)进行异或运算的校验值。
6.解密密码中第12字节的加密算法为:对设备标识信息位序为偶数的字节,进行异或运算,形成第六部分密码。
第12字节:设备标识信息中序号为偶数的数据(共6字节)进行异或运算的校验值。
S120,如果所述解密密码与预存的加密密码相同,通过所述引导程序加载主程序。
加密密码用于作为标准密码,判断解密密码是否通过校验。通常,加密密码是预先存储在芯片中的密码。
可选的,在通过引导程序计算解密密码之前,还包括:在通过引导程序对设备标识信息进行加密运算之前,还包括:在所述引导程序首次运行时,通过所述引导程序对所述设备标识信息进行加密运算;将加密运算得到的加密密码进行存储。
其中,首次运行是指,芯片在第一次上电时,引导程序的运行。此外,如果芯片加密密码为引导程序在首次运行时加密运算得到的密码。加密密码的加密运算与解密密码的加密运算相同。加密密码的存储位置可以是预先设定的位置,示例性的,存储位置在受保护存储器的存储空间中。方便后续引导程序获取。
实际上,在加密密码存储之后,可以进行重启,引导程序再次运行,此时,引导程序为非首次运行,生成解密密码,并进行密码验证,并在密码相同时加载主程序,以使主程序正常运行。
通过引导程序在首次运行时,生成加密密码并存储,减少直接将加密密码写入芯片而造成容易被破解的风险,同时,均由引导程序实现加密密码和解密密码的计算,可以简化密码验证的操作,降低密码验证的成本。
可选的,所述通过引导程序对设备标识信息进行加密运算,得到解密密码,包括:获取启动标志;如果所述启动标志为非首次启动标志,则通过引导程序进行加密运算,得到解密密码;所述在所述引导程序首次运行时,通过所述引导程序对所述设备标识信息进行加密运算,包括:获取启动标志,所述启动标志为首次启动标志;通过所述引导程序对设备标识信息进行加密运算;将启动标志更新为非首次启动标志。
启动标志用于判断引导程序是否为首次运行。启动标志包括首次启动标志和非首次启动标志。首次启动标志用于确定引导程序为首次运行。非首次启动标志用于确定引导程序为非首次运行。
在引导程序首次启动之后,将启动标志修改为非首次启动标志,用于引导程序在之后的上电启动时,可以准确确定当前启动为非首次启动。
通过配置启动标志,用于判断引导程序是否为首次启动,从而判断引导程序得到的密码是否为解密密码,实现正确执行密码验证过程。
可选的,在得到解密密码之后,还包括:如果所述解密密码与所述加密密码不同,通过所述引导程序跳转至死循环。
其中,加密密码和解密密码不同,表明该引导程序无法通过加密验证,例如,将引导程序和主程序通过非法手段复制到其他芯片中,此时,其他芯片中并没有存储加密密码或者,存储有非加密密码的数据。引导程序跳转至死循环,使芯片一直无法正常运行,以保护引导程序以及主程序的无法被非法使用,从而保证主程序的安全性。
可选的,在通过引导程序对设备标识信息进行加密运算之前,还包括:通过所述引导程序向更新程序发出更新请求;通过所述引导程序获取所述更新程序反馈的应用程序更新数据;通过所述引导程序将所述应用程序更新数据写入芯片中。
更新程序用于对芯片上运行的程序进行更新。更新程序可以是指与芯片通过串行接口或其他接口连接的计算机设备上的程序。更新请求用于引导程序向更新程序请求应用程序更新数据。应用程序更新数据用于对芯片上的程序进行更新。应用程序更新数据写入芯片,相当于更新芯片上的程序。
具体的,在芯片上电,以及引导程序在启动的设定时间(如2秒)之后,引导程序向更新程序发送更新请求,以使芯片中的应用程序进行更新。在更新之后,引导程序开始执行对设备标识信息进行加密运算,得到解密密码,以及在解密密码与加密密码相同时加载主程序的操作。也就是说,引导程序控制更新程序更新芯片中的应用程序。
通过引导程序控制更新程序对应用程序进行更新,实现对更新程序的控制,保证芯片中应用程序的更新是由引导程序控制的,避免应用程序的更新数据在更新过程中泄露,提高应用程序在更新过程中的安全性。
本发明实施例在主程序运行之前,通过引导程序计算解密密码,并在引导程序确定解密密码通过验证之后,加载主程序,实现在密码验证之后正常运行主程序,解决了现有技术中加密方式简单、加密方式成本高和加密操作实施难度大的问题,仅通过引导程序进行加密验证,降低加密方式的成本和实施难度,可以兼顾软件安全性以及加密成本。
实施例二
图2a为本发明实施例二中的一种嵌入式程序运行方法的流程图,本实施例以上述实施例为基础进行优化。本实施例的方法具体包括:
S210,获取启动标志,所述启动标志为首次启动标志。
S220,通过引导程序对设备标识信息进行加密运算,所述设备标识信息包括硬件标识信息和/或受保护存储器存储的信息;其中,所述硬件标识信息包括芯片标识信息和/或至少一个功能模块。
引导程序为Boot程序。
可选的,在通过引导程序对设备标识信息进行加密运算之前,还包括:通过所述引导程序向更新程序发出更新请求;通过所述引导程序获取所述更新程序反馈的应用程序更新数据;通过所述引导程序将所述应用程序更新数据写入芯片中。
在一个具体的例子中,如图2b所示,芯片中的应用程序更新方法包括:
S201,Boot程序启动,其中,Boot程序部署在芯片中。
其中,芯片为嵌入式芯片。Boot程序为嵌入式芯片中常用的用于引导操作系统启动的程序。
S202,Boot程序进入程序更新状态。
S203,Boot程序向与芯片相连的计算机设备上的更新程序发送更新请求。
S204,Boot程序接收所述更新程序反馈的应用程序更新数据。
S205,Boot程序将所述应用程序更新数据写入所述芯片。
通过Boot程序实现应用程序更新,可以控制应用程序更新,提高应用程序更新的安全性。
S230,将加密运算得到的加密密码进行存储。
S240,将启动标志更新为非首次启动标志。
在一个具体的例子中,如图2c所示,Boot程序加密过程包括:
S211,Boot程序获取设备标识信息。
S212,Boot程序根据所述设备标识信息,生成加密密码。
S213,Boot程序将所述加密密码写入芯片的密码区中。
S214,Boot程序重启。
在重启之后,Boot程序为非首次启动,进入正常的解密过程。
S250,获取启动标志,所述启动标志为非首次启动标志。
S260,通过引导程序进行加密运算,得到解密密码,所述解密密码和所述加密密码的密码长度为12字节。
S270,如果所述解密密码与预存的加密密码相同,通过所述引导程序加载主程序。
S280,如果所述解密密码与所述加密密码不同,通过所述引导程序跳转至死循环。
在一个具体的例子中,如图2d所示,Boot程序解密过程包括:
S221,Boot程序获取设备标识信息。
S222,Boot程序根据所述设备标识信息,生成解密密码。
S223,Boot程序从芯片的密码区中读取加密密码。
S224,Boot程序判断加密密码和解密密码是否一致,如果是则执行S225;否则执行S226。
S225,Boot程序加载主程序。
S226,Boot程序进入死循环。
本发明实施例的方法,对于生产厂家而言,只需要确保Boot程序不被泄露,就可以防止不法分子通过简单的方法复制自己的产品。在生产产品时将Boot程序写入芯片,Boot程序第一次启动时便将芯片锁死,App程序的升级更新不会影响加密有有效性,因为Boot程序在第二次和之后的启动过程中判断加密密码,来选择是否执行App程序。这样,App程序可以随便更新升级,因为在产品的生命周期内,难免会遇到需要升级程序以适应客户新的需求或更正已经存在的程序漏洞。
产品在生产时写入Boot程序和第一版App程序,后续程序升级时,只需要升级App程序。而App程序可以交由现场人员甚至客户进行升级,而无需担心程序被不法分子得到,因为光有App程序芯片是无法正常运行的。必需要有Boot程序才能运行App程序。这样,即方便了升级维护,又达到的保护产品不被复制的目的。
其中,App程序为嵌入式芯片中的程序,与手机中的App程序不同。
本发明实施例通过引导程序执行加密和解密过程,无需额外的芯片或者加密程序执行加密和解密,减少密码验证的成本,同时,引导程序通过加密过程计算得到加密密码并写入芯片的方式,相较于直接将密码存储在芯片的方式,极大提高了软件安全性,而且,仅通过引导程序即可实现加密和解密过程,可以简化密码验证过程。
实施例三
图3为本发明实施例三中的一种嵌入式程序运行装置的示意图。实施例三是实现本发明上述实施例提供的嵌入式程序运行方法的相应装置,该装置可采用软件和/或硬件的方式实现,并一般可集成计算机设备中。
相应的,本实施例的装置可以包括:
解密密码计算模块310,用于通过引导程序对设备标识信息进行加密运算,得到解密密码;
应用程序加载模块320,用于如果所述解密密码与预存的加密密码相同,通过所述引导程序加载主程序。
本发明实施例在主程序运行之前,通过引导程序计算解密密码,并在引导程序确定加密码通过验证之后,加载主程序,实现在密码验证之后正常运行主程序,解决了现有技术中加密方式简单、加密方式成本高和加密操作实施难度大的问题,仅通过引导程序进行加密验证,降低加密方式的成本和实施难度,可以兼顾软件安全性以及加密成本。
进一步的,所述嵌入式程序运行装置,还包括:首次运行模块,用于在通过引导程序对设备标识信息进行加密运算之前,在所述引导程序首次运行时,通过所述引导程序对所述设备标识信息进行加密运算;将加密运算得到的加密密码进行存储。
进一步的,所述设备标识信息包括硬件标识信息和/或受保护存储器存储的信息;其中,所述硬件标识信息包括芯片标识信息和/或至少一个功能模块。
进一步的,所述解密密码和所述加密密码的密码长度为12字节。
进一步的,所述嵌入式程序运行装置,还包括:解密失败模块,用于在得到解密密码之后,如果所述解密密码与所述加密密码不同,通过所述引导程序跳转至死循环。
进一步的,所述嵌入式程序运行装置,还包括:程序更新模块,用于在通过引导程序对设备标识信息进行加密运算之前,通过所述引导程序向更新程序发出更新请求;通过所述引导程序获取所述更新程序反馈的应用程序更新数据;通过所述引导程序将所述应用程序更新数据写入芯片中。
进一步的,所述解密密码计算模块310,包括:启动标志获取单元,用于获取启动标志;如果所述启动标志为非首次启动标志,则通过引导程序进行加密运算,得到解密密码;进一步的,所述首次运行模块,包括:启动标志修改单元,用于获取启动标志,所述启动标志为首次启动标志;通过所述引导程序对设备标识信息进行加密运算;将启动标志更新为非首次启动标志。
上述嵌入式程序运行装置可执行本发明实施例所提供的嵌入式程序运行方法,具备执行的嵌入式程序运行方法相应的功能模块和有益效果。
实施例四
图4为本发明实施例四提供的一种计算机设备的结构示意图。图4示出了适于用来实现本发明实施方式的示例性计算机设备12的框图。图4显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。其中,计算机设备12可以是嵌入式芯片。
如图4所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。计算机设备12可以是挂接在总线上的设备。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM),数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。系统存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如系统存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(Input/Output,I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local AreaNetwork,LAN),广域网(Wide Area Network,WAN)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图4中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、(Redundant Arrays of Inexpensive Disks,RAID)系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明任意实施例所提供的一种嵌入式程序运行方法。
实施例五
本发明实施例五提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请所有发明实施例提供的嵌入式程序运行方法:
也即,该程序被处理器执行时实现:通过引导程序对设备标识信息进行加密运算,得到解密密码;如果计算得到的解密密码与预存的加密密码相同,通过所述引导程序加载主程序。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、RAM、ROM、EPROM、闪存、光纤、便携式CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、无线电频率(RadioFrequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括LAN或WAN——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种嵌入式程序运行方法,其特征在于,包括:
通过引导程序对设备标识信息进行加密运算,得到解密密码;
如果所述解密密码与预存的加密密码相同,通过所述引导程序加载主程序。
2.根据权利要求1所述的方法,其特征在于,在通过引导程序对设备标识信息进行加密运算之前,还包括:
在所述引导程序首次运行时,通过所述引导程序对所述设备标识信息进行加密运算;
将加密运算得到的加密密码进行存储。
3.根据权利要求1所述的方法,其特征在于,所述设备标识信息包括硬件标识信息和/或受保护存储器存储的信息;其中,所述硬件标识信息包括芯片标识信息和/或至少一个功能模块。
4.根据权利要求1所述的方法,其特征在于,所述解密密码和所述加密密码的密码长度为12字节。
5.根据权利要求1所述的方法,其特征在于,在得到解密密码之后,还包括:
如果所述解密密码与所述加密密码不同,通过所述引导程序跳转至死循环。
6.根据权利要求1所述的方法,其特征在于,在通过引导程序对设备标识信息进行加密运算之前,还包括:
通过所述引导程序向更新程序发出更新请求;
通过所述引导程序获取所述更新程序反馈的应用程序更新数据;
通过所述引导程序将所述应用程序更新数据写入芯片中。
7.根据权利要求2所述的方法,其特征在于,所述通过引导程序对设备标识信息进行加密运算,得到解密密码,包括:
获取启动标志;
如果所述启动标志为非首次启动标志,则通过引导程序进行加密运算,得到解密密码;
所述在所述引导程序首次运行时,通过所述引导程序对所述设备标识信息进行加密运算,包括:
获取启动标志,所述启动标志为首次启动标志;
通过所述引导程序对设备标识信息进行加密运算;
将启动标志更新为非首次启动标志。
8.一种嵌入式程序运行装置,其特征在于,包括:
解密密码计算模块,用于通过引导程序对设备标识信息进行加密运算,得到解密密码;
应用程序加载模块,用于如果所述解密密码与预存的加密密码相同,通过所述引导程序加载主程序。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7中任一所述的嵌入式程序运行方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的嵌入式程序运行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010003210.1A CN111191196A (zh) | 2020-01-02 | 2020-01-02 | 嵌入式程序运行方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010003210.1A CN111191196A (zh) | 2020-01-02 | 2020-01-02 | 嵌入式程序运行方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111191196A true CN111191196A (zh) | 2020-05-22 |
Family
ID=70708376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010003210.1A Pending CN111191196A (zh) | 2020-01-02 | 2020-01-02 | 嵌入式程序运行方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111191196A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111752200A (zh) * | 2020-07-08 | 2020-10-09 | 深圳市有方科技股份有限公司 | 程序运行方法、计算机设备及可读存储介质 |
CN113485757A (zh) * | 2021-07-22 | 2021-10-08 | 北京青云科技股份有限公司 | 一种系统启动过程中的解密方法、装置、设备及存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279755A (zh) * | 2010-06-10 | 2011-12-14 | 康佳集团股份有限公司 | 嵌入式设备及其内嵌软件的更新方法 |
CN103336918A (zh) * | 2013-06-21 | 2013-10-02 | 福建伊时代信息科技股份有限公司 | 电子盘系统授权方法和装置 |
CN104331646A (zh) * | 2014-11-27 | 2015-02-04 | 上海斐讯数据通信技术有限公司 | 一种嵌入式系统的加密方法 |
CN104486355A (zh) * | 2014-12-30 | 2015-04-01 | 大连楼兰科技股份有限公司 | 防止代码被恶意篡改的方法和装置 |
CN104765987A (zh) * | 2015-04-17 | 2015-07-08 | 深圳市西迪特科技有限公司 | 嵌入式设备软件加密的系统及方法 |
CN105512517A (zh) * | 2015-11-25 | 2016-04-20 | 成都天奥测控技术有限公司 | 一种嵌入式软件加密方法 |
CN106055932A (zh) * | 2016-05-26 | 2016-10-26 | 东莞博力威电池有限公司 | 带Boot loader功能的MCU程序防抄袭方法和系统 |
CN106384052A (zh) * | 2016-08-26 | 2017-02-08 | 浪潮电子信息产业股份有限公司 | 一种实现BMC U‑boot可信启动控制的方法 |
CN107729069A (zh) * | 2017-10-12 | 2018-02-23 | 浪潮(北京)电子信息产业有限公司 | 一种安全启动显卡的方法、装置、计算机可读存储介质 |
CN107958141A (zh) * | 2017-11-15 | 2018-04-24 | 广西师范大学 | 一种基于芯片id号的软件保护方法 |
WO2018114292A1 (de) * | 2016-12-22 | 2018-06-28 | Fujitsu Technology Solutions Intellectual Property Gmbh | Verfahren zum abgesicherten hochfahren eines computersystems, sowie anordnung, umfassend ein computersystem und ein an das computersystem angeschlossenes externes speichermedium |
CN109684789A (zh) * | 2018-11-19 | 2019-04-26 | 日立楼宇技术(广州)有限公司 | 嵌入式产品中软件安全保护的方法、装置及计算机设备 |
-
2020
- 2020-01-02 CN CN202010003210.1A patent/CN111191196A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279755A (zh) * | 2010-06-10 | 2011-12-14 | 康佳集团股份有限公司 | 嵌入式设备及其内嵌软件的更新方法 |
CN103336918A (zh) * | 2013-06-21 | 2013-10-02 | 福建伊时代信息科技股份有限公司 | 电子盘系统授权方法和装置 |
CN104331646A (zh) * | 2014-11-27 | 2015-02-04 | 上海斐讯数据通信技术有限公司 | 一种嵌入式系统的加密方法 |
CN104486355A (zh) * | 2014-12-30 | 2015-04-01 | 大连楼兰科技股份有限公司 | 防止代码被恶意篡改的方法和装置 |
CN104765987A (zh) * | 2015-04-17 | 2015-07-08 | 深圳市西迪特科技有限公司 | 嵌入式设备软件加密的系统及方法 |
CN105512517A (zh) * | 2015-11-25 | 2016-04-20 | 成都天奥测控技术有限公司 | 一种嵌入式软件加密方法 |
CN106055932A (zh) * | 2016-05-26 | 2016-10-26 | 东莞博力威电池有限公司 | 带Boot loader功能的MCU程序防抄袭方法和系统 |
CN106384052A (zh) * | 2016-08-26 | 2017-02-08 | 浪潮电子信息产业股份有限公司 | 一种实现BMC U‑boot可信启动控制的方法 |
WO2018114292A1 (de) * | 2016-12-22 | 2018-06-28 | Fujitsu Technology Solutions Intellectual Property Gmbh | Verfahren zum abgesicherten hochfahren eines computersystems, sowie anordnung, umfassend ein computersystem und ein an das computersystem angeschlossenes externes speichermedium |
CN107729069A (zh) * | 2017-10-12 | 2018-02-23 | 浪潮(北京)电子信息产业有限公司 | 一种安全启动显卡的方法、装置、计算机可读存储介质 |
CN107958141A (zh) * | 2017-11-15 | 2018-04-24 | 广西师范大学 | 一种基于芯片id号的软件保护方法 |
CN109684789A (zh) * | 2018-11-19 | 2019-04-26 | 日立楼宇技术(广州)有限公司 | 嵌入式产品中软件安全保护的方法、装置及计算机设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111752200A (zh) * | 2020-07-08 | 2020-10-09 | 深圳市有方科技股份有限公司 | 程序运行方法、计算机设备及可读存储介质 |
CN113485757A (zh) * | 2021-07-22 | 2021-10-08 | 北京青云科技股份有限公司 | 一种系统启动过程中的解密方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102546601B1 (ko) | 정적 바이너리 계측을 사용하여 커널 제어-흐름 무결성을 보호하기 위한 방법 및 장치 | |
US11829479B2 (en) | Firmware security verification method and device | |
EP2727040B1 (en) | A secure hosted execution architecture | |
US11138295B2 (en) | Method for securely updating firmware components and docking station using the same | |
CN108229144B (zh) | 一种应用程序的验证方法、终端设备及存储介质 | |
US9256756B2 (en) | Method of encryption and decryption for shared library in open operating system | |
CN111191196A (zh) | 嵌入式程序运行方法、装置、计算机设备及存储介质 | |
CN112148314A (zh) | 一种嵌入式系统的镜像验证方法、装置、设备及存储介质 | |
US20220092155A1 (en) | Protecting an item of software | |
CN114880011A (zh) | Ota升级方法、装置、电子设备及可读存储介质 | |
CN112035803B (zh) | 一种基于Windows平台软件的保护方法及装置 | |
CN116611087A (zh) | 基本输入输出系统加密方法、装置、设备及存储介质 | |
CN112231649A (zh) | 一种固件加密处理方法、装置、设备及介质 | |
US20230315432A1 (en) | Method for designing a firmware, firmware obtained by such a method and method for modifying such a firmware | |
CN111046389A (zh) | 固件组件安全更新的方法以及用以实施的携行计算机站 | |
CN115688120A (zh) | 安全芯片固件导入方法、安全芯片及计算机可读存储介质 | |
CN111158728B (zh) | 固件升级方法、固件启动方法及装置 | |
US20190102573A1 (en) | Theater ears android app sensitive data management | |
US11496304B2 (en) | Information processing device, information processing method, and storage medium | |
CN108256336B (zh) | 操作系统与主板的绑定及识别方法 | |
CN110851881A (zh) | 终端设备的安全检测方法及装置、电子设备及存储介质 | |
TW202014879A (zh) | 韌體組件安全更新的方法以及用以實施的攜行電腦站 | |
CN112231702B (zh) | 应用保护方法、装置、设备及介质 | |
KR20180073041A (ko) | 전자 장치, 그 제어 방법 및 컴퓨터 판독가능 기록 매체 | |
KR20230130413A (ko) | Etcs와 관련된 보안 방법 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200522 |