发明内容
本发明解决了背景技术中存在的上述技术问题,而提供一种安全性高的密钥的分配与管理方法。
本发明的技术解决方案是:本发明为一种密钥的分配与管理方法,其特殊之处在于:该方法包括以下步骤:
1)移动终端向服务端发起注册请求消息{IDM};
2)当服务端收到来自移动终端的注册请求消息{IDM},服务端发送注册响应消息{IDM,IDLS}给移动终端;
3)当移动终端收到注册响应消息{IDM,IDL}后,生成移动终端密钥交换信息KeyExM,向服务端发送注册确认消息{IDM,IDLS,Nonce1,Nonce2,{KeyExM,Para}};
4)当服务端收到注册确认消息后,生成服务端密钥交换信息KeyExLS,计算主密钥BK=DH{KeyExM,KeyExLS},Km|Kd|Ki=prf(BK,Nonce1,Nonce2,”IDM|IDLS|IP”),发送注册完成消息{Flag,IDM,IDLS,Nonce1,Nonce2,{KeyExLS,para,result}}给移动终端;
5)当移动终端收到注册完成消息后,注册完成消息表示成功,则比较注册完成消息中的Nonce1和注册确认消息中的Nonce1是否相同,若相同,则移动终端计算BK=DH{KeyExM,KeyExLS},Km|Kd|Ki=prf(BK,Nonce1,Nonce2,”IDM|IDLS|IP”);
6)完成上述步骤后,移动终端和服务端将共享密钥协商密钥Km、数据加密密钥Kd、数据完整性密钥Ki。
上述步骤2)中,当服务端处于更新状态时,服务端收到注册请求消息中的IDM后,发送的响应注册响应消息{IDM,IDLS}采用相同的Nonce2。
上述步骤4)中当服务端收到注册确认消息后,比较注册确认消息中的Nonce2和注册响应消息中的Nonce2是否相同,若相同,且注册确认消息包括证书时,则服务端向证书鉴别服务端发送证书鉴别请求消息{Nonce1,Nonce2,CertM,CertLS};当证书鉴别服务端收到证书鉴别请求消息后,验证移动终端证书CertM和服务端CertLS的有效性,向服务端发送证书鉴别响应消息{Result,attributes,SigAS},当服务端收到证书鉴别响应消息后,验证签名SigAS正确后,若移动终端证书鉴别的结果是有效的,置该移动终端为已注册状态,服务端生成服务端交换密钥KeyExLS,若移动终端证书鉴别的结果是无效的,服务端置该移动终端为未注册状态,不发送注册完成消息。
本发明具有以下优点:
1、本发明采用动态生成密钥的方式,以保证传输过程使用密钥的安全性,以此保证数据传输的安全性。
2、本发明采用密码技术和安全存储技术来解决安全问题,采用数据加密防止窃听,采用数据完整性校验防止通信数据的篡改,进一步提高了数据传输的安全性。
具体实施方式
参照图1,本发明的方法包括以下步骤:
1)移动终端向服务端发起注册请求消息{IDM};
2)当服务端收到来自移动终端的注册请求消息{IDM},服务端发送注册响应消息{IDM,IDLS}给移动终端,当服务端处于更新时,服务端收到注册请求消息{IDM}后,发送的响应注册响应消息{IDM,IDLS}采用相同的Nonce2,以减轻DoS攻击;
3)当移动终端收到注册响应消息{IDM,IDL}后,向服务端发送注册确认消息{IDM,IDLS,Nonce1,Nonce2,{KeyExM,Para}};
4)当服务端收到注册确认消息后,生成服务端密钥交换信息KeyExLS,计算BK=DH{KeyExM,KeyExLS},Km|Kd|Ki=prf(BK,Nonce1,Nonce2,”IDM |IDLS|IP”),发送注册完成消息{Flag,IDM,IDLS,Nonce1,Nonce2,{KeyExLS,para,result}}给移动终端;
5)当移动终端收到注册完成消息后,注册完成消息表示成功,则比较注册完成消息中的Nonce1和注册确认消息中的Nonce1是否相同,若相同,则移动终端计算BK=DH{KeyExM,KeyExLS},Km|Kd|Ki=prf(BK,Nonce1,Nonce2,”IDM|IDLS|IP”);
6)完成上述步骤后,移动终端和服务端将共享密钥协商密钥Km、数据加密密钥Kd、数据完整性密钥Ki。
参照图2,本发明静态密钥结构中,BK的计算基于签名的ECDH交换,除了移动终端和服务端,其他实体都无法计算出BK。
kdf是密钥导出函数,用于将BK的长度扩展为需要的密钥长度,该函数在GB15629.11/XG1-2006中定义。
Km用于密钥更新协议消息鉴别;
Kd用于传输过程的数据加密;
Ki用于数据完整性校验;
参见图3,本发明的应用的较佳实施例中,服务端为接入服务单元,证书鉴别服务端为证书服务单元,其具体步骤如下:
1)移动终端漫游到外地网络,向接入服务单元发起注册请求消息{Flag,IDM,Msg1};
2)当接入服务单元收到来自移动终端的注册请求消息,若该移动终端的状态为未注册,接入服务单元置该移动终端为正在注册状态;若该移动终端的状态为已注册状态,接入服务单元置该移动终端为注册更新状态;若该移动终端的状态为注册更新或正在注册,状态不变;接入服务单元发送注册响应消息{Flag,IDM,IDLS,Nonce2,Msg2}给移动终端,当接入服务单元处于注册更新或正在注册状态,收到注册请求消息后,接入服务单元发送的注册响应消息采用相同的Nonce2,以减轻DoS攻击。
3)当移动终端收到注册响应消息后,向接入服务单元发送注册确认消息{Flag,IDM,IDLS,Nonce1,Nonce2,{KeyExM,Para},AUTHM,Msg3};
4)当接入服务单元收到注册确认消息后,比较注册确认消息中Nonce2和注册响应消息中的Nonce2相同,若相同且注册确认消息中Flag表示为证书,则接入服务单元将向证书服务单元发送证书鉴别请求消息{Nonce1,Nonce2,CertM,CertLS};
5)当证书服务单元收到证书鉴别请求消息后,验证CertM和CertLS的有效性,然后向接入服务单元发送证书鉴别响应消息{Result,attributes,SigAS};
6)当接入服务单元收到证书鉴别响应消息后,验证签名SigAS正确后,若移动终端证书鉴别的结果是有效的,则验证客户端签名数据AUTHM,验证通过后,置该移动终端为已注册状态,此时接入服务单元生成KeyExLS,计算BK=DH{KeyExM,KeyExLS},Km|Kd|Ki=prf(BK,Nonce1,Nonce2,”IDM|IDLS|IP”),然后向移动终端发送注册完成消息{{Flag,IDM,IDLS,Nonce1,Nonce2,{KeyExLS,para,result},AUTHLS,Msg4};若移动终端证书鉴别的结果是无效的,接入服务单元置该移动终端为未注册状态,注册完成消息将不发送;
7)当移动终端收到注册完成消息后,消息中Flag表示注册成功,则比较注册完成消息中的Nonce1和注册确认消息中的Nonce1是否相同,若相同,则继续使用服务端签名数据AUTHLS验证本地服务器的证书有效性,验证AUTHLS通过后,移动终端计算BK=DH{KeyExM,KeyExLS},Km|Kd|Ki=prf(BK,Nonce1,Nonce2,”IDM|IDLS|Ip”);
8)注册成功后,移动终端和接入服务单元将共享密钥协商密钥Km、数据加密密钥Kd、数据完整性密钥Ki,接入服务单元允许移动终端的消息被转发。