CN115859267A - 一种应用程序安全启动的方法、存储控制芯片和电子设备 - Google Patents

一种应用程序安全启动的方法、存储控制芯片和电子设备 Download PDF

Info

Publication number
CN115859267A
CN115859267A CN202211479804.5A CN202211479804A CN115859267A CN 115859267 A CN115859267 A CN 115859267A CN 202211479804 A CN202211479804 A CN 202211479804A CN 115859267 A CN115859267 A CN 115859267A
Authority
CN
China
Prior art keywords
application program
value
key information
information
signature
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
Application number
CN202211479804.5A
Other languages
English (en)
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.)
Shenzhen Anjilite New Technology Co ltd
Original Assignee
Shenzhen Anjilite New Technology 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 Shenzhen Anjilite New Technology Co ltd filed Critical Shenzhen Anjilite New Technology Co ltd
Priority to CN202211479804.5A priority Critical patent/CN115859267A/zh
Publication of CN115859267A publication Critical patent/CN115859267A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明公开了一种应用程序安全启动的方法、存储控制芯片和电子设备,该包括以下步骤:获取原始应用程序信息,对原始应用程序信息进行哈希运算,得到第一摘要值;获取第一密钥信息,采用第一密钥信息对第一摘要值进行加密,得到第一签名值;将原始应用程序信息和第一签名值对应存储,得到应用程序包;S4:当接收到对应用程序包的操作指令时,获取第二密钥信息,采用第二密钥信息对第一签名值进行解密,得到第一校验摘要值;以及再次对原始应用程序信息进行哈希运算,得到第二校验摘要值,比较第一校验摘要值与第二校验摘要值是否一致,若是则执行操作指令。通过上述方案,在执行对应用程序的操作指令前进行验签操作,有效保证了数据的安全性。

Description

