基于匿名网络和机器学习的信誉数据处理方法与流程

文档序号:18523440发布日期:2019-08-24 10:01阅读:294来源:国知局
基于匿名网络和机器学习的信誉数据处理方法与流程

本发明属于网络安全、系统安全与机器学习技术领域,公开了一种基于匿名网络的和机器学习的分布式信誉数据处理方法。



背景技术:

互联网的高速发展正在改变着人们的生活,其中电子商务在人类日常生活中的比重也愈来愈重。然而,网络交易中特有的虚拟性造成了交易双方的信息严重不对称,致使欺诈行为与安全问题滋生,严重制约了电子商务的发展与壮大。信誉系统的引入缓解了这一问题,它收集并聚合来自各个节点的反馈(如投票等),并将这些反馈整合为与节点长期身份相关联的信誉值,节点间可以通过这些明确的信誉值评估信息质量,系统也由此激励节点的文明行为,同时也能对服务提供方和服务消费方的未来行为做出一定的预测。但是,在节点对其他节点进行反馈时,由于借由反馈生成的评价信息与节点长期的真实身份相关联,攻击者很容易通过这些评价信息获取到节点的身份与一些交易记录,给节点的隐私带来了很大的威胁。

关于信誉系统的隐私保护问题,可能受到的网络攻击主要有:女巫攻击(sybilattack)、填塞攻击(self-promotionattack)、诽谤攻击(bad-mouthattack)、洗白攻击(whitewashingattack)和振荡攻击(oscillationattack)等。现有的一些集中式的基于临时身份的信誉系统(如淘宝网系统)必须包含权力巨大的集中式管理平台,平台方不一定可信,但是却可以轻易查看到用户的信誉值、评价信息和个人隐私。若节点发布出一些不利于平台的评价信息或者平台与某些节点勾结,则很容易发生报复行为或者共谋攻击(collusionattack),且如果平台失陷则整个系统就濒临崩溃。因此,需要对节点的身份进行匿名处理,并去掉这个权利巨大的平台方。但是现存的一些关于匿名的信誉系统里关于用户的身份很少形成全面的匿名性,也很少针对关于系统所有可能遭受到的攻击进行分类处理并对恶意用户进行问责。r.dingledine提出的基于p2p环境下的信誉系统通过ttp服务器注册并更改自己临时身份实现匿名,但是文献中并未给出具体的实现方法;m.voss同样引入ttp使得信誉评价与交易身份分离,确保了评价者身份与评价值的不可连接性,但是系统没有考虑对恶意用户的监测与相应的措施;ennanzhai提出的anonrep系统虽然解决了匿名问题,并能够抵御一部分的攻击,但是其多轮加密无法获得较高的计算效率。

目前的信誉系统中,尚不存在应用机器学习机制来处理系统受到的特有攻击。由于信誉系统中数据类别比较精简,因此无须进行数据降维也可以达到很好的数据效果,只需提取出节点的信誉值、匿名身份与评价信息作为特征值即可,如此一来,效率方面也有大大的提升。首先,系统可以在线下进行训练阶段,系统提供一个训练数据集,利用数据采集器采集到特征值,然后使用softmax函数进行处理,映射到(0,1)的区间并按照攻击类型的不同分类,根据情况调整损失函数的参数以尽量达到要求。然后进入测试阶段,真正的节点注册进入网络并互动,对这些节点进行测试,提取出节点的特征值,根据分类器模型得出分类结果。系统借由分类结果的反馈对恶意节点进行撤销操作,以保障整个网络的安全。

综上所述,现有技术存在的问题是:一些系统部署了权力过大的集中式平台,一旦平台失陷,则整个系统基本崩溃;用户(包括评价者与被评价者)在信誉系统中的行为应该是可以与注册身份链接到一起的,然而用户的真实身份却不能被追踪到,也即条件匿名的要求很少能够达到;系统的计算效率未得到良好的改善;系统所遭受的来自恶意节点的攻击只能被部分缓解,且定义模糊;这些攻击也从未被全面地分类,并加以处理。



技术实现要素:

本发明的目的在于克服上述现有技术存在的缺陷,提出了一种基于匿名网络和机器学习的信誉数据处理方法,用于解决现有技术中存在的技术问题。

