每周会议摘要及老师提到的一些问题总结。

2018

11.23

问题:物联网场景下,设备算力有限,没有激励机制,用PoW还是PoS共识?

论文1中使用PoS,论文2中节点借用边缘服务器的算力完成工作量证明,这些都是解决节点算力问题的有效方法,但是无论PoW还是PoS都有激励机制。

论文3中采用的是一种叫做轻量级可扩展区块链(LSB)的区块链技术,LSB没有使用PoW,避开了节点算力有限的问题,同时也没有看到关于激励机制的描述,采用的是称为“scheduled block generation process”的方式,每个节点在固定的时间间隔只被存一个块。

如果LSB能成功满足两个条件的话,这一技术显然是最适合使用的;而PoS机制和借用边缘服务器的算力两种方法,现在更偏向PoS,因为借用边缘服务器的算例很容易造成算力的集中,从而达成51%攻击,这种情况类似于加密货币领域现在的“矿池”,矿池的出现曾一度面临算力几近超过50%的情况,依赖于部分参与者主动离开算力最大的矿池才避免这个问题。

问题:区块链有哪些安全和隐私漏洞

论文4中提到基于区块链的智能车辆的安全与隐私的方案继承了区块链的种种优点,但也继承了缺点。指关于隐私的一个缺点,区块链使用密码学技术构造的地址和其它节点通信,但攻击者可以通过把用户行为(如交易数据)和地址做关联,从而达成去匿名化,这会危害用户隐私。

问题:无限传输损耗(延迟、同步、丢包等)对区块链的影响

同样,后面几篇论文还没来得及看,这一问题还不能完整回答。我只是在[4]中看到了关于这一方面的一个描述,因为4中使用了一种划分簇的方式,簇首节点管理该簇中的其它节点和执行区块链的功能,这里涉及到的被管理的节点中包括了智能车辆,智能车辆的移动可能造成和簇首节点之间的通信延迟。4中采用了软切换的方式完成智能车辆从高延迟簇到低延迟簇的转移,从而解决了这一延迟问题。

注:关于簇划分在选修的数据挖掘里有介绍,软切换在新一代互联网技术里有介绍,所以都能够理解。

Analysis of the Communication Traffic for Blockchain Synchronization of IoT Devices

一个思路是模拟通信链路不稳定对区块链的影响

12.01

探讨工业物联网+区块链的可研究性,是否值得研究,是否可以由学校中一到两个人研究某具体的细的方面 比较PoS,DPoS等非工作量证明的其它共识算法 比较可做实现的各平台 完成构架所需要的东西,平台或设备, 最近的工作做一个综述,写一篇文章

12.08

提一个场景 异常行为检测 通信链路造成的影响

12.29

数据分为几种情况考虑:实时、静态、大数据量

各情况下是否有必要用区块链,到底有什么优点

数据的控制可以是分布的,但是存储呢,数据存在链中开销很大

考虑实时和静止两种情况下不同场景的数据问题

2019

02.16

以后自己的方案要进行安全性分析,典型的攻击方式有以下几种

Sybil Attack

女巫攻击。这一名称来源于Flora Rhea Schreiberie在1973年的小说《女巫》(Sybil)改编的同名电影,是一个化名Sybil Dorsett的女人心理治疗的故事,她被诊断为分离性身份认同障碍,兼具16种人格。女巫攻击是在P2P网络中,因为节点随时加入退出等原因,为了维持网络稳定,同一份数据通常需要备份到多个分布式节点上,这就是数据冗余机制。如果网络中存在一个恶意节点,那么同一个恶意节点可以具有多重身份,就如电影中的女主角可以分裂出16个身份,原来需要备份到多个节点的数据被欺骗地备份到了同一个恶意节点(该恶意节点伪装成多重身份),这就是女巫攻击。女巫攻击是攻击数据冗余机制的一种有效手段。

女巫攻击的解决办法一般有两种。一种方法是工作量证明机制,即用计算能力证明自己是一个合法节点,增加攻击的成本,比特币就是这种方式。另一种方法是身份认证(相对于PoW协议,女巫攻击是基于BFT拜占庭使用容错协议的Blockchain需要考虑的问题,需要采用相应的身份认证机制)。认证机制分两类:

  • 基于第三方的身份认证:每加入一个新的节点都需要与某一个可靠的第三方节点进行身份验证。
  • 纯分布式的身份认证:每加入一个新的节点都需要获得当前网络中所有可靠节点的认证,这种方法采用了随机密钥分发验证的公钥体制的认证方式,需要获得网络中大多数节点的认证才能加入该网络。

