文章目录
物联网概述部分
体系结构
传统网络,OSI七层。
物联网由信息物品、自主网络、智能应用三个维度组成。
信息物品如各类传感器。
自主网络中的自主指的是自配置,个人的理解是自动配对、设备发现、自动联网。
智能应用,处理数据,向信息物品发送各类指令。
关键技术
以下内容主要整理自刘云浩的《物联网导论》,力求简要易懂。
RFID科普:https://blog.csdn.net/weixin_42100211/article/details/120796270
传感器技术科普:https://blog.csdn.net/weixin_42100211/article/details/120827609
低速网络协议:https://blog.csdn.net/weixin_42100211/article/details/120848283
无线网络科普:https://blog.csdn.net/weixin_42100211/article/details/120842915
数据中心科普:https://blog.csdn.net/weixin_42100211/article/details/120865918
数据挖掘科普:https://blog.csdn.net/weixin_42100211/article/details/120873416
物联网管理服务科普:https://blog.csdn.net/weixin_42100211/article/details/120859897
搜索引擎科普:https://blog.csdn.net/weixin_42100211/article/details/120870033
常见应用
可大致分为以下三类:
- 身份识别,如在物品上贴RFID标签
- 信息汇聚,如自动抄表
- 协同感知,如低时延的物物交互和物人交互
也可以分为消费、生产、政策三类。
更多实例参考:
物联网综合应用科普:https://blog.csdn.net/weixin_42100211/article/details/120887450
物联网特有的安全问题
物联网特有的安全问题:RFID安全和位置隐私问题
https://blog.csdn.net/weixin_42100211/article/details/120882385
感知层的安全问题
感知层本身组成局部传感网,通过网关节点与外网连接。每个节点与相邻节点使用对称密钥作为共享密钥。
- 普通节点被屏蔽,功能丧失,可能导致网络不连通
- 普通节点被控制,其共享密钥被掌握,因此途径该节点的所有数据都被掌握,且相邻节点可能收到伪造信息
- 网关节点被控制,网络侧可能收到伪造数据
- 普通节点或网关节点受DoS攻击
考虑到成本的因素,该层的终端设备功能比较单一,其资源、计算能力受限,攻击者通常采用暴力字典破解攻击的方式来控制物联网终端设备。攻击者不断破解更多的终端设备,就可以构建一个庞大的僵尸网络,而这些僵尸网络主要被用来发起 DDoS 攻击,或者向其他物联网设备发起暴力破解攻击,扩大僵尸网络的规模。
Mirai病毒是物联网病毒的鼻祖,其具备了所有僵尸网络病毒的基本功能,后来的许多物联网病毒都是基于Mirai源码进行更改的。
该层终端节点一般不会做反病毒部署。
感知层的安全需求
- 加入的节点应经过认证;
- 相邻节点的通信应加密;
- 需要对节点进行信誉评估,以识别被控制的节点;
- 安全路由。
传输层的安全问题
- 垃圾数据,如垃圾邮件、病毒
- 中间人攻击
- 跨异构网络攻击(互联网、移动网)
传输层的安全需求
- 机密性,除了保密数据本身,还需要保密数据流量信息
- 完整性
- 认证,包括跨域认证和跨网络认证,在移动网中建立标准化的AKA authentication and key agreement
处理层的安全需求
主要的忧虑包括数据泄露、隐私保护,以及处理层本身的安全。
因为物联网系统中的终端设备一般都部署在网关后面,无法直接对外提供服务,系统管理员为了在外网实现对设备的控制,需要设备与数据处理层中的云端通信服务器建立长连接,而云端的通信服务器为了保证设备可以随时连接,必须时刻保持开启状态,所以这些云端的通信服务器必然会暴露在互联网上,这些缺乏足够的安全防护措施的通信服务器容易成为受攻击的目标。
各层均存在的安全需求
- 轻量级的密码算法/安全协议
- 进一步统一标准,目前的标准化程度较低
边缘计算部分
边缘计算的基本特点
- 位置感知
边缘服务器能感知自己覆盖区域内的用户设备,因此用户不需要将自己的本地信息发送给远程的第三方。 - 低时延
如车载网,对低时延的要求更高。 - 对物联网的支持
大量传感器会产生海量数据,如果在中央云服务器处理,负担较大。 - 网络架构
实时应用服务由自组织的边缘节点提供。 - 移动性
云计算中,数据由公司、企业产生。而物联网设备具有高移动性。
边缘计算的核心技术
-
网络
计算服务请求者如何知道周边的服务?如果按照传统的DNS服务发现机制,当服务变化时,DNS的服务器通常需要一定的时间以完成域名服务的同步。(解决:引入命名数据网络NDN)
计算设备由于用户开关或物理位移造成的动态注册和撤销,服务通常也需要跟着进行迁移,需要快速配置。(解决:SDN是一种控制面和数据面分离的可编程网络。由于控制面和数据面分离这一特性,网络管理者可以较为快速地进行路由器、交换器的配置,减少网络抖动性)
边缘设备产生大量的数据,同时边缘服务器提供了大量的服务,根据边缘服务器以及网络状况,如何动态地对这些数据进行调度至合适的计算服务提供者? -
隔离技术
计算资源隔离,应用程序间不能互相干扰,例如在自动驾驶操作系统中,既需要支持车载娱乐满足用户需求,又需要同时运行自动驾驶任务满足汽车本身驾驶需求;
数据的隔离,不同应用程序应具有不同的访问权限。例如,车载娱乐程序不应该被允许访问汽车控制总线数据等。 -
体系结构
边缘计算平台通常针对某一类特定的计算场景设计,处理的负载类型较为固定,故目前有很多前沿工作针对特定的计算场景设计边缘计算平台的体系结构(异构计算硬件,而不是通用处理器)。 -
边缘操作系统
边缘计算操作系统向下需要管理异构的计算资源,向上需要处理大量的异构数据以及多样的应用负载,需要负责将复杂的计算任务在边缘计算节点上部署、调度及迁移,从而保证计算任务的可靠性以及资源的最大化利用。与传统的物联网设备上的实时操作系统 Contiki和FreeRTOS不同,边缘计算操作系统更倾向于对数据、计算任务和计算资源的管理框架。
机器人操作系统ROS(Robot OS)最开始被设计用于异构机器人机群的消息通信管理,现逐渐发展成一套开源的机器人开发及管理工具,提供硬件抽象和驱动、消息通信标准、软件包管理等一系列工具,被广泛应用于工业机器人、自动驾驶车辆即无人机等边缘计算场景。 -
算法执行框架
为了更好地支持边缘设备执行智能任务,一些专门针对边缘设备的算法执行框架应运而生。
2017年,谷歌发布了用于移动设备和嵌入式设备的轻量级解决方案 TensorFlow Lite。
Caffe2是Caffe的更高级版本,它是一个轻量级的执行框架,增加了对移动端的支持。
此外,PyTorch和MXNet等主流的机器学习算法执行框架也都开始提供在边缘设备上的部署方式。 -
数据处理平台
数据的来源和类型具有多样化的特征,这些数据包括环境传感器采集的时间序列数据、摄像头采集的图片视频数据、车载LiDAR的点云数据等,数据大多具有时空属性。如OpenVDAP,是一个开放的汽车数据分析平台。 -
安全和隐私
边缘计算设备通常处于靠近用户侧,或者传输路径上,具有更高的潜在可能被攻击者入侵
边缘计算面临的问题
-
编程模型
与传统编程模型不同,要求任务、数据、资源都具有可分割性。边缘计算中的设备大多是异构计算平台,每个设备上的运行时环境、数据也不相同,且边缘设备的资源相对受限,在边缘计算场景下部署用户应用程序会有较大的困难。 -
软硬件选择
在硬件层面上,有CPU、GPU、FPGA和ASIC等各类计算单元,即便是基于同一类计算单元,也有不同的整机产品,例如基于英伟达GPU的边缘硬件产品,既有计算能力较强的DRIVE PX2,又有计算能力较弱的Jetson TX2。在软件系统上,针对深度学习应用,有TensorFlow、Caffe和PyTorch等各类框架。 -
计算任务动态调度
云计算中心与边缘设备间的调度:分为两种方式,自下而上和自上而下。自下而上是在网络边缘处将边缘设备采集或者产生的数据进行部分或者全部的预处理,过滤无用数据,以此降低传输带宽;自上而下是指将云计算中心所执行的复杂计算任务进行分割,然后分配给边缘设备执行,以此充分利用边缘设备的计算资源,减少整个计算系统的延迟和能耗。
边缘设备之间的调度:边缘设备的计算、存储能力本身是不同的,并且会随着时间的变化而变化,而它们承担的任务类型也是不一样的,因此需要动态调度边缘设备上的任务。设计调度程序时应该考虑:任务是否可拆分可调度、调度应该采取什么策略、哪些任务需要调度等。动态调度需要在边缘设备能耗、计算延时、传输数据量、带宽等指标之间寻找最优平衡。 -
商业问题
边缘节点的升级维护比较困难,且容易遭受物理攻击。
许多边缘节点暴露于自然环境下,不像云计算中心有稳定的基础设施保护。
隐私保护部分
访问模式
通过多数物联网云平台提供的搜索操作可以对用户访问模式等数据进行深度挖掘,从而对用户的行为、爱好更加了解,对敏感数据和隐私信息构成威胁。
比如,如果服务器发现用户每次执行数据访问序列(u1, u2, u3)后,都会执行股票交易,那么当用户再次发起(u1, u2, u3)访问序列时,即使这些访问序列是加密的,服务器也能以很高的概率推测出用户接下来要执行股票交易,进而推断出这些访问序列的内容。
数据失真隐私保护
使敏感数据失真但同时保持某些数据或数据属性不同的方法。例如,采用添加噪声(随机化)、交换、阻塞、凝聚等技术对原始数据进行扰动处理,但要求保证处理后的数据仍然可以保持某些统计方面的性质,以便进行数据挖掘等操作。
随机化
下图是随机化的过程,可以获取X的有关信息,但无法还原精确的x1,x2。
随机化技术一个无法避免的缺点是:针对不同的应用都需要设计特定的算法对转换后的数据进行处理。
凝聚
基于随机化的问题,提出了凝聚技术:它将原始数据记录分成组,每一组内存储着由k条记录产生的统计信息,包括每个属性的均值、协方差等。这样,只要是采用凝聚技术处理的数据,都可以用通用的重构算法进行处理,并且重构后的记录并不会披露原始记录的隐私,因为同一组内的k条记录是两两不可区分的。
阻塞
阻塞技术具体反应到数据表中,即是将某些特定的值用一个不确定符号代替例如通过引入除{0,1}外的代表不确定值的符号“?”可以实现对布尔关联规则的隐藏。由于某些值被“?”代替,那么对某些项集的计数则为一个不确定的值,位于一个最小估计值和最大估计值范围内。
数据加密隐私保护
分布式应用的数据处理模式可以分为垂直和水平两种,前者相当于每个站点只存储部分列;后者相当于每个站点只存储部分行。
安全多方计算
每个参与者Pi,有一个自己的保密输入信息 Xi,n个参与者要共同计算一个函数f(X1,X2, … ,Xn) = (Y1,Y2, … ,Yn),计算结束时,每个参与者Pi只能了解Yi,不能了解其他方的任何信息。每一方都只知道自己的输入数据和所有数据计算后的最终结果。
分布式匿名化
以在垂直划分的数据环境下实现两方的分布式k-匿名为例,算法描述如下:
这里的ID是一列,而A11表示属性列A1的第一行。
ID | 属性列A1 |
---|---|
id1 | A11 |
id2 | A12 |
即使攻击者拦截了通信内容,也无法窃密。
https://www.cnblogs.com/cmt/p/14580194.html k匿名化讲解
分布式关联规则挖掘
我没看懂,有待研究。
分布式聚类
我没看懂,有待研究。
限制发布隐私保护
数据匿名化一般采用两种基本操作:
抑制。抑制某数据项,亦即不发布该数据项;
泛化。泛化是对数据进行更概括、抽象的描述。譬如,对整数5的一种泛化形式是[3,6],因为5在区间[3,6]内。
隐私保护总结
MQTT
不同于 HTTP 协议的请求/回答模式,MQTT 协议采用了发布/订阅的通信模式,所有的物联网终端设备都通过 TCP 连接到云端服务器,云端通过主题的方式管理每个设备所订阅的通信内容,负责在设备与设备之间转发信息。考虑到计算能力和存储资源受限的物联网设备,MQTT 协议在设计时采用了二进制格式编码,对于低功耗和低速网络也有很好的适应性,易于开发和实现。MQTT 协议还提供了非常完善的QoS机制,根据业务场景可选择不同的消息送达模式,有效控制数据的可靠性、实时性和生存时间。
需要注意对通信过程加密,并采取身份认证机制。
区块链与物联网
区块链具有去中心化特性和隐私保护特性,因此这个构想是自然的。
区块链技术为物联网提供了点对点直接互联的方式进行数据传输,整个物联网解决方案不需要引入大型数据中心进行数据同步和管理控制,包括数据采集、指令发送和软件更新等操作都可以通过区块链的网络进行传输。
区块链技术解决物联网的问题主要体现在三个方面:
- 点对点的分布式数据传输和存储的构架;
- 分布式环境下数据的加密保护和验证机制;
- 方便可靠的费用结算和支付。
考虑到终端hash算力和电耗,不可能直接照搬。
物联网场景下,会产生海量数据,要求高并发量和小笔交易。
比特币基于区块链实现,因为手续费较高所以一般会打包多笔交易,不适合大量小笔交易的场景,而且由于其单链结构,并发数很少,这一点广受诟病。
IOTA基于tangle实现,支持无需手续费的微支付。TOS,普通交易无费用,高价值交易有费用。两者的数据结构和共识机制都与比特币不同。
IOTA使用DAG有向无环图作为数据结构,解决了高并发、交易成本问题。但是海量的数据冗余、巨大的网络数据传输量和交易时长无法确定的问题并没有解决,在物联网中这又是不得不面对并且必须解决的问题。TOS通过SDAG分层区块网络技术,可以减少大量的数据冗余,并且SDAG是基于DAG现有技术增加了POS共识,实现交易免费与付费结合,再通过S-mechanisms机制与B- algorithm算法现实分层区块网络。对比于IOTA,TOS的技术方案更适用于物联网行业。