本发明的技术思路是:节点通过可信第三方(trustedthirdparty)进行身份验证注册进入网络,服务器方向节点发放密钥对,节点发布公共消息并对其他消息做出反馈行为,系统对包含信誉特征的数据进行训练并分类,系统对节点已产生的数据进行测试并分类,系统对恶意节点进行处理。

根据上述技术思路,实现本发明目的采取的技术方案,包括如下步骤:

(1)节点通过可信第三方(trustedthirdparty)进行身份验证注册进入网络:

由一个可信第三方将节点的真实身份处理为注册身份并进行安全验证,结果如果不正确则直接摒弃该节点并不予处理,正确则允许其进入网络;

(2)服务器方向节点发放密钥对:

(2a)ttp借由安全信道(如ssl)向服务器方传送验证正确的结果;

(2b)每个服务器收到结果后会向该节点发放公私密钥对,服务器也会给每个节点生成最初的信誉值;

(2c)节点收到所有密钥对之后将其整合成为自己的密钥;

(3)节点发布公共消息并对其他消息做出反馈行为:

节点可以向服务器索取其他任何用户的公钥,借这些公钥与自己的私钥生成自己的可连接性环签名,对自己发放的公共消息与对他人的评价信息签名,系统同时同步更新t时刻每个节点的信誉值r(t);

(4)系统对包含信誉特征的数据进行训练并分类:

(4a)系统根据已有节点的数据模型生成一定量的训练数据集,包含正常节点与不同类型的恶意节点;

(4b)由部署过的数据采集器进行数据采集并提取出特征值,根据softmax函数进行分类处理,在特征数组中第i个元素的softmax值的计算方法为:

(5)系统对节点已产生的数据进行测试并分类:

通过节点间的消息发布与反馈,也产生了一定的数据量,将这些测试数据按照训练流程进行测试,调整损失函数的参数,并最终得到分类结果,系统可以根据分类结果对参数再度调整;

(6)系统对恶意节点进行处理:

系统获得该分类结果,服务器针对产生恶意攻击的节点停止其密钥更新,使其无法进入网络。

本发明与现有技术相比,具有以下优点:

部署方式为分布式系统,避免了权力过大的平台方对某些节点进行报复行为与共谋攻击;用户的真实身份、注册身份与评价身份互相分离,达到了条件匿名的要求;用户的公共消息与评价只能查看,无法追踪到真实身份;服务器方使用多个服务器,沿用anytrust模型,既保证了效率,又确保了安全,且可以根据该模型巧妙地对恶意用户进行处理;首次应用机器学习机制到信誉系统中,系统只需要对该系统进行有限次数的调参即可,节省资源,减少开销;该系统为一个原型系统,可以应用在任何与评价、购物、投票和信誉方面的场景。

附图说明

图1是本发明实例提供的工作流程示意图

图2是本发明实例提供的节点注册与消息发布与反馈流程示意图

图3是本发明实例提供的特征数据的训练与测试流程示意图

图4是本发明实例提供的针对特征数据的分类流程示意图

具体实施方式

以下结合附图和具体实施例,对本发明作进一步详细说明。

参照图1,一种基于匿名网络和机器学习的信誉数据处理方法,包括如下步骤:

步骤1)节点通过可信第三方(trustedthirdparty)进行身份验证注册进入网络:

由一个可信第三方将节点的真实身份处理为注册身份并进行安全验证,结果如果不正确则直接摒弃该节点并不予处理,正确则允许其进入网络;

步骤2)服务器方向节点发放密钥对:

步骤2a)ttp借由安全信道(如ssl)向服务器方传送验证正确的结果;

步骤2b)每个服务器收到结果后会向该节点发放公私密钥对,服务器也会给每个节点生成最初的信誉值;

步骤2c)节点收到所有密钥对之后将其整合成为自己的密钥;

步骤3)节点发布公共消息并对其他消息做出反馈行为:

节点可以向服务器索取其他任何用户的公钥,借这些公钥与自己的私钥生成自己的可连接性环签名,对自己发放的公共消息与对他人的评价信息签名,系统同时同步更新t时刻每个节点的信誉值r(t);

步骤4)系统对包含信誉特征的数据进行训练并分类:

步骤4a)系统根据已有节点的数据模型生成一定量的训练数据集,包含正常节点与不同类型的恶意节点;

