1.一种数字证书生成方法,其特征在于,包括:
接收移动终端发送的申请数字证书的请求信息,该请求信息携带有用户标识及初始计数器数值;
登记所述用户标识,并为该用户生成相应的用户公钥和用户私钥;
根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥加密所述用户私钥,生成加密后的用户私钥;
根据所述用户标识及所述用户公钥生成用户公钥数字证书;
所述根据所述用户标识及初始计数器数值生成动态密钥为根据如下公式计算生成:
HOTP(K,C)=Truncate(HMAC-SHA-1(K,C)),其中:
HOTP(K,C)为生成的动态密钥;
K为种子,K=MD5(IMEI+IMSI);
C为用户身份识别模块的计数器;
Truncate(HMAC-SHA-1(K,C))为动态密钥生成算法。
2.如权利要求1所述的方法,其特征在于,所述根据所述用户标识及所述用户公钥生成用户公钥数字证书的步骤之后还包括:
向所述移动终端发送申请数字证书成功的通知信息。
3.如权利要求2所述的数字证书生成方法,其特征在于,所述根据所述用户标识信息与所述用户公钥生成用户公钥数字证书具体为:
向证书授权中心发送所述用户标识信息与所述用户公钥;
所述证书授权中心根据所述用户标识信息与所述用户公钥生成用户公钥数字证书,并返回所述用户公钥数字证书;
接收所述证书授权中心下发的用户公钥数字证书。
4.一种用户密钥获取方法,其特征在于,包括:
向网络侧发送用户密钥获取请求,该用户密钥获取请求中携带有用户标识;
根据所述用户标识从所述网络侧查询获取利用动态密钥加密后的用户私钥,并将该加密后的用户私钥缓存在移动终端内存中;
根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥解密所述用户私钥,获取解密后的用户私钥,并将该解密后的用户私钥缓存在内存中;
所述根据所述用户标识及初始计数器数值生成动态密钥为根据如下公式计算生成:
HOTP(K,C)=Truncate(HMAC-SHA-1(K,C)),其中:
HOTP(K,C)为生成的动态密钥;
K为种子,K=MD5(IMEI+IMSI);
C为用户身份识别模块的计数器;
Truncate(HMAC-SHA-1(K,C))为动态密钥生成算法。
5.如权利要求4所述的方法,其特征在于,
根据所述用户私钥进行数字签名或解密使用用户公钥加密的数据;
完成所述数字签名或解密使用用户公钥加密的数据后,清除所述用户私钥和所述动态密钥。
6.一种网络设备,其特征在于,包括:
接收模块,用于接收移动终端发送的申请数字证书的请求信息,该请求信息携带有用户标识及初始计数器数值;
用户密钥生成模块,用于登记所述接收模块接收的用户标识,并为该用户生成相应的用户公钥和用户私钥;
用户密钥加密模块,用于根据所述接收模块接收到的用户标识及初始计数器数值生成动态密钥,并利用该动态密钥加密所述用户密钥生成模块生成的用户私钥,生成加密后的用户私钥;
数字证书生成模块,用于根据所述接收模块接收到得用户标识信息与所述用户密钥生成模块生成的用户公钥生成用户公钥数字证书;
所述根据所述接收模块接收到的用户标识及初始计数器数值生成动态密钥为根据如下公式计算生成:
HOTP(K,C)=Truncate(HMAC-SHA-1(K,C)),其中:
HOTP(K,C)为生成的动态密钥;
K为种子,K=MD5(IMEI+IMSI);
C为用户身份识别模块的计数器;
Truncate(HMAC-SHA-1(K,C))为动态密钥生成算法。
7.如权利要求6所述的网络设备,其特征在于,包括:
通知模块,用于在所述数字证书模块生成用户公钥数字证书后,向所述移动终端发送申请数字证书成功的通知信息。
8.一种移动终端,其特征在于,包括:
发送模块,向网络侧发送用户密钥获取请求,该用户密钥获取请求中携带有用户标识;
加密私钥获取模块,用于在所述发送模块发送所述获取请求后,根据所述用户标识从所述网络侧查询获取利用动态密钥加密后的用户私钥,并将该加密后的用户私钥缓存在移动终端内存中;
用户私钥获取模块,用于根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥解密所述加密私钥获取模块获取的所述加密后的用户私钥,获取解密后的用户私钥,并将该解密后的用户私钥缓存在内存中;
所述根据所述用户标识及初始计数器数值生成动态密钥为根据如下公式计算生成:
HOTP(K,C)=Truncate(HMAC-SHA-1(K,C)),其中:
HOTP(K,C)为生成的动态密钥;
K为种子,K=MD5(IMEI+IMSI);
C为用户身份识别模块的计数器;
Truncate(HMAC-SHA-1(K,C))为动态密钥生成算法。
9.如权利要求8的移动终端,其特征在于,包括:
执行模块,用于根据所述用户私钥获取模块获取的用户私钥进行数字签名或解密使用用户公钥加密的数据;
密钥清除模块,用于在所述执行模块完成所述数字签名或解密使用用户公钥加密的数据后,清除所述用户私钥和所述动态密钥。
数字证书生成方法、用户密钥获取方法、移动终端及设备\n技术领域\n[0001] 本发明涉及通信领域,尤其涉及一种数字证书生成方法、用户密钥获取方法、移动终端及网络设备。\n背景技术\n[0002] 移动终端设备在电子商务安全环节需要保障的安全范围包括:身份认证、机密性、完整性、抗抵赖。公钥基础设施(Public Key Infrastructure,PKI)技术通过数字签名和数字信封等,可以实现身份认证、机密性、完整性、抗抵赖的保障。由于移动终端设备分为SIM卡和移动终端,而现阶段的SIM卡或者不具备智能芯片不能实现PKI功能,或者具备智能芯片,可以实现PKI功能,却由于机卡通信协议、手机操作系统的问题不能实现机卡通信,因而移动终端不能实现对SIM卡内PKI功能的调用。目前移动终端一般采用基于文件方式的PKI功能,即通过文件存储方式存储用户密钥,调用PKI功能时从该文件种获取用户密钥,然而通过文件存储方式存储用户密钥存在用户密钥容易丢失或被恶意窃取的风险。\n发明内容\n[0003] 鉴于现有技术存在的问题,本发明实施例提出一种数字证书生成方法、用户密钥获取方法移动终端及网络设备,可以保障用户私钥的安全性,降低用户私钥的丢失或被窃取的安全风险。\n[0004] 鉴于现有技术的缺陷,本发明实施例提出一种数字证书生成方法,包括:\n[0005] 接收移动终端发送的申请数字证书的请求信息,该请求信息携带有用户标识及初始计数器数值;\n[0006] 登记所述用户标识,并为该用户生成相应的用户公钥和用户私钥;\n[0007] 根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥加密所述用户私钥,生成加密后的用户私钥;\n[0008] 根据所述用户标识及所述用户公钥生成用户公钥数字证书;\n[0009] 所述根据所述用户标识及初始计数器数值生成动态密钥为根据如下公式计算生成:\n[0010] HOTP(K,C)=Truncate(HMAC-SHA-1(K,C)),其中:\n[0011] HOTP(K,C)为生成的动态密钥;\n[0012] K为种子,K=MD5(IMEI+IMSI);\n[0013] C为用户身份识别模块的计数器;\n[0014] Truncate(HMAC-SHA-1(K,C))为动态密钥生成算法。\n[0015] 相应地,本发明实施例还提出一种用户密钥获取方法,包括:\n[0016] 向网络侧发送用户密钥获取请求,该用户密钥获取请求中携带有用户标识;\n[0017] 根据所述用户标识从所述网络侧查询获取利用动态密钥加密后的用户私钥,并将该加密后的用户私钥缓存在移动终端内存中;\n[0018] 根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥解密所述用户私钥,获取解密后的用户私钥,并将该解密后的用户私钥缓存在内存中;\n[0019] 所述根据所述用户标识及初始计数器数值生成动态密钥为根据如下公式计算生成:\n[0020] HOTP(K,C)=Truncate(HMAC-SHA-1(K,C)),其中:\n[0021] HOTP(K,C)为生成的动态密钥;\n[0022] K为种子,K=MD5(IMEI+IMSI);\n[0023] C为用户身份识别模块的计数器;\n[0024] Truncate(HMAC-SHA-1(K,C))为动态密钥生成算法。\n[0025] 相应地,本发明实施例还提出一种网络设备,包括:\n[0026] 接收模块,用于接收移动终端发送的申请数字证书的请求信息,该请求信息携带有用户标识及初始计数器数值;\n[0027] 用户密钥生成模块,用于登记所述接收模块接收的用户标识,并为该用户生成相应的用户公钥和用户私钥;\n[0028] 用户密钥加密模块,用于根据所述接收模块接收到的用户标识及初始计数器数值生成动态密钥,并利用该动态密钥加密所述用户密钥生成模块生成的用户私钥,生成加密后的用户私钥;\n[0029] 数字证书生成模块,用于根据所述接收模块接收到得用户标识信息与所述用户密钥生成模块生成的用户公钥生成用户公钥数字证书;\n[0030] 所述根据所述接收模块接收到的用户标识及初始计数器数值生成动态密钥为根据如下公式计算生成:\n[0031] HOTP(K,C)=Truncate(HMAC-SHA-1(K,C)),其中:\n[0032] HOTP(K,C)为生成的动态密钥;\n[0033] K为种子,K=MD5(IMEI+IMSI);\n[0034] C为用户身份识别模块的计数器;\n[0035] Truncate(HMAC-SHA-1(K,C))为动态密钥生成算法。\n[0036] 相应地,本发明实施例还提出一种移动终端,包括:\n[0037] 发送模块,向网络侧发送用户密钥获取请求,该用户密钥获取请求中携带有用户标识;\n[0038] 加密私钥获取模块,用于在所述发送模块发送所述获取请求后,根据所述用户标识从所述网络侧查询获取利用动态密钥加密后的用户私钥,并将该加密后的用户私钥缓存在移动终端内存中;\n[0039] 用户私钥获取模块,用于根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥解密所述加密私钥获取模块获取的所述加密后的用户私钥,获取解密后的用户私钥,并将该解密后的用户私钥缓存在内存中;\n[0040] 所述根据所述用户标识及初始计数器数值生成动态密钥为根据如下公式计算生成:\n[0041] HOTP(K,C)=Truncate(HMAC-SHA-1(K,C)),其中:\n[0042] HOTP(K,C)为生成的动态密钥;\n[0043] K为种子,K=MD5(IMEI+IMSI);\n[0044] C为用户身份识别模块的计数器;\n[0045] Truncate(HMAC-SHA-1(K,C))为动态密钥生成算法。\n[0046] 实施本发明实施例,网络设备接收移动终端发送的申请数字证书的请求信息,为该用户生成相应的用户公钥和用户私钥,根据请求信息中的用户标识及初始计数器数值生成动态密钥,并利用该动态密钥加密所述用户私钥,生成加密后的用户私钥;移动终端需要使用用户密钥时,向网络侧发送用户密钥获取请求,根据所述用户标识从所述网络侧查询获取利用动态密钥加密后的用户私钥,并将该加密后的用户私钥缓存在移动终端内存中,,并利用该生成的动态密钥解密所述用户私钥,获取解密后的用户私钥,并将该解密后的用户私钥缓存在内存中,可是实现移动终端未使用用户私钥时,由网络设备保存用户私钥,在移动终端需要使用用户私钥时,仅在内存中缓存用户私钥,避免用户私钥以文件存储方式存储在移动终端内,从而有效可以保障用户私钥的安全性,降低用户私钥的丢失或被窃取的安全风险。\n附图说明\n[0047] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。\n[0048] 图1是本发明实施例中数字证书生成方法第一实施例流程图;\n[0049] 图2是本发明实施例中数字证书生成方法第而实施例流程图\n[0050] 图3是本发明实施例中用户密钥获取方法流程图;\n[0051] 图4是本发明实施例中网络设备第一实施例结构原理图;\n[0052] 图5是本发明实施例中网络设备第二实施例结构原理图;\n[0053] 图6是本发明实施例中移动终端结构原理图;\n[0054] 图7是本发明实施例中移动终端和CA中心交互过程示意图;\n[0055] 图8是本发明实施例中移动终端和移动通信网络的网络设备交互过程示意图。\n具体实施方式\n[0056] 本发明实施例提出一种数字证书生成方法、用户密钥获取方法移动终端及网络设备,可以保障用户私钥的安全性,降低用户私钥的丢失或被窃取的安全风险。\n[0057] 图1是本发明实施例中数字证书生成方法第一实施例流程图,本实施例中数字证书生成方法在证书授权中心(Certification Authority,CA)中执行,具体包括以下步骤:\n[0058] 步骤101,接收移动终端发送的申请数字证书的请求信息,该请求信息携带有用户标识及初始计数器数值;\n[0059] 此处,具体实施时,该请求信息可以是移动通信网络的网络设备转发的,请求信息中的用户标识可以是移动终端的国际移动装备辨识码(International Mobile Equipment Identity number,IMEI)或国际移动用户识别码(International Mobile Subscriber Identity,IMSI),初始计数器数值可以是用户身份识别模块(Subscriber Identity Module,SIM)卡的保存的4字节计数器的初始值。\n[0060] 步骤102,登记所述用户标识,并为该用户生成相应的用户公钥和用户私钥;\n[0061] 此处,登记移动终端用户标识,并生成记录,并使用RSA、ECC等公钥算法生成密钥对,即用户公钥和用户私钥。\n[0062] 步骤103,根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥加密所述用户私钥,生成加密后的用户私钥;\n[0063] 此处,具体实施时,根据所述用户标识及初始计数器数值生成动态密钥,具体的算法为:\n[0064] HOTP(K,C)=Truncate(HMAC-SHA-1(K,C)),其中:\n[0065] K为种子,K=MD5(IMEI+IMSI);\n[0066] C为用户身份识别模块的计数器的数值,具体为4字节的计数器的计数器数值;\n[0067] Truncate(HMAC-SHA-1(K,C))为动态密钥生成算法,所述动态密钥生成算法具体为:\n[0068] HS=HMAC-SHA-1(K,C);\n[0069] 此处,使用Hash信息验证码(Hash Message Authentication Codes,HMAC)安全散列算法(Secure Hash Algorithm,SHA),即HMAC-SHA,计算得到20字节的摘要数据HS。\n[0070] Offset=Low4Bit(HS[19]);\n[0071] 此处,摘要数据HS由第19位开始的偏移量Offset,对HS数组最后一个字节,取低\n4位,得到一个0x0-0xf的值,这个值作为一个偏移量。Offset是一个0-15之间的数,保证在20字节的数组中根据Offset去定位取四字节时是不会发生越位溢出异常的。\n[0072] HS[Offset]=HS[Offset]&0x8f;\n[0073] 此处,根据Offset定位,在HS数组中取4字节,并且第一个字节去符号位,且第一字节做最高位。\n[0074] Digit=4BytetoInt(HS[Offset]);\n[0075] 此处,把偏移量Offset处的连续4个字节转换成整型。\n[0076] Digit=Digit%1000000。\n[0077] 此处,对上面产生的HS进行截取运算,取一百万模,得到显示的6个数字字符,该\n6个数字字符为动态密钥。此时Digit是一个ulong型的长整型,为了取得6位数字,则要取1000000的模(8个数字就取100000000的模);有的数字取模后,可能真实的数字小于\n6位,如5629009876%1000000=9876,此时需要前端补0,最终显示“009876”。以下是Truncate(HMAC-SHA-1(K,C))的一个实例:\n[0078] HS是“Byte Value”,20个字节;\n[0079] Offset=0x5a & 0x0f=0x0a;\n[0080] HS[10]=HS[10] & 0x7f=0x50;\n[0081] Digit=0xHS[10]HS[11]HS[12]HS[13]=0x50ef7f19=1357872921;\n[0082] Digit=1357872921%1000000=872921。\n[0083] 动态密钥就是872921。\n[0084] 使用该动态密钥与公钥算法加密所述用户私钥,生成加密后的用户私钥。\n[0085] 步骤104,根据所述用户标识及所述用户公钥生成用户公钥数字证书;\n[0086] 此处,用户标识可以是IMSI或IMEI,也可以是IMSI或IMEI唯一对应的伪码,用于证明申请者的身份。CA中心根据用户IMEI、IMSI、或其伪码,以及用户公钥签发用户公钥数字证书。\n[0087] 步骤105,向所述移动终端发送申请数字证书成功的通知信息。\n[0088] 此处,此步骤为可选步骤,CA中心签发用户公钥数字证书后,可以通过网络设备通知移动终端证书申请状态,也可以不通知。\n[0089] 图2是本发明实施例中数字证书生成方法第二实施例流程图,本实施例中数字证书生成方法在移动通信网络的网络设备中执行,具体包括以下步骤:\n[0090] 步骤201,接收移动终端发送的申请数字证书的请求信息,该请求信息携带有用户标识及初始计数器数值;\n[0091] 此处,具体实施时,接收移动终端发送的申请数字证书的请求信息,请求信息中的用户标识可以是移动终端的国际移动装备辨识码(International Mobile Equipment Identity number,IMEI)或国际移动用户识别码(International Mobile Subscriber Identity,IMSI),初始计数器数值可以是用户身份识别模块(Subscriber Identity Module,SIM)卡的保存的4字节计数器的初始值。\n[0092] 步骤202,登记所述用户标识,并为该用户生成相应的用户公钥和用户私钥;\n[0093] 此处,登记移动终端用户标识,并生成记录,并使用RSA、ECC等公钥算法生成密钥对,即用户公钥和用户私钥。\n[0094] 步骤203,根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥加密所述用户私钥,生成加密后的用户私钥;\n[0095] 此处,具体实施时,根据所述用户标识及初始计数器数值生成动态密钥,具体的算法为:\n[0096] HOTP(K,C)=Truncate(HMAC-SHA-1(K,C)),其中:\n[0097] K为种子,K=MD5(IMEI+IMSI);\n[0098] C为用户身份识别模块的计数器的数值,具体为4字节的计数器的计数器数值;\n[0099] Truncate(HMAC-SHA-1(K,C))为动态密钥生成算法,所述动态密钥生成算法具体为:\n[0100] HS=HMAC-SHA-1(K,C);\n[0101] 此处,使用Hash信息验证码(Hash Message Authentication Codes,HMAC)安全散列算法(Secure Hash Algorithm,SHA),即HMAC-SHA,计算得到20字节的摘要数据HS。\n[0102] Offset=Low4Bit(HS[19]);\n[0103] 此处,摘要数据HS由第19位开始的偏移量Offset,对HS数组最后一个字节,取低\n4位,得到一个0x0-0xf的值,这个值作为一个偏移量。Offset是一个0-15之间的数,保证在20字节的数组中根据Offset去定位取四字节时是不会发生越位溢出异常的。\n[0104] HS[Offset]=HS[Offset]&0x8f;\n[0105] 此处,,根据Offset定位,在HS数组中取4字节,并且第一个字节去符号位,且第一字节做最高位。\n[0106] Digit=4BytetoInt(HS[Offset]);\n[0107] 此处,把偏移量Offset处的连续4个字节转换成整型。\n[0108] Digit=Digit%1000000。\n[0109] 此处,对上面产生的HS进行截取运算,取一百万模,得到显示的6个数字字符,该\n6个数字字符为动态密钥。此时Digit是一个ulong型的长整型,为了取得6位数字,则要取1000000的模(8个数字就取100000000的模);有的数字取模后,可能真实的数字小于\n6位,如5629009876%1000000=9876,此时需要前端补0,最终显示“009876”。以下是Truncate(HMAC-SHA-1(K,C))的一个实例:\n[0110] HS是“Byte Value”,20个字节;\n[0111] Offset=0x5a & 0x0f=0x0a;\n[0112] HS[10]=HS[10] & 0x7f=0x50;\n[0113] Digit=0xHS[10]HS[11]HS[12]HS[13]=0x50ef7f19=1357872921;\n[0114] Digit=1357872921%1000000=872921。\n[0115] 动态密钥就是872921。\n[0116] 使用该动态密钥与公钥算法加密所述用户私钥,生成加密后的用户私钥。\n[0117] 步骤204,向证书授权中心发送所述用户标识信息与所述用户公钥;\n[0118] 此处,用户标识可以是IMSI或IMEI,也可以是IMSI或IMEI唯一对应的伪码,用于证明申请者的身份。\n[0119] 步骤205,所述证书授权中心根据所述用户标识信息与所述用户公钥生成用户公钥数字证书,并返回所述用户公钥数字证书;\n[0120] 此处,具体实施时,CA中心根据用户IMEI、IMSI、或其伪码,以及用户公钥签发用户公钥数字证书。\n[0121] 步骤206,接收所述证书授权中心下发的用户公钥数字证书。\n[0122] 步骤207,向所述移动终端发送申请数字证书成功的通知信息。\n[0123] 此处,此步骤为可选步骤,网络设备接收到CA中心签发用户公钥数字证书后,可以通知移动终端证书申请状态,也可以不通知。\n[0124] 图3是本发明实施例中用户密钥获取方法流程图,本实施例中用户密钥获取方法在移动终端内实现,具体包括:\n[0125] 步骤301,向网络侧发送用户密钥获取请求,该用户密钥获取请求中携带有用户标识;\n[0126] 此处,获取请求中的用户标识可以是移动终端的国际移动装备辨识码(International Mobile Equipment Identity number,IMEI)或国际移动用户识别码(International Mobile Subscriber Identity,IMSI)。\n[0127] 步骤302,根据所述用户标识从所述网络侧查询获取利用动态密钥加密后的用户私钥,并将该加密后的用户私钥缓存在移动终端内存中;\n[0128] 此处,CA中心或移动通信网络的网络设备根据登记的所述用户标识,查找匹配的已用动态密钥加密的用户私钥,将该加密的用户私钥下发到移动终端。为了进一步保证用户私钥在传输中的保密性,CA中心或移动通信网络的网络设备下发加密的用户私钥后,可以将本地计数器的数值按照预设的计数规则进行计数,生成新的计数器数值,预设的计数规则可以使本地计数器的数值按照一定的规律改变即可,例如将当前的计数器数值加上一个固定数生成新的计数器数值等等,利用该新的计数器数值重新生成新的动态密钥。使用新的动态密钥该对用户私钥进行重新加密,生成新的加密后的用户私钥,当移动终端再次申请用户私钥时,下发该新的加密后的用户私钥。\n[0129] 步骤303,根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥解密所述用户私钥,获取解密后的用户私钥,并将该解密后的用户私钥缓存在内存中;\n[0130] 此处,移动终端生成动态密钥的方式与CA中心或移动通信网络的网络设备生成动态密钥的方式相同,在此不再详述。移动终端获取解密后的用户私钥后,将本地计数器的数值按照与CA中心或移动通信网络的网络设备中相同的计数规则进行计数,生成新的计数器数值,保持移动终端本地计数器中的计数器数值与CA中心或移动通信网络的网络设备的计数器中的计数器数值相一致,当移动终端再次接收到CA中心或移动通信网络的网络设备下发的加密后的用户私钥时,利用该新的计数器数值重新生成新的动态密钥。使用新的动态密钥该对用户私钥进行重新解密。\n[0131] 步骤304,根据所述用户私钥进行数字签名或解密使用用户公钥加密的数据;\n[0132] 步骤305,完成所述数字签名或解密使用用户公钥加密的数据后,清除所述用户私钥和所述动态密钥。\n[0133] 此处,步骤304和步骤305为可选步骤,当移动终端需要进行数字签名或解密使用用户公钥加密的数据时,可以从内存中调用用户私钥进行操作。当移动终端完成本次业务所需数字签名或解密使用用户公钥加密的数据后,可以清除内存中缓存的用户私钥和所述动态密钥,防止用户私钥和所述动态密钥泄露。\n[0134] 图4是本发明实施例中网络设备第一实施例结构原理图,本实施例中网络设备设置于CA中心,具体包括:\n[0135] 接收模块41,用于接收移动终端发送的申请数字证书的请求信息,该请求信息携带有用户标识及初始计数器数值;\n[0136] 此处,具体实施时,该请求信息可以是移动通信网络的网络设备转发的,请求信息中的用户标识可以是移动终端的国际移动装备辨识码(International Mobile Equipment Identity number,IMEI)或国际移动用户识别码(International Mobile Subscriber Identity,IMSI),初始计数器数值可以是用户身份识别模块(Subscriber Identity Module,SIM)卡的保存的4字节计数器的初始值。\n[0137] 用户密钥生成模块42,用于登记所述接收模块41接收的用户标识,并为该用户生成相应的用户公钥和用户私钥;\n[0138] 此处,登记移动终端用户标识,并生成记录,并使用RSA、ECC等公钥算法生成密钥对,即用户公钥和用户私钥。\n[0139] 用户密钥加密模块43,用于根据所述接收模块41接收到的用户标识及初始计数器数值生成动态密钥,并利用该动态密钥加密所述用户密钥生成模块42生成的用户私钥,生成加密后的用户私钥;\n[0140] 此处,具体实施时,根据所述用户标识及初始计数器数值生成动态密钥,具体的算法为:\n[0141] HOTP(K,C)=Truncate(HMAC-SHA-1(K,C)),其中:\n[0142] K为种子,K=MD5(IMEI+IMSI);\n[0143] C为用户身份识别模块的计数器的数值,具体为4字节的计数器的计数器数值;\n[0144] Truncate(HMAC-SHA-1(K,C))为动态密钥生成算法,所述动态密钥生成算法具体为:\n[0145] HS=HMAC-SHA-1(K,C);\n[0146] 此处,使用Hash信息验证码(Hash Message Authentication Codes,HMAC)安全散列算法(Secure Hash Algorithm,SHA),即HMAC-SHA,计算得到20字节的摘要数据HS。\n[0147] Offset=Low4Bit(HS[19]);\n[0148] 此处,摘要数据HS由第19位开始的偏移量Offset,对HS数组最后一个字节,取低\n4位,得到一个0x0-0xf的值,这个值作为一个偏移量。Offset是一个0-15之间的数,保证在20字节的数组中根据Offset去定位取四字节时是不会发生越位溢出异常的。\n[0149] HS[Offset]=HS[Offset]&0x8f;\n[0150] 此处,,根据Offset定位,在HS数组中取4字节,并且第一个字节去符号位,且第一字节做最高位。\n[0151] Digit=4BytetoInt(HS[Offset]);\n[0152] 此处,把偏移量Offset处的连续4个字节转换成整型。\n[0153] Digit=Digit%1000000。\n[0154] 此处,对上面产生的HS进行截取运算,取一百万模,得到显示的6个数字字符,该\n6个数字字符为动态密钥。此时Digit是一个ulong型的长整型,为了取得6位数字,则要取1000000的模(8个数字就取100000000的模);有的数字取模后,可能真实的数字小于\n6位,如5629009876%1000000=9876,此时需要前端补0,最终显示“009876”。以下是Truncate(HMAC-SHA-1(K,C))的一个实例:\n[0155] HS是“Byte Value”,20个字节;\n[0156] Offset=0x5a & 0x0f=0x0a;\n[0157] HS[10]=HS[10] & 0x7f=0x50;\n[0158] Digit=0xHS[10]HS[11]HS[12]HS[13]=0x50ef7f19=1357872921;\n[0159] Digit=1357872921%1000000=872921。\n[0160] 动态密钥就是872921。\n[0161] 使用该动态密钥与公钥算法加密所述用户私钥,生成加密后的用户私钥。\n[0162] 数字证书生成模块44,用于根据所述接收模块41接收到得用户标识信息与所述用户密钥生成42生成的用户公钥生成用户公钥数字证书。\n[0163] 此处,用户标识可以是IMSI或IMEI,也可以是IMSI或IMEI唯一对应的伪码,用于证明申请者的身份。CA中心根据用户IMEI、IMSI、或其伪码,以及用户公钥签发用户公钥数字证书。\n[0164] 通知模块45,用于在所述数字证书模块44生成用户公钥数字证书后,向所述移动终端发送申请数字证书成功的通知信息。\n[0165] 此处,此步骤为可选步骤,CA中心签发用户公钥数字证书后,可以通过网络设备通知移动终端证书申请状态,也可以不通知。\n[0166] 图5是本发明实施例中网络设备第二实施例结构原理图,本实施例中网络设备为移动通信网络的网络设备,具体包括:\n[0167] 接收模块51,用于接收移动终端发送的申请数字证书的请求信息,该请求信息携带有用户标识及初始计数器数值;\n[0168] 此处,具体实施时,该请求信息可以是移动通信网络的网络设备转发的,请求信息中的用户标识可以是移动终端的国际移动装备辨识码(International Mobile Equipment Identity number,IMEI)或国际移动用户识别码(International Mobile Subscriber Identity,IMSI),初始计数器数值可以是用户身份识别模块(Subscriber Identity Module,SIM)卡的保存的4字节计数器的初始值。\n[0169] 用户密钥生成模块52,用于登记所述接收模块51接收的用户标识,并为该用户生成相应的用户公钥和用户私钥;\n[0170] 此处,登记移动终端用户标识,并生成记录,并使用RSA、ECC等公钥算法生成密钥对,即用户公钥和用户私钥。\n[0171] 用户密钥加密模块53,用于根据所述接收模块51接收到的用户标识及初始计数器数值生成动态密钥,并利用该动态密钥加密所述用户密钥生成模块52生成的用户私钥,生成加密后的用户私钥;\n[0172] 此处,具体实施时,根据所述用户标识及初始计数器数值生成动态密钥,具体的算法为:\n[0173] HOTP(K,C)=Truncate(HMAC-SHA-1(K,C)),其中:\n[0174] K为种子,K=MD5(IMEI+IMSI);\n[0175] C为用户身份识别模块的计数器的数值,具体为4字节的计数器的计数器数值;\n[0176] Truncate(HMAC-SHA-1(K,C))为动态密钥生成算法,所述动态密钥生成算法具体为:\n[0177] HS=HMAC-SHA-1(K,C);\n[0178] 此处,使用Hash信息验证码(Hash Message Authentication Codes,HMAC)安全散列算法(Secure Hash Algorithm,SHA),即HMAC-SHA,计算得到20字节的摘要数据HS。\n[0179] Offset=Low4Bit(HS[19]);\n[0180] 此处,摘要数据HS由第19位开始的偏移量Offset,对HS数组最后一个字节,取低\n4位,得到一个0x0-0xf的值,这个值作为一个偏移量。Offset是一个0-15之间的数,保证在20字节的数组中根据Offset去定位取四字节时是不会发生越位溢出异常的。\n[0181] HS[Offset]=HS[Offset]&0x8f;\n[0182] 此处,,根据Offset定位,在HS数组中取4字节,并且第一个字节去符号位,且第一字节做最高位。\n[0183] Digit=4BytetoInt(HS[Offset]);\n[0184] 此处,把偏移量Offset处的连续4个字节转换成整型。\n[0185] Digit=Digit%1000000。\n[0186] 此处,对上面产生的HS进行截取运算,取一百万模,得到显示的6个数字字符,该\n6个数字字符为动态密钥。此时Digit是一个ulong型的长整型,为了取得6位数字,则要取1000000的模(8个数字就取100000000的模);有的数字取模后,可能真实的数字小于\n6位,如5629009876%1000000=9876,此时需要前端补0,最终显示“009876”。以下是Truncate(HMAC-SHA-1(K,C))的一个实例:\n[0187] HS是“Byte Value”,20个字节;\n[0188] Offset=0x5a & 0x0f=0x0a;\n[0189] HS[10]=HS[10] & 0x7f=0x50;\n[0190] Digit=0xHS[10]HS[11]HS[12]HS[13]=0x50ef7f19=1357872921;\n[0191] Digit=1357872921%1000000=872921。\n[0192] 动态密钥就是872921。\n[0193] 使用该动态密钥与公钥算法加密所述用户私钥,生成加密后的用户私钥。\n[0194] 数字证书申请模块54,用于向证书授权中心发送所述接收模块51接收到的用户标识信息与所述用户密钥生成模块52生成的用户公钥;\n[0195] 数字证书接收模块55,用于证书授权中心根据所述用户标识信息与所述用户公钥生成用户公钥数字证书,并返回所述用户公钥数字证书时,接收所述证书授权中心下发的用户公钥数字证书。\n[0196] 通知模块56,用于在所述数字证书模块54接收到用户公钥数字证书后,向所述移动终端发送申请数字证书成功的通知信息。\n[0197] 此处,此步骤为可选步骤,通知模块54在接收到CA中心签发用户公钥数字证书后,可以通知移动终端证书申请状态,也可以不通知。\n[0198] 图6是本发明实施例中移动终端结构原理图,包括:\n[0199] 发送模块61,向网络侧发送用户密钥获取请求,该用户密钥获取请求中携带有用户标识;\n[0200] 此处,当第三方应用调用PKI功能时,移动终端向网络侧发送用户密钥获取请求,获取请求中的用户标识可以是移动终端的国际移动装备辨识码(International Mobile Equipment Identity number,IMEI)或国际移动用户识别码(International Mobile Subscriber Identity,IMSI)。\n[0201] 加密私钥获取模块62,用于在所述发送模块61发送所述获取请求后,根据所述用户标识从所述网络侧查询获取利用动态密钥加密后的用户私钥,并将该加密后的用户私钥缓存在移动终端内存中;\n[0202] 此处,CA中心或移动通信网络的网络设备根据登记的所述用户标识,查找匹配的已用动态密钥加密的用户私钥,将该加密的用户私钥下发到移动终端。\n[0203] 用户私钥获取模块63,用于根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥解密所述加密私钥获取模块62获取的所述加密后的用户私钥,获取解密后的用户私钥,并将该解密后的用户私钥缓存在内存中;\n[0204] 执行模块64,用于根据所述用户私钥获取模块63的用户私钥进行数字签名或解密使用用户公钥加密的数据;\n[0205] 密钥清除模块65,用于在所述执行模块64完成所述数字签名或解密使用用户公钥加密的数据后,清除所述用户私钥和所述动态密钥。\n[0206] 此处,对于执行模块64,当移动终端需要进行数字签名或解密使用用户公钥加密的数据时,可以从内存中调用用户私钥进行操作。当移动终端完成本次业务所需数字签名或解密使用用户公钥加密的数据后,密钥清除模块65可以清除内存中缓存的用户私钥和所述动态密钥,防止用户私钥和所述动态密钥泄露。\n[0207] 结合图4、图5、图6,需要说明的是,为了进一步保证用户私钥在传输中的保密性,CA中心或移动通信网络的网络设备中的用户密钥加密模块(43或53)下发加密的用户私钥后,可以将本地计数器的数值按照预设的计数规则进行计数,生成新的计数器数值,预设的计数规则可以使本地计数器的数值按照一定的规律改变即可,例如将当前的计数器数值加上一个固定数生成新的计数器数值等等,利用该新的计数器数值重新生成新的动态密钥。\n使用新的动态密钥该对用户私钥进行重新加密,生成新的加密后的用户私钥,当移动终端再次申请用户私钥时,下发该新的加密后的用户私钥。移动终端生成动态密钥的方式与CA中心或移动通信网络的网络设备生成动态密钥的方式相同,在此不再详述。移动终端获取解密后的用户私钥后,将本地计数器的数值按照与CA中心或移动通信网络的网络设备中相同的计数规则进行计数,生成新的计数器数值,保持移动终端本地计数器中的计数器数值与CA中心或移动通信网络的网络设备的计数器中的计数器数值相一致,当移动终端再次接收到CA中心或移动通信网络的网络设备下发的加密后的用户私钥时,利用该新的计数器数值重新生成新的动态密钥。使用新的动态密钥该对用户私钥进行重新解密。\n[0208] 图7是本发明实施例中移动终端和CA中心交互过程示意图,具体包括以下步骤:\n[0209] 步骤701,移动终端向移动通信网络的网络设备发送申请数字证书的请求信息,该请求信息携带有用户标识及初始计数器数值,该网络设备将请求信息转发到CA中心;\n[0210] 步骤702,CA中心接收移动终端发送的申请数字证书的请求信息;\n[0211] 步骤703,CA中心登记所述用户标识,并为该用户生成相应的用户公钥和用户私钥;\n[0212] 步骤704,CA中心根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥加密所述用户私钥,生成加密后的用户私钥;\n[0213] 步骤705,CA中心根据所述用户标识及所述用户公钥生成用户公钥数字证书;\n[0214] 步骤706,CA中心通过移动通信网络的网络设备向所述移动终端发送申请数字证书成功的通知信息;\n[0215] 步骤707,移动终端向网络侧发送用户密钥获取请求,该用户密钥获取请求中携带有用户标识,该网络设备将用户密钥获取请求转发到CA中心;\n[0216] 步骤708,移动终端根据所述用户标识从所述网络侧查询获取利用动态密钥加密后的用户私钥,并将该加密后的用户私钥缓存在移动终端内存中;\n[0217] 步骤709,移动终端根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥解密所述用户私钥,获取解密后的用户私钥,并将该解密后的用户私钥缓存在内存中\n[0218] 步骤710,移动终端根据所述用户私钥进行数字签名或解密使用用户公钥加密的数据;\n[0219] 步骤711,移动终端完成所述数字签名或解密使用用户公钥加密的数据后,清除所述用户私钥和所述动态密钥。\n[0220] 图8是本发明实施例中移动终端和移动通信网络的网络设备交互过程示意图,具体包括以下步骤:\n[0221] 步骤801,移动终端向移动通信网络的网络设备发送申请数字证书的请求信息,该请求信息携带有用户标识及初始计数器数值;\n[0222] 步骤802,网络设备接收移动终端发送的申请数字证书的请求信息;\n[0223] 步骤803,网络设备登记所述用户标识,并为该用户生成相应的用户公钥和用户私钥;\n[0224] 步骤804,网络设备根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥加密所述用户私钥,生成加密后的用户私钥;\n[0225] 步骤805,网络设备向证书授权中心发送所述用户标识信息与所述用户公钥;\n[0226] 步骤806,CA中心根据所述用户标识信息与所述用户公钥生成用户公钥数字证书,并返回所述用户公钥数字证书;\n[0227] 步骤807,网络设备接收所述证书授权中心下发的用户公钥数字证书;\n[0228] 步骤808,网络设备向所述移动终端发送申请数字证书成功的通知信息;\n[0229] 步骤809,移动终端向网络侧发送用户密钥获取请求,该用户密钥获取请求中携带有用户标识;\n[0230] 步骤810,移动终端根据所述用户标识从所述网络侧查询获取利用动态密钥加密后的用户私钥,并将该加密后的用户私钥缓存在移动终端内存中;\n[0231] 步骤811,移动终端根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥解密所述用户私钥,获取解密后的用户私钥,并将该解密后的用户私钥缓存在内存中\n[0232] 步骤812,移动终端根据所述用户私钥进行数字签名或解密使用用户公钥加密的数据;\n[0233] 步骤813,移动终端完成所述数字签名或解密使用用户公钥加密的数据后,清除所述用户私钥和所述动态密钥。\n[0234] 综上所述,网络设备接收移动终端发送的申请数字证书的请求信息,为该用户生成相应的用户公钥和用户私钥,根据请求信息中的用户标识及初始计数器数值生成动态密钥,并利用该动态密钥加密所述用户私钥,生成加密后的用户私钥;移动终端需要使用用户密钥时,向网络侧发送用户密钥获取请求,根据所述用户标识从所述网络侧查询获取利用动态密钥加密后的用户私钥,并将该加密后的用户私钥缓存在移动终端内存中,,并利用该生成的动态密钥解密所述用户私钥,获取解密后的用户私钥,并将该解密后的用户私钥缓存在内存中,可是实现移动终端未使用用户私钥时,由网络设备保存用户私钥,在移动终端需要使用用户私钥时,仅在内存中缓存用户私钥,避免用户私钥以文件存储方式存储在移动终端内,从而有效可以保障用户私钥的安全性,降低用户私钥的丢失或被窃取的安全风险。\n[0235] 以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
法律信息
- 2014-02-26
未缴年费专利权终止
IPC(主分类): H04W 12/04
专利号: ZL 200910239614.4
申请日: 2009.12.31
授权公告日: 2012.07.04
- 2012-07-04
- 2010-09-15
实质审查的生效
IPC(主分类): H04W 12/04
专利申请号: 200910239614.4
申请日: 2009.12.31
- 2010-07-14
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2006-07-12
|
2004-12-31
| | |
2
| |
2008-05-21
|
2007-12-03
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |