CN110245466B - 软件完整性保护和验证方法、***、设备及存储介质 - Google Patents
软件完整性保护和验证方法、***、设备及存储介质 Download PDFInfo
- Publication number
- CN110245466B CN110245466B CN201910530809.8A CN201910530809A CN110245466B CN 110245466 B CN110245466 B CN 110245466B CN 201910530809 A CN201910530809 A CN 201910530809A CN 110245466 B CN110245466 B CN 110245466B
- Authority
- CN
- China
- Prior art keywords
- public
- private key
- loader
- software
- key pair
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 160
- 238000012795 verification Methods 0.000 title claims abstract description 56
- 230000008569 process Effects 0.000 claims abstract description 96
- 230000008676 import Effects 0.000 claims description 4
- 238000004806 packaging method and process Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005111 flow chemistry technique Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 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/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种软件完整性保护和验证方法、***、设备及存储介质,所述方法包括:加载器生成第一公私钥对;所述加载器采用所述第一公私钥对中的私钥对核心进程文件进行签名,得到所述核心进程文件的数字签名并存储;安全芯片生成第二公私钥对;所述安全芯片利用所述第二公私钥对中的私钥对存储有所述核心进程文件的签名结果的所述加载器进行签名,得到所述加载器的签名结果并存储。通过采用本发明,基于安全芯片对软件进行完整性保护,利用安全芯片中密钥不可导出的特性和数字签名验证文件完整性的方式,保证软件的核心进程不会被非法篡改和非法启动。
Description
技术领域
本发明涉及软件保护技术领域,尤其涉及一种软件完整性保护和验证方法、***、设备及存储介质。
背景技术
对于一个软件来说,其中有很多核心进程是十分重要的,如果核心进程一旦被非法启动,则会导致软件被非法入侵,软件无法正常运行使用,并且软件的安全性受到严重威胁。对于一个软件来说,一旦启动会实现该软件的核心功能的进程作为该软件的核心进程。为了保证软件的安全使用,需要保护其核心进程所对应的文件不被篡改。核心进程文件即是为了启动核心进程所必须的一些数据文件。例如,对于一个会议***软件来说,将会议接入的编解码算法作为会议***软件的核心进程文件,如果核心进程文件被篡改,则无法实现会议***软件的正常会议接入功能。因此,需要提供一种对软件进行加密验证的方法,保证软件不会被非法篡改和非法启动。
发明内容
针对现有技术中的问题,本发明的目的在于提供一种软件完整性保护和验证方法、***、设备及存储介质,基于安全芯片对软件进行完整性保护,保证软件不会被非法篡改和非法启动。
本发明实施例提供一种软件完整性保护方法,包括如下步骤:
加载器生成第一公私钥对;
所述加载器采用所述第一公私钥对中的私钥对核心进程文件进行签名,得到所述核心进程文件的数字签名并存储;
安全芯片生成第二公私钥对;
所述安全芯片利用所述第二公私钥对中的私钥对存储有所述核心进程文件的签名结果的所述加载器进行签名,得到所述加载器的签名结果并存储。
可选地,还包括如下步骤:
所述安全芯片生成会话密钥,并采用所述会话密钥加密所述第一公私钥对得到第一公私钥对密文;
所述加载器存储所述第一公私钥对密文;
其中,在所述加载器采用所述第一公私钥对中的私钥对核心进程文件进行签名之前,所述方法还包括:
所述安全芯片利用所述会话密钥对所述第一公私钥对密文进行解密,得到所述第一公私钥对中的私钥。
可选地,所述保护方法还包括如下步骤:
所述安全芯片采用所述第二公私钥对中的公钥加密所述会话密钥得到会话密钥密文;
所述加载器存储所述会话密钥密文。
可选地,所述加载器采用所述第一公私钥对中的私钥对核心进程文件进行签名之前,还包括如下步骤:
所述加载器向所述安全芯片导入所述会话密钥密文;
所述安全芯片利用所述第二公私钥对中的私钥对所述会话密钥密文进行解密,得到所述会话密钥。
本发明实施例还提供一种软件完整性验证方法,用于对所述的软件完整性保护方法处理后的软件进行完整性验证,所述验证方法包括如下步骤:
启动待验证软件的加载器;
在检测到安全芯片接入时,所述待验证软件的加载器获取所述安全芯片存储的加载器的数字签名;
将所述数字签名与所述待验证软件的加载器的源文件导入到安全芯片中,利用所述安全芯片中第二公私钥对中的公钥对所述待验证软件的加载器的源文件进行数字签名验证;
在所述待验证软件的加载器验证通过时,获取所述待验证软件的核心进程文件;
利用所述待验证软件的加载器中第一公私钥对中的公钥对所述待验证软件的加载器存储的核心进程文件的数字签名和所述待验证软件的核心进程文件进行数字签名验证。
可选地,所述待验证软件的加载器存储有第一公私钥对密文,所述第一公私钥对密文为采用会话密钥加密所述第一公私钥对得到的;
在所述待验证软件的加载器验证通过之后,还包括如下步骤:
所述安全芯片利用所述会话密钥对所述第一公私钥对密文进行解密,得到所述第一公私钥对中的公钥。
可选地,所述待验证软件的加载器还存储有会话密钥密文,所述会话密钥密文为采用所述第二公私钥对中的公钥加密所述会话密钥得到的;
在所述待验证软件的加载器验证通过之后,还包括如下步骤:
所述安全芯片利用所述第二公私钥对中的私钥对所述会话密钥密文进行解密,得到所述会话密钥。
本发明实施例还提供一种软件完整性保护***,应用于所述的软件完整性保护方法,所述***包括:
加载器模块,存储并运行所述加载器,所述加载器用于生成第一公私钥对,并存储由安全芯片对第一公私钥对加密得到的第一公私钥对密文,以及采用第一公私钥对的私钥对核心进程文件进行签名,得到所述核心进程文件的数字签名并存储;
安全芯片,用于生成第二公私钥对,利用所述第二公私钥对中的私钥对存储有所述核心进程文件的签名结果的所述加载器进行签名,得到所述加载器的签名结果并存储。
本发明实施例还提供一种软件完整性保护设备,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行所述的软件完整性保护方法中加载器执行的步骤。
本发明实施例还提供一种计算机可读存储介质,用于存储程序,所述程序被执行时实现所述的软件完整性保护方法中加载器执行的步骤。
本发明所提供的软件完整性保护和验证方法、***、设备及存储介质具有下列优点:
本发明基于安全芯片对软件进行完整性保护,利用安全芯片中密钥不可导出的特性和数字签名验证文件完整性的方式,保证软件的核心进程不会被非法篡改和非法启动;进一步地,本发明在安全芯片外部利用加载器对核心进程文件进行签名和存储核心进程文件的数字签名,节约安全芯片的物理存储空间和功耗,从而提高软件完整性保护和完整性验证的处理效率。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。
图1是本发明一实施例的软件完整性保护方法的流程图;
图2是本发明一实施例的软件完整性验证方法的流程图;
图3是本发明一实施例的软件完整性保护***的结构示意图;
图4是本发明一实施例的软件完整性保护设备的结构示意图;
图5是本发明一实施例的计算机存储介质的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本发明将全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。
如图1所示,本发明实施例提供一种软件完整性保护方法,包括如下步骤:
S110:加载器生成第一公私钥对;
S120:所述加载器采用所述第一公私钥对中的私钥对核心进程文件进行签名,得到所述核心进程文件的数字签名并存储;
S130:安全芯片生成第二公私钥对;
S140:所述安全芯片利用所述第二公私钥对中的私钥对存储有所述核心进程文件的签名结果的所述加载器进行签名,得到所述加载器的签名结果并存储。
所述加载器的数字签名可以用于在软件完整性验证时对加载器本身的完整性验证,保证加载器的内容不被非法篡改,在加载器本身验证通过后,才使用加载器和安全芯片进一步验证核心进程文件。因此,本发明提供了加载器的数字签名和核心进程文件的数字签名的双重完整性保障,避免软件被非法篡改和非法启动。
其中各个步骤的序号仅为标识和区分,而不限制各个步骤的执行顺序,例如可以按照图1中的顺序执行步骤S110~S140,也可以先执行步骤S130,后执行步骤S110,或者先执行步骤S110,再执行步骤S130,后执行步骤S120等等,均属于本发明的保护范围之内。
此处核心进程文件即为对于软件来说,影响其核心进程正常运行的核心进程文件,可以由加密工作人员自行选定一部分软件源文件作为核心进程文件,通过该核心进程文件的完整性保护,实现对软件完整性进行保护。
本发明采用加载器,并基于安全芯片对软件的核心进程文件进行完整性保护,通过数字签名的方式保护核心进程文件不被非法篡改。其中,本发明的加载器指的是预先编写的软件程序文件,在启动该加载器时,执行该加载器的软件程序文件中的程序指令,从而执行步骤S110和S120,在安全芯片外部对核心进程文件进行签名,并且将核心进程文件的数字签名添加到自身的源文件中,下文中所述加载器存储内容时,均是指的加载器将被存储内容添加到自身的源文件中。因为核心进程文件的数字签名过程是在安全芯片外部进行的,并且核心进程文件的数字签名存储在加载器中,而无需存储在安全芯片中,节约了安全芯片的物理存储空间和功耗,从而提高软件完整性保护和后续完整性验证的处理效率。进一步地,本发明通过步骤S130~S140,通过安全芯片的第二公私钥对中的私钥对存储有所述核心进程文件的签名结果的所述加载器进行签名,保障加载器的完整性,利用安全芯片中密钥不可导出的特点,保证加载器不会被非法篡改,进一步保障软件不会被非法篡改和非法启动。
在步骤S140完成后,将加载器和核心进程文件打包作为待验证的软件包,在后续进行软件完整性验证方法时,采用该待验证的软件包和安全芯片进行软件完整性验证即可,具体验证方法将在下文中结合图2具体说明。
在步骤S110加载器生成了第一公私钥对之后,如果加载器直接存储第一公私钥对会有被窃取的风险,如果第一公私钥对被窃取,窃取者就可以重新生成签名,伪装验证通过,从而导致核心进程文件的验证不再可靠。基于此,在该实施例中,所述软件完整性保护方法还包括:所述安全芯片生成会话密钥,并采用所述会话密钥加密所述第一公私钥对得到第一公私钥对密文;所述加载器存储所述第一公私钥对密文。
在所述步骤S120加载器采用所述第一公私钥对中的私钥对核心进程文件进行签名之前,所述方法还包括:所述安全芯片利用所述会话密钥对所述第一公私钥对密文进行解密,得到所述第一公私钥对中的私钥。
由此,加载器中仅存储第一公私钥对密文,在需要采用第一公私钥对进行加密和解密时,需要安全芯片采用会话密钥对第一公私钥对密文进行解密。由于会话密钥不可从安全芯片中导出,因此,窃取者即使获取到了第一公私钥对密文也不可能解密得到第一公私钥对,也就无法伪造核心进程文件的数字签名,大大保障了核心进程文件安全验证的有效性。
在该实施例中,所述软件完整性保护方法还包括:所述安全芯片采用所述第二公私钥对中的公钥加密所述会话密钥得到会话密钥密文;所述加载器存储所述会话密钥密文。
在该实施例中,所述加载器采用所述第一公私钥对中的私钥对核心进程文件进行签名之前,还包括如下步骤:
所述加载器向所述安全芯片导入所述会话密钥密文;
所述安全芯片利用所述第二公私钥对中的私钥对所述会话密钥密文进行解密,得到所述会话密钥。
因此,该实施例中,进一步采用第二公私钥对保护所述会话密钥,以数字信封的形式处理加载器生成的第一公私钥。利用第二公私钥和会话密钥存储在安全芯片中不可导出的特性,第一公私钥对只能采用安全芯片进行解密。安全芯片中无需存储会话密钥,只需要加载器中存储会话密钥密钥,在加载器将会话密钥密文导入到安全芯片中时,安全芯片可以采用第二公私钥对的私钥解密会话密钥密文得到本次会话所采用的会话密钥。因此,该实施例在基于安全芯片更安全地保护第二公私钥的基础上,无需针对每次会话单独存储会话密钥,节省了安全芯片的物理存储空间。
如图2所示,本发明实施例还提供一种软件完整性验证方法,用于对采用图1所述的软件完整性保护方法处理后的软件进行完整性验证,所述验证方法包括如下步骤:
S210:启动待验证软件的加载器;
S220:在检测到安全芯片接入时,所述待验证软件的加载器获取所述安全芯片存储的加载器的数字签名;
S230:将所述数字签名与所述待验证软件的加载器的源文件导入到安全芯片中,利用所述安全芯片中第二公私钥对中的公钥对所述待验证软件的加载器的源文件进行数字签名验证;
S240:在所述待验证软件的加载器验证通过时,获取所述待验证软件的核心进程文件;
S250:利用所述待验证软件的加载器中第一公私钥对中的公钥对所述待验证软件的加载器存储的核心进程文件的数字签名和所述待验证软件的核心进程文件进行数字签名验证。
在实际应用中,当管理员拿到一个待验证的软件包和安全芯片时,待验证的软件包包括加载器和核心进程文件。首先由管理员***安全芯片,输入安全芯片PIN码,此处PIN码的作用是取得安全芯片的授权,从而可以采用安全芯片执行后续操作。然后启动加载器,在加载器检测到安全芯片接入后,执行步骤S220,在步骤S240中对加载器验证成功后,通过步骤S250进一步对核心进程文件验证,对加载器和核心进程文件的双重验证均成功后,则对软件完整性验证成功,可以正常启动软件。由加载器启动软件的所有进程后,加载器停止工作,管理员可以拔出安全芯片,从而实现软件正常运行。
本发明通过首先利用安全芯片加载器本身的完整性进行验证,防止加载器被篡改。由于后续核心进程文件的验证是采用加载器进行的,如果加载器本身已经被篡改,则后续对核心进程文件的验证也就失效了。因此,首先对于加载器的完整性进行验证,在验证成功之后,再将加载器应用于核心进程文件的完整性验证。
因此,本发明通过对加载器和核心进程文件的双重验证,大大提高了软件完整性验证的准确性,并且通过安全芯片中密钥不可导出的特性,加载器的数字签名验证只能由安全芯片进行,避免了由第二公私钥对被窃取而签名被伪造的问题。
此外,由于步骤S250中对核心进程文件的签名验证是在安全芯片的外部进行的,大大节省了安全芯片的计算量,也就节约了安全芯片的功耗,提高了软件完整性验证的效率。由于验证过程中使用的所述核心进程文件的数字签名是存储在加载器中即存储在安全芯片外部的,也可以节约安全芯片的存储空间。
由于加载器中只存储有第一公私钥对密文,因此,步骤S220中,第一公私钥对密文需要由安全芯片中解密才能得到第一公私钥对的公钥,然后才能通过步骤S230中,采用第一公私钥对的公钥解密所述核心进程文件的数字签名,采用解密得到的文件对所述待验证的核心进程文件进行验证,如果验证通过,则说明核心进程文件未被篡改,可以正常启动核心进程,如果验证失败,则说明核心进程文件被篡改过,停止启动核心进程并告警。因此,本发明通过核心进程文件的数字签名验证,可以对软件进行完整性验证,并且基于安全芯片的密钥不可导出的特性,步骤S220中,对核心进程文件进行签名的第一公私钥对的公钥只能由安全芯片解密得到,从而结合安全芯片的加解密和加载器的加解密,大大提高软件保护的安全性。
与上述软件完整性保护方法相对应地,为了进一步保护第一公私钥对的安全性,避免核心进程文件的数字签名被伪造。所述待验证软件的加载器并非存储直接存储第一公私钥对的明文,而是存储有第一公私钥对密文,所述第一公私钥对密文为采用会话密钥加密所述第一公私钥对得到的。
在所述待验证软件的加载器验证通过之后,还包括如下步骤:
所述安全芯片利用所述会话密钥对所述第一公私钥对密文进行解密,得到所述第一公私钥对中的公钥,然后再继续执行步骤S250。
由此,即使窃取者非法获取到第一公私钥对密文,因为会话密钥不可从安全芯片中导出,其也不能对第一公私钥对密文进行解密,从而保证核心进程文件的数字签名无法伪造,保障核心进程文件的完整性验证的有效性。
进一步地,与上述软件完整性保护方法相对应地,安全芯片中也可以无需针对每次会话均存储会话密钥,而是仅存储有第二公私钥对即可。所述待验证软件的加载器还存储有会话密钥密文,所述会话密钥密文为采用所述第二公私钥对中的公钥加密所述会话密钥得到的。
在所述待验证软件的加载器验证通过之后,还包括如下步骤:
所述安全芯片利用所述第二公私钥对中的私钥对所述会话密钥密文进行解密,得到所述会话密钥,然后将会话密钥应用于对第一公私钥对密文的解密。
由此,安全芯片中也无需存储会话密钥密文,只需要存储一个第二公私钥对即可,并且第二公私钥对可以应用于多个会话密钥的加密。而对于每个第一公私钥对的加密的会话密钥,其密文存储于加载器中,在采用第二公私钥对解密后即可得到针对于该第一公私钥对加密的会话密钥,从而节省了安全芯片本身的存储空间,并且可以最大限度地利用安全芯片中密钥不可导出的特性,保障第一公私钥对的安全。
如图3所示,本发明实施例还提供一种软件完整性保护***,应用于所述的软件完整性保护方法,所述***包括加载器模块M100和安全芯片M200。
所述加载器模块M100存储所述加载器的源文件并运行所述加载器的源文件中的程序指令,所述加载器用于生成第一公私钥对,并存储由安全芯片对第一公私钥对加密得到的第一公私钥对密文,以及采用第一公私钥对的私钥对核心进程文件M300进行签名,得到所述核心进程文件M300的数字签名并存储;
所述安全芯片M200用于生成第二公私钥对,利用所述第二公私钥对中的私钥对存储有所述核心进程文件M300的签名结果的所述加载器进行签名,得到所述加载器的签名结果并存储。
本发明通过加载器模块M100对核心进程文件M300进行数字签名,可以对软件的核心进程文件M300的完整性进行保护,并且通过安全芯片M200对加载器本身进行数字签名,可以对加载器的完整性进行保护,保障软件核心文件验证所采用的加载器本身的安全性,从而提高软件完整性保护效果,避免软件被非法篡改和非法启动。
具体地,加载器模块M100实现各个功能的实施方式和安全芯片M200实现各个功能的实施方式可以参照上述软件完整性保护的各个步骤S110~S140的具体实施方式,在此不予赘述。
进一步地,该软件完整性保护***还可以实现软件完整性的验证,即所述加载器模块M100和安全芯片M200采用如图2所示的软件完整性验证方法执行步骤S210~S250,对软件完整性进行有效快速验证。
本发明实施例还提供一种软件完整性保护设备,包括处理器;存储器,其中存储有所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行所述的软件完整性保护方法中加载器执行的步骤。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为***、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
下面参照图4来描述根据本发明的这种实施方式的电子设备600。图4显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同***组件(包括存储单元620和处理单元610)的总线630、显示单元640等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元610可以执行如图1中所示的步骤中加载器执行的步骤,即步骤S110、S130和S140,并与安全芯片一起配合使用。
所述存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
所述存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
本发明实施例还提供一种计算机可读存储介质,用于存储程序,所述程序被执行时实现所述的软件完整性保护方法中加载器执行的步骤,即步骤S110、S130和S140,并与安全芯片一起配合使用。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。
参考图5所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
综上所述,与现有技术相比,本发明所提供的软件完整性保护和验证方法、***、设备及存储介质具有下列优点:
本发明所提供的软件完整性保护和验证方法、***、设备及存储介质具有下列优点:
本发明基于安全芯片对软件进行完整性保护,利用安全芯片中密钥不可导出的特性和数字签名验证文件完整性的方式,保证软件的核心进程不会被非法篡改和非法启动;进一步地,本发明在安全芯片外部利用加载器对核心进程文件进行签名和存储核心进程文件的数字签名,节约安全芯片的物理存储空间和功耗,从而提高软件完整性保护和完整性验证的处理效率。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种软件完整性保护方法,其特征在于,包括如下步骤:
加载器生成第一公私钥对;
所述加载器采用所述第一公私钥对中的私钥对核心进程文件进行签名,得到所述核心进程文件的数字签名并存储至自身的源文件中;
安全芯片生成第二公私钥对;
所述安全芯片利用所述第二公私钥对中的私钥对存储有所述核心进程文件的签名结果的所述加载器进行签名,得到所述加载器的签名结果并存储;
将加载器和核心进程文件打包作为待验证的软件包。
2.根据权利要求1所述的软件完整性保护方法,其特征在于,还包括如下步骤:
所述安全芯片生成会话密钥,并采用所述会话密钥加密所述第一公私钥对得到第一公私钥对密文;
所述加载器存储所述第一公私钥对密文;
其中,在所述加载器采用所述第一公私钥对中的私钥对核心进程文件进行签名之前,所述方法还包括:
所述安全芯片利用所述会话密钥对所述第一公私钥对密文进行解密,得到所述第一公私钥对中的私钥。
3.根据权利要求2所述的软件完整性保护方法,其特征在于,所述保护方法还包括如下步骤:
所述安全芯片采用所述第二公私钥对中的公钥加密所述会话密钥得到会话密钥密文;
所述加载器存储所述会话密钥密文。
4.根据权利要求3所述的软件完整性保护方法,其特征在于,所述加载器采用所述第一公私钥对中的私钥对核心进程文件进行签名之前,还包括如下步骤:
所述加载器向所述安全芯片导入所述会话密钥密文;
所述安全芯片利用所述第二公私钥对中的私钥对所述会话密钥密文进行解密,得到所述会话密钥。
5.一种软件完整性验证方法,其特征在于,用于对采用权利要求1至4中任一项所述的软件完整性保护方法处理后的软件进行完整性验证,所述验证方法包括如下步骤:
启动待验证软件的加载器;
在检测到安全芯片接入时,所述待验证软件的加载器获取所述安全芯片存储的加载器的数字签名;
将所述数字签名与所述待验证软件的加载器的源文件导入到安全芯片中,利用所述安全芯片中第二公私钥对中的公钥对所述待验证软件的加载器的源文件进行数字签名验证;
在所述待验证软件的加载器验证通过时,获取所述待验证软件的核心进程文件;
利用所述待验证软件的加载器中第一公私钥对中的公钥对所述待验证软件的加载器存储的核心进程文件的数字签名和所述待验证软件的核心进程文件进行数字签名验证。
6.根据权利要求5所述的软件完整性验证方法,其特征在于,所述待验证软件的加载器存储有第一公私钥对密文,所述第一公私钥对密文为采用会话密钥加密所述第一公私钥对得到的;
在所述待验证软件的加载器验证通过之后,还包括如下步骤:
所述安全芯片利用所述会话密钥对所述第一公私钥对密文进行解密,得到所述第一公私钥对中的公钥。
7.根据权利要求6所述的软件完整性验证方法,其特征在于,所述待验证软件的加载器还存储有会话密钥密文,所述会话密钥密文为采用所述第二公私钥对中的公钥加密所述会话密钥得到的;
在所述待验证软件的加载器验证通过之后,还包括如下步骤:
所述安全芯片利用所述第二公私钥对中的私钥对所述会话密钥密文进行解密,得到所述会话密钥。
8.一种软件完整性保护***,其特征在于,应用于权利要求1至3中任一项所述的软件完整性保护方法,所述***包括:
加载器模块,存储并运行所述加载器,所述加载器用于生成第一公私钥对,并存储由安全芯片对第一公私钥对加密得到的第一公私钥对密文,以及采用第一公私钥对的私钥对核心进程文件进行签名,得到所述核心进程文件的数字签名并存储;
安全芯片,用于生成第二公私钥对,利用所述第二公私钥对中的私钥对存储有所述核心进程文件的签名结果的所述加载器进行签名,得到所述加载器的签名结果并存储。
9.一种软件完整性保护设备,其特征在于,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至4中任一项所述的软件完整性保护方法中加载器执行的步骤。
10.一种计算机可读存储介质,用于存储程序,其特征在于,所述程序被执行时实现权利要求1至4中任一项所述的软件完整性保护方法中加载器执行的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910530809.8A CN110245466B (zh) | 2019-06-19 | 2019-06-19 | 软件完整性保护和验证方法、***、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910530809.8A CN110245466B (zh) | 2019-06-19 | 2019-06-19 | 软件完整性保护和验证方法、***、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110245466A CN110245466A (zh) | 2019-09-17 |
CN110245466B true CN110245466B (zh) | 2021-08-24 |
Family
ID=67887990
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910530809.8A Active CN110245466B (zh) | 2019-06-19 | 2019-06-19 | 软件完整性保护和验证方法、***、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110245466B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112699343A (zh) * | 2019-10-23 | 2021-04-23 | 华为技术有限公司 | 一种软件完整性保护、校验的方法及装置 |
CN113127814B (zh) * | 2019-12-31 | 2023-03-14 | 杭州海康威视数字技术股份有限公司 | 软件防抄方法、装置、电子设备及可读存储介质 |
CN113329030A (zh) | 2020-07-08 | 2021-08-31 | 支付宝(杭州)信息技术有限公司 | 区块链一体机及其密码加速卡、密钥管理方法和装置 |
CN112613030A (zh) * | 2020-12-15 | 2021-04-06 | 深圳市燃气集团股份有限公司 | 一种基于物联网燃气表的可信安全启动方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101149773A (zh) * | 2007-08-27 | 2008-03-26 | 中国人民解放军空军电子技术研究所 | 一种基于软件实名认证的***及其安全查证方法 |
US20100199325A1 (en) * | 2009-01-28 | 2010-08-05 | Headwater Partners I Llc | Security techniques for device assisted services |
CN103914658A (zh) * | 2013-01-05 | 2014-07-09 | 展讯通信(上海)有限公司 | 终端设备的安全启动方法及终端设备 |
US10162543B1 (en) * | 2017-12-15 | 2018-12-25 | Qualcomm Incorporated | System and method for power mode selection in a computing device |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7386736B2 (en) * | 2004-12-16 | 2008-06-10 | International Business Machines Corporation | Method and system for using a compact disk as a smart key device |
CN101282222B (zh) * | 2008-05-28 | 2011-09-28 | 胡祥义 | 基于组合对称密钥的数字签名方法 |
JP5736994B2 (ja) * | 2011-06-15 | 2015-06-17 | 株式会社リコー | 情報処理装置、正当性検証方法、及びプログラム |
US20130031371A1 (en) * | 2011-07-25 | 2013-01-31 | Alcatel-Lucent Usa Inc. | Software Run-Time Provenance |
CN103946856B (zh) * | 2013-09-30 | 2016-11-16 | 华为技术有限公司 | 加解密处理方法、装置和设备 |
CN103995992A (zh) * | 2014-05-28 | 2014-08-20 | 全联斯泰克科技有限公司 | 一种软件的保护方法和装置 |
CN109768862B (zh) * | 2019-03-12 | 2019-11-22 | 北京深思数盾科技股份有限公司 | 一种密钥管理方法、密钥调用方法及密码机 |
-
2019
- 2019-06-19 CN CN201910530809.8A patent/CN110245466B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101149773A (zh) * | 2007-08-27 | 2008-03-26 | 中国人民解放军空军电子技术研究所 | 一种基于软件实名认证的***及其安全查证方法 |
US20100199325A1 (en) * | 2009-01-28 | 2010-08-05 | Headwater Partners I Llc | Security techniques for device assisted services |
CN103914658A (zh) * | 2013-01-05 | 2014-07-09 | 展讯通信(上海)有限公司 | 终端设备的安全启动方法及终端设备 |
US10162543B1 (en) * | 2017-12-15 | 2018-12-25 | Qualcomm Incorporated | System and method for power mode selection in a computing device |
Non-Patent Citations (4)
Title |
---|
Malicious Code Detection for Android Using Instruction Signatures;Hu Ge , et al.;《2014 IEEE 8th International Symposium on Service Oriented System Engineering (SOSE)》;20140612;第1卷;第332-337页 * |
基于UEFI的可信Tiano设计与研究;曾颖明 等;《计算机工程与设计》;20090616;第30卷(第11期);第2645-2648页 * |
基于虚拟机监控技术的可信虚拟域;邢彬 等;《信息安全学报》;20160115;第1卷(第1期);第75-94页 * |
基于重定义JVM类加载器移动代码的安全;张爱娟 等;《计算机工程》;20060620;第32卷(第4期);第177-178,202页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110245466A (zh) | 2019-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110245466B (zh) | 软件完整性保护和验证方法、***、设备及存储介质 | |
JP4664398B2 (ja) | インクリメンタルなコード署名の方法及び装置 | |
CN110519309B (zh) | 数据传输方法、装置、终端、服务器及存储介质 | |
CN100487715C (zh) | 一种数据安全存储***和装置及方法 | |
US7987374B2 (en) | Security chip | |
US9973496B2 (en) | Controlled use of a hardware security module | |
CN102262599B (zh) | 一种基于可信根的移动硬盘指纹认证方法 | |
EP3316160A1 (en) | Authentication method and apparatus for reinforced software | |
US8369526B2 (en) | Device, system, and method of securely executing applications | |
CN111931158A (zh) | 一种双向认证方法、终端以及服务器 | |
US9256756B2 (en) | Method of encryption and decryption for shared library in open operating system | |
CN108229144B (zh) | 一种应用程序的验证方法、终端设备及存储介质 | |
JP2010517449A (ja) | 信頼できない受信者における秘密の保護 | |
US20230370262A1 (en) | Wireless Terminal and Method for Authenticating Interface Access of Wireless Terminal in Uboot Mode | |
CN113946863A (zh) | 数据加密存储方法、***、设备及存储介质 | |
CN112115491B (zh) | 一种对称加密密钥保护方法、装置、设备及存储介质 | |
KR101859823B1 (ko) | 키 백업을 사용한 랜섬웨어 방지 시스템 및 방법 | |
CN114816549B (zh) | 一种保护bootloader及其环境变量的方法及*** | |
CN110674525A (zh) | 一种电子设备及其文件处理方法 | |
CN107861892B (zh) | 一种实现数据处理的方法及终端 | |
US20230017231A1 (en) | Securely executing software based on cryptographically verified instructions | |
CN114866228A (zh) | 一种实现软密码模块的方法、***、存储介质及终端 | |
CN112825093B (zh) | 安全基线检查方法、主机、服务器、电子设备及存储介质 | |
CN108667594B (zh) | 一种基于pki公钥算法的软件程序模块完整性检测方法 | |
CN111639353A (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 |