步骤4b)由部署过的数据采集器进行数据采集并提取出特征值,根据softmax函数进行分类处理,在特征数组中第i个元素的softmax值的计算方法为:

步骤5)系统对节点已产生的数据进行测试并分类:

通过节点间的消息发布与反馈,也产生了一定的数据量,将这些测试数据按照训练流程进行测试,调整损失函数的参数,并最终得到分类结果,系统可以根据分类结果对参数再度调整;

步骤6)系统对恶意节点进行处理:

系统获得该分类结果,服务器针对产生恶意攻击的节点停止其密钥更新,使其无法进入网络。

参照图2,节点注册与消息发布与反馈流程,包括如下步骤:

步骤1)当节点希望注册进网络时,由ttp生成一个公开的随机数r发放给节点,节点获得该随机数r后用一个公开的单向hash函数对真实身份与r进行计算,得到结果作为注册身份返回给ttp,ttp计算并验证计算结果是否正确,如不正确则直接摒弃该节点结果并不予处理,正确则允许注册进入网络。其他用户也可以通过公开的hash算法与随机数验证其他用户的注册身份。

步骤2)服务器方遵循并沿用anytrust模型,也即在所有服务器中,不保证所有服务器都可信,但是至少确认一个服务器是绝对可信的。服务器分发公私密钥对与节点签名过程如下:

步骤2a)由于不能确保每个服务器都是可信的,所以使每个服务器都向注册成功的节点发放公私密钥对。

步骤2b)节点拿到所有的密钥对之后进行合并处理。即,每个服务器发放的密钥部分为k0,k1,...,kn,节点的完整密钥可由kc=f(k0,k1,...,kn)计算得出。此处规定函数f必须在获得了k0,k1,...,kn才可以计算得出kc,给定任意的n-1个ki(i∈[0,n]),都无法计算得出kc,且无法获得关于kc的任何关键信息。

步骤2c)节点执行sign(m,ski,pk1,pk2,...,pkn)算法对消息m执行可连接性环签名(linkableringsignature),得到签名σ(m),服务器方或其他节点收到后可以执行verify(m,l,σ(m)),其中l为公钥列表,ski为该节点i的私钥,pkj(j∈[0,n])为其他节点的公钥。

其中,可连接性环签名保证用户签署消息与反馈的匿名性,即其他节点只能知道是节点签名群中的某一个,但是却无法知晓具体是哪一个节点;并且如果同一个节点签署两条消息,则他人可以验证其是否是同一个节点签署的。保证了评价信息的可连接性。

步骤3)计算t时刻每个节点的信誉值r(t),其公式为:

rj(t)=α·rdefj(t)+β·hisj(t)+γ·d(t)

它表示了节点i在时刻t计算节点j的信誉值,其中,α,β,γ为系数,rdefj(t)为节点j在时刻t的原始信誉值;hisj(t)为节点j的历史信誉值,即在时刻t之后每个时刻计算出的节点j的信誉值的加权和再归一化后的值;d(t)为信誉变化率,也即原始信誉值与历史信誉值之差,反映了节点j行为的变化趋势。这样计算信誉值的方法反映出了信誉值的动态性与时效性。

参照图3~图4,关于信誉特征数据的训练与测试流程,包括如下步骤:

由于信誉系统中数据类别比较精简,因此无须进行数据降维也可以达到很好的数据效果,只需提取出节点的信誉值、匿名身份与评价信息作为特征值即可,如此一来,效率方面也有大大的提升。

步骤1)系统可以在线下进行训练阶段,系统提供一个训练数据集,利用数据采集器采集到特征值,然后使用softmax函数进行处理,映射到(0,1)的区间并按照攻击类型的不同分类,根据情况调整损失函数的参数以尽量达到要求。

步骤2)进入测试阶段,真正的节点注册进入网络并参与网络行为,对这些节点进行测试,提取出节点的特征值,根据分类器模型得出分类结果。

在训练与测试阶段中,特征数组中第i个元素的softmax值为:

softmax函数将这些特征数组映射到(0,1)区间上,可以看成是按照概率来进行多分类。使用softmax分类的损失函数为:

其中,fj代表特征向量f的第j个元素值。

本发明未详细说明部分属于本领域技术人员公知常识。

以上描述仅是本发明的一个具体实例,显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修正和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。

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