一种应用程序安全启动的方法、存储控制芯片和电子设备
技术领域
本发明涉及芯片控制领域,尤其涉及一种应用程序安全启动的方法、存储控制芯片和电子设备。
背景技术
随着经济全球化的不断深入发展,国际分工越来越复杂化,国家间的供应链依赖度也会越来越大。随着金融安全上升到国家安全高度,近年来国家有关机关和监管机构站在国家安全和长远战略的高度提出了推动国密算法应用实施、加强行业安全可控的要求。如何摆脱对国外技术和产品的过度依赖,建设行业网络安全环境,增强我国行业信息系统的“安全可控”能力显得尤为必要和迫切。
目前,若需要执行电子设备的命令或者程序需要通过厂商提供的专用工具将安装程序安装到存储设备(如SSD盘),然后再关闭相应的接口以防恶意程序篡改存储设备(如SSD盘)中的数据。高标准的固态硬盘芯片中应带有认证应用程序的数字签章算法,在程序执行前须经由复杂的解密以及认证算法所认证,凡是经过窜改的程序将会被此算法所拒绝,并且无法执行。
目前的计算机启动安全系统一般采用如下方式:
第一种通过软件进行用户访问权限的管控,比如在系统或者某个应用程序启动过程中通过输入密码来控制程序的启动过程;通过软件进行用户访问权限的管理控制的方法简单,易破解,保密性差,一旦SSD出现漏洞,恶意程序窃取用户数据、隐私并上传,会对个人用户造成严重影响;对行业用户来说若数据被盗后果将更加严重,这涉及到企业或者行业机密,一旦公开损失无法估量,所以企业用户、行业用户对SSD数据安全尤其敏感。
第二种就是对SSD硬盘的固件进行加密,系统在加载固件时对固件进行安全校验,如发现固件被恶意更改,固件将不会被加载,系统不会启动。但这种方式只是针对SSD盘固件的篡改星网,相对来说目前针对固件的篡改行为几乎寥寥无几,目前主要还是对应用程序进行的篡改,来获得用户的重要数据信息。
因此,提供一种数据安全的保护方案,针对应用程序进行的篡改进行保护,进而保证用户的数据安全就显得十分重要。
发明内容
为此,需要提供一种应用程序安全启动的技术方案,用于解决应用程序容易被篡改、用户数据安全无法得到保障的技术问题。
为满足上述需求,在第一方面,本发明提供了一种应用程序安全启动的方法,方法包括以下步骤:
S1:获取原始应用程序信息,对原始应用程序信息进行哈希运算,得到第一摘要值;
S2:获取第一密钥信息,采用第一密钥信息对第一摘要值进行加密,得到第一签名值;
S3:将原始应用程序信息和第一签名值对应存储,得到应用程序包;
S4:当接收到对应用程序包的操作指令时,获取第二密钥信息,采用第二密钥信息对第一签名值进行解密,得到第一校验摘要值;以及对应用程序包中的原始应用程序信息进行哈希运算,得到第二校验摘要值,比较第一校验摘要值与第二校验摘要值是否一致,若是则执行操作指令,否则拒绝执行操作指令。
作为一种可选的实施例,应用程序包中还存储有哈希认证值;方法在“获取第二密钥信息”之后、“采用第二密钥信息对第一签名值进行解密”之前还包括以下步骤:
对获取的第二密钥信息进行哈希运算,得到密钥哈希值;
比较密钥哈希值与应用程序包中的哈希认证值是否一致,若是则执行步骤采用第二密钥信息对第一签名值进行解密,否则停止执行。
作为一种可选的实施例,第一密钥信息存储于第一存储单元中;方法包括:
判断第一存储单元是否位于当前电子设备中,若是则在执行步骤S1-S2后执行步骤S3,否则拒绝执行步骤S3;当前电子设备为获取第一密钥信息的电子设备。
作为一种可选的实施例,第二密钥信息存储于第二存储单元,第二存储单元为OTP存储器。
作为一种可选的实施例,原始应用程序信息包括应用程序和原始参数信息,原始参数信息包括生产产商标识信息、生产批次信息、生成时间戳信息中的任一项或多项。
作为一种可选的实施例,哈希运算采用SM3密码哈希算法。
作为一种可选的实施例,“采用第一密钥信息对第一摘要值进行加密,得到第一签名值”包括:根据第一加密算法采用第一密钥信息对第一摘要值进行加密,得到第一签名值;第一密钥信息为私钥信息;
“采用第二密钥信息对第一签名值进行解密,得到第一校验摘要值”包括:根据第一加密算法对应的解密算法采用第二密钥信息对第一签名值进行解密,得到第一校验摘要值;第二密钥信息为私钥信息对应的公钥信息。
作为一种可选的实施例,操作指令为应用程序包安装指令、下载指令、启动指令中的任一项或多项。
在第二方面,本发明还提供了一种存储控制芯片,芯片包括控制模块和存储模块;控制模块用于执行如本发明第一方面的方法中的步骤S4,以确定是否将应用程序包写入存储模块或从存储模块中读取应用程序包。
在第三方面,本发明还提供了一种电子设备,包括处理器和存储控制芯片;存储控制芯片为如本发明第二方面的存储控制芯片;
处理器用于执行如本发明第一方面的方法中的步骤S1-S3。
区别于现有技术,本发明提供了一种应用程序安全启动的方法、存储控制芯片和电子设备,该包括以下步骤:S1:获取原始应用程序信息,对所述原始应用程序信息进行哈希运算,得到第一摘要值;S2:获取第一密钥信息,采用所述第一密钥信息对所述第一摘要值进行加密,得到第一签名值;S3:将所述原始应用程序信息和所述第一签名值对应存储,得到应用程序包;S4:当接收到对所述应用程序包的操作指令时,获取第二密钥信息,采用所述第二密钥信息对所述第一签名值进行解密,得到第一校验摘要值;以及对所述应用程序包中的所述原始应用程序信息进行哈希运算,得到第二校验摘要值,比较所述第一校验摘要值与所述第二校验摘要值是否一致,若是则执行所述操作指令,否则拒绝执行所述操作指令。通过上述方案,在执行对应用程序的操作指令前进行验签操作,有效保证了数据的安全性。
附图说明
图1为本发明一实施方式涉及的应用程序安全启动的方法的流程图;
图2为本发明另一实施方式涉及的应用程序安全启动的方法的流程图;
图3为本发明一实施方式涉及的签名过程的原理示意图;
图4为本发明一实施方式涉及的验签过程的原理示意图;
图5为本发明一实施方式涉及的应用程序安全启动的原理示意图;
图6为本发明一实施方式涉及的存储控制芯片的模块示意图;
图7为本发明一实施方式涉及的电子设备的模块示意图;
附图标记:
10、电子设备;
101、处理器;
102、存储控制芯片;
1021、控制模块;
1022、存储模块。
具体实施方式
为详细说明本申请可能的应用场景,技术原理,可实施的具体方案,能实现目的与效果等,以下结合所列举的具体实施例并配合附图详予说明。本文所记载的实施例仅用于更加清楚地说明本申请的技术方案,因此只作为示例,而不能以此来限制本申请的保护范围。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中各个位置出现的“实施例”一词并不一定指代相同的实施例,亦不特别限定其与其它实施例之间的独立性或关联性。原则上,在本申请中,只要不存在技术矛盾或冲突,各实施例中所提到的各项技术特征均可以以任意方式进行组合,以形成相应的可实施的技术方案。
除非另有定义,本文所使用的技术术语的含义与本申请所属技术领域的技术人员通常理解的含义相同;本文中对相关术语的使用只是为了描述具体的实施例,而不是旨在限制本申请。
在本申请的描述中,用语“和/或”是一种用于描述对象之间逻辑关系的表述,表示可以存在三种关系,例如A和/或B,表示:存在A,存在B,以及同时存在A和B这三种情况。另外,本文中字符“/”一般表示前后关联对象是一种“或”的逻辑关系。
在本申请中,诸如“第一”和“第二”之类的用语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何实际的数量、主次或顺序等关系。
在没有更多限制的情况下,在本申请中,语句中所使用的“包括”、“包含”、“具有”或者其他类似的表述,意在涵盖非排他性的包含,这些表述并不排除在包括要素的过程、方法或者产品中还可以存在另外的要素,从而使得包括一系列要素的过程、方法或者产品中不仅可以包括那些限定的要素,而且还可以包括没有明确列出的其他要素,或者还包括为这种过程、方法或者产品所固有的要素。
与《审查指南》中的理解相同,在本申请中,“大于”、“小于”、“超过”等表述理解为不包括本数;“以上”、“以下”、“以内”等表述理解为包括本数。此外,在本申请实施例的描述中“多个”的含义是两个以上(包括两个),与之类似的与“多”相关的表述亦做此类理解,例如“多组”、“多次”等,除非另有明确具体的限定。
如图1所示,在第一方面,本发明提供了一种应用程序安全启动的方法,方法包括以下步骤:
S1:获取原始应用程序信息,对原始应用程序信息进行哈希运算,得到第一摘要值;
S2:获取第一密钥信息,采用第一密钥信息对第一摘要值进行加密,得到第一签名值;
S3:将原始应用程序信息和第一签名值对应存储,得到应用程序包;
S4:当接收到对应用程序包的操作指令时,获取第二密钥信息,采用第二密钥信息对第一签名值进行解密,得到第一校验摘要值;以及对应用程序包中的原始应用程序信息进行哈希运算,得到第二校验摘要值,比较第一校验摘要值与第二校验摘要值是否一致,若是则执行操作指令,否则拒绝执行操作指令。
在本实施方式中,原始应用程序信息包含了待执行操作指令的应用程序,可以是APP、文件、图片、视频、文字等。哈希运算可以通过哈希函数来完成,哈希函数可以是MD4、MD5、SHS等。哈希值的计算原理是可以累积的块运算(任意大的数据都可以会被分割为多个小块数据来执行运算),所以每次运算需要一个哈希初始值和待运算数据,第一次进行小块运算时候可以将哈希初始值置零,在第一次运算完毕后,将得到的哈希值迭代更新作为第二小块数据执行运算的哈希初始值,然后再与第二小块待运算数据进行运算得到新的哈希值,以此类推一直到结束为止。原始应用程序信息作为待运算的数据,在经过哈希运算后可以得到特定长度(如256比特)的摘要值,即第一摘要值。
在本实施方式中,第一密钥信息存储于第一存储单元中,第一存储单元优选为OTP存储器(即一次性可编程单元),这样可以有效防止第一密钥信息被篡改。在获取第一密钥信息之后,可以采用第一密钥信息对第一摘要值进行加密,得到第一签名值。由于生成的第一签名值是基于第一密钥信息加密后得到,而第一摘要值又是基于原始应用程序信息经过哈希运算得到的,可以使得不同原始应用程序信息得到的第一摘要值、第一签名值均不相同,在后续验签过程中有效提升了数据的安全性。
在本实施方式中,应用程序包存储于电子设备安全的存储区域中,安全的存储区域是指电子设备在出厂时经过产商认证过的存储区域,通常可以视为存储至安全的存储区域内的数据保密性较好,不容易被破译篡改。为了进一步提升数据安全性,第一密钥信息与应用程序包是分开存储在不同的存储单元中,这样即便黑客只破译了应用程序包中的原始应用程序信息也会因无法完成验签认证对应用程序执行任何操作,而如果只破译了第一密钥信息也会因为验签操作时采用的是第二密钥信息对应用程序无从下手,从而大大提升了数据的安全性。
在本实施方式中,正确的第二密钥信息为第一密钥信息对应的解密密钥,即第一摘要值经过第一密钥信息进行加密后得到第一签名值,如果采用正确的第二密钥信息对第一签名值进行解密后,所得到的第一校验摘要值应与第一摘要值保持一致,第一摘要值即校验摘要值。而第二校验摘要值是重新获取应用程序包中的原始应用程序信息进行哈希运算得到的,再次进行哈希计算的目的是保证写入应用程序包中的原始应用程序信息准确无误,没有被篡改,若第一校验摘要值与第二校验摘要值一致,若校验通过,执行操作指令;否则拒绝执行操作指令。优选的,操作指令为应用程序包安装指令、下载指令、启动指令中的任一项或多项。
通过上述方案,在生成应用程序包进行签名生成,并将生成的第一签名值与应用程序包对应存储,若需要针对应用程序包中的原始应用程序信息执行操作指令,则需要进行验签操作,只有在验签操作通过后操作指令才会被执行,从而有效保证了数据的安全性。
如图2所示,应用程序包中还存储有哈希认证值;方法在“获取第二密钥信息”之后、“采用第二密钥信息对第一签名值进行解密”之前还包括以下步骤:首先进入步骤S201对获取的第二密钥信息进行哈希运算,得到密钥哈希值;而后进入步骤S202比较密钥哈希值与应用程序包中的哈希认证值是否一致,若是则执行步骤采用第二密钥信息对第一签名值进行解密,否则停止执行。优选的,第二密钥信息存储于第二存储单元,第二存储单元为OTP存储器,防止存储单元中的第二密钥信息被篡改。
由于第二密钥信息是解密密钥,因而在将第二密钥信息从第二存储单元中读出后,保证其本身不被篡改也显得尤为重要,通过预先在应用程序包中写入哈希认证值,在获取第二密钥信息后先对其本身进行哈希计算,再将计算得到的密钥哈希值与应用程序包中的哈希认证值进行比较,只有两者一致才会进行下一操作,如果不一致则停止载入应用程序包并报错,进一步提升了数据的安全性。
在另一些实施例中,待比较的对象还可以是第二密钥信息的签名证书,第二密钥信息的签名证书是指采用采用第二密钥信息对第二密钥信息本身数据计算得到的哈希值进行加密后得到的第二签名值,当哈希认证值为第二签名值时,在获取第二密钥信息后会先对其本身进行哈希计算,得到密钥哈希值,而后采用第二密钥信息对计算得到的密钥哈希值进行加密运算,得到待校验的签名值,再将计算得到的待校验的签名值与应用程序包中的第二签名值进行比较,若两者一致则执行下一操作,否则止载入应用程序包并报错,进一步提升了数据的安全性。
在某些实施例中,方法包括:判断第一存储单元是否位于当前电子设备中,若是则在执行步骤S1-S2后执行步骤S3,否则拒绝执行步骤S3;当前电子设备为获取第一密钥信息的电子设备。这样,只有拥有第一密钥信息的电子设备才可以生成受保护的应用程序包,进一步提升了数据的安全性。
在某些实施例中,原始应用程序信息包括应用程序和原始参数信息,原始参数信息包括生产产商标识信息、生产批次信息、生成时间戳信息中的任一项或多项。这样,不同原始应用程序信息计算得到的第一摘要值各不相同,保证验签的唯一性。在另一些实施例中,还可以在电子设备中设置一随机数生成器,当某一原始应用程序信息生成过程中,随机数生成器随机生成一个随机数,该随机数作为原始参数信息之一写入原始应用程序信息中,进而保证各个原始应用程序信息的唯一性。
在某些实施例中,“采用第一密钥信息对第一摘要值进行加密,得到第一签名值”包括:根据第一加密算法采用第一密钥信息对第一摘要值进行加密,得到第一签名值;第一密钥信息为私钥信息。“采用第二密钥信息对第一签名值进行解密,得到第一校验摘要值”包括:根据第一加密算法对应的解密算法采用第二密钥信息对第一签名值进行解密,得到第一校验摘要值;第二密钥信息为私钥信息对应的公钥信息。简言之,在生成签名过程中采用私钥信息进行加密,在验签过程中采用公钥信息进行解密,采用非对称加密算法实现在签名过程和验签过程密钥信息的解绑,有效提升了应用程序包执行操作指令的安全性。
优选的,哈希运算采用SM3密码哈希算法,第一加密算法采用SM2加密算法。本发明涉及的方法采用基于国密SM2/SM3算法,能够实现存储设备中应用程序包的安全启动,安全启动可以通过Secureboot来完成,Secureboot指的是建立用于运行已验证应用程序的可信平台的启动序列。它从一个不可变的序列开始,使用密码验证验证代码的源,从而只执行授权的软件。启动序列将设备置于已知的安全状态,并检测软件的二进制操作和反射攻击。Secureboot的目的就是确保在系统平台上所执行的程序代码是厂商确认过的,避免有人恶意修改系统程序的恶意行为。只有通过认证的软件或者程序才能启动运行。
SSD应用程序是安全的关键,恶意程序要想窃取数据就需要先过应用程序加密认证这一关。高标准的固态硬盘芯片中应带有认证应用程序的数字签章算法,在应用程序执行前须经由复杂的解密以及认证算法所认证,凡是经过窜改的应用程序程序将会被此算法所拒绝,并且无法执行于固态硬盘中。采用本发明的加密认证算法在应用程序程序认证时,会经由安全加密认证的硬件安全加密模块所加密,并且将加密认证所需的私人密钥储存于硬件安全模块中,且其私人密钥将不能被任何人所访问。
SM3哈希算法是我国自主设计的密码哈希算法,适用于商用密码应用中的数字签名和验证消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。为了保证哈希算法的安全性,其产生的哈希值的长度不应太短,例如MD5输出128比特哈希值,输出长度太短,影响其安全性SHA-1算法的输出长度为160比特,SM3算法的输出长度为256比特,因此SM3算法的安全性要高于MD5算法和SHA-1算法。
SM2算法是非对称加密算法,公钥、私钥分开,其中私钥只能储存于硬件安全加密模块中,并且无法被任何人所访问,此方法杜绝了第三方程序窃密的可能性。SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,包括SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。SM2算法与RSA算法不同的是,SM2算法是基于椭圆曲线上点群离散对数难题,相对于RSA算法,256位的SM2密码强度已经比2048位的RSA密码强度要高。
采用RSA算法和SM2算法的优劣对比如下方表1所示:
Figure BDA0003960955150000111
表1
如图6所示,在第二方面,本发明提供了一种存储控制芯片102,该芯片包括控制模块1021和存储模块1022;控制模块1021用于执行如本发明第一方面的方法中的步骤S4,以确定是否将应用程序包写入存储模块1022或从存储模块中1022读取应用程序包。控制模块1021为存储模块1022的驱动控制单元。
存储控制芯片102可以为固态控制器芯片,如NVMe固态控制器芯片。本发明创造性地在NVMe固态控制器芯片中引入了国密算法相关技术和标准,在具体实现过程中,引入了多种密钥存储管理的方式,在保证自主可控存储性能先进性的同时,满足业务灵活部署的需要。从数据安全角度看,本发明的加密固态存储控制器芯片支持国家密码管理局审定批准的SM2数字签名算法、SM3密码哈希算法,可以为用户认证和数据安全提供强大的保护。
如图7所示,在第三方面,本发明提供了一种电子设备10,包括处理器101和存储控制芯片102;存储控制芯片102为如本发明第二方面的存储控制芯片102。处理器101用于执行如本发明第一方面的方法中的步骤S1-S3。在某些实施例中,所述电子设备可以由多个设备组成,即包括第一电子设备和第二电子设备,处理器位于第一电子设备中,用于执行发送端的方法步骤,存储控制芯片位于第二电子设备中,用于执行接收端的方法步骤。
在本实施例中,电子设备为计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等。存储模块包括但不限于:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。处理器包括但不限于CPU(中央处理器)、GPU(图像处理器)、MCU(微处理器)等。
如图3所示,为采用SM2算法进行数字签名的过程示意图。具体流程如下:
1.发送者基于原始消息计算第一摘要值。
2.发送者采用私钥(即第一密钥信息)对第一摘要值进行签名得到第一签名值。
3.发送者将原始消息和第一签名值一同发给接收者。
如图4所示,本发明涉及的一种验签流程的示意图。具体流程如下:
1.接收者接收到发送者发出的消息后,拆分出原始消息和消息签名值A(即第一签名值)。
2.接收者使用公钥(即第二密钥信息)对原始消息进行运算得到第一校验摘要值。
3.接收者对原始消息进行哈希运算得到第二校验摘要值,将第一校验摘要值和第二校验摘要值进行比较,若相同表示签名验证成功,否则就是验证失败。
在上述步骤中,“消息”是指待发送给接收端的消息,包括前文提及的原始应用程序信息,原始消息和第一签名值可以以应用程序包的方式存储于安全的存储区域中。“发送者”是指消息的发出端,可以是一台电子设备,如上位机。“接收者”是指消息的接收端,也可以是一台电子设备,如下位机。
如图5所示,本发明的应用程序验证的目的就是确保在系统平台上所执行的程序代码是厂商确认过的,避免有人恶意修改系统程序的恶意行为,只有通过认证的软件或者程序才能启动运行。主机端存储有私钥和公钥相关信息,只有拥有私钥的主机才可以生成受保护的应用程序包。签名具体流程如下:
1.原始应用程序信息需含有或者加上时间戳、生产商、批次等信息;
2.对原始应用程序信息进行SM3密码哈希运算(调用SM3密码哈希运算模块),生成256比特哈希值;
3.对计算得到的256比特哈希值进行SM2签名生成操作,得到512比特数字签名值以及一些附加信息;
4.原始应用程序信息、512比特数字签名值(包括附加信息)以及公钥哈希值(或者承载公钥的证书)形成受保护的应用程序包。
该应用程序包可以在安装或者写入SSD固态存储盘时进行签名认证,也可以在下载时或者启动时对其进行SM2签名验证,验签步骤描述具体如下:
1.获得应用程序包;从一次编程存储器OTP中读取公钥信息,算出公钥信息对应的哈希值,将公钥信息对应的哈希值与应用程序包中的应用程序公钥哈希值进行比较,如果不相等,则报错并停止载入。
2.对应用程序包中的原始应用程序信息进行SM3哈希运算得到256比特哈希值;
3.将应用程序包中的原始应用程序信息通过SM3哈希算法得到哈希值与经过SM2算法处理数字签名SM2签名验证操作得到哈希值(即采用认证通过的公钥信息对第一签名值进行解密后得到的摘要值)进行比较;若通过,则允许应用程序启动或者下载;若签名验证失败,则拒绝应用程序启动或者下载操作。
本发明支持GM/T0003-2012《SM2椭圆曲线公钥密码算法》所规定的数字签名算法和公钥加密算法,支持完整的签名生成和签名验证功能,并提供了基点和任意公钥点的点乘算法接口。在加密固态存储控制器芯片中,可以协助软件高效完成签名和验证操作。本发明的各个模块均可以采用硬件实现,独立运行,不对外泄露敏感信息。SM2涉及到的密钥可以由真随机数发生器生成,保证有足够的熵。SM2签名和认证模块对参数及运算结果均进行检查,保证密码算法的健壮性和可靠性。
相比于RSA算法,国密算法更具自主可控,安全性更高。目前几乎所有的安全启动算法使用的都是RSA算法,此算法基于SM2国密算法;本发明的SM2数字签名生成和验证可以用于应用程序验证,SM2算法是基于椭圆曲线上点群离散对数难题,相对于RSA算法,256位的SM2密码强度已经比2048位的RSA密码强度要高;本发明中原始应用程序执行的哈希预算使用的是SM3密码哈希算法,其安全水平达到128位,SM3密码摘要算法是中国国家密码管理局2010年公布的中国商用密码哈希算法标准。SM3算法适用于商用密码应用中的数字签名和验证,其安全性要高于MD5算法和SHA-1算法。
从数据安全角度看,本发明的加密固态存储控制器芯片支持国家密码管理局审定批准的SM2数字签名算法、SM3密码哈希算法,可以为用户认证和数据安全提供强大的保护,保证自主可控存储性能先进性。
本发明能够实现在SSD盘上的应用程序或者重要安装文件时防止被篡改。SD应用程序是安全的关键,恶意程序要想窃取数据就需要先过应用程序加密认证这一关。高标准的固态硬盘芯片中应带有认证应用程序的数字签章算法,在应用程序执行前须经由复杂的解密以及认证算法所认证,凡是经过窜改的应用程序程序将会被此算法所拒绝,并且无法执行于固态硬盘中。此加密认证算法在应用程序程序认证时,会经由安全加密认证的硬件安全加密模块所加密,并且将加密认证所需的私人密钥储存于硬件安全模块中,且其私人密钥将不能被任何人所访问。
本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法的全部或部分步骤。
上述各实施例是参照根据实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。

