端到端认证及密钥协商方法、装置及系统与流程

文档序号:17938304发布日期:2019-06-18 22:49阅读:499来源:国知局
端到端认证及密钥协商方法、装置及系统与流程

本申请涉及通信技术领域,尤其涉及一种端到端认证及密钥协商方法、装置及系统。



背景技术:

身份网络(id-orientednetworking,ion)是一种面向未来网络的新型网络架构。

在ion的网络架构中,分离了主机的身份(identity,id)和位置(locator或ipaddress),通过身份与位置的解耦,使得基于身份的会话连接可以穿越多个地址边界,不受通信地址的限制。ion的网络架构中,还建立了一个统一的控制管理层用于管理相关的服务,该控制管理层分布式部署在网络中,用于对主机的身份、位置等信息进行统一管理。

ion网络架构中,基于身份和位置分离的各主机之间进行端到端通信时,为保证通信安全,需要对端到端通信的主机进行安全认证以及密钥协商,然而目前并没有能够适用ion网络架构的端到端认证及密钥协商的方法。



技术实现要素:

本申请实施例提供一种端到端认证及密钥协商的方法、装置及系统,以适用于ion网络架构的端到端通信,提高基于ion网络架构的端到端通信的安全性。

第一方面,提供一种应用于基于身份位置分离的ion网络架构的端到端认证及密钥协商系统,该系统中包括第一通信设备和第二通信设备,第一通信设备用于向第二通信设备发送第一消息,该第一消息中包括第一通信设备生成第一通信设备与第二通信设备进行密钥协商所共享的安全参数所需的第一密钥生成参数。第二通信设备用于对第一通信设备进行身份认证,并接收第一通信设备发送的第一消息,根据第二密钥生成参数以及第一消息中包括的第一密钥生成参数生成安全参数,第二密钥生成参数为第二通信设备生成安全参数所需的密钥生成参数。第二通信设备向第一通信设备发送第二消息,第二消息中包括第二密钥生成参数。第一通信设备用于对第二通信设备进行身份认证,并接收第二消息,根据第一密钥生成参数以及第二消息中包括的第二密钥生成参数生成安全参数。

其中,上述涉及的安全参数可以包括共享密钥,共享密钥的生存周期,共享密钥的安全连接标识,以及安全连接标识的生存周期。

本申请实施例中,第一通信设备和第二通信设备通过第一消息和第二消息的交互,可完成ion网络中端到端通信的两个通信设备之间密钥的协商以及身份的认证,在进行端到端的通信时,可建立安全连接,能够避免身份假冒和中间人攻击等安全隐患,提高通信安全性。

一种可能的设计中,第一通信设备向第二通信设备发送的第一消息中还可包括第一通信设备支持的第一安全配置指示,第一安全配置指示用于指示密钥生成算法、认证算法和加密算法。第二通信设备向第一通信设备发送的第二消息中还包括第二通信设备使用的第二安全配置指示,第二安全配置指示用于指示密钥生成算法、认证算法和加密算法。第二通信设备根据第二安全配置指示、第二密钥生成参数以及第一消息中包括的第一密钥生成参数生成安全参数。第一通信设备根据第二安全配置指示、第一密钥生成参数以及第二消息中包括的第二密钥生成参数生成安全参数。

其中,第二安全配置指示与第一安全配置指示相同或者不同,以使第二通信设备在生成安全参数时选择第二通信设备支持的第二安全配置指示,而不是必须选择与第一安全配置指示相同的第二安全配置指示,使端到端认证及密钥协商的可实施性更强,灵活性更大。

另一种可能的设计中,第一通信设备可根据第一通信设备的安全能力以及用户的安全需求,确定第一密钥生成参数以及第一安全配置指示。第二通信设备也可根据第二通信设备的安全能力以及用户的安全需求,确定第二密钥生成参数以及第二安全配置指示。

又一种可能的设计中,第一通信设备和第二通信设备可通过mac验证的方式进行身份认证,例如:第二通信设备还用于根据安全参数生成第一消息认证码mac,第二消息中还包括第一mac,第一通信设备验证第二消息中包括的第一mac,以实现对第二通信设备的身份认证。

进一步的,第一通信设备还用于根据安全参数生成第二mac,并向第二通信设备发送第三消息,第三消息中包括第二mac。第二通信设备接收第一通信设备发送的第三消息,验证第三消息中包括的第二mac,以实现对第一通信设备的身份认证。

更进一步的,第二安全配置指示与第一安全配置指示不相同,则第三消息中还包括第二spn。

更进一步的,第三消息中还可包括第一通信设备正确接收第二通信设备发送的第二消息的确认消息,以使第二通信设备确认可以保存安全参数。本申请实施例中第一通信设备也可保存安全参数。

更进一步的,第一通信设备可利用加密密钥对第三消息中包括的参数进行加密,并将加密后的参数携带在第三消息中向第一通信设备发送,以进一步提高端到端通信的安全性。

本申请实施例中通过三次握手交互(第一消息、第二消息和第三消息的交互),实现第一通信设备和第二通信设备的端到端安全连接的建立,协议交互相对简单。并且在通过三次握手建立了端到端安全连接之后,在后续的数据传输过程中无需再协商安全参数,即实现了密钥协商的集中处理,无需在数据传输过程中的每个数据包中携带安全参数,传输效率较高。

又一种可能的设计中,第一通信设备和第二通信设备可预先从grids处获取安全信息,并利用该安全信息实现身份认证以及密钥协商。

一种可能的实施方式中,第一通信设备和第二通信设备从grids处获取的安全信息可以是各自的私钥。第一通信设备和第二通信设备可基于身份的签名技术,采用验证签名的方式进行身份认证,例如,第一通信设备用于根据第一通信设备私钥计算第一通信设备的签名,第一消息中还包括第一通信设备的签名。其中,第二通信设备将第一通信设备的身份标识作为公钥,验证第一通信设备的签名,以使第二通信设备通过验证第一消息中包括的第一通信设备的签名方式,实现对第一通信设备进行身份认证。第二通信设备还用于根据第二通信设备私钥计算第二通信设备的签名,第二消息中还包括第二通信设备的签名。第一通信设备将第二通信设备的身份标识作为公钥,验证第二通信设备的签名,以使第一通信设备通过验证第二消息中包括的第二通信设备的签名,实现对第二通信设备进行身份认证。

其中,第一密钥生成参数可包括第一通信设备生成的第一随机数以及根据第一随机数确定的第一dh公钥;第二密钥生成参数包括第二通信设备生成的第二随机数以及根据第二随机数确定的第二dh公钥。第二通信设备根据第一dh公钥和第二随机数生成主会话密钥,并根据主会话密钥生成安全参数。第一通信设备根据第二dh公钥和第一随机数生成主会话密钥,并根据主会话密钥生成安全参数。

本申请实施例中第一通信设备和第二通信设备结合基于身份的签名技术和dh密钥交换协议,完成了双向安全连接的建立,并实现了端到端认证及密钥协商的过程,避免安全连接建立过程中身份假冒和中间人攻击等安全隐患。

另一种可能的实施方式中,第一通信设备和第二通信设备从grids处获取的安全信息可以是对端公钥。第一通信设备和第二通信设备将对端的身份标识作为对端公钥,基于身份的加密技术,实现密钥协商过程。例如,第一密钥生成参数包括利用第二通信设备的公钥加密后的第三随机数以及第一通信设备的身份标识,第三随机数为第一通信设备生成的随机数,第二通信设备的公钥为第二通信设备的身份标识;第二密钥生成参数中包括利用第一通信设备的公钥加密后的第四随机数以及第二通信设备的身份标识,第四随机数为第二通信设备生成的随机数,第一通信设备的公钥为第一通信设备的身份标识。第二通信设备利用第二通信设备的私钥解密第一密钥生成参数,确定第一密钥生成参数解密成功时,根据第一通信设备的身份标识、第二通信设备的身份标识、第三随机数以及第四随机数,生成安全参数。第一通信设备利用第一通信设备的私钥解密第二密钥生成参数,确定第二密钥生成参数解密成功时,根据第一通信设备的身份标识、第二通信设备的身份标识、第三随机数以及第四随机数,生成安全参数。

本申请实施例中第一通信设备和第二通信设备基于ibe机制完成了双向安全连接的建立,并实现了端到端认证及密钥协商的过程,避免安全连接建立过程中身份假冒和中间人攻击等安全隐患。

又一可能的设计中,第一消息中还包括第一通信设备的grids的认证参数,第二消息中还包括第二通信设备的grids的认证参数。

本申请实施例中,第一通信设备和第二通信设备通过在交互消息中携带各自归属的grids的认证参数,可实现认证参数的共享,第一通信设备和第二通信设备存储对端通信设备归属的grids的认证参数,可使得后续在进行安全连接更新阶段无需进行交互协商。

又一种可能的设计中,第一通信设备还用于预先从第一通信设备归属的grids处获取第二通信设备归属的grids的认证参数;第一消息中还包括第一通信设备归属的grids的ap,第一通信设备和第二通信设备存储对端通信设备归属的grids的认证参数,可使得后续在进行安全连接更新阶段无需进行交互协商。

又一种可能的设计中,第一通信设备和第二通信设备还用于:在生成安全参数之后,根据安全参数中包括的共享密钥生成第一子会话密钥和第二子会话密钥,第一子会话密钥用于对第一通信设备和第二通信设备进行密钥协商过程中的消息进行安全保护,第二子会话密钥用于对第一通信设备和第二通信设备进行数据传输过程中的数据进行安全保护。

又一种可能的设计中,第二通信设备可利用加密密钥对第二消息中携带的参数进行加密,并将加密后的参数携带在第二消息中向第一通信设备发送,以进一步提高端到端通信的安全性。

第二方面,提供一种应用于基于身份位置分离的ion网络架构的端到端认证及密钥协商方法,该方法可以应用于第一通信设备,其中,第一通信设备向第二通信设备发送第一消息,第一消息中包括第一密钥生成参数,第一密钥生成参数为第一通信设备生成安全参数所需的密钥生成参数,安全参数为第一通信设备与第二通信设备进行密钥协商所共享的安全参数。第一通信设备对第二通信设备进行身份认证,并接收第二通信设备向第一通信设备发送的第二消息,第二消息中包括第二密钥生成参数,根据第一密钥生成参数以及第二消息中包括的第二密钥生成参数生成安全参数。

其中,上述涉及的安全参数可以包括共享密钥,共享密钥的生存周期,共享密钥的安全连接标识,以及安全连接标识的生存周期。

本申请实施例中,第一通信设备通过第一消息和第二消息的交互,可完成对ion网络中与其进行端到端通信的第二通信设备之间的密钥协商以及身份的认证,在进行端到端的通信时,可建立安全连接,能够避免身份假冒和中间人攻击等安全隐患,提高通信安全性。

一种可能的设计中,第一消息中还包括第一通信设备支持的第一安全配置指示,第一安全配置指示用于指示密钥生成算法、认证算法和加密算法;第二消息中还包括第二通信设备使用的第二安全配置指示,第二安全配置指示与第一安全配置指示相同或者不同,并用于指示密钥生成算法、认证算法和加密算法;第一通信设备可根据第二安全配置指示、第一密钥生成参数以及第二消息中包括的第二密钥生成参数生成安全参数。

本申请实施例中,第二安全配置指示与第一安全配置指示相同或者不同,以使第二通信设备在生成安全参数时选择第二通信设备支持的第二安全配置指示,而不是必须选择与第一安全配置指示相同的第二安全配置指示,使端到端认证及密钥协商的可实施性更强,灵活性更大。

另一种可能的设计中,第二消息中还包括第一mac,第一mac由第二通信设备根据安全参数生成;第一通信设备通过验证第二消息中包括的第一mac,对第二通信设备进行身份认证。

进一步的,第一通信设备根据第一密钥生成参数以及第二消息中包括的第二密钥生成参数生成安全参数之后,可向第二通信设备发送第三消息,第三消息中包括第二mac,第二mac由第一通信设备根据安全参数生成。

更进一步的,第二安全配置指示与第一安全配置指示不相同,则第三消息中还包括第二spn。

更进一步的,第三消息中还可包括第一通信设备正确接收第二通信设备发送的第二消息的确认消息,以使第二通信设备确认可以保存安全参数。本申请实施例中第一通信设备也可保存安全参数。

更进一步的,第一通信设备可利用加密密钥对第三消息中包括的参数进行加密,并将加密后的参数携带在第三消息中向第一通信设备发送,以进一步提高端到端通信的安全性。

又一种可能的设计中,第二消息中还包括第二通信设备的签名,第二通信设备的签名由第二通信设备根据第二通信设备私钥计算,第二通信设备私钥由第二通信设备从grids处获取。第一通信设备通过验证第二消息中包括的第二通信设备的签名,对第二通信设备进行身份认证,其中,第一通信设备将第二通信设备的身份标识作为公钥,验证第二通信设备的签名。一种可能的实施方式中,第一密钥生成参数包括第一通信设备生成的第一随机数以及根据第一随机数确定的第一dh公钥,第二密钥生成参数包括第二通信设备生成的第二随机数以及根据第二随机数确定的第二dh公钥。第一通信设备根据第二dh公钥和第一随机数生成主会话密钥,并根据主会话密钥生成安全参数。本申请实施例中第一通信设备和第二通信设备结合基于身份的签名技术和dh密钥交换协议,完成了双向安全连接的建立,并实现了端到端认证及密钥协商的过程,避免安全连接建立过程中身份假冒和中间人攻击等安全隐患。

又一种可能的设计中,第一密钥生成参数包括利用第二通信设备的公钥加密后的第三随机数以及第一通信设备的身份标识,第三随机数为第一通信设备生成的随机数,第二通信设备的公钥为第二通信设备的身份标识,第二通信设备的身份标识由第一通信设备从grids处获取。第二密钥生成参数中包括利用第一通信设备的公钥加密后的第四随机数以及第二通信设备的身份标识,第四随机数为第二通信设备生成的随机数,第一通信设备的公钥为第一通信设备的身份标识。第一通信设备利用第一通信设备的私钥解密所述第二密钥生成参数,确定第二密钥生成参数解密成功时,根据第一通信设备的身份标识、第二通信设备的身份标识、第三随机数以及第四随机数,生成所述安全参数。本申请实施例中第一通信设备和第二通信设备基于ibe机制完成了双向安全连接的建立,并实现了端到端认证及密钥协商的过程,避免安全连接建立过程中身份假冒和中间人攻击等安全隐患。

又一种可能的设计中,第一消息中还包括第一通信设备的grids的认证参数ap,第二消息中还包括第二通信设备的grids的认证参数ap。本申请实施例中,第一通信设备和第二通信设备通过在交互消息中携带各自归属的grids的认证参数,可实现认证参数的共享,第一通信设备和第二通信设备存储对端通信设备归属的grids的认证参数,可使得后续在进行安全连接更新阶段无需进行交互协商。

又一种可能的设计中,第一通信设备向第二通信设备发送第一消息之前,预先从第一通信设备归属的通用身份服务grids处获取第二通信设备归属的grids的认证参数ap。第一消息中还包括第一通信设备归属的grids的ap,第一通信设备和第二通信设备存储对端通信设备归属的grids的认证参数,可使得后续在进行安全连接更新阶段无需进行交互协商。

又一种可能的设计中,第一通信设备根据第一密钥生成参数以及第二消息中包括的第二密钥生成参数生成安全参数之后,第一通信设备根据安全参数中包括的共享密钥生成第一子会话密钥和第二子会话密钥,第一子会话密钥用于对第一通信设备和第二通信设备进行密钥协商过程中的消息进行安全保护,第二子会话密钥用于对第一通信设备和第二通信设备进行数据传输过程中的数据进行安全保护。

第三方面,提供一种应用于基于身份位置分离的ion网络架构的端到端认证及密钥协商方法,该方法可以应用于第二通信设备,其中,第二通信设备对第一通信设备进行身份认证,并接收第一通信设备发送的第一消息,第一消息中包括第一密钥生成参数,第一密钥生成参数为第一通信设备生成安全参数所需的密钥生成参数,安全参数为第一通信设备与第二通信设备进行密钥协商所共享的安全参数。第二通信设备根据第二密钥生成参数以及第一消息中包括的第一密钥生成参数生成安全参数,第二密钥生成参数为第二通信设备生成安全参数所需的密钥生成参数。第二通信设备向第一通信设备发送第二消息,第二消息中包括第二密钥生成参数。

其中,上述涉及的安全参数包括共享密钥,共享密钥的生存周期,共享密钥的安全连接标识,以及安全连接标识的生存周期。

本申请实施例中,第二通信设备通过第一消息和第二消息的交互,可完成对ion网络中与其进行端到端通信的第一通信设备之间的密钥协商以及身份的认证,在进行端到端的通信时,可建立安全连接,能够避免身份假冒和中间人攻击等安全隐患,提高通信安全性。

一种可能的设计中,第一消息中还包括第一通信设备支持的第一安全配置指示,第一安全配置指示用于指示密钥生成算法、认证算法和加密算法;第二消息中还包括第二通信设备使用的第二安全配置指示,第二安全配置指示与第一安全配置指示相同或者不同,并用于指示密钥生成算法、认证算法和加密算法。第二通信设备根据第二安全配置指示、第二密钥生成参数以及第一消息中包括的第一密钥生成参数生成安全参数。

本申请实施例中,第二安全配置指示与第一安全配置指示相同或者不同,以使第二通信设备在生成安全参数时选择第二通信设备支持的第二安全配置指示,而不是必须选择与第一安全配置指示相同的第二安全配置指示,使端到端认证及密钥协商的可实施性更强,灵活性更大。

其中,第二通信设备可根据第二通信设备的安全能力以及用户的安全需求,确定第二密钥生成参数以及第二安全配置指示。

另一种可能的设计中,第二消息中还包括第一mac,第一mac由第二通信设备根据安全参数生成。

又一种可能的设计中,第二通信设备可接收第一通信设备发送的第三消息,第三消息中包括第二mac,第二mac由第一通信设备根据安全参数生成。第二通信设备通过验证第三消息中包括的第二mac,对第一通信设备进行身份认证。

又一种可能的设计中,第一消息中还包括第一通信设备的签名,第一通信设备的签名由第一通信设备根据第一通信设备私钥计算,第一通信设备私钥由第一通信设备从通用身份服务grids处获取。第二通信设备通过验证第一消息中包括的第一通信设备的签名,对第一通信设备进行身份认证,其中,第二通信设备将第一通信设备的身份标识作为公钥,验证第一通信设备的签名。

又一种可能的设计中,第一密钥生成参数包括第一通信设备生成的第一随机数以及根据第一随机数确定的第一dh公钥,第二密钥生成参数包括第二通信设备生成的第二随机数以及根据第二随机数确定的第二dh公钥。第二通信设备根据第一dh公钥和第二随机数生成主会话密钥,并根据主会话密钥生成安全参数。

又一种可能的设计中,第一密钥生成参数包括利用第二通信设备的公钥加密后的第三随机数以及第一通信设备的身份标识,第三随机数为第一通信设备生成的随机数,第二通信设备的公钥为第二通信设备的身份标识。第二密钥生成参数中包括利用第一通信设备的公钥加密后的第四随机数以及第二通信设备的身份标识,第四随机数为第二通信设备生成的随机数,第一通信设备的公钥为第一通信设备的身份标识。第二通信设备利用第二通信设备的私钥解密第一密钥生成参数,确定第一密钥生成参数解密成功时,根据第一通信设备的身份标识、第二通信设备的身份标识、第三随机数以及第四随机数,生成安全参数。

其中,第二通信设备可通过与第一通信设备交互获取第一通信设备的身份标识,也可由grids预先将第一通信设备的身份标识分配给第二通信设备。

又一种可能的设计中,第一消息中还包括第一通信设备的通用身份服务grids的认证参数ap,第二消息中还包括第二通信设备的grids的认证参数ap;或者第一消息中还包括第一通信设备归属的grids的ap。

又一种可能的设计中,第二通信设备根据第二密钥生成参数以及第一消息中包括的第一密钥生成参数生成安全参数之后,可根据安全参数中包括的共享密钥生成第一子会话密钥和第二子会话密钥,第一子会话密钥用于对第一通信设备和第二通信设备进行密钥协商过程中的消息进行安全保护,第二子会话密钥用于对第一通信设备和第二通信设备进行数据传输过程中的数据进行安全保护。

又一种可能的设计中,第二通信设备可利用加密密钥对安全参数进行加密,并将加密后的安全参数携带在第二消息中向第一通信设备发送。

第四方面,提供一种应用于基于身份位置分离的ion网络架构的端到端认证及密钥协商装置,可应用于第一通信设备,应用于第一通信设备的端到端认证及密钥协商装置具有实现上述第二方面以及第二方面任意设计中第一通信设备的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。所述模块可以是软件和/或硬件。

一种可能的设计中,应用于第一通信设备的端到端认证及密钥协商装置可包括发送单元、接收单元和处理单元,其中,接收单元、发送单元和处理单元可以和上述第一通信设备执行的各功能步骤相对应,在此不予赘述。

另一种可能的设计中,应用于第一通信设备的端到端认证及密钥协商装置可包括至少一个处理器,存储器以及至少一个通信接口。其中,存储器与处理器耦合,用于存储各种软件程序和/或多组指令。处理器调用存储器的存储程序或指令执行上述第一通信设备执行的功能步骤,并控制通信接口收发信号。

第五方面,提供一种应用于基于身份位置分离的ion网络架构的端到端认证及密钥协商装置,可应用于第二通信设备,应用于第二通信设备的端到端认证及密钥协商装置具有实现上述第三方面以及第三方面任意设计中第二通信设备的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。所述模块可以是软件和/或硬件。

一种可能的设计中,应用于第二通信设备的端到端认证及密钥协商装置可包括接收单元、处理单元和发送单元,其中,接收单元、处理单元和发送单元可以和上述第二通信设备执行的各功能步骤相对应,在此不予赘述。

另一种可能的设计中,应用于第二通信设备的端到端认证及密钥协商装置可包括至少一个处理器,存储器以及至少一个通信接口。其中,存储器与处理器耦合,用于存储各种软件程序和/或多组指令。处理器调用存储器的存储程序或指令执行上述第二通信设备执行的功能步骤,并控制通信接口收发信号。

第六方面,提供计算机存储介质,所述计算机存储介质存储有计算机指令,当所述指令在计算机上运行时,可以完成第一方面以及第一方面任意可能设计中的第一通信设备或第二通信设备所涉及的任意一种功能。

第七方面,提供一种计算机程序产品,所述计算机程序产品中包括有计算机程序,该计算机程序用于执行完成第一方面以及第一方面任意可能设计中的第一通信设备或第二通信设备所涉及的任意一种功能。

第八方面,提供一种芯片,所述芯片与存储器相连,用于读取并执行所述存储器中存储的软件程序,以实现第一方面以及第一方面任意可能设计中的第一通信设备或第二通信设备的功能。

本申请实施例提供的应用于基于身份位置分离的ion网络架构的端到端认证及密钥协商方法、装置及系统,第一通信设备和第二通信设备通过第一消息和第二消息的交互,可完成ion网络中端到端通信的两个通信设备之间密钥的协商以及身份的认证,在进行端到端的通信时,可建立安全连接,能够避免身份假冒和中间人攻击等安全隐患,提高通信安全性。

附图说明

图1为本申请实施例所应用的系统架构图;

图2为本申请实施例提供的端到端认证及密钥协商系统结构示意图;

图3为本申请实施例提供的端到端认证及密钥协商装置结构示意图;

图4为本申请实施例提供的端到端认证及密钥协商方法实施流程图;

图5为本申请第一实施例提供的端到端认证及密钥协商方法实施流程图;

图6为本申请第二实施例提供的端到端认证及密钥协商方法实施流程图;

图7为本申请第三实施例提供的端到端认证及密钥协商方法实施流程图;

图8为本申请第四实施例提供的端到端认证及密钥协商方法实施流程图;

图9为本申请第五实施例提供的端到端认证及密钥协商方法实施流程图;

图10为本申请第六实施例提供的端到端认证及密钥协商方法实施流程图;

图11为本申请实施例提供的应用于第一通信设备的端到端认证及密钥协商装置结构示意图;

图12为本申请实施例提供的应用于第二通信设备的端到端认证及密钥协商装置结构示意图。

具体实施方式

下面将结合附图,对本申请实施例中的技术方案进行描述。

本申请实施例提供一种适用于基于身份位置分离的ion网络架构的端到端认证及密钥协商的方法,该方法可应用于图1所示的ion网络架构。参阅图1所示,ion网络架构中包括通信设备(也可称为节点设备)和通用身份服务(genericresilientidservices,grids)。通信设备可以理解为是ion网络架构的数据面,ion网络架构中的通信设备之间可进行端到端通信,例如图1中第一通信设备可通过无线接入网络(radioaccessnetwork,ran)、用户面功能(userplanfunction,upf)以及互联网(internet),与第二通信设备进行端到端通信。数据面的各通信设备进行端到端通信时支持身份与位置分离的协议,即协议栈中包括物理层(phylayer)、链路层(linklayer)、ip层(iplayer或者locator)、身份标识层(idlayer)、传输层(transport)以及应用层(app)。grids可以理解为是ion网络架构的控制面,grids分布式部署在ion网络架构中,用于对通信设备的身份标识以及位置等信息进行统一管理,例如可以提供身份的管理服务(identityservice)、身份与位置映射的管理服务(mapping/locationservice)、身份关系的管理服务(groupingservice)以及元数据的管理服务(metadataservice)。

本申请实施例中,grids还具有获取通信设备的身份标识,生成并管理各通信设备密钥的功能,grids可利用已经建立的安全通道向通信设备分发密钥。一种可能的设计中grids中可包括有密钥管理子系统(identitykeymanagementsystem,ikms),通过该ikms与各通信设备进行交互,完成密钥生成、分发和管理的功能。本申请实施例中通信设备可从grids处获取密钥,并可具有签名计算、密钥计算以及与对端通信设备进行安全参数交互的功能。通过通信设备之间进行安全参数的交互,实现端到端通信的安全认证及密钥协商,提高ion网络结构中端到端通信的安全性。

可以理解的是,本申请实施例中涉及的通信设备需支持身份与位置分离的协议,例如可以是支持身份与位置分离协议的终端,该终端又称之为用户设备(userequipment,ue)、移动台(mobilestation,ms)、移动终端(mobileterminal,mt)等,可以包括手机、平板电脑、笔记本电脑、移动互联网设备(mobileinternetdevice,mid)、可穿戴设备(例如智能手表、智能手环、计步器等)等,还可以包括支持身份与位置分离协议的其他通信设备。本申请实施例中涉及的通信设备也可以是持身份与位置分离协议的网关(gateway)等网络设备。

本申请实施例中为描述方便,将基于身份位置分离的ion网络架构中进行端到端通信的发送消息的通信设备称为第一通信设备,将基于身份位置分离的ion网络中进行端到端通信的接收消息的通信设备称为第二通信设备。

本申请实施例提供一种端到端认证及密钥协商系统,该系统中可包括第一通信设备100和第二通信设备200,如图2所示。图2中,第一通信设备100和第二通信设备200之间可进行端到端通信,并在端到端通信过程中,预先从grids处获取安全信息,并利用该安全信息进行端到端的身份认证以及密钥协商。其中,第一通信设备100和第二通信设备100可基于第一通信设备的密钥生成参数(keygenerationparameters,kgp)和第二通信设备的kgp生成共享的安全参数,以实现密钥协商的过程。其中,该共享的安全参数中可以包括共享密钥(ks),还可包括该ks的生存周期,也可进一步包括ks的安全连接标识(securityconnectionindex,sci)以及sci的生存周期。其中,ks也可称为对称密钥,或者也可称为主会话密钥,对于ks的具体名称,本申请实施例不作限定。ks的生存周期和sci的生存周期可以相同也可以不同,本申请实施例中以ks的生存周期和sci的生存周期相同,均为ts为例进行说明。

本申请实施例为描述方便,可将第一通信设备100生成共享的安全参数所需的kgp称为第一kgp,将第二通信设备200生成共享的安全参数所需的kgp称为第二kgp。第一通信设备100和第二通信设备100可在密钥协商过程中完成彼此身份的认证。

具体的,第一通信设备100可向第二通信设备200发送第一消息,第一消息中包括第一通信设备100生成安全参数所需的第一kgp,第二通信设备200接收第一通信设备100发送的第一消息,验证第一通信设备100的身份,在确定第一通信设备100身份认证通过时,根据第二kgp以及第一消息中包括的第一kgp生成安全参数。第二通信设备200向第一通信设备100发送第二消息,该第二消息中包括第二kgp。第一通信设备100接收第二通信设备200发送的第二消息,验证第二通信设备200的身份,在确定第二通信设备200的身份认证通过时,根据第一kgp以及第二消息中包括的第二kgp生成安全参数。

本申请实施例一种可能的实施方式中,第一通信设备100和第二通信设备200在生成安全参数后,可基于该安全参数生成消息认证码(messageauthenticationcode,mac),通过验证彼此的mac,实现端到端的身份认证。例如,第二通信设备200可根据安全参数生成第二通信设备的mac,该第二通信设备的mac可称为第一mac。第二通信设备200向第一通信设备100发送第二消息,第二消息中包括第二kgp、第一mac。第一通信设备100接收第二消息,验证第二消息中包括的第一mac,以实现对第二通信设备200的身份认证,若第一mac验证通过,可根据第一kgp以及第二消息中包括的第二kgp生成安全参数,并保存安全参数,以实现在确保完成第二通信设备200身份认证的前提下,保存协商的安全参数。第一通信设备100可根据生成的安全参数进一步生成第一通信设备的mac,后续可称为第二mac,并向第二通信设备200发送第三消息,第三消息中包括第二mac。第二通信设备200接收第三消息,验证第三消息中包括的第二mac,以实现对第一通信设备200的身份认证,若确定第二mac验证通过,则可保存生成的安全参数。

本申请实施例另一种可能的实施方式中,第一通信设备100和第二通信设备200可计算各自的签名,并通过签名验证的方式,实现端到端的身份认证。例如,第一通信设备100计算第一通信设备的签名,并在向第二通信设备200发送的第一消息中包括第一通信设备的签名,第二通信设备200接收第一通信设备100发送的第一消息,并将第一通信设备的身份标识作为公钥验证第一通信设备的签名,以实现对第一通信设备100的身份认证,若确定第一通信设备的签名验证通过,根据第二kgp以及第一消息中包括的第一kgp生成安全参数,并保存安全参数。第二通信设备200计算第二通信设备的签名,并在向第一通信设备100发送的第二消息中包括第二通信设备的签名,第一通信设备100接收第二通信设备200发送的第二消息,并将第二通信设备的身份标识作为公钥验证第二通信设备的签名,以实现对第二通信设备200的身份认证,若确定第二通信设备的签名验证通过,根据第一kgp以及第二消息中包括的第二kgp生成安全参数,并保存安全参数。

本申请实施例中第一通信设备100和第二通信设备200通过第一消息和第二消息的交互,完成ion网络中端到端通信的两个通信设备之间密钥的协商以及身份的认证后,可建立安全连接,并进行端到端的安全通信,能够避免身份假冒和中间人攻击等安全隐患,提高通信安全性。

图2中的第一通信设备100或者第二通信设备200可以通过图3所示的端到端认证及密钥协商装置300来实现。

如图3所示,端到端认证及密钥协商装置300可包括至少一个处理器301,存储器303以及至少一个通信接口304。这些部件可在一个或多个通信总线302上通信。

需要说明的,图3仅仅是本申请实施例的一种实现方式,实际应用中,端到端认证及密钥协商装置300还可以包括更多或更少的部件,这里不作限制。

通信接口304用于接收和发送射频信号,耦合于端到端认证及密钥协商装置300的接收器和发射器。通信接口304通过射频信号与通信网络和其他通信设备通信,如以太网(ethernet),ran,无线局域网(wirelesslocalareanetworks,wlan))等。具体实现中,通信接口304支持的通信协议可包括ion的身份与位置分离协议,当然也可包括但不限于:2g/3g、长期演进(longtermevolution,lte)、无线保真(wireless-fidelity,wi-fi)、5g新无线(newradio,nr)等等。

存储器303与处理器301耦合,用于存储各种软件程序和/或多组指令。具体实现中,存储器303可包括高速随机存取的存储器,并且也可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。存储器303可以存储操作系统(下述简称系统),例如android,ios,windows,或者linux等嵌入式操作系统。存储器303可用于存储本申请实施例的实现程序。存储器303还可以存储网络通信程序,该网络通信程序可用于与一个或多个附加设备,一个或多个终端设备,一个或多个网络设备进行通信。

处理器301可以是一个通用中央处理器(centralprocessingunit,cpu),微处理器,特定应用集成电路(application-specificintegratedcircuit,asic),或一个或多个用于控制本申请方案程序执行的集成电路。

在一些实施例中,端到端认证及密钥协商装置300还可以包括输出设备305和输入设备306。输出设备305和处理器301通信,可以以多种方式来显示信息。例如,输出设备305可以是液晶显示器(liquidcrystaldisplay,lcd),发光二级管(lightemittingdiode,led)显示设备,阴极射线管(cathoderaytube,crt)显示设备,或投影仪(projector)等。输入设备306和处理器301通信,可以以多种方式接收用户的输入。例如,输入设备306可以是鼠标、键盘、触摸屏设备或传感设备等。为了便于输出设备305和输入设备306的用户使用,在一些实施例中,存储器202还可以存储用户接口程序,该用户接口程序可以通过图形化的操作界面将应用程序的内容形象逼真的显示出来,并通过菜单、对话框以及按键等输入控件接收用户对应用程序的控制操作。当图3所示的端到端认证及密钥协商装置300实现为图2所示的第一通信设备100时,端到端认证及密钥协商装置300的存储器中可以存储一个或多个软件模块,可用于提供生成ks、验证第二通信设备的身份等功能,具体可参考后续方法实施例。当图3所示的端到端认证及密钥协商装置300实现为图2所示的第二通信设备200时,端到端认证及密钥协商装置300的存储器中可以存储一个或多个软件模块,可用于提供生成ks、验证第一通信设备的身份等功能,具体可参考后续方法实施例,具体可参考后续方法实施例。

图4所示为本申请实施例提供的一种端到端认证及密钥协商方法实施流程图,参阅图4所示,该方法包括:

s101:第一通信设备确定生成安全参数所需的第一kgp。

本申请实施例中第一通信设备可根据第一通信设备的安全能力以及用户的安全需求,确定生成安全参数所需的第一kgp。例如第一通信设备的安全能力支持采用迪菲-赫尔曼密钥交换(diffie–hellman,dh),则第一kgp可以是dh参数,例如第一通信设备生成的随机数(rand1),以及利用rand1计算的dh公钥等。再例如第一通信设备的安全能力支持采用基于身份的加密技术(identitybasedencryption,ibe),则第一kgp可以包括第一通信设备生成的随机数(anonce),以及利用第二通信设备的公钥对anonce以及第一通信设备的身份标识加密后的密文等。当第一通信设备的安全能力支持多种密钥生成方式时,可根据用户的安全需求选择对应的第一kgp。

s102:第一通信设备向第二通信设备发送第一消息,该第一消息中包括第一kgp,第二通信设备接收第一通信设备发送的第一消息。

进一步的,第一通信设备可从grids处获取第一通信设备的私钥,并利用第一通信设备的私钥计算第一通信设备的签名。第一通信设备向第二通信设备发送的第一消息中还可包括第一通信设备的签名,将第一通信设备的签名发送给第二通信设备,以使第二通信设备将第一通信设备的身份标识作为公钥,基于身份的签名技术验证第一通信设备的签名,以使第二通信设备通过验证第一消息中包括的第一通信设备的签名方式,实现对第一通信设备进行身份认证。

具体的,第一通信设备可计算第一通信设备的签名,并在向第二通信设备发送的第一消息中包括第一通信设备的身份标识以及第一通信设备的签名。第二通信设备接收第一通信设备发送的第一消息,在根据第一kgp和第二kgp生成安全参数之前,依据第一通信设备的身份标识验证第一通信设备的签名。若确定第一通信设备的签名验证通过,则再执行生成安全参数的步骤。若确定第一通信设备的签名验证未通过,则可丢弃第一消息。

本申请实施例中,若第一消息中包括第一通信设备的签名,则第二通信设备接收到第一消息后,可验证第一通信设备的签名,若验证通过,则可继续执行s103的步骤。

进一步的,第一消息中还可包括第一通信设备的身份标识和第二通信设备的身份标识。其中,第一通信设备可预先获取第二通信设备的身份标识,具体获取方式不限定,例如可采用预配置的方式。第一通信设备可生成第一通信设备的身份标识,也可由grids向第一通信设备分发第一通信设备的身份标识,本申请实施例不作限定。

s103:第二通信设备确定第二kgp,并根据第一kgp和第二kgp生成安全参数。

具体的,本申请实施例中第二通信设备可采用与第一通信设备确定第一kgp方式类似的方式确定第二kgp。第二通信设备确定了第二kgp后,可根据第二kgp以及接收的第一消息中包括的第一kgp,生成安全参数。

进一步的,本申请实施例中第二通信设备还可确定安全参数的生存周期,以及安全参数的sci,以及sci的生存周期。安全参数的生存周期与sci的生存周期可相同也可不同,本申请实施例以下以安全参数的生存周期与sci的生存周期相同为例进行说明,都设为ts。第二通信设备建立第二通信设备的身份标识与sci的映射关系,可通过第二通信设备的身份标识确定sci,并通过sci确定安全参数。通过确定ts,可在ts达到生存周期时,进行sci的更新或者安全参数的更新。

更进一步的,本申请实施例中还可根据生成的安全参数生成第一mac,将该第一mac发送给第一通信设备,以使第一通信设备通过验证该第一mac实现对第二通信设备的身份认证。

s104:第二通信设备向第一通信设备发送第二消息,该第二消息中包括第二kgp。

一种可能的示例中,第二消息中还可包括sci以及ts,或者进一步的还可包括第一mac。

更进一步的,本申请实施例中第二通信设备可从grids处获取第二通信设备的私钥,并利用第二通信设备的私钥计算第二通信设备的签名,并在向第一通信设备发送的第二消息中包括第二通信设备的身份标识以及该第二通信设备的签名,以使第一通信设备将第二通信设备的身份标识作为公钥,验证第二通信设备的签名,以使第一通信设备通过验证第二消息中包括的第二通信设备的签名,实现对第二通信设备进行身份认证。

可以理解的是,第一mac和第二通信设备的签名可以是以择一的方式向第一通信设备发送。

s105:第一通信设备接收第二通信设备发送的第二消息,验证第二通信设备的身份。

本申请实施例中,第一通信设备可通过将第二通信设备的身份标识作为公钥验证第二消息中包括的第二通信设备的签名,实现对第二通信设备的身份的认证。第一通信设备也可通过验证第二消息中包括的第一mac,实现对第二通信设备的身份的认证。若第二通信设备的身份认证通过,第一通信设备可根据第一kgp以及第二消息中包括的第二kgp生成安全参数,并确定该安全参数的sci为第二消息中包括的sci,该sci的ts为第二消息中包括的ts。第一通信设备保存安全参数、sci以及ts,以实现在确保完成第二通信设备身份认证的前提下,保存协商的安全参数、sci以及ts等安全参数。

本申请实施例中,第一通信设备可建立第一通信设备的身份标识与sci的映射关系,可通过第一通信设备的身份标识确定sci,并通过sci确定安全参数。通过确定的ts,在ts达到生存周期时,进行sci的更新或者安全参数的更新。

可以理解的是,本申请实施例中s105中验证第一mac和验证第二通信设备的签名可以任选其一。

本申请实施例中,第一通信设备可根据生成的安全参数进一步生成第二mac,将该第二mac发送给第二通信设备,以使第二通信设备通过验证该第二mac实现对第一通信设备发送的消息进行安全认证。

s106:第一通信设备向第二通信设备发送第三消息,第三消息中包括第二mac。

可以理解的是,该s106步骤为可选步骤,第二通信设备若通过其它方式实现了对第一通信设备身份的认证,则可无需执行该步骤。

进一步的,本申请实施例中第三消息中还可包括用于指示正确接收到第二通信设备发送的sci、ts等安全参数的确认消息,以使第二通信设备在完成对第一通信设备身份的认证的情况下,保存sci、ts等安全参数。当然本申请实施例中也可在第三消息中包含sci、ts等安全参数。

s107:第二通信设备接收第一通信设备发送的第三消息,并通过验证第三消息中包括的第二mac,确定第三消息是否被篡改。若第二mac验证未通过,表征第三消息被篡改,可直接丢弃该第三消息。若第二mac验证通过,表征第三消息未被篡改,进而可保存第二通信设备生成的安全参数,以及sci和ts。

通过上述交互方式,完成第一通信设备和第二通信设备之间的密钥协商,并在密钥协商的过程中完成了对第一通信设备和第二通信设备的双向安全认证。

