CN109474431A - 客户端认证方法及计算机可读存储介质 - Google Patents
客户端认证方法及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109474431A CN109474431A CN201710799717.0A CN201710799717A CN109474431A CN 109474431 A CN109474431 A CN 109474431A CN 201710799717 A CN201710799717 A CN 201710799717A CN 109474431 A CN109474431 A CN 109474431A
- Authority
- CN
- China
- Prior art keywords
- client software
- operating system
- software
- client
- digital 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000004891 communication Methods 0.000 claims description 86
- 238000004590 computer program Methods 0.000 claims description 3
- 238000012795 verification Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006386 memory function Effects 0.000 description 2
- GNFTZDOKVXKIBK-UHFFFAOYSA-N 3-(2-methoxyethoxy)benzohydrazide Chemical compound COCCOC1=CC=CC(C(=O)NN)=C1 GNFTZDOKVXKIBK-UHFFFAOYSA-N 0.000 description 1
- YTAHJIFKAKIKAV-XNMGPUDCSA-N [(1R)-3-morpholin-4-yl-1-phenylpropyl] N-[(3S)-2-oxo-5-phenyl-1,3-dihydro-1,4-benzodiazepin-3-yl]carbamate Chemical compound O=C1[C@H](N=C(C2=C(N1)C=CC=C2)C1=CC=CC=C1)NC(O[C@H](CCN1CCOCC1)C1=CC=CC=C1)=O YTAHJIFKAKIKAV-XNMGPUDCSA-N 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
Classifications
-
- 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
- H04L9/3249—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 using RSA or related signature schemes, e.g. Rabin scheme
-
- 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/3236—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 using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
- H04L2209/603—Digital right managament [DRM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种客户端认证方法及计算机可读存储介质,方法包括:开发主机生成一对对应的公钥和私钥,并将公钥保存到安全操作系统中;使用私钥对客户端软件进行加密和签名,得到加密后的客户端软件以及数字签名;安全操作系统使用公钥对加密后的客户端软件和数字签名进行解密,得到客户端软件和第一摘要值;对解密得到的客户端软件进行摘要运算,得到第二摘要值;若第一摘要值与第二摘要值一致,则判定认证成功。本发明同时通过客户端软件和数字签名进行身份认证,有效保证了安全性;由安全操作系统加载客户端软件,并认证和启动客户端软件,可以有效地防止非法客户端软件链接上服务端软件。
Description
技术领域
本发明涉及trustzone技术领域,尤其涉及一种客户端认证方法及计算机可读存储介质。
背景技术
Trustzone技术是ARM处理器上的一种可信区域技术,该技术可以把处理器上的硬件资源和软件资源划分成两个运行环境:可信环境和非可信环境。可信环境下运行一个安全操作系统,非可信环境下运行一个普通操作系统。使用trustzone技术可以把重要的资源放在可信环境下,因为非可信环境下的普通操作系统无法访问可信环境下的资源,这样可以保证重要资源免受来自普通环境下的恶意攻击。如果普通操作系统的软件需要访问可信环境下的资源,就需要间接的通过可信环境下的安全操作系统的软件来完成安全资源访问,这里把运行在普通操作系统的软件称为客户端软件,而运行在安全操作系统下的软件称为服务端软件,安全操作系统和普通操作系统之间的通信是通过处理器上的共享内存实现。
客户端软件在请求服务端软件完成某种安全操作之前,首先需要链接上对应的服务端软件,同时服务端软件只接受来自合法身份的客户端软件的访问请求,所以在客户端软件链接上服务端软件之前,安全操作系统需要验证客户端软件的身份合法性,认证通过后,客户端才能和服务端进行通信请求。
目前身份认证方法主要有:
1、密码方式。即客户端软件发送一段密码给服务端软件,服务端软件根据密码的正确性来判断客户端的合法性。如果密码不是手动方式输入,就需要在设备上存储密码,存储在设备上的密码很容易被破解或者盗取。
2、认证中心方式。客户端软件需要从网络认证中心获取数字证书,再把数字证书发送给服务端,服务端再根据这个数字证书进行认证。这种方式需要引入第三方认证中心,对设备及环境要求较高,认证过程需要处于联网状态。
3、客户端和服务端互相认证方式。这种方法实质上是方式2,客户端和服务端持有代表各自身份的数字证书(可能是由第三方认证中心颁布给客户端和服务端的,客户端和服务端各自保存),然后客户端和服务端把各自的数字证书发送给对方,通过接收到的数字证书来验证彼此之间的合法性。
在公开号为CN105959286A的中国专利公开文件中,公开了基于证书密钥缓存的快速身份认证方法,客户端把自身的数字证书发送给服务端,服务端通过存储的证书链来判断这个数字证书的合法性从而判断客户端的合法性,其特征有两个:其一,客户端在通过认证之前已经可以运行,即客户端先运行后认证;其二,客户端只发送数字证书给服务端,服务端只根据这个数字证书来判断客户端的合法性。这种方式适合于远程认证方式,但是存在一个隐患,就是如果运行客户端的设备上同时有一个流氓软件,这个流氓软件可以窃取客户端的数字证书,流氓软件就可以给服务端发送这个数字证书,而服务端可以认为当前的流氓软件是合法的。因此,该方案无法保证安全性。
发明内容
本发明所要解决的技术问题是:提供一种客户端认证方法及计算机可读存储介质,适用于处于单机状态下的客户端身份认证,且不失安全性。
为了解决上述技术问题,本发明采用的技术方案为:一种基于trustzone的客户端认证方法,包括:
开发主机生成一对对应的公钥和私钥,并将所述公钥保存到安全操作系统中;
使用所述私钥对客户端软件进行加密和签名,得到加密后的客户端软件以及所述客户端软件的数字签名;
安全操作系统获取所述加密后的客户端软件和所述数字签名;
使用所述公钥对加密后的客户端软件和所述数字签名进行解密,得到客户端软件和第一摘要值;
对解密得到的客户端软件进行摘要运算,得到第二摘要值;
若第一摘要值与第二摘要值一致,则判定认证成功。
本发明还涉及一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现以下步骤:
开发主机生成一对对应的公钥和私钥,并将所述公钥保存到安全操作系统中;
使用所述私钥对客户端软件进行加密和签名,得到加密后的客户端软件以及所述客户端软件的数字签名;
安全操作系统获取所述加密后的客户端软件和所述数字签名;
使用所述公钥对加密后的客户端软件和所述数字签名进行解密,得到客户端软件和第一摘要值;
对解密得到的客户端软件进行摘要运算,得到第二摘要值;
若第一摘要值与第二摘要值一致,则判定认证成功。
本发明的有益效果在于:同时通过客户端软件和数字签名进行身份认证,可以判断数字签名和当前的客户端软件是否是成对的,即使流氓软件盗取了客户端软件的数字签名,但是在服务端可以判别出流氓软件和数字签名不是成对的,认证就失败,从而防止数字签名被流氓软件获取从而完成身份认证,有效保证了安全性;同时,认证过程中不用第三方认证中心的接入,由安全操作系统加载客户端软件,并认证和启动客户端软件,可以有效地防止非法客户端软件链接上服务端软件。
附图说明
图1为本发明一种客户端认证方法的流程图;
图2为本发明实施例一的方法流程图;
图3为本发明实施例二的方法流程图;
图4为本发明实施例三的基于trustzone的双操作系统的系统通信模型框图;
图5为本发明实施例三的认证过程示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。
本发明最关键的构思在于:同时通过客户端软件及其数字签名进行身份认证;把通信密钥作为参数传入客户端软件。
名词解释:
客户端软件:Client Applicant,简称CA,在普通操作系统下运行的应用程序;
服务端软件:Server Applicant,简称SA,在安全操作系统下运行的应用程序,为客户端提供服务;
tee-supplicant:运行在普通操作系统下的应用程序,主要为安全操作系统提供服务,比如安全操作系统可以通过tee-supplicant应用程序读写普通操作系统的文件系统,或者启动普通操作系统下的一些应用程序,比如启动客户端程序;
文件系统:普通操作系统的文件系统,提供文件存储功能;
认证中心:安全操作系统下的一个模块,主要功能是认证普通操作系统的客户端程序的身份;
密钥库:安全操作系统下的密钥管理中心,主要功能是生成和管理通信密钥。
请参阅图1,一种基于trustzone的客户端认证方法,包括:
开发主机生成一对对应的公钥和私钥,并将所述公钥保存到安全操作系统中;
使用所述私钥对客户端软件进行加密和签名,得到加密后的客户端软件以及所述客户端软件的数字签名;
安全操作系统获取所述加密后的客户端软件和所述数字签名;
使用所述公钥对加密后的客户端软件和所述数字签名进行解密,得到客户端软件和第一摘要值;
对解密得到的客户端软件进行摘要运算,得到第二摘要值;
若第一摘要值与第二摘要值一致,则判定认证成功。
从上述描述可知,本发明的有益效果在于:同时通过客户端软件和数字签名进行身份认证,有效保证了安全性;由安全操作系统加载客户端软件,并认证和启动客户端软件,可以有效地防止非法客户端软件链接上服务端软件。
进一步地,所述“安全操作系统获取所述加密后的客户端软件和所述数字签名”具体为:
开发主机将所述加密后的客户端软件和所述数字签名存储到普通操作系统中预设的第一文件目录下;
安全操作系统通过tee-supplicant读取所述加密后的客户端软件和所述数字签名。
由上述描述可知,使用中间软件把客户端软件和对应的数字签名同时发送给服务端,服务端同时根据客户端软件和数字签名判断客户端的身份合法性。
进一步地,所述“判定认证成功”之后,进一步包括:
安全操作系统生成对称的通信密钥,同时启动所述客户端软件对应的服务端软件,并将所述通信密钥传入到所述服务端软件;
安全操作系统将解密得到的客户端软件以及所述通信密钥返回至普通操作系统;
普通操作系统将接收到的客户端软件存储到预设的第二文件目录下;
启动第二文件目录下的客户端软件,并将所述通信密钥传入所述客户端软件;
所述客户端软件通过所述通信密钥与服务端软件进行加密通信。
由上述描述可知,采用动态通信密钥的生成方式,并把通信密钥作为客户端的启动参数,从而普通操作系统不用存储通信密钥,大大降低了通信密钥泄露风险。
进一步地,所述“安全操作系统将解密得到的客户端软件以及所述通信密钥返回至普通操作系统”具体为:
安全操作系统通过tee-supplicant将解密得到的客户端软件以及所述通信密钥返回至普通操作系统。
进一步地,所述第二文件目录只有tee-supplicant具有读写权限。
由上述描述可知,防止其他程序对该目录进行违法操作,比如删除客户端软件。
本发明还提出了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现以下步骤:
开发主机生成一对对应的公钥和私钥,并将所述公钥保存到安全操作系统中;
使用所述私钥对客户端软件进行加密和签名,得到加密后的客户端软件以及所述客户端软件的数字签名;
安全操作系统获取所述加密后的客户端软件和所述数字签名;
使用所述公钥对加密后的客户端软件和所述数字签名进行解密,得到客户端软件和第一摘要值;
对解密得到的客户端软件进行摘要运算,得到第二摘要值;
若第一摘要值与第二摘要值一致,则判定认证成功。
进一步地,所述“安全操作系统获取所述加密后的客户端软件和所述数字签名”具体为:
开发主机将所述加密后的客户端软件和所述数字签名存储到普通操作系统中预设的第一文件目录下;
安全操作系统通过tee-supplicant读取所述加密后的客户端软件和所述数字签名。
进一步地,所述“判定认证成功”之后,进一步包括:
安全操作系统生成对称的通信密钥,同时启动所述客户端软件对应的服务端软件,并将所述通信密钥传入到所述服务端软件;
安全操作系统将解密得到的客户端软件以及所述通信密钥返回至普通操作系统;
普通操作系统将接收到的客户端软件存储到预设的第二文件目录下;
启动第二文件目录下的客户端软件,并将所述通信密钥传入所述客户端软件;
所述客户端软件通过所述通信密钥与服务端软件进行加密通信。
进一步地,所述“安全操作系统将解密得到的客户端软件以及所述通信密钥返回至普通操作系统”具体为:
安全操作系统通过tee-supplicant将解密得到的客户端软件以及所述通信密钥返回至普通操作系统。
进一步地,所述第二文件目录只有tee-supplicant具有读写权限。
实施例一
请参照图2,本发明的实施例一为:一种客户端认证方法,所述方法基于trustzone,适用于运行trustzone双操作系统环境中,本实施例中,把运行在普通操作系统的软件称为客户端软件(CA),把运行在安全操作系统下的软件称为服务端软件(SA),所述方法包括如下步骤:
S101:开发主机生成一对对应的公钥和私钥,并将所述公钥保存到安全操作系统中;进一步地,保存到安全操作系统的安全存储区中。其中,开发主机一般指个人计算机,即计算机设备,上面安装有开发客户端软件的所需要的工具,所有的客户端软件都是用同一对公私钥中的私钥进行加密和签名。
S102:使用所述私钥对客户端软件进行加密和签名,得到加密后的客户端软件以及所述客户端软件的数字签名;具体地,开发主机使用私钥加密客户端软件CA,得到密文形式的客户端软件CA*;对客户端软件CA进行摘要运算得到摘要,然后使用私钥加密所述摘要,得到数字签名。
S103:安全操作系统获取所述加密后的客户端软件和所述数字签名;具体地,开发主机将所述加密后的客户端软件和所述数字签名存储到普通操作系统中预设的第一文件目录下;安全操作系统通过tee-supplicant读取所述加密后的客户端软件和所述数字签名。即将密文形式的客户端软件CA*和数字签名下载到普通操作系统的文件系统相应的文件目录下,例如存放到文件系统的/data/tee/load目录下,然后安全操作系统通过tee-supplicant把存放在/data/tee/load目录下的密文形式的客户端软件CA*和数字签名读取到安全操作系统下的认证中心中。
S104:使用所述公钥对加密后的客户端软件和所述数字签名进行解密,得到客户端软件和第一摘要值。安全操作系统的认证中心使用步骤S101保存的公钥解密密文形式的客户端软件CA*和数字签名,得到明文形式的客户端软件CA和第一摘要值。
S105:对解密得到的客户端软件进行摘要运算,得到第二摘要值。即对步骤S104得到的明文形式的客户端软件CA进行摘要运算,得到第二摘要值。
S106:判断第一摘要值与第二摘要值是否一致,若是,则执行步骤S107,若否,则执行步骤S108。
S107:判定认证成功。
S108:判定认证失败,安全操作系统返回错误信息,客户端认证加载运行失败。
本实施例中,使用中间软件(tee_supplicant)把客户端软件和对应的数字签名同时发送给服务端,服务端同时根据客户端软件和数字签名判断客户端的身份合法性,可以判断数字签名和当前的客户端软件是否是成对的,即使流氓软件盗取了客户端软件的数字签名,但是在服务端可以判别出流氓软件和数字签名不是成对的,认证就失败,从而防止数字签名被流氓软件获取从而完成身份认证,有效保证了安全性。
实施例二
请参照图3,本实施例是实施例一的进一步拓展,在步骤S107判定认证成功后,还包括如下步骤:
S201:安全操作系统生成对称的通信密钥,同时启动所述客户端软件对应的服务端软件,并将所述通信密钥传入到所述服务端软件;认证中心通过安全操作系统的密钥库生成对称通信密钥key,同时启动客户端软件对应的服务端软件SA,并把通信密钥key传入到服务端软件SA中,作为服务端软件的数据通信密钥。
S202:安全操作系统将解密得到的客户端软件以及所述通信密钥返回至普通操作系统;进一步地,安全操作系统通过tee-supplicant把步骤S104中认证中心解密得到的明文形式的客户端软件CA和步骤S201中生成的通信密钥一起返回倒普通操作系统。
S203:普通操作系统将接收到的客户端软件存储到预设的第二文件目录下。tee-supplicant把明文形式的客户端软件CA存放到普通操作系统下的文件目录,例如存放到文件目录/data/tee/run,该目录只有tee-supplicant可以进行读写,防止其他程序对该目录进行违法操作,比如删除客户端软件。
S204:启动第二文件目录下的客户端软件,并将所述通信密钥传入所述客户端软件。tee-supplicant启动目录/data/tee/run下的客户端软件CA,并把步骤S202从安全操作系统获取的通信密钥key作为参数传入到客户端软件CA中,这样,普通操作系统下不用存储通信密钥key,可以防止通信密钥key被盗取。
S205:所述客户端软件通过所述通信密钥与服务端软件进行加密通信。
本实施例中,采用动态通信密钥的生成方式,并把通信密钥作为客户端的启动参数,从而普通操作系统不用存储通信密钥,大大降低了通信密钥泄露风险。
实施例三
请参照图4-5,本实施例是上述实施例的一具体应用场景。
首先,图4为基于trustzone的双操作系统的系统通信模型框图,两个操作系统分别为安全操作系统和普通操作系统,两个操作系统通过底层的普通通信驱动和安全通信驱动进行数据通信。
其中,tee-supplicant为运行在普通操作系统下的应用程序,主要为安全操作系统提供服务,比如安全操作系统可以通过tee-supplicant应用程序读写普通操作系统的文件系统,或者启动普通操作系统下的一些应用程序,比如启动客户端程序;
Client API为普通操作系统下的客户端系统调用接口,通过这个接口,客户端程序可以调用底层的普通通信驱动模块和安全操作系统进行数据交互;
Internal API为安全操作系统下的内部系统调用接口,提供给上层应用程序进行调用;
文件系统为普通操作系统的文件系统,提供文件存储功能;
普通通信驱动为普通操作系统下的驱动程序,负责与安全操作系统进行数据通信;
安全通信驱动为安全操作系统下的驱动程序,负责与普通操作系统进行数据通信;
安全资源指被设置成可信状态的外部设备,只有安全操作系统可以访问这些资源,普通操作系统无法访问这些资源;
认证中心为安全操作系统下的一个模块,主要功能是认证普通操作系统的客户端程序的身份;
密钥库为安全操作系统下的密钥管理中心,主要功能是生成和管理通信密钥。
图5为本实施例的认证过程示意图,包括如下步骤:
a:开发主机生成一对公私钥,并且用私钥加密客户端软件CA成密文形式的客户端软件CA*,并用这个私钥生成客户端软件CA的数字签名。
b、把步骤a生成的公钥保存到trustzone双操作系统下的安全操作系统的安全存储区中。
c、把步骤a生成的密文客户端软件CA*和对应的数字签名下载到设备的文件系统的第一文件目录下,比如存放到/data/tee/load目录下。
d、安全操作系统通过tee-supplicant模块,把步骤c存放在/data/tee/load目录下的密文客户端CA*和相应的数字签名读取到安全操作系统下的认证中心中。
e、安全操作系统的认证中心首先使用步骤b保存的公钥解密密文客户端软件CA*成明文客户端软件CA,然后计算明文CA的摘要值A,同时使用步骤b的公钥解密数字签名,得出摘要值B,如果摘要值A和摘要值B一样,则认证通过,转入步骤f继续运行;如果摘要值A和摘要值B不一样,则认证失败,安全操作系统返回错误信息,客户端认证加载运行失败。
如果安全操作系统接收到的客户端软件密文和数字签名是成对的,即这个数字签名是该客户端软件的明文经过摘要运算并加密而得来的,那么安全操作系统这边对客户端软件明文再做一次摘要运算得出的摘要值A和数字签名解出来的摘要值B是肯定是一样的。
如果安全操作系统接收到的客户端密文和数字签名不是成对的(可能发生这种情况有:客户端软件密文CA*被修改或者被替换、接收到的数字签名不是使用对应客户端软件CA明文生成的),则安全操作系统通过对解密出来的客户端软件明文进行摘要运算得出的摘要值A和数字签名解出来的摘要值B肯定是不一样的。另外一种情况是其他非法客户端软件使用自己的私钥生成客户端密文和数字签名,虽然这个密文和数字签名是成对的,但是安全操作系统所使用的公钥是解不出他的客户端明文和摘要(因为公私钥是成对生成的,对应的公私钥才能互相的加解密操作,所以必须保证本实施例所使用的私钥不能泄露),通过摘要算出的摘要值A和摘要值B结果是肯定是不一样的。
f、认证中心通过安全操作系统的密钥库生成对称通信密钥key,同时启动客户端软件CA对应的服务端软件SA,并把通信密钥key传入到服务端软件SA中,作为服务端软件SA的数据通信密钥。
g、安全操作系统通过tee-supplicant模块把认证中心解密后的明文客户端软件CA和步骤f生成的通信密钥key一起返回到普通操作系统。
h、Tee-spplicant模块把明文客户端软件CA存放到普通操作系统下的第二文件目录下,比如存放到文件目录/data/tee/run,该目录只有tee-supplicant可以进行读写,防止其他程序对该目录进行违法操作,比如删除客户端软件。
i、Tee-supplicant启动目录/data/tee/run下的客户端软件CA,并把步骤g从安全操作系统获取的通信密钥key作为参数传入到客户端软件CA中,这个步骤的好处是普通操作系统下不用存储通信密钥key,这样可以防止通信密钥key被盗取。
j、客户端软件CA可以通过传入的通信密钥key和安全操作系统下的服务端软件SA进行加密通信。
每一次客户端软件CA启动都需要经过步骤d到步骤j的验证启动过程,且每次步骤f生成的通信密钥是不一样的。
客户端在通过服务端认证之前是不运行的,其认证过程是在中间软件(tee_supplicant)的协助下完成的,通过认证后,中间软件才启动客户端,也就是说,客户端不能通过自身给服务端发送信息来完成身份认证,需要通过中间软件代理认证过程,认证通过后,客户端才启动运行,即便客户端在通过认证之前就开始运行,并把自身和数字证书发送给服务端,也不能通过身份认证。
实施例四
本实施例是对应上述实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现以下步骤:
开发主机生成一对对应的公钥和私钥,并将所述公钥保存到安全操作系统中;
使用所述私钥对客户端软件进行加密和签名,得到加密后的客户端软件以及所述客户端软件的数字签名;
安全操作系统获取所述加密后的客户端软件和所述数字签名;
使用所述公钥对加密后的客户端软件和所述数字签名进行解密,得到客户端软件和第一摘要值;
对解密得到的客户端软件进行摘要运算,得到第二摘要值;
若第一摘要值与第二摘要值一致,则判定认证成功。
进一步地,所述“安全操作系统获取所述加密后的客户端软件和所述数字签名”具体为:
开发主机将所述加密后的客户端软件和所述数字签名存储到普通操作系统中预设的第一文件目录下;
安全操作系统通过tee-supplicant读取所述加密后的客户端软件和所述数字签名。
进一步地,所述“判定认证成功”之后,进一步包括:
安全操作系统生成对称的通信密钥,同时启动所述客户端软件对应的服务端软件,并将所述通信密钥传入到所述服务端软件;
安全操作系统将解密得到的客户端软件以及所述通信密钥返回至普通操作系统;
普通操作系统将接收到的客户端软件存储到预设的第二文件目录下;
启动第二文件目录下的客户端软件,并将所述通信密钥传入所述客户端软件;
所述客户端软件通过所述通信密钥与服务端软件进行加密通信。
进一步地,所述“安全操作系统将解密得到的客户端软件以及所述通信密钥返回至普通操作系统”具体为:
安全操作系统通过tee-supplicant将解密得到的客户端软件以及所述通信密钥返回至普通操作系统。
进一步地,所述第二文件目录只有tee-supplicant具有读写权限。
综上所述,本发明提供的一种客户端认证方法及计算机可读存储介质,同时通过客户端软件和数字签名进行身份认证,可以判断数字签名和当前的客户端软件是否是成对的,即使流氓软件盗取了客户端软件的数字签名,但是在服务端可以判别出流氓软件和数字签名不是成对的,认证就失败,从而防止数字签名被流氓软件获取从而完成身份认证,有效保证了安全性;采用动态通信密钥的生成方式,并把通信密钥作为客户端的启动参数,从而普通操作系统不用存储通信密钥,大大降低了通信密钥泄露风险;同时,认证过程中不用第三方认证中心的接入,由安全操作系统加载客户端软件,并认证和启动客户端软件,可以有效地防止非法客户端软件链接上服务端软件。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于trustzone的客户端认证方法,其特征在于,包括:
开发主机生成一对对应的公钥和私钥,并将所述公钥保存到安全操作系统中;
使用所述私钥对客户端软件进行加密和签名,得到加密后的客户端软件以及所述客户端软件的数字签名;
安全操作系统获取所述加密后的客户端软件和所述数字签名;
使用所述公钥对加密后的客户端软件和所述数字签名进行解密,得到客户端软件和第一摘要值;
对解密得到的客户端软件进行摘要运算,得到第二摘要值;
若第一摘要值与第二摘要值一致,则判定认证成功。
2.根据权利要求1所述的基于trustzone的客户端认证方法,其特征在于,所述“安全操作系统获取所述加密后的客户端软件和所述数字签名”具体为:
开发主机将所述加密后的客户端软件和所述数字签名存储到普通操作系统中预设的第一文件目录下;
安全操作系统通过tee-supplicant读取所述加密后的客户端软件和所述数字签名。
3.根据权利要求1所述的基于trustzone的客户端认证方法,其特征在于,所述“判定认证成功”之后,进一步包括:
安全操作系统生成对称的通信密钥,同时启动所述客户端软件对应的服务端软件,并将所述通信密钥传入到所述服务端软件;
安全操作系统将解密得到的客户端软件以及所述通信密钥返回至普通操作系统;
普通操作系统将接收到的客户端软件存储到预设的第二文件目录下;
启动第二文件目录下的客户端软件,并将所述通信密钥传入所述客户端软件;
所述客户端软件通过所述通信密钥与服务端软件进行加密通信。
4.根据权利要求3所述的基于trustzone的客户端认证方法,其特征在于,所述“安全操作系统将解密得到的客户端软件以及所述通信密钥返回至普通操作系统”具体为:
安全操作系统通过tee-supplicant将解密得到的客户端软件以及所述通信密钥返回至普通操作系统。
5.根据权利要求4所述的基于trustzone的客户端认证方法,其特征在于,所述第二文件目录只有tee-supplicant具有读写权限。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现以下步骤:
开发主机生成一对对应的公钥和私钥,并将所述公钥保存到安全操作系统中;
使用所述私钥对客户端软件进行加密和签名,得到加密后的客户端软件以及所述客户端软件的数字签名;
安全操作系统获取所述加密后的客户端软件和所述数字签名;
使用所述公钥对加密后的客户端软件和所述数字签名进行解密,得到客户端软件和第一摘要值;
对解密得到的客户端软件进行摘要运算,得到第二摘要值;
若第一摘要值与第二摘要值一致,则判定认证成功。
7.根据权利要求6所述的计算机可读存储介质,其特征在于,所述“安全操作系统获取所述加密后的客户端软件和所述数字签名”具体为:
开发主机将所述加密后的客户端软件和所述数字签名存储到普通操作系统中预设的第一文件目录下;
安全操作系统通过tee-supplicant读取所述加密后的客户端软件和所述数字签名。
8.根据权利要求6所述的计算机可读存储介质,其特征在于,所述“判定认证成功”之后,进一步包括:
安全操作系统生成对称的通信密钥,同时启动所述客户端软件对应的服务端软件,并将所述通信密钥传入到所述服务端软件;
安全操作系统将解密得到的客户端软件以及所述通信密钥返回至普通操作系统;
普通操作系统将接收到的客户端软件存储到预设的第二文件目录下;
启动第二文件目录下的客户端软件,并将所述通信密钥传入所述客户端软件;
所述客户端软件通过所述通信密钥与服务端软件进行加密通信。
9.根据权利要求8所述的计算机可读存储介质,其特征在于,所述“安全操作系统将解密得到的客户端软件以及所述通信密钥返回至普通操作系统”具体为:
安全操作系统通过tee-supplicant将解密得到的客户端软件以及所述通信密钥返回至普通操作系统。
10.根据权利要求9所述的计算机可读存储介质,其特征在于,所述第二文件目录只有tee-supplicant具有读写权限。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710799717.0A CN109474431B (zh) | 2017-09-07 | 2017-09-07 | 客户端认证方法及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710799717.0A CN109474431B (zh) | 2017-09-07 | 2017-09-07 | 客户端认证方法及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109474431A true CN109474431A (zh) | 2019-03-15 |
CN109474431B CN109474431B (zh) | 2023-11-03 |
Family
ID=65658287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710799717.0A Active CN109474431B (zh) | 2017-09-07 | 2017-09-07 | 客户端认证方法及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109474431B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110224485A (zh) * | 2019-05-17 | 2019-09-10 | 中国电力科学研究院有限公司 | 一种智能配变终端软件管理系统 |
CN112804560A (zh) * | 2020-12-29 | 2021-05-14 | 湖南大学 | 视频加密传输方法、中间件及计算机可读存储介质 |
CN113612746A (zh) * | 2021-07-26 | 2021-11-05 | 建信金融科技有限责任公司 | 基于Android系统的敏感信息存储方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101601044A (zh) * | 2005-07-20 | 2009-12-09 | 高通股份有限公司 | 用于无线网络中的安全体系结构的设备及方法 |
CN103179086A (zh) * | 2011-12-21 | 2013-06-26 | 中国电信股份有限公司 | 数据的远程存储处理方法与系统 |
CN103326856A (zh) * | 2013-05-20 | 2013-09-25 | 西北工业大学 | 基于双向数字签名的云存储数据责任认定结构及方法 |
US20150281211A1 (en) * | 2012-09-25 | 2015-10-01 | Universitetet I Oslo | Network security |
US20160027011A1 (en) * | 2014-07-24 | 2016-01-28 | Panasonic Intellectual Property Management Co., Ltd. | Transaction terminal device, transaction processing method, and transaction processing system |
CN106656955A (zh) * | 2016-09-26 | 2017-05-10 | 山东浪潮商用系统有限公司 | 一种通信方法及系统、客户端 |
CN106850200A (zh) * | 2017-01-25 | 2017-06-13 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 一种使用基于区块链的数字货币的方法、系统及终端 |
-
2017
- 2017-09-07 CN CN201710799717.0A patent/CN109474431B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101601044A (zh) * | 2005-07-20 | 2009-12-09 | 高通股份有限公司 | 用于无线网络中的安全体系结构的设备及方法 |
CN103179086A (zh) * | 2011-12-21 | 2013-06-26 | 中国电信股份有限公司 | 数据的远程存储处理方法与系统 |
US20150281211A1 (en) * | 2012-09-25 | 2015-10-01 | Universitetet I Oslo | Network security |
CN103326856A (zh) * | 2013-05-20 | 2013-09-25 | 西北工业大学 | 基于双向数字签名的云存储数据责任认定结构及方法 |
US20160027011A1 (en) * | 2014-07-24 | 2016-01-28 | Panasonic Intellectual Property Management Co., Ltd. | Transaction terminal device, transaction processing method, and transaction processing system |
CN106656955A (zh) * | 2016-09-26 | 2017-05-10 | 山东浪潮商用系统有限公司 | 一种通信方法及系统、客户端 |
CN106850200A (zh) * | 2017-01-25 | 2017-06-13 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 一种使用基于区块链的数字货币的方法、系统及终端 |
Non-Patent Citations (3)
Title |
---|
刘志伟: ""基于TrustZone的智能手机安全技术研究与实现"", 《《中国优秀硕士学位论文全文数据库》 * |
岳晨旭: ""基于TrustZone技术的Linux安全模块隔离方法研究"", 《《中国优秀硕士学位论文全文数据》 * |
郑丽萍: "一种基于摘要口令加密私钥的数字签名模式", 《计算机安全》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110224485A (zh) * | 2019-05-17 | 2019-09-10 | 中国电力科学研究院有限公司 | 一种智能配变终端软件管理系统 |
CN112804560A (zh) * | 2020-12-29 | 2021-05-14 | 湖南大学 | 视频加密传输方法、中间件及计算机可读存储介质 |
CN113612746A (zh) * | 2021-07-26 | 2021-11-05 | 建信金融科技有限责任公司 | 基于Android系统的敏感信息存储方法及系统 |
CN113612746B (zh) * | 2021-07-26 | 2023-05-09 | 中国建设银行股份有限公司 | 基于Android系统的敏感信息存储方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109474431B (zh) | 2023-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105376216B (zh) | 一种远程访问方法、代理服务器及客户端 | |
CN108064440B (zh) | 基于区块链的fido认证方法、装置及系统 | |
CN103685282B (zh) | 一种基于单点登录的身份认证方法 | |
CN101350723B (zh) | 一种USB Key设备及其实现验证的方法 | |
US7571489B2 (en) | One time passcode system | |
CN101507233B (zh) | 用于提供对于应用程序和基于互联网的服务的可信单点登录访问的方法和设备 | |
CN109361668A (zh) | 一种数据可信传输方法 | |
US8953805B2 (en) | Authentication information generating system, authentication information generating method, client apparatus, and authentication information generating program for implementing the method | |
CN106060078B (zh) | 应用于云平台的用户信息加密方法、注册方法及验证方法 | |
CN109325342A (zh) | 身份信息管理方法、装置、计算机设备和存储介质 | |
JP2009087035A (ja) | 暗号クライアント装置、暗号パッケージ配信システム、暗号コンテナ配信システム、暗号管理サーバ装置、ソフトウェアモジュール管理装置、ソフトウェアモジュール管理プログラム | |
JPH0936851A (ja) | スマート・カードからのプライベート鍵操作をホスト・ベースの暗号サービスと透過的に統合するシステム及び方法 | |
CN101841525A (zh) | 安全接入方法、系统及客户端 | |
CN108234509A (zh) | 基于tee和pki证书的fido认证器、认证系统及方法 | |
KR100939725B1 (ko) | 모바일 단말기 인증 방법 | |
WO2021190197A1 (zh) | 生物支付设备的认证方法、装置、计算机设备和存储介质 | |
CN105187369B (zh) | 一种数据访问方法及装置 | |
CN112733129B (zh) | 一种服务器带外管理的可信接入方法 | |
CN112765637A (zh) | 数据处理方法、密码服务装置和电子设备 | |
CN115580413B (zh) | 一种零信任的多方数据融合计算方法和装置 | |
WO2008053279A1 (en) | Logging on a user device to a server | |
CN109474431A (zh) | 客户端认证方法及计算机可读存储介质 | |
US8176533B1 (en) | Complementary client and user authentication scheme | |
CN108900595B (zh) | 访问云存储服务器数据的方法、装置、设备及计算介质 | |
CN109981677A (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 |