一个通俗的解释,女巫攻击就是分身诈骗术,几种应对方法分别是:

  1. 干活 你即便分身千千万,唯有真心能干活。分心是虚幻的,没有力气,pow证明。
  2. 发身份证 可靠第三方公安局给你发身份证,没有身份证都是分身妖怪。
  3. 熟人社会 你迁户口到一个新的村子里,必须得到村子里,大部分人的认证,这就是中国传统社会的身份认证方法。群众的眼睛就是火眼金睛,照出一切妖魔鬼怪。

Spoofing

欺骗性攻击是指一个人或程序通过伪造数据成功伪装成另一个人以获得非法利益的情况。它与sybil攻击相反,攻击者试图创建大量虚假或虚拟身份,在欺骗攻击中,攻击者试图欺骗合法用户的身份以利用他的权限

DDoS

分布式拒绝服务攻击,全称是 Distributed Denial of Service,一般来说是指攻击者利用“肉鸡”对目标网站在较短的时间内发起大量请求,大规模消耗目标网站的主机资源,让它无法正常服务。在线游戏、互联网金融等领域是 DDoS 攻击的高发行业。一个形象的例子如下

我开了一家有五十个座位的重庆火锅店,由于用料上等,童叟无欺。平时门庭若市,生意特别红火,而对面二狗家的火锅店却无人问津。二狗为了对付我,想了一个办法,叫了五十个人来我的火锅店坐着却不点菜,让别的客人无法吃饭。

这就是DDoS。

应对DDoS的方法主要是以下几种:

  • 高防服务器:还是拿我开的重庆火锅店举例,高防服务器就是我给重庆火锅店增加了两名保安,这两名保安可以让保护店铺不受流氓骚扰,并且还会定期在店铺周围巡逻防止流氓骚扰。高防服务器主要是指能独立硬防御 50Gbps 以上的服务器,能够帮助网站拒绝服务攻击,定期扫描网络主节点等,这东西是不错,就是贵~

  • 黑名单:面对火锅店里面的流氓,我一怒之下将他们拍照入档,并禁止他们踏入店铺,但是有的时候遇到长得像的人也会禁止他进入店铺。这个就是设置黑名单,此方法秉承的就是“错杀一千,也不放一百”的原则,会封锁正常流量,影响到正常业务。

  • DDoS 清洗:就是我发现客人进店几分钟以后,但是一直不点餐,我就把他踢出店里。DDoS 清洗会对用户请求数据进行实时监控,及时发现DOS攻击等异常流量,在不影响正常业务开展的情况下清洗掉这些异常流量。

  • CDN 加速:可以这么理解,为了减少流氓骚扰,我干脆将火锅店开到了线上,承接外卖服务,这样流氓找不到店在哪里,也耍不来流氓了。在现实中,CDN 服务将网站访问流量分配到了各个节点中,这样一方面隐藏网站的真实 IP,另一方面即使遭遇 DDoS 攻击,也可以将流量分散到各个节点中,防止源站崩溃。

Message replay

重放,顾名思义,重复的会话请求就是重放攻击。可能是因为用户重复发起请求,也可能是因为请求被攻击者获取,然后重新发给服务器。这种攻击会导致请求被攻击者获取,并重新发送给认证服务器,从而达到认证通过的目的。可以通过加密,签名的方式防止信息泄露,会话被劫持修改。但这种方式防止不了重放攻击。抵御方式主要有:

  • 时间戳验证:请求时加上客户端当前时间戳,同时签名(签名是为了防止会话被劫持,时间戳被修改),服务端对请求时间戳进行判断,如超过5分钟,认定为重放攻击,请求无效。 时间戳无法完全防止重放攻击。
  • 序号:顾名思义,在客户端和服务端通讯时,先定义一个初始序号,每次递增。这样,服务端就可以知道是否是重复发送的请求。
  • 挑战与应答的方式:我们一般采用这种方式来防御重放攻击。客户端请求服务器时,服务器会首先生成一个随机数,然后返回给客户端,客户端带上这个随机数,访问服务器,服务器比对客户端的这个参数,若相同,说明正确,不是重放攻击。这种方式下,客户端每次请求时,服务端都会先生成一个挑战码,客户端带上应答码访问,服务端进行比对,若挑战码和应答码不对应,视为重放攻击。

