一种授信的终端状态转换方法和系统与流程

文档序号:11841951阅读:663来源:国知局
一种授信的终端状态转换方法和系统与流程

本发明涉及通信技术领域,特别涉及一种授信的终端状态转换方法和系统。



背景技术:

金融支付领域,为保证终端设备上程序的合法性,终端需要引入数字签名方案,在终端预置根公钥证书,只有使用根公钥证书下属的工作公钥证书对应的私钥的程序才能下载到终端。终端在正常使用状态下,下载到终端的程序都要进行签名,对应用程序开发人员调试造成极大不便。为了方便应用开发人员调试,终端有一个调试状态,应用程序不需要签名就可以下载到终端。



技术实现要素:

为此,需要提供一种授信的终端状态转换方法,用以解决对终端进行调试态和使用态的转换问题,应用开发人员使用状态转换工具进行服务端和终端共同认证通过后,就可以切换终端的状态,既方便又安全。

为实现上述目的,发明人提供了一种授信的终端状态转换方法,技术方案如下:

一种授信的终端状态转换方法,包括步骤:

服务端发送第一待认证数据给状态转换工具,所述状态转换工具从U-KEY获取工作公钥证书和工作私钥;状态转换工具使用所述工作私钥对所述第一待认证数据进行加密,生成第一认证数据,状态转换工具发送所述工作公钥证书和所述第一认证数据给服务端;服务端对第一认证数据进行认证;终端发送第二待认证数据给状态转换工具;状态转换工具使用所述工作私钥对第二待认证数据进行加密,生成第二认证数据,状态转换工具发送所述工作公钥证书和所述第二认证数据给终端;终端对第二认证数据进行认证;若服务端对第一认证数据认证通过且终端对第二认证数据认证通过,状态转换工具从终端获取待认证数据,状态转换工具发送所述待认证数据给服务端;服务端使用认证私钥对所述待认证数据进行加密生成认证数据,服务端发送所述认证数据给状态转换工具,状态转换工具发送所述认证数据给终端;终端对所述认证数据进行认证,若认证通过,对终端状态进行转换。

进一步的,服务端对第一认证数据进行认证,包括步骤:服务端接收所述工作公钥证书,服务端提取所述工作公钥证书中的公钥,服务端使用所述公钥对所述第一认证数据进行解密,获取所述第一认证数据中的待认证数据明文,比对所述第一认证数据中的待认证数据明文与所述第一待认证数据是否一致,若一致,认证通过;终端对第二认证数据进行认证,包括步骤:终端接收所述工作公钥证书,终端提取所述工作公钥证书中的公钥,终端使用所述公钥对所述第二认证数据进行解密,获取所述第二认证数据中的待认证数据明文,比对所述第二认证数据中的待认证数据明文与所述第二待认证数据是否一致,若一致,认证通过。

进一步的,所述终端状态包括使用态和调试态,终端不保存使用态和调试态下的应用程序和密钥;终端从使用态切换到调试态,终端清除所述使用态下终端的密钥;终端从调试态切换到使用态,终端清除所述调试态下终端的应用程序和密钥。

进一步的,所述第一待认证数据是随机数,所述第二待认证数据是终端主板序列号与随机数的组合。

本发明的有益效果是:应用开发人员通过状态转换工具获取U-KEY的工作公钥证书和工作私钥,而当状态转换工具获得服务端和终端的认证通过后,就可以直接使用状态转换工具来切换终端的状态;并且应用开发人员使用的状态转换工具中,存储的是终端根公钥证书下属的工作公钥证书及对应的私钥签名,保证应用开发人员本来就有权限下载程序到终端,避免非法转换终端状态。

为实现上述目的,发明人还提供了一种授信的终端状态转换系统,技术方案如下:

