MANET共识选举轻量级CA认证方案*

2019-11-12 05:41石乐义单宝颖魏东平
计算机与生活 2019年11期
关键词:私钥全网共识

石乐义,单宝颖,魏东平

中国石油大学(华东)计算机科学与技术学院,山东 青岛 266580

1 引言

移动自组网,即移动Ad Hoc 网络,也称MANET(mobile Ad Hoc network),是一种不依赖固定基础设施的分布式移动网络。节点可以随意地加入或离开网络,任何一个节点的故障都不会影响整个网络的运行,具有很强的抗毁性[1]。

MANET网络结合了移动通信和计算机网络:一方面,MANET 网络的信息交换采用了分组交换机制;另一方面,用户终端节点是可以自由移动的并配置无线收发装置的便携式终端(比如笔记本、掌上电脑等)。MANET网络中的用户终端与普通网络用户终端的最大区别在于前者兼有主机和路由器功能。MANET 网络最大的优势在于其可以在不能利用或不方便利用现有的网络基础设施(比如基站)的情况下提供一种通信支持方式,拓宽了移动网络的应用范围。MANET 网络的自组织性提供了廉价且快速部署网络的可能,此外,分布式结构使得网络的健壮性、抗毁性也很强。因此MANET网络的应用相当广泛,比如军事战场信息系统建设、民用紧急救助、传感器网络等众多领域。但是MANET 网络使用无线信道传输、拓扑结构动态变化等使得其很容易受到诸如主动入侵或是被动入侵的攻击,因此MANET网络安全不可忽视[2-3]。

2 相关工作

MANET网络认证体系是安全的第一道防线,也是MANET网络安全路由、数据通信的基础。移动自组织网络目前广泛研究的安全认证机制主要包括以下三类:

集中式认证主要是把有线网络中的公钥基础设施(public key infrastructure,PKI)机制应用到MANET网络中,其原理是在MANET网络中的节点中选出一个节点充当CA(certificate authority),负责证书的发放、更新、撤销等管理工作[4]。但是这种方式使得CA承担繁重的管理工作,存在单点故障的风险,即一旦CA 被攻击瘫痪,那么整个网络将会受到严重影响。此外,MANET 网络中的节点大多是移动终端,其电量和存储能力有限,因此很难找到一个节点来承担集中式CA 的任务。从而,在MANET 网络中采用集中式的认证系统并不合适。

分布式认证是由MANET 网络内多个节点相互协同作为一个认证权威服务器,这样CA的功能就被分配到了多个节点上,其基础是秘密共享。文献[5-6]提出了局部分布式方案,该方案利用了门限密码机制(t,n),主要思想是将CA的签名密钥分成n份部分签名密钥并分发给指定的n个节点,其中任意t个节点联合起来才能合成一份有效的证书来执行CA 功能,而少于t个节点则不能恢复出签名密钥,也就无法产生有效证书,具有一定的容侵性。同时,该方案改进了集中式CA的不足,有效防止了单点故障。但是新节点的认证需要与t个节点进行通信,任意一个节点返回证书有误都将无法合成有效证书,因此增加了网络开销。文献[7-8]提出了全局分布式思想。在全局分布式认证里,CA的签名密钥分给网络中的所有节点,所有节点共同承担网络的认证服务,安全认证服务的可用性较高。但是所有节点都拥有私钥份额,增加了私钥暴露的风险。由于CA证书管理维护比较复杂,Khalili等人将基于身份的公钥加密体制[9-11]应用到了MANET 安全认证中。该方案是以节点的唯一性身份(比如网卡物理地址、设备编号等)作为公钥,因此这种机制不需要公钥证书。但是,这种方案的私钥是由私钥生成器产生的,私钥被其强制托管。文献[12]使用基于ECC 的密码系统提出了一种新的完全分布式的基于ID 的密钥管理算法,消除了对密钥生成中心和私钥生成器的需求,从而解决了密钥托管问题。文献[13]中Kumar 等人将轻量级加密协议和门限秘密共享相结合,实现了MANET分布式认证。

自组织认证方式的初始化及运行(包括密钥的管理及撤销)全部由网内的节点承担,在该认证系统中,证书链相当于CA 的角色。Hubaux 等人[14-15]设计了一种自组织认证方案,各节点各自维护证书库,认证双方合并它们的证书库并从中寻找证书链。该认证方法依靠节点的近距离接触来交换证书以此来合成证书库,而MANET 网络中的节点分布网络各处,并不能保证网络中的每个节点都会及时相遇,也就无法保证节点总能很快发现所需证书链。文献[16]提出一种自组织按需式认证方案,该方案不关心整个网络的证书情况,只在需要的时候才主动构建证书链,避免了网络中周期性广播交换证书而造成网络负载过重问题。文献[17]提出的自组织量子密钥认证技术为每个移动节点生成自组织密钥,找到传输数据的安全路径并在目的节点利用自组织密钥进行节点验证,提高了MANET中的数据安全性。

共识机制是区块链[18-19]的核心,保证去中心化网络中数据的一致性,节点通过解决一个求解复杂但容易验证的数学难题来竞争获得区块链的记账权,获得区块链记账权的节点将获得一定的比特币奖励。本文在前人工作的基础上,针对以上各种认证方式下的问题及共识机制的优越性,提出了一种基于共识算法的CA选举方法,并结合轻量级CA[20-21]思想,构建一种适合移动自组织网的认证方法。该方法的优势在于通过共识算法周期性地选举出当前CA,全网快速达成共识后,即可确定CA,使得CA节点不可假冒。由于CA节点周期性地变换,其生存周期仅限于当前周期内,使得攻击者无法预测下一个周期CA是哪个节点,既保留了集中式认证快速方便地建立节点间信任关系的优点,又具有门限机制的容侵性,提高了系统的健壮性。

3 共识选举轻量级轮转CA方案描述

3.1 方案的节点组成

(1)轻量级CA 节点:通过共识算法周期性选出并得到全网共识的节点,在一个周期内只有一个CA节点承担CA功能,主要负责对普通用户节点进行身份认证并为普通节点颁发辅公钥。

(2)普通用户节点:MANET网内除了CA节点的其他普通用户节点,用户节点间有通信的需求。

3.2 初始化

系统进行初始化。轻量级CA(lightweight certificate authority,LCA)执行Gi算法,输入系统参数集K,输出LCA的公/私钥对(PKLCA/SKLCA),其中PKLCA是LCA 的公钥,SKLCA是LCA 的私钥;用户节点执行Gi算法,输入系统参数集K,输出各个用户节点的主公钥/私钥对,其中是用户节点Ni的主公钥,是用户节点Ni的私钥。具体初始化过程详见文献[22]。

3.3 方案设计

(1)CA选取过程

①所有节点不断尝试区块头中的随机数(nonce),并对每次变更后的区块头做双重哈希运算,将结果值与当前网络的目标值作对比,如果小于或等于目标值,则解题成功。区块头中的字段包含版本号、上一个区块头的哈希值、时间戳、难度值、随机数nonce、Merkle 树根等。其中Merkle 树被用来归纳一个区块的所有交易认证消息,同时生成整个交易认证集合的数字指纹,且提供了一种校验区块是否存在某交易认证消息的高效途径。生成一棵完整的Merkle 树需要递归地对节点两两进行哈希,并将新生成的哈希节点插入到Merkle 树中,直到只剩一个哈希节点,该节点就是Merkle树根。

广播消息:

Fig.1 Flow chart of CA selection图1 CA选取流程图

③全网节点验证该解是否满足挖矿难度的条件,验证过程为:把随机数nonce代入数学难题,如果与目标值相符并且计算得到的与收到的相等,那么验证成功,全网节点则停止本次挖矿,把该区块连接到上个区块后面。然后继续挖下一个区块,此时全网节点达成共识,即求得该解的节点担任本周期内的CA 节点,执行CA 功能;否则,丢弃该块,继续本次挖矿。图1 给出了CA选取流程图。

(2)向当前CA申请辅公钥

有通信需求的节点Ni用当前CA 的公钥加密申请消息来向当前CA申请辅公钥(),CA收到申请消息后,用自己的私钥解密得到节点Ni的身份标识和主公钥,根据用户查询黑名单,如果节点不在黑名单内,则计算,若与收到的相等,则说明消息是完整的。然后CA节点用自己的私钥为节点的ID 和主公钥签名生成辅公钥并返回给节点。

申请消息:

响应消息:

(3)通信双方获取对方主公钥

如果节点A和节点B要进行通信,必须先验证对方的身份并获得对方的主公钥。

交换辅公钥:

节点A和B交换辅公钥,用当前CA的公钥解密后获得对方的主公钥,这同时也说明了对方是经当前CA 签名认证的合法用户节点。继而双方可以协商会话密钥,使得消息经过安全通道传递。

(4)CA进行周期性轮转

经过特定时间后,当网内有节点再次计算出特定解时,则继续执行步骤(1)。

图2给出了本文方案的通信模型图。

Fig.2 Communication model图2 通信模型

4 安全性分析

4.1 方案结构特点

(1)轻量级CA。本文方案中的CA 采用轻量级CA,CA用自己的私钥对请求通信的节点的主公钥和身份ID 进行签名,从而生成辅公钥。这里的辅公钥相当于传统CA 中的证书,区别在于传统CA 集中负责签发、认证、管理实体证书,CA任务繁重。而辅公钥是由每个用户节点自己管理,使得CA达到轻量级。

(2)CA 节点是通过计算特定数学难题获得特定解并得到全网节点确认而快速达到共识的节点,非对称算法SHA256的性质决定了求解的随机性,从而使得CA角色轮换的随机性,大大增加了攻击者确定CA节点的难度,有效提高了网络安全性。

(3)CA 节点根据难度值可以动态调整计算结果周期,其执行CA功能仅限当前周期内。下个周期当网内有节点再次计算出特定解,则CA节点进行轮换。

难度值是每个节点在生成区块时的重要指标,通过难度值的设计,解决了节点在不同算力的条件下,基本上保持每10 min 生成一个新区块。由于节点的算力是不同且不停变化的,因此难度值必须根据全网算力的变化进行调整,并且难度值的调整是在每个完整节点中独立自动发生的。调整的方法是,每隔2 016 个区块,所有节点都会按统一的公式自动调整难度值。公式如下:

其中,期望时长为20 160 min,即两周,是按每10 min一个区块的产生速率计算出的总时长。

新难度值根据实际时长与期望时长的比值,进行动态调整(变难或者变易)。也就是说,如果区块产生的速率比10 min 快,则难度值减小,难度增加,这样会造成下一个区块产生的速率下降;比10 min慢,则难度值增加,难度减小,这样会造成下一个区块产生的速率增加。这样即可动态地调整产生每个区块的速率,从而使每个区块的产生时间始终在10 min上下波动。

(4)集中式认证能够方便快捷地建立节点间信任关系,但是系统载荷集中在CA 节点上,容易出现单点故障。采用门限机制的分布式认证有效防止了单点故障,具有一定的容侵性,但是该认证方法需要多个节点合作才能完成认证,大大增加了网络开销。自组织认证也能防止单点失效,并且能够自适应网络拓扑结构的变化,但是节点间的认证需要将证书链上的所有证书都确认,使得计算代价高而且效率低。本文方案既保留了集中式认证快速方便地建立节点间信任关系的优点,又具有门限机制的容侵性,并且具有自组织认证的对网络结构的自适应性。

4.2 安全性分析

(1)DoS攻击。由于MANET网络中的节点都是资源受限的节点,因此很容易遭受DoS 攻击来耗尽节点的资源。本文方案中的CA 节点是通过计算特定数学难题获得特定解并得到全网节点确认而快速达到共识的节点。因此,求解的随机性使得执行CA功能的CA节点具有随机性,并且求解的周期性使得CA 节点轮换的周期性。这些特点使得攻击者无法预知下个周期哪个节点担任CA 节点,较好地对抗DoS攻击。

(2)仿冒CA 节点攻击。CA 节点是通过共识算法选举产生的,而且经过了全网的快速认证。当攻击者声称自己是CA 节点时,它会广播该解(nonce)和CA身份消息至全网,全网很容易验证该解是否是正确的解,如果验证不成功则丢弃该消息。因此只有计算出正确的解的节点全网节点才会认为是CA 节点,仿冒CA 节点几乎不可能。

(3)仿冒普通节点攻击。如果一个攻击者想要与合法用户进行通信,那么攻击者会想办法获得辅公钥。有两种途径可以获得辅公钥。第一种:攻击者可以伪造一个辅公钥()并声称自己是合法用户。但是该辅公钥并没有经过CA的签名,因此对方通信的合法用户无法用CA 的公钥解出攻击者的ID(IDFaker)和主公钥(),这样合法用户可以判断该节点没有经过CA认证,拒绝与之通信。第二种:攻击者可以截获一个合法用户的辅公钥(),并且仿冒其身份(IDAttacker),这种情况可以获得对方的主公钥,但是由于不知道被仿冒者的私钥,因此即使获得了对方的主公钥也无法用私钥解密对方发来的消息。因此,仿冒普通节点来进行攻击也是难以进行的。

(4)重放攻击。每次请求都需要加上时间戳Tstamp,然后把时间戳和其他参数一起进行加密处理。接收者判断请求时间与接受请求时间是否超过了时间窗(间隔),若是,则认为是非法请求,有效防止了重放攻击。

5 BAN逻辑证明

BAN 形式化逻辑,可以对认证协议进行形式化描述,并且可以根据假设对认证协议进行形式化分析。本章对基于共识机制的轻量级轮转CA 认证方案的安全性进行形式化分析证明。

5.1 用户与CA节点间认证的形式化分析

用户节点用U来表示,CA节点的公钥用PKCA表示,CA求解的随机数用nonce来表示,由于nonce是由CA节点求出的,因此这里默认CA节点相信自己求得的这个随机数nonce。去掉本文方案中的无关部分并简化过程,用户与CA节点间认证的形式化分析如下。

(1)初始条件假设

②U⊲{nonce,PKCA}

③U|≡#(nonce)

④U|≡CA⇒nonce

(2)认证目标

U|≡nonce

(3)BAN逻辑推导

由初始假设①②根据消息含义规则可形式化推出:

由③根据消息新鲜性可形式化推出:

由式(1)和式(2)的结果根据临时值校验规则可形式化推出:

由式(3)结果根据信仰规则可形式化推出:

由假设条件④和上步推导结果式(4)根据管辖规则可形式化推出:

由以上逻辑推理证明了目标U|≡nonce,用户最终信任了CA 求解的nonce值,从而信任了CA,达到了目标。

5.2 用户间的双向认证形式化分析

CA和用户节点认证成功之后,用户节点双方必须获取并相信对方的主公钥才能实现安全通信。即,只要证得由CA 签名的辅公钥是可信的,那么就可以认为用户节点的主公钥是可信的。这里的两个用户节点分别用A和B来表示。去掉本文方案中的无关部分并简化过程,以下是BAN逻辑证明过程。

(1)初始条件假设

(2)认证目标

(3)BAN逻辑推导

由初始条件①③根据消息含义规则可形式化推出:

由式(6)结果和假设条件⑦根据临时值验证规则可形式化推出:

由式(7)结果和假设条件⑤根据管辖规则可形式化推出:

此时已证明用户A相信用户B的辅公钥A|≡,同理证明

由初始条件②④根据消息含义规则得:

由式(9)结果和初始条件⑧根据临时值验证规则得:

由式(10)结果和初始条件⑥根据管辖规则推出:

此时已证明用户B相信用户A的辅公钥

通过以上BAN 逻辑形式化证明分析可知,本文方案实现了安全目标。用户与CA 节点之间以及用户与用户之间实现了安全的认证。

6 结束语

不同于传统网络,移动自组网没有基础设施的支持,网络拓扑结构动态变化,使得传统的认证方案不适用。鉴于此,本文提出了一种基于共识算法的轻量级轮转CA 认证方案,该方案结合了轻量级CA思想,并将区块链技术中的共识机制思想引入到认证过程中,全网节点通过竞争计算得到符合目标值的解来获得CA权限,全网节点通过验证该解从而能够快速达到共识。此外,共识算法求解的随机性决定了CA 节点的随机性,求解的周期性决定了CA 节点轮换的周期性,从而大大增加攻击者确定CA的难度,有效保护了CA节点。

在此基础上,对方案的结构及安全性进行了详细分析,并且用BAN 逻辑形式化分析方法对方案安全性进行了详细证明。结果表明,本文方案可以提供良好的安全认证特性,达到了安全目标,适用于资源受限的MANET网络。

猜你喜欢
私钥全网共识
比特币的安全性到底有多高
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
共识 共进 共情 共学:让“沟通之花”绽放
程序员把7500枚比特币扔掉损失巨大
论思想共识凝聚的文化向度
双十一带货6500万,他凭什么?——靠一句“把价格打下来”,牛肉哥火遍全网
商量出共识
范雨彤最新歌曲《这不是我要的故事》全网上线
一种基于虚拟私钥的OpenSSL与CSP交互方案
两新党建新媒体用户与全网新媒体用户之间有何差别