Message substitution

消息替换攻击:在替换攻击中,攻击者在传输过程中拦截有效消息,并以接收者接受伪造消息的方式对其进行更改,就好像它们是由原始发件人发送的一样。

参考论文:Hammi M T, Hammi B, Bellot P, et al. Bubbles of Trust: A decentralized blockchain-based authentication system for IoT[J]. Computers & Security, 2018, 78: 126-142.

03.10

Azure 可以进行20000美元研究经费申请

做不同共识协议受攻击的安全评估

在网络中模拟恶意攻击的节点

节点间距离很远造成的时延

模拟传感器数据流的生成

03.17

以太坊私链网络+智能合约+Swarm存储方案

选择合适的共识方案

模拟恶意节点的攻击,模拟时延

账户自动生成

考虑以太坊私链如何接入公链

03.31

PoA共识了解

随机数据生成

存储权限和查看数据权限

利用马尔科夫链控制数据生成时间

监测区块生成时间,并形成数据集

04.07

监测自己的私有区块链的区块生成时间,重点关注分叉

随机时间的数据生成和固定时间的数据生成

工厂场景激励机制改动,可以改为信誉积分的激励机制

工厂场景新的共识

用户随机时间访问区块链

实验场景想清楚,模拟攻击,下周提一个方案出来

04.12

了解工业4.0,5G,Smart Factory等可能结合的新技术,完善背景

04.28

论文应针对特殊的应用场景

之前做的仿真能不能用,能做什么改进,产生什么数值结果

05.12

整理访问控制中分层管理的思路实现

共识部分可以对共识进行分类,然后用树形图表达

考虑最终的方案应实现一个工业的控制流程

05.19

工厂内存在隐私问题,有设备厂商参与运营监测设备情况,同时有一对一通信的情况

论文着重关注私有区块链中的攻击方式,明确私链中是否还存在女巫和日蚀攻击

明确BSeIn论文中区块链结构的安全性由什么保证

06.09

各种存储方案的优点

重构论文,下周讲论文,要提出框架为什么这么设计

06.15

找三点创新点,以防万一

想一个合适的标题

如果架构算创新点,要提出创新在哪里

论文架构Background中的论述应该放到其它地方,Background是别人的东西

06.23

设备选择问题

创新点问题

新课题:终端资源共享(毫米波,5G,区块链)

06.30

实验创新:便宜有效

要往前看一眼,因为毕业要三年,做的东西很可能别人就做了

往IIoT的移动性方面想

众包(CrowdSouring)和Testbed

07.07

实验应有数值分析,具体分析哪些指标和结果,要先想清楚

对安全性分析,也可以完全理论上来做

可以考虑两个方向

  • 模拟通信链路不稳定对区块链网络造成的影响
  • 考虑移动性带来的问题

要尽量看的远一点,两年的时间研究会发生很大变化

07.13

移动性

when mobile blockchain meets edge computing中,提出移动设备从边缘服务器借算力的思想,并提出算力的定价方案

Blockchain: A distributed solution to automotive security and privacy中在Future research directions一节中描述了关于移动性的方面,认为车辆的频繁移动会增加移交过程的数据包和处理开销,应寻找移动友好的方法来减少开销

存储

物联网下的区块链访问控制综述一文的展望中提到,未来面临的问题包括

存储优化 区块链的存储是一个增量的过程,即只能增加而不能减少,所以会给存储带来巨大的负担.因此,如何降低区块链存储的代价,是物联网访问控制需要解决的另一个问题.目前的解决方法有两种:第一,压缩区块链中存储的数据,使相同大小的区块存储更多的内容[28];第二,将区块链与区块链存储解耦[69],区块链中存储的是指向某个内容的哈希值[39].

故应对1中基于合约的访问控制进行存储优化,一是区块链存储哈希值,二是区块链压缩改进(SCC : Storage Compression Consensus for Blockchain in Lightweight IoT Network)

实现后分析压缩节省的存储空间,以及随着节点数增加带来的延迟

方案改进

针对Smart Contract-Based Access Control for the Internet of Things一文的复现及改进

  • 原文使用了两台电脑,两台Raspberry Pi

  • 实验包括对合约的调用,部署与执行合约的Gas消耗

  • 进行时间机制优化,多级权限定义以及换用Quorum实现

  • 可以对改进方案添加安全性分析

07.14