本申请实施例一种可能的示例中,第二通信设备可根据第二通信设备的安全配置指示(securityprofilenumber,spn)中指示的密钥生成算法、认证算法和加密算法,根据第二kgp以及第一kgp生成安全参数,并根据生成的安全参数生成第一mac。

一种可能的示例中,第二通信设备可根据第一通信设备的spn确定第二通信设备的spn。本申请实施例中为描述方便,将第一通信设备的spn称为第一spn,将第二通信设备的spn称为第二spn。其中,第一spn可用于指示第一通信设备支持的密钥生成算法、第一通信设备支持的认证算法和第一通信设备支持的加密算法。第二spn用于指示第二通信设备生成所述安全参数以及所述第一mac所使用的密钥生成算法、认证算法和加密算法。本申请实施例中第二spn可包含在第二通信设备向第一通信设备发送的第二消息中,以使第一通信设备根据该第二spn,以及第一kgp和第二kgp生成安全参数,保证第一通信设备生成的安全参数与第二通信设备生成的安全参数相同。

其中,第一通信设备可向第二通信设备发送第一spn,该第一spn可包含在第一通信设备向第二通信设备发送的第一消息中。第二通信设备可根据第一spn确定和第一spn相同的第二spn,也可以确定与第一spn不同的第二spn。本申请实施例中,若第二spn与第一spn不相同,则第一通信设备可在向第二通信设备发送的第三消息中包括第一通信设备生成安全参数以及第二mac所使用的第二spn,以使第二通信设备确定第一通信设备生成安全参数以及第二mac所使用的spn,是与第二通信设备生成安全参数以及第一mac所使用的spn相同。

进一步的,本申请实施例中第一通信设备和第二通信设备可从各自所属的grids处获取密钥,然后再进行密钥协商。其中,第一通信设备所属的grids与第二通信设备所属的grids可相同,也可不相同。其中,第一通信设备所属的grids与第二通信设备所属的grids相同的情况下,第一通信设备和第二通信设备所用的认证参数(authenticationparameter,sp)相同。

第一通信设备所属的grids与第二通信设备所属的grids不相同的情况下,第一通信设备所用的ap和第二通信设备所用的ap不相同,此时,一种可能的示例中,可在第一消息中包括第一通信设备的grids的ap,以使第二通信设备确定第一通信设备所用的ap。在第二消息中包括第二通信设备的grids的ap,以使第一通信设备确定第二通信设备所用的ap。另一种可能的示例中,可由第一通信设备的grids与第二通信设备的grids预先进行彼此ap的交互。第一通信设备可预先获取第二通信设备的grids的ap,在第一消息中包括第一通信设备的grids的ap,以使第二通信设备确定第一通信设备所用的ap。或者第二通信设备可预先获取第一通信设备的grids的ap,在第二消息中包括第二通信设备的grids的ap,以使第一通信设备确定第二通信设备所用的ap。

一种可能的实施方式中,,第一通信设备和第二通信设备从grids处获取的安全信息可以是对端的身边标识。第一通信设备和第二通信设备将对端的身份标识作为对端公钥,基于身份的加密技术,实现密钥协商过程。例如,第一密钥生成参数包括利用第二通信设备的公钥加密后的第三随机数以及第一通信设备的身份标识,第三随机数为第一通信设备生成的随机数,第二通信设备的公钥为第二通信设备的身份标识;第二密钥生成参数中包括利用第一通信设备的公钥加密后的第四随机数以及第二通信设备的身份标识,第四随机数为第二通信设备生成的随机数,第一通信设备的公钥为第一通信设备的身份标识。第二通信设备利用第二通信设备的私钥解密第一密钥生成参数,确定第一密钥生成参数解密成功时,根据第一通信设备的身份标识、第二通信设备的身份标识、第三随机数以及第四随机数,生成安全参数。第一通信设备利用第一通信设备的私钥解密第二密钥生成参数,确定第二密钥生成参数解密成功时,根据第一通信设备的身份标识、第二通信设备的身份标识、第三随机数以及第四随机数,生成安全参数。

其中,第二通信设备可通过与第一通信设备交互获取第一通信设备的身份标识,例如通过第一消息获取第一通信设备的身份标识。第二通信设备也可从grids处获取第一通信设备的身份标识。对于第二通信设备获取第一通信设备的身份标识的具体实现方式,本申请实施例不作限定。

本申请实施例以下将结合实际应用对上述实施例中涉及的端到端认证及密钥协商的实施方法进行举例说明。

本申请实施例以下各实施例中以安全参数中包括ks、ks的sci以及ts为例进行说明。

本申请实施例首先以第一通信设备和第二通信设备位于同一grids网络域内,第一通信设备和第二通信设备通过基于身份的签名技术(identitybasedsignature,ibs)进行端到端的身份认证,并采用dh密钥交换技术生成ks,通过三次握手消息交互建立安全连接的实施过程为例进行说明。

图5所示为本申请实施例提供的端到端认证及密钥协商方法的第一实施例的实施流程图,参阅图5所示,该方法包括:

s201:grids生成密钥并向第一通信设备和第二通信设备分发生成的密钥。

具体的,grids可向第一通信设备分发公钥以及第一通信设备的私钥,其中该公钥可以是第二通信设备的身份标识。grids可向第二通信设备分发公钥以及第二通信设备的私钥,其中该公钥可以是第一通信设备的身份标识。

第一通信设备和第二通信设备获取双方的身份标识,以及各自对应的密钥(私钥)后,开始执行端到端认证以及密钥协商过程。

s202:第一通信设备选择安全参数集。

本申请实施例中第一通信设备的安全参数集中包括有第一kgp,也可包括第一spn,还可包括认证参数(authenticationparameter,ap)。其中,第一通信设备可根据第一通信设备的安全能力以及用户的安全需求选择第一通信设备的安全参数集。例如,本申请实施例中第一通信设备可选择第一kgp为dh参数,第一通信设备生成第一随机数(rand1),并利用rand1计算第一通信设备的dh公钥(第一dh公钥)。第一通信设备的dh公钥可表示为:a=grnad1modp,其中p为一个素数,g是一个有限循环群g的生成元。g和p可以提前公开,也可以以明文形式发送给第二通信设备。其中,第一kgp中可包括利用rand1计算的第一dh公钥。

第一通信设备还可选择spn参数,例如选择密钥生成算法(keyderivationfunction,kdf)为prf-hmac-sha1、认证算法选择为hmac-sha1-96,加密算法为aes。本申请实施例中可将第一通信设备选择的spn参数称为第一spn。进一步的,第一通信设备还可选择ap,该ap内可包括第一通信设备所属的grids的ap参数,由于本申请实施例中第一通信设备所属的grids与第二通信设备所属的grids相同,故第一通信设备所属的grids的ap参数与第二通信设备所属的grids的ap参数相同,本申请实施例中可不选择ap参数。

s203:第一通信设备向第二通信设备发送第一消息,该第一消息中包括第一通信设备的安全参数集,以及第一通信设备的签名。

本申请实施例中第一通信设备可计算第一通信设备的签名,并将第一通信设备的签名携带在第一消息中发送给第二通信设备。其中,第一通信设备的签名可表示为:siga=siga(ska,m1),其中,siga为第一通信设备的签名,ska为第一通信设备的私钥,m1为第一消息。

进一步的,第一通信设备向第二通信设备发送的第一消息中还可包括第一通信设备的身份标识和第二通信设备的身份标识。

s204:第二通信设备接收第一通信设备发送的第一消息,验证第一通信设备的签名。

其中,第二通信设备利用公钥(第一通信设备的身份标识)验证第一消息中包含的第一通信设备的签名,若验证通过,则可执行s205步骤,若验证不通过,则可丢弃第一消息。

s205:第二通信设备根据第二kgp、以及第一通信设备的安全参数集中包括的第一kgp和第一spn,生成ks。

具体的,第二通信设备确定第二kgp,其中,第二通信设备可生成第二通信设备的随机数,第二通信设备的随机数可称为第二随机数(rand2)。第二通信设备利用rand2计算第二通信设备的dh公钥。第二通信设备的dh公钥可表示为:b=grnad2modp,其中p为一个素数,g是一个有限循环群g的生成元,p和g与生成第一通信设备的dh公钥所用的p和g相同。第二kgp中包括利用rand2计算的第二通信设备的dh公钥(第二dh公钥)。

第二通信设备可利用第一spn指示的kdf(prf-hmac-sha1),根据第一通信设备的dh公钥、第二随机数、第一通信设备的身份标识、第二通信设备的身份标识生成ks,ks=prf-hmac-sha1(pmk||ida||idb),其中,pmk=arnad2modp,ida为第一通信设备的身份标识,idb为第二通信设备的身份标识,a为第一通信设备的dh公钥,rnad2为第二通信设备生成的随机数,||符号表征字符连接,也可以理解为是各个参数之间的级联,prf-hmac-sha1为第一spn指示的kdf,该prf-hmac-sha1也可以理解为是第二spn指示的kdf,本申请实施例中第一spn与第二spn指示的kdf相同。

进一步的,第二通信设备可确定ks的sci以及所述ks和sci的生存周期ts。

更进一步的,第二通信设备可在生成ks之后,根据所述ks生成第一子会话密钥和第二子会话密钥。第一子会话密钥可包括后续密钥协商过程中的加密密钥(kse)和完整性密钥(ksi),用于对第一通信设备和第二通信设备进行密钥协商过程中的消息进行安全保护。第二子会话密钥可包括数据传输过程中用到的加密密钥(ksed)和完整性密钥(ksid),用于对第一通信设备和第二通信设备进行数据传输过程中的数据进行安全保护。

本申请实施例中第二通信设备还可根据ks计算第一mac,第一mac可表示为:mac1=hmac-sha1-96(ksi,m2)),其中,mac1为第一mac,hmac-sha1-96为第一spn指示的认证算法,ksi为完整性密钥,m2为第三消息。

本申请实施例中第二通信设备可计算第二通信设备的签名,并将第二通信设备的签名携带在第二消息中发送给第一通信设备。其中,第二通信设备的签名可表示为:sigb=sigb(skb,m1||dha),其中,sigb为第二通信设备的签名,skb为第二通信设备的私钥,m1为第一消息,dha为第一通信设备的dh公钥,||符号表征字符连接,也可以理解为是各个参数之间的级联。

s206:第二通信设备向第一通信设备发送第二消息,第二消息中包括第二通信设备的安全参数集以及第二通信设备的签名(sigb)。

其中,第二通信设备的安全参数集可包括第二kgp,第二spn(第一spn)、sci以及ts等。其中,第二kgp可以是第二dh公钥。第二spn(第一spn)中可以包括生成ks采用的指示的kdf(prf-hmac-sha1),还可以包括认证算法(hmac-sha1-96)和加密算法(aes)。

进一步的,第二消息中还可包括第一通信设备的身份标识和第二通信设备的身份标识。

s207:第一通信设备接收第二通信设备发送的第二消息,验证第二通信设备的签名。

其中,第一通信设备可利用公钥(第二通信设备的身份标识)验证第二消息中包含的第二通信设备的签名,若验证通过,则可执行s208步骤,若验证不通过,则可丢弃第二消息。

s208:第一通信设备根据第一kgp、以及第二通信设备的安全参数集中包括的第二kgp和第二spn,生成ks。

第一通信设备可利用第二spn指示的kdf(prf-hmac-sha1),根据第二dh公钥、第一随机数、第一通信设备的身份标识、第二通信设备的身份标识生成ks,ks=prf-hmac-sha1(pmk||ida||idb),其中,pmk=brnad1modp,ida为第一通信设备的身份标识,idb为第二通信设备的身份标识,b为第二dh公钥,rnad1为第一随机数,||符号表征字符连接,也可以理解为是各个参数之间的级联,prf-hmac-sha1为第二spn指示的kdf。

进一步的,第一通信设备可在生成ks之后,根据所述ks生成第一子会话密钥和第二子会话密钥。第一子会话密钥可包括后续密钥协商过程中的加密密钥(kse)和完整性密钥(ksi),用于对第一通信设备和第二通信设备进行密钥协商过程中的消息进行安全保护。第二子会话密钥可包括数据传输过程中用到的加密密钥(ksed)和完整性密钥(ksid),用于对第一通信设备和第二通信设备进行数据传输过程中的数据进行安全保护。

更进一步的,第一通信设备可利用ks计算mac,例如可采用公式mac=hmac-sha1-96(ksi,m2)计算mac,通过比较计算的mac与mac1是否一致,以实现对第二消息中的mac1进行验证,在确定mac1验证通过时,第一通信设备保存第二消息中包括的sci、ts以及生成的ks。

更进一步的,第一通信设备可生成第二mac,并将该第二mac携带在第三消息中发送给第二通信设备。其中,该第二mac可表示为:mac2=hmac-sha1-96(ksi,m3||dhb)),其中,hmac-sha1-96为第二spn指示的认证算法,ksi为完整性密钥,m3为第三消息,dhb为第二dh公钥,||符号表征字符连接,也可以理解为是各个参数之间的级联。

s209:第一通信设备向第二通信设备发送第三消息,第三消息中包括用于指示正确接收到第二通信设备发送的sci、ts等安全参数的确认消息以及第一通信设备生成的第二mac。

s210:第二通信设备接收第一通信设备发送的第三消息,验证第三消息中包括的第二mac。

其中,第二通信设备可利用ksi计算mac,并比较计算的mac与第三消息中的mac是否一致,以实现对第三消息中的mac进行验证。若计算的mac与第三消息中的mac一致,则第三消息中的mac验证通过,第二通信设备可保存生成的ks,该ks的sci,以及ks和sci的生存周期ts。

本申请实施例中第一通信设备和第二通信设备结合dh密钥交换协议和ibs安全,完成了双向安全连接的建立,并实现了端到端认证及密钥协商的过程,避免安全连接建立过程中身份假冒和中间人攻击等安全隐患。

进一步的,本申请实施例中上述应用于ion网络架构的端到端认证及密钥协商过程,可实现安全连接与身份标识的绑定,即使通信设备位置改变,安全连接也无需更新,降低安全管理开销。

更进一步的,本申请实施例中通过三次握手实现第一通信设备和第二通信设备的端到端安全连接的建立,协议交互相对简单。并且在通过三次握手建立了端到端安全连接之后,在后续的数据传输过程中无需再协商安全参数,即实现了密钥协商的集中处理,无需在数据传输过程中的每个数据包中携带安全参数,传输效率较高。

更进一步的,本申请第一实施例中基于ibs的身份认证,可消除对公钥证书和认证中心的依赖,避免获取公钥证书和维护公钥证书的额外开销。

本申请另一实施例中,第一通信设备和第二通信设备可以通过ibe三次信息交互完成端到端的身份认证以及密钥协商。本申请第二实施例中以第一通信设备和第二通信设备位于同一grids网络域内,第一通信设备和第二通信设备通过基于ibe的机制进行端到端的身份认证和密钥协商,建立安全连接的实施过程为例进行说明。

图6所示为本申请实施例提供的端到端认证及密钥协商方法的第二实施例的实施流程图。参阅图6所示,该方法包括:

s301:grids生成密钥并向第一通信设备和第二通信设备分发生成的密钥。

s301的具体执行过程与s201的执行过程类似,本申请实施例在此不再详述。

s302:第一通信设备选择安全参数集。

其中,第一通信设备的安全参数集可包括有第一kgp,也可包括第一spn,还可包括ap。其中,第一通信设备可产生本端随机数(anonce),本申请实施例可将该随机数称为第三随机数,第一通信设备利用第二通信设备的公钥(第二通信设备的身份标识)加密第三随机数和第一通信设备的身份标识,例如,可采用公式en(anonce||ida,idb)加密第三随机数和第一通信设备的身份标识。其中,anonce为第三随机数,||符号表征字符连接,也可以理解为是各个参数之间的级联,ida为第一通信设备的身份标识,idb为第二通信设备的身份标识。第一通信设备将加密后的第一通信设备生成的第三随机数以及所述第一通信设备的身份标识,作为第一kgp。

第一通信设备还可选择第一spn以及ap放入第一通信设备的安全参数集中,其中,第一通信设备选择第一spn以及ap的过程,可参阅上述第一实施例的相关描述,在此不再详述。

s303:第一通信设备向第二通信设备发送第一消息,该第一消息中包括第一通信设备的安全参数集。

其中,第一消息中还可包括第一通信设备的身份标识和第二通信设备的身份标识。

s304:第二通信设备接收第一通信设备发送的第一消息,并利用第二通信设备的私钥解密第一通信设备的安全参数集中包括的第一kgp,若成功解密,则可执行s305,若解密失败,则可丢弃第一消息。

s305:第二通信设备根据第一通信设备的身份标识、第二通信设备的身份标识、第三随机数以及第四随机数生成ks。

具体的,第二通信设备可生成第二通信设备的随机数(bnonce),本申请实施例中可称为第四随机数,并利用第一通信设备的公钥(第一通信设备的身份标识)加密第四随机数和第二通信设备的身份标识,例如,可采用公式en(bnonce||ida,idb)加密第四随机数和第二通信设备的身份标识。其中,bnonce为第四随机数,||符号表征字符连接,也可以理解为是各个参数之间的级联,ida为第一通信设备的身份标识,idb为第二通信设备的身份标识。第二通信设备将加密后的第四随机数以及所述第二通信设备的身份标识,作为第一kgp。

本申请实施例中,第二通信设备可利用第一spn中指示的kdf,根据第一通信设备的身份标识、第二通信设备的身份标识以及第一通信设备的随机数生成ks,例如,ks=kdf(ida||idb||anonce||bnonce)。其中,ida为第一通信设备的身份标识,idb为第二通信设备的身份标识,||符号表征字符连接,也可以理解为是各个参数之间的级联,anonce为第三随机数,bnonce为第四随机数。

本申请实施例中,第二通信设备可根据ks进一步获取后续密钥协商过程的加密密钥kse和完整性密钥ksi,以及数据传输用到的加密密钥ksed和完整性密钥ksid。

本申请实施例中,第二通信设备也可利用ks计算第一mac,其中,第一mac采用如下公式确定:mac1=hmac-sha1-96(ksi,m2))。

进一步的,第二通信设备可确定ks的sci以及所述ks和sci的生存周期ts。

s306:第二通信设备向第一通信设备发送第二消息,该第二消息中包括第二通信设备的安全参数集以及第一mac。

其中,第二通信设备的安全参数集可包括第二kgp,第二spn(第一spn)、sci以及ts等。其中,第二kgp可以是加密后的第四随机数以及第二通信设备的身份标识:en(bnonce||ida,idb)。第二spn(第一spn)中可以包括生成ks采用的指示的kdf(prf-hmac-sha1),还可以包括认证算法(hmac-sha1-96)和加密算法(aes)。

进一步的,第二消息中还可包括第一通信设备的身份标识和第二通信设备的身份标识。

s307:第一通信设备接收第二通信设备发送的第二消息,利用第一通信设备的私钥ska解密第二kgp,如果解密不成功,直接丢弃第二消息,如果解密通过,继续执行s308的步骤。

s308:第一通信设备根据第一通信设备的身份标识、第二通信设备的身份标识、第三随机数以及第四随机数生成ks。

具体的,第一通信设备可利用第二spn指示的kdf,采用公式ks=kdf(ida||idb||anonce||bnonce),生成ks。其中,ida为第一通信设备的身份标识,idb为第二通信设备的身份标识,||符号表征字符连接,也可以理解为是各个参数之间的级联,anonce为第三随机数,bnonce为第四随机数。

本申请实施例中,第一通信设备可根据ks进一步获取后续密钥协商过程的加密密钥kse和完整性密钥ksi,以及数据传输用到的加密密钥ksed和完整性密钥ksid。

更进一步的,第一通信设备可利用ks计算mac,例如可采用公式mac=hmac-sha1-96(ksi,m2)计算mac,通过比较计算的mac与mac1是否一致,以实现对第二消息中的mac1进行验证,在确定mac1验证通过时,第一通信设备保存第二消息中包括的sci、ts以及生成的ks。

更进一步的,第一通信设备可生成第二mac,并将该第二mac携带在第三消息中发送给第二通信设备。其中,该第二mac可表示为:mac2=hmac-sha1-96(ksi,m3)),其中,hmac-sha1-96为第二spn指示的认证算法,ksi为完整性密钥,m3为第三消息。

s309:第一通信设备向第二通信设备发送第三消息,第三消息中包括用于指示正确接收到第二通信设备发送的sci、ts等安全参数的确认消息以及第一通信设备生成的第二mac。

s310:第二通信设备接收第一通信设备发送的第三消息,验证第三消息中包括的第二mac。

其中,第二通信设备可利用ksi计算mac,并比较计算的mac与第三消息中的mac是否一致,以实现对第三消息中的mac进行验证。若计算的mac与第三消息中的mac一致,则第三消息中的mac验证通过,第二通信设备可保存生成的ks,该ks的sci,以及ks和sci的生存周期ts。

本申请实施例中第一通信设备和第二通信设备基于ibe机制完成了双向安全连接的建立,并实现了端到端认证及密钥协商的过程,避免安全连接建立过程中身份假冒和中间人攻击等安全隐患。

本申请上述第一实施例和第二实施例中,第二通信设备生成ks时采用的第二spn与第一spn相同,在具体实施时,第二spn也可与第一spn不同,例如,第一消息的安全参数集中包括的第一spn指示的加密算法为aes,但是第二通信设备支持的加密算法为des,故第二通信设备可采用与第一spn不同的第二spn生成ks。

本申请第三实施例中以第一通信设备和第二通信设备基于ibs技术进行端到端的身份认证,并采用dh密钥交换技术生成ks为例,对第二通信设备采用与第一spn不同的第二spn生成ks的具体实施过程进行举例说明,对于第一通信设备和第二通信设备基于ibe技术实现端到端认证以及密钥协商的过程类似,在此不再赘述。

图7所示为本申请实施例提供的端到端认证及密钥协商方法的第三实施例的实施流程图。图7中,s401、s402、s403、s404、s406、s407和s410的实施过程与图5中s201、s202、s203、s204、s206、s207和s210的实施过程相同,在此不再赘述,以下仅就不同之处进行说明。

s405:第二通信设备接收第一通信设备发送的第一消息,选择与第一消息中包括的第一spn不同的第二spn生成ks。

例如,本申请实施例中第一spn指示的加密算法为aes,第二通信设备可选择第二spn指示的des加密算法生成ks。

本申请实施例中第二通信设备可将与第一spn不同的第二spn携带在第二消息中向第一通信设备发送。

本申请实施例中s405的执行步骤中除生成ks所采用的加密算法与第一spn中指示的加密算法不同以外,其它的执行过程可参阅s205的描述,本申请实施例在此不再详述。

s408:第一通信设备接收第二通信设备发送的第二消息,根据第二消息中包括的第二spn生成ks。

本申请实施例中第一通信设备生成ks的执行步骤与s208生成ks的执行步骤中所使用的spn不同以外,其它执行过程都相同,故具体的执行过程可参阅s208的相关描述,在此不再详述。

s409:第一通信设备向第二通信设备发送第三消息,第三消息中除包括sci、ts以及第一通信设备生成的第二mac以外,还包括第二spn。

本申请第三实施例中,第二通信设备在生成ks时选择第二通信设备支持的第二spn,而不是必须选择与第一spn相同的第二spn,使端到端认证及密钥协商的可实施性更强,灵活性更大。

本申请上述第一实施例、第二实施例以及第三实施例中,第二通信设备向第一通信设备发送第二消息时,可利用加密密钥kse对所述第二消息中包括的安全参数进行加密,并将加密后的安全参数携带在第二消息中向第一通信设备发送,以进一步提高端到端通信的安全性。第一通信设备向第二通信设备发送第三消息时,也可利用加密密钥kse对第三消息中包括的安全参数进行加密,并将加密后的安全参数携带在第三消息中向第二通信设备发送,以进一步提高端到端通信的安全性。

本申请第四实施例中仍以第一通信设备和第二通信设备基于ibs技术进行端到端的身份认证,并采用dh密钥交换技术生成ks为例,对第二通信设备采用与第一spn不同的第二spn生成ks的具体实施过程进行举例说明,对于第一通信设备和第二通信设备基于ibe技术实现端到端认证以及密钥协商的过程类似,在此不再赘述。

图8所示为本申请实施例提供的端到端认证及密钥协商方法的第四实施例的实施流程图。图8中,s501、s502、s503、s504、s505、s507、s508和s510的实施过程与图5中s201、s202、s203、s204、s205、s207、s208和s210的实施过程相同,在此不再赘述,以下仅就不同之处进行说明。

s506:第二通信设备向第一通信设备发送第二消息,第二消息中包括第二通信设备的签名(sigb)以及加密的安全参数集。

本申请实施例中第二通信设备生成ks,并确定了ks的sci以及sci的ts后,可将生成ks所用的第二spn,sci和ts等安全参数,利用kse加密后携带在第二消息中发送给第一通信设备。

本申请实施例中第二通信设备发送第二消息执行步骤中除需要对安全参数进行加密以外,其它执行步骤与s206的执行步骤相同,故具体的执行过程可参阅s206的相关描述,在此不再详述。

s509:第一通信设备向第二通信设备发送第三消息,第三消息中除包括第二mac以外,还包括加密的sci、ts,也可包括加密的第二spn。

本申请实施例中sci、ts、第二spn等安全参数采用加密的方式发送给对端,可进一步提高安全连接建立过程中的传输消息的安全性。

本申请上述第一实施例、第二实施例、第三实施例以及第四实施例中均是以第一通信设备和第二通信设备位于同一grids网络管理域中进行举例说明的,在具体实施时,第一通信设备和第二通信设备可位于不同的grids网络管理域中。若第一通信设备和第二通信设备位于不同的grids网络管理域中,则第一通信设备和第二通信设备需要共享ap,才能验证对方的签名,例如,第一通信设备和第二通信设备需要共享ibs签名所需的全局主公钥(globalprimarykey,gpk),第一通信设备和第二通信设备也可共享认证参数ap。

本申请第五实施例中仍以第一通信设备和第二通信设备基于ibs技术进行端到端的身份认证,并采用dh密钥交换技术生成ks为例,对第二通信设备采用与第一spn不同的第二spn生成ks的具体实施过程进行举例说明,对于第一通信设备和第二通信设备基于ibe技术实现端到端认证以及密钥协商的过程类似,在此不再赘述。

图9所示为本申请实施例提供的端到端认证及密钥协商方法的第五实施例的实施流程图。图9中,s604、s605、s607、s608、s609和s610的实施过程与图5中s204、s205、s207、s208、s209和s210的实施过程相同,在此不再赘述,以下仅就不同之处进行说明。

s601:第一通信设备归属的grids生成密钥并向第一通信设备分发生成的密钥,第二通信设备归属的grids生成密钥并向第二通信设备分发生成的密钥。

具体的,第一通信设备归属的grids可向第一通信设备分发公钥以及第一通信设备的私钥,其中该公钥可以是第二通信设备的身份标识。第二通信设备归属的grids可向第二通信设备分发公钥以及第二通信设备的私钥,其中该公钥可以是第一通信设备的身份标识。

本申请实施例中第一通信设备归属的grids和第二通信设备归属的grids需要共享第一通信设备和第二通信设备之间的认证参数ap,例如,可采用如下方式实现ap的共享。

s602:第一通信设备选择安全参数集,该安全参数集中除包括第一kgp以外,还需要包括第一通信设备归属的grids的认证参数(apa)。

本申请实施例中第一通信设备选择安全参数集的过程与s202中第一通信设备选择安全参数集的执行过程类似,不同之处仅在于第一通信设备需要确定第一通信设备归属的grids的认证参数(apa)。

s603:第一通信设备向第二通信设备发送第一消息,该第一消息中包括的第一通信设备安全参数集中包括有第一通信设备归属的grids的认证参数(apa)。

本申请实施例中第一通信设备向第二通信设备发送的第一消息中包含的内容与s203中涉及的第一消息包含的内容类似,不同之处在于需要额外包含第一通信设备归属的grids的认证参数(apa)。

s606:第二通信设备向第一通信设备发送第二消息,第二消息中包括的第二通信设备安全参数集中包括有第二通信设备归属的grids的认证参数(apb)。

本申请实施例中第二通信设备在确定第二通信设备的安全参数集时,除确定第二kgp、第二spn以外,还需要额外确定第二通信设备归属的grids的认证参数(apb),并将该第二通信设备归属的grids的认证参数(apb)携带在第二消息中发送给第一通信设备。

本申请实施例中,第一通信设备和第二通信设备通过在交互消息中携带各自归属的grids的认证参数,可实现认证参数的共享,第一通信设备和第二通信设备存储对端通信设备归属的grids的认证参数,可使得后续在进行安全连接更新阶段无需进行交互协商。

本申请第六实施例中提供了另一种共享ap的实施方式,在第六实施例中,第一通信设备归属的grids与第二通信设备归属的grids可预先交换各自的ap。第一通信设备预先从第一通信设备归属的grids处获取第二通信设备归属的grids的ap,以使第一通信设备能够确定进行端到端认证以及密钥协商过程中所用的第一通信设备归属的grids的ap以及第二通信设备归属的grids的ap。第一通信设备在向第二通信设备发送的第一消息中包括第一通信设备归属的grids的ap,以使第二通信设备确定进行端到端认证以及密钥协商过程中所用的第一通信设备归属的grids的ap以及第二通信设备归属的grids的ap。第一通信设备和第二通信设备存储对端通信设备归属的grids的认证参数,可使得后续在进行安全连接更新阶段无需进行交互协商。

图10所示为本申请实施例提供的端到端认证及密钥协商方法的第六实施例的实施流程图。图10中以第一通信设备预先获取第二通信设备归属的grids的ap(apb),将第一通信设备归属的grids的ap(apa)包含在向第二通信设备发送的第一消息中为例进行说明。

图10中,s704、s705、s706、s707、s708、s709和s710的实施过程与图5中s204、s205、s206、s207、s208、s209和s210的实施过程相同,在此不再赘述,以下仅就不同之处进行说明。

s701:第一通信设备归属的grids与第二通信设备归属的grids交换各自的ap,并确定共享的ap。

具体的,本申请实施例中第一通信设备归属的grids可生成密钥并向第一通信设备分发生成的密钥,第二通信设备归属的grids可生成密钥并向第二通信设备分发生成的密钥。

具体的,第一通信设备归属的grids可向第一通信设备分发公钥以及第一通信设备的私钥,其中该公钥可以是第二通信设备的身份标识。第二通信设备归属的grids可向第二通信设备分发公钥以及第二通信设备的私钥,其中该公钥可以是第一通信设备的身份标识。

s702:第一通信设备预先从第一通信设备归属的grids处获取第二通信设备归属的grids的ap(apb),并确定安全参数集,该安全参数集中除包括第一kgp以外,还可包括apb和apa。