一种授信的终端状态转换系统,包括:服务端、终端、状态转换工具,所述状态转换工具包括:服务端认证模块、终端认证模块和U-KEY交互模块;所述服务端用于:发送第一待认证数据给状态转换工具,所述状态转换工具从U-KEY获取工作公钥证书和工作私钥;所述U-KEY交互模块用于:使用所述工作私钥对所述第一待认证数据进行加密,生成第一认证数据;所述服务端认证模块用于:发送所述工作公钥证书和所述第一认证数据给服务端;所述服务端用于:对第一认证数据进行认证;所述终端用于:发送第二待认证数据给状态转换工具;所述U-KEY交互模块用于:使用所述工作私钥对第二待认证数据进行加密,生成第二认证数据;所述终端认证模块用于:发送所述工作公钥证书和所述第二认证数据给终端;所述终端用于:对第二认证数据进行认证;若服务端对第一认证数据认证通过且终端对第二认证数据认证通过,所述终端认证模块用于:从终端获取待认证数据;所述服务端认证模块用于:发送所述待认证数据给服务端;所述服务端还用于:使用认证私钥对所述待认证数据进行加密生成认证数据,服务端发送所述认证数据给状态转换工具;所述终端认证模块还用于:发送所述认证数据给终端;所述终端还用于:对所述认证数据进行认证,若认证通过,对终端状态进行转换。

进一步的,所述服务端用于:对第一认证数据进行认证,包括:服务端接收所述工作公钥证书,服务端提取所述工作公钥证书中的公钥,服务端使用所述公钥对所述第一认证数据进行解密,获取所述第一认证数据中的待认证数据明文,比对所述第一认证数据中的待认证数据明文与所述第一待认证数据是否一致,若一致,认证通过;所述终端用于:对第二认证数据进行认证,包括:终端接收所述工作公钥证书,终端提取所述工作公钥证书中的公钥,终端使用所述公钥对所述第二认证数据进行解密,获取所述第二认证数据中的待认证数据明文,比对所述第二认证数据中的待认证数据明文与所述第二待认证数据是否一致,若一致,认证通过。

进一步的,所述终端状态包括使用态和调试态,终端不保存使用态和调试态下的应用程序和密钥;终端从使用态切换到调试态,终端清除所述使用态下终端的密钥;终端从调试态切换到使用态,终端清除所述调试态下终端的应用程序和密钥。

进一步的,所述第一待认证数据是随机数,所述第二待认证数据是终端主板序列号与随机数的组合。

本发明的有益效果是:应用开发人员通过状态转换工具获取U-KEY的工作公钥证书和工作私钥,而当状态转换工具获得服务端和终端的认证通过后,就可以直接使用状态转换工具来切换终端的状态;并且应用开发人员使用的状态转换工具中,存储的是终端根公钥证书下属的工作公钥证书及对应的私钥签名,保证应用开发人员本来就有权限下载程序到终端,避免非法转换终端状态。

附图说明

图1为本发明一种授信的终端状态转换系统的模块图;

图2为本发明一种授信的终端状态转换方法的流程图。

附图标记说明:

10、服务端,

20、终端,

30、状态转换工具,

40、U-KEY,

301、服务端认证模块,

302、终端认证模块,

303、U-KEY交互模块,

401、工作公钥证书,

402、工作私钥。

具体实施方式

为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。

请参阅图2,在本实施例中,U-KEY是插在状态转换工具上,本实施例中,状态转换工具为PC,其中U-KEY中存储有终端根公钥证书下属的工作公钥证书及工作私钥,当U-KEY插在状态转换工具上后,状态转换工具上安装有交互软件,使得状态转换工具可以从U-KEY上获取工作公钥证书和工作私钥。

具体实现步骤如下:

步骤S201:状态转换工具从服务端获取第一待认证数据;首先服务端自己生成第一待认证数据,本实施例中第一待认证数据是16字节随机数,状态转换工具再去从服务端获取第一待认证数据,获取到后,状态转换工具把第一待认证数据发送给状态转换工具。

在其它实施例中,第一待认证数据也可以是其它字节的随机数,可以是32字节的字母、数字和特殊符号等等的组合,本实施例中通过每次生成16字节随机数,确保了每次产生的随机数不一样。