下周完成开题初稿,包括

  • 现有的问题
  • 自己用什么方案解决什么问题
  • 产生什么工作成果

完成后比较之前硕士论文的工作是否有相似的,工作最好不要重复

小点的改进可以,但也可以想一下有什么新的想法

10.12

物理量+网络参数,一起作异常检测

以区块链、CPS和异常检测为关键词检索

异常分为动态和静态

IoT节点不一定是实际的传感器

10.27

网关被攻破时所管理的设备进行归属权转移

实验实施上的优化可以总结出来

异常不只是链上的交易数据,还有链下的设备行为,有可能从始到终设备提交的都是错误数据

重点在于检测什么样的异常行为,也就是检测量的问题,算法的问题老师可以解决

工业常用的传感器是震动、加速传感器,凡是有执行这一动作的都是执行器(LED,小电机,麦克风等)

11.03

加入设备属性,基于属性做访问控制和异常检测

异常检测应实现环境自适应和时间自适应

可以使用最简单的Arduino+传感器/执行器方式

2020

03.08

论文改进

  • 使用latex,最好用overleaf进行多人协作,然后在本地备份
  • 将自己的贡献放到Introduction部分
  • Overview改为System description/System Overview
  • Simulation 改为Validation/Experiment(推荐)
  • discussion里添加方案的缺点描述,但总体要保证利大于弊

研究方向

  • 在工业控制的大前提下
  • 尝试结合5G/Edge/D2D(device to device) Edge举例:100个节点,30个是常规区块链节点,70个其它可用设备,充分利用可用设备
  • 第二条不可行的情况下,继续研究存储问题

投稿

最好是国内有英文版本的期刊

03.15

论文改进

  • 明确所作的工作是用什么思路解决了什么问题,在Introduction部分写清楚
  • 确认论文的关键词和标题,要能反映出自己做的工作
  • 整体工作是通用于IoT的,但 Case Study 部分可以针对IIoT举个例子

研究方向

  • 针对最近发生的事情思考有什么解决办法,比如区块链用于解决谣言传播问题

03.29

  • 使用ABAC代替ACL和减少合约数量有好处,但是有哪些缺点也要确定
  • 提炼一些关键词,确认标题,比如可以去掉scheme,加入efficient
  • 关于如何efficient可以在discussing部分讨论一下,一定要明确这样做的好处 Edge
  • 场景现有利用D2D网络协作解决深度学习的算力需求和解决别的设备的存储需求
  • 协作时也需要达成信任,即利用区块链解决D2D网络的信任

04.05

论文改进

  • 语法修改
  • 工作的优越性要展示出来,比如在discussing部分加一个比较表
  • 标题再考虑一下,不吸引人

新方向

  • 将看过的论文总结一下,做个PPT周三讲一下
  • MEC或者说Edge方向可以研究

04.08

  • 不使用边缘服务器或基站的原因是频谱资源有限
  • 发现设备的方法包括社交网络,蜂窝系统等
  • 移动性,动态是两个关键词,参与的节点随时加入或离开
  • 如果使用信誉度评估系统,应该注意的新用户没有信誉度,这是一个风险

04.22

接下来做两件事

  1. 整理一下以前做过的事,只列提纲就好,发给老师

  2. 区块链也面临好多攻击,那它还有什么用,思考一下这个问题

  3. 信誉系统结合到现有工作中

04.29

首先是关于Overleaf那篇已完成的论文的问题

  1. 整体写的比较随意,逻辑性应再高一点

  2. 要逐层推进,前面提过的后面不要再提,比如网关作为设备代理这件事,提了好几次

  3. 插图中使用的图标要注意版权问题

按照上述三点要求之后更新一下

关于信誉函数设计问题,信誉值上下应有界,不要一直增长,关于这一点可以参考 CUSUM算法

05.06

信誉函数设计问题:

如果先期积累了很高信誉值,产生一个恶意行为只会导致信誉值下降,无法检测到。老师提示:可以设立长期和短期两种情况,短期在单位时间T内计算,这样就不会忽略恶意行为。另外,可以按时间计算,也可以按次数计算。

实验:

  1. 最后应该得到一个一般性的数学函数来描述

  2. 绘制得到一个ROC曲线,根据虚警值计算概率

  3. 长期的改进可以使用强化学习的信誉度计算