Claims (10)

1.一种应用程序安全启动的方法,其特征在于,所述方法包括以下步骤:
S1:获取原始应用程序信息,对所述原始应用程序信息进行哈希运算,得到第一摘要值;
S2:获取第一密钥信息,采用所述第一密钥信息对所述第一摘要值进行加密,得到第一签名值;
S3:将所述原始应用程序信息和所述第一签名值对应存储,得到应用程序包;
S4:当接收到对所述应用程序包的操作指令时,获取第二密钥信息,采用所述第二密钥信息对所述第一签名值进行解密,得到第一校验摘要值;以及对所述应用程序包中的所述原始应用程序信息进行哈希运算,得到第二校验摘要值,比较所述第一校验摘要值与所述第二校验摘要值是否一致,若是则执行所述操作指令,否则拒绝执行所述操作指令。
2.如权利要求1所述的应用程序安全启动的方法,其特征在于,所述应用程序包中还存储有哈希认证值;所述方法在“获取第二密钥信息”之后、“采用所述第二密钥信息对所述第一签名值进行解密”之前还包括以下步骤:
对获取的所述第二密钥信息进行哈希运算,得到密钥哈希值;
比较所述密钥哈希值与所述应用程序包中的哈希认证值是否一致,若是则执行步骤采用所述第二密钥信息对所述第一签名值进行解密,否则停止执行。
3.如权利要求1所述的应用程序安全启动的方法,其特征在于,所述第一密钥信息存储于第一存储单元中;所述方法包括:
判断所述第一存储单元是否位于当前电子设备中,若是则在执行步骤S1-S2后执行步骤S3,否则拒绝执行步骤S3;所述当前电子设备为获取第一密钥信息的电子设备。
4.如权利要求1或2所述的应用程序安全启动的方法,其特征在于,所述第二密钥信息存储于第二存储单元,所述第二存储单元为OTP存储器。
5.如权利要求1或2所述的应用程序安全启动的方法,其特征在于,所述原始应用程序信息包括应用程序和原始参数信息,所述原始参数信息包括生产产商标识信息、生产批次信息、生成时间戳信息中的任一项或多项。
6.如权利要求1或2所述的应用程序安全启动的方法,其特征在于,所述哈希运算采用SM3密码哈希算法。
7.如权利要求1或2所述的应用程序安全启动的方法,其特征在于,
“采用所述第一密钥信息对所述第一摘要值进行加密,得到第一签名值”包括:根据第一加密算法采用所述第一密钥信息对所述第一摘要值进行加密,得到第一签名值;所述第一密钥信息为私钥信息;
“采用所述第二密钥信息对所述第一签名值进行解密,得到第一校验摘要值”包括:根据所述第一加密算法对应的解密算法采用所述第二密钥信息对所述第一签名值进行解密,得到第一校验摘要值;所述第二密钥信息为所述私钥信息对应的公钥信息。
8.如权利要求1或2所述的应用程序安全启动的方法,其特征在于,所述操作指令为应用程序包安装指令、下载指令、启动指令中的任一项或多项。
9.一种存储控制芯片,其特征在于,所述芯片包括控制模块和存储模块;所述控制模块用于执行如权利要求1至8任一项所述的方法中的步骤S4,以确定是否将所述应用程序包写入所述存储模块或从所述存储模块中读取所述应用程序包。
10.一种电子设备,其特征在于,包括处理器和存储控制芯片;所述存储控制芯片为如权利要求9所述的存储控制芯片;
所述处理器用于执行如权利要求1至8任一项所述的方法中的步骤S1-S3。
CN202211479804.5A 2022-11-24 2022-11-24 一种应用程序安全启动的方法、存储控制芯片和电子设备 Pending CN115859267A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211479804.5A CN115859267A (zh) 2022-11-24 2022-11-24 一种应用程序安全启动的方法、存储控制芯片和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211479804.5A CN115859267A (zh) 2022-11-24 2022-11-24 一种应用程序安全启动的方法、存储控制芯片和电子设备

Publications (1)

Publication Number Publication Date
CN115859267A true CN115859267A (zh) 2023-03-28

Family

ID=85665659

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211479804.5A Pending CN115859267A (zh) 2022-11-24 2022-11-24 一种应用程序安全启动的方法、存储控制芯片和电子设备

Country Status (1)

Country Link
CN (1) CN115859267A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116738507A (zh) * 2023-08-14 2023-09-12 中科亿海微电子科技(苏州)有限公司 一种芯片鉴权方法
CN117290823A (zh) * 2023-11-21 2023-12-26 中国电信股份有限公司江西分公司 一种app智能检测与安全防护方法、计算机设备及介质
CN117335988A (zh) * 2023-11-30 2024-01-02 中国信息通信研究院 App的电子标识生成、标注、安全校验方法及设备
CN117556430A (zh) * 2024-01-12 2024-02-13 上海芯联芯智能科技有限公司 一种安全启动方法、装置、设备及存储介质

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116738507A (zh) * 2023-08-14 2023-09-12 中科亿海微电子科技(苏州)有限公司 一种芯片鉴权方法
CN116738507B (zh) * 2023-08-14 2023-11-10 中科亿海微电子科技(苏州)有限公司 一种芯片鉴权方法
CN117290823A (zh) * 2023-11-21 2023-12-26 中国电信股份有限公司江西分公司 一种app智能检测与安全防护方法、计算机设备及介质
CN117335988A (zh) * 2023-11-30 2024-01-02 中国信息通信研究院 App的电子标识生成、标注、安全校验方法及设备
CN117335988B (zh) * 2023-11-30 2024-03-12 中国信息通信研究院 App的电子标识生成、标注、安全校验方法及设备
CN117556430A (zh) * 2024-01-12 2024-02-13 上海芯联芯智能科技有限公司 一种安全启动方法、装置、设备及存储介质
CN117556430B (zh) * 2024-01-12 2024-03-29 上海芯联芯智能科技有限公司 一种安全启动方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
EP3324572B1 (en) Information transmission method and mobile device
CN115859267A (zh) 一种应用程序安全启动的方法、存储控制芯片和电子设备
CN109981562B (zh) 一种软件开发工具包授权方法及装置
CN110688660B (zh) 一种终端安全启动的方法及装置、存储介质
US20210012008A1 (en) Method of initializing device and method of updating firmware of device having enhanced security function
CN108768963B (zh) 可信应用与安全元件的通信方法和系统
JP5613596B2 (ja) 認証システム、端末装置、認証サーバ、およびプログラム
US20180204004A1 (en) Authentication method and apparatus for reinforced software
CN107733636B (zh) 认证方法以及认证系统
CN109145628B (zh) 一种基于可信执行环境的数据采集方法及系统
CN112953707A (zh) 密钥加密方法、解密方法及数据加密方法、解密方法
CN107920052B (zh) 一种加密方法及智能装置
CN108462700B (zh) 后台服务器、终端设备、适用于人脸识别的安全预警方法及存储介质
CN103138939A (zh) 云存储模式下基于可信平台模块的密钥使用次数管理方法
CN111130798B (zh) 一种请求鉴权方法及相关设备
CN112241527B (zh) 物联网终端设备的密钥生成方法、系统及电子设备
CN112257093B (zh) 数据对象的鉴权方法、终端及存储介质
CN113395406B (zh) 一种基于电力设备指纹的加密认证方法及系统
CN113114668A (zh) 一种信息传输方法、移动终端、存储介质及电子设备
WO2022052665A1 (zh) 无线终端及无线终端在Uboot模式下的接口访问鉴权方法
CN111740995B (zh) 一种授权认证方法及相关装置
CN109891823B (zh) 用于凭证加密的方法、系统以及非暂态计算机可读介质
CN109302442B (zh) 一种数据存储证明方法及相关设备
CN116881936A (zh) 可信计算方法及相关设备
CN115001864B (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