于是在步骤S202中:状态转换工具使用U-KEY生成第一认证数据;状态转换工具收到第一待认证数据后,状态转换工具使用U-KEY中存储的工作私钥对第一待认证数据进行加密,加密后生成第一认证数据。通过使用U-KEY中存储的工作私钥对第一待认证数据进行加密,确保了生成的第一认证数据在数据传输的过程中不会被其它非法的U-KEY截取,去冒充真正合法的U-KEY,引发安全性问题。

生成第一认证数据后,步骤S203:状态转换工具将第一认证数据和工作公钥证书发给服务端进行认证;这边的认证是指服务端通过对接收到的第一认证数据进行解密,获取明文,比对明文是否与服务端的第一待认证数据相同,如果相同,则U-KEY通过了服务端的认证,获得了服务端的认可,既U-KEY取得了可以从服务端获取信息并且给服务端发送信息的权限。其中这边所发送的工作公钥证书里面含有可以解密第一认证数据的公钥,是为了方便服务端收到以后可以提取里面的公钥,再去解密第一认证数据。比如第一待认证数据是:D1,使用私钥S对其进行加密,生成第一认证数据:D2,私钥S对应的公钥是G,状态转换工具把D2和含有G的证书发送给了服务端,服务端从证书中提取G,再用G去解密D2,获取到D1。

步骤S204:状态转换工具从终端获取第二待认证数据;同样地,终端生成第二待认证数据,本实施例中第二待认证数据是终端主板序列号和随机数的组合,这边的终端主板序列号具有唯一性,可以唯一标识一个终端。终端生成第二待认证数据后,状态转换工具就去获取第二待认证数据。

在步骤S205中:状态转换工具使用U-KEY生成第二认证数据;状态转换工具使用U-KEY中的工作私钥对第二待认证数据进行加密,生成第二认证数据。通过使用U-KEY中存储的工作私钥对第一待认证数据进行加密,确保了生成的第二认证数据在数据传输的过程中不会被其它非法的U-KEY截取,去冒充真正合法的U-KEY,引发安全性问题。

生成第二认证数据后,步骤S206:状态转换工具将第二认证数据和工作公钥证书发给终端进行认证;这边的认证是指终端通过对接收到的第二认证数据进行解密,获取明文,比对明文是否与终端的第二待认证数据相同,如果相同,则U-KEY通过了终端的认证,获得了终端的认可,既U-KEY取得了可以从终端获取信息并且给终端发送信息的权限。其中这边所发送的工作公钥证书里面含有可以解密第二认证数据的公钥,是为了方便服务端收到以后可以提取里面的公钥,再去解密第二认证数据。

步骤S207:服务端对第一认证数据认证和终端对第二认证数认证是否都通过;服务端接收所述工作公钥证书,服务端提取所述工作公钥证书中的公钥,服务端使用所述公钥对所述第一认证数据进行解密,获取所述第一认证数据中的待认证数据明文,比对所述第一认证数据中的待认证数据明文与所述第一待认证数据是否一致,若一致,认证通过。

终端接收所述工作公钥证书,终端提取所述工作公钥证书中的公钥,终端使用所述公钥对所述第二认证数据进行解密,获取所述第二认证数据中的待认证数据明文,比对所述第二认证数据中的待认证数据明文与所述第二待认证数据是否一致,若一致,认证通过。

通过服务端对U-KEY的认证和终端对U-KEY的认证,当两者都认证通过时,也就意味着U-KEY的合法性得到了服务端和终端的认可,那么接下来我们就允许U-KEY的持有者使用状态转换工具从终端获取待认证数据,发送给服务端,服务端使用认证私钥对待认证数据进行加密,生成认证数据,通过状态转换工具把认证数据发送给终端,终端对其进行认证,若认证通过,既意味着服务端也通过了终端的认可,那么通过服务端认可的U-KEY的持有者便有权限可以使用状态转换工具对终端的状态进行合法地转换,避免非法转换,并且在U-KEY通过服务端和终端认证通过以后,后续的步骤都可以自动完成,大大提高了转换的速度,极大地方便了应用程序开发人员的调试。在步骤S208中:状态转换工具发送要转换的状态给终端,终端转换状态。状态转换工具会从终端获取终端信息和待认证数据,所述终端信息是指终端序列号,待认证数据是主板序列号和随机数,其中每个终端的主板序列号是唯一的,在本实施例中随机数为16字节随机数,在其他实施例中,随机数可以为其他位数的字母或者字符都可以。通过使用具有唯一标识终端的主板序列号与随机数的组合,确保了待认证数据的唯一性。

