CN116305005A - 一种软件加密服务的应用方法、装置及*** - Google Patents
一种软件加密服务的应用方法、装置及*** Download PDFInfo
- Publication number
- CN116305005A CN116305005A CN202211499957.6A CN202211499957A CN116305005A CN 116305005 A CN116305005 A CN 116305005A CN 202211499957 A CN202211499957 A CN 202211499957A CN 116305005 A CN116305005 A CN 116305005A
- Authority
- CN
- China
- Prior art keywords
- data
- loading
- loading request
- service
- application
- 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 79
- 238000012795 verification Methods 0.000 claims abstract description 49
- 238000004422 calculation algorithm Methods 0.000 claims description 36
- 238000003860 storage Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 12
- 238000004806 packaging method and process Methods 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000005538 encapsulation Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000002441 reversible effect Effects 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
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Remote Sensing (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种软件加密服务的应用方法、装置及***,涉及本发明涉及应用安全技术领域,主要目的在于让应用软件的客户端无需将密码模块在本地部署,通过远程加载的方式提高密码模块的应用安全性。本发明主要的技术方案为:在应用软件启动时,调用服务加载器,所述服务加载器用于远程加载密码模块,所述密码模块用于提供软件加密服务;根据加载请求数据,生成待验证加载请求,所述加载请求数据用于指定所述应用软件需要的密码模块;发送所述待验证加载请求至服务端,所述服务端在验证通过后反馈与所述加载请求数据相对应的密码模块;利用所述服务加载器将所述服务端反馈的密码模块加载至对应的内存中运行,以向所述应用软件提供软件加密服务。
Description
技术领域
本发明涉及应用安全技术领域,尤其涉及一种软件加密服务的应用方法、装置及***。
背景技术
随着互联网技术的普及,依托于互联网的网络应用也得到了爆发式的增长,而随着人们对应用软件使用的普及化,应用软件的数据安全被越来越多的人们所关注,因而,现有的网络应用软件在对应用数据进行存储与交互时都会使用密码模块对应用数据进行加密处理,以确保用户数据的安全性。
目前,应用软件所采用的密码模块一般以库文件的形式静态存储在应用软件***的本地磁盘中,并在应用软件运行时由***加载该密码模块。然而,这种静态存储的密码模块的方式容易遭受静态逆向分析、恶意篡改等攻击,导致应用数据的安全受到威胁。因此,需要一种针对应用软件的密码模块防篡改应用方式。
发明内容
鉴于上述问题,本发明提出了一种软件加密服务的应用方法、装置及***,主要目的在于让应用软件的客户端无需将密码模块在本地部署,通过远程加载的方式提高密码模块的应用安全性。
为达到上述目的,本发明主要提供如下技术方案:
第一方面,本发明提供一种软件加密服务的应用方法,所述方法应用于客户端,包括:
在应用软件启动时,调用服务加载器,所述服务加载器用于远程加载密码模块,所述密码模块用于提供软件加密服务;
根据加载请求数据,生成待验证加载请求,所述加载请求数据用于指定所述应用软件需要的密码模块;
发送所述待验证加载请求至服务端,所述服务端在验证通过后反馈与所述加载请求数据相对应的密码模块;
利用所述服务加载器将所述服务端反馈的密码模块加载至对应的内存中运行,以向所述应用软件提供软件加密服务。
第二方面,本发明提供一种软件加密服务的应用方法,所述方法应用于服务端,包括:
接收客户端发送的待验证加载请求,所述待验证加载请求中基于加载请求数据生成,所述加载请求数据用于指定所述应用软件需要的密码模块;
通过预设算法验证所述待验证加载请求是否合法;
若是,则根据所述加载请求数据获取对应的密码模块,并反馈给所述客户端;
若否,则发送验证失败信息,终止远程加载流程。
第三方面,本发明提供一种软件加密服务的应用装置,所述装置应用于客户端,包括:
调用单元,用于在应用软件启动时,调用服务加载器,所述服务加载器用于远程加载密码模块,所述密码模块用于提供软件加密服务;
生成单元,用于根据加载请求数据,生成待验证加载请求;
发送单元,用于发送所述生成单元得到的待验证加载请求至服务端,所述服务端在验证通过后反馈与所述加载请求数据相对应的密码模块;
加载运行单元,用于利用所述调用单元调用的服务加载器将所述服务端反馈的密码模块加载至对应的内存中运行,以向所述应用软件提供软件加密服务。
第四方面,本发明提供一种软件加密服务的应用装置,所述装置应用于服务端,包括:
接收单元,用于接收客户端发送的待验证加载请求,所述待验证加载请求基于加载请求数据生成,所述加载请求数据用于指定所述应用软件需要的密码模块;
验证单元,用于通过预设算法验证所述接收单元得到的待验证加载请求是否合法;
反馈单元,用于在所述验证单元确定合法时,根据所述加载请求数据获取对应的密码模块,并反馈给所述客户端;
终止单元,用于在所述验证单元确定不合法时,发送验证失败信息,终止远程加载流程。
第五方面,本发明提供一种软件加密服务的应用***,所述***包括至少一个客户端以及至少一个服务端,其中,所述客户端执行上述第一方面所述的软件加密服务的应用方法;所述服务端执行上述第二方面所述的软件加密服务的应用方法。
另一方面,本发明还提供一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述第一方面的软件加密服务的应用方法。
另一方面,本发明还提供一种存储介质,所述存储介质用于存储计算机程序,其中,所述计算机程序运行时控制所述存储介质所在设备执行上述第一方面的软件加密服务的应用方法。
借由上述技术方案,本发明提供的一种软件加密服务的应用方法、装置及***,能够实现在应用软件客户端中不再部署密码模块,通过远程加载的方式实现密码模块的动态加载,可以有效防止密码模块被破解、篡改等攻击,提高应用安全性。在本发明中,应用软件客户端通过部署服务加载器来代替密码模块,在应用软件启动的同时调用该服务加载器,并基于对加密服务的需求获取加载请求数据,以生成待验证加载请求,并将其发送给服务端;由服务端验证该待验证加载请求,在验证无误后,根据加载请求数据查找对应的密码模块,再将该密码模块反馈给客户端;客户端将将密码模块直接加载至运行服务加载器所对应的内存中,使得密码模块不会在磁盘中记录有其运行过程中所产生的相关数据,从而降低了密码模块在应用时被攻击的风险。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提出的一种应用于客户端的软件加密服务的应用方法流程图;
图2示出了另一种应用于客户端的软件加密服务的应用方法流程图;
图3示出了本发明实施例提出的一种应用于服务端的软件加密服务的应用方法流程图;
图4示出了另一种应用于服务端的软件加密服务的应用方法流程图;
图5示出了本发明实施例提出的一种应用于客户端的软件加密服务的应用装置结构示意图;
图6示出了另一种应用于客户端的软件加密服务的应用装置结构示意图;
图7示出了本发明实施例提出的一种应用于服务端的软件加密服务的应用装置结构示意图;
图8示出了另一种应用于服务端的软件加密服务的应用装置结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
随着移动互联网的普及,应用软件在人们的日常生活中已不可缺少。然而,应用软件的安全性一直被人们所质疑,这主要的原因一方面是终端设备存在的安全隐患,而更主要是还是应用软件自身在网络交互中对用户数据的保护存在漏洞。目前,对应用软件中数据的保护主要采用的是在应用软件的客户端侧设置密码模块,通过该密码模块为数据进行加密服务,从而提高应用数据的安全性,而这种密码模块由于是在客户端侧静态存储的,其更新需要基于应用软件进行,而且,这种设置方式也极易收到网络攻击使得其数据保护能力降低。为此,本发明实施例提供了一种软件加密服务的应用方法,该方法是在应用软件的客户端侧不再配置静态存储的密码模块,而是向服务端请求远程加载动态的密码模块,如此,客户端所使用的加密码模块为动态更新的,其安全性更高;服务端而可以维护更多种类的密码模块,实现对密码模块的快速更新,减少密码模块因被攻击而导致数据安全问题。
具体的,如图1所示,针对本发明实施例的软件加密服务的应用方法,先说明应用于客户端一侧的具体实现步骤,包括:
101、在应用软件启动时,调用服务加载器。
本步骤中应用软件的启动是指该应用软件的客户端在其所在终端***中开始运行,此时,基于应用软件的启动指令,同时调用服务加载器。在本实施例中,服务加载器是在安装应用软件的同时配置在终端***中的,其作用是远程加载密码模块,即密码模块不是随着应用软件配置,而是需要通过服务加载器获取,其中,密码模块用于提供软件加密服务,确保应用软件数据的安全。
102、根据加载请求数据,生成待验证加载请求。
服务加载器被调用的同时,客户端还会采集当前终端***的环境参数,如操作***版本,磁盘以及内存参数、处理器参数等计算资源;同时还会根据应用软件的参数信息,如版本信息、用户信息以及软件服务端信息等,确定该应用软件所需要加载密码模块的加载请求数据。之后,将环境参数与加载请求数据进行组合,生成待验证加载请求。需要说明的是,生成待验证加载请求的执行主体可以是客户端,也可以是被调用的服务加载器;也就是说,本实施例中的服务加载器可以仅用于对密码模块的加载,也可以负责对加载请求数据的处理,生成待验证加载请求,并与服务端进行交互,获取密码模块。
其中,该待验证加载请求是指服务端在接收到请求后需要对该待验证加载请求进行身份验证,在验证通过后,才会响应所请求的内容,即反馈对应的密码模块以及相关数据等内容。因此,待验证加载请求是对加载请求数据以及环境参数数据进行加密、封装处理后的得到的请求,对此,本实施例不具体限定该加密、封装的具体实现方式。
103、发送待验证加载请求至服务端。
本步骤为向服务端发送加载密码模块请求的步骤。服务端在验证通过后,将反馈与加载请求数据相对应的密码模块,而在验证未通过后,会反馈验证失败信息,结束本次的加载请求,而客户端在接收到验证失败信息后,将根据需求在此发送待验证加载请求或在本地生成提示信息告知用户应用软件运行存在安全风险。
104、利用服务加载器将服务端反馈的密码模块加载至对应的内存中运行,以向应用软件提供软件加密服务。
本步骤是在服务端响应待验证加载请求后,向客户端反馈所请求的密码模块。需要说明的是,本步骤在加载密码模块时,并不是将其存储在终端的磁盘中,而是将其加载至内存中,该内存的地址为服务加载器在终端中运行所分配的对应内存地址。因此,对于密码模块而言,其不会在终端磁盘中产生相关的存储信息,关于密码模块的运行以及其所生成的相关数据均存储在内存中,当应用软件结束运行后,其对应的服务加载器也将被注销,而服务加载器所对应内存中的数据,包括密码模块及其相关数据也将同时被清除,这就让密码模块具有动态加载的性质,使得应用软件在每次启动后,都会重新向服务端获取密码模块,并且可以根据不同需求向服务端获取不同的密码模块,以降低密码模块被恶意攻击的风险。
基于上述图1的实现方式可以看出,本发明实施例在客户端一侧,是通过以远程加载请求的方式,向服务端动态获取相应的密码模块来实现为应用软件提供软件加密服务。因此,对于应用软件而言,其不再需要在客户端一侧配置固定的密码模块,取而代之的是在客户端一侧配置服务加载器,同时生成加载请求,从服务端获取密码模块,在得到密码模块后,还会将其存储在服务加载器对应的内存中直接运行,不会保存在磁盘,因而,在应用软件运行期间,可以有效降低密码模块被攻击的风险,而在应用软件重启后,原密码模块也将被清除,并从服务端重新请求加载,如此,也增加了密码模块被篡改的风险。
进一步的,本发明优选实施例是在上述图1的基础上,针对加载请求的生成以及密码模块在内存中运行过程进行的详细说明,其具体步骤如图2所示,包括:
201、在应用软件启动时,调用服务加载器。
该步骤与图1实施例中的步骤101相同,此处不再赘述。
202、对服务加载器进行初始化,确定该服务加载器对应的私钥与证书。
本步骤中初始化的目的是确保服务加载器所配置的相关数据为最新数据。因为,应用软件在启动的同时会调用服务加载器,但如果服务加载器中的数据仍然为前一次的数据,则有可能增加其被恶意篡改数据的风险,因而,在服务加载器被调用时,会对该服务加载器进行初始化。
其初始化的内容包括确定该服务加载器的证书、私钥、服务端信息、密码模块需求信息等。其中,证书与私钥是为了提高请求的安全性,由服务端对加载请求进行验证;服务端信息是为了确定加载请求所发送的目标地址;密码模块需求信息则是为了确定当前应用软件所需要采用的密码模块。
203、根据应用软件的运行环境,获取加载请求数据。
不同版本的密码模块,其运行需要根据具体的运行环境而定,比如,对应不同操作***的手机终端而言,其运行环境就可以分为Android***与IOS***,不同的操作***需要运行不同版本的密码模块。因而,在生成加载请求之前,需要先采集应用软件的运行环境的相关参数,进而确定适用于该应用软件的密码模块的相关数据,从这些相关数据中进一步确定加载请求数据,其中,加载请求数据用于指定所述应用软件在该运行环境下运行所需要的密码模块,包括但不限于密码模块的版本信息。
204、通过预设算法计算加载请求数据的摘要值,并利用私钥对摘要值进行签名。
为了保证加载请求数据在交互过程中的安全,本步骤在发送请求之前,先对加载请求数据进行加密处理。具体的加密方式不限定于对称加密、非对称加密等方式,在本实施例中,可以利用预设的摘要算法对加载请求数据计算其摘要值,之后,在利用初始化的私钥对该摘要值进行签名。
进一步的,在计算摘要值时,为了提高数据安全性。本实施例还可以利用服务加载器生成一个随机数,随机数的长度可以预先设置,而该长度的大小决定到了摘要值的复杂程度,即长度越大,摘要值的计算越复杂,越难以被篡改,但考虑到计算效率与安全性的平衡,需要将该长度设置在一个合理范围内,例如,本实施例中,该随机数的长度为32字节。在得到该随机数后,将该随机数与加载请求数据进行组合,其具体的组合方式也是预先设定的。最后,计算组合后数据的摘要值,并使用私钥对该摘要值进行签名,得到含有加载请求数据的签名数据。其中,本实施例对摘要算法不做具体限定,可以是SM3算法,也可以是SHA256等摘要算法。
205、根据签名与证书生成待验证加载请求。
利用签名数据与初始化的证书共同生成待验证加载请求。其中,证书中含有用于对签名数据进行验签的公钥。因此,在待验证加载请求中限定证书的目的是为了让服务端在验证证书无误后,能够得到公钥来验签签名数据,进一步提高交互数据的安全性与准确性。
206、发送待验证加载请求至服务端。
该步骤与图1实施例中的步骤103相同,此处不再赘述。
207、将服务端反馈的密码模块加载至服务加载器对应的内存中运行,以向应用软件提供软件加密服务。
本实施例中,该步骤是在接收到服务端反馈的密码模块后所执行的相应操作。需要说明的是,由于服务端在反馈密码模块时,会将密码模块以及应用数据进行预设封装并加密处理,以确保其在传输过程中的安全。因此,本步骤中从服务端获取到的密码模块是经过封装与加密处理后的数据,客户端在将该数据加载到内存后,还需要对该数据进行解密,得到封装数据,之后,再利用预设的解封算法处理该封装数据,得到可以运行的密码模块以及支持该密码模块运行的应用数据。其中,解密算法与服务端的加密算法相对应,解封算法与服务端的预设封装算法相对应。其中,本实施例采用将应用数据中的配置文件、密钥信息、数据库等数据与密码模块进行混淆封装,以提高数据被篡改的难度。
208、在应用软件运行结束时清空服务加载器对应的内存中的数据。
本步骤的目的是为了实现密码模块的动态加载。由于密码模块是加载在内存中,因此,本实施例会对应用软件的运行状态进行检测,当检测到应用软件运行结束时,将对服务加载器对应的内存中的数据进行清除操作,即将本次所加载并运行的密码模块,以及密码模块在应用软件运行期间所产生的数据进行统计删除。如此,当应用软件再次启动时,就需要重新向服务端发送请求,加载新的密码模块。
进一步的,为了提高密码模块的安全性,本发明实施例还可以针对存储密码模块的内存进行监控,在发现该内存中的目标数据被修改时,则发出报警信息,并重启应用软件,以重新加载该密码模块。其中,目标数据为密码模块用于提供软件加密服务的标准数据,这些标准数据一般是不会随着应用软件的运行而改变的,因此,一旦这些目标数据发生变化,就说明密码模块存在数据被篡改的问题,此时,就需要终止使用该密码模块提供的软件加密服务。
对应于上述的图1、2所示的在客户端一侧的实施例,以下实施例将说明在服务端一侧所采用的软件加密服务的应用方法,其具体步骤如图3所示,包括:
301、接收客户端发送的待验证加载请求。
其中,待验证加载请求基于加载请求数据生成,所述加载请求数据用于指定所述应用软件需要的密码模块。待验证加载请求的相关内容已在上述客户端一侧实施例中进行了详细说明,此处不再赘述。
服务端在接收到待验证加载请求后,为了确保安全,需要对发送方的身份进行验证,以确保发送方为合法的客户端。
302、通过预设算法验证待验证加载请求是否合法。
本步骤是对待验证加载请求的合法性进行验证。对应图1实施例中所生成的待验证加载请求可知,该待验证加载请求是经过加密、封装处理的请求,而该加密、封装的具体方式是预设的,因此,服务端能够根据预设的加密、封装方式而预设对应的解密、解封算法,以验证待验证加载请求的合法性。即在服务端的预设算法与在客户端生成待验证加载请求所涉及的加密、封装算法相对应。为此,可以通过预设的协议规定所需的预设算法,也可以通过根据定期的交互调整预设算法,即在一方改变预设算法时,通知另一方调整对应的预设算算法。从而进一步提高待验证加载请求在传输过程中的安全性。
当验证待验证加载请求合法时,执行步骤303,反之,则执行步骤304。
303、根据加载请求数据获取对应的密码模块,并反馈给客户端。
在确定客户端身份合法后,本步骤将在服务端根据加载请求数据查找符合的密码模块,并将对应的密码模块发送给客户端。
需要说明的是,本实施例中的服务端主要用于维护多个密码模块,这些密码模块可以是多个版本,也可以是多个用于不同应用软件的密码模块。通过在服务端对密码模块的统一管理,可以方便的对密码模块进行更新与修改,无需通知客户端进行调整,从而降低了密码模块的维护成本。
304、发送验证失败信息,终止远程加载流程。
在确定客户端身份不合法时,说明发送请求的客户端不具有远程加载密码模块的资格,而出现该问题的原因可能是该客户端自身的问题,其资质不足;也可能是客户端有资格,但其发送的请求被篡改,导致验证无法通过。但不论是哪种原因,对于服务端,其在确定客户端身份不合法后,所执行的操作是相同的,就是反馈验证失败信息,同时终止远程加载流程。客户端在接收到验证失败信息后,可根据需要再次生成新的待验证加载请求,以获取密码模块。
基于上述图3的实现方式可知,本发明实施例中服务端通过对密码模块的统一管理,可以有效提高密码模块的更新与修改的处理效率,同时,通过服务端为客户端远程加载密码模块也可以降低客户端被攻击的风险,由服务端提供对密码模块更安全的防护机制,保证客户端应用软件的数据安全。
进一步的,本发明优选实施例是在上述图3的基础上,针对请求的验证以及远程加载的过程进行详细说明,其具体步骤如图4所示,包括:
401、接收客户端发送的待验证加载请求。
其中,待验证加载请求中至少包括客户端的服务加载器的证书以及加载请求数据的摘要值签名。对于证书与摘要值签名已在图2所示实施例中做了说明,此处不再赘述。
402、获取证书,并利用证书签名验证证书是否合法。
本步骤是从待验证加载请求中先提取服务加载器的证书以及证书签名,再利用预设算法对证书签名进行验证,以判断该证书是否为客户端的合法证书,若验证证书合法,则执行步骤403;而如果验证证书不合法,则终止对请求的响应,向该客户端反馈验证失败的信息。本实施例中对于证书签名的验签方式不做具体限定。
403、提取证书中的公钥,利用公钥对摘要值签名进行验签,确定待验证加载请求合法。
本步骤是在确定客户端身份合法后,进一步对摘要值签名做验证,确保其在传输过程中没有被篡改。其具体过程包括:从服务加载器的证书中获取加密的公钥,并利用该公钥对摘要值签名进行验签,以判断该摘要值签名是由客户端制作的,没有被篡改,若验签通过,则确定待验证加载请求合法,执行步骤404;反之,若验签失败,则终止对请求的响应,向该客户端反馈签名验证失败的信息。
404、根据加载请求数据中的密码模块版本信息查找对应的密码模块以及应用数据。
在确定验证加载请求合法后,本实施例将根据请求中所包含的密码模块版本信息找对应的密码模块以及应用数据,其中,应用数据包括但不限于密码模块应用相关的库、配置文件、密钥信息等数据。这些数据均为服务端统一管理与维护的数据内容。
405、将密码模块以及应用数据进行混淆封装,得到封装数据。
406、利用预设加密算法对封装数据进行加密处理,得到加密数据,并将加密数据反馈给客户端。
以上两个步骤是在服务端找到待验证加载请求所需的数据后,为了保证数据在传输过程中的安全,对这些数据进行的封装、加密操作。在本实施例中,采用的封装方式为混淆封装,而本发明实施例并不限定服务端所采用的具体封装方式,同样的,对具体的加密处理方式本实施例也不做具体限定。
407、定期检测密码模块以及应用数据是否存在更新。
本步骤是对服务端中所存储的多个密码模块以及对应的应用数据进行的管理操作。当检测到密码模块以及应用数据存在更新时,服务端将获取更新密码模块的版本信息以及应用数据的摘要信息,其中,摘要信息包括但不限于应用数据所适用的环境、适配的应用软件等信息,通过版本信息与摘要信息能够确定该更新密码模块可以适用于哪些客户端,进而,向这些客户端发送版本信息与摘要信息,以告知其可以应用新版本的密码模块。
进一步的,作为对上述图1、2所示方法实施例的实现,本发明实施例提供了一种软件加密服务的应用装置,该装置应用于应用软件的客户端,用于远程加载密码模块。该装置的实施例与前述方法实施例对应,为便于阅读,本实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。
具体如图5所示,该装置包括:
调用单元51,用于在应用软件启动时,调用服务加载器,所述服务加载器用于远程加载密码模块,所述密码模块用于提供软件加密服务;
生成单元52,用于根据加载请求数据,生成待验证加载请求;
发送单元53,用于发送所述生成单元52得到的待验证加载请求至服务端,所述服务端在验证通过后反馈与所述加载请求数据相对应的密码模块;
加载运行单元54,用于利用所述调用单元51调用的服务加载器将所述服务端反馈的密码模块加载至所述服务加载器对应的内存中运行,以向所述应用软件提供软件加密服务。
进一步的,如图6所示,所述生成单元52包括:
初始化模块521,用于对所述服务加载器进行初始化,确定所述服务加载器对应的私钥与证书;
获取模块522,用于根据所述应用软件的运行环境获取加载请求数据,所述加载请求数据用于指定所述应用软件在所述运行环境下运行所需要的密码模块;
计算模块523,用于通过预设算法计算所述获取模块522得到的加载请求数据的摘要值;
签名模块524,用于利用所述初始化模块521确定的私钥对所述计算模块523得到的摘要值进行签名;
生成模块525,用于根据所述签名模块524得到签名与所述证书生成待验证加载请求。
进一步的,所述计算模块523具体用于,生成预设长度的随机数;将所述随机数与所述加载请求数据进行组合;利用预设算法计算组合后数据的摘要值。
进一步的,如图6所示,所述服务端在验证通过后对所述密码模块以及应用数据进行预设封装并加密处理后反馈;所述加载运行单元54,包括:
解密模块541,用于将所述服务端反馈的响应待验证加载请求的数据在内存中进行解密,得到封装数据;
解封模块542,用于利用预设解封算法处理所述解密模块541得到的封装数据,得到所述密码模块以及应用数据。
进一步的,如图6所示,所述装置还包括:
检测单元55,用于检测所述应用软件是否运行结束;
删除单元56,用于在所述检测单元55确定应用软件运行结束时,清空所述服务加载器对应的内存中的数据。
进一步的,如图6所示,所述装置还包括:
监控单元57,用于监控所述内存中的目标数据是否被修改,所述目标数据为所述密码模块用于提供软件加密服务的标准数据;
处理单元58,用于在所述监控单元57确定目标数据被修改时,发出报警信息,并重启所述应用软件,以重新加载所述密码模块。
进一步的,作为对上述图3、4所示方法实施例的实现,本发明实施例提供了一种软件加密服务的应用装置,该装置应用于应用软件的服务端,用于维护密码模块,并根据客户端的请求下发对应的密码模块。该装置的实施例与前述方法实施例对应,为便于阅读,本实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。具体如图7所示,该装置包括:
接收单元61,用于接收客户端发送的待验证加载请求,所述待验证加载请求基于加载请求数据生成,所述加载请求数据用于指定所述应用软件需要的密码模块;
验证单元62,用于通过预设算法验证所述接收单元61得到的待验证加载请求是否合法;
反馈单元63,用于在所述验证单元62确定合法时,根据所述加载请求数据获取对应的密码模块,并反馈给所述客户端;
终止单元64,用于在所述验证单元62确定不合法时,发送验证失败信息,终止远程加载流程。
进一步的,如图8所示,待验证加载请求中至少包括服务加载器的证书以及加载请求数据的摘要值签名;所述验证单元62,包括:
第一验证模块621,用于获取所述证书,并利用证书签名验证所述证书是否合法;
提取模块622,用于在所述第一验证模块621确定所述证书合法时,提取所述证书中的公钥;
第二验证模块623,用于利用所述提取模块622得到的公钥对所述摘要值签名进行验签;
确定模块624,用于在所述第二验证模块623验签通过时,确定所述待验证加载请求合法。
进一步的,如图8所示,所述反馈单元63,包括:
查找模块631,用于根据所述加载请求数据中的密码模块版本信息查找对应的密码模块以及应用数据;
封装模块632,用于将所述查找模块631获取的密码模块以及应用数据进行混淆封装,得到封装数据;
加密模块633,用于利用预设加密算法对所述封装模块632封装数据进行加密处理,得到加密数据;
反馈模块634,用于将所述加密模块633得到的加密数据反馈给所述客户端。
进一步的,如图8所示,所述装置还包括:
检测单元65,用于定期检测密码模块以及应用数据是否存在更新;
获取单元66,用于在所述检测单元65确定存在更新时,获取更新密码模块的版本信息以及应用数据的摘要信息;
发送单元67,用于将所述获取单元66得到的版本信息与摘要信息加密发送至所述客户端。
综合上述图1-8所示实施例的内容,本发明实施例还提供一种软件加密服务的应用***,该***包括至少一个客户端以及至少一个服务端,其中,所述客户端执行上述图1、2所示实施例中的软件加密服务的应用方法;所述服务端执行上述图3、4所示实施例中的软件加密服务的应用方法。即,客户端一侧仅配置服务加载器,由该服务加载器向服务端请求密码模块,并将得到的密码模块加载至运行服务加载器所对应的内存中,以此,将密码模块的存储与客户端拆开,客户端仅是密码模块的使用方,服务端为密码模块的存储与管理方,因此,客户端在使用密码模块时,由于其每次启动都会重新加载密码模块,且本地并不存储密码模块,大大降低了棉麻模块被攻击、篡改的风险,提高了应用软件的数据安全性。
进一步的,本发明实施例还提供一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述图1-4中所述的软件加密服务的应用方法。
进一步的,本发明实施例还提供一种存储介质,所述存储介质用于存储计算机程序,其中,所述计算机程序运行时控制所述存储介质所在设备执行上述图1-4中所述的软件加密服务的应用方法。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
此外,存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本发明的实施例可提供为方法、***或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (15)
1.一种软件加密服务的应用方法,其特征在于,所述方法应用于客户端,包括:
在应用软件启动时,调用服务加载器,所述服务加载器用于远程加载密码模块,所述密码模块用于提供软件加密服务;
根据加载请求数据,生成待验证加载请求,所述加载请求数据用于指定所述应用软件需要的密码模块;
发送所述待验证加载请求至服务端,所述服务端在验证通过后反馈与所述加载请求数据相对应的密码模块;
利用所述服务加载器将所述服务端反馈的密码模块加载至对应的内存中运行,以向所述应用软件提供软件加密服务。
2.根据权利要求1所述的方法,其特征在于,根据加载请求数据,生成待验证加载请求,包括:
对所述服务加载器进行初始化,确定所述服务加载器对应的私钥与证书;
根据所述应用软件的运行环境,获取加载请求数据,所述加载请求数据用于指定所述应用软件在所述运行环境下运行所需要的密码模块;
通过预设算法计算所述加载请求数据的摘要值;
利用所述私钥对所述摘要值进行签名;
根据所述签名与所述证书生成待验证加载请求。
3.根据权利要求2所述的方法,其特征在于,所述通过预设算法计算所述加载请求数据的摘要值,包括:
生成预设长度的随机数;
将所述随机数与所述加载请求数据进行组合;
利用预设算法计算组合后数据的摘要值。
4.根据权利要求1所述的方法,其特征在于,所述服务端在验证通过后对所述密码模块以及应用数据进行预设封装并加密处理后反馈;所述利用所述服务加载器将所述服务端反馈的密码模块加载至对应的内存中运行,包括:
将所述服务端反馈的响应待验证加载请求的数据在内存中进行解密,得到封装数据;
利用预设解封算法处理所述封装数据,得到所述密码模块以及应用数据。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
检测所述应用软件是否运行结束;
若是,则清空所述服务加载器对应的内存中的数据。
6.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
监控所述内存中的目标数据是否被修改,所述目标数据为所述密码模块用于提供软件加密服务的标准数据;
若被修改,则发出报警信息,并重启所述应用软件,以重新加载所述密码模块。
7.一种软件加密服务的应用方法,其特征在于,所述方法应用于服务端,包括:
接收客户端发送的待验证加载请求,所述待验证加载请求中基于加载请求数据生成,所述加载请求数据用于指定所述应用软件需要的密码模块;
通过预设算法验证所述待验证加载请求是否合法;
若是,则根据所述加载请求数据获取对应的密码模块,并反馈给所述客户端;
若否,则发送验证失败信息,终止远程加载流程。
8.根据权利要求7所述的方法,其特征在于,待验证加载请求中至少包括服务加载器的证书以及加载请求数据的摘要值签名;所述通过预设算法验证所述待验证加载请求是否合法,包括:
获取所述证书,并利用证书签名验证所述证书是否合法;
若所述证书合法,则提取所述证书中的公钥;
利用所述公钥对所述摘要值签名进行验签;
若验签通过,则确定所述待验证加载请求合法。
9.根据权利要求7或8所述的方法,其特征在于,所述根据所述加载请求数据获取对应的密码模块,并反馈给所述客户端,包括:
根据所述加载请求数据中的密码模块版本信息查找对应的密码模块以及应用数据;
将所述密码模块以及应用数据进行混淆封装,得到封装数据;
利用预设加密算法对所述封装数据进行加密处理,得到加密数据;
将所述加密数据反馈给所述客户端。
10.根据权利要求7所述的方法,其特征在于,所述方法还包括:
定期检测密码模块以及应用数据是否存在更新;
若存在,则获取更新密码模块的版本信息以及应用数据的摘要信息;
将所述版本信息与摘要信息加密发送至所述客户端。
11.一种软件加密服务的应用装置,其特征在于,所述装置应用于客户端,包括:
调用单元,用于在应用软件启动时,调用服务加载器,所述服务加载器用于远程加载密码模块,所述密码模块用于提供软件加密服务;
生成单元,用于根据加载请求数据,生成待验证加载请求;
发送单元,用于发送所述生成单元得到的待验证加载请求至服务端,所述服务端在验证通过后反馈与所述加载请求数据相对应的密码模块;
加载运行单元,用于利用所述调用单元调用的服务加载器将所述服务端反馈的密码模块加载至对应的内存中运行,以向所述应用软件提供软件加密服务。
12.一种软件加密服务的应用装置,其特征在于,所述装置应用于服务端,包括:
接收单元,用于接收客户端发送的待验证加载请求,所述待验证加载请求基于加载请求数据生成,所述加载请求数据用于指定所述应用软件需要的密码模块;
验证单元,用于通过预设算法验证所述接收单元得到的待验证加载请求是否合法;
反馈单元,用于在所述验证单元确定合法时,根据所述加载请求数据获取对应的密码模块,并反馈给所述客户端;
终止单元,用于在所述验证单元确定不合法时,发送验证失败信息,终止远程加载流程。
13.一种软件加密服务的应用***,其特征在于,所述***包括至少一个客户端以及至少一个服务端,其中,所述客户端执行权利要求1-6中任意一项所述的软件加密服务的应用方法;所述服务端执行权利要求7-10中任意一项所述的软件加密服务的应用方法。
14.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1-10中任意一项所述的软件加密服务的应用方法。
15.一种存储介质,其特征在于,所述存储介质用于存储计算机程序,其中,所述计算机程序运行时控制所述存储介质所在设备执行权利要求1-10中任意一项所述的软件加密服务的应用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211499957.6A CN116305005A (zh) | 2022-11-28 | 2022-11-28 | 一种软件加密服务的应用方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211499957.6A CN116305005A (zh) | 2022-11-28 | 2022-11-28 | 一种软件加密服务的应用方法、装置及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116305005A true CN116305005A (zh) | 2023-06-23 |
Family
ID=86776770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211499957.6A Pending CN116305005A (zh) | 2022-11-28 | 2022-11-28 | 一种软件加密服务的应用方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116305005A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116756729A (zh) * | 2023-08-22 | 2023-09-15 | 中电科网络安全科技股份有限公司 | 一种安全消息收发服务提供方法、装置、设备及介质 |
-
2022
- 2022-11-28 CN CN202211499957.6A patent/CN116305005A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116756729A (zh) * | 2023-08-22 | 2023-09-15 | 中电科网络安全科技股份有限公司 | 一种安全消息收发服务提供方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3937424B1 (en) | Blockchain data processing methods and apparatuses based on cloud computing | |
US11258792B2 (en) | Method, device, system for authenticating an accessing terminal by server, server and computer readable storage medium | |
TWI598814B (zh) | 用於管理及診斷配備有統一可延伸韌體介面(uefi)相容韌體的計算裝置之系統與方法 | |
CN109145628B (zh) | 一种基于可信执行环境的数据采集方法及*** | |
CN111274611A (zh) | 数据脱敏方法、装置及计算机可读存储介质 | |
US11928449B2 (en) | Information processing method, device, apparatus and system, medium, andprogram | |
CN111901285B (zh) | 一种可信验证方法、***、设备及存储介质 | |
WO2021114614A1 (zh) | 应用程序安全启动方法、装置、计算机设备和存储介质 | |
CN112632573B (zh) | 智能合约执行方法、装置、***、存储介质及电子设备 | |
CN112257093A (zh) | 数据对象的鉴权方法、终端及存储介质 | |
CN111460410A (zh) | 服务器登录方法、装置、***与计算机可读存储介质 | |
CN116305005A (zh) | 一种软件加密服务的应用方法、装置及*** | |
CN112099904A (zh) | 一种虚拟机的嵌套页表管理方法、装置、处理器芯片及服务器 | |
CN111414640A (zh) | 秘钥访问控制方法和装置 | |
CN114896621B (zh) | 应用服务的获取方法、加密方法、装置、计算机设备 | |
CN116484379A (zh) | ***启动方法、包含可信计算基软件的***、设备及介质 | |
CN111353150B (zh) | 一种可信启动方法、装置、电子设备及可读存储介质 | |
US11455394B2 (en) | Secure firmware interface | |
CN112579112A (zh) | 一种镜像安全处理、部署方法、装置及存储介质 | |
CN115859337B (zh) | 基于内核的防止设备破解方法、设备、服务器及介质 | |
CN116401671B (zh) | 基于可信执行环境的中心化计算方法及装置 | |
WO2018092289A1 (ja) | 情報処理装置 | |
CN113238762B (zh) | java应用远程部署方法、装置及设备 | |
US11947954B2 (en) | Electronic apparatus adapted for container and software updating method for running container system | |
WO2023169409A1 (zh) | 模型调用方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |