一种后量子身份鉴别方法、装置、设备及介质与流程

摘要: 本发明涉及密码应用领域,特别涉及一种后量子身份鉴别方法、装置、设备及介质。背景技术:1、voip(voiceoverinternetprotocol,基于ip的...
一种后量子身份鉴别方法、装置、设备及介质与流程

本发明涉及密码应用领域,特别涉及一种后量子身份鉴别方法、装置、设备及介质。

背景技术:

1、voip(voice over internet protocol,基于ip的语音传输)系统通常采用会话初始协议(sip,session initiation protocol)负责呼叫建立、用户注册、会话修改和会话终止,采用rtp(real-time transport protocol,实时传输协议)/srtp(secure real-timetransport protocol,安全实时传输协议)负责媒体数据传输。sip的典型实体包括用户代理客户端、用户代理服务器、代理服务器、注册服务器及位置服务。其中,register事务用于用户向注册服务器登记当前位置,invite事务用于发起语音或视频会话。作为互联网电话及企业通信系统的基础协议,sip具备简单、开放、可扩展等特点,广泛应用于软电话、呼叫中心、ims(ip multimedia subsystem,ip多媒体子系统)、应急通信平台及企业调度等场景。

2、然而,sip协议通常运行于不安全的公共信道,其基于文本的特性带来诸多安全隐患。传统sip身份鉴别主要沿用http(hypertext transfer protocol,超文本传输协议)摘要认证的挑战响应模型:服务器通过401或407响应返回随机数nonce,客户端根据用户名、口令、认证域realm、请求方法和uri(uniform resource identifier,统一资源标识符)计算响应摘要,再重新提交请求,服务器凭保存的口令或其派生值验证摘要。该机制因实现简单、兼容性强、部署成本低,长期作为sip的默认身份鉴别方式。近年来,为提升sip协议的安全性,研究者引入了多种增强机制,如公钥密码体制、椭圆曲线密码技术等。然而,随着攻击算力的提升与量子计算威胁的浮现,传统sip认证的安全边界已显不足:一方面,摘要认证的有效安全性高度依赖用户口令熵,攻击者可截获认证报文后离线猜测口令;另一方面,sips/tls(security intelligence products and systems,安全情报产品和系统)/(transport layer security,传输层安全性协议)虽能保护传输链路,但其本质为逐跳安全,sip消息需在各代理节点解密并重新加密;此外,tls传统证书体系基于rsa/ecc(rivest-shamir-adleman,一种非对称加密算法)/(elliptic curve cryptography,椭圆曲线密码学),在足够强的量子计算机出现后将面临shor算法的威胁。

3、因此,如何在尽量保留sip核心状态机及现有服务器/客户端架构的前提下,为sip注册和呼叫建立流程提供能够抵抗量子计算攻击的身份鉴别能力,是本领域亟待解决的技术问题。

技术实现思路

1、有鉴于此,本发明的目的在于提供一种后量子身份鉴别方法、装置、设备及介质,能够在不改变sip核心事务状态机的前提下,将sip身份鉴别的安全基础由用户口令知晓转变为后量子私钥持有证明,从而抵抗离线字典攻击、重放攻击和量子计算攻击。其具体方案如下:

2、第一方面,本技术公开了一种后量子身份鉴别方法,应用于客户端,包括:

3、获取基于后量子密钥封装机制的身份密钥对;所述身份密钥对包括身份公钥和身份私钥;所述身份公钥与客户端的用户身份绑定;

4、向服务端发送包括第一认证参数的第一注册请求,以便所述服务端基于所述第一认证参数对所述身份公钥与用户身份的绑定关系进行验证,若验证成功,则对所述身份公钥执行密钥封装操作,以生成挑战密文和第一共享秘密,并向所述客户端返回认证挑战响应;所述第一认证参数包括所述身份公钥或所述身份公钥的证书引用以及第一随机数;所述认证挑战响应包括挑战密文、第二随机数和所述第一随机数的回显值;

5、接收所述服务端返回的所述认证挑战响应,根据所述第一随机数的回显值校验所述认证挑战响应与所述第一注册请求之间的对应关系,若校验成功,则基于所述身份私钥对所述挑战密文执行密钥解封装操作,以获取第二共享秘密;

6、根据所述第二共享秘密、所述第一随机数和所述第二随机数派生第一认证密钥,基于所述第一认证密钥对当前注册事务的上下文信息计算消息认证码;

7、向所述服务端发送包含第二认证参数的第二注册请求,以便所述服务端根据所述第一共享秘密验证所述消息认证码,并在验证通过后确认所述客户端持有与所述身份公钥对应的所述身份私钥,完成对所述客户端的身份鉴别;所述第二认证参数至少包括所述第一随机数、所述第二随机数以及所述消息认证码。

8、可选的,所述向服务端发送包括第一认证参数的第一注册请求之前,还包括:

9、向密钥管理中心发送公钥登记请求;所述公钥登记请求包括所述客户端的用户身份标识和所述身份公钥;

10、接收所述密钥管理中心返回的证书或证书引用;所述证书用于建立所述客户端的用户身份标识与所述客户端的身份公钥之间的可信绑定关系。

11、可选的,所述向服务端发送包括第一认证参数的第一注册请求,以便所述服务端基于所述第一认证参数对所述身份公钥与用户身份的绑定关系进行验证,包括:

12、向服务端发送包括第一认证参数的第一注册请求,以便所述服务端根据所述证书引用向密钥管理中心查询并获取所述客户端的证书,对所述证书的证书链有效性、证书吊销状态、算法套件兼容性以及所述证书中记录的用户身份与所述身份公钥的绑定关系进行验证。

13、可选的,所述向所述客户端返回认证挑战响应之后,还包括:

14、所述服务端将所述客户端的用户身份标识、用于标识会话初始协议的会话标识、命令序号、所述第一随机数和所述第二随机数的组合确定为索引,基于所述索引缓存所述第一共享秘密、所述第二随机数以及认证上下文数据,并对相应的缓存数据设置生存时间。

15、可选的,所述方法,还包括:

16、验证被叫客户端的身份公钥与用户身份的绑定关系,并在验证通过后获取所述被叫客户端的身份公钥;

17、使用所述被叫客户端的身份公钥执行密钥封装操作,生成第一呼叫挑战密文和第三共享秘密;

18、向所述服务端发送包含第三认证参数的邀请请求,通过所述服务端将所述邀请请求转发至所述被叫客户端,以便所述被叫客户端根据第一呼叫挑战密文验证主叫客户端的私钥持有证明,若验证通过,则使用所述主叫客户端的身份公钥执行密钥封装操作生成第二呼叫挑战密文和第四共享秘密,根据所述第四共享秘密计算第一呼叫消息认证码,生成响应消息并向所述服务端发送所述响应消息,所述响应消息包括第四认证参数;所述第三认证参数至少包括所述主叫客户端的证书引用、所述第一呼叫挑战密文以及第三随机数;所述第四认证参数至少包括所述被叫客户端的证书引用、所述第二呼叫挑战密文、第四随机数以及所述第一呼叫消息认证码;

19、接收所述服务端转发的所述被叫客户端的响应消息;

20、根据所述第一呼叫消息认证码验证所述被叫客户端的身份,若验证通过,则使用所述主叫客户端的身份私钥对所述第二呼叫挑战密文执行密钥解封装操作,以获取第五共享秘密,并根据所述第五共享秘密计算第二呼叫消息认证码;

21、向所述服务端发送确认请求,通过所述服务端将所述确认请求转发至所述被叫客户端,以便所述被叫客户端验证所述第二呼叫消息认证码,在验证通过后确认双向身份鉴别完成;所述确认请求包括所述第二呼叫消息认证码;

22、其中,所述第一呼叫挑战密文为所述主叫客户端使用所述被叫客户端的身份公钥执行密钥封装操作生成的密文,并派生第三共享秘密;所述第二呼叫挑战密文为所述被叫客户端使用所述主叫客户端的身份公钥执行密钥封装操作生成的密文,并派生第四共享秘密;所述双向身份鉴别完成后,所述主叫客户端和所述被叫客户端根据所述第三共享秘密、所述第四共享秘密、所述第三随机数、所述第四随机数以及呼叫上下文信息联合派生会话密钥。

23、可选的,所述根据所述第二共享秘密、所述第一随机数和所述第二随机数派生第一认证密钥,包括:

24、对包括所述第一随机数、所述第二随机数和算法套件的数据进行哈希运算,以得到哈希结果;

25、将所述哈希结果确定为盐值,将所述第二共享秘密确定为输入密钥材料;

26、基于所述盐值和所述输入密钥材料执行密钥派生函数的提取运算,得到伪随机密钥;

27、将所述伪随机密钥和至少包括用途标签及所述上下文信息的信息串确定为目标输入,基于所述目标输入执行所述密钥派生函数的扩展运算,得到所述第一认证密钥;其中,不同流程、不同方向和不同用途所对应的所述用途标签互不相同;所述上下文信息为对端到端可见的会话初始协议头域及认证参数进行规范化处理后的哈希值;所述端到端可见的会话初始协议头域及认证参数包括会话初始协议统一资源标识符、认证域realm、请求统一资源标识符、会话标识、命令序号、联系头域摘要、所述第一随机数、所述第二随机数、所述证书、证书引用的指纹、所述挑战密文的摘要、算法套件和方向标签中的任意一种或几种的组合;所述方向标签用于指示认证参数对应的认证阶段,包括注册发起、注册挑战、注册证明、主叫发起呼叫、被叫响应呼叫和ack确认中的任意一种或几种的组合;所述方向标签参与所述消息认证码的计算,以防止不同认证阶段或不同方向的认证参数被跨阶段或跨方向复用。

28、可选的,所述第一认证参数、所述认证挑战响应中的认证参数和第三认证参数通过会话初始协议的预设扩展头域承载;所述预设扩展头域包括版本号、算法套件、方向标签、公钥索引或证书引用、挑战密文、随机数、随机数回显值、上下文信息哈希值、消息认证码和策略标记。

29、第二方面,本技术公开了一种后量子身份鉴别方法,应用于服务端,包括:

30、接收客户端发送的包括第一认证参数的第一注册请求;所述第一认证参数包括所述客户端的身份公钥或所述身份公钥的证书引用以及第一随机数;

31、基于所述第一认证参数对所述身份公钥与用户身份的绑定关系进行验证,若验证成功,则对所述身份公钥执行密钥封装操作,以生成挑战密文和第一共享秘密,并向所述客户端返回认证挑战响应,以便所述客户端接收所述服务端返回的所述认证挑战响应,根据所述第一随机数的回显值校验所述认证挑战响应与所述第一注册请求之间的对应关系,若校验成功,则基于身份私钥对所述挑战密文执行密钥解封装操作,以获取第二共享秘密;根据所述第二共享秘密、所述第一随机数和所述第二随机数派生第一认证密钥,基于所述第一认证密钥对当前注册事务的上下文信息计算消息认证码;向所述服务端发送包含第二认证参数的第二注册请求;所述认证挑战响应包括挑战密文、第二随机数和所述第一随机数的回显值;所述身份私钥为所述客户端获取基于后量子密钥封装机制的身份密钥对后得到的私钥;所述身份密钥对包括身份公钥和身份私钥;所述身份公钥与客户端的用户身份绑定;

32、根据所述第一共享秘密验证所述消息认证码,并在验证通过后确认所述客户端持有与所述身份公钥对应的所述身份私钥,完成对所述客户端的身份鉴别;所述第二认证参数至少包括所述第一随机数、所述第二随机数以及所述消息认证码。

33、第三方面,本技术公开了一种后量子身份鉴别装置,应用于客户端,包括:

34、密钥对获取模块,用于获取基于后量子密钥封装机制的身份密钥对;所述身份密钥对包括身份公钥和身份私钥;所述身份公钥与客户端的用户身份绑定;

35、第一注册请求发送模块,用于向服务端发送包括第一认证参数的第一注册请求,以便所述服务端基于所述第一认证参数对所述身份公钥与用户身份的绑定关系进行验证,若验证成功,则对所述身份公钥执行密钥封装操作,以生成挑战密文和第一共享秘密,并向所述客户端返回认证挑战响应;所述第一认证参数包括所述身份公钥或所述身份公钥的证书引用以及第一随机数;所述认证挑战响应包括挑战密文、第二随机数和所述第一随机数的回显值;

36、第二共享秘密获取模块,用于接收所述服务端返回的所述认证挑战响应,根据所述第一随机数的回显值校验所述认证挑战响应与所述第一注册请求之间的对应关系,若校验成功,则基于所述身份私钥对所述挑战密文执行密钥解封装操作,以获取第二共享秘密;

37、消息认证码计算模块,用于根据所述第二共享秘密、所述第一随机数和所述第二随机数派生第一认证密钥,基于所述第一认证密钥对当前注册事务的上下文信息计算消息认证码;

38、第一身份鉴别完成模块,用于向所述服务端发送包含第二认证参数的第二注册请求,以便所述服务端根据所述第一共享秘密验证所述消息认证码,并在验证通过后确认所述客户端持有与所述身份公钥对应的所述身份私钥,完成对所述客户端的身份鉴别;所述第二认证参数至少包括所述第一随机数、所述第二随机数以及所述消息认证码。

39、第四方面,本技术公开了一种后量子身份鉴别装置,应用于服务端,包括:

40、第一注册请求接收模块,用于接收客户端发送的包括第一认证参数的第一注册请求;所述第一认证参数包括所述客户端的身份公钥或所述身份公钥的证书引用以及第一随机数;

41、认证挑战响应返回模块,用于基于所述第一认证参数对所述身份公钥与用户身份的绑定关系进行验证,若验证成功,则对所述身份公钥执行密钥封装操作,以生成挑战密文和第一共享秘密,并向所述客户端返回认证挑战响应,以便所述客户端接收所述服务端返回的所述认证挑战响应,根据所述第一随机数的回显值校验所述认证挑战响应与所述第一注册请求之间的对应关系,若校验成功,则基于身份私钥对所述挑战密文执行密钥解封装操作,以获取第二共享秘密;根据所述第二共享秘密、所述第一随机数和所述第二随机数派生第一认证密钥,基于所述第一认证密钥对当前注册事务的上下文信息计算消息认证码;向所述服务端发送包含第二认证参数的第二注册请求;所述认证挑战响应包括挑战密文、第二随机数和所述第一随机数的回显值;所述身份私钥为所述客户端获取基于后量子密钥封装机制的身份密钥对后得到的私钥;所述身份密钥对包括身份公钥和身份私钥;所述身份公钥与客户端的用户身份绑定;

42、第二身份鉴别完成模块,用于根据所述第一共享秘密验证所述消息认证码,并在验证通过后确认所述客户端持有与所述身份公钥对应的所述身份私钥,完成对所述客户端的身份鉴别;所述第二认证参数至少包括所述第一随机数、所述第二随机数以及所述消息认证码。

43、第五方面,本技术公开了一种电子设备,包括:

44、存储器,用于存储计算机程序;

45、处理器,用于执行计算机程序以实现如前述后量子身份鉴别方法的步骤。

46、第六方面,本技术公开了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述后量子身份鉴别方法的步骤。

47、本技术中客户端首先获取基于后量子密钥封装机制的身份密钥对;所述身份密钥对包括身份公钥和身份私钥;所述身份公钥与客户端的用户身份绑定;向服务端发送包括第一认证参数的第一注册请求,以便所述服务端基于所述第一认证参数对所述身份公钥与用户身份的绑定关系进行验证,若验证成功,则对所述身份公钥执行密钥封装操作,以生成挑战密文和第一共享秘密,并向所述客户端返回认证挑战响应;所述第一认证参数包括所述身份公钥或所述身份公钥的证书引用以及第一随机数;所述认证挑战响应包括挑战密文、第二随机数和所述第一随机数的回显值;接收所述服务端返回的所述认证挑战响应,根据所述第一随机数的回显值校验所述认证挑战响应与所述第一注册请求之间的对应关系,若校验成功,则基于所述身份私钥对所述挑战密文执行密钥解封装操作,以获取第二共享秘密;根据所述第二共享秘密、所述第一随机数和所述第二随机数派生第一认证密钥,基于所述第一认证密钥对当前注册事务的上下文信息计算消息认证码;向所述服务端发送包含第二认证参数的第二注册请求,以便所述服务端根据所述第一共享秘密验证所述消息认证码,并在验证通过后确认所述客户端持有与所述身份公钥对应的所述身份私钥,完成对所述客户端的身份鉴别;所述第二认证参数至少包括所述第一随机数、所述第二随机数以及所述消息认证码。可见,本技术将sip注册认证的判定依据由“客户端知道口令”转变为“客户端持有后量子私钥”:由于只有持有身份私钥的客户端才能正确解封装挑战密文并获得与服务端一致的共享秘密,也只有获得该共享秘密才能派生出正确的认证密钥并计算出可通过验证的消息认证码,因此攻击者即使完整截获认证交互过程中的全部sip消息,也无法通过口令猜测、离线字典攻击或重放攻击构造有效响应,认证安全强度由后量子密钥封装机制的数学困难性保证,能够抵抗量子计算环境下的shor算法攻击,消除了传统摘要认证中口令熵不足带来的系统性风险;同时,认证参数通过sip消息承载并与注册事务的上下文信息绑定,无需改变sip核心事务状态机,兼容既有sip代理和网络设备,支持渐进式部署,降低了迁移成本。