s703:第一通信设备向第二通信设备发送第一消息,第一消息中包括apa。

本申请实施例中第一通信设备向第二通信设备发送的第一消息中包含的内容与s203中涉及的第一消息包含的内容类似,不同之处在于需要额外包含apa。

本申请第六实施例中是以第一通信设备和第二通信设备基于ibs技术进行端到端的身份认证,并采用dh密钥交换技术生成安全参数为例,对第二通信设备采用与第一spn不同的第二spn生成安全参数的具体实施过程进行举例说明,对于第一通信设备和第二通信设备基于ibe技术实现端到端认证以及密钥协商的过程类似,在此不再赘述。

上述主要从第一通信设备和第二通信设备交互的角度对本申请实施例提供的方案进行了介绍。可以理解的是,第一通信设备和第二通信设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。结合本申请中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的技术方案的范围。

本申请实施例可以根据上述方法示例对第一通信设备和第二通信设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

在采用硬件形式实现时,应用于第一通信设备的端到端认证及密钥协商装置和应用于第二通信设备的端到端认证及密钥协商装置可采用图3所示的端到端认证及密钥协商装置的结构。

在采用软件功能单元的形式实现时,应用于第一通信设备的端到端认证及密钥协商装置可采用图11所示的端到端认证及密钥协商装置的结构。

参阅图11所示,应用于第一通信设备的端到端认证及密钥协商装置1000包括发送单元1001、接收单元1002和处理单元1003。

具体的,发送单元1001,用于向第二通信设备发送第一消息,第一消息中包括第一密钥生成参数,第一密钥生成参数为第一通信设备生成安全参数所需的密钥生成参数,安全参数为第一通信设备与第二通信设备进行密钥协商所共享的安全参数。接收单元1002,用于接收第二通信设备向第一通信设备发送的第二消息,第二消息中包括第二密钥生成参数。处理单元1003,用于对第二通信设备进行身份认证,并根据发送单元1001发送的第一消息中包括的第一密钥生成参数,以及接收单元1002接收的第二消息中包括的第二密钥生成参数生成安全参数。

其中,上述涉及的安全参数可以包括共享密钥,共享密钥的生存周期,共享密钥的安全连接标识,以及安全连接标识的生存周期。

其中,第一消息中还包括第一通信设备支持的第一安全配置指示,第一安全配置指示用于指示密钥生成算法、认证算法和加密算法;第二消息中还包括第二通信设备使用的第二安全配置指示,第二安全配置指示与第一安全配置指示相同或者不同,并用于指示第密钥生成算法、认证算法和加密算法;处理单元1003用于根据第二安全配置指示、第一密钥生成参数以及第二消息中包括的第二密钥生成参数生成安全参数。

其中,处理单元1003可根据第一通信设备的安全能力以及用户的安全需求,确定第一密钥生成参数以及第一安全配置指示。

一种可能的实施方式中,第二消息中还包括第一mac,第一mac由第二通信设备根据安全参数生成。处理单元1003通过验证第二消息中包括的第一mac,对第二通信设备进行身份认证。

其中,发送单元1001还用于向第二通信设备发送第三消息,第三消息中包括第二mac,第二mac由处理单元1003根据安全参数生成。

进一步的,第二消息中还包括第二通信设备的签名,第二通信设备的签名由第二通信设备根据第二通信设备私钥计算,第二通信设备私钥由第二通信设备从grids处获取;处理单元1003通过将第二通信设备的身份标识作为公钥验证第二消息中包括的第二通信设备的签名,对第二通信设备进行身份认证。

进一步的,第一密钥生成参数包括处理生成的第一随机数以及根据第一随机数确定的第一dh公钥,第二密钥生成参数包括第二通信设备生成的第二随机数以及根据第二随机数确定的第二dh公钥。处理单元1003可根据第二dh公钥和第一随机数生成主会话密钥,并根据主会话密钥生成安全参数。

进一步的,第一密钥生成参数包括利用第二通信设备的公钥加密后的第三随机数以及第一通信设备的身份标识,第三随机数为处理单元1003生成的随机数,第二通信设备的公钥为第二通信设备的身份标识。第二密钥生成参数中包括利用第一通信设备的公钥加密后的第四随机数以及第二通信设备的身份标识,第四随机数为第二通信设备生成的随机数,第一通信设备的公钥为第一通信设备的身份标识。处理单元1003利用第一通信设备的私钥解密第二密钥生成参数,确定第二密钥生成参数解密成功时,根据第一通信设备的身份标识、第二通信设备的身份标识、第三随机数以及第四随机数,生成安全参数。

更进一步的,第一消息中还包括第一通信设备的grids的认证参数ap,第二消息中还包括第二通信设备的grids的认证参数ap。或者接收单元1002还用于在发送单元1001向第二通信设备发送第一消息之前,预先从第一通信设备归属的grids处获取第二通信设备归属的grids的认证参数ap;第一消息中还包括第一通信设备归属的grids的ap。

进一步的,处理单元1003还用于在生成安全参数之后,根据安全参数中包括的共享密钥生成第一子会话密钥和第二子会话密钥,第一子会话密钥用于对第一通信设备和第二通信设备进行密钥协商过程中的消息进行安全保护,第二子会话密钥用于对第一通信设备和第二通信设备进行数据传输过程中的数据进行安全保护。

更进一步的,处理单元1003可利用加密密钥对第三消息中携带的参数进行加密,并将加密后的参数携带在第三消息中由发送单元1001向第二通信设备发送,以进一步提高端到端通信的安全性。

在采用软件的功能单元形式实现时,应用于第二通信设备的端到端认证及密钥协商装置可采用图12所示的端到端认证及密钥协商装置的结构。

参阅图12所示,应用于第二通信设备的端到端认证及密钥协商装置2000包括接收单元2001、处理单元2002和发送单元2003。

具体的,接收单元2001用于接收第一通信设备发送的第一消息,第一消息中包括第一密钥生成参数,第一密钥生成参数为第一通信设备生成安全参数所需的密钥生成参数,安全参数为第一通信设备与第二通信设备进行密钥协商所共享的安全参数。处理单元2002,用于对第一通信设备进行身份认证,根据第二密钥生成参数以及接收单元2001接收的第一消息中包括的第一密钥生成参数生成安全参数,第二密钥生成参数为第二通信设备生成安全参数所需的密钥生成参数。发送单元2003,用于向第一通信设备发送第二消息,第二消息中包括第二密钥生成参数。

其中,上述涉及的安全参数可以包括共享密钥,共享密钥的生存周期,共享密钥的安全连接标识,以及安全连接标识的生存周期。

一种可能的实施方式中,第一消息中还包括第一通信设备支持的第一安全配置指示,第一安全配置指示用于指示密钥生成算法、认证算法和加密算法;第二消息中还包括第二通信设备使用的第二安全配置指示,第二安全配置指示与第一安全配置指示相同或者不同,并用于指示密钥生成算法、认证算法和加密算法;处理单元2002用于根据第二安全配置指示、第二密钥生成参数以及第一消息中包括的第一密钥生成参数生成安全参数。

其中,处理单元2002可根据第二通信设备的安全能力以及用户的安全需求,确定第二密钥生成参数以及第二安全配置指示。

另一种可能的实施方式中,第二消息中还包括第一mac,第一mac由第二通信设备根据安全参数生成。

进一步的,接收单元2001还用于接收第一通信设备发送的第三消息,第三消息中包括第二mac,第二mac由第一通信设备根据安全参数生成;处理单元2002通过验证第三消息中包括的第二mac,对第一通信设备进行身份认证。

又一种可能的实施方式中,第一消息中还包括第一通信设备的签名,第一通信设备的签名由第一通信设备根据第一通信设备私钥计算,第一通信设备私钥由第一通信设备从通用身份服务grids处获取;处理单元2002通过将第一通信设备的身份标识作为公钥验证第一消息中包括的第一通信设备的签名。

进一步的,第一密钥生成参数包括第一通信设备生成的第一随机数以及根据第一随机数确定的第一dh公钥,第二密钥生成参数包括第二通信设备生成的第二随机数以及根据第二随机数确定的第二dh公钥。处理单元2002根据第一dh公钥和第二随机数生成主会话密钥,并根据主会话密钥生成安全参数。

进一步的,第一密钥生成参数包括利用第二通信设备的公钥加密后的第三随机数以及第一通信设备的身份标识。第三随机数为第一通信设备生成的随机数,第二通信设备的公钥为第二通信设备的身份标识。第二密钥生成参数中包括利用第一通信设备的公钥加密后的第四随机数以及第二通信设备的身份标识。第四随机数为第二通信设备生成的随机数,第一通信设备的公钥为第一通信设备的身份标识。处理单元2002利用第二通信设备的私钥解密第一密钥生成参数,确定第一密钥生成参数解密成功时,根据第一通信设备的身份标识、第二通信设备的身份标识、第三随机数以及第四随机数,生成安全参数。

进一步的,处理单元2002还用于在生成安全参数之后,根据安全参数中包括的共享密钥生成第一子会话密钥和第二子会话密钥,第一子会话密钥用于对第一通信设备和第二通信设备进行密钥协商过程中的消息进行安全保护,第二子会话密钥用于对第一通信设备和第二通信设备进行数据传输过程中的数据进行安全保护。

更进一步的,处理单元2002可利用加密密钥对第二消息中携带的参数进行加密,并将加密后的参数携带在第二消息中由发送单元2003向第一通信设备发送,以进一步提高端到端通信的安全性。

本申请实施例中,应用于第一通信设备的端到端认证及密钥协商装置1000和应用于第二通信设备的端到端认证及密钥协商装置2000所涉及的与本申请实施例提供的技术方案相关的概念,解释和详细说明及其他步骤请参见前述方法或其他实施例中关于这些内容的描述,此处不做赘述。

本申请实施例还提供一种芯片,所述芯片与存储器相连,用于读取并执行所述存储器中存储的软件程序,以实现上述实施例中涉及的第一通信设备或第二通信设备的功能。

本申请实施例还提供一种计算机存储介质,该计算机存储介质中存储有一些指令,这些指令被执行时,可以完成上述方法实施例中涉及的端到端认证及密钥协商方法。

本申请实施例还提供一种计算机程序产品,该计算机程序产品中包括计算机程序,该计算机程序用于执行上述方法实施例中涉及的端到端认证及密钥协商方法。

本领域内的技术人员应明白,本申请实施例可提供为方法、系统、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1