本技术涉及通信,具体而言,涉及一种单包认证方法、电子设备和存储介质。
背景技术:
1、单包认证(single packet authorization,spa)是一种轻量级的安全协议,只使用单个数据包进行访问申请,通过将所有必要信息集成在单个数据包内来简化敲门流程,在允许访问网络前,先验证设备和用户身份,以此达到“网络隐身”,使攻击者无法找到服务地址和端口。
2、目前,在spa敲门认证过程中,一种是直接将spa密钥预置在设备中,一种是通过短信、邮件等方式接收spa密钥并注入到客户端。
3、然而,针对预置spa密钥,一旦被破解或复制,可能需要手动更换密钥,增加了系统维护难度和成本,针对接收spa密钥注入到客户端,可能面临攻击风险,并且用户需要手动提取密钥,有一定的操作复杂性。
技术实现思路
1、有鉴于此,本技术实施例提供了一种单包认证方法、电子设备和存储介质,以解决了密钥易泄漏以及用户操作复杂的问题。
2、第一方面,本技术实施例提供了一种单包认证方法,应用于sdp客户端,所述方法包括:
3、采用spa密钥分发中心预先分发的单包加密密钥,对待验证的服务请求信息进行加密,得到服务请求密文,其中,所述服务请求信息用于请求通过sdp网关访问目标业务资源;
4、采用所述spa密钥分发中心预先分发的单包认证密钥,对所述sdp客户端对应的用户信息和所述服务请求密文进行hmac运算,得到待验证消息认证码;
5、根据所述用户信息、所述服务请求密文以及所述待验证消息认证码,生成单包认证敲门报文;
6、向sdp控制器发送所述单包认证敲门报文,以使得所述sdp控制器从所述单包认证敲门报文中提取所述用户信息、所述服务请求密文以及所述待验证消息认证码,并根据所述用户信息从所述spa密钥分发中心获取所述单包加密密钥和所述单包认证密钥,采用获取到的所述单包认证密钥和所述待验证消息认证码,对所述单包认证敲门报文进行信息有效性验证,若验证通过,则采用获取到的所述单包加密密钥,解密所述服务请求密文得到所述服务请求信息,并基于所述服务请求信息,获取所述目标业务资源的访问权限。
7、在一可选的实施方式中,所述采用所述spa密钥分发中心预先分发的单包认证密钥,对所述sdp客户端对应的用户信息和所述服务请求密文进行hmac运算,得到待验证消息认证码,包括:
8、采用所述单包认证密钥,对所述用户信息、所述服务请求密文、预设随机数以及当前时间戳进行hmac运算,得到所述待验证消息认证码;
9、所述根据所述用户信息、所述服务请求密文、以及所述待验证消息认证码,生成单包认证敲门报文,包括:
10、根据所述用户信息、所述服务请求密文、所述服务请求密文的摘要、所述预设随机数、所述当前时间戳以及所述待验证消息认证码,生成所述单包认证敲门报文,以使所述sdp控制器从所述单包认证敲门报文中提取所述用户信息、所述服务请求密文、所述服务请求密文的摘要、所述预设随机数、所述当前时间戳以及所述待验证消息认证码,并根据所述当前时间戳对所述单包认证敲门报文进行时间有效性验证以及根据所述服务请求密文的摘要对所述服务请求密文进行信息有效性验证,若验证均通过,则根据所述用户信息从所述spa密钥分发中心获取所述单包加密密钥和所述单包认证密钥。
11、在一可选的实施方式中,所述采用所述spa密钥分发中心预先分发的单包认证密钥,对所述sdp客户端对应的用户信息和所述服务请求密文进行hmac运算,得到待验证消息认证码之前,所述方法还包括:
12、从所述sdp客户端的后量子签名证书中提取所述用户信息。
13、在一可选的实施方式中,所述方法还包括:
14、采用所述sdp客户端的后量子签名私钥,对所述sdp客户端的后量子签名证书以及后量子加密公钥进行签名,得到目标签名值;
15、根据所述后量子签名证书、所述后量子加密公钥以及所述目标签名值,生成单包密钥分发请求;
16、向所述spa密钥分发中心发送所述单包密钥分发请求;
17、接收所述spa密钥分发中心发送的单包加密密钥和单包认证密钥。
18、在一可选的实施方式中,所述接收所述spa密钥分发中心发送的单包加密密钥和单包认证密钥,包括:
19、接收所述spa密钥分发中心分发的单包认证密钥密文,所述单包认证密钥密文为所述spa密钥分发中心根据所述后量子签名证书、所述后量子加密公钥对所述目标签名值进行信息有效性验证,并对所述后量子签名证书进行根验证,若验证均通过,则生成所述单包加密密钥和所述单包认证密钥,并根据所述后量子加密公钥生成共享密钥,以及采用所述共享密钥将所述单包加密密钥和所述单包认证密钥进行加密得到的;
20、根据所述sdp客户端的后量子加密私钥生成所述共享密钥,并采用生成的所述共享密钥对所述单包认证密钥密文进行解密,得到所述单包加密密钥和所述单包认证密钥。
21、第二方面,本技术实施例还提供了一种单包认证方法,应用于sdp控制器,所述方法包括:
22、接收sdp客户端发送的单包认证敲门报文,所述单包认证敲门报文中包括:所述sdp客户端对应的用户信息、服务请求密文以及待验证消息认证码,其中,所述服务请求密文为所述sdp客户端采用spa密钥分发中心预先分发的单包加密密钥,对所述sdp客户端的服务请求信息进行加密得到的,所述待验证消息认证码为所述sdp客户端对所述用户信息和所述服务请求密文进行hmac运算得到的,所述服务请求信息用于请求通过sdp网关访问目标业务资源;
23、向所述spa密钥分发中心发送针对所述用户信息的密钥获取请求;
24、接收所述spa密钥分发中心发送的单包加密密钥和单包认证密钥;
25、根据接收到的所述单包认证密钥和所述待验证消息认证码,对所述单包认证敲门报文进行信息有效性验证;
26、若验证通过,则采用接收到的所述单包加密密钥,解密所述服务请求密文得到服务请求信息,并获取所述目标业务资源的访问权限;
27、若所述目标业务资源的访问权限为允许访问,则向所述sdp网关下发授权访问策略,以使所述sdp客户端通过所述sdp网关访问所述目标业务资源。
28、在一可选的实施方式中,所述单包认证敲门报文中还包括:预设随机数和当前时间戳,所述向所述spa密钥分发中心发送针对所述用户信息的密钥获取请求,包括:
29、根据所述当前时间戳对所述单包认证敲门报文进行时间有效性验证;
30、若验证通过,则向所述spa密钥分发中心发送所述密钥获取请求。
31、在一可选的实施方式中,所述根据接收到的所述单包认证密钥和所述待验证消息认证码,对所述单包认证敲门报文进行信息有效性验证,包括:
32、根据接收到的所述单包认证密钥,对所述用户信息、所述服务请求密文、所述预设随机数以及所述当前时间戳进行hmac运算,得到目标消息认证码;
33、根据所述目标消息认证码和所述待验证消息认证码,对所述单包认证敲门报文进行信息有效性验证。
34、第三方面,本技术实施例还提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行第一方面任一项或第二方面任一项所述的方法。
35、第四方面,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行第一方面任一项或第二方面任一项所述的方法。
36、本技术提供了一种单包认证方法、电子设备和存储介质,该方法包括:sdp客户端采用spa密钥分发中心预先分发的单包加密密钥,对待验证的服务请求信息进行加密,得到服务请求密文,其中,服务请求信息用于请求通过sdp网关访问目标业务资源,采用spa密钥分发中心预先分发的单包认证密钥,对sdp客户端对应的用户信息和服务请求密文进行hmac运算,得到待验证消息认证码,根据用户信息、服务请求密文以及待验证消息认证码,生成单包认证敲门报文,向sdp控制器发送单包认证敲门报文。本技术使用预先分发的单包加密密钥和单包认证密钥进行单包认证,用户无需自行保管密钥,解决了密钥易泄漏以及用户操作复杂的问题,易用性高。