基于CL-PKC 的卫星通信认证技术研究

2022-07-13 01:04苗婷婷刘笑凯姬胜凯郝克林苏立文
网络安全与数据管理 2022年6期
关键词:私钥公钥解密

苗婷婷,刘笑凯,姬胜凯,郝克林,苏立文

(华北计算机系统工程研究所,北京102200)

0 引言

随着卫星通信技术的发展,卫星通信组网技术越来越被人们重视。安全认证是通信系统中不可或缺的重要环节[1]。由于卫星通信在开放的无线信道进行数据传输,接入卫星IP 网络的业务系统面临来自公开信道的信息窃取和网络攻击威胁,因此,用户终端接入卫星IP 网络时需要进行身份认证,从而确保接入用户为合法的真实用户。对卫星网络安全认证协议的研究是卫星网络安全问题研究的重要组成部分。然而,目前空间信息网络中的身份认证技术仍存在很多问题,例如:通信和计算资源消耗大、认证时间长、不考虑密钥生成中心安全性等[2]。

本文就卫星通信认证技术进行研究,基于无证书公钥密码体制(Certificateless Public Key Cryptosystem,CL-PKC),使用公钥加密、私钥签名、公钥验签等密码技术设计一种具备身份信息匿名保护功能的安全认证协议,以提升用户接入卫星通信系统的隐私性。考虑到卫星网络的计算、存储能力受限的特点,本文使用基于身份的密码体制在安全认证的基础上提高认证协议的性能。

1 卫星通信认证技术

非对称密码体制的身份认证技术分为基于证书和基于身份ID 两种[3]。不需要用身份信息生成公钥的方式需要在公钥基础设施体系(Public Key Infrastructure,PKI)中通过验证可信第三方授权机构(Certificate Authority,CA)下发的证书来验证公钥与目标用户信息的对应关系。但获取证书和CA 的公钥并进行验签将造成额外的通信传输和计算开销。基于身份的公钥密码系统(Identity-Based Public Cryptosystem,ID-PKC)使用用户的身份来生成用户的公钥实现了用户公钥和身份的绑定,从而可以降低证书方式带来的开销。这也就是基于身份的密码体制(Identity-Based Encryption,IBE)[4]。但ID-PKC 方式完全依赖体系内的密钥生成中心(Key Generation Center,KGC)生成私钥,不能解决KGC 不完全可信的情况。

因此本文选择CL-PKC 的密码体制由用户选择秘密值和KGC 生成的部分私钥组合成完整的私钥,在KGC 不完全可信或被攻破的情况下仍可以保护完整私钥的安全性[5]。

2 相关介绍

基于IBE 密码体制的第一个实用方案是用双线性映射对构造的,其安全性基于双线性对中离散对数问题的难解性[6]。本文IBE 密码体制认证协议采用基于双线性对运算的方案。

一个完整的IBE 密码体制由四部分组成,分别是系统初始化、密钥提取、加密和解密。本文设计身份认证的前提条件为:卫星通信系统组织建立可信组织KGC,用来接收终端用户和卫星节点的注册[7]。

(1)KGC 产生的参数有:大素数q;q 阶加法群(G1,+)和q 阶乘法群(G2,·);G1的生成元P;双线性对e:G1×G1→G2。

(3)选择两个Hash 函 数,H1:{0,1}*→G1,H2:G2→{0,1}n。

因此,需要公开的系统参数为<q,G1,G2,e,n,P,Ppub,H1,H2>。

3 协议原理与流程

本文设计的基于CL-PKC 的通信认证协议分为注册阶段密钥提取和身份认证阶段两个过程,以下将对这两个过程分别进行描述。协议描述中的标识符及定义如表1 所示。

表1 标识符及定义

3.1 注册阶段

用户A 发送IDA给KGC,如果用户A 为合法用户,KGC 计算用户A 的部分私钥ds=sH1(IDA),用户A 再选取秘密值和部分私钥一起得到A 的完整私钥SA。密钥生成中心KGC 用选定的哈希函数和其公钥PKGC计算用户的公钥PA。同时KGC 构建包含用户ID、用户权限、密钥有效时长的授权令牌,并使用自己的私钥SKGC对用户A 的权限令牌进行签名。通过安全通道(如加密邮箱)发送KGC 私钥签名了的权限令牌给用户A[9]。至此,用户A 便完成了访问卫星系统之前的注册,同时在KGC 保存有合法卫星ID 表。卫星节点的公钥私钥获得方式与用户相同。注册阶段的过程示意图如图1 所示。

世界经济一体化的高速发展,对商贸物流提出了更高的要求,而商贸物流的众多环节中,分拨是最容易出问题的一环。分拨中心是在整个物流链中,在始发仓和末端中间起着重要的作用。同时也是在快递整个网络中的一个重要节点,在其所在的物流配送区域和其他有联系的物流配送中心区域有着重要作用,换个角度来说,它又是集加工、理货、送货等多种职能于一体的物流据点。分拨中心的业务质量关系到整个物流链的效率。

图1 用户注册流程示意图

3.2 认证阶段

注册完成后,当用户A 需要申请卫星S 的服务时,首先要先进行身份的认证。身份认证过程如下:

(1)用户A 向卫星S 发起认证时,首先从KGC列表得到卫星S 的IDS∈{0,1}*,然后计算H2(e(H1(IDS),Ppub)r)用来加密用户A 的身份IDA、PA和时间戳,并取随机数r∈,计算:

U=rP

V=H2(e(H1(IDS),Ppub)r)⊕(IDA,PA,timestamp)

用户A 公开发送<U,V>给卫星节点。

(2)卫星S 收到认证申请后用KGC 颁发的私钥SS解密,检测U ∈G1是否成立,不成立则拒绝,成立则用卫星的私钥SS解密V,得到明文后校验时间戳信息,验证系统时差是否在允许范围内,不在允许范围内则不处理该注册信息。用解密得到的IDA计算用户的PA,若一致说明其为合法用户,完成卫星节点对用户的认证。然后,卫星S 生成协商密钥key 和随机数C,使用卫星的私钥SS对C、key 和系统时间timestamp 进行签名,并用用户A 的公钥PA进行加密后将第二包消息C、key 和timestamp 以及签名发送给用户A:

EncryPA(C,key,timestamp,SignSS(C,key,timestamp))

(3)用户A 收到卫星发过来的密文后用自己的私钥SA进行解密,用卫星的公钥验签。解密后若时间校验不通过则不响应此报文;通过后,用验签得到的随机数和密钥值key 与解密消息的随机数和密钥值进行比对,比对一致说明消息是由卫星S 发出,完成用户对卫星节点的认证,同时保存随机数和密钥值。然后使用协商密钥key 进行加密后向卫星S 发送第三包消息:

Encrykey(C+1,AuthToken)

(4)卫星S 收到第三包消息之后,使用协商密钥key 进行解密,验证解密后的随机数C+1 是否正确。使用KGC 的公钥对AuthToken 进行验签,对比认证用户ID 是否与用户A 在认证开始时的身份ID 一致。

如果上述步骤均无误,则认证成功,卫星S 将在用户A 的资源有效时长T 内为其分配相关资源,并提供用户授权令牌中指定的服务。协商密钥key作为用户与该卫星节点通信的对称密钥。

表2 端到端认证平均计算用时

4 协议仿真实验和安全性分析

4.1 仿真实验分析

通过Socket 网络编程用C++语言对本文设计的认证方案进行仿真实验测试,基于ECC 算法进行3次 加 密、3 次 解 密、1 次 签 名、2 次 验 签。为 了 控 制 计算平台对协议计算性能的影响,选择CPU 1.7 GHz和CPU 2.2 GHz 两个机器分别进行仿真实验。在每一次仿真实验中,取500 次认证用时的平均值,同样的仿真实验进行4 次。表2 为4 次仿真实验得到的端到端认证平均计算用时统计表。

分析仿真实验数据,在计算性能略低的机器上仿真的认证用时较长但均不超过50 ms。一般认为卫星网络的传输时延为270 ms[10],实验中认证用时加卫星网络传输用时远远低于文献[9]中的认证计算用时(平均8 s),说明本文设计的认证方案具有很好的计算性能。

4.2 安全性分析

根据通信流程,对身份认证方案的安全性分析如下:

(1)用户身份信息保护。在注册阶段,用户向KGC进行注册时的信息使用KGC 的公钥进行加密,然后KGC 收到注册信息后使用其私钥进行解密,窃听者即使能得到KGC 的公钥,也无法对注册信息进行解密,实现了对合法用户的身份信息的保护。在认证阶段,用户A 对身份ID 进行加密发送,攻击者同样无法窃取合法用户的身份信息。

(2)抗重放攻击。抗重放攻击是指在攻击者无法有效猜测出认证信息的情形下,通过截获其中的认证报文,重复转发该报文,从而导致合法用户认证受到影响[11]。本文设计的协议中添加了系统时间信息,接收端在收到信息进行解密后会判断系统时间,若系统时间不在合理的时间差内则不对该报文进行响应。因此,协议可以有效地抵抗重放攻击。

(3)抗中间人攻击。根据IBE 密码体制的特点,用户ID 对应了唯一一对公私钥[12],通过公钥验签可以确定是否为特定用户的私钥签名。在注册阶段中间人不能以合法的身份重复进行注册,因此也不能伪装为认证中的任一身份。

(4)抗假冒攻击。由于卫星回复的第一包报文是用用户的公钥加密的,而攻击者无法得知用户的私钥,所以无法完成假冒攻击。卫星使用公共参数和用户ID 计算得到用户A 的公钥与PA一致,那么就建立对该身份ID 的信任。当用户A 使用其私钥进行验签成功,并返回正确信息给卫星S 时,就说明用户A 为合法用户。

(5)前向安全性。由于协议使用了基于身份的密钥协商形式,超过有效时长T 之后需要进行再次密钥协商得到新的会话密钥,因此可以保证会话密钥的前向安全性。

本文的认证方案使用了对称和非对称混合密码算法,用私钥签名,从而保证消息来源的唯一性和真实性,实现用户终端与卫星节点的双向身份认证。使用认证服务系统的公钥对上报的信息进行加密,保护了用户身份信息。并在上报的报文中添加系统时间信息,可以抵抗重放攻击。当用户进行认证时,根据协议可以在保证用户隐私的前提下实现认证。

5 结论

本文在分析卫星通信特点和安全认证需求的基础上,设计了一种基于CL-PKC 密码体制的身份认证协议,避免了PKI 证书机制带来的存储和通信上的开销,同时有效保护了用户的身份信息,实现了卫星节点与用户之间的安全认证和通信。用户端和卫星节点在没有获取接收方证书的前提下,只要拥有接收方的身份ID 和系统参数,就可以计算出接收方的公钥,向接收方发送由其公钥加密的信息。当接收方接到消息后使用其私钥解密密文信息,在这一过程中也不需要获取证书。因此,该协议的安全性取决于IBE 密码系统的安全性。在实现认证的同时,也产生了协商会话密钥,认证结束后认证双方会使用协商密钥对通信内容进行对加解密处理,从而保证通信的安全性。

猜你喜欢
私钥公钥解密
解密电视剧 人世间
比特币的安全性到底有多高
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
炫词解密
程序员把7500枚比特币扔掉损失巨大
炫词解密
炫词解密
神奇的公钥密码
国密SM2密码算法的C语言实现
基于身份的聚合签名体制研究