状态转换工具把这些数据发送给服务端。服务端对终端信息进行认证,并生成认证数据;服务端获取到终端信息后,判断该终端信息的合法性,判断其是合法的以后,服务端再使用认证私钥对待认证数据进行加密,生成认证数据,并把认证数据发送给状态转换工具。

在本实施例中,出于安全性要求较高的考虑,因为每个终端使用的公钥都是不一样的,因此在服务端判断终端信息的时候,不仅仅判断其合法性,同时也根据该终端信息,使用与该终端对应的私钥对待认证数据进行加密。通过使用私钥对待认证数据进行加密,确保了生成的认证数据在数据传输的过程中不会被其它非法者截取,去冒充真正合法的服务端,对终端进行欺骗,引发安全性问题。

而在一些其他的实施例中,出于方便性和通用性的考虑,每个终端使用的公钥是一样的,因此服务端只需判断终端信息的合法性,并且服务端用通用的私钥对待认证数据进行加密。

状态转换工具发送所述认证数据给终端,终端使用公钥对认证数据进行解密,因为服务端用的是与该终端对应的私钥对待认证数据进行加密,因此终端可解密成功,解密成功后,判断解密后的数据中的主板序列号是否是本终端的主板序列号,如果是,则认证通过。认证通过后,状态转换工具发送要转换的状态给终端,终端转换到对应状态。在本实施例中,为了保证安全性,在终端从调试态转入使用态后,设备上的应用程序和密钥会被全部清除;同样地终端从使用态到调试态后,设备上的密钥也会被全部清除。

在某些实施例中,终端从使用态转换到调试态的时候,为了避免用户在这上面输入个人PIN,确保安全性。调试态的界面与使用态有明显区别,调试态下会每隔几秒弹出警告框或水印等方式提示,提示使用者这个终端处于调试态,以免使用者在这种终端上输入个人的PIN。

请参阅图1,在某些实施例中,本发明一种授信的终端状态转换系统的方案如下:

系统包括:服务端10、终端20和状态转换工具30,其中U-KEY40是插在状态转换工具30上,本实施例中,状态转换工具30为PC,其中U-KEY40中存储有终端根公钥证书下属的工作公钥证书401及工作私钥402,当U-KEY40插在状态转换工具30上后,状态转换工具30上安装有交互软件,使得状态转换工具具有U-KEY交互模块303,其中状态转换工具30还包括:服务端认证模块301和终端认证模块302,其中终端认证模块302主要是用来从终端20获取信息和发送信息给终端20,其中服务端认证模块301主要是用来从服务端10获取信息和发送信息给服务端10。

具体如下:

服务端认证模块301用于:从服务端10获取第一待认证数据;首先服务端10自己生成第一待认证数据,本实施例中第一待认证数据是16字节随机数,服务端认证模块301再去从服务端10获取第一待认证数据,获取到后,服务端认证模块301把第一待认证数据发送给U-KEY交互模块303。

U-KEY交互模块303用于:使用U-KEY40生成第一认证数据;U-KEY交互模块303收到第一待认证数据后,U-KEY交互模块303使用U-KEY40中存储的工作私钥402对第一待认证数据进行加密,加密后生成第一认证数据。

生成第一认证数据后,服务端认证模块301用于:将第一认证数据和工作公钥证书401发给服务端10进行认证;其中这边所发送的工作公钥证书401里面含有可以解密第一认证数据的公钥,是为了方便服务端10收到以后可以提取里面的公钥,再去解密第一认证数据。