05.27

  1. Overleaf 暂时不着急上传到 arXiv, 可以继续更新,最好把信誉系统加进去

  2. 测试时,输入的行为频率应符合一个模型,比如什么时间产生一个合法行为或什么时间产生一个恶意行为,不然结果没有说服力(一般情况产生频率是泊松分布,使用1个恶意节点)

  3. 同时应人为的产生 奖励、容忍、惩罚、报警 四种情况进行测试,看系统能不能识别;

  4. 考虑几种针对信誉问题的攻击:bad mouthing,on-off,conflliting behavior

06.03

  1. 实验场景 Smart home改为 Smart building更普遍更适合,听起来也更好

  2. 考虑输入的参数模型,会产生影响的变量有三种:属性、行为和请求时间

    • 请求产生的时间应符合泊松分布,换句话说两次请求的间隔应符合指数分布,最后我们应得到的一个叫做到达率的值
    • 泊松分布的到达时间可用 Matlab 产生
  3. 三种输入变量可以用一种方法表示,首先建立输入文件,文件的内容有三列,第一列是请求产生的时间,使用 Matlab 产生的值;第二列是属性,对属性进行随机的定义和更新;第三列是行为,定义当前时间执行的行为,比如属性的管理、策略的管理和访问请求

  4. 信誉合约中遗忘因子的计算是指数函数,因为智能合约对浮点数运算的限制,可以将指数运算用泰勒级数展开;权重或者说遗忘因子的取值可以令其符合泊松分布,与0-1内取值相同

08.12

访问控制请求同时发起怎么办,区块链的交易池如何处理,是否有排队论的问题

合约不同的行为是否都符合泊松过程,恶意行为可能是集中的

如何确定某个时刻发起哪一种类型的行为,是否用概率模型

09.12

  1. 寻找供应链的事件生成模型不如直接寻找相关的数据集,数据集应包括什么时间产生什么行为,设备具有哪些属性等;

  2. 寻找数据集可以尝试 process control 的关键词;

  3. Discrete event system 仿真可以使用 matlab 或 octav

  4. 如果发起访问请求的时间间隔量级比区块链交易池的等待时间大,可以忽略,因此应首先确定它们的时间量级;

  5. 攻击模型的问题,短时间大量请求是一个攻击模型,但非法的访问控制或属性和策略修改不是,因为会被挡住,再仔细思考一下

另外,不管攻击有没有被挡住,都可以介绍一下,最后说明区块链挡住了哪些攻击,访问控制挡住了哪些攻击,信誉系统挡住了哪些攻击;

09.19

  1. 查找 Trust , Credit 等看这些论文里用到的时间序列是什么样的;

  2. Risk-based 和动态访问控制方向,它们会基于访问请求、用户属性、操作严重性、资源敏感性、用户风险历史记录等计算风险值,控制访问是否通过,是可以借鉴的,多看几篇论文参考一下;

  3. 可能的异常还包括:异地访问、长时间不访问突然开始访问

  4. 需要对惩罚有个指标衡量,因为加入惩罚一定需要对现有的系统有好的部分,比如以太网中某个设备如果总是发不出去包,会推迟一段时间再发,这就是一个惩罚,这个惩罚可以减小网络中包碰撞的几率,访问控制系统加入惩罚也需要对某一方面有优化,如果实在找不到这个指标,可以利用基尼系数定义一个公平指标

10.17

老师给的建议

  1. 整数信誉算法和浮点数信誉算法都实验一次,比较一下;

  2. 输入数据集(即输入文件中的多列数据),可以试着用机器学习的方式做一下检测,看一下结果,老师推荐了 weka;

  3. 恶意行为添加了对特殊策略条目的处理,实验时如何把它加入输入数据集;


  1. Wang W, Niyato D, Wang P, et al. Decentralized Caching for Content Delivery Based on Blockchain: A Game Theoretic Perspective[J]. arXiv: Networking and Internet Architecture, 2018. ↩︎

  2. Xiong Zehui, Feng Shaohan, Niyato Dusit, et al. Edge Computing Resource Management and Pricing for Mobile Blockchain. ↩︎

  3. Xiong Zehui, Zhang Yang, Niyato Dusit,等. When Mobile Blockchain Meets Edge Computing[J]. IEEE Communications Magazine, 56(8):33-39. ↩︎

  4. Dorri A, Steger M, Kanhere S S, et al. BlockChain: A Distributed Solution to Automotive Security and Privacy[J]. IEEE Communications Magazine, 2017, 55(12): 119-125. ↩︎