CN101778381B - 数字证书生成方法、用户密钥获取方法、移动终端及设备 - Google Patents
数字证书生成方法、用户密钥获取方法、移动终端及设备 Download PDFInfo
- Publication number
- CN101778381B CN101778381B CN2009102396144A CN200910239614A CN101778381B CN 101778381 B CN101778381 B CN 101778381B CN 2009102396144 A CN2009102396144 A CN 2009102396144A CN 200910239614 A CN200910239614 A CN 200910239614A CN 101778381 B CN101778381 B CN 101778381B
- Authority
- CN
- China
- Prior art keywords
- key
- user
- private key
- dynamic
- client public
- 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.)
- Expired - Fee Related
Links
Images
Abstract
本发明实施例提出一种用户密钥获取方法,包括:向网络侧发送用户密钥获取请求,该用户密钥获取请求中携带有用户标识,根据所述用户标识从所述网络侧查询获取利用动态密钥加密后的用户私钥,并将该加密后的用户私钥缓存在移动终端内存中,根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥解密所述用户私钥,获取解密后的用户私钥,并将该解密后的用户私钥缓存在内存中。相应地,本发明实施例还提出一种数字证书生成方法、移动终端及网络设备。实施本发明实施例,可以保障用户私钥的安全性,降低用户私钥的丢失或被窃取的安全风险。
Description
技术领域
本发明涉及通信领域,尤其涉及一种数字证书生成方法、用户密钥获取方法、移动终端及网络设备。
背景技术
移动终端设备在电子商务安全环节需要保障的安全范围包括:身份认证、机密性、完整性、抗抵赖。公钥基础设施(Public Key Infrastructure,PKI)技术通过数字签名和数字信封等,可以实现身份认证、机密性、完整性、抗抵赖的保障。由于移动终端设备分为SIM卡和移动终端,而现阶段的SIM卡或者不具备智能芯片不能实现PKI功能,或者具备智能芯片,可以实现PKI功能,却由于机卡通信协议、手机操作系统的问题不能实现机卡通信,因而移动终端不能实现对SIM卡内PKI功能的调用。目前移动终端一般采用基于文件方式的PKI功能,即通过文件存储方式存储用户密钥,调用PKI功能时从该文件种获取用户密钥,然而通过文件存储方式存储用户密钥存在用户密钥容易丢失或被恶意窃取的风险。
发明内容
鉴于现有技术存在的问题,本发明实施例提出一种数字证书生成方法、用户密钥获取方法移动终端及网络设备,可以保障用户私钥的安全性,降低用户私钥的丢失或被窃取的安全风险。
鉴于现有技术的缺陷,本发明实施例提出一种数字证书生成方法,包括:
接收移动终端发送的申请数字证书的请求信息,该请求信息携带有用户标识及初始计数器数值;
登记所述用户标识,并为该用户生成相应的用户公钥和用户私钥;
根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥加密所述用户私钥,生成加密后的用户私钥;
根据所述用户标识及所述用户公钥生成用户公钥数字证书;
所述根据所述用户标识及初始计数器数值生成动态密钥为根据如下公式计算生成:
HOTP(K,C)=Truncate(HMAC-SHA-1(K,C)),其中:
HOTP(K,C)为生成的动态密钥;
K为种子,K=MD5(IMEI+IMSI);
C为用户身份识别模块的计数器;
Truncate(HMAC-SHA-1(K,C))为动态密钥生成算法。
相应地,本发明实施例还提出一种用户密钥获取方法,包括:
向网络侧发送用户密钥获取请求,该用户密钥获取请求中携带有用户标识;
根据所述用户标识从所述网络侧查询获取利用动态密钥加密后的用户私钥,并将该加密后的用户私钥缓存在移动终端内存中;
根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥解密所述用户私钥,获取解密后的用户私钥,并将该解密后的用户私钥缓存在内存中;
所述根据所述用户标识及初始计数器数值生成动态密钥为根据如下公式计算生成:
HOTP(K,C)=Truncate(HMAC-SHA-1(K,C)),其中:
HOTP(K,C)为生成的动态密钥;
K为种子,K=MD5(IMEI+IMSI);
C为用户身份识别模块的计数器;
Truncate(HMAC-SHA-1(K,C))为动态密钥生成算法。
相应地,本发明实施例还提出一种网络设备,包括:
接收模块,用于接收移动终端发送的申请数字证书的请求信息,该请求信息携带有用户标识及初始计数器数值;
用户密钥生成模块,用于登记所述接收模块接收的用户标识,并为该用户生成相应的用户公钥和用户私钥;
用户密钥加密模块,用于根据所述接收模块接收到的用户标识及初始计数器数值生成动态密钥,并利用该动态密钥加密所述用户密钥生成模块生成的用户私钥,生成加密后的用户私钥;
数字证书生成模块,用于根据所述接收模块接收到得用户标识信息与所述用户密钥生成模块生成的用户公钥生成用户公钥数字证书;
所述根据所述接收模块接收到的用户标识及初始计数器数值生成动态密钥为根据如下公式计算生成:
HOTP(K,C)=Truncate(HMAC-SHA-1(K,C)),其中:
HOTP(K,C)为生成的动态密钥;
K为种子,K=MD5(IMEI+IMSI);
C为用户身份识别模块的计数器;
Truncate(HMAC-SHA-1(K,C))为动态密钥生成算法。
相应地,本发明实施例还提出一种移动终端,包括:
发送模块,向网络侧发送用户密钥获取请求,该用户密钥获取请求中携带有用户标识;
加密私钥获取模块,用于在所述发送模块发送所述获取请求后,根据所述用户标识从所述网络侧查询获取利用动态密钥加密后的用户私钥,并将该加密后的用户私钥缓存在移动终端内存中;
用户私钥获取模块,用于根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥解密所述加密私钥获取模块获取的所述加密后的用户私钥,获取解密后的用户私钥,并将该解密后的用户私钥缓存在内存中;
所述根据所述用户标识及初始计数器数值生成动态密钥为根据如下公式计算生成:
HOTP(K,C)=Truncate(HMAC-SHA-1(K,C)),其中:
HOTP(K,C)为生成的动态密钥;
K为种子,K=MD5(IMEI+IMSI);
C为用户身份识别模块的计数器;
Truncate(HMAC-SHA-1(K,C))为动态密钥生成算法。
实施本发明实施例,网络设备接收移动终端发送的申请数字证书的请求信息,为该用户生成相应的用户公钥和用户私钥,根据请求信息中的用户标识及初始计数器数值生成动态密钥,并利用该动态密钥加密所述用户私钥,生成加密后的用户私钥;移动终端需要使用用户密钥时,向网络侧发送用户密钥获取请求,根据所述用户标识从所述网络侧查询获取利用动态密钥加密后的用户私钥,并将该加密后的用户私钥缓存在移动终端内存中,,并利用该生成的动态密钥解密所述用户私钥,获取解密后的用户私钥,并将该解密后的用户私钥缓存在内存中,可是实现移动终端未使用用户私钥时,由网络设备保存用户私钥,在移动终端需要使用用户私钥时,仅在内存中缓存用户私钥,避免用户私钥以文件存储方式存储在移动终端内,从而有效可以保障用户私钥的安全性,降低用户私钥的丢失或被窃取的安全风险。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中数字证书生成方法第一实施例流程图;
图2是本发明实施例中数字证书生成方法第而实施例流程图
图3是本发明实施例中用户密钥获取方法流程图;
图4是本发明实施例中网络设备第一实施例结构原理图;
图5是本发明实施例中网络设备第二实施例结构原理图;
图6是本发明实施例中移动终端结构原理图;
图7是本发明实施例中移动终端和CA中心交互过程示意图;
图8是本发明实施例中移动终端和移动通信网络的网络设备交互过程示意图。
具体实施方式
本发明实施例提出一种数字证书生成方法、用户密钥获取方法移动终端及网络设备,可以保障用户私钥的安全性,降低用户私钥的丢失或被窃取的安全风险。
图1是本发明实施例中数字证书生成方法第一实施例流程图,本实施例中数字证书生成方法在证书授权中心(Certification Authority,CA)中执行,具体包括以下步骤:
步骤101,接收移动终端发送的申请数字证书的请求信息,该请求信息携带有用户标识及初始计数器数值;
此处,具体实施时,该请求信息可以是移动通信网络的网络设备转发的,请求信息中的用户标识可以是移动终端的国际移动装备辨识码(InternationalMobile Equipment Identity number,IMEI)或国际移动用户识别码(InternationalMobile Subscriber Identity,IMSI),初始计数器数值可以是用户身份识别模块(Subscriber Identity Module,SIM)卡的保存的4字节计数器的初始值。
步骤102,登记所述用户标识,并为该用户生成相应的用户公钥和用户私钥;
此处,登记移动终端用户标识,并生成记录,并使用RSA、ECC等公钥算法生成密钥对,即用户公钥和用户私钥。
步骤103,根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥加密所述用户私钥,生成加密后的用户私钥;
此处,具体实施时,根据所述用户标识及初始计数器数值生成动态密钥,具体的算法为:
HOTP(K,C)=Truncate(HMAC-SHA-1(K,C)),其中:
K为种子,K=MD5(IMEI+IMSI);
C为用户身份识别模块的计数器的数值,具体为4字节的计数器的计数器数值;
Truncate(HMAC-SHA-1(K,C))为动态密钥生成算法,所述动态密钥生成算法具体为:
HS=HMAC-SHA-1(K,C);
此处,使用Hash信息验证码(Hash Message Authentication Codes,HMAC)安全散列算法(Secure Hash Algorithm,SHA),即HMAC-SHA,计算得到20字节的摘要数据HS。
Offset=Low4Bit(HS[19]);
此处,摘要数据HS由第19位开始的偏移量Offset,对HS数组最后一个字节,取低4位,得到一个0x0-0xf的值,这个值作为一个偏移量。Offset是一个0-15之间的数,保证在20字节的数组中根据Offset去定位取四字节时是不会发生越位溢出异常的。
HS[Offset]=HS[Offset]&0x8f;
此处,根据Offset定位,在HS数组中取4字节,并且第一个字节去符号位,且第一字节做最高位。
Digit=4BytetoInt(HS[Offset]);
此处,把偏移量Offset处的连续4个字节转换成整型。
Digit=Digit%1000000。
此处,对上面产生的HS进行截取运算,取一百万模,得到显示的6个数字字符,该6个数字字符为动态密钥。此时Digit是一个ulong型的长整型,为了取得6位数字,则要取1000000的模(8个数字就取100000000的模);有的数字取模后,可能真实的数字小于6位,如5629009876%1000000=9876,此时需要前端补0,最终显示“009876”。以下是Truncate(HMAC-SHA-1(K,C))的一个实例:
HS是“Byte Value”,20个字节;
Offset=0x5a & 0x0f=0x0a;
HS[10]=HS[10] & 0x7f=0x50;
Digit=0xHS[10]HS[11]HS[12]HS[13]=0x50ef7f19=1357872921;
Digit=1357872921%1000000=872921。
动态密钥就是872921。
使用该动态密钥与公钥算法加密所述用户私钥,生成加密后的用户私钥。
步骤104,根据所述用户标识及所述用户公钥生成用户公钥数字证书;
此处,用户标识可以是IMSI或IMEI,也可以是IMSI或IMEI唯一对应的伪码,用于证明申请者的身份。CA中心根据用户IMEI、IMSI、或其伪码,以及用户公钥签发用户公钥数字证书。
步骤105,向所述移动终端发送申请数字证书成功的通知信息。
此处,此步骤为可选步骤,CA中心签发用户公钥数字证书后,可以通过网络设备通知移动终端证书申请状态,也可以不通知。
图2是本发明实施例中数字证书生成方法第二实施例流程图,本实施例中数字证书生成方法在移动通信网络的网络设备中执行,具体包括以下步骤:
步骤201,接收移动终端发送的申请数字证书的请求信息,该请求信息携带有用户标识及初始计数器数值;
此处,具体实施时,接收移动终端发送的申请数字证书的请求信息,请求信息中的用户标识可以是移动终端的国际移动装备辨识码(International MobileEquipment Identity number,IMEI)或国际移动用户识别码(International MobileSubscriber Identity,IMSI),初始计数器数值可以是用户身份识别模块(SubscriberIdentity Module,SIM)卡的保存的4字节计数器的初始值。
步骤202,登记所述用户标识,并为该用户生成相应的用户公钥和用户私钥;
此处,登记移动终端用户标识,并生成记录,并使用RSA、ECC等公钥算法生成密钥对,即用户公钥和用户私钥。
步骤203,根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥加密所述用户私钥,生成加密后的用户私钥;
此处,具体实施时,根据所述用户标识及初始计数器数值生成动态密钥,具体的算法为:
HOTP(K,C)=Truncate(HMAC-SHA-1(K,C)),其中:
K为种子,K=MD5(IMEI+IMSI);
C为用户身份识别模块的计数器的数值,具体为4字节的计数器的计数器数值;
Truncate(HMAC-SHA-1(K,C))为动态密钥生成算法,所述动态密钥生成算法具体为:
HS=HMAC-SHA-1(K,C);
此处,使用Hash信息验证码(Hash Message Authentication Codes,HMAC)安全散列算法(Secure Hash Algorithm,SHA),即HMAC-SHA,计算得到20字节的摘要数据HS。
Offset=Low4Bit(HS[19]);
此处,摘要数据HS由第19位开始的偏移量Offset,对HS数组最后一个字节,取低4位,得到一个0x0-0xf的值,这个值作为一个偏移量。Offset是一个0-15之间的数,保证在20字节的数组中根据Offset去定位取四字节时是不会发生越位溢出异常的。
HS[Offset]=HS[Offset]&0x8f;
此处,,根据Offset定位,在HS数组中取4字节,并且第一个字节去符号位,且第一字节做最高位。
Digit=4BytetoInt(HS[Offset]);
此处,把偏移量Offset处的连续4个字节转换成整型。
Digit=Digit%1000000。
此处,对上面产生的HS进行截取运算,取一百万模,得到显示的6个数字字符,该6个数字字符为动态密钥。此时Digit是一个ulong型的长整型,为了取得6位数字,则要取1000000的模(8个数字就取100000000的模);有的数字取模后,可能真实的数字小于6位,如5629009876%1000000=9876,此时需要前端补0,最终显示“009876”。以下是Truncate(HMAC-SHA-1(K,C))的一个实例:
HS是“Byte Value”,20个字节;
Offset=0x5a & 0x0f=0x0a;
HS[10]=HS[10] & 0x7f=0x50;
Digit=0xHS[10]HS[11]HS[12]HS[13]=0x50ef7f19=1357872921;
Digit=1357872921%1000000=872921。
动态密钥就是872921。
使用该动态密钥与公钥算法加密所述用户私钥,生成加密后的用户私钥。
步骤204,向证书授权中心发送所述用户标识信息与所述用户公钥;
此处,用户标识可以是IMSI或IMEI,也可以是IMSI或IMEI唯一对应的伪码,用于证明申请者的身份。
步骤205,所述证书授权中心根据所述用户标识信息与所述用户公钥生成用户公钥数字证书,并返回所述用户公钥数字证书;
此处,具体实施时,CA中心根据用户IMEI、IMSI、或其伪码,以及用户公钥签发用户公钥数字证书。
步骤206,接收所述证书授权中心下发的用户公钥数字证书。
步骤207,向所述移动终端发送申请数字证书成功的通知信息。
此处,此步骤为可选步骤,网络设备接收到CA中心签发用户公钥数字证书后,可以通知移动终端证书申请状态,也可以不通知。
图3是本发明实施例中用户密钥获取方法流程图,本实施例中用户密钥获取方法在移动终端内实现,具体包括:
步骤301,向网络侧发送用户密钥获取请求,该用户密钥获取请求中携带有用户标识;
此处,获取请求中的用户标识可以是移动终端的国际移动装备辨识码(International Mobile Equipment Identity number,IMEI)或国际移动用户识别码(International Mobile Subscriber Identity,IMSI)。
步骤302,根据所述用户标识从所述网络侧查询获取利用动态密钥加密后的用户私钥,并将该加密后的用户私钥缓存在移动终端内存中;
此处,CA中心或移动通信网络的网络设备根据登记的所述用户标识,查找匹配的已用动态密钥加密的用户私钥,将该加密的用户私钥下发到移动终端。为了进一步保证用户私钥在传输中的保密性,CA中心或移动通信网络的网络设备下发加密的用户私钥后,可以将本地计数器的数值按照预设的计数规则进行计数,生成新的计数器数值,预设的计数规则可以使本地计数器的数值按照一定的规律改变即可,例如将当前的计数器数值加上一个固定数生成新的计数器数值等等,利用该新的计数器数值重新生成新的动态密钥。使用新的动态密钥该对用户私钥进行重新加密,生成新的加密后的用户私钥,当移动终端再次申请用户私钥时,下发该新的加密后的用户私钥。
步骤303,根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥解密所述用户私钥,获取解密后的用户私钥,并将该解密后的用户私钥缓存在内存中;
此处,移动终端生成动态密钥的方式与CA中心或移动通信网络的网络设备生成动态密钥的方式相同,在此不再详述。移动终端获取解密后的用户私钥后,将本地计数器的数值按照与CA中心或移动通信网络的网络设备中相同的计数规则进行计数,生成新的计数器数值,保持移动终端本地计数器中的计数器数值与CA中心或移动通信网络的网络设备的计数器中的计数器数值相一致,当移动终端再次接收到CA中心或移动通信网络的网络设备下发的加密后的用户私钥时,利用该新的计数器数值重新生成新的动态密钥。使用新的动态密钥该对用户私钥进行重新解密。
步骤304,根据所述用户私钥进行数字签名或解密使用用户公钥加密的数据;
步骤305,完成所述数字签名或解密使用用户公钥加密的数据后,清除所述用户私钥和所述动态密钥。
此处,步骤304和步骤305为可选步骤,当移动终端需要进行数字签名或解密使用用户公钥加密的数据时,可以从内存中调用用户私钥进行操作。当移动终端完成本次业务所需数字签名或解密使用用户公钥加密的数据后,可以清除内存中缓存的用户私钥和所述动态密钥,防止用户私钥和所述动态密钥泄露。
图4是本发明实施例中网络设备第一实施例结构原理图,本实施例中网络设备设置于CA中心,具体包括:
接收模块41,用于接收移动终端发送的申请数字证书的请求信息,该请求信息携带有用户标识及初始计数器数值;
此处,具体实施时,该请求信息可以是移动通信网络的网络设备转发的,请求信息中的用户标识可以是移动终端的国际移动装备辨识码(InternationalMobile Equipment Identity number,IMEI)或国际移动用户识别码(InternationalMobile Subscriber Identity,IMSI),初始计数器数值可以是用户身份识别模块(Subscriber Identity Module,SIM)卡的保存的4字节计数器的初始值。
用户密钥生成模块42,用于登记所述接收模块41接收的用户标识,并为该用户生成相应的用户公钥和用户私钥;
此处,登记移动终端用户标识,并生成记录,并使用RSA、ECC等公钥算法生成密钥对,即用户公钥和用户私钥。
用户密钥加密模块43,用于根据所述接收模块41接收到的用户标识及初始计数器数值生成动态密钥,并利用该动态密钥加密所述用户密钥生成模块42生成的用户私钥,生成加密后的用户私钥;
此处,具体实施时,根据所述用户标识及初始计数器数值生成动态密钥,具体的算法为:
HOTP(K,C)=Truncate(HMAC-SHA-1(K,C)),其中:
K为种子,K=MD5(IMEI+IMSI);
C为用户身份识别模块的计数器的数值,具体为4字节的计数器的计数器数值;
Truncate(HMAC-SHA-1(K,C))为动态密钥生成算法,所述动态密钥生成算法具体为:
HS=HMAC-SHA-1(K,C);
此处,使用Hash信息验证码(Hash Message Authentication Codes,HMAC)安全散列算法(Secure Hash Algorithm,SHA),即HMAC-SHA,计算得到20字节的摘要数据HS。
Offset=Low4Bit(HS[19]);
此处,摘要数据HS由第19位开始的偏移量Offset,对HS数组最后一个字节,取低4位,得到一个0x0-0xf的值,这个值作为一个偏移量。Offset是一个0-15之间的数,保证在20字节的数组中根据Offset去定位取四字节时是不会发生越位溢出异常的。
HS[Offset]=HS[Offset]&0x8f;
此处,,根据Offset定位,在HS数组中取4字节,并且第一个字节去符号位,且第一字节做最高位。
Digit=4BytetoInt(HS[Offset]);
此处,把偏移量Offset处的连续4个字节转换成整型。
Digit=Digit%1000000。
此处,对上面产生的HS进行截取运算,取一百万模,得到显示的6个数字字符,该6个数字字符为动态密钥。此时Digit是一个ulong型的长整型,为了取得6位数字,则要取1000000的模(8个数字就取100000000的模);有的数字取模后,可能真实的数字小于6位,如5629009876%1000000=9876,此时需要前端补0,最终显示“009876”。以下是Truncate(HMAC-SHA-1(K,C))的一个实例:
HS是“Byte Value”,20个字节;
Offset=0x5a & 0x0f=0x0a;
HS[10]=HS[10] & 0x7f=0x50;
Digit=0xHS[10]HS[11]HS[12]HS[13]=0x50ef7f19=1357872921;
Digit=1357872921%1000000=872921。
动态密钥就是872921。
使用该动态密钥与公钥算法加密所述用户私钥,生成加密后的用户私钥。
数字证书生成模块44,用于根据所述接收模块41接收到得用户标识信息与所述用户密钥生成42生成的用户公钥生成用户公钥数字证书。
此处,用户标识可以是IMSI或IMEI,也可以是IMSI或IMEI唯一对应的伪码,用于证明申请者的身份。CA中心根据用户IMEI、IMSI、或其伪码,以及用户公钥签发用户公钥数字证书。
通知模块45,用于在所述数字证书模块44生成用户公钥数字证书后,向所述移动终端发送申请数字证书成功的通知信息。
此处,此步骤为可选步骤,CA中心签发用户公钥数字证书后,可以通过网络设备通知移动终端证书申请状态,也可以不通知。
图5是本发明实施例中网络设备第二实施例结构原理图,本实施例中网络设备为移动通信网络的网络设备,具体包括:
接收模块51,用于接收移动终端发送的申请数字证书的请求信息,该请求信息携带有用户标识及初始计数器数值;
此处,具体实施时,该请求信息可以是移动通信网络的网络设备转发的,请求信息中的用户标识可以是移动终端的国际移动装备辨识码(InternationalMobile Equipment Identity number,IMEI)或国际移动用户识别码(InternationalMobile Subscriber Identity,IMSI),初始计数器数值可以是用户身份识别模块(Subscriber Identity Module,SIM)卡的保存的4字节计数器的初始值。
用户密钥生成模块52,用于登记所述接收模块51接收的用户标识,并为该用户生成相应的用户公钥和用户私钥;
此处,登记移动终端用户标识,并生成记录,并使用RSA、ECC等公钥算法生成密钥对,即用户公钥和用户私钥。
用户密钥加密模块53,用于根据所述接收模块51接收到的用户标识及初始计数器数值生成动态密钥,并利用该动态密钥加密所述用户密钥生成模块52生成的用户私钥,生成加密后的用户私钥;
此处,具体实施时,根据所述用户标识及初始计数器数值生成动态密钥,具体的算法为:
HOTP(K,C)=Truncate(HMAC-SHA-1(K,C)),其中:
K为种子,K=MD5(IMEI+IMSI);
C为用户身份识别模块的计数器的数值,具体为4字节的计数器的计数器数值;
Truncate(HMAC-SHA-1(K,C))为动态密钥生成算法,所述动态密钥生成算法具体为:
HS=HMAC-SHA-1(K,C);
此处,使用Hash信息验证码(Hash Message Authentication Codes,HMAC)安全散列算法(Secure Hash Algorithm,SHA),即HMAC-SHA,计算得到20字节的摘要数据HS。
Offset=Low4Bit(HS[19]);
此处,摘要数据HS由第19位开始的偏移量Offset,对HS数组最后一个字节,取低4位,得到一个0x0-0xf的值,这个值作为一个偏移量。Offset是一个0-15之间的数,保证在20字节的数组中根据Offset去定位取四字节时是不会发生越位溢出异常的。
HS[Offset]=HS[Offset]&0x8f;
此处,,根据Offset定位,在HS数组中取4字节,并且第一个字节去符号位,且第一字节做最高位。
Digit=4BytetoInt(HS[Offset]);
此处,把偏移量Offset处的连续4个字节转换成整型。
Digit=Digit%1000000。
此处,对上面产生的HS进行截取运算,取一百万模,得到显示的6个数字字符,该6个数字字符为动态密钥。此时Digit是一个ulong型的长整型,为了取得6位数字,则要取1000000的模(8个数字就取100000000的模);有的数字取模后,可能真实的数字小于6位,如5629009876%1000000=9876,此时需要前端补0,最终显示“009876”。以下是Truncate(HMAC-SHA-1(K,C))的一个实例:
HS是“Byte Value”,20个字节;
Offset=0x5a & 0x0f=0x0a;
HS[10]=HS[10] & 0x7f=0x50;
Digit=0xHS[10]HS[11]HS[12]HS[13]=0x50ef7f19=1357872921;
Digit=1357872921%1000000=872921。
动态密钥就是872921。
使用该动态密钥与公钥算法加密所述用户私钥,生成加密后的用户私钥。
数字证书申请模块54,用于向证书授权中心发送所述接收模块51接收到的用户标识信息与所述用户密钥生成模块52生成的用户公钥;
数字证书接收模块55,用于证书授权中心根据所述用户标识信息与所述用户公钥生成用户公钥数字证书,并返回所述用户公钥数字证书时,接收所述证书授权中心下发的用户公钥数字证书。
通知模块56,用于在所述数字证书模块54接收到用户公钥数字证书后,向所述移动终端发送申请数字证书成功的通知信息。
此处,此步骤为可选步骤,通知模块54在接收到CA中心签发用户公钥数字证书后,可以通知移动终端证书申请状态,也可以不通知。
图6是本发明实施例中移动终端结构原理图,包括:
发送模块61,向网络侧发送用户密钥获取请求,该用户密钥获取请求中携带有用户标识;
此处,当第三方应用调用PKI功能时,移动终端向网络侧发送用户密钥获取请求,获取请求中的用户标识可以是移动终端的国际移动装备辨识码(International Mobile Equipment Identity number,IMEI)或国际移动用户识别码(International Mobile Subscriber Identity,IMSI)。
加密私钥获取模块62,用于在所述发送模块61发送所述获取请求后,根据所述用户标识从所述网络侧查询获取利用动态密钥加密后的用户私钥,并将该加密后的用户私钥缓存在移动终端内存中;
此处,CA中心或移动通信网络的网络设备根据登记的所述用户标识,查找匹配的已用动态密钥加密的用户私钥,将该加密的用户私钥下发到移动终端。
用户私钥获取模块63,用于根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥解密所述加密私钥获取模块62获取的所述加密后的用户私钥,获取解密后的用户私钥,并将该解密后的用户私钥缓存在内存中;
执行模块64,用于根据所述用户私钥获取模块63的用户私钥进行数字签名或解密使用用户公钥加密的数据;
密钥清除模块65,用于在所述执行模块64完成所述数字签名或解密使用用户公钥加密的数据后,清除所述用户私钥和所述动态密钥。
此处,对于执行模块64,当移动终端需要进行数字签名或解密使用用户公钥加密的数据时,可以从内存中调用用户私钥进行操作。当移动终端完成本次业务所需数字签名或解密使用用户公钥加密的数据后,密钥清除模块65可以清除内存中缓存的用户私钥和所述动态密钥,防止用户私钥和所述动态密钥泄露。
结合图4、图5、图6,需要说明的是,为了进一步保证用户私钥在传输中的保密性,CA中心或移动通信网络的网络设备中的用户密钥加密模块(43或53)下发加密的用户私钥后,可以将本地计数器的数值按照预设的计数规则进行计数,生成新的计数器数值,预设的计数规则可以使本地计数器的数值按照一定的规律改变即可,例如将当前的计数器数值加上一个固定数生成新的计数器数值等等,利用该新的计数器数值重新生成新的动态密钥。使用新的动态密钥该对用户私钥进行重新加密,生成新的加密后的用户私钥,当移动终端再次申请用户私钥时,下发该新的加密后的用户私钥。移动终端生成动态密钥的方式与CA中心或移动通信网络的网络设备生成动态密钥的方式相同,在此不再详述。移动终端获取解密后的用户私钥后,将本地计数器的数值按照与CA中心或移动通信网络的网络设备中相同的计数规则进行计数,生成新的计数器数值,保持移动终端本地计数器中的计数器数值与CA中心或移动通信网络的网络设备的计数器中的计数器数值相一致,当移动终端再次接收到CA中心或移动通信网络的网络设备下发的加密后的用户私钥时,利用该新的计数器数值重新生成新的动态密钥。使用新的动态密钥该对用户私钥进行重新解密。
图7是本发明实施例中移动终端和CA中心交互过程示意图,具体包括以下步骤:
步骤701,移动终端向移动通信网络的网络设备发送申请数字证书的请求信息,该请求信息携带有用户标识及初始计数器数值,该网络设备将请求信息转发到CA中心;
步骤702,CA中心接收移动终端发送的申请数字证书的请求信息;
步骤703,CA中心登记所述用户标识,并为该用户生成相应的用户公钥和用户私钥;
步骤704,CA中心根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥加密所述用户私钥,生成加密后的用户私钥;
步骤705,CA中心根据所述用户标识及所述用户公钥生成用户公钥数字证书;
步骤706,CA中心通过移动通信网络的网络设备向所述移动终端发送申请数字证书成功的通知信息;
步骤707,移动终端向网络侧发送用户密钥获取请求,该用户密钥获取请求中携带有用户标识,该网络设备将用户密钥获取请求转发到CA中心;
步骤708,移动终端根据所述用户标识从所述网络侧查询获取利用动态密钥加密后的用户私钥,并将该加密后的用户私钥缓存在移动终端内存中;
步骤709,移动终端根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥解密所述用户私钥,获取解密后的用户私钥,并将该解密后的用户私钥缓存在内存中
步骤710,移动终端根据所述用户私钥进行数字签名或解密使用用户公钥加密的数据;
步骤711,移动终端完成所述数字签名或解密使用用户公钥加密的数据后,清除所述用户私钥和所述动态密钥。
图8是本发明实施例中移动终端和移动通信网络的网络设备交互过程示意图,具体包括以下步骤:
步骤801,移动终端向移动通信网络的网络设备发送申请数字证书的请求信息,该请求信息携带有用户标识及初始计数器数值;
步骤802,网络设备接收移动终端发送的申请数字证书的请求信息;
步骤803,网络设备登记所述用户标识,并为该用户生成相应的用户公钥和用户私钥;
步骤804,网络设备根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥加密所述用户私钥,生成加密后的用户私钥;
步骤805,网络设备向证书授权中心发送所述用户标识信息与所述用户公钥;
步骤806,CA中心根据所述用户标识信息与所述用户公钥生成用户公钥数字证书,并返回所述用户公钥数字证书;
步骤807,网络设备接收所述证书授权中心下发的用户公钥数字证书;
步骤808,网络设备向所述移动终端发送申请数字证书成功的通知信息;
步骤809,移动终端向网络侧发送用户密钥获取请求,该用户密钥获取请求中携带有用户标识;
步骤810,移动终端根据所述用户标识从所述网络侧查询获取利用动态密钥加密后的用户私钥,并将该加密后的用户私钥缓存在移动终端内存中;
步骤811,移动终端根据所述用户标识及初始计数器数值生成动态密钥,并利用该动态密钥解密所述用户私钥,获取解密后的用户私钥,并将该解密后的用户私钥缓存在内存中
步骤812,移动终端根据所述用户私钥进行数字签名或解密使用用户公钥加密的数据;
步骤813,移动终端完成所述数字签名或解密使用用户公钥加密的数据后,清除所述用户私钥和所述动态密钥。
综上所述,网络设备接收移动终端发送的申请数字证书的请求信息,为该用户生成相应的用户公钥和用户私钥,根据请求信息中的用户标识及初始计数器数值生成动态密钥,并利用该动态密钥加密所述用户私钥,生成加密后的用户私钥;移动终端需要使用用户密钥时,向网络侧发送用户密钥获取请求,根据所述用户标识从所述网络侧查询获取利用动态密钥加密后的用户私钥,并将该加密后的用户私钥缓存在移动终端内存中,,并利用该生成的动态密钥解密所述用户私钥,获取解密后的用户私钥,并将该解密后的用户私钥缓存在内存中,可是实现移动终端未使用用户私钥时,由网络设备保存用户私钥,在移动终端需要使用用户私钥时,仅在内存中缓存用户私钥,避免用户私钥以文件存储方式存储在移动终端内,从而有效可以保障用户私钥的安全性,降低用户私钥的丢失或被窃取的安全风险。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (9)
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的移动终端,其特征在于,包括:
执行模块,用于根据所述用户私钥获取模块获取的用户私钥进行数字签名或解密使用用户公钥加密的数据;
密钥清除模块,用于在所述执行模块完成所述数字签名或解密使用用户公钥加密的数据后,清除所述用户私钥和所述动态密钥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102396144A CN101778381B (zh) | 2009-12-31 | 2009-12-31 | 数字证书生成方法、用户密钥获取方法、移动终端及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102396144A CN101778381B (zh) | 2009-12-31 | 2009-12-31 | 数字证书生成方法、用户密钥获取方法、移动终端及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101778381A CN101778381A (zh) | 2010-07-14 |
CN101778381B true CN101778381B (zh) | 2012-07-04 |
Family
ID=42514664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102396144A Expired - Fee Related CN101778381B (zh) | 2009-12-31 | 2009-12-31 | 数字证书生成方法、用户密钥获取方法、移动终端及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101778381B (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102036236A (zh) * | 2010-10-29 | 2011-04-27 | 深圳市爱贝信息技术有限公司 | 一种对移动终端认证的方法和装置 |
CN102045343B (zh) * | 2010-10-29 | 2013-06-19 | 深圳市爱贝信息技术有限公司 | 基于数字证书的通讯加密安全控制方法、服务器及系统 |
CN102056165B (zh) * | 2010-12-24 | 2014-10-29 | 中国移动通信集团江苏有限公司 | 手机支付密钥远程灌装系统及其方法 |
CN102307093A (zh) * | 2011-04-27 | 2012-01-04 | 上海动联信息技术有限公司 | 一种生成双因数动态口令的方法 |
CN102215488B (zh) * | 2011-05-27 | 2013-11-06 | 中国联合网络通信集团有限公司 | 智能手机数字证书的应用方法和系统 |
CN102263792A (zh) * | 2011-08-05 | 2011-11-30 | 常钧 | 无线安全密钥设备、电子商务业务系统及方法 |
CN102377564B (zh) * | 2011-11-15 | 2015-03-11 | 华为技术有限公司 | 私钥的加密方法及装置 |
CN103139163B (zh) * | 2011-11-29 | 2016-01-13 | 阿里巴巴集团控股有限公司 | 数据访问方法、服务器和终端 |
CN103166757B (zh) * | 2011-12-19 | 2016-01-20 | 卓望数码技术(深圳)有限公司 | 一种动态保护用户隐私数据的方法及系统 |
CN102902553B (zh) * | 2012-08-23 | 2015-09-30 | 福建富士通信息软件有限公司 | 基于java卡的手机支付卡的远程发卡方法 |
CN103916848B (zh) * | 2013-01-09 | 2019-06-14 | 中兴通讯股份有限公司 | 一种移动终端数据备份和恢复的方法及系统 |
CN104346587B (zh) * | 2013-08-08 | 2018-05-22 | 华邦电子股份有限公司 | 可认证的非挥发性内存组件及其操作及制造方法 |
CN105722067B (zh) * | 2014-12-02 | 2019-08-13 | 阿里巴巴集团控股有限公司 | 移动终端上数据加/解密方法及装置 |
CN106341372A (zh) * | 2015-07-08 | 2017-01-18 | 阿里巴巴集团控股有限公司 | 终端的认证处理、认证方法及装置、系统 |
CN106921496A (zh) * | 2015-12-25 | 2017-07-04 | 卓望数码技术(深圳)有限公司 | 一种数字签名方法和系统 |
CN115719224A (zh) | 2016-01-25 | 2023-02-28 | 创新先进技术有限公司 | 基于移动终端卡模拟的信用支付方法及装置 |
CN106997527A (zh) | 2016-01-25 | 2017-08-01 | 阿里巴巴集团控股有限公司 | 基于移动终端p2p的信用支付方法及装置 |
CN106657429A (zh) * | 2016-10-24 | 2017-05-10 | 珠海市魅族科技有限公司 | 一种设备标识符生成方法以及装置 |
CN106971119A (zh) * | 2017-02-24 | 2017-07-21 | 江苏信源久安信息科技有限公司 | 可信身份的数据库关键数据安全读写认证方法 |
CN107360002B (zh) * | 2017-08-15 | 2020-02-07 | 武汉信安珞珈科技有限公司 | 一种数字证书的申请方法 |
CN107733659B (zh) * | 2017-11-10 | 2020-10-30 | 中国银行股份有限公司 | 密钥证书处理方法、装置以及密钥证书认证方法和装置 |
CN108768638A (zh) * | 2018-06-01 | 2018-11-06 | 北京爱普安信息技术有限公司 | 一种消息加密的方法及装置 |
CN109525396B (zh) * | 2018-09-30 | 2021-02-23 | 华为技术有限公司 | 一种身份秘钥的处理方法、装置和服务器 |
CN110400405B (zh) * | 2019-07-29 | 2021-10-26 | 北京小米移动软件有限公司 | 一种控制门禁的方法、装置及介质 |
CN110933131A (zh) * | 2019-10-24 | 2020-03-27 | 国网宁夏电力有限公司电力科学研究院 | 一种基于窄带物联网的数字监控安全接入方法及装置 |
CN113472720B (zh) * | 2020-03-31 | 2024-02-06 | 山东云海安全认证服务有限公司 | 数字证书密钥处理方法、装置、终端设备及存储介质 |
CN114071452B (zh) * | 2020-08-07 | 2023-04-04 | 华为技术有限公司 | 用户签约数据的获取方法及装置 |
CN112702170A (zh) * | 2020-12-23 | 2021-04-23 | 北京新能源汽车技术创新中心有限公司 | 车辆数据的管理方法、管理系统及查看方法、查看终端 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1801029A (zh) * | 2004-12-31 | 2006-07-12 | 联想(北京)有限公司 | 生成数字证书及应用该所生成的数字证书的方法 |
CN101183932A (zh) * | 2007-12-03 | 2008-05-21 | 宇龙计算机通信科技(深圳)有限公司 | 一种无线应用服务的安全认证系统及其注册和登录方法 |
-
2009
- 2009-12-31 CN CN2009102396144A patent/CN101778381B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1801029A (zh) * | 2004-12-31 | 2006-07-12 | 联想(北京)有限公司 | 生成数字证书及应用该所生成的数字证书的方法 |
CN101183932A (zh) * | 2007-12-03 | 2008-05-21 | 宇龙计算机通信科技(深圳)有限公司 | 一种无线应用服务的安全认证系统及其注册和登录方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101778381A (zh) | 2010-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101778381B (zh) | 数字证书生成方法、用户密钥获取方法、移动终端及设备 | |
CN101789865B (zh) | 一种用于加密的专用服务器及加密方法 | |
US8499156B2 (en) | Method for implementing encryption and transmission of information and system thereof | |
CN101720071B (zh) | 基于安全sim卡的短消息两阶段加密传输和安全存储方法 | |
JP2020005260A5 (ja) | 認証デバイス、認証システム及び認証方法 | |
CN102118710A (zh) | 手机终端之间数据传输系统及其传输方法 | |
CN101247605A (zh) | 短信息加密、签名方法、移动终端及短信息加密系统 | |
CN109617675B (zh) | 一种充放电设施与用户端间的双方标识认证方法及系统 | |
CN101917710A (zh) | 移动互联网加密通讯的方法、系统及相关装置 | |
CN109087100B (zh) | 密钥分发方法、装置、设备及存储介质 | |
CN103684794A (zh) | 一种基于des、rsa、sha-1加密算法的通信数据加解密方法 | |
CN107483191A (zh) | 一种sm2算法密钥分割签名系统及方法 | |
CN103138938A (zh) | 基于csp的sm2证书申请及应用方法 | |
CN109600725A (zh) | 一种基于sm9算法的短信加密方法 | |
US20140229386A1 (en) | Secure mobile payments | |
CN103731270A (zh) | 一种基于bss、rsa、sha-1加密算法的通信数据加解密方法 | |
CN111767559B (zh) | 字段级加密区块链数据 | |
CN1316405C (zh) | 一种获得数字签名和实现数据安全的方法 | |
CN1688176A (zh) | 基于gsm网络实现无线身份认证和数据安全传输的方法 | |
CN101568110A (zh) | 一种无线数据传输方法及系统 | |
CN102104844A (zh) | 手机加密短信结构及应用该结构的手机加密短信收发方法 | |
CN108390755B (zh) | 基于内置安全芯片的sim贴膜卡的安全输入法 | |
CN102231883A (zh) | Rfid-sim卡电信数据传输内容加密系统及方法 | |
CN102664735B (zh) | 一种基于公共密钥的手机彩票系统安全会话实施方法 | |
CN103188665A (zh) | 提高接收广告的手机的安全性的系统、方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120704 Termination date: 20121231 |