终端认证模块302用于:从终端20获取第二待认证数据;同样地,终端20生成第二待认证数据,本实施例中第二待认证数据是终端主板序列号和随机数的组合,这边的终端主板序列号具有唯一性,可以唯一标识一个终端。终端20生成第二待认证数据后,终端认证模块302就去获取第二待认证数据,并且终端认证模块302把第二待认证数据发送给U-KEY交互模块303。

U-KEY交互模块303用于:使用U-KEY40生成第二认证数据;U-KEY交互模块303使用U-KEY40中的工作私钥对第二待认证数据进行加密,生成第二认证数据,生成第二认证数据后。

终端认证模块302用于:将第二认证数据和工作公钥证书401发给终端20进行认证;其中这边所发送的工作公钥证书401里面含有可以解密第二认证数据的公钥,是为了方便服务端10收到以后可以提取里面的公钥,再去解密第二认证数据。

服务端10对第一认证数据认证和终端20对第二认证数认证是否都通过;服务端10还用于:接收所述工作公钥证书401,服务端10提取所述工作公钥证书401中的公钥,服务端10使用所述公钥对所述第一认证数据进行解密,获取所述第一认证数据中的待认证数据明文,比对所述第一认证数据中的待认证数据明文与所述第一待认证数据是否一致,若一致,认证通过;

终端20还用于:接收所述工作公钥证书401,终端20提取所述工作公钥证书401中的公钥,终端20使用所述公钥对所述第二认证数据进行解密,获取所述第二认证数据中的待认证数据明文,比对所述第二认证数据中的待认证数据明文与所述第二待认证数据是否一致,若一致,认证通过。

两者都验证通过,那么也就意味着U-KEY40的合法性得到了服务端10和终端20的认可,那么接下来我们就允许U-KEY40的持有者使用状态转换工具30从服务端10获取认证数据,用于终端20的认证;

终端认证模块302用于:发送要转换的状态给终端20,终端20转换状态。终端认证模块302会从终端20获取终端信息和待认证数据,所述终端信息是指终端序列号,待认证数据是主板序列号和随机数,其中每个终端20的主板序列号是唯一的,在本实施例中随机数为16字节随机数,在其他实施例中,随机数可以为其他位数的字母或者字符都可以。

服务端认证模块301用于:把这些数据发送给服务端10。

服务端10用于:对终端信息进行认证,并生成认证数据;服务端10获取到终端信息后,判断该终端信息的合法性,判断其是合法的以后,服务端10再使用认证私钥对待认证数据进行加密,生成认证数据,并把认证数据发送给服务端认证模块301。

在本实施例中,出于安全性要求较高的考虑,因为每个终端20使用的公钥都是不一样的,因此在服务端10判断终端信息的时候,不仅仅判断其合法性,同时也根据该终端信息,使用与该终端20对应的私钥对待认证数据进行加密。

而在一些其他的实施例中,出于方便性和通用性的考虑,每个终端20使用的公钥是一样的,因此服务端10只需判断终端信息的合法性,并且服务端10用通用的私钥对待认证数据进行加密。

终端认证模块302用于:把所述认证数据发送给终端20。

终端20还用于:使用公钥对认证数据进行解密,因为服务端10用的是与该终端20对应的私钥对待认证数据进行加密,因此终端20可解密成功,解密成功后,判断解密后的数据中的主板序列号是否是本终端20的主板序列号,如果是,则认证通过。

认证通过后,终端认证模块302还用于:发送要转换的状态给终端20,终端20转换到对应状态。在本实施例中,为了保证安全性,在终端20从调试态转入使用态后,设备上的应用程序和密钥会被全部清除;同样地终端20从使用态到调试态后,设备上的密钥也会被全部清除。

在某些实施例中,终端20从使用态转换到调试态的时候,为了避免用户在这上面输入个人PIN,确保安全性。调试态的界面与使用态有明显区别,调试态下会每隔几秒弹出警告框或水印等方式提示,提示使用者这个终端处于调试态,以免使用者在这种终端20上输入个人的PIN。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。

本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,包括但不限于:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。

上述各实施例是参照根据实施例所述的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1