一种GPRS***密钥增强的方法、SGSN设备、UE、HLR/HSS及GPRS***
技术领域
本申请涉及通信安全领域,尤其涉及一种GPRS***密钥增强的方法、SGSN设备、UE、HLR/HSS及GPRS***。
背景技术
为实现数据传输功能,用户设备(User Equipment,UE)一般通过用户识别模块(SIM,Subscriber Identity Module)或全球用户识别模块(USIM,Universal Subscriber Identity Module)来接入运营商的移动通信网络,如通用分组无线服务(GPRS,General Packet Radio Service)网络,从而与其他UE、人或移动网络进行通信。为了保证UE通信的安全,在UE接入移动通信网络之前,通常需要进行网络侧和UE之间的鉴权,以保证网络侧和UE的合法性,并生成机密性密钥和完整性密钥,从而为通信消息提供机密性保护和完整性保护。然而现有技术中,当使用SIM的UE接入GPRS网络时,只能实现网络侧对UE的单向鉴权,以及对通信消息进行加密性保护,无法实现UE对网络侧的鉴权和对通信消息的完整性保护。当使用USIM的UE接入GPRS网络,可以实现网络侧和UE之间的双向认证,但仍然仅能对通信消息进行加密性保护,无法为通信消息提供完整性保护。存在的安全威胁如下:一方面,若UE无法对来自网络侧的消息进行认证,可能会使UE遭受假基站的攻击;另一方面,若通信消息无法得到完整性保护,UE和网络侧之间的通信可能遭受算法降级攻击,甚至存在通信内容被窃听或篡改等安全隐患。对于一些物联网UE、机器通信UE等要求高安全性通信的UE来说,亟需提供一种方法,增强此类UE在GPRS网络中通信的安全性。
发明内容
本申请实施例公开了一种GPRS***密钥增强的方法、SGSN设备、UE、HLR/HSS及GPRS***,可增强GPRS***的密钥,提高第一类型UE在GPRS
网络中通信的安全性。
本申请实施例第一方面公开了一种GPRS***密钥增强的方法,可包括:
SGSN接收UE发送的请求消息;
所述SGSN从HLR/HSS获取认证向量,所述认证向量包含第一加密密钥和第一完整性密钥;
若所述SGSN确定所述UE为第一类型UE,则为所述UE选择一种加密算法和一种完整性算法,并将所选择的加密算法和完整性算法发送给所述UE;
所述SGSN根据所述第一加密密钥和所述第一完整性密钥,获得第二加密密钥和第二完整性密钥;
其中,所述第二加密密钥和所选择的加密算法用于对所述SGSN和所述UE之间传输的消息进行机密性保护,所述第二完整性密钥和所选择的完整性算法用于对所述SGSN和所述UE之间传输的消息进行完整性保护。
结合第一方面,在第一种可能的实现方式中,所述请求消息中包含所述UE的标识,所述SGSN确定所述UE为第一类型UE包括:
所述SGSN将所述UE的标识发送给所述HLR/HSS,以使所述HLR/HSS根据所述UE的标识确定所述UE为第一类型UE,并向所述SGSN发送UE类型指示信息,所述UE类型指示信息用于指示所述UE为第一类型UE;
所述SGSN接收所述HLR/HSS发送的所述UE类型指示信息,确定所述UE为第一类型UE。
结合第一方面,在第二种可能的实现方式中,所述SGSN确定所述UE为第一类型UE,包括:
若所述请求消息包含UE类型指示信息,则所述SGSN确定所述UE为第一类型UE,其中所述UE类型指示信息用于指示所述UE为第一类型UE。
结合第一方面及第一方面的第一至第二种可能的实现方式中任一项,在第三种可能的实现方式中,所述SGSN根据所述第一加密密钥和所述第一完整性密钥,获得第二加密密钥和第二完整性密钥,包括:
所述SGSN根据所述第一加密密钥和所述第一完整性密钥,计算中间密钥;所述SGSN根据所述中间密钥和加密特征字符串,计算所述第二加密密钥;所述SGSN根据所述中间密钥和完整性特征字符串,计算所述第二完整性密
钥;或者,
所述SGSN根据所述第一加密密钥和所述第一完整性密钥,计算中间密钥;所述SGSN根据所述中间密钥、第一算法类型指示和所选择的加密算法的标识,计算所述第二加密密钥;所述SGSN根据所述中间密钥、第二算法类型指示和所选择的完整性算法的标识,计算所述第二完整性密钥,其中所述第一算法类型指示和所述第二算法类型指示的取值不相同。
结合第一方面及第一方面的第一至第二种可能的实现方式中任一项,在第四种可能的实现方式中,所述SGSN根据所述认证向量中的第一加密密钥和第一完整性密钥计算第二加密密钥和第二完整性密钥,包括:
所述SGSN根据所述第一加密密钥和所述第一完整性密钥,计算中间密钥;所述SGSN将所述中间密钥的第一预设比特位作为所述第二加密密钥,将所述中间密钥的第二预设比特位作为所述第二完整性密钥;或者,
所述SGSN根据所述第一加密密钥、第一算法类型指示和所选择的加密算法的标识计算第二加密密钥;所述SGSN根据所述第一完整性密钥、第二算法类型指示和所选择的完整性算法的标识计算第二完整性密钥,其中所述第一算法类型指示和所述第二算法类型指示的取值不相同;或者,
所述SGSN将所述第一加密密钥或者所述第一加密密钥的预设比特位作为所述第二加密密钥;所述SGSN将所述第一完整性密钥或者所述第一完整性密钥的预设比特位作为所述第二完整性密钥。
结合第一方面及第一方面的第三至第四种可能的实现方式中任一项,在第五种可能的实现方式中,
所述认证向量为认证向量五元组;
所述第一加密密钥为所述认证向量五元组中的的加密密钥CK,所述第一完整性密钥为所述认证向量五元组中的完整性密钥IK。
结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述中间密钥为64位GPRS加密密钥Kc或128位加密密钥Kc128。
本申请实施例第二方面公开了一种GPRS***密钥增强的方法,可包括:
UE向SGSN发送请求消息;
所述UE接收所述SGSN发送的加密算法和完整性算法;
所述UE根据第一加密密钥和第一完整性密钥,获取第二加密密钥和第二完整性密钥;
其中,所述第二加密密钥和所述加密算法用于对所述SGSN和所述UE之间传输的消息进行机密性保护,所述第二完整性密钥和所述完整性算法用于对所述SGSN和所述UE之间传输的消息进行完整性保护。
结合第二方面,在第一种可能的实现方式中,所述UE向所述SGSN发送的请求消息中包含UE类型指示信息,所述UE类型指示信息用于指示所述UE为第一类型UE。
结合第二方面,在第一种可能的实现方式中,所述UE根据第一加密密钥和第一完整性密钥,获取第二加密密钥和第二完整性密钥,包括:
所述UE根据所述第一加密密钥和所述第一完整性密钥,计算中间密钥;所述UE根据所述中间密钥和加密特征字符串,计算所述第二加密密钥;所述UE根据所述中间密钥和完整性特征字符串,计算所述第二完整性密钥;或者,
所述UE根据所述第一加密密钥和所述第一完整性密钥,计算中间密钥;所述UE根据所述中间密钥、第一算法类型指示和所述加密算法的标识,计算所述第二加密密钥;所述UE根据所述中间密钥、第二算法类型指示和所述完整性算法的标识,计算所述第二完整性密钥,其中所述第一算法类型指示和所述第二算法类型指示的取值不相同。
结合第二方面及第二方面的第一种可能的实现方式中任一项,在第二种可能的实现方式中,所述UE根据第一加密密钥和第一完整性密钥,获取第二加密密钥和第二完整性密钥,包括:
所述UE根据所述第一加密密钥和所述第一完整性密钥,计算中间密钥;所述UE将所述中间密钥的第一预设比特位作为第二加密密钥,将所述中间密钥的第二预设比特位作为第二完整性密钥。
结合第二方面及第二方面的第一种可能的实现方式中任一项,在第三种可能的实现方式中,所述UE根据第一加密密钥和第一完整性密钥计算第二加密密钥和第二完整性密钥,包括:
所述UE根据所述第一加密密钥和所述第一完整性密钥计算中间密钥;所述UE将所述中间密钥的第一预设比特位作为所述第二加密密钥,将所述中间
密钥的第二预设比特位作为所述第二完整性密钥;或者,
所述UE根据所述第一加密密钥、第一算法类型指示和所述加密算法的标识计算所述第二加密密钥;所述UE根据第一完整性密钥、算法类型指示和所述完整性算法的标识计算所述第二完整性密钥,其中所述第一算法类型指示和所述第二算法类型指示的取值不相同;或者,
所述UE将所述第一加密密钥或者所述第一加密密钥的预设比特位作为所述第二加密密钥;所述UE将所述第一完整性密钥或者所述第一完整性密钥的预设比特位作为所述第二完整性密钥。
结合第二方面的第二至第三种可能的实现方式中任一项,在第四种可能的实现方式中,所述第一加密密钥为认证向量五元组中的加密密钥CK,所述第一完整性密钥为所述认证向量五元组中的完整性密钥IK。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述中间密钥为64位GPRS加密密钥Kc或128位加密密钥Kc128。
本申请第三方面公开了一种GPRS***密钥增强的方法,可包括:
HLR/HSS接收SGSN发送的用户设备UE的标识;
所述HLR/HSS根据所述UE的标识确定所述UE为第一类型UE;
所述HLR/HSS向所述SGSN发送UE类型指示信息,所述UE类型指示信息用于指示所述UE为第一类型UE。
本申请第四方面公开了一种SGSN设备,可包括:
接收模块,用于接收UE发送的请求消息;
获取模块,用于从HLR/HSS获取认证向量,所述认证向量包含第一加密密钥和第一完整性密钥;
选择模块,用于在所述SGSN确定所述UE为第一类型UE时,为所述UE选择一种加密算法和一种完整性算法,并将所选择的加密算法和完整性算法发送给所述UE;
获得模块,用于根据所述第一加密密钥和所述第一完整性密钥,获得第二加密密钥和第二完整性密钥;
其中,所述第二加密密钥和所选择的加密算法用于对所述SGSN和所述UE之间传输的消息进行机密性保护,所述第二完整性密钥和所选择的完整性
算法用于对所述SGSN和所述UE之间传输的消息进行完整性保护。
结合第四方面,在第一种可能的实现方式中,所述请求消息中包含所述UE的标识,所述SGSN设备还包括:
发送模块,用于将所述UE的标识发送给HLR/HSS,以使所述HLR/HSS根据所述UE的标识判断所述UE是否为第一类型UE,并向所述SGSN发送UE类型指示信息,所述UE类型指示信息用于指示所述UE为第一类型UE;
第一确定模块,用于接收所述HLR/HSS发送的所述UE类型指示信息,确定所述UE为第一类型UE。
结合第四方面,在第二种可能的实现方式中,所述SGSN设备还包括:
第二确定模块,用于在所述请求消息包含UE类型指示信息时,确定所述UE为第一类型UE,其中,所述UE类型指示信息用于指示所述UE为第一类型UE。
结合第四方面及第四方面的第一至第二种可能的实现方式中任一项,在第三种可能的实现方式中,所述获得模块包括第一计算单元、第二计算单元和第三计算单元,其中:
所述第一计算单元,用于根据所述第一加密密钥和所述第一完整性密钥,计算中间密钥;所述第二计算单元,用于根据所述中间密钥和加密特征字符串,计算所述第二加密密钥;所述第三计算单元,用于根据所述中间密钥和完整性特征字符串,计算所述第二完整性密钥;或者,
所述第一计算单元,用于根据所述第一加密密钥和所述第一完整性密钥,计算中间密钥;所述第二计算单元,用于根据所述中间密钥、第一算法类型指示和所选择的加密算法的标识,计算所述第二加密密钥;所述第三计算单元,用于根据所述中间密钥、第二算法类型指示和所选择的完整性算法的标识,计算所述第二完整性密钥,其中所述第一算法类型指示和所述第二算法类型指示的取值不相同。
结合第四方面及第四方面的第一至第二种可能的实现方式中任一项,在第四种可能的实现方式中,
所述获得模块具体用于:根据所述第一加密密钥和所述第一完整性密钥计算中间密钥;将所述中间密钥的第一预设比特位作为第二加密密钥,将所述中
间密钥的第二预设比特位作为第二完整性密钥;或者,
所述获得模块包括:第四计算单元,用于根据所述第一加密密钥、第一算法类型指示和所选择的加密算法的标识计算所述第二加密密钥;第五计算单元,用于根据所述第一完整性密钥、第二算法类型指示和所选择的完整性算法的标识计算所述第二完整性密钥,其中所述第一算法类型指示和所述第二算法类型指示的取值不相同;或者,
所述获得模块具体用于:将所述认证向量中的第一加密密钥或者所述第一加密密钥的预设比特位作为所述第二加密密钥;将所述认证向量中的第一完整性密钥或者所述第一完整性密钥的预设比特位作为所述第二完整性密钥。
结合第四方面的第三至第四种可能的实现方式中任一项,在第五种可能的实现方式中,
所述认证向量为认证向量五元组;
所述第一加密密钥为所述认证向量五元组中的的加密密钥CK,所述第一完整性密钥为所述认证向量五元组中的完整性密钥IK。
结合第四方面的第五种可能的实现方式,在第六种可能的实现方式中,所述中间密钥为64位GPRS加密密钥Kc或128位加密密钥Kc128。
本申请第五方面公开了一种计算机存储介质,所述计算机存储介质存储有程序,运行所述程序时执行包括如第一方面及第一方面的第一至第六种可能的实现方式中任一项所述的步骤。
本申请第六方面提供了一种SGSN设备,可包括接收装置、发送装置和处理器,所述接收装置、所述发送装置和所述处理器通过总线相连,其中:
所述接收装置,用于接收UE发送的请求消息;
所述处理器,用于:
从HLR/HSS获取认证向量,所述认证向量包含第一加密密钥和第一完整性密钥;
若所述SGSN确定所述UE为第一类型UE,则为所述UE选择一种加密算法和一种完整性算法;
根据所述第一加密密钥和所述第一完整性密钥,获得第二加密密钥和第二完整性密钥;
所述发送装置,用于将所选择的加密算法和完整性算法发送给所述UE;
其中,所述第二加密密钥和所选择的加密算法用于对所述SGSN和所述UE之间传输的消息进行机密性保护,所述第二完整性密钥和所选择的完整性算法用于对所述SGSN和所述UE之间传输的消息进行完整性保护。
结合第六方面,在第一种可能的实现方式中,所述请求消息中包含所述UE的标识;
所述发送装置,还用于将所述UE的标识发送给所述HLR/HSS,以使所述HLR/HSS根据所述UE的标识判断所述UE是否为第一类型UE,并向所述SGSN发送UE类型指示信息,所述UE类型指示信息用于指示所述UE为第一类型UE;
所述处理器确定所述UE为第一类型UE,包括:所述处理器接收所述HLR/HSS发送的UE类型指示信息,确定所述UE为第一类型UE。
结合第六方面,在第二种可能的实现方式中,所述处理器确定所述UE为第一类型UE,包括:
若所述请求消息包含UE类型指示信息,则所述处理器确定所述UE为第一类型UE,其中,所述UE类型指示信息用于指示所述UE为第一类型UE。
结合第六方面及第六方面的第一至第二种可能的实现方式中任一项,在第三种可能的实现方式中,所述处理器根据所述第一加密密钥和所述第一完整性密钥,获得第二加密密钥和第二完整性密钥,包括:
所述处理器根据所述第一加密密钥和所述第一完整性密钥,计算中间密钥;所述处理器根据所述中间密钥和加密特征字符串,计算所述第二加密密钥;所述处理器根据所述中间密钥和完整性特征字符串,计算所述第二完整性密钥;或者,
所述处理器根据所述第一加密密钥和所述第一完整性密钥,计算中间密钥;所述处理器根据所述中间密钥、第一算法类型指示和所选择的加密算法的标识,计算所述第二加密密钥;所述处理器根据所述中间密钥、第二算法类型指示和所选择的完整性算法的标识,计算所述第二完整性密钥,其中所述第一算法类型指示和所述第二算法类型指示的取值不相同。
结合第六方面及第六方面的第一至第二种可能的实现方式中任一项,在第
四种可能的实现方式中,所述处理器根据所述第一加密密钥和所述第一完整性密钥,获得第二加密密钥和第二完整性密钥,包括:
所述处理器根据所述第一加密密钥和所述第一完整性密钥,计算中间密钥;所述处理器将所述中间密钥的第一预设比特位作为所述第二加密密钥,将所述中间密钥的第二预设比特位作为所述第二完整性密钥;或者,
所述处理器根据所述认证向量中的第一加密密钥、第一算法类型指示和所选择的加密算法的标识,计算所述第二加密密钥;所述处理器根据所述认证向量中的第一完整性密钥、第二算法类型指示和所选择的完整性算法的标识计算所述第二完整性密钥,其中所述第一算法类型指示和所述第二算法类型指示的取值不相同;或者,
所述处理器将所述第一加密密钥或者所述第一加密密钥的预设比特位作为所述第二加密密钥;所述处理器将所述第一完整性密钥或者所述第一完整性密钥的预设比特位作为所述第二完整性密钥。
结合第六方面的第三至第四种可能的实现方式中任一项,在第五种可能的实现方式中,
所述认证向量为认证向量五元组;
所述第一加密密钥为所述认证向量五元组中的的加密密钥CK,所述第一完整性密钥为所述认证向量五元组中的完整性密钥IK。
结合第六方面的第五种可能的实现方式,在第六种可能的实现方式中,所述中间密钥为64位GPRS加密密钥Kc或128位加密密钥Kc128。
本申请第七方面公开了一种UE,可包括:
发送模块,用于向SGSN发送请求消息;
接收模块,用于接收所述SGSN发送的加密算法和完整性算法;
获取模块,用于根据第一加密密钥和第一完整性密钥,获取第二加密密钥和第二完整性密钥;
其中,所述第二加密密钥和所述加密算法用于对所述SGSN和所述UE之间传输的消息进行机密性保护,所述第二完整性密钥和所述完整性算法用于对所述SGSN和所述UE之间传输的消息进行完整性保护。
结合第七方面,在第一种可能的实现方式中,所述UE向所述SGSN发送
的请求消息中包含UE类型指示信息,所述UE类型指示信息用于指示所述UE为第一类型UE。
结合第七方面及第七方面的第一种可能的实现方式中任一项,在第二种可能的实现方式中,所述获取模块包括第一计算单元、第二计算单元和第三计算单元,其中:
所述第一计算单元,用于根据所述第一加密密钥和所述第一完整性密钥,计算中间密钥;所述第二计算单元,用于根据所述中间密钥和加密特征字符串,计算所述第二加密密钥;所述第三计算单元,用于根据所述中间密钥和完整性特征字符串,计算所述第二完整性密钥;或者,
所述第一计算单元,用于根据所述第一加密密钥和所述第一完整性密钥,计算中间密钥;所述第二计算单元,用于根据所述中间密钥、第一算法类型指示和所述加密算法的标识,计算所述第二加密密钥;所述第三计算单元,用于根据所述中间密钥、第二算法类型指示和所述完整性算法的标识,计算所述第二完整性密钥,其中所述第一算法类型指示和所述第二算法类型指示的取值不相同。
结合第七方面及第七方面的第一种可能的实现方式中任一项,在第三种可能的实现方式中,
所述获取模块具体用于:根据所述第一加密密钥和所述第一完整性密钥,计算中间密钥;将所述中间密钥的第一预设比特位作为所述第二加密密钥,将所述中间密钥的第二预设比特位作为所述第二完整性密钥;或者,
所述计算模块包括:第四计算单元,用于根据所述第一加密密钥、第一算法类型指示和所述加密算法的标识计算所述第二加密密钥;第五计算单元,用于根据所述第一完整性密钥、第二算法类型指示和所述完整性算法的标识计算所述第二完整性密钥,其中所述第一算法类型指示和所述第二算法类型指示的取值不相同;或者,
所述获取模块具体用于:将所述第一加密密钥或者所述第一加密密钥的预设比特位作为所述第二加密密钥;将所述第一完整性密钥或者所述第一完整性密钥的预设比特位作为所述第二完整性密钥。
结合第七方面的第二至第三种可能的实现方式中任一项,在第四种可能的
实现方式中,所述第一加密密钥为认证向量五元组中的加密密钥CK,所述第一完整性密钥为所述认证向量五元组中的完整性密钥IK。
结合第七方面的第四种可能的实现方式,在第五种可能的实现方式中,所述中间密钥为64位GPRS加密密钥Kc或128位加密密钥Kc128。
本申请第八方面公开了一种计算机存储介质,所述计算机存储介质存储有程序,运行所述程序时执行包括如第二方面及第二方面的第一至第五种可能的实现方式中任一项所述的步骤。
本申请第九方面公开了一种UE,可包括发送装置、接收装置和处理器,所述发送装置、所述接收装置和所述处理器通过总线连接,其中:
所述发送装置,用于向SGSN发送请求消息;
所述接收装置,还用于接收所述SGSN发送的加密算法和完整性算法;
所述处理器,用于根据第一加密密钥和第一完整性密钥,获取第二加密密钥和第二完整性密钥;
其中,所述第二加密密钥和所述加密算法用于对所述SGSN和所述UE之间传输的消息进行机密性保护,所述第二完整性密钥和所述完整性算法用于对所述SGSN和所述UE之间传输的消息进行完整性保护。
结合第九方面,在第一种可能的实现方式中,所述发送装置向所述SGSN发送的请求消息中包含UE类型指示信息,所述UE类型指示信息用于指示所述UE为第一类型UE。
结合第九方面及第九方面的第一种可能的实现方式中任一项,在第二种可能的实现方式中,所述处理器根据第一加密密钥和第一完整性密钥,获取第二加密密钥和第二完整性密钥,包括:
所述处理器根据所述第一加密密钥和所述第一完整性密钥,计算中间密钥;所述处理器根据所述中间密钥和加密特征字符串,计算所述第二加密密钥;所述处理器根据所述中间密钥和完整性特征字符串,计算所述第二完整性密钥;或者,
所述处理器根据所述第一加密密钥和所述第一完整性密钥,计算中间密钥;所述处理器根据所述中间密钥、第一算法类型指示和所述加密算法的标识,计算所述第二加密密钥;所述处理器根据所述中间密钥、第二算法类型指示和
所述完整性算法的标识,计算所述第二完整性密钥,其中所述第一算法类型指示和所述第二算法类型指示的取值不相同。
结合第九方面及第九方面的第一种可能的实现方式中任一项,在第三种可能的实现方式中,所述处理器根据第一加密密钥和第一完整性密钥,获取第二加密密钥和第二完整性密钥,包括:
所述处理器根据所述第一加密密钥和所述第一完整性密钥计算中间密钥;所述处理器将所述中间密钥的第一预设比特位作为所述第二加密密钥,将所述中间密钥的第二预设比特位作为所述第二完整性密钥;或者,
所述处理器根据所述第一加密密钥、第一算法类型指示和所述加密算法的标识计算所述第二加密密钥;所述处理器根据所述第一完整性密钥、第二算法类型指示和所述完整性算法的标识计算所述第二完整性密钥,其中所述第一算法类型指示和所述第二算法类型指示的取值不相同;或者,
所述处理器将所述第一加密密钥或者所述第一加密密钥的预设比特位作为所述第二加密密钥;所述处理器将所述第一完整性密钥或者所述第一完整性密钥的预设比特位作为所述第二完整性密钥。
结合第九方面的第二至第三种可能的实现方式中任一项,在第四种可能的实现方式中,所述第一加密密钥为认证向量五元组中的加密密钥CK,所述第一完整性密钥为所述认证向量五元组中的完整性密钥IK。
结合第九方面的第四种可能的实现方式,在第五种可能的实现方式中,所述中间密钥为64位GPRS加密密钥Kc或128位加密密钥Kc128。
本申请第十方面公开了一种HLR/HSS,可包括:
接收模块,用于接收服务GPRS支持节点SGSN发送的用户设备UE的标识;
确定模块,用于根据所述UE的标识确定所述UE为第一类型UE;
发送模块,用于向所述SGSN发送UE类型指示信息,所述UE类型指示信息用于指示所述UE为第一类型UE。
本申请第十一方面公开了一种计算机存储介质,所述计算机存储介质存储有程序,运行所述程序时执行包括如本申请第三方面所述的步骤。
本申请第十二方面公开了一种HLR/HSS,可包括发送装置、接收装置和
处理器,所述发送装置、所述接收装置和所述处理器通过总线连接,其中:
所述接收装置,用于接收服务GPRS支持节点SGSN发送的用户设备UE的标识;
所述处理器,用于根据所述UE的标识确定所述UE为第一类型UE;
所述发送装置,用于向所述SGSN发送UE类型指示信息,所述UE类型指示信息用于指示所述UE为第一类型UE。
本申请第十三方面公开了一种GPRS***,所述GPRS***包括服务GPRS支持节点SGSN设备、用户设备UE和归属位置寄存器HLR/归属签约***HSS,其中:
所述SGSN设备用于:接收UE发送的请求消息,从HLR/HSS获取认证向量,所述认证向量包含第一加密密钥和第一完整性密钥,若所述SGSN确定所述UE为第一类型UE,则为所述UE选择一种加密算法和一种完整性算法,将所选择的加密算法和完整性算法发送给所述UE,并根据所述第一加密密钥和所述第一完整性密钥,获得第二加密密钥和第二完整性密钥;
所述UE用于:向SGSN发送请求消息,接收所述SGSN发送的加密算法和完整性算法,并根据所述第一加密密钥和所述第一完整性密钥,获取所述第二加密密钥和所述第二完整性密钥;
其中,所述第二加密密钥和所述加密算法用于对所述SGSN和所述UE之间传输的消息进行机密性保护,所述第二完整性密钥和所述完整性算法用于对所述SGSN和所述UE之间传输的消息进行完整性保护。
结合第十三方面,在第一种可能的实现方式中,所述HLR/HSS用于:
接收所述SGSN发送的所述UE的标识;
根据所述UE的标识确定所述UE为第一类型UE;
向所述SGSN发送UE类型指示信息,所述UE类型指示信息用于指示所述UE为第一类型UE。
本申请实施例中,SGSN接收UE发送的请求消息,在确定UE为第一类型UE后,选择一种加密算法和一种完整性算法,从HLR/HSS获取认证向量,根据认证向量中包含的第一加密密钥和第一完整性密钥,获得增强的第二加密密钥和第二完整性密钥,并将所选择的加密算法和完整性算法发送给UE,使
UE在计算第二加密密钥和第二完整性密钥之后,SGSN和UE双方可通过第二加密密钥、第二完整性密钥、SGSN选择的加密算法和完整性算法来对SGSN和UE之间的通信消息进行加密保护和完整性保护,增强第一类型UE在GPRS网络中通信的安全性。
附图说明
为了更清楚地说明本申请中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的GPRS***密钥增强的方法的一实施例的流程示意图;
图2是本申请提供的GPRS***密钥增强的方法的另一实施例的流程示意图;
图3是本申请提供的GPRS***密钥增强的方法的又一实施例的流程示意图;
图4是本申请提供的GPRS***密钥增强的方法的又一实施例的流程示意图;
图5是本申请提供的GPRS***密钥增强的方法的又一实施例的流程示意图;
图6是本申请提供的GPRS***密钥增强的方法的又一实施例的流程示意图;
图7是本申请提供的GPRS***密钥增强的方法的又一实施例的流程示意图;
图8是本申请提供的GPRS***密钥增强的方法的又一实施例的流程示意图;
图9是本申请提供的GPRS***密钥增强的方法的又一实施例的流程示意图;
图10是本申请提供的GPRS***密钥增强的方法的又一实施例的流程示
意图;
图11是本申请提供的GPRS***密钥增强的方法的又一实施例的流程示意图;
图12是本申请提供的GPRS***密钥增强的方法的又一实施例的流程示意图;
图13是本申请提供的SGSN设备的一实施例的结构示意图;
图14是本申请提供的SGSN设备中获得模块的一实施例的结构示意图;
图15是本申请提供的SGSN设备中获得模块的另一实施例的结构示意图;
图16是本申请提供的SGSN设备的另一实施例的结构示意图;
图17是本申请提供的UE的一实施例的结构示意图;
图18是本申请提供的UE中获取模块的一实施例的结构示意图;
图19是本申请提供的UE中获取模块的另一实施例的结构示意图;
图20是本申请提供的UE的另一实施例的结构示意图;
图21是本申请提供的HLR/HSS的一实施例的结构示意图;
图22是本申请提供的HLR/HSS的另一实施例的结构示意图;
图23是本申请提供的GPRS***的一实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供了一种GPRS***密钥增强的方法、SGSN设备、UE、HLR/HSS及GPRS***,可对SGSN和UE间的密钥进行增强,为SGSN和UE间的通信提供加密保护和完整性保护,以下将结合附图进行说明。
请参阅图1,图1是本申请提供的GPRS***密钥增强的方法的一实施例的流程示意图。如图1所示,该方法可包括如下步骤:
S101,SGSN接收UE发送的请求消息。
具体实施中,UE发送给SGSN(Serving GPRS Support Node,服务GPRS
节点)的请求消息可以是附着请求消息、路由更新消息或其他消息,例如服务请求消息。SGSN接收UE发送的请求消息后,可获取发送该请求消息的UE的标识。若该UE为第一类型UE,请求消息中可能携带UE类型指示信息。
本申请实施例中,UE通过USIM卡与网络通信,UE的标识可以是USIM卡的IMSI(International Mobile Subscriber Identification Number,国际移动用户识别码)。第一类型UE可以为物联网UE、机器通信(Machine To Machine,M2M)UE或其他高安全性UE。其中,物联网UE指的是具备信息传感功能和数据传输功能的用户设备,例如导览机、个人数字助理、条码采集器、数据采集终端和主要用于消费或转账的POS机等。机器通信UE指的是具备联网和通信能力,通过传感器、控制器等来实现“智能”属性,从而能与人、移动网络或其他机器进行信息交流的用户设备。
S102,所述SGSN从HLR/HSS获取认证向量,所述认证向量包含第一加密密钥和第一完整性密钥。
归属位置寄存器(Home Location Register,HLR)是GPRS***的永久数据库,存储了管理众多移动用户通信所需的信息,包括已注册的移动用户的身份信息、业务信息、服务授权等静态信息,以及用户的位置信息等动态信息。归属签约***HSS(Home Subscription System,HSS)是HLR的演进和升级,主要负责管理用户的签约数据及移动用户的位置信息。由于HSS与HLR在网络中功能类似,所存储数据有较多重复,通常对外呈现为HSS与HLR融合设备。本申请实施例中,HLR/HSS可以是HLR设备、HSS设备或HLR和HSS的融合设备。
本申请实施例中,SGSN向HLR/HSS获取的认证向量为认证向量五元组,其中包括随机数RAND、期望响应XRES、认证令牌AUTN、加密密钥CK和完整性密钥IK。
本申请实施例中,第一加密密钥为认证向量五元组中的加密密钥CK,第一完整性密钥为认证向量五元组中的完整性密钥IK。
S103,若所述SGSN确定所述UE为第一类型UE,则为所述UE选择一种加密算法和一种完整性算法,并将所选择的加密算法和完整性算法发送给所述UE。
在一些可行的实施方式中,SGSN可以将UE的标识发送给HLR/HSS,由HLR/HSS根据UE的标识来判断UE是否为第一类型UE,若SGSN接收到HLR/HSS发送的UE类型指示信息,则可根据所述UE类型指示信息确定UE为第一类型UE。
在另一些可行的实施方式中,若UE发送给SGSN的请求消息中携带有UE类型指示信息,SGSN可确定该UE为第一类型UE。
可选地,UE类型指示信息可通过特定信息元素(Information Element,IE)的存在性来指示UE为第一类型UE,例如,当SGSN接收到HLR/HSS或者UE发送的UE类型指示信息时,若UE类型指示信息中存在某一特定IE,SGSN则可确定UE为第一类型UE,否则可确定UE不是第一类型UE。或者,UE类型指示信息还可通过特定IE的取值来指示UE为第一类型UE,例如,当SGSN接收到HLR/HSS或者UE发送的UE类型指示信息时,若UE类型指示信息中某一特定IE的取值为1,SGSN可确定UE为第一类型UE,若该特定IE的取值为0,则SGSN可确定UE不是第一类型UE。
具体实施中,SGSN可以先从HLR/HSS获取认证向量,再确定UE为第一类型UE;也可以先确定UE为第一类型UE,再从HLR/HSS获取认证向量。
具体实施中,UE和SGSN各自配置了一些加密算法和完整性算法,UE向SGSN发送请求消息时,将自身支持的加密算法和完整性算法一并发送给SGSN,SGSN收到UE的请求消息时,从UE支持的加密算法和完整性算法中选择一种SGSN支持的加密算法以及一种SGSN支持的完整性算法。
在一些可行的实施方式中,SGSN选择的加密算法和完整性算法可用于和认证向量中的第一加密密钥、第一完整性密钥一起计算第二加密密钥和第二完整性密钥。此外,根据SGSN选择的加密算法和第二加密密钥,可以对通信消息进行加密,生成消息密文;根据SGSN选择的完整性算法和第二完整性密钥,可以计算得到消息鉴权码MAC,消息鉴权码MAC可用于验证通信消息的完整性。
可选地,当GPRS网络需要128位的第二加密密钥时,SGSN选择的加密算法可以是128-EEA1算法、128-EEA2算法、128-EEA3算法中任意一种;SGSN选择的完整性算法可以是128-EIA1算法、128-EIA2算法、128-EIA3算法中任
意一种。其中128-EEA1算法和128-EIA1算法使用SNOW 3G算法作为核心算法;128-EEA2算法和128-EIA2算法使用AES算法作为核心算法;128-EEA3算法和128-EIA3算法使用ZUC算法(祖冲之算法集)作为核心算法。
具体实施中,SGSN在将选择的加密算法和完整性算法发送给UE的同时,还可以将认证向量中的随机数RAND和认证令牌AUTN发送给UE,UE可以根据认证令牌AUTN对SGSN侧进行认证,以实现UE侧对网络侧的鉴权,还可以根据接收到的随机数RAND和认证令牌AUTN,利用f1-f5算法计算出第一加密密钥CK和第一完整性密钥IK。
为了对SGSN和UE之间的通信消息进行保护,需要SGSN和UE双方使用约定的密钥(即第二加密密钥和第二完整性密钥)和算法(即SGSN选择的加密算法和完整性算法)对通信消息进行加密,因此,SGSN选择了一种加密算法和一种完整性算法之后,需要将所选择的加密算法和完整性算法发送给UE,使得UE根据第一加密密钥CK和第一完整性密钥IK计算第二加密密钥和第二完整性密钥之后,与SGSN采用相同的加密算法和完整性算法、以及第二加密密钥和第二完整性密钥对通信消息进行加密。
S104,所述SGSN根据所述第一加密密钥和所述第一完整性密钥,获得第二加密密钥和第二完整性密钥。
本申请实施例中,SGSN选择了加密算法和完整性算法之后,可根据认证向量中的第一加密密钥和第二加密密钥,获得第二加密密钥和第二完整性密钥。第二加密密钥和第二完整性密钥是在第一加密密钥和第一完整性密钥基础上增强的密钥,其中第二加密密钥和SGSN所选择的加密算法可用于对SGSN和所述UE之间传输的消息进行机密性保护;第二完整性密钥和SGSN选择的完整性算法可用于对SGSN和所述UE之间传输的消息进行完整性保护。
可选地,SGSN可以仅根据第一加密密钥和第一完整性密钥来获得第二加密密钥和第二完整性密钥;或者,可以根据第一加密密钥、第一完整性密钥、所选择的加密算法以及所选择的完整性算法来获得第二加密密钥和第二完整性密钥。
具体实施中,步骤S104中将SGSN选择的加密算法和完整性算法发送给所述UE和步骤S105中SGSN根据所述认证向量中的第一加密密钥和第一完
整性密钥计算第二加密密钥和第二完整性密钥的顺序不分先后。
本申请实施例中,SGSN接收UE发送的请求消息,在确定UE为第一类型UE后,选择一种加密算法和一种完整性算法,从HLR/HSS获取认证向量,根据认证向量中包含的第一加密密钥和第一完整性密钥,获得增强的第二加密密钥和第二完整性密钥,并将所选择的加密算法和完整性算法发送给UE,使UE在计算第二加密密钥和第二完整性密钥之后,SGSN和UE双方可通过第二加密密钥、第二完整性密钥、SGSN选择的加密算法和完整性算法来对SGSN和UE之间的通信消息进行加密保护和完整性保护,增强第一类型UE在GPRS网络中通信的安全性。
请参阅图2,图2是本申请提供的GPRS***密钥增强的方法的另一实施例的流程示意图。如图2所示,该方法可包括如下步骤:
S201,SGSN接收UE发送的请求消息。
S202,所述SGSN从HLR/HSS获取认证向量,所述认证向量包含第一加密密钥和第一完整性密钥。
S203,若所述SGSN确定所述UE为第一类型UE,则为所述UE选择一种加密算法和一种完整性算法。
S204,所述SGSN将所选择的加密算法和完整性算法发送给所述UE。
本申请实施例中,步骤S201-S204的具体实施方式可参阅图1所示实施例的步骤S101-S103,在此不赘述。
S205,所述SGSN根据所述第一加密密钥和所述第一完整性密钥,计算中间密钥。
作为一种可行的实施方式,可以对第一加密密钥和第一完整性密钥进行运算,然后将运算结果作为密钥推衍函数KDF的输入参数来计算中间密钥。例如,中间密钥可以为Km=KDF(CK||IK),其中CK||IK表示对第一加密密钥CK和第一完整性密钥IK进行连接运算。
作为另一种可行的实施方式,所述中间密钥可直接采用现有的64位GPRS加密密钥Kc或现有的128位加密密钥Kc128,即可以直接将现有的GPRS加密密钥Kc(64位)作为中间密钥,或直接将现有的Kc128(128位)作为中间密钥。其中Kc和Kc128都是根据CK和IK计算生成的。
S206,所述SGSN根据所述中间密钥或者根据所述中间密钥和加密特征字符串计算第二加密密钥。
作为一种可行的实施方式,所述SGSN可以将所述中间密钥的第一预设比特位作为第二加密密钥。例如,若GPRS***需要64位的第二加密密钥,则可以直接将所述中间密钥的最高64位作为第二加密密钥;若GPRS***需要128位的第二加密密钥,则可以直接将所述中间密钥的最高128位作为第二加密密钥。在其他可选的实施方式中,也可以从所述中间密钥中任意选取所需位数的比特位作为第二加密密钥,本申请对此不做限定。
作为另一种可行的实施方式,所述SGSN可以根据所述中间密钥和加密特征字符串ciphering计算第二加密密钥。具体实施中,可以将中间密钥和加密特征字符串ciphering作为密钥推衍函数KDF的输入参数来计算第二加密密钥。例如:第二加密密钥可以通过Kcipher=KDF(Km,“ciphering”)计算得到。“ciphering”是加密特征字符串,可以通过编码产生。
在一些可行的实施方式中,GPRS***需要128位的第二加密密钥,可以从计算出的中间密钥Km中截取预设的128位(例如最高的128位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二加密密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的128位(例如最高的128位)作为第二加密密钥;或者,将中间密钥Kc128作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二加密密钥。
在一些可行的实施方式中,GPRS***需要64位的第二加密密钥,可以从计算出的中间密钥Km中截取预设的64位(例如最高的64位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二加密密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的64位(例如最高的64位)作为第二加密密钥;或者,可以将中间密钥Kc(64位)作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二加密密钥。
S207,所述SGSN根据所述中间密钥或者根据所述中间密钥和完整性特征字符串计算第二完整性密钥。
作为一种可行的实施方式,所述SGSN可以将所述中间密钥的第二预设比特位作为第二完整性密钥。例如,若GPRS***需要64位的第二完整性密钥,则可以直接将所述中间密钥的最低64位作为第二完整性密钥;若GPRS***需要128位的第二完整性密钥,则可以直接将所述中间密钥的最低128位作为第二完整性密钥。在其他可选的实施方式中,也可以从所述中间密钥中任意选取所需位数的比特位作为第二完整性密钥,本申请对此不做限定。
作为另一种可行的实施方式,所述SGSN可以根据所述中间密钥和完整性特征字符串integrity计算第二完整性密钥。具体实施中,可以将中间密钥和完整性特征字符串integrity作为密钥推衍函数KDF的输入参数来计算第二完整性密钥。例如:第二完整性密钥可以通过Kintegrity=KDF(Km,“integrity”)计算得到。“integrity”是完整性特征字符串,可以通过编码产生。
在一些可行的实施方式中,GPRS***需要128位的第二完整性密钥,可以从计算出的中间密钥Km中截取预设的128位(例如最高的128位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二完整性密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的128位(例如最高的128位)作为第二完整性密钥;或者,可以将中间密钥Kc128作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二完整性密钥。
在一些可行的实施方式中,GPRS***需要64位的第二完整性密钥,可以从计算出的中间密钥Km中截取预设的64位(例如最高的64位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二完整性密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的64位(例如最高的64位)作为第二完整性密钥;或者,可以将中间密钥Kc(64位)作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二完整性密钥。
本申请实施例中,加密特征字符串ciphering和完整性特征字符串integrity用于使计算出来的第二加密密钥和第二完整性密钥不同以便于区分,因此完整性特征字符串integrity可以是任意与加密特征字符串ciphering不一致的字符串。
具体实施中,步骤S204将SGSN选择的加密算法和完整性算法发送给所述UE和步骤S205、S206、S207计算中间密钥和第二加密密钥、第二完整性密钥的顺序不分先后。
本申请实施例中,SGSN接收UE发送的请求消息,在确定UE为第一类型UE后,选择一种加密算法和一种完整性算法,从HLR/HSS获取认证向量,根据认证向量中包含的第一加密密钥和第一完整性密钥,获得增强的第二加密密钥和第二完整性密钥,并将所选择的加密算法和完整性算法发送给UE,使UE在计算第二加密密钥和第二完整性密钥之后,SGSN和UE双方可通过第二加密密钥和第二完整性密钥、SGSN选择的加密算法和完整性算法来对SGSN和UE之间的通信消息进行加密保护和完整性保护,增强第一类型UE在GPRS网络中通信的安全性。
请参阅图3,图3是本申请提供的GPRS***密钥增强的方法的又一实施例的流程示意图。如图3所示,该方法可包括如下步骤:
S301,SGSN接收UE发送的请求消息。
S302,所述SGSN从HLR/HSS获取认证向量,所述认证向量包含第一加密密钥和第一完整性密钥。
S303,若所述SGSN确定所述UE为第一类型UE,则为所述UE选择一种加密算法和一种完整性算法。
S304,所述SGSN将所选择的加密算法和完整性算法发送给所述UE。
S305,所述SGSN根据所述第一加密密钥和所述第一完整性密钥,计算中间密钥。
本申请实施例中,步骤S301-S305的具体实施方式可参阅图2所示实施例的步骤S201-S205,在此不赘述。
S306,所述SGSN根据所述中间密钥、第一算法类型指示和所选择的加密算法的标识,计算第二加密密钥。
具体实施中,可以将中间密钥、第一算法类型指示和所选择的加密算法的标识作为密钥推衍函数KDF的输入参数来计算第二加密密钥。例如:第二加密密钥Kcipher可以通过Kcipher=KDF(Km,algorithm type distinguisher1,ciphering algorithm id)计算得到,其中Km为中间密钥,algorithm type distinguisher1为
第一算法类型指示,ciphering algorithm id为SGSN所选择的加密算法的标识。
在一些可行的实施方式中,GPRS***需要128位的第二加密密钥,可以从计算出的中间密钥Km中截取预设的128位(例如最高的128位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二加密密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的128位(例如最高的128位)作为第二加密密钥;或者,将中间密钥Kc128作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二加密密钥。
在一些可行的实施方式中,GPRS***需要64位的第二加密密钥,可以从计算出的中间密钥Km中截取预设的64位(例如最高的64位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二加密密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的64位(例如最高的64位)作为第二加密密钥;或者,可以将中间密钥Kc(64位)作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二加密密钥。
S307,所述SGSN根据所述中间密钥、第二算法类型指示和所选择的完整性算法的标识,计算第二完整性密钥。
具体实施中,可以将中间密钥、第二算法类型指示和所选择的完整性算法的标识作为密钥推衍函数KDF的输入参数来计算第二完整性密钥。例如:第二完整性密钥Kcipher可以通过Kintegrity=KDF(Km,algorithm type distinguisher2,integrity algorithm id)计算得到,其中Km为中间密钥,algorithm type distinguisher2为第二算法类型指示,integrity algorithm id为SGSN所选择的完整性算法的标识。
在一些可行的实施方式中,GPRS***需要128位的第二完整性密钥,可以从计算出的中间密钥Km中截取预设的128位(例如最高的128位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二完整性密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的128位(例如最高的128位)作为第二完整性密钥;或者,可以将中间密钥Kc128作为密钥推衍函数KDF的输入参数之一,
将密钥推衍函数KDF的输出作为第二完整性密钥。
在一些可行的实施方式中,GPRS***需要64位的第二完整性密钥,可以从计算出的中间密钥Km中截取预设的64位(例如最高的64位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二完整性密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的64位(例如最高的64位)作为第二完整性密钥;或者,可以将中间密钥Kc(64位)作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二完整性密钥。
本申请实施例中,第一算法类型指示用于指示当前参与运算的算法为加密类型的算法,第二算法类型指示用于指示当前参与运算的算法为完整性类型的算法,第一算法类型指示和第二算法类型指示的取值不相同。在一些可行的实施例中,第一算法类型指示和第二算法类型指示可包含相同的IE,两者通过IE的取值不同来区分。例如,第一算法类型指示和第二算法类型指示的IE均为algorithm type distinguisher,当algorithm type distinguisher=00时,指示加密类型的算法,当algorithm type distinguisher=01时,指示完整性类型的算法。
在一些可能的情况中,加密算法和完整性算法可能采用相同的标识,此时需要结合算法类型指示来唯一区分各个算法。例如,假设128-EEA1算法和128-EIA1均以1作为算法标识,当SGSN选择的加密算法和完整性算法分别为128-EEA1算法和128-EIA1算法时,通过第一算法类型指示和第二算法类型指示中IE的不同取值可以区分128-EEA1算法和128-EIA1算法,同时可以使计算出来的第二加密密钥和第二完整性密钥的值不相同,以区分第二加密密钥和第二完整性密钥。
具体实施中,步骤S304将SGSN选择的加密算法和完整性算法发送给所述UE和步骤S305、S306、S307计算中间密钥和第二加密密钥、第二完整性密钥的顺序不分先后。
本申请实施例中,SGSN接收UE发送的请求消息,在确定UE为第一类型UE后,选择一种加密算法和一种完整性算法,从HLR/HSS获取认证向量,根据认证向量中包含的第一加密密钥和第一完整性密钥,获得增强的第二加密密钥和第二完整性密钥,并将所选择的加密算法和完整性算法发送给UE,使
UE计算第二加密密钥和第二完整性密钥,通过第二加密密钥和第二完整性密钥对SGSN和UE之间的通信消息进行加密保护和完整性保护,增强第一类型UE在GPRS网络中通信的安全性。
请参阅图4,图4是本申请提供的GPRS***密钥增强的方法的又一实施例的流程示意图。如图4所示,该方法可包括如下步骤:
S401,SGSN接收UE发送的请求消息。
S402,所述SGSN从HLR/HSS获取认证向量,所述认证向量包含第一加密密钥和第一完整性密钥。
本申请实施例中,步骤S401-S402的具体实施方式可参阅图1所示实施例的步骤S101-S102,在此不赘述。
S403,所述SGSN确定所述UE为第一类型UE。
在一些可行的实施方式中,SGSN可以将UE的标识发送给HLR/HSS,由HLR/HSS根据UE的标识来判断UE是否为第一类型UE,若SGSN接收到HLR/HSS发送的UE类型指示信息,则可根据所述UE类型指示信息确定UE为第一类型UE。
在另一些可行的实施方式中,若UE发送给SGSN的请求消息中携带有UE类型指示信息,SGSN可确定该UE为第一类型UE。
可选地,SGSN可以通过UE类型指示信息中特定信息元素(Information Element,IE)的存在与否来确定UE是否为第一类型UE,例如,当UE类型指示信息中含有上述特定IE时,SGSN可确定UE为第一类型UE,当UE类型指示信息中不含上述特定IE时,SGSN可确定UE不是第一类型UE。或者,SGSN可以通过UE类型指示信息中某一IE的数据内容来确定UE是否为第一类型UE,例如,当上述某一IE的数据内容为1时,SGSN可确定UE为第一类型UE,当上述某一IE的数据内容为0时,SGSN可确定UE不是第一类型UE。
具体实施中,SGSN可以先从HLR/HSS获取认证向量,再确定UE为第一类型UE;也可以先确定UE为第一类型UE,再从HLR/HSS获取认证向量。
S404,所述SGSN为所述UE选择一种加密算法和一种完整性算法。
具体实施中,UE和SGSN各自配置了一些加密算法和完整性算法,UE
向SGSN发送请求消息时,将自身支持的加密算法和完整性算法一并发送给SGSN,SGSN收到UE的请求消息时,从UE支持的加密算法和完整性算法中选择一种SGSN支持的加密算法以及一种SGSN支持的完整性算法。
本申请实施例中,SGSN选择的加密算法和完整性算法可用于和认证向量中的第一加密密钥、第一完整性密钥一起计算第二加密密钥和第二完整性密钥。此外,根据SGSN选择的加密算法和生成的第二加密密钥,可以对通信消息进行加密,生成消息密文;根据SGSN选择的完整性算法和生成的第二完整性密钥,可以计算得到消息鉴权码MAC,消息鉴权码MAC可用于验证通信消息的完整性。
可选地,当GPRS网络需要128位的第二加密密钥时,SGSN选择的加密算法可以是128-EEA1算法、128-EEA2算法、128-EEA3算法中任意一种;SGSN选择的完整性算法可以是128-EIA1算法、128-EIA2算法、128-EIA3算法中任意一种。其中128-EEA1算法和128-EIA1算法使用SNOW 3G算法作为核心算法;128-EEA2算法和128-EIA2算法使用AES算法作为核心算法;128-EEA3算法和128-EIA3算法使用ZUC算法(祖冲之算法集)作为核心算法。
S405,所述SGSN根据所述第一加密密钥、第一算法类型指示和所选择的加密算法的标识,计算第二加密密钥。
具体地,SGSN可以将第一加密密钥、第一算法类型指示和所选择的加密算法的标识作为密钥推衍函数KDF的输入参数来计算第二加密密钥,例如:Kcipher=KDF(CK,algorithm type distinguisher1,ciphering algorithm id),其中CK为第一加密密钥,algorithm type distinguisher1为第一算法类型指示,ciphering algorithm id为SGSN所选择的的加密算法的标识。
可选地,若GPRS***需要64位的第二加密密钥,可以从计算出的Kcipher中取最高64位作为第二加密密钥;若GPRS***需要128位的第二加密密钥,可以从计算出的Kcipher中取最高128位作为第二加密密钥。在其他可行的实施方式中,也可以从计算出的Kcipher中任意选出所需位数作为第二加密密钥,本申请对此不做限定。
S406,所述SGSN根据所述第一完整性密钥、第二算法类型指示和所选择的完整性算法的标识,计算第二完整性密钥。
具体地,SGSN可以将第一完整性密钥IK、第二算法类型指示algorithm type distinguisher2和所选择的完整性算法的标识integrity algorithm id作为密钥推衍函数KDF的输入参数来计算第二完整性密钥,例如:Kintegrity=KDF(IK,algorithm type distinguisher2,integrity algorithm id),其中IK为第一完整性密钥,algorithm type distinguisher2为第二算法类型指示,integrity algorithm id为SGSN所选择的的完整性算法的标识。
可选地,若GPRS***需要64位的第二完整性密钥,可以从计算出的Kintegrity中取最高64位作为第二完整性密钥;若GPRS***需要128位的第二完整性密钥,可以从计算出的Kintegriy中取最高128位作为第二完整性密钥。在其他可行的实施方式中,也可以从计算出的Kintegrity中任意选出所需位数作为第二完整性密钥,本申请对此不做限定。
本申请实施例中,第一算法类型指示用于指示当前参与运算的算法为加密类型的算法,第二算法类型指示用于指示当前参与运算的算法为完整性类型的算法,第一算法类型指示和第二算法类型指示的取值不相同。在一些可行的实施例中,第一算法类型指示和第二算法类型指示可包含相同的IE,两者通过IE的取值不同来区分。例如,第一算法类型指示和第二算法类型指示的IE均为algorithm type distinguisher,当algorithm type distinguisher=00时,指示加密类型的算法,当algorithm type distinguisher=01时,指示完整性类型的算法。
在一些可能的情况中,加密算法和完整性算法可能采用相同的标识,此时需要结合算法类型指示来唯一区分各个算法。例如,假设128-EEA1算法和128-EIA1均以1作为算法标识,当SGSN选择的加密算法和完整性算法分别为128-EEA1算法和128-EIA1算法时,通过第一算法类型指示和第二算法类型指示的不同取值可以区分128-EEA1算法和128-EIA1算法,同时可以使计算出来的第二加密密钥和第二完整性密钥的值不相同,以区分第二加密密钥和第二完整性密钥。
S407,所述SGSN将所选择的加密算法和完整性算法发送给所述UE。
具体实施中,SGSN在将选择的加密算法和完整性算法发送给UE的同时,还可以将认证向量中的随机数RAND和认证令牌AUTN发送给UE,UE可以根据认证令牌AUTN对SGSN侧进行认证,即实现UE侧对网络侧的鉴
权,还可以根据接收到的随机数RAND和认证令牌AUTN,利用f1-f5算法计算出第一加密密钥CK和第一完整性密钥IK。
具体实施中,步骤S407将SGSN选择的加密算法和完整性算法发送给所述UE和步骤S405、S406中计算第二加密密钥、第二完整性密钥的顺序不分先后。
为了对SGSN和UE之间的通信消息进行保护,需要SGSN和UE双方使用约定的密钥(即第二加密密钥和第二完整性密钥)和算法(即SGSN选择的加密算法和完整性算法)对通信消息进行加密,因此,SGSN选择了一种加密算法和一种完整性算法之后,需要将所选择的加密算法和完整性算法发送给UE,使得UE根据第一加密密钥CK和第一完整性密钥IK计算第二加密密钥和第二完整性密钥之后,与SGSN采用的相同的加密算法和完整性算法、以及第二加密密钥和第二完整性密钥对通信消息进行加密。
本申请实施例中,SGSN接收UE发送的请求消息,在确定UE为第一类型UE后,选择一种加密算法和一种完整性算法,从HLR/HSS获取认证向量,根据认证向量中包含的第一加密密钥和第一完整性密钥,获得增强的第二加密密钥和第二完整性密钥,并将所选择的加密算法和完整性算法发送给UE,使UE计算第二加密密钥和第二完整性密钥,通过第二加密密钥和第二完整性密钥对SGSN和UE之间的通信消息进行加密保护和完整性保护,增强第一类型UE在GPRS网络中通信的安全性。
请参阅图5,图5是本申请提供的GPRS***密钥增强的方法的又一实施例的流程示意图。如图5所示,该方法可包括如下步骤:
S501,SGSN接收UE发送的请求消息。
S502,所述SGSN从HLR/HSS获取认证向量,所述认证向量包含第一加密密钥和第一完整性密钥。
本申请实施例中,步骤S501-S502的具体实施方式可参阅图1所示实施例的步骤S101-S102,在此不赘述。
S503,所述SGSN确定所述UE为第一类型UE。
S504,所述SGSN为所述UE选择一种加密算法和一种完整性算法。
本申请实施例中,步骤S503-S504的具体实施方式可参阅图3所示实施例
的步骤S303-S304,在此不赘述。
S505,所述SGSN将所述第一加密密钥或者所述第一加密密钥的预设比特位作为第二加密密钥。
在一些可行的实施方式中,第一加密密钥为128位密钥,GPRS***所需的第二加密密钥也为128位密钥,则可以直接将第一加密密钥作为第二加密密钥;若GPRS***所需的第二加密密钥为64位密钥,则可从第一加密密钥中选取64个预设比特位作为第二加密密钥,例如选取最高64位作为第二加密密钥。
S506,所述SGSN将所述第一完整性密钥或者所述第一完整性密钥的预设比特位作为第二完整性密钥。
在一些可行的实施方式中,第一完整性密钥为128位密钥,GPRS***所需的第二完整性密钥也为128位密钥,则可以直接将第一完整性密钥作为第二完整性密钥;若GPRS***所需的第二完整性密钥为64位密钥,则可从第一完整性密钥中选取64个预设比特位作为第二完整性密钥,例如选取最高64位作为第二完整性密钥。
本申请实施例中,根据第二加密密钥和SGSN选择的加密算法,可以对通信消息进行加密,生成消息密文;根据第二完整性密钥和SGSN选择的完整性算法,可以计算得到消息鉴权码MAC,消息鉴权码MAC可用于验证通信消息的完整性。
S507,所述SGSN将所选择的加密算法和完整性算法发送给所述UE。
具体实施中,SGSN在将选择的加密算法和完整性算法发送给UE的同时,还可以将认证向量中的随机数RAND和认证令牌AUTN发送给UE,UE可以根据认证令牌AUTN对SGSN侧进行认证,即实现UE侧对网络侧的鉴权,还可以根据接收到的随机数RAND和认证令牌AUTN,利用f1-f5算法计算出第一加密密钥CK和第一完整性密钥IK。
具体实施中,步骤S507将SGSN选择的加密算法和完整性算法发送给所述UE和步骤S505、S506的顺序不分先后。
为了对SGSN和UE之间的通信消息进行保护,需要SGSN和UE双方使用约定的密钥(即第二加密密钥和第二完整性密钥)和算法(即SGSN选择的
加密算法和完整性算法)对通信消息进行加密,因此,SGSN选择了一种加密算法和一种完整性算法之后,需要将所选择的加密算法和完整性算法发送给UE,使得UE根据第一加密密钥CK和第一完整性密钥IK计算第二加密密钥和第二完整性密钥之后,与SGSN采用的相同的加密算法和完整性算法、以及以及第二加密密钥和第二完整性密钥对通信消息进行加密。
本申请实施例中,SGSN接收UE发送的请求消息,在确定UE为第一类型UE后,选择一种加密算法和一种完整性算法,从HLR/HSS获取认证向量,根据认证向量中包含的第一加密密钥和第一完整性密钥,获得增强的第二加密密钥和第二完整性密钥,并将所选择的加密算法和完整性算法发送给UE,使UE在计算第二加密密钥和第二完整性密钥之后,SGSN和UE双方可通过第二加密密钥和第二完整性密钥、SGSN选择的加密算法和完整性算法来对SGSN和UE之间的通信消息进行加密保护和完整性保护,增强第一类型UE在GPRS网络中通信的安全性。
请参阅图6,图6是本申请提供的GPRS***密钥增强的方法的又一实施例的流程示意图。如图6所示,该方法可包括如下步骤:
S601,UE向SGSN发送请求消息。
具体实施中,UE发送给SGSN的请求消息可以是附着请求消息、路由更新消息或其他消息,例如服务请求消息。SGSN接收UE发送的请求消息后,可获取发送该请求消息的UE的标识。若该UE为第一类型UE,请求消息中可能携带UE类型指示信息。
本申请实施例中,UE通过USIM卡与网络通信,UE的标识可以是USIM卡的IMSI(International Mobile Subscriber Identification Number,国际移动用户识别码)。第一类型UE可包括物联网UE、机器通信(Machine To Machine,M2M)UE或其他高安全性UE。其中物联网UE指的是具备信息传感功能和数据传输功能的用户设备,例如导览机、个人数字助理、条码采集器、数据采集终端和主要用于消费或转账的POS机等。机器通信UE指的是具备联网和通信能力,通过传感器、控制器等来实现“智能”属性,从而能与人、移动网络或其他机器进行信息交流的用户设备。
本申请实施例以UE为第一类型UE为例进行说明,在一些可行的实施方
式中,所述UE向所述SGSN发送的请求消息中可包含UE类型指示信息,以使所述SGSN根据所述UE类型指示信息判定所述UE为第一类型UE。
可选地,UE类型指示信息可通过特定信息元素(Information Element,IE)的存在性来指示UE为第一类型UE,例如,当SGSN接收到HLR/HSS或者UE发送的UE类型指示信息时,若UE类型指示信息中存在某一特定IE,SGSN则可确定UE为第一类型UE,否则可确定UE不是第一类型UE。或者,UE类型指示信息还可通过特定IE的取值来指示UE为第一类型UE,例如,当SGSN接收到HLR/HSS或者UE发送的UE类型指示信息时,若UE类型指示信息中某一特定IE的取值为1,SGSN可确定UE为第一类型UE,若该特定IE的取值为0,则SGSN可确定UE不是第一类型UE。
具体实施中,UE和SGSN各自配置了一些加密算法和完整性算法,UE向SGSN发送请求消息时,将自身支持的加密算法和完整性算法一并发送给SGSN。
S602,所述UE接收所述SGSN发送的加密算法和完整性算法。
SGSN接收UE的请求消息之后,若确定上述UE是第一类型UE,SGSN从UE支持的加密算法和完整性算法中选择一种SGSN支持的加密算法以及一种SGSN支持的完整性算法。SGSN将选择的加密算法和完整性算法发送给UE,并根据认证向量中的第一加密密钥和第一完整性密钥,获得第二加密密钥和第二完整性密钥。
具体实施中,SGSN在将选择的加密算法和完整性算法发送给UE的同时,还可以将认证向量中的随机数RAND和认证令牌AUTN发送给UE。UE可以根据认证令牌AUTN对SGSN侧进行认证,以实现UE侧对网络侧的鉴权。UE还可以根据接收到的随机数RAND和认证令牌AUTN,利用f1-f5算法计算出第一加密密钥和第一完整性密钥,UE计算出的第一加密密钥和第一完整性密钥与SGSN从HLR/HSS获取的认证向量中的第一加密密钥和第一完整性密钥相同。SGSN向HLR/HSS获取的认证向量为认证向量五元组,其中包括随机数RAND、期望响应XRES、认证令牌AUTN、加密密钥CK和完整性密钥IK。
本申请实施例中,第一加密密钥为认证向量五元组中的加密密钥CK,第
一完整性密钥为认证向量五元组中的完整性密钥IK。
在一些可行的实施方式中,SGSN选择的加密算法和完整性算法可用于和第一加密密钥CK、第一完整性密钥IK一起计算第二加密密钥和第二完整性密钥。此外,根据加密算法和生成的第二加密密钥,可以对通信消息进行加密,生成消息密文;根据完整性算法和生成的第二完整性密钥,可以计算得到消息鉴权码MAC,消息鉴权码MAC可用于验证通信消息的完整性。
可选地,当GPRS网络需要128位的第二加密密钥时,SGSN选择的加密算法可以是128-EEA1算法、128-EEA2算法、128-EEA3算法中任意一种;SGSN选择的完整性算法可以是128-EIA1算法、128-EIA2算法、128-EIA3算法中任意一种。其中128-EEA1算法和128-EIA1算法使用SNOW 3G算法作为核心算法;128-EEA2算法和128-EIA2算法使用AES算法作为核心算法;128-EEA3算法和128-EIA3算法使用ZUC算法(祖冲之算法集)作为核心算法。
S603,所述UE根据第一加密密钥和第一完整性密钥,获取第二加密密钥和第二完整性密钥。
本申请实施例中,第二加密密钥和第二完整性密钥是在第一加密密钥和第一完整性密钥基础上增强的密钥。第二加密密钥和SGSN发送的加密算法用于对SGSN和所述UE之间传输的消息进行机密性保护,第二完整性密钥和SGSN发送的完整性算法用于对SGSN和所述UE之间传输的消息进行完整性保护。
可选地,UE可以仅根据第一加密密钥和第一完整性密钥来获取第二加密密钥和第二完整性密钥;或者,可以根据第一加密密钥、第一完整性密钥、SGSN发送的加密算法和完整性算法来获取第二加密密钥和第二完整性密钥。
获取第二加密密钥和第二完整性密钥之后,为了对SGSN和UE之间的通信消息进行保护,需要SGSN和UE双方使用约定的密钥(即第二加密密钥和第二完整性密钥)和算法(即SGSN发送的加密算法和完整性算法)对通信消息进行加密。
本申请实施例中,UE向SGSN发送请求消息,接收SGSN发送的加密算法和完整性算法,根据第一加密密钥和第一完整性密钥计算第二加密密钥和第二完整性密钥。SGSN和UE双方可通过第二加密密钥、第二完整性密钥、SGSN向UE发送的加密算法和完整性算法来对UE和SGSN之间的通信消息进行加
密保护和完整性保护,增强第一类型UE在GPRS网络中通信的安全性。
请参阅图7,图7是本申请提供的GPRS***密钥增强的方法的又一实施例的流程示意图。如图7所示,该方法可包括如下步骤:
S701,UE向SGSN发送请求消息。
S702,所述UE接收所述SGSN发送的加密算法和完整性算法。
本申请实施例中,步骤S701-S702的具体实施方式可参阅图6所示实施例的步骤S601-S602,在此不赘述。
S703,所述UE根据第一加密密钥和第一完整性密钥,计算中间密钥。
其中,UE接收SGSN发送的加密算法和完整性算法的同时,还接收SGSN发送的随机数RAND和认证令牌AUTN。在计算中间密钥之前,可先根据认证令牌AUTN和随机数RAND计算期望鉴权码XMAC,通过比较期望鉴权码XMAC与认证令牌AUTN中的消息鉴权码MAC是否相同来对SGSN侧进行认证。对SGSN侧的认证通过之后,UE根据SGSN发送的随机数RAND和认证令牌AUTN计算出第一加密密钥CK和第一完整性密钥IK,并计算随机数响应RES,以及将随机数响应RES发送给SGSN,以供SGSN侧对UE进行认证。
作为一种可行的实施方式,UE可以对第一加密密钥和第一完整性密钥进行运算,将运算结果作为密钥推衍函数KDF的输入参数来计算中间密钥。例如,中间密钥可以为Km=KDF(CK||IK),其中CK||IK表示对第一加密密钥CK和第一完整性密钥IK进行连接运算。
作为另一种可行的实施方式,所述中间密钥可直接采用现有的64位GPRS加密密钥Kc或现有的128位加密密钥Kc128,即可以直接将现有的GPRS加密密钥Kc(64位)作为中间密钥,或直接将现有的Kc128(128位)作为中间密钥。其中Kc和Kc128都是根据CK和IK计算生成的。
S704,所述UE根据所述中间密钥或者根据所述中间密钥和加密特征字符串计算第二加密密钥。
作为一种可行的实施方式,所述UE可以将所述中间密钥的第一预设比特位作为第二加密密钥。例如,若GPRS***需要64位的第二加密密钥,则可以直接将所述中间密钥的最高64位作为第二加密密钥;若GPRS***需要128
位的第二加密密钥,则可以直接将所述中间密钥的最高128位作为第二加密密钥。在其他可选的实施方式中,也可以从所述中间密钥中任意选取所需位数的比特位作为第二加密密钥,本申请对此不做限定。
作为另一种可行的实施方式,所述UE可以根据所述中间密钥和加密特征字符串ciphering计算第二加密密钥。具体实施中,可以将中间密钥和加密特征字符串ciphering作为密钥推衍函数KDF的输入参数来计算第二加密密钥。例如:第二加密密钥可以通过Kcipher=KDF(Km,“ciphering”)计算得到。“ciphering”是加密特征字符串,可以通过编码产生。
在一些可行的实施方式中,GPRS***需要128位的第二加密密钥,可以从计算出的中间密钥Km中截取预设的128位(例如最高的128位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二加密密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的128位(例如最高的128位)作为第二加密密钥;或者,可以将中间密钥Kc128作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二加密密钥。
在一些可行的实施方式中,GPRS***需要64位的第二加密密钥,可以从计算出的中间密钥Km中截取预设的64位(例如最高的64位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二加密密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的64位(例如最高的64位)作为第二加密密钥;或者,可以将中间密钥Kc(64位)作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二加密密钥。
S705,所述UE根据所述中间密钥或者根据所述中间密钥和完整性特征字符串计算第二完整性密钥。
作为一种可行的实施方式,所述UE可以将所述中间密钥的第二预设比特位作为第二完整性密钥。例如,若GPRS***需要64位的第二完整性密钥,则可以直接将所述中间密钥的最低64位作为第二完整性密钥;若GPRS***需要128位的第二完整性密钥,则可以直接将所述中间密钥的最低128位作为第二完整性密钥。可选地,也可以从所述中间密钥中任意选取所需位数的比特
位作为第二完整性密钥,本申请对此不做限定。
作为另一种可选的实施方式,所述UE可以根据所述中间密钥和完整性特征字符串integrity计算第二完整性密钥。具体实施中,可以将中间密钥和完整性特征字符串integrity作为密钥推衍函数KDF的输入参数来计算第二完整性密钥。例如:第二完整性密钥可以通过Kintegrity=KDF(Km,“integrity”)计算得到。“integrity”是完整性特征字符串,可以通过编码产生。
在一些可行的实施方式中,GPRS***需要128位的第二完整性密钥,可以从计算出的中间密钥Km中截取预设的128位(例如最高的128位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二完整性密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的128位(例如最高的128位)作为第二完整性密钥;或者,可以将中间密钥Kc128作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二完整性密钥。
在一些可行的实施方式中,GPRS***需要64位的第二完整性密钥,可以从计算出的中间密钥Km中截取预设的64位(例如最高的64位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二完整性密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的64位(例如最高的64位)作为第二完整性密钥;或者,可以将中间密钥Kc(64位)作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二完整性密钥。
本申请实施例中,加密特征字符串ciphering和完整性特征字符串integrity用于使计算出来的第二加密密钥和第二完整性密钥不同以便于区分,因此完整性特征字符串integrity可以是任意与加密特征字符串ciphering不一致的字符串。
本申请实施例中,UE向SGSN发送请求消息,接收SGSN发送的加密算法和完整性算法,根据第一加密密钥和第一完整性密钥计算第二加密密钥和第二完整性密钥。SGSN和UE双方可通过第二加密密钥、第二完整性密钥、SGSN向UE发送的加密算法和完整性算法来对UE和SGSN之间的通信消息进行加密保护和完整性保护,增强第一类型UE在GPRS网络中通信的安全性。
请参阅图8,图8是本申请提供的GPRS***密钥增强的方法的又一实施例的流程示意图。如图8所示,该方法可包括如下步骤:
S801,UE向SGSN发送请求消息。
S802,所述UE接收所述SGSN发送的加密算法和完整性算法。
S803,所述UE根据第一加密密钥和第一完整性密钥,计算中间密钥。
本申请实施例中,步骤S801-S803的具体实施方式可参阅图7所示实施例的步骤S701-S703,在此不赘述。
S804,所述UE根据所述中间密钥、第一算法类型指示和所述加密算法的标识,计算第二加密密钥。
具体实施中,可以将中间密钥、第一算法类型指示和所述加密算法的标识作为密钥推衍函数KDF的输入参数来计算第二加密密钥。例如:第二加密密钥Kcipher可以通过Kcipher=KDF(Km,algorithm type distinguisher1,ciphering algorithm id)计算得到,其中Km为中间密钥,algorithm type distinguisher1为第一算法类型指示,ciphering algorithm id为SGSN所选择的加密算法的标识。
在一些可行的实施方式中,GPRS***需要128位的第二加密密钥,可以从计算出的中间密钥Km中截取预设的128位(例如最高的128位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二加密密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的128位(例如最高的128位)作为第二加密密钥;或者,将中间密钥Kc128作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二加密密钥。
在一些可行的实施方式中,GPRS***需要64位的第二加密密钥,可以从计算出的中间密钥Km中截取预设的64位(例如最高的64位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二加密密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的64位(例如最高的64位)作为第二加密密钥;或者,可以将中间密钥Kc(64位)作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二加密密钥。
S805,所述UE根据所述中间密钥、第二算法类型指示和所述完整性算法
的标识,计算第二完整性密钥。
具体实施中,可以将中间密钥、第二算法类型指示和所述完整性算法的标识作为密钥推衍函数KDF的输入参数来计算第二完整性密钥。例如:第二完整性密钥Kcipher可以通过Kintegrity=KDF(Km,algorithm type distinguisher2,integrity algorithm id)计算得到,其中Km为中间密钥,algorithm type distinguisher2为第二算法类型指示,integrity algorithm id为SGSN所选择的完整性算法的标识。
在一些可行的实施方式中,GPRS***需要128位的第二完整性密钥,可以从计算出的中间密钥Km中截取预设的128位(例如最高的128位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二完整性密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的128位(例如最高的128位)作为第二完整性密钥;或者,可以将中间密钥Kc128作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二完整性密钥。
在一些可行的实施方式中,GPRS***需要64位的第二完整性密钥,可以从计算出的中间密钥Km中截取预设的64位(例如最高的64位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二完整性密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的64位(例如最高的64位)作为第二完整性密钥;或者,可以将中间密钥Kc(64位)作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二完整性密钥。
本申请实施例中,第一算法类型指示用于指示当前参与运算的算法为加密类型的算法,第二算法类型指示用于指示当前参与运算的算法为完整性类型的算法,第一算法类型指示和第二算法类型指示的取值不相同。在一些可行的实施例中,第一算法类型指示和第二算法类型指示可包含相同的IE,两者通过IE的取值不同来区分。例如,第一算法类型指示和第二算法类型指示的IE均为algorithm type distinguisher,当algorithm type distinguisher=00时,指示加密类型的算法,当algorithm type distinguisher=01时,指示完整性类型的算法。
在一些可能的情况中,加密算法和完整性算法可能采用相同的标识,此时
需要结合算法类型指示来唯一区分各个算法。例如,假设128-EEA1算法和128-EIA1均以1作为算法标识,当SGSN选择的加密算法和完整性算法分别为128-EEA1算法和128-EIA1算法时,通过第一算法类型指示和第二算法类型指示中IE的不同取值可以区分128-EEA1算法和128-EIA1算法,同时可以使计算出来的第二加密密钥和第二完整性密钥的值不相同,以区分第二加密密钥和第二完整性密钥。
本申请实施例中,UE向SGSN发送请求消息,接收SGSN发送的加密算法和完整性算法,根据第一加密密钥和第一完整性密钥获取第二加密密钥和第二完整性密钥。SGSN和UE双方可通过第二加密密钥、第二完整性密钥、SGSN向UE发送的加密算法和完整性算法来对UE和SGSN之间的通信消息进行加密保护和完整性保护,增强第一类型UE在GPRS网络中通信的安全性。
请参阅图9,图9是本申请提供的GPRS***密钥增强的方法的又一实施例的流程示意图。如图9所示,该方法可包括如下步骤:
S901,UE向SGSN发送请求消息。
S902,所述UE接收所述SGSN发送的加密算法和完整性算法。
本申请实施例中,步骤S901-S902的具体实施方式可参阅图6所示实施例的步骤S601-S602,在此不赘述。
S903,所述UE根据第一加密密钥、第一算法类型指示和所述加密算法的标识计算第二加密密钥。
其中,UE接收SGSN发送的加密算法和完整性算法的同时,还接收SGSN发送的随机数RAND和认证令牌AUTN。在计算第二加密密钥或第二完整性密钥之前,UE可先根据认证令牌AUTN和随机数RAND计算期望鉴权码XMAC,通过比较期望鉴权码XMAC与认证令牌AUTN中的消息鉴权码MAC是否相同来对SGSN侧进行认证。对SGSN侧的认证通过之后,UE根据SGSN发送的随机数RAND和认证令牌AUTN计算出第一加密密钥CK和第一完整性密钥IK,并计算随机数响应RES,以及将随机数响应RES发送给SGSN,以供SGSN侧对UE进行认证。
具体地,UE可以将第一加密密钥、第一算法类型指示和所选择的加密算法的标识作为密钥推衍函数KDF的输入参数来计算第二加密密钥,例如:
Kcipher=KDF(CK,algorithm type distinguisher1,ciphering algorithm id),其中CK为第一加密密钥,algorithm type distinguisher1为第一算法类型指示,ciphering algorithm id为SGSN所选择的的加密算法的标识。
可选地,若GPRS***需要64位的第二加密密钥,可以从计算出的Kcipher中取最高64位作为第二加密密钥;若GPRS***需要128位的第二加密密钥,可以从计算出的Kcipher中取最高128位作为第二加密密钥。在其他可行的实施方式中,也可以从计算出的Kcipher中任意选出所需位数作为第二加密密钥,本申请对此不做限定。
S904,所述UE根据第一完整性密钥、第二算法类型指示和所述完整性算法的标识,计算第二完整性密钥。
具体地,UE可以将第一完整性密钥IK、第二算法类型指示algorithm type distinguisher2和所选择的完整性算法的标识integrity algorithm id作为密钥推衍函数KDF的输入参数来计算第二完整性密钥,例如:Kintegrity=KDF(IK,algorithm type distinguisher2,integrity algorithm id),其中IK为第一完整性密钥,algorithm type distinguisher2为第二算法类型指示,integrity algorithm id为SGSN所选择的的完整性算法的标识。
可选地,若GPRS***需要64位的第二完整性密钥,可以从计算出的Kintegrity中取最高64位作为第二完整性密钥;若GPRS***需要128位的第二完整性密钥,可以从计算出的Kintegrity中取最高128位作为第二完整性密钥。在其他可行的实施方式中,也可以从计算出的Kintegrity中任意选出所需位数作为第二加密密钥,本申请对此不做限定。
本申请实施例中,第一算法类型指示用于指示当前参与运算的算法为加密类型的算法,第二算法类型指示用于指示当前参与运算的算法为完整性类型的算法,第一算法类型指示和第二算法类型指示的取值不相同。在一些可行的实施例中,第一算法类型指示和第二算法类型指示可包含相同的IE,两者通过IE的取值不同来区分。例如,第一算法类型指示和第二算法类型指示的IE均为algorithm type distinguisher,当algorithm type distinguisher=00时,指示加密类型的算法,当algorithm type distinguisher=01时,指示完整性类型的算法。
在一些可能的情况中,加密算法和完整性算法可能采用相同的标识,此时
需要结合算法类型指示来唯一区分各个算法。例如,假设128-EEA1算法和128-EIA1均以1作为算法标识,当SGSN选择的加密算法和完整性算法分别为128-EEA1算法和128-EIA1算法时,通过第一算法类型指示和第二算法类型指示的不同取值可以区分128-EEA1算法和128-EIA1算法,同时可以使计算出来的第二加密密钥和第二完整性密钥的值不相同,以区分第二加密密钥和第二完整性密钥。
本申请实施例中,UE向SGSN发送请求消息,接收SGSN发送的加密算法和完整性算法,根据第一加密密钥和第一完整性密钥计算第二加密密钥和第二完整性密钥。SGSN和UE双方可通过第二加密密钥、第二完整性密钥、SGSN向UE发送的加密算法和完整性算法来对UE和SGSN之间的通信消息进行加密保护和完整性保护,增强第一类型UE在GPRS网络中通信的安全性。
请参阅图10,图10是本申请提供的GPRS***密钥增强的方法的又一实施例的流程示意图。如图10所示,该方法可包括如下步骤:
S1001,UE向SGSN发送请求消息。
S1002,所述UE接收所述SGSN发送的加密算法和完整性算法。
本申请实施例中,步骤S1001-S1002的具体实施方式可参阅图6所示实施例的步骤S601-S602,在此不赘述。
S1003,所述UE将第一加密密钥或者所述第一加密密钥的预设比特位作为第二加密密钥。
其中,UE接收SGSN发送的加密算法和完整性算法的同时,还接收SGSN发送的随机数RAND和认证令牌AUTN。在计算第二加密密钥或第二完整性密钥之前,UE可先根据认证令牌AUTN和随机数RAND计算期望鉴权码XMAC,通过比较期望鉴权码XMAC与认证令牌AUTN中的消息鉴权码MAC是否相同来对SGSN侧进行认证。对SGSN侧的认证通过之后,UE根据SGSN发送的随机数RAND和认证令牌AUTN计算出第一加密密钥CK和第一完整性密钥IK,并计算随机数响应RES,以及将随机数响应RES发送给SGSN,以供SGSN侧对UE进行认证。
在一些可行的实施方式中,第一加密密钥为128位密钥,GPRS***所需的第二加密密钥也为128位密钥,则可以直接将第一加密密钥作为第二加密密
钥;若GPRS***所需的第二加密密钥为64位密钥,则可从第一加密密钥中选取64个预设比特位作为第二加密密钥,例如选取最高64位作为第二加密密钥。
S1004,所述UE将第一完整性密钥或者所述第一完整性密钥的预设比特位作为第二完整性密钥。
在一些可行的实施方式中,第一完整性密钥为128位密钥,GPRS***所需的第二完整性密钥也为128位密钥,则可以直接将第一完整性密钥作为第二完整性密钥;若GPRS***所需的第二完整性密钥为64位密钥,则可从第一完整性密钥中选取64个预设比特位作为第二完整性密钥,例如选取最高64位作为第二完整性密钥。
本申请实施例中,UE向SGSN发送请求消息,接收SGSN发送的加密算法和完整性算法,根据第一加密密钥和第一完整性密钥计算第二加密密钥和第二完整性密钥。SGSN和UE双方可通过第二加密密钥、第二完整性密钥、SGSN向UE发送的加密算法和完整性算法来对UE和SGSN之间的通信消息进行加密保护和完整性保护,增强第一类型UE在GPRS网络中通信的安全性。
请参阅图11,图11是本申请提供的GPRS***密钥增强的方法的又一实施例的流程示意图。如图11所示,该方法可包括如下步骤:
S1101,HLR/HSS接收SGSN发送的UE的标识。
归属位置寄存器(Home Location Register,HLR)是GPRS***的永久数据库,存储了管理众多移动用户通信所需的信息,包括已注册的移动用户的身份信息、业务信息、服务授权等静态信息,以及用户的位置信息等动态信息。归属签约***HSS(Home Subscription System,HSS)是HLR的演进和升级,主要负责管理用户的签约数据及移动用户的位置信息。由于HSS与HLR在网络中功能类似,所存储数据有较多重复,通常对外呈现为HSS与HLR融合设备。本申请实施例中,HLR/HSS可以是HLR设备、HSS设备或HLR和HSS的融合设备。
本申请实施例中,UE通过USIM卡与网络通信,UE的标识可以是USIM卡的IMSI(International Mobile Subscriber Identification Number,国际移动用户识别码)。
S1102,所述HLR/HSS根据所述UE的标识确定所述UE为第一类型UE。
具体实施中,HLR/HSS存储着众多UE的各种信息,在接收SGSN发送的UE的标识后,HLR/HSS可查询所述UE的相关信息,以确定所述UE是否为第一类型UE。本申请实施例以所述UE为第一类型UE为例进行说明。
本申请实施例中,第一类型UE可包括物联网UE、机器通信(Machine To Machine,M2M)UE或其他高安全性UE。其中物联网UE指的是具备信息传感功能和数据传输功能的用户设备,例如导览机、个人数字助理、条码采集器、数据采集终端和主要用于消费或转账的POS机等。机器通信UE指的是具备联网和通信能力,通过传感器、控制器等来实现“智能”属性,从而能与人、移动网络或其他机器进行信息交流的用户设备。
S1103,所述HLR/HSS向所述SGSN发送UE类型指示信息,所述UE类型指示信息用于指示所述UE为第一类型UE。
可选地,UE类型指示信息可通过特定信息元素(Information Element,IE)的存在性来指示UE为第一类型UE,例如,当SGSN接收到HLR/HSS或者UE发送的UE类型指示信息时,若UE类型指示信息中存在某一特定IE,SGSN则可确定UE为第一类型UE,否则可确定UE不是第一类型UE。或者,UE类型指示信息还可通过特定IE的取值来指示UE为第一类型UE,例如,当SGSN接收到HLR/HSS或者UE发送的UE类型指示信息时,若UE类型指示信息中某一特定IE的取值为1,SGSN可确定UE为第一类型UE,若该特定IE的取值为0,则SGSN可确定UE不是第一类型UE。
本申请实施例中,HLR/HSS还可以向SGSN发送认证向量,认证向量中包括第一加密密钥和第一完整性密钥。
在一些可行的实施方式中,上述认证向量可以为认证向量五元组,其中包括随机数RAND、期望响应XRES、认证令牌AUTN、加密密钥CK和完整性密钥IK。第一加密密钥即为认证向量五元组中的加密密钥CK,第一完整性密钥即为认证向量五元组中的完整性密钥IK。
本申请实施例中,HLR/HSS可接收SGSN发送的UE的标识,根据UE的标识确定UE为第一类型UE,并向SGSN发送UE类型指示信息,以指示该UE为第一类型UE,使SGSN可以和第一类型UE之间进行针对第一类型
UE的密钥增强处理,提高第一类型UE在GPRS网络中通信的安全性。
请参阅图12,图12是本申请提供的GPRS***密钥增强的方法的又一实施例的流程示意图。如图12所示,该方法可包括如下步骤:
S1201,UE向SGSN发送请求消息。
S1202,SGSN将UE的标识发送给HLR/HSS。
S1203,HLR/HSS根据UE的标识确定UE为第一类型UE。
S1204,HLR/HSS发送UE类型指示信息和认证向量给SGSN。
S1205,SGSN根据UE类型指示信息和UE支持的算法选择加密算法和完整性算法,并获得第二加密密钥和第二完整性密钥。
S1206,SGSN向UE发送认证和加密请求,其中包括SGSN选择的加密算法和完整性算法、随机数RAND和认证令牌AUTN。
S1207,UE对SGSN侧进行认证,认证通过后获取第二加密密钥和第二完整性密钥。
S1208,UE向SGSN发送认证和加密相应RES。
S1209,SGSN验证RES值,对UE侧进行认证。
本申请实施例中,UE向SGSN发送请求消息,SGSN在判断UE为第一类型UE之后,选择加密算法和完整性算法,UE和SGSN双方根据第一加密密钥和第一完整性密钥,计算增强的第二加密密钥和第二完整性密钥,通过第二加密密钥、第二完整性密钥以及SGSN选择的加密算法和完整性算法对UE和SGSN之间的通信消息进行加密保护和完整性保护,增强第一类型UE在GPRS网络中通信的安全性。
请参阅图13,图13是本申请提供的SGSN设备的一实施例的结构示意图。如图13所示,该SGSN设备可包括接收模块1301、获取模块1302、选择模块1303和获得模块1304,其中:
接收模块1301,用于接收UE发送的请求消息。
具体实施中,UE发送给SGSN的请求消息可以是附着请求消息、路由更新消息或其他消息,例如服务请求消息。SGSN接收UE发送的请求消息后,可获取发送该请求消息的UE的标识。若该UE为第一类型UE,请求消息中可能携带UE类型指示信息。
本申请实施例中,UE通过USIM卡与网络通信,UE的标识可以是USIM卡的IMSI(International Mobile Subscriber Identification Number,国际移动用户识别码)。第一类型UE可包括物联网UE、机器通信(Machine To Machine,M2M)UE或其他高安全性UE。其中物联网UE指的是具备信息传感功能和数据传输功能的用户设备,例如导览机、个人数字助理、条码采集器、数据采集终端和主要用于消费或转账的POS机等。机器通信UE指的是具备联网和通信能力,通过传感器、控制器等来实现“智能”属性,从而能与人、移动网络或其他机器进行信息交流的用户设备。
获取模块1302,用于从HLR/HSS获取认证向量,所述认证向量包含第一加密密钥和第一完整性密钥。
归属位置寄存器(Home Location Register,HLR)是GPRS***的永久数据库,存储了管理众多移动用户通信所需的信息,包括已注册的移动用户的身份信息、业务信息、服务授权等静态信息,以及用户的位置信息等动态信息。归属签约***HSS(Home Subscription System,HSS)是HLR的演进和升级,主要负责管理用户的签约数据及移动用户的位置信息。由于HSS与HLR在网络中功能类似,所存储数据有较多重复,通常对外呈现为HSS与HLR融合设备。本申请实施例中,HLR/HSS可以是HLR设备、HSS设备或HLR和HSS的融合设备。
本申请实施例中,SGSN向HLR/HSS获取的认证向量为认证向量五元组,其中包括随机数RAND、期望响应XRES、认证令牌AUTN、加密密钥CK和完整性密钥IK。
本申请实施例中,第一加密密钥为认证向量五元组中的加密密钥CK,第一完整性密钥为认证向量五元组中的完整性密钥IK。
选择模块1303,用于在所述SGSN确定所述UE为第一类型UE时,为所述UE选择一种加密算法和一种完整性算法,并将所选择的加密算法和完整性算法发送给所述UE。
在一些可行的实施方式中,SGSN设备还可包括发送模块和第一确定模块(未图示),其中:
发送模块,可用于将所述UE的标识发送给HLR/HSS,以使所述HLR/HSS
根据所述UE的标识判断所述UE是否为第一类型UE,并向所述SGSN发送UE类型指示信息,所述UE类型指示信息用于指示所述UE为第一类型UE;
第一确定模块,可用于接收所述HLR/HSS发送的所述UE类型指示信息,确定所述UE为第一类型UE。
在一些可行的实施方式中,SGSN设备还可包括第二确定模块(未图示),第二确定模块可用于在所述请求消息包含UE类型指示信息时,确定所述UE为第一类型UE,其中,所述UE类型指示信息用于指示所述UE为第一类型UE。
在一些可行的实施方式中,SGSN设备也可同时包括发送模块、第一确定模块和第二确定模块。
可选地,UE类型指示信息可通过特定信息元素(Information Element,IE)的存在性来指示UE为第一类型UE,例如,当SGSN接收到HLR/HSS或者UE发送的UE类型指示信息时,若UE类型指示信息中存在某一特定IE,SGSN则可确定UE为第一类型UE,否则可确定UE不是第一类型UE。或者,UE类型指示信息还可通过特定IE的取值来指示UE为第一类型UE,例如,当SGSN接收到HLR/HSS或者UE发送的UE类型指示信息时,若UE类型指示信息中某一特定IE的取值为1,SGSN可确定UE为第一类型UE,若该特定IE的取值为0,则SGSN可确定UE不是第一类型UE。
具体实施中,SGSN可以先从HLR/HSS获取认证向量,再确定UE为第一类型UE;SGSN也可以先确定UE为第一类型UE,再从HLR/HSS获取认证向量。
具体实施中,UE和SGSN各自配置了一些加密算法和完整性算法,UE向SGSN发送请求消息时,将自身支持的加密算法和完整性算法一并发送给SGSN,SGSN收到UE的请求消息时,从UE支持的加密算法和完整性算法中选择一种SGSN支持的加密算法以及一种SGSN支持的完整性算法。
在一些可行的实施方式中,SGSN选择的加密算法和完整性算法可用于和认证向量中的第一加密密钥、第一完整性密钥一起计算第二加密密钥和第二完整性密钥。此外,根据SGSN选择的加密算法和第二加密密钥,可以对通信消息进行加密,生成消息密文;根据SGSN选择的完整性算法和第二完整性密钥,
可以计算得到消息鉴权码MAC,消息鉴权码MAC可用于验证通信消息的完整性。
可选地,当GPRS网络需要128位的第二加密密钥时,SGSN选择的加密算法可以是128-EEA1算法、128-EEA2算法、128-EEA3算法中任意一种;SGSN选择的完整性算法可以是128-EIA1算法、128-EIA2算法、128-EIA3算法中任意一种。其中128-EEA1算法和128-EIA1算法使用SNOW 3G算法作为核心算法;128-EEA2算法和128-EIA2算法使用AES算法作为核心算法;128-EEA3算法和128-EIA3算法使用ZUC算法(祖冲之算法集)作为核心算法。
具体实施中,SGSN在将选择的加密算法和完整性算法发送给UE的同时,还可以将认证向量中的随机数RAND和认证令牌AUTN发送给UE,UE可以根据认证令牌AUTN对SGSN侧进行认证,以实现UE侧对网络侧的鉴权,还可以根据接收到的随机数RAND和认证令牌AUTN,利用f1-f5算法计算出第一加密密钥CK和第一完整性密钥IK。
为了对SGSN和UE之间的通信消息进行保护,需要SGSN和UE双方使用约定的密钥(即第二加密密钥和第二完整性密钥)和算法(即SGSN选择的加密算法和完整性算法)对通信消息进行加密,因此,SGSN选择了一种加密算法和一种完整性算法之后,需要将所选择的加密算法和完整性算法发送给UE,使得UE根据第一加密密钥CK和第一完整性密钥IK计算第二加密密钥和第二完整性密钥之后,与SGSN采用相同的加密算法和完整性算法、以及第二加密密钥和第二完整性密钥对通信消息进行加密。
获得模块1304,用于根据所述第一加密密钥和所述第一完整性密钥,获得第二加密密钥和第二完整性密钥。
本申请实施例中,SGSN选择了加密算法和完整性算法之后,根据认证向量中的第一加密密钥和第二加密密钥计算第二加密密钥和第二完整性密钥,其中第一加密密钥为认证向量五元组中的加密密钥CK,第一完整性密钥为认证向量五元组中的完整性密钥IK。第二加密密钥和第二完整性密钥是在第一加密密钥和第一完整性密钥基础上增强的密钥,其中第二加密密钥和SGSN所选择的加密算法可用于对SGSN和所述UE之间传输的消息进行机密性保护;第二完整性密钥和SGSN选择的完整性算法可用于对SGSN和所述UE之间传输
的消息进行完整性保护。
可选地,SGSN可以仅根据第一加密密钥和第一完整性密钥来计算第二加密密钥和第二完整性密钥;或者,可以根据第一加密密钥、第一完整性密钥、所选择的加密算法以及所选择的完整性算法来计算第二加密密钥和第二完整性密钥。
具体实施中,选择模块1303将SGSN选择的加密算法和完整性算法发送给所述UE和获得模块1304根据所述认证向量中的第一加密密钥和第一完整性密钥获得第二加密密钥和第二完整性密钥的顺序可以不分先后。
本申请实施例中,SGSN接收UE发送的请求消息,在确定UE为第一类型UE后,选择一种加密算法和一种完整性算法,从HLR/HSS获取认证向量,根据认证向量中包含的第一加密密钥和第一完整性密钥,获得增强的第二加密密钥和第二完整性密钥,并将所选择的加密算法和完整性算法发送给UE,使UE在计算第二加密密钥和第二完整性密钥之后,SGSN和UE双方可通过第二加密密钥、第二完整性密钥、SGSN选择的加密算法和完整性算法来对SGSN和UE之间的通信消息进行加密保护和完整性保护,增强第一类型UE在GPRS网络中通信的安全性。
下面将结合附图14-附图15,对图13所示的获得模块1304的结构和功能进行详细介绍。
在一些可行的实施方式中,如图14所示,获得模块1304可包括第一计算单元13041、第二计算单元13042和第三计算单元13043,其中:
第一计算单元13041,用于根据所述第一加密密钥和所述第一完整性密钥,计算中间密钥。
作为一种可行的实施方式,第一计算单元13041可以对第一加密密钥和第一完整性密钥进行运算,然后将运算结果作为密钥推衍函数KDF的输入参数来计算中间密钥。例如,中间密钥可以为Km=KDF(CK||IK),其中CK||IK表示对第一加密密钥CK和第一完整性密钥IK进行连接运算。
作为另一种可行的实施方式,所述中间密钥可直接采用现有的64位GPRS加密密钥Kc或现有的128位加密密钥Kc128,即第一计算单元13041可以直接将现有的GPRS加密密钥Kc(64位)作为中间密钥,或直接将现有的Kc128
(128位)作为中间密钥。其中Kc和Kc128都是根据CK和IK计算生成的。
第二计算单元13042,用于根据所述中间密钥和加密特征字符串,计算第二加密密钥。
具体实施中,可以将中间密钥和加密特征字符串ciphering作为密钥推衍函数KDF的输入参数来计算第二加密密钥。例如:第二加密密钥可以通过Kcipher=KDF(Km,“ciphering”)计算得到。“ciphering”是加密特征字符串,可以通过编码产生。
在一些可行的实施方式中,GPRS***需要128位的第二加密密钥,可以从计算出的中间密钥Km中截取预设的128位(例如最高的128位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二加密密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的128位(例如最高的128位)作为第二加密密钥;或者,将中间密钥Kc128作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二加密密钥。
在一些可行的实施方式中,GPRS***需要64位的第二加密密钥,可以从计算出的中间密钥Km中截取预设的64位(例如最高的64位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二加密密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的64位(例如最高的64位)作为第二加密密钥;或者,可以将中间密钥Kc(64位)作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二加密密钥。
第三计算单元13043,用于根据所述中间密钥和完整性特征字符串计算第二完整性密。
具体实施中,可以将中间密钥和完整性特征字符串integrity作为密钥推衍函数KDF的输入参数来计算第二完整性密钥。例如:第二完整性密钥可以通过Kintegrity=KDF(Km,“integrity”)计算得到。“integrity”是完整性特征字符串,可以通过编码产生。
在一些可行的实施方式中,GPRS***需要128位的第二完整性密钥,可以从计算出的中间密钥Km中截取预设的128位(例如最高的128位)作为密
钥推衍函数KDF的输入参数之一,将根据Km的预设128位计算得到的Kintegrity作为第二完整性密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在计算出的Kintegrity中截取预设的128位(例如最高的128位)作为第二完整性密钥;或者,可以将中间密钥Kc128作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二完整性密钥。
在一些可行的实施方式中,GPRS***需要64位的第二完整性密钥,可以从计算出的中间密钥Km中截取预设的64位(例如最高的64位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二完整性密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的64位(例如最高的64位)作为第二完整性密钥;或者,可以将中间密钥Kc(64位)作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二完整性密钥。
本申请实施例中,加密特征字符串ciphering和完整性特征字符串integrity用于使计算出来的第二加密密钥和第二完整性密钥不同以便于区分,因此完整性特征字符串integrity可以是任意与加密特征字符串ciphering不一致的字符串。
在一些可行的实施方式中,如图14所示,获得模块1304可包括第一计算单元13041、第二计算单元13042和第三计算单元13043,其中:
第一计算单元13041,用于根据所述第一加密密钥和所述第一完整性密钥,计算中间密钥。
作为一种可行的实施方式,第一计算单元1041可以对第一加密密钥和第一完整性密钥进行运算,然后将运算结果作为密钥推衍函数KDF的输入参数来计算中间密钥。例如,中间密钥可以为Km=KDF(CK||IK),其中CK||IK表示对第一加密密钥CK和第一完整性密钥IK进行连接运算。
作为另一种可行的实施方式,第一计算单元1041可以直接将现有的GPRS加密密钥Kc(64位)作为中间密钥,或直接将现有的Kc128(128位)作为中间密钥。其中Kc和Kc128都是根据CK和IK计算生成的。
第二计算单元13042,用于根据所述中间密钥、第一算法类型指示和所选
择的加密算法的标识,计算所述第二加密密钥。
具体实施中,第二计算单元1042可以将中间密钥、第一算法类型指示和所选择的加密算法的标识作为密钥推衍函数KDF的输入参数来计算第二加密密钥。例如:第二加密密钥Kcipher可以通过Kcipher=KDF(Km,algorithm type distinguisher1,ciphering algorithm id)计算得到,其中Km为中间密钥,algorithm type distinguisher1为第一算法类型指示,ciphering algorithm id为SGSN所选择的加密算法的标识。
在一些可行的实施方式中,GPRS***需要128位的第二加密密钥,可以从计算出的中间密钥Km中截取预设的128位(例如最高的128位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二加密密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的128位(例如最高的128位)作为第二加密密钥;或者,将中间密钥Kc128作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二加密密钥。
在一些可行的实施方式中,GPRS***需要64位的第二加密密钥,可以从计算出的中间密钥Km中截取预设的64位(例如最高的64位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二加密密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的64位(例如最高的64位)作为第二加密密钥;或者,可以将中间密钥Kc(64位)作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二加密密钥。
第三计算单元13043,用于根据所述中间密钥、第二算法类型指示和所选择的完整性算法的标识,计算所述第二完整性密钥,其中所述第一算法类型指示和所述第二算法类型指示的取值不相同。
具体实施中,第三计算单元13043可以将中间密钥、第二算法类型指示和所选择的完整性算法的标识作为密钥推衍函数KDF的输入参数来计算第二完整性密钥。例如:第二完整性密钥Kcipher可以通过Kintegrity=KDF(Km,algorithm type distinguisher2,integrity algorithm id)计算得到,其中Km为中间密钥,algorithm type distinguisher2为第二算法类型指示,integrity algorithm id为
SGSN所选择的完整性算法的标识。
在一些可行的实施方式中,GPRS***需要128位的第二完整性密钥,可以从计算出的中间密钥Km中截取预设的128位(例如最高的128位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二完整性密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的128位(例如最高的128位)作为第二完整性密钥;或者,可以将中间密钥Kc128作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二完整性密钥。
在一些可行的实施方式中,GPRS***需要64位的第二完整性密钥,可以从计算出的中间密钥Km中截取预设的64位(例如最高的64位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二完整性密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的64位(例如最高的64位)作为第二完整性密钥;或者,可以将中间密钥Kc(64位)作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二完整性密钥。
本申请实施例中,第一算法类型指示用于指示当前参与运算的算法为加密类型的算法,第二算法类型指示用于指示当前参与运算的算法为完整性类型的算法。在一些可行的实施例中,第一算法类型指示和第二算法类型指示可包含相同的IE,两者通过IE的取值不同来区分。例如,第一算法类型指示和第二算法类型指示的IE均为algorithm type distinguisher,当algorithm type distinguisher=00时,指示加密类型的算法,当algorithm type distinguisher=01时,指示完整性类型的算法。
在一些可能的情况中,加密算法和完整性算法可能采用相同的标识,此时需要结合算法类型指示来唯一区分各个算法。例如,假设128-EEA1算法和128-EIA1均以1作为算法标识,当SGSN选择的加密算法和完整性算法分别为128-EEA1算法和128-EIA1算法时,通过第一算法类型指示和第二算法类型指示中IE的不同取值可以区分128-EEA1算法和128-EIA1算法,同时可以使计算出来的第二加密密钥和第二完整性密钥的值不相同,以区分第二加密密钥和第二完整性密钥。
在一些可行的实施方式中,如图15所示,获得模块1304可包括第四计算单元13044和第五计算单元13045,其中:
第四计算单元13044,用于根据所述第一加密密钥、第一算法类型指示和所选择的加密算法的标识,计算第二加密密钥。
具体地,第四计算单元13044可以将第一加密密钥、第一算法类型指示和所选择的加密算法的标识作为密钥推衍函数KDF的输入参数来计算第二加密密钥,例如:Kcipher=KDF(CK,algorithm type distinguisher1,ciphering algorithm id),其中CK为第一加密密钥,algorithm type distinguisher1为第一算法类型指示,ciphering algorithm id为SGSN所选择的的加密算法的标识。
可选地,若GPRS***需要64位的第二加密密钥,可以从计算出的Kcipher中取最高64位作为第二加密密钥;若GPRS***需要128位的第二加密密钥,可以从计算出的Kcipher中取最高128位作为第二加密密钥。在其他可行的实施方式中,也可以从计算出的Kcipher中任意选出所需位数作为第二加密密钥,本申请对此不做限定。
第五计算单元13045,根据所述认证向量中的第一完整性密钥、第二算法类型指示和所选择的完整性算法的标识计算第二完整性密钥。
具体地,第五计算单元13045可以将第一完整性密钥、第二算法类型指示和所选择的完整性算法的标识作为密钥推衍函数KDF的输入参数来计算第二完整性密钥,例如:Kintegrity=KDF(IK,algorithm type distinguisher2,integrity algorithm id),其中IK为第一完整性密钥,algorithm type distinguisher2为第二算法类型指示,integrity algorithm id为SGSN所选择的的完整性算法的标识。
可选地,若GPRS***需要64位的第二完整性密钥,可以从计算出的Kintegrity中取最高64位作为第二完整性密钥;若GPRS***需要128位的第二完整性密钥,可以从计算出的Kintegrity中取最高128位作为第二完整性密钥。在其他可行的实施方式中,也可以从计算出的Kintegrity中任意选出所需位数作为第二完整性密钥,本申请对此不做限定。
本申请实施例中,第一算法类型指示用于指示当前参与运算的算法为加密类型的算法,第二算法类型指示用于指示当前参与运算的算法为完整性类型的算法,第一算法类型指示和第二算法类型指示的取值不相同。在一些可行的实
施例中,第一算法类型指示和第二算法类型指示可包含相同的IE,两者通过IE的取值不同来区分。例如,第一算法类型指示和第二算法类型指示的IE均为algorithm type distinguisher,当algorithm type distinguisher=00时,指示加密类型的算法,当algorithm type distinguisher=01时,指示完整性类型的算法。
在一些可能的情况中,加密算法和完整性算法可能采用相同的标识,此时需要结合算法类型指示来唯一区分各个算法。例如,假设128-EEA1算法和128-EIA1均以1作为算法标识,当SGSN选择的加密算法和完整性算法分别为128-EEA1算法和128-EIA1算法时,通过第一算法类型指示和第二算法类型指示的不同取值可以区分128-EEA1算法和128-EIA1算法,同时可以使计算出来的第二加密密钥和第二完整性密钥的值不相同,以区分第二加密密钥和第二完整性密钥。
在一些可行的实施方式中,
在一些可行的实施方式中,获得模块1304可以具体用于:
根据所述第一加密密钥和所述第一完整性密钥计算中间密钥;
将所述中间密钥的第一预设比特位作为第二加密密钥,将所述中间密钥的第二预设比特位作为第二完整性密钥。
作为一种可行的实施方式,获得模块1304可以对第一加密密钥和第一完整性密钥进行运算,然后将运算结果作为密钥推衍函数KDF的输入参数来计算中间密钥。例如,中间密钥可以为Km=KDF(CK||IK),其中CK||IK表示对第一加密密钥CK和第一完整性密钥IK进行连接运算。
作为另一种可行的实施方式,获得模块1304可以直接将现有的GPRS加密密钥Kc(64位)作为中间密钥,或直接将现有的Kc128(128位)作为中间密钥。其中Kc和Kc128都是根据CK和IK计算生成的。
作为一种可行的实施方式,获得模块1304可以将所述中间密钥的第一预设比特位作为第二加密密钥。例如,若GPRS***需要64位的第二加密密钥,则可以直接将所述中间密钥的最高64位作为第二加密密钥;若GPRS***需要128位的第二加密密钥,则可以直接将所述中间密钥的最高128位作为第二加密密钥。在其他可选的实施方式中,也可以从所述中间密钥中任意选取所需位数的比特位作为第二加密密钥,本申请对此不做限定。
作为一种可行的实施方式,获得模块1304可以将所述中间密钥的第二预设比特位作为第二完整性密钥。例如,若GPRS***需要64位的第二完整性密钥,则可以直接将所述中间密钥的最低64位作为第二完整性密钥;若GPRS***需要128位的第二完整性密钥,则可以直接将所述中间密钥的最低128位作为第二完整性密钥。在其他可选的实施方式中,也可以从所述中间密钥中任意选取所需位数的比特位作为第二完整性密钥,本申请对此不做限定。
在一些可行的实施方式中,获得模块1304可以具体用于:
将所述第一加密密钥或者所述第一加密密钥的预设比特位作为所述第二加密密钥;将所述第一完整性密钥或者所述第一完整性密钥的预设比特位作为所述第二完整性密钥。
在一些可行的实施方式中,第一加密密钥为128位密钥,GPRS***所需的第二加密密钥也为128位密钥,则可以直接将第一加密密钥作为第二加密密钥;若GPRS***所需的第二加密密钥为64位密钥,则可从第一加密密钥中选取64个预设比特位作为第二加密密钥,例如选取最高64位作为第二加密密钥。
在一些可行的实施方式中,第一完整性密钥为128位密钥,GPRS***所需的第二完整性密钥也为128位密钥,则可以直接将第一完整性密钥作为第二完整性密钥;若GPRS***所需的第二完整性密钥为64位密钥,则可从第一完整性密钥中选取64个预设比特位作为第二完整性密钥,例如选取最高64位作为第二完整性密钥。
本申请实施例中,SGSN接收UE发送的请求消息,在确定UE为第一类型UE后,选择一种加密算法和一种完整性算法,从HLR/HSS获取认证向量,根据认证向量中包含的第一加密密钥和第一完整性密钥,获得增强的第二加密密钥和第二完整性密钥,并将所选择的加密算法和完整性算法发送给UE,使UE计算第二加密密钥和第二完整性密钥,通过第二加密密钥和第二完整性密钥对SGSN和UE之间的通信消息进行加密保护和完整性保护,增强第一类型UE在GPRS网络中通信的安全性。
请参阅图16,图16是本申请提供的SGSN设备的另一实施例的结构示意图。如图16所示,该SGSN设备可包括接收装置1601、发送装置1602、和处
理器1603,上述接收装置1601、发送装置1602和处理器1603通过总线相连,其中:
所述接收装置1601,用于接收UE发送的请求消息;
所述处理器1603,用于:
从HLR/HSS获取认证向量,所述认证向量包含第一加密密钥和第一完整性密钥;
若所述SGSN确定所述UE为第一类型UE,则为所述UE选择一种加密算法和一种完整性算法;
根据所述第一加密密钥和所述第一完整性密钥,获得第二加密密钥和第二完整性密钥;
所述发送装置1602,用于将所选择的加密算法和完整性算法发送给所述UE;
其中,所述第二加密密钥和所选择的加密算法用于对所述SGSN和所述UE之间传输的消息进行机密性保护,所述第二完整性密钥和所选择的完整性算法用于对所述SGSN和所述UE之间传输的消息进行完整性保护。
在一些可行的实施方式中,所述请求消息中包含所述UE的标识;
所述发送装置1602,还用于将所述UE的标识发送给所述HLR/HSS,以使所述HLR/HSS根据所述UE的标识确定所述UE为第一类型UE,并向所述SGSN发送UE类型指示信息,所述UE类型指示信息用于指示所述UE为第一类型UE;
所述处理器1603判断所述UE是否为第一类型UE,包括:所述处理器接收所述HLR/HSS发送的UE类型指示信息,确定所述UE为第一类型UE。
在一些可行的实施方式中,所述处理器1603确定述UE为第一类型UE,包括:
若所述请求消息包含UE类型指示信息,所述处理器1603确定所述UE为第一类型UE。
在一些可行的实施方式中,所述处理器1603根据所述第一加密密钥和所述第一完整性密钥,获得第二加密密钥和第二完整性密钥,包括:
所述处理器1603根据所述第一加密密钥和所述第一完整性密钥,计算中
间密钥;
所述处理器1603根据所述中间密钥和加密特征字符串,计算第二加密密钥;
所述处理器1603根据所述中间密钥和完整性特征字符串,计算第二完整性密钥。
在一些可行的实施方式中,所述处理器1603根据所述第一加密密钥和所述第一完整性密钥,获得第二加密密钥和第二完整性密钥,包括:
所述处理器根据所述第一加密密钥和所述第一完整性密钥,计算中间密钥;所述处理器将所述中间密钥的第一预设比特位作为所述第二加密密钥,将所述中间密钥的第二预设比特位作为所述第二完整性密钥;或者,
所述处理器根据所述认证向量中的第一加密密钥、第一算法类型指示和所选择的加密算法的标识,计算所述第二加密密钥;所述处理器根据所述认证向量中的第一完整性密钥、第二算法类型指示和所选择的完整性算法的标识计算所述第二完整性密钥,其中所述第一算法类型指示和所述第二算法类型指示的取值不相同;或者,
所述处理器将所述第一加密密钥或者所述第一加密密钥的预设比特位作为所述第二加密密钥;所述处理器将所述第一完整性密钥或者所述第一完整性密钥的预设比特位作为所述第二完整性密钥。
在一些可行的实施方式中,所述认证向量为认证向量五元组;
所述第一加密密钥为所述认证向量五元组中的的加密密钥CK,所述第一完整性密钥为所述认证向量五元组中的完整性密钥IK。
在一些可行的实施方式中,所述中间密钥为64位GPRS加密密钥Kc或128位加密密钥Kc128。
本申请实施例中,SGSN接收UE发送的请求消息,在确定UE为第一类型UE后,选择一种加密算法和一种完整性算法,从HLR/HSS获取认证向量,根据认证向量中包含的第一加密密钥和第一完整性密钥,获得增强的第二加密密钥和第二完整性密钥,并将所选择的加密算法和完整性算法发送给UE,使UE在计算第二加密密钥和第二完整性密钥之后,SGSN和UE双方可通过第二加密密钥和第二完整性密钥、SGSN选择的加密算法和完整性算法来对
SGSN和UE之间的通信消息进行加密保护和完整性保护,增强第一类型UE在GPRS网络中通信的安全性。
请参阅图17,图17是本申请提供的UE的一实施例的结构示意图。如图17所示,该UE可包括发送模块1701、接收模块1702和获取模块1703,其中:
发送模块1701,用于向SGSN发送请求消息。
具体实施中,发送模块1701发送给SGSN的请求消息可以是附着请求消息、路由更新消息或其他消息,例如服务请求消息。SGSN接收UE发送的请求消息后,可获取发送该请求消息的UE的标识。若该UE为第一类型UE,请求消息中可能携带UE类型指示信息。
本申请实施例中,UE通过USIM卡与网络通信,UE的标识可以是USIM卡的IMSI(International Mobile Subscriber Identification Number,国际移动用户识别码)。第一类型UE指的是具备信息传感功能和消息传输功能的用户设备,例如导览机、个人数字助理、条码采集器、数据采集终端和主要用于消费或转账的POS机等。机器通信UE指的是具备联网和通信能力,通过传感器、控制器等来实现“智能”属性,从而能与人、移动网络或其他机器进行信息交流的用户设备。
本申请实施例的UE为第一类型UE,在一些可行的实施方式中,发送模块1701向所述SGSN发送的请求消息中可包含UE类型指示信息,以使所述SGSN根据所述UE类型指示信息判定所述UE为第一类型UE。
可选地,UE类型指示信息可通过特定信息元素(Information Element,IE)的存在性来指示UE为第一类型UE,例如,当SGSN接收到HLR/HSS或者UE发送的UE类型指示信息时,若UE类型指示信息中存在某一特定IE,SGSN则可确定UE为第一类型UE,否则可确定UE不是第一类型UE。或者,UE类型指示信息还可通过特定IE的取值来指示UE为第一类型UE,例如,当SGSN接收到HLR/HSS或者UE发送的UE类型指示信息时,若UE类型指示信息中某一特定IE的取值为1,SGSN可确定UE为第一类型UE,若该特定IE的取值为0,则SGSN可确定UE不是第一类型UE。
具体实施中,UE和SGSN各自配置了一些加密算法和完整性算法,发送模块1701向SGSN发送请求消息时,将自身支持的加密算法和完整性算法一
并发送给SGSN。
接收模块1702,用于接收所述SGSN发送的加密算法和完整性算法。
SGSN接收UE的请求消息之后,若确定上述UE是第一类型UE,SGSN从UE支持的加密算法和完整性算法中选择一种SGSN支持的加密算法以及一种SGSN支持的完整性算法。SGSN将选择的加密算法和完整性算法发送给UE,并根据认证向量中的第一加密密钥和第一完整性密钥,获得第二加密密钥和第二完整性密钥。
具体实施中,SGSN在将选择的加密算法和完整性算法发送给UE的同时,还可以将认证向量中的随机数RAND和认证令牌AUTN发送给UE。UE可以根据认证令牌AUTN对SGSN侧进行认证,以实现UE侧对网络侧的鉴权。UE还可以根据接收到的随机数RAND和认证令牌AUTN,利用f1-f5算法计算出第一加密密钥和第一完整性密钥,UE计算出的第一加密密钥和第一完整性密钥与SGSN从HLR/HSS获取的认证向量中的第一加密密钥和第一完整性密钥相同。SGSN向HLR/HSS获取的认证向量为认证向量五元组,其中包括随机数RAND、期望响应XRES、认证令牌AUTN、加密密钥CK和完整性密钥IK。
本申请实施例中,第一加密密钥为认证向量五元组中的加密密钥CK,第一完整性密钥为认证向量五元组中的完整性密钥IK。
在一些可行的实施方式中,SGSN选择的加密算法和完整性算法可用于和认证向量中的第一加密密钥CK、第一完整性密钥IK一起计算第二加密密钥和第二完整性密钥。此外,根据加密算法和生成的第二加密密钥,可以对通信消息进行加密,生成消息密文;根据完整性算法和生成的第二完整性密钥,可以计算得到消息鉴权码MAC,消息鉴权码MAC可用于验证通信消息的完整性。
可选地,当GPRS网络需要128位的第二加密密钥时,SGSN选择的加密算法可以是128-EEA1算法、128-EEA2算法、128-EEA3算法中任意一种;SGSN选择的完整性算法可以是128-EIA1算法、128-EIA2算法、128-EIA3算法中任意一种。其中128-EEA1算法和128-EIA1算法使用SNOW 3G算法作为核心算法;128-EEA2算法和128-EIA2算法使用AES算法作为核心算法;128-EEA3
算法和128-EIA3算法使用ZUC算法(祖冲之算法集)作为核心算法。
获取模块1703,用于根据第一加密密钥和第一完整性密钥,获取第二加密密钥和第二完整性密钥。
本申请实施例中,第二加密密钥和第二完整性密钥是在第一加密密钥和第一完整性密钥基础上增强的密钥。第二加密密钥和SGSN发送的加密算法用于对SGSN和所述UE之间传输的消息进行机密性保护,第二完整性密钥和SGSN发送的完整性算法用于对SGSN和所述UE之间传输的消息进行完整性保护。
可选地,获取模块1703可以仅根据第一加密密钥和第一完整性密钥来获取第二加密密钥和第二完整性密钥;或者,获取模块1703可以根据第一加密密钥、第一完整性密钥、SGSN发送的加密算法和完整性算法来获取第二加密密钥和第二完整性密钥。
获取第二加密密钥和第二完整性密钥之后,为了对SGSN和UE之间的通信消息进行保护,需要SGSN和UE双方使用约定的密钥(即第二加密密钥和第二完整性密钥)和算法(即SGSN发送的加密算法和完整性算法)对通信消息进行加密。
本申请实施例中,UE向SGSN发送请求消息,接收SGSN发送的加密算法和完整性算法,根据第一加密密钥和第一完整性密钥计算第二加密密钥和第二完整性密钥。SGSN和UE双方可通过第二加密密钥、第二完整性密钥、SGSN向UE发送的加密算法和完整性算法来对UE和SGSN之间的通信消息进行加密保护和完整性保护,增强第一类型UE在GPRS网络中通信的安全性。
下面将结合附图18-附图19,对图17所示的获取模块1703的结构和功能进行详细介绍。
在一些可行的实施方式中,如图18所示,获取模块1703可包括第一计算单元17031、第二计算单元17032和第三计算单元17033,其中:
第一计算单元17031,用于根据第一加密密钥和第一完整性密钥,计算中间密钥。
在一些可行的实施方式中,在第一计算单元17031计算中间密钥之前,UE先根据SGSN发送的认证令牌AUTN和随机数RAND计算期望鉴权码XMAC,通过比较期望鉴权码XMAC与认证令牌AUTN中的消息鉴权码MAC
是否相同来对SGSN侧进行认证。对SGSN侧的认证通过之后,UE根据SGSN发送的随机数RAND和认证令牌AUTN计算出第一加密密钥CK和第一完整性密钥IK,并计算随机数响应RES,以及将随机数响应RES发送给SGSN,以供SGSN侧对UE进行认证。
作为一种可行的实施方式,第一计算单元17031可以对第一加密密钥和第一完整性密钥进行运算,然后将运算结果作为密钥推衍函数KDF的输入参数来计算中间密钥。例如,中间密钥可以为Km=KDF(CK||IK),其中CK||IK表示对第一加密密钥CK和第一完整性密钥IK进行连接运算。
作为另一种可行的实施方式,所述中间密钥可直接采用现有的64位GPRS加密密钥Kc或现有的128位加密密钥Kc128,即第一计算单元17031可以直接将现有的GPRS加密密钥Kc(64位)作为中间密钥,或直接将现有的Kc128(128位)作为中间密钥。其中Kc和Kc128都是根据CK和IK计算生成的。
第二计算单元17032,用于根据所述中间密钥和加密特征字符串计算第二加密密钥。
具体实施中,可以将中间密钥和加密特征字符串ciphering作为密钥推衍函数KDF的输入参数来计算第二加密密钥。例如:第二加密密钥可以通过Kcipher=KDF(Km,“ciphering”)计算得到。“ciphering”是加密特征字符串,可以通过编码产生。
在一些可行的实施方式中,GPRS***需要128位的第二加密密钥,可以从计算出的中间密钥Km中截取预设的128位(例如最高的128位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二加密密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的128位(例如最高的128位)作为第二加密密钥;或者,可以将中间密钥Kc128作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二加密密钥。
在一些可行的实施方式中,GPRS***需要64位的第二加密密钥,可以从计算出的中间密钥Km中截取预设的64位(例如最高的64位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二加密密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在
KDF的输出中截取预设的64位(例如最高的64位)作为第二加密密钥;或者,可以将中间密钥Kc(64位)作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二加密密钥。
第三计算单元17033,用于根据所述中间密钥和完整性特征字符串计算第二完整性密钥。
具体实施中,可以将中间密钥和完整性特征字符串integrity作为密钥推衍函数KDF的输入参数来计算第二完整性密钥。例如:第二完整性密钥可以通过Kintegrity=KDF(Km,“integrity”)计算得到。“integrity”是完整性特征字符串,可以通过编码产生。
在一些可行的实施方式中,GPRS***需要128位的第二完整性密钥,可以从计算出的中间密钥Km中截取预设的128位(例如最高的128位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二完整性密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的128位(例如最高的128位)作为第二完整性密钥;或者,可以将中间密钥Kc128作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二完整性密钥。
在一些可行的实施方式中,GPRS***需要64位的第二完整性密钥,可以从计算出的中间密钥Km中截取预设的64位(例如最高的64位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二完整性密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的64位(例如最高的64位)作为第二完整性密钥;或者,可以将中间密钥Kc(64位)作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二完整性密钥。
本申请实施例中,加密特征字符串ciphering和完整性特征字符串integrity用于使计算出来的第二加密密钥和第二完整性密钥不同以便于区分,因此完整性特征字符串integrity可以是任意与加密特征字符串ciphering不一致的字符串。
在一些可行的实施方式中,如图18所示,获取模块1703可包括第一计算单元17031、第二计算单元17032和第三计算单元17033,其中:
第一计算单元17031,用于根据所述第一加密密钥和所述第一完整性密钥,计算中间密钥。
作为一种可行的实施方式,第一计算单元1041可以对第一加密密钥和第一完整性密钥进行运算,然后将运算结果作为密钥推衍函数KDF的输入参数来计算中间密钥。例如,中间密钥可以为Km=KDF(CK||IK),其中CK||IK表示对第一加密密钥CK和第一完整性密钥IK进行连接运算。
作为另一种可行的实施方式,第一计算单元1041可以直接将现有的GPRS加密密钥Kc(64位)作为中间密钥,或直接将现有的Kc128(128位)作为中间密钥。其中Kc和Kc128都是根据CK和IK计算生成的。
第二计算单元17032,用于根据所述中间密钥、第一算法类型指示和所述加密算法的标识,计算所述第二加密密钥。
具体实施中,第二计算单元1042可以将中间密钥、第一算法类型指示和所述加密算法的标识作为密钥推衍函数KDF的输入参数来计算第二加密密钥。例如:第二加密密钥Kcipher可以通过Kcipher=KDF(Km,algorithm type distinguisher1,ciphering algorithm id)计算得到,其中Km为中间密钥,algorithm type distinguisher1为第一算法类型指示,ciphering algorithm id为SGSN所选择的加密算法的标识。
在一些可行的实施方式中,GPRS***需要128位的第二加密密钥,可以从计算出的中间密钥Km中截取预设的128位(例如最高的128位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二加密密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的128位(例如最高的128位)作为第二加密密钥;或者,将中间密钥Kc128作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二加密密钥。
在一些可行的实施方式中,GPRS***需要64位的第二加密密钥,可以从计算出的中间密钥Km中截取预设的64位(例如最高的64位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二加密密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的64位(例如最高的64位)作为第二加密密钥;或
者,可以将中间密钥Kc(64位)作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二加密密钥。
第三计算单元17033,用于根据所述中间密钥、第二算法类型指示和所述完整性算法的标识,计算所述第二完整性密钥,其中所述第一算法类型指示和所述第二算法类型指示的取值不相同。
具体实施中,第三计算单元17033可以将中间密钥、第二算法类型指示和所述完整性算法的标识作为密钥推衍函数KDF的输入参数来计算第二完整性密钥。例如:第二完整性密钥Kcipher可以通过Kintegrity=KDF(Km,algorithm type distinguisher2,integrity algorithm id)计算得到,其中Km为中间密钥,algorithm type distinguisher2为第二算法类型指示,integrity algorithm id为SGSN所选择的完整性算法的标识。
在一些可行的实施方式中,GPRS***需要128位的第二完整性密钥,可以从计算出的中间密钥Km中截取预设的128位(例如最高的128位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二完整性密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的128位(例如最高的128位)作为第二完整性密钥;或者,可以将中间密钥Kc128作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二完整性密钥。
在一些可行的实施方式中,GPRS***需要64位的第二完整性密钥,可以从计算出的中间密钥Km中截取预设的64位(例如最高的64位)作为密钥推衍函数KDF的输入参数之一,将KDF的输出作为第二完整性密钥;或者,可以直接将计算出的中间密钥Km作为密钥推衍函数KDF的输入参数之一,在KDF的输出中截取预设的64位(例如最高的64位)作为第二完整性密钥;或者,可以将中间密钥Kc(64位)作为密钥推衍函数KDF的输入参数之一,将密钥推衍函数KDF的输出作为第二完整性密钥。
本申请实施例中,第一算法类型指示用于指示当前参与运算的算法为加密类型的算法,第二算法类型指示用于指示当前参与运算的算法为完整性类型的算法。在一些可行的实施例中,第一算法类型指示和第二算法类型指示可包含相同的IE,两者通过IE的取值不同来区分。例如,第一算法类型指示和第二
算法类型指示的IE均为algorithm type distinguisher,当algorithm type distinguisher=00时,指示加密类型的算法,当algorithm type distinguisher=01时,指示完整性类型的算法。
在一些可能的情况中,加密算法和完整性算法可能采用相同的标识,此时需要结合算法类型指示来唯一区分各个算法。例如,假设128-EEA1算法和128-EIA1均以1作为算法标识,当SGSN选择的加密算法和完整性算法分别为128-EEA1算法和128-EIA1算法时,通过第一算法类型指示和第二算法类型指示中IE的不同取值可以区分128-EEA1算法和128-EIA1算法,同时可以使计算出来的第二加密密钥和第二完整性密钥的值不相同,以区分第二加密密钥和第二完整性密钥。
在一些可行的实施方式中,如图19所示,获取模块1703可包括第四计算单元17034和第五计算单元17035,其中:
第四计算单元17034,用于根据第一加密密钥、第一算法类型指示和所述加密算法的标识计算第二加密密钥。
在一些可行的实施方式中,在第四计算单元17034计算第二加密密钥和第五计算单元17035计算第二完整性密钥之前,UE先根据SGSN发送的认证令牌AUTN和随机数RAND计算期望鉴权码XMAC,通过比较期望鉴权码XMAC与认证令牌AUTN中的消息鉴权码MAC是否相同来对SGSN侧进行认证。对SGSN侧的认证通过之后,UE根据SGSN发送的随机数RAND和认证令牌AUTN计算出第一加密密钥CK和第一完整性密钥IK,并计算随机数响应RES,以及将随机数响应RES发送给SGSN,以供SGSN侧对UE进行认证。
具体地,第四计算单元17034可以将第一加密密钥、第一算法类型指示和所选择的加密算法的标识作为密钥推衍函数KDF的输入参数来计算第二加密密钥,例如:Kcipher=KDF(CK,algorithm type distinguisher1,ciphering algorithm id),其中CK为第一加密密钥,algorithm type distinguisher1为第一算法类型指示,ciphering algorithm id为SGSN所选择的的加密算法的标识。
可选地,若GPRS***需要64位的第二加密密钥,可以从计算出的Kcipher中取最高64位作为第二加密密钥;若GPRS***需要128位的第二加密密钥,
可以从计算出的Kcipher中取最高128位作为第二加密密钥。在其他可行的实施方式中,也可以从计算出的Kcipher中任意选出所需位数作为第二加密密钥,本申请对此不做限定。
第五计算单元17035,用于根据第一完整性密钥、第二算法类型指示和所述完整性算法的标识计算第二完整性密钥。
具体地,第五计算单元17035可以将第一完整性密钥、第二算法类型指示和所选择的完整性算法的标识作为密钥推衍函数KDF的输入参数来计算第二完整性密钥,例如:Kintegrity=KDF(IK,algorithm type distinguisher2,integrity algorithm id),其中IK为第一完整性密钥,algorithm type distinguisher2为第二算法类型指示,integrity algorithm id为SGSN所选择的的完整性算法的标识。
可选地,若GPRS***需要64位的第二完整性密钥,可以从计算出的Kintegrity中取最高64位作为第二完整性密钥;若GPRS***需要128位的第二完整性密钥,可以从计算出的Kintegrity中取最高128位作为第二完整性密钥。
本申请实施例中,第一算法类型指示用于指示当前参与运算的算法为加密类型的算法,第二算法类型指示用于指示当前参与运算的算法为完整性类型的算法,第一算法类型指示和第二算法类型指示的取值不相同。在一些可行的实施例中,第一算法类型指示和第二算法类型指示可包含相同的IE,两者通过IE的取值不同来区分。例如,第一算法类型指示和第二算法类型指示的IE均为algorithm type distinguisher,当algorithm type distinguisher=00时,指示加密类型的算法,当algorithm type distinguisher=01时,指示完整性类型的算法。
在一些可能的情况中,加密算法和完整性算法可能采用相同的标识,此时需要结合算法类型指示来唯一区分各个算法。例如,假设128-EEA1算法和128-EIA1均以1作为算法标识,当SGSN选择的加密算法和完整性算法分别为128-EEA1算法和128-EIA1算法时,通过第一算法类型指示和第二算法类型指示的不同取值可以区分128-EEA1算法和128-EIA1算法,同时可以使计算出来的第二加密密钥和第二完整性密钥的值不相同,以区分第二加密密钥和第二完整性密钥。
在一些可行的实施方式中,所述获取模块1703可以具体用于:
根据第一加密密钥和第一完整性密钥计算中间密钥;
将所述中间密钥的第一预设比特位作为第二加密密钥,将所述中间密钥的第二预设比特位作为第二完整性密钥。
在一些可行的实施方式中,在获取模块1703计算中间密钥之前,UE先根据SGSN发送的认证令牌AUTN和随机数RAND计算期望鉴权码XMAC,通过比较期望鉴权码XMAC与认证令牌AUTN中的消息鉴权码MAC是否相同来对SGSN侧进行认证。对SGSN侧的认证通过之后,UE根据SGSN发送的随机数RAND和认证令牌AUTN计算出第一加密密钥CK和第一完整性密钥IK,并计算随机数响应RES,以及将随机数响应RES发送给SGSN,以供SGSN侧对UE进行认证。
作为一种可行的实施方式,获取模块1703可以对第一加密密钥和第一完整性密钥进行运算,然后将运算结果作为密钥推衍函数KDF的输入参数来计算中间密钥。例如,中间密钥可以为Km=KDF(CK||IK),其中CK||IK表示对第一加密密钥CK和第一完整性密钥IK进行连接运算。
作为另一种可行的实施方式,所述中间密钥可直接采用现有的64位GPRS加密密钥Kc或现有的128位加密密钥Kc128,即获取模块1703可以直接将现有的GPRS加密密钥Kc(64位)作为中间密钥,或直接将现有的Kc128(128位)作为中间密钥。其中Kc和Kc128都是根据CK和IK计算生成的。
作为一种可行的实施方式,获取模块1703可以将所述中间密钥的第一预设比特位作为第二加密密钥。例如,若GPRS***需要64位的第二加密密钥,则可以直接将所述中间密钥的最高64位作为第二加密密钥;若GPRS***需要128位的第二加密密钥,则可以直接将所述中间密钥的最高128位作为第二加密密钥。可选地,也可以从所述中间密钥中任意选取所需位数的比特位作为第二加密密钥,本申请对此不做限定。
作为一种可行的实施方式,获取模块1703可以将所述中间密钥的第二预设比特位作为第二完整性密钥。例如,若GPRS***需要64位的第二完整性密钥,则可以直接将所述中间密钥的最低64位作为第二完整性密钥;若GPRS***需要128位的第二完整性密钥,则可以直接将所述中间密钥的最低128位作为第二完整性密钥。可选地,也可以从所述中间密钥中任意选取所需位数的比特位作为第二完整性密钥,本申请对此不做限定。
在一些可行的实施方式中,所述获取模块1703可以具体用于:
将第一加密密钥或者所述第一加密密钥的预设比特位作为所述第二加密密钥;
将第一完整性密钥或者所述第一完整性密钥的预设比特位作为所述第二完整性密钥。
在一些可行的实施方式中,在获取模块1703计算第二加密密钥或第二完整性密钥之前,UE可先根据认证令牌AUTN和随机数RAND计算期望鉴权码XMAC,通过比较期望鉴权码XMAC与认证令牌AUTN中的消息鉴权码MAC是否相同来对SGSN侧进行认证。对SGSN侧的认证通过之后,UE根据SGSN发送的随机数RAND和认证令牌AUTN计算出第一加密密钥CK和第一完整性密钥IK,并计算随机数响应RES,以及将随机数响应RES发送给SGSN,以供SGSN侧对UE进行认证。
在一些可行的实施方式中,第一加密密钥为128位密钥,GPRS***所需的第二加密密钥也为128位密钥,则可以直接将第一加密密钥作为第二加密密钥;若GPRS***所需的第二加密密钥为64位密钥,则可从第一加密密钥中选取64个预设比特位作为第二加密密钥,例如选取最高64位作为第二加密密钥。
在一些可行的实施方式中,第一完整性密钥为128位密钥,GPRS***所需的第二完整性密钥也为128位密钥,则可以直接将第一完整性密钥作为第二完整性密钥;若GPRS***所需的第二完整性密钥为64位密钥,则可从第一完整性密钥中选取64个预设比特位作为第二完整性密钥,例如选取最高64位作为第二完整性密钥。
本申请实施例中,UE向SGSN发送请求消息,接收SGSN发送的加密算法和完整性算法,根据第一加密密钥和第一完整性密钥计算第二加密密钥和第二完整性密钥。SGSN和UE双方可通过第二加密密钥、第二完整性密钥、SGSN向UE发送的加密算法和完整性算法来对UE和SGSN之间的通信消息进行加密保护和完整性保护,增强第一类型UE在GPRS网络中通信的安全性。
请参阅图20,图20是本申请提供的UE的另一实施例的结构示意图。如图20所示,该UE可包括发送装置2001、接收装置2002和处理器2003,上
述发送装置2001、接收装置2002和处理器2003可通过总线相连,其中:
发送装置2001,用于向SGSN发送请求消息;
接收装置2002,用于接收所述SGSN发送的加密算法和完整性算法;
处理器2003,用于根据第一加密密钥和第一完整性密钥,获取第二加密密钥和第二完整性密钥;
其中,所述第二加密密钥和所述加密算法用于对所述SGSN和所述UE之间传输的消息进行机密性保护,所述第二完整性密钥和所述完整性算法用于对所述SGSN和所述UE之间传输的消息进行完整性保护。
在一些可行的实施方式中,发送装置2001向所述SGSN发送的请求消息中包含UE类型指示信息,所述UE类型指示信息用于指示所述UE为第一类型UE。
在一些可行的实施方式中,处理器2003根据第一加密密钥和第一完整性密钥,获取第二加密密钥和第二完整性密钥,包括:
处理器2003根据第一加密密钥和第一完整性密钥,计算中间密钥;
处理器2003根据所述中间密钥和加密特征字符串,计算第二加密密钥;
处理器2003根据所述中间密钥和完整性特征字符串,计算第二完整性密钥。
在一些可行的实施方式中,处理器2003根据第一加密密钥和第一完整性密钥,获取第二加密密钥和第二完整性密钥,包括:
处理器2003根据所述第一加密密钥和第一完整性密钥,计算中间密钥;处理器2003将所述中间密钥的第一预设比特位作为第二加密密钥,将所述中间密钥的第二预设比特位作为第二完整性密钥;或者,
处理器2003根据第一加密密钥、第一算法类型指示和所述加密算法的标识计算第二加密密钥;处理器2003根据第一完整性密钥、第二算法类型指示和所述完整性算法的标识计算第二完整性密钥;或者,
处理器2003将第一加密密钥或者第一加密密钥的预设比特位作为第二加密密钥;处理器2003将第一完整性密钥或者第一完整性密钥的预设比特位作为第二完整性密钥。
在一些可行的实施方式中,所述第一加密密钥为认证向量五元组中的加密
密钥CK,所述第一完整性密钥为所述认证向量五元组中的完整性密钥IK。
在一些可行的实施方式中,所述中间密钥为64位GPRS加密密钥Kc或128位加密密钥Kc128。
本申请实施例中,UE向SGSN发送请求消息,根据SGSN选择的加密算法和完整性算法、第一加密密钥和第一完整性密钥计算第二加密密钥和第二完整性密钥,通过第二加密密钥和第二完整性密钥对UE和SGSN之间的通信消息进行加密保护和完整性保护,增强第一类型UE在GPRS网络中通信的安全性。
请参阅图21,图21为本申请实施例提供的HLR/HSS的一实施例的结构示意图。如图21所示,该HLR/HSS可包括接收模块2101、确定模块2102和发送模块2103,其中:
接收模块2101,用于接收服务GPRS支持节点SGSN发送的用户设备UE的标识。
归属位置寄存器(Home Location Register,HLR)是GPRS***的永久数据库,存储了管理众多移动用户通信所需的信息,包括已注册的移动用户的身份信息、业务信息、服务授权等静态信息,以及用户的位置信息等动态信息。归属签约***HSS(Home Subscription System,HSS)是HLR的演进和升级,主要负责管理用户的签约数据及移动用户的位置信息。由于HSS与HLR在网络中功能类似,所存储数据有较多重复,通常对外呈现为HSS与HLR融合设备。本申请实施例中,HLR/HSS可以是HLR设备、HSS设备或HLR和HSS的融合设备。
本申请实施例中,UE通过USIM卡与网络通信,UE的标识可以是USIM卡的IMSI(International Mobile Subscriber Identification Number,国际移动用户识别码)。
确定模块2102,用于根据所述UE的标识确定所述UE为第一类型UE。
具体实施中,HLR/HSS存储着众多UE的各种信息,在接收SGSN发送的UE的标识后,HLR/HSS可查询所述UE的相关信息,以确定所述UE是否为第一类型UE。本申请实施例以所述UE为第一类型UE为例进行说明。
本申请实施例中,第一类型UE可包括物联网UE、机器通信(Machine To
Machine,M2M)UE或其他高安全性UE。其中物联网UE指的是具备信息传感功能和数据传输功能的用户设备,例如导览机、个人数字助理、条码采集器、数据采集终端和主要用于消费或转账的POS机等。机器通信UE指的是具备联网和通信能力,通过传感器、控制器等来实现“智能”属性,从而能与人、移动网络或其他机器进行信息交流的用户设备。
发送模块2103,用于向所述SGSN发送UE类型指示信息,所述UE类型指示信息用于指示所述UE为第一类型UE。
可选地,UE类型指示信息可通过特定信息元素(Information Element,IE)的存在性来指示UE为第一类型UE,例如,当SGSN接收到HLR/HSS或者UE发送的UE类型指示信息时,若UE类型指示信息中存在某一特定IE,SGSN则可确定UE为第一类型UE,否则可确定UE不是第一类型UE。或者,UE类型指示信息还可通过特定IE的取值来指示UE为第一类型UE,例如,当SGSN接收到HLR/HSS或者UE发送的UE类型指示信息时,若UE类型指示信息中某一特定IE的取值为1,SGSN可确定UE为第一类型UE,若该特定IE的取值为0,则SGSN可确定UE不是第一类型UE。
本申请实施例中,HLR/HSS还可以向SGSN发送认证向量,认证向量中包括第一加密密钥和第一完整性密钥。
在一些可行的实施方式中,上述认证向量可以为认证向量五元组,其中包括随机数RAND、期望响应XRES、认证令牌AUTN、加密密钥CK和完整性密钥IK。第一加密密钥即为认证向量五元组中的加密密钥CK,第一完整性密钥即为认证向量五元组中的完整性密钥IK。
本申请实施例中,HLR/HSS可接收SGSN发送的UE的标识,根据UE的标识确定UE为第一类型UE,并向SGSN发送UE类型指示信息,以指示该UE为第一类型UE,使SGSN可以和第一类型UE之间进行针对第一类型UE的密钥增强处理,提高第一类型UE在GPRS网络中通信的安全性。
请参阅图22,图22为本申请实施例提供的HLR/HSS的另一实施例的结构示意图。如图22所示,该HLR/HSS可包括接收装置2201、发送装置2202、和处理器2203,上述接收装置2201、发送装置2202、和处理器2203通过总线相连,其中:
上述接收装置2201,用于接收SGSN发送的用户设备UE的标识;
上述处理器2203,用于根据所述UE的标识确定所述UE为第一类型UE;
上述发送装置2202,用于向所述SGSN发送UE类型指示信息,所述UE类型指示信息用于指示所述UE为第一类型UE。
本申请实施例中,HLR/HSS可接收SGSN发送的UE的标识,根据UE的标识确定UE为第一类型UE,并向SGSN发送UE类型指示信息,以指示该UE为第一类型UE,使SGSN可以和第一类型UE之间进行针对第一类型UE的密钥增强处理,提高第一类型UE在GPRS网络中通信的安全性。
请参阅图23,图23为本申请实施例提供的GPRS***的一实施例的结构示意图。如图23所示,该GPRS***可包括SGSN设备2301、UE2302和HLR/HSS2303,其中:
所述SGSN设备用于:接收UE发送的请求消息,从HLR/HSS获取认证向量,所述认证向量包含第一加密密钥和第一完整性密钥,若所述SGSN确定所述UE为第一类型UE,则为所述UE选择一种加密算法和一种完整性算法,将所选择的加密算法和完整性算法发送给所述UE,并根据所述第一加密密钥和上述第一完整性密钥,获得第二加密密钥和第二完整性密钥;
所述UE用于:向SGSN发送请求消息,接收所述SGSN发送的加密算法和完整性算法,并根据所述第一加密密钥和所述第一完整性密钥,获取所述第二加密密钥和所述第二完整性密钥;
其中,所述第二加密密钥和所述加密算法用于对所述SGSN和所述UE之间传输的消息进行机密性保护,所述第二完整性密钥和所述完整性算法用于对所述SGSN和所述UE之间传输的消息进行完整性保护。
在一些可行的实施方式中,HLR/HSS2303可用于:
接收所述SGSN发送的所述UE的标识;
根据所述UE的标识确定所述UE为第一类型UE;
向所述SGSN发送UE类型指示信息,所述UE类型指示信息用于指示所述UE为第一类型UE。
本申请实施例中,UE向SGSN发送请求消息,SGSN在判断UE为第一类型UE之后,选择加密算法和完整性算法,UE和SGSN双方根据第一加密
密钥和第一完整性密钥,计算增强的第二加密密钥和第二完整性密钥,通过第二加密密钥、第二完整性密钥以及SGSN选择的加密算法和完整性算法对UE和SGSN之间的通信消息进行加密保护和完整性保护,增强第一类型UE在GPRS网络中通信的安全性。
本申请实施例还相应公开了一种计算机存储介质,该计算机存储介质中存储有程序,运行该程序时可执行如本申请的图1-5任一项所描述的实施例。
本申请实施例还相应公开了另一种计算机存储介质,该计算机存储介质中存储有程序,运行该程序时可执行如本申请的图6-10任一项所描述的实施例。
本申请实施例还相应公开了又一种计算机存储介质,该计算机存储介质中存储有程序,运行该程序时可执行如本申请的图11所描述的实施例。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
以上对本申请实施例所提供的GPRS***密钥增强的方法、SGSN设备、UE、HLR/HSS及GPRS***进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。