首页 / 终端身份识别方法、装置和系统

终端身份识别方法、装置和系统实质审查 发明

技术领域

[0001] 本发明涉及通信技术领域,具体地涉及一种终端身份识别方法、一种终端身份识别装置、一种终端身份识别系统、一种机器可读存储介质和一种计算机程序产品。

相关背景技术

[0002] 电网设备部署分散,种类多样。设备资产未完全实现统一身份编码,无法实现物联网感知层终端设备互联安全管理,即现有服务平台缺乏对终端的身份管理。
[0003] 现有方案中,通常使用的是非对称密钥加密保护数据,即发送方使用接受方的公钥加密,然后接受方使用自己的私钥解密的非对称密钥方式进行安全防护。同时还使用公钥在网络中明文传输。现有方案存在以下缺点。第一,当并发量大的时候,非对称密钥加解密操作会消耗大量资源;第二,公钥在网络中明文传输,会被攻击者捕获后使用伪造的公私钥冒用身份捕获数据。

具体实施方式

[0084] 以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
[0085] 方法实施例
[0086] 本发明实施例提供一种终端身份识别方法,应用于网络设备。网络设备可以是服务平台,例如服务器等。本发明实施例中网络设备以服务平台为例进行说明。其中服务平台配置有安全加密设备,例如服务平台配置有密码机。
[0087] 请参照图1,本发明实施例的终端身份识别方法包括:
[0088] 步骤101、生成第一随机数,以及发送启动身份识别指令至终端。
[0089] 启动身份认证时,服务平台可以在Python编程语言中使用random模块来生成第一随机数。服务平台还需要发送启动身份识别指令至终端,以便告知终端开始执行身份认证,生成第二随机数。
[0090] 步骤102、随机生成第一公钥和第一私钥,通过所述第一私钥对所述第一随机数进行签名,以及通过第一预设密钥对所述第一随机数的签名结果、所述第一公钥以及所述第一随机数形成的整体数据进行加密,得到第一密文数据。
[0091] 服务平台可使用公开密钥加密算法随机生成一对公私钥对。例如服务平台可使用RSA算法或ECC算法(椭圆曲线密码学算法)随机生成第一公钥和第一私钥。服务平台通过所述第一私钥对所述第一随机数进行签名。具体的,服务平台可使用第一私钥对第一随机数的摘要(或称哈希值)进行加密处理,生成一个数字签名。并且通过第一预设密钥对所述第一随机数的签名结果、所述第一公钥以及所述第一随机数形成的整体数据进行加密,得到第一密文数据。其中第一预设密钥是预置于服务平台的密钥,用于对所述第一随机数的签名结果、所述第一公钥以及所述第一随机数形成的整体数据进行加密,形成第一密文数据作为与终端进行身份识别的认证数据。
[0092] 步骤103、发送所述第一密文数据至所述终端,以及接收所述终端发送的第二密文数据。
[0093] 服务平台发送第一密文数据至所述终端,以使终端对第一密文数据进行解密,以及完成终端对服务平台的身份识别。服务平台还需要接收所述终端发送的第二密文数据,以对第二密文数据进行解密,完成服务平台对终端的身份识别。从而通信双方身份认证的认证数据都是密文数据,避免了认证数据中的公钥在网络中明文传输,以及避免了攻击者通过伪造的公私钥冒用身份后接入到系统中捕获数据。
[0094] 步骤104、通过第二预设密钥对所述第二密文数据进行解密,得到第二明文数据。
[0095] 服务平台可通过预置的第二预设密钥对所述第二密文数据进行解密,得到第二明文数据。其中所述第二密文数据是所述终端利用所述第二预设密钥对所述第二明文数据进行加密形成的。本发明实施例在服务平台和终端预置了第二预设密钥,通过第二预设密钥实现对所述第二明文数据进行加密,以及通过第二预设密钥实现对第二密文数据进行解密。即通过在服务平台和终端预置对称密钥进行数据加解密,从而增加身份识别安全性。相比非对称密钥进行安全防护,本发明实施例通过对称密钥进行数据加解密,减小加解密操作的资源消耗。
[0096] 另外,所述第二明文数据包括第二随机数、第二公钥和所述第二随机数的签名结果。第二随机数是终端基于启动身份识别指令随机生成的。所述第二随机数的签名结果是所述终端通过随机生成的第二公钥对应的第二私钥,对所述第二随机数进行签名得到的。终端可使用第二私钥对第二随机数的摘要(或称哈希值)进行加密处理,生成一个数字签名。
[0097] 步骤105、通过所述第二公钥对所述第二随机数的签名结果进行验签,以实现对所述终端的身份识别。
[0098] 服务平台使用终端随机生成的第二公钥对第二随机数的数字签名进行解密验证,以实现对所述终端的身份识别。若此时发生攻击者通过伪造的公私钥对捕获数据,则由于本发明实施例每次身份认证在服务平台和终端都生成随机数以及生成随机公私钥对,无法实现对所述第二随机数的签名结果进行验签,从而无法实现所述终端的身份识别,本发明实施例提高服务平台和终端进行身份识别的安全性。
[0099] 本发明实施例在网络设备端通过第二预设密钥执行第二密文数据的解密,在终端通过第二预设密钥执行第二密文数据的加密,从而通过在网络设备和终端中预置对称密钥,减小加解密操作的资源消耗和增加身份识别安全性。并且网络设备和终端每次身份识别时,都会各自都会产生一对随机的公私钥对,并通过随机的公私钥对生成密文数据作为认证数据进行传输,避免了公钥在网络中明文传输,避免了攻击者通过伪造的公私钥冒用身份后接入到系统中捕获数据。
[0100] 在本发明实施例的其他方面,请参照图2,步骤105、通过所述第二公钥对所述第二随机数的签名结果进行验签,以实现对所述终端的身份识别之后,还包括:
[0101] 步骤106、通过第一摘要计算方法计算所述第一公钥、所述第二公钥、所述第一随机数以及所述第二随机数形成的整体数据的摘要,得到第一协商主密钥。
[0102] 服务平台和终端完成身份识别后,服务平台可通过各种摘要计算方法,例如通过sm3摘要算法计算所述第一公钥、所述第二公钥、所述第一随机数以及所述第二随机数形成的整体数据的摘要,得到第一协商主密钥。
[0103] 本发明实施例中,服务平台和终端完成身份识别后每次都会生成一个协商主密钥。由于协商主密钥是基于随机生成的第一公钥、第二公钥、第一随机数以及所述第二随机数得到的,因此每次身份识别成功后生成的协商主密钥都不同,协商主密钥都不是固定值,极大提高了协商主密钥的安全性。相比现有的方案中使用固定密钥,每一次加解密运算均使用同一密钥值,缺乏密钥动态性,增加了被窃取篡改的风险。本发明实施例中引入身份识别后生成协商主密钥,该协商主密钥具有动态性,从而提高了协商主密钥的安全性。
[0104] 在本发明实施例的其他方面,请参照图2,步骤106、通过第一摘要计算方法计算所述第一公钥、所述第二公钥、所述第一随机数以及所述第二随机数形成的整体数据的摘要,得到第一协商主密钥之后,还包括:
[0105] 步骤107、通过第三预设密钥对所述终端的指纹信息进行加密,得到指纹信息密文。
[0106] 步骤108、发送所述指纹信息密文至所述终端。
[0107] 本发明实施例中服务平台对终端的指纹信息统一管理,包括存储、分发、身份唯一性验证等功能。即服务平台中存储通信连接的多个终端的指纹信息。其中终端的指纹信息表示用于唯一标识出该终端的设备特征或者独特的终端标识。例如终端的指纹信息可以是终端身份编码。
[0108] 本发明实施例中,服务平台通过预置的第三预设密钥对所述终端的指纹信息进行加密,得到指纹信息密文。并发送指纹信息密文至终端,以使终端通过预置的第三预设密钥对指纹信息密文进行解密,以及存储终端的指纹信息。本发明实施例通过将指纹信息加密,以及发送指纹信息密文至所述终端,便于后续在服务平台和终端基于体现终端身份唯一性的指纹信息生成动态共享密钥,从而进一步提高身份识别的安全性。
[0109] 并且,本发明实施例在服务平台的密码机和终端安全芯片中预置三对对称密钥(即第一预设密钥、第二预设密钥和第三预设密钥),增加身份识别和动态共享密钥生成的安全性。
[0110] 在本发明实施例的其他方面,请参照图2,步骤108、发送所述指纹信息密文至所述终端之后,还包括:
[0111] 步骤109、通过第二摘要计算方法计算所述终端的指纹信息、所述第一随机数、所述第二随机数形成的整体数据的摘要,得到第一动态分散因子。
[0112] 步骤110、基于所述第一动态分散因子对所述第一协商主密钥进行分散,得到第一动态共享密钥。
[0113] 服务平台可通过各种摘要计算方法,例如通过sm3摘要算法终端的指纹信息、所述第一随机数、所述第二随机数形成的整体数据的摘要,得到第一动态分散因子。服务平台再基于所述第一动态分散因子对第一协商主密钥进行分散,得到第一动态共享密钥。其中所述第一动态共享密钥包括多个子密钥。
[0114] 步骤111、通过第一子密钥对所述第一随机数加密,得到随机数密文;其中所述第一子密钥是所述第一动态共享密钥中的任意一个子密钥。
[0115] 步骤112、发送所述随机数密文至终端,以使所述终端对所述随机数密文进行安全验证。
[0116] 服务平台通过第一子密钥对所述第一随机数加密,得到随机数密文。其中所述第一子密钥是所述第一动态共享密钥中的任意一个子密钥。例如第一子密钥是所述第一动态共享密钥中的第一条子密钥。服务平台发送所述随机数密文至终端,以使所述终端对所述随机数密文进行安全验证。具体的,终端会基于与第一子密钥相同的子密钥对随机数密文进行解密,以得到第一随机数,实现终端和服务平台之间的安全验证。
[0117] 一方面,现有的方案中服务平台缺乏对终端设备的身份编码管理,也就缺少了服务平台对终端设备唯一性的验证功能,本发明实施例中引入了服务平台的设备指纹(设备身份编码)的管理,包括存储、分发、唯一性验证等功能。并且本发明实施例的动态共享密钥生成过程使用了终端设备的指纹信息(终端身份编码),由于每台终端的指纹信息不同,进而增加了一个动态分散因子,使得每台终端的动态共享密钥亦不同,即增加终端指纹信息与动态共享密钥的关联性和唯一性,也增加共享密钥的动态性。即本发明实施例通过将终端的指纹信息参与动态共享密钥的生成,增加了通信双方安全防护的关联性、动态性和唯一性。另外,由于动态共享主密钥是由协商主密钥生成的,因此可以根据服务平台和终端之间的业务数据的种类以及指纹信息拟定多种分类规则,增加了协商主密钥派生动态共享密钥的灵活性。
[0118] 另一方面,现有的方案中使用固定密钥,每一次加解密运算均使用同一密钥值,缺乏密钥动态性,增加了被窃取篡改的风险。本发明实施例中引入身份识别后生成协商主密钥,该协商主密钥具有动态性,同时拟定规则使用终端的指纹信息派生协商主密钥,生成动态共享密钥。由于每一个终端的指纹信息不同,生成的动态共享密钥亦不同,也增加了动态性。
[0119] 最后的,现有的方案中通信双方让密钥值数据加密后在网络上传输,容易被截取,风险很大。本发明实施例中,服务平台与终端之间的通信通过协商主密钥、指纹信息以及双方的第一随机数、第二随机数派生出动态共享密钥。网络传输的是加密的指纹信息,而不是密钥值数据本身。这样生成动态共享密钥的好处是提高密钥数据的安全性。
[0120] 另一方面,请参照图3,本发明实施例还提供一种终端身份识别方法,应用于终端,所述方法包括:
[0121] 步骤201、接收网络设备发送的启动身份识别指令,生成第二随机数。
[0122] 本发明实施例中终端配置有安全加密设备,例如终端配置安全芯片。终端接收服务平台发送的启动身份识别指令,开始执行身份认证,生成第二随机数。终端可以在Python编程语言中使用random模块来生成第二随机数。
[0123] 步骤202、随机生成第二公钥和第二私钥,通过所述第二私钥对所述第二随机数进行签名,以及通过第二预设密钥对所述第二随机数的签名结果、所述第二公钥以及所述第二随机数形成的整体数据进行加密,得到第二密文数据。
[0124] 终端可使用公开密钥加密算法随机生成一对公私钥对。例如终端可使用RSA算法或ECC算法(椭圆曲线密码学算法)随机生成第二公钥和第二私钥。终端通过所述第二私钥对所述第二随机数进行签名。具体的,终端可使用第二私钥对第二随机数的摘要(或称哈希值)进行加密处理,生成一个数字签名。并且通过第二预设密钥对所述第二随机数的签名结果、所述第二公钥以及所述第二随机数形成的整体数据进行加密,得到第二密文数据。其中第二预设密钥是预置于终端的密钥,用于对所述第二随机数的签名结果、所述第二公钥以及所述第二随机数形成的整体数据进行加密,形成第二密文数据作为与服务平台进行身份识别的认证数据。需要说明的是,终端的第二预设密钥和服务平台的第二预设密钥相同,从而本发明实施例在服务平台和终端预置对称密钥进行数据加解密,从而增加身份识别安全性。
[0125] 步骤203、发送所述第二密文数据至所述网络设备,以及接收所述网络设备发送的第一密文数据。
[0126] 终端发送所述第二密文数据至服务平台,以使服务平台对第二密文数据进行解密,完成服务平台对终端的身份识别。终端还需要接收服务平台发送的第一密文数据,以使终端对第一密文数据进行解密,以及完成终端对服务平台的身份识别。从而通信双方身份认证的认证数据都是密文数据,避免了认证数据中的公钥在网络中明文传输,以及避免了攻击者通过伪造的公私钥冒用身份后接入到系统中捕获数据。
[0127] 步骤204、通过第一预设密钥对所述第一密文数据进行解密,得到第一明文数据。
[0128] 终端可通过预置的第一预设密钥对所述第一密文数据进行解密,得到第一明文数据。其中所述第一密文数据是服务平台利用所述第一预设密钥对所述第一明文数据进行加密形成的。本发明实施例在服务平台和终端预置了第一预设密钥,通过第一预设密钥实现对所述第一明文数据进行加密,以及通过第一预设密钥实现对第一密文数据进行解密。即通过在服务平台和终端预置对称密钥进行数据加解密,从而增加身份识别安全性。相比非对称密钥进行安全防护,本发明实施例通过对称密钥进行数据加解密,减小加解密操作的资源消耗。
[0129] 所述第一密文数据是服务平台利用所述第一预设密钥对所述第一明文数据进行加密形成的;所述第一明文数据包括第一随机数、第一公钥和所述第一随机数的签名结果;所述第一随机数的签名结果是所述网络设备通过随机生成的第一公钥对应的第一私钥,对所述第一随机数进行签名得到的。服务平台可使用第一私钥对第一随机数的摘要(或称哈希值)进行加密处理,生成一个数字签名。
[0130] 步骤205、通过所述第一公钥对所述第一随机数的签名结果进行验签,以实现对所述网络设备的身份识别。
[0131] 终端通过第一公钥对第一随机数的数字签名进行解密验证,以实现对服务平台的身份识别。若此时发生攻击者通过伪造的公私钥对捕获数据,则由于本发明实施例每次身份认证在服务平台和终端都生成随机数以及生成随机公私钥对,无法实现对所述第一随机数的签名结果进行验签,从而无法实现所述服务平台的身份识别,本发明实施例提高服务平台和终端进行身份识别的安全性。
[0132] 本发明实施例在终端通过第一预设密钥对所述第一密文数据进行解密,在网络设备通过第一预设密钥执行第一密文数据的加密,从而通过在网络设备和终端中预置对称密钥,减小加解密操作的资源消耗和增加身份识别安全性。并且网络设备和终端每次身份识别时,都会各自都会产生一对随机的公私钥对,并通过随机的公私钥对生成密文数据作为认证数据进行传输,避免了公钥在网络中明文传输,避免了攻击者通过伪造的公私钥冒用身份后接入到系统中捕获数据。
[0133] 在本发明实施例的其他方面,请参照图4,步骤205、通过所述第一公钥对所述第一随机数的签名结果进行验签,以实现对所述网络设备的身份识别之后,还包括:
[0134] 步骤206、通过第三摘要计算方法计算所述第一公钥、所述第二公钥、所述第一随机数以及所述第二随机数形成的整体数据的摘要,得到第二协商主密钥。
[0135] 服务平台和终端完成身份识别后,终端可通过各种摘要计算方法,例如通过sm3摘要算法计算所述第一公钥、所述第二公钥、所述第一随机数以及所述第二随机数形成的整体数据的摘要,得到第二协商主密钥。需要说明的是,终端生成的第二协商主密钥与服务平台生成的第一协商主密钥相同。
[0136] 本发明实施例中,服务平台和终端完成身份识别后每次都会生成一个协商主密钥。由于协商主密钥是基于随机生成的第一公钥、第二公钥、第一随机数以及所述第二随机数得到的,因此每次身份识别成功后生成的协商主密钥都不同,协商主密钥都不是固定值,极大提高了协商主密钥的安全性。相比现有的方案中使用固定密钥,每一次加解密运算均使用同一密钥值,缺乏密钥动态性,增加了被窃取篡改的风险。本发明实施例中引入身份识别后生成协商主密钥,该协商主密钥具有动态性,从而提高了协商主密钥的安全性。
[0137] 在本发明实施例的其他方面,请参照图4,步骤206、通过第三摘要计算方法计算所述第一公钥、所述第二公钥、所述第一随机数以及所述第二随机数形成的整体数据的摘要,得到第二协商主密钥之后,还包括:
[0138] 步骤207、接收所述网络设备发送的指纹信息密文。
[0139] 步骤208、通过第三预设密钥对所述指纹信息密文进行解密,得到所述终端的指纹信息。
[0140] 步骤209、存储所述指纹信息,以及设置所述指纹信息为非可读状态。
[0141] 终端接收指纹信息密文。接着通过预置的第三预设密钥对指纹信息密文进行解密,存储终端的指纹信息,并设置为非可读状态。从而保护终端的指纹信息不被窃取。本发明实施例通过存储所述指纹信息,以及设置所述指纹信息为非可读状态,便于后续在服务平台和终端基于体现终端身份唯一性的指纹信息生成动态共享密钥,从而进一步提高身份识别的安全性。
[0142] 并且,请参照图5,本发明实施例在服务平台的密码机和终端安全芯片中预置三对对称密钥(即第一预设密钥、第二预设密钥和第三预设密钥),增加身份识别和动态共享密钥生成的安全性。
[0143] 在本发明实施例的其他方面,请参照图4,步骤209、存储所述指纹信息,以及设置所述指纹信息为非可读状态之后,还包括:
[0144] 步骤210、通过第四摘要计算方法计算所述终端的指纹信息、所述第一随机数、所述第二随机数形成的整体数据的摘要,得到第二动态分散因子。
[0145] 步骤211、基于所述第二动态分散因子对所述第二协商主密钥进行分散,得到第二动态共享密钥;所述第二动态共享密钥包括多个子密钥。
[0146] 终端可通过各种摘要计算方法,例如通过sm3摘要算法终端的指纹信息、所述第一随机数、所述第二随机数形成的整体数据的摘要,得到第二动态分散因子。终端再基于所述第二动态分散因子对第二协商主密钥进行分散,得到第二动态共享密钥。其中所述第二动态共享密钥包括多个子密钥。需要说明的是,终端的第二动态分散因子与服务平台的第一动态分散因子相同。终端的第二动态共享密钥与服务平台的第一动态共享密钥相同。
[0147] 步骤212、接收所述网络设备发送的随机数密文,通过第二子密钥对所述随机数密文进行解密,得到解密结果。
[0148] 步骤213、在所述解密结果是第一随机数的情况下,则所述网络设备与所述终端之间的安全验证通过。
[0149] 终端通过第二子密钥对所述随机数密文解密,得到第一随机数。其中所述随机数密文是所述网络设备通过第一子密钥对所述第一随机数进行加密得到的,所述第二子密钥是所述第二动态共享密钥中与所述第一子密钥相同的子密钥。终端基于与第一子密钥相同的子密钥对随机数密文进行解密,以得到第一随机数,实现终端和服务平台之间的安全验证。
[0150] 一方面,现有的方案中服务平台缺乏对终端设备的身份编码管理,也就缺少了服务平台对终端设备唯一性的验证功能,本发明实施例中引入了服务平台的设备指纹(设备身份编码)的管理,包括存储、分发、唯一性验证等功能。并且本发明实施例的动态共享密钥生成过程使用了终端设备的指纹信息(终端身份编码),由于每台终端的指纹信息不同,进而增加了一个动态分散因子,使得每台终端的动态共享密钥亦不同,即增加终端指纹信息与动态共享密钥的关联性和唯一性,也增加共享密钥的动态性。即本发明实施例通过将终端的指纹信息参与动态共享密钥的生成,增加了通信双方安全防护的关联性、动态性和唯一性。另外,由于动态共享主密钥是由协商主密钥生成的,因此可以根据服务平台和终端之间的业务数据的种类以及指纹信息拟定多种分类规则,增加了协商主密钥派生动态共享密钥的灵活性。
[0151] 另一方面,现有的方案中使用固定密钥,每一次加解密运算均使用同一密钥值,缺乏密钥动态性,增加了被窃取篡改的风险。本发明实施例中引入身份识别后生成协商主密钥,该协商主密钥具有动态性,同时拟定规则使用终端的指纹信息派生协商主密钥,生成动态共享密钥。由于每一个终端的指纹信息不同,生成的动态共享密钥亦不同,也增加了动态性。
[0152] 最后的,现有的方案中通信双方让密钥值数据加密后在网络上传输,容易被截取,风险很大。本发明实施例中,服务平台与终端之间的通信通过协商主密钥、指纹信息以及双方的第一随机数、第二随机数派生出动态共享密钥。网络传输的是加密的指纹信息,而不是密钥值数据本身。这样生成动态共享密钥的好处是提高密钥数据的安全性。
[0153] 装置实施例
[0154] 另一方面,请参照图6,本发明实施例还提供一种终端身份识别装置,所述装置包括:
[0155] 发送模块601,用于生成第一随机数,以及发送启动身份识别指令至终端;
[0156] 加密模块602,用于随机生成第一公钥和第一私钥,通过所述第一私钥对所述第一随机数进行签名,以及通过第一预设密钥对所述第一随机数的签名结果、所述第一公钥以及所述第一随机数形成的整体数据进行加密,得到第一密文数据;
[0157] 交互模块603,用于发送所述第一密文数据至所述终端,以及接收所述终端发送的第二密文数据;
[0158] 解密模块604,用于通过第二预设密钥对所述第二密文数据进行解密,得到第二明文数据;所述第二密文数据是所述终端利用所述第二预设密钥对所述第二明文数据进行加密形成的;所述第二明文数据包括第二随机数、第二公钥和所述第二随机数的签名结果;所述第二随机数的签名结果是所述终端通过随机生成的第二公钥对应的第二私钥,对所述第二随机数进行签名得到的;
[0159] 验签模块605,用于通过所述第二公钥对所述第二随机数的签名结果进行验签,以实现对所述终端的身份识别。
[0160] 所述终端身份识别装置包括处理器和存储器,上述发送模块601、加密模块602、交互模块603、解密模块604、验签模块605等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
[0161] 可选的,所述装置还包括:
[0162] 主密钥产生模块,用于通过第一摘要计算方法计算所述第一公钥、所述第二公钥、所述第一随机数以及所述第二随机数形成的整体数据的摘要,得到第一协商主密钥。
[0163] 可选的,所述装置还包括:
[0164] 第二加密模块,用于通过第三预设密钥对所述终端的指纹信息进行加密,得到指纹信息密文;
[0165] 第二发送模块,用于发送所述指纹信息密文至所述终端。
[0166] 可选的,所述装置还包括:
[0167] 分散因子产生模块,用于通过第二摘要计算方法计算所述终端的指纹信息、所述第一随机数、所述第二随机数形成的整体数据的摘要,得到第一动态分散因子;
[0168] 分散模块,用于基于所述第一动态分散因子对所述第一协商主密钥进行分散,得到第一动态共享密钥;所述第一动态共享密钥包括多个子密钥;
[0169] 第三加密模块,用于通过第一子密钥对所述第一随机数加密,得到随机数密文;其中所述第一子密钥是所述第一动态共享密钥中的任意一个子密钥;
[0170] 第三发送模块,用于发送所述随机数密文至终端,以使所述终端对所述随机数密文进行安全验证。
[0171] 处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上。
[0172] 存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
[0173] 另一方面,请参照图7,本发明实施例还提供一种终端身份识别装置,所述装置包括:
[0174] 接收模块701,用于接收网络设备发送的启动身份识别指令,生成第二随机数;
[0175] 加密模块702,用于随机生成第二公钥和第二私钥,通过所述第二私钥对所述第二随机数进行签名,以及通过第二预设密钥对所述第二随机数的签名结果、所述第二公钥以及所述第二随机数形成的整体数据进行加密,得到第二密文数据;
[0176] 交互模块703,用于发送所述第二密文数据至所述网络设备,以及接收所述网络设备发送的第一密文数据;
[0177] 解密模块704,用于通过第一预设密钥对所述第一密文数据进行解密,得到第一明文数据;所述第一密文数据是所述网络设备利用所述第一预设密钥对所述第一明文数据进行加密形成的;所述第一明文数据包括第一随机数、第一公钥和所述第一随机数的签名结果;所述第一随机数的签名结果是所述网络设备通过随机生成的第一公钥对应的第一私钥,对所述第一随机数进行签名得到的;
[0178] 验签模块705,用于通过所述第一公钥对所述第一随机数的签名结果进行验签,以实现对所述网络设备的身份识别。
[0179] 可选的,所述装置还包括:
[0180] 主密钥产生模块,用于通过第三摘要计算方法计算所述第一公钥、所述第二公钥、所述第一随机数以及所述第二随机数形成的整体数据的摘要,得到第二协商主密钥。
[0181] 可选的,所述装置还包括:
[0182] 第二接收模块,用于接收所述网络设备发送的指纹信息密文;
[0183] 第二解密模块,用于通过第三预设密钥对所述指纹信息密文进行解密,得到所述终端的指纹信息;
[0184] 存储模块,用于存储所述指纹信息,以及设置所述指纹信息为非可读状态。
[0185] 可选的,所述装置还包括:
[0186] 分散因子产生模块,用于通过第四摘要计算方法计算所述终端的指纹信息、所述第一随机数、所述第二随机数形成的整体数据的摘要,得到第二动态分散因子;
[0187] 分散模块,用于基于所述第二动态分散因子对所述第二协商主密钥进行分散,得到第二动态共享密钥;所述第二动态共享密钥包括多个子密钥;
[0188] 第三解密模块,用于接收所述网络设备发送的随机数密文,通过第二子密钥对所述随机数密文进行解密,得到解密结果;其中所述随机数密文是所述网络设备通过第一子密钥对所述第一随机数进行加密得到的,所述第二子密钥是所述第二动态共享密钥中与所述第一子密钥相同的子密钥;
[0189] 验证模块,用于在所述解密结果是第一随机数的情况下,则所述网络设备与所述终端之间的安全验证通过。
[0190] 所述终端身份识别装置包括处理器和存储器,上述接收模块、加密模块、交互模块、解密模块和验签模块等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
[0191] 处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上。
[0192] 存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
[0193] 另一方面,请参照图8,本发明实施例还提供一种终端身份识别系统,包括:执行上述终端身份识别方法的网络设备和执行上述终端身份识别方法的终端。
[0194] 网络设备(即服务平台),用于生成第一随机数,以及发送启动身份识别指令至终端;随机生成第一公钥和第一私钥,通过所述第一私钥对所述第一随机数进行签名,以及通过第一预设密钥对所述第一随机数的签名结果、所述第一公钥以及所述第一随机数形成的整体数据进行加密,得到第一密文数据;发送所述第一密文数据至所述终端,以及接收所述终端发送的第二密文数据;通过第二预设密钥对所述第二密文数据进行解密,得到第二明文数据;所述第二密文数据是所述终端利用所述第二预设密钥对所述第二明文数据进行加密形成的;所述第二明文数据包括第二随机数、第二公钥和所述第二随机数的签名结果;所述第二随机数的签名结果是所述终端通过随机生成的第二公钥对应的第二私钥,对所述第二随机数进行签名得到的;通过所述第二公钥对所述第二随机数的签名结果进行验签,以实现对所述终端的身份识别;
[0195] 终端,用于接收网络设备发送的启动身份识别指令,生成第二随机数;随机生成第二公钥和第二私钥,通过所述第二私钥对所述第二随机数进行签名,以及通过第二预设密钥对所述第二随机数的签名结果、所述第二公钥以及所述第二随机数形成的整体数据进行加密,得到第二密文数据;发送所述第二密文数据至所述网络设备,以及接收所述网络设备发送的第一密文数据;通过第一预设密钥对所述第一密文数据进行解密,得到第一明文数据;所述第一密文数据是所述网络设备利用所述第一预设密钥对所述第一明文数据进行加密形成的;所述第一明文数据包括第一随机数、第一公钥和所述第一随机数的签名结果;所述第一随机数的签名结果是所述网络设备通过随机生成的第一公钥对应的第一私钥,对所述第一随机数进行签名得到的;通过所述第一公钥对所述第一随机数的签名结果进行验签,以实现对所述网络设备的身份识别。
[0196] 本发明实施例的服务平台和某一终端双方首先各自通过ECC算法随机生成一对公私钥对,双方通过交换各自公钥,结合签名验签技术完成双向身份识别功能。同时在身份识别完成后,非对称密钥协商生成协商主密钥,该协商主密钥是对称密钥,亦是通过非对称动态生成。然后服务平台具备逐一对终端设备指纹信息(终端的身份编码)进行统一分发管理功能,每个终端设备通过服务平台获取自己的指纹信息作为生成动态共享密钥的派生因子之一,且该指纹信息在终端侧存储,并设置状态为非可读。双方使用指纹信息参与并拟定一定的规则后sm3运算生成的分散因子去派生协商主密钥,生成子密钥组,该子密钥组称之为动态共享密钥。终端的业务数据即可使用动态共享密钥进行数据的加解密安全防护。
[0197] 本发明实施例的终端身份识别系统具有4个功能:1、通信双方使用ECC算法随机生成公私钥对进行双向设备认证;2、通信双方利用非对称密钥通过sm3运算后协商生成协商主密钥,该协商主密钥是对称密钥;3、服务平台具备指纹信息(终端身份编码)的管理,即可以逐一分发终端的指纹信息(终端的身份编码标示)、终端的唯一性验证、设备指纹存储等的功能,同时终端获取指纹信息去参与动态共享密钥生成;4、通信双方协商主密钥使用指纹信息并拟定规则后作为分散因子派生子密钥组,该子密钥组称之为动态共享密钥。
[0198] 一方面,现有的方案中服务平台缺乏对终端设备的身份编码管理,也就缺少了服务平台对终端设备唯一性的验证功能,本发明实施例中引入了服务平台的设备指纹(设备身份编码)的管理,包括存储、分发、唯一性验证等功能。并且本发明实施例的动态共享密钥生成过程使用了终端设备的指纹信息(终端身份编码),由于每台终端的指纹信息不同,进而增加了一个动态分散因子,使得每台终端的动态共享密钥亦不同,即增加终端指纹信息与动态共享密钥的关联性和唯一性,也增加共享密钥的动态性。即本发明实施例通过将终端的指纹信息参与动态共享密钥的生成,增加了通信双方安全防护的关联性、动态性和唯一性。另外,由于动态共享主密钥是由协商主密钥生成的,因此可以根据服务平台和终端之间的业务数据的种类以及指纹信息拟定多种分类规则,增加了协商主密钥派生动态共享密钥的灵活性。
[0199] 另一方面,现有的方案中使用固定密钥,每一次加解密运算均使用同一密钥值,缺乏密钥动态性,增加了被窃取篡改的风险。本发明实施例中引入身份识别后生成协商主密钥,该协商主密钥具有动态性,同时拟定规则使用终端的指纹信息派生协商主密钥,生成动态共享密钥。由于每一个终端的指纹信息不同,生成的动态共享密钥亦不同,也增加了动态性。
[0200] 最后的,现有的方案中通信双方让密钥值数据加密后在网络上传输,容易被截取,风险很大。本发明实施例中,服务平台与终端之间的通信通过协商主密钥、指纹信息以及双方的第一随机数、第二随机数派生出动态共享密钥。网络传输的是加密的指纹信息,而不是密钥值数据本身。这样生成动态共享密钥的好处是提高密钥数据的安全性。
[0201] 另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在机器可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行终端身份识别方法,该方法包括:生成第一随机数,以及发送启动身份识别指令至终端;随机生成第一公钥和第一私钥,通过所述第一私钥对所述第一随机数进行签名,以及通过第一预设密钥对所述第一随机数的签名结果、所述第一公钥以及所述第一随机数形成的整体数据进行加密,得到第一密文数据;发送所述第一密文数据至所述终端,以及接收所述终端发送的第二密文数据;通过第二预设密钥对所述第二密文数据进行解密,得到第二明文数据;所述第二密文数据是所述终端利用所述第二预设密钥对所述第二明文数据进行加密形成的;所述第二明文数据包括第二随机数、第二公钥和所述第二随机数的签名结果;所述第二随机数的签名结果是所述终端通过随机生成的第二公钥对应的第二私钥,对所述第二随机数进行签名得到的;通过所述第二公钥对所述第二随机数的签名结果进行验签,以实现对所述终端的身份识别;或者,
[0202] 接收网络设备发送的启动身份识别指令,生成第二随机数;随机生成第二公钥和第二私钥,通过所述第二私钥对所述第二随机数进行签名,以及通过第二预设密钥对所述第二随机数的签名结果、所述第二公钥以及所述第二随机数形成的整体数据进行加密,得到第二密文数据;发送所述第二密文数据至所述网络设备,以及接收所述网络设备发送的第一密文数据;通过第一预设密钥对所述第一密文数据进行解密,得到第一明文数据;所述第一密文数据是所述网络设备利用所述第一预设密钥对所述第一明文数据进行加密形成的;所述第一明文数据包括第一随机数、第一公钥和所述第一随机数的签名结果;所述第一随机数的签名结果是所述网络设备通过随机生成的第一公钥对应的第一私钥,对所述第一随机数进行签名得到的;通过所述第一公钥对所述第一随机数的签名结果进行验签,以实现对所述网络设备的身份识别。
[0203] 又一方面,本发明还提供一种机器可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行终端身份识别方法,该方法包括:生成第一随机数,以及发送启动身份识别指令至终端;随机生成第一公钥和第一私钥,通过所述第一私钥对所述第一随机数进行签名,以及通过第一预设密钥对所述第一随机数的签名结果、所述第一公钥以及所述第一随机数形成的整体数据进行加密,得到第一密文数据;发送所述第一密文数据至所述终端,以及接收所述终端发送的第二密文数据;通过第二预设密钥对所述第二密文数据进行解密,得到第二明文数据;所述第二密文数据是所述终端利用所述第二预设密钥对所述第二明文数据进行加密形成的;所述第二明文数据包括第二随机数、第二公钥和所述第二随机数的签名结果;所述第二随机数的签名结果是所述终端通过随机生成的第二公钥对应的第二私钥,对所述第二随机数进行签名得到的;通过所述第二公钥对所述第二随机数的签名结果进行验签,以实现对所述终端的身份识别;或者,
[0204] 接收网络设备发送的启动身份识别指令,生成第二随机数;随机生成第二公钥和第二私钥,通过所述第二私钥对所述第二随机数进行签名,以及通过第二预设密钥对所述第二随机数的签名结果、所述第二公钥以及所述第二随机数形成的整体数据进行加密,得到第二密文数据;发送所述第二密文数据至所述网络设备,以及接收所述网络设备发送的第一密文数据;通过第一预设密钥对所述第一密文数据进行解密,得到第一明文数据;所述第一密文数据是所述网络设备利用所述第一预设密钥对所述第一明文数据进行加密形成的;所述第一明文数据包括第一随机数、第一公钥和所述第一随机数的签名结果;所述第一随机数的签名结果是所述网络设备通过随机生成的第一公钥对应的第一私钥,对所述第一随机数进行签名得到的;通过所述第一公钥对所述第一随机数的签名结果进行验签,以实现对所述网络设备的身份识别。
[0205] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0206] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0207] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页 第1页 第2页 第3页