文摘
无线重组期间,传感器节点很容易被窃听,甚至控制未经授权的人。提醒我们,安全是无线重组的关键问题。大多数以前的研究数据加密方面的讨论这个问题,而很少考虑到物理层。在本文中,我们试图提高重组通过改变物理级的安全通信方式。我们应用单向可见光(VLC)无线通信编程和使用商业现成的设备,如智能手机和传感器节点来提高适用性。然而,不稳定的光源和低成本光传感器使重组过程的困难。为达此目的,我们提出了一种新颖的名叫ReVLC重组方法,这是双重的:首先,我们设计一个代码块机制基于相似性函数来减少传输代码。其次,我们使用压缩表示优化双Header-Pulse间隔调制(DH-PIM)节省传输时间。实验结果说明ReVLC的有效性在额外的49.1%能源的成本开销相比之下,传统的重编程方法。
1。介绍
无线传感器网络(网络)系统作为一种边缘网络部署物联网总是无法访问地区的长期监测任务。软件升级或甚至有故障时,在线的唯一方法是重新无线调试或调整没有检索功能。
关于以前的无线重组方法,数据传输总是完成无线电波通信(RWC)及其等10千赫至3000兆赫的频率是2.4 GHz(无线个域网和wi - fi)或800 mhz (GPRS)等。由于RWC的广播特性,传输代码很容易窃听和篡改。特别是在安全敏感重组的情况下,一些代码或参数不适合被广播方式传输,如更新数据加密算法(1)或密钥(2,3]。事实上,以前的研究(4- - - - - -12)考虑在解决小从物理层通信信息泄漏。同时,可见光通信(VLC)单向传播,使得nonauthoritative人难以窃听和有助于减少安全风险。此外,重组在调试应用了传感器节点不能接触其他传感器节点和汇聚节点。例如,我们早期的故宫博物馆文物保护的WSN系统(13),在实验室试验和运行良好。然后所有节点被关在玻璃展示至少3个月。一旦故障发生,调试了节点必须通过非接触的方式进行。传统RWC-based重组方法不能调试了传感器节点,但VLC-based重组方法使这一切成为可能。
传统的VLC研究光信号发送和接收的专用设备。例如,风扇等人基于VLC改善门控制系统和系统需要一个特殊的感光电路(14]。王等人设计了一个RGB-LED电路增加VLC传输速率(15]。此外,Adiono等人试图减少环境光噪声和开发专用的VLC接收机模拟滤波器(16]。然而,专用光接收设备的成本很难承受低成本的传感器节点。因此,对重组这样的节点,我们也探讨如何应用VLC在低成本或商用现货(COTS)设备。
一般来说,环境光传感器装备的传感器节点能够感知光强度的变化,可以作为一个潜在的VLC信号接收器。此外,智能手机有可能VLC网关,在以下两方面的:LED手电筒内置的智能手机是潜在的VLC信号发射机如图1;大内存空间和传输带宽保证缓存更新代码和转发传感器节点代价小。
使用通用硬件配备智能手机和低成本的传感器节点将非常有助于克服的障碍应用VLC-based重组postdeployment WSN系统。同时,使用VLC的一般硬件引起不稳定的性能,延长了重组过程,甚至不能改变传感器节点。为达此目的,我们提出一种新颖的重组方法称为ReVLC。减少传输时间重组两边:最小化传输数据和优化调制。
以前的重编程方法采用增量策略来最小化数据传输。在这些方法中,δ脚本(17)(由二进制代码差异和重建操作)传播。有方法专注于如何提高旧代码和新形象的相似性,如以下:西风和爱马仕17,18)改善新老版本之间的相似性应用修复全球/静态变量和函数地址;李等人[19设计一个update-conscious依从者生成基于旧的新形象,提高两个版本的相似性。
然而,改进代码相似度需要改变程序调试过程结构,增加困难。进一步,通过比较整个项目就会产生这样的二进制代码差异图像,但通常调试传感器节点通常是解决几个类似的功能函数。因此,我们设计一个代码块的机制。在每一块,我们保持功能结构,把functionality-relevant函数在一个代码块。当我们进行重组,这些函数在同一块同时更换。通过这种方式,只有某些代码块需要被转移,而不是整个项目的形象。
我们还展示了一个名为压缩的新调制DH-PIM(简称CDH-PIM)基于双Header-Pulse间隔调制(DH-PIM) [20.]。DH-PIM是专为VLC和接近的调制效率的书。在CDH-PIM,我们采用压缩表示在调制阶段重复钻头系列。实验结果说明了传输速率与DH-PIM相比可以提高约17.2%。
本文的其余部分的结构如下:部分2显示相关工作;部分3介绍了ReVLC的设计和实现;部分4描述了实验场景和评估我们的方法;和部分5关闭与结论。
2。相关工作
洪水(21)是第一个和复杂的重组方法应用于无线传感器网络,但是作者设计的时候没有考虑任何安全原则。因为洪水需要传输整个程序图像经过长时间的重编程,传感器节点很容易受到攻击。因此,早期安全的重编程研究[3,4集中在海量扩展和保证数据的完整性和真实性。例如,闸(3)员工签名和加密哈希函数生成散列程序认证形象的形象。它也遵循泛滥项目形象划分为页面,每个页面包含散列的下一个页面。Hyun et al (4]提出Seluge优化传输开销Markle哈希树和减少页面传播延迟。
与正在进行的安全技术,研究人员更加关注普通攻击和过度的安全管理费用重新编程。公园等(5)提出了一个丢失的数据包恢复方法补充哈希方案和页面摘要方案。飞镖(6东等人提出的)是使用基于时间的验证来保护污染攻击和它需要时间不对称带来额外的延迟。在Sreluge协议(7],作者解决了这个问题验证数据包的编码数据包使用随机线性码。董et al。8)提出了两种滤波方法来保护从DoS攻击签名验证。谭et al。9)提出了一种重组协议一体的机密性和适用于WSN Dos-attack-resistance对策。金等。10)设计的三个来源验证重组计划,支持动态数据包大小。LDSCD [11]是一种社会角色的分布式编程框架对DoS攻击和支持多个授权租户。杨et al。12]认为过度开销的安全机制,提出了一种安全增强重组方法基于层次哈希树。
以上方法考虑重组通过修改上层软件的安全问题,仍然没有完全阻止RWC偷听由于广播的本质。在本文中,我们试图改变物理级通信方式和改善重组的安全。
3所示。ReVLC的设计和实现
在本节中,我们首先介绍基于函数代码块机制相似,然后介绍CDH-PIM ReVLC应用。重组前减少了传输数据,后者优化VLC调制,使其应用于通用设备。最后,我们还描述ReVLC的实现。
3.1。代码块的机制
早期RWC-based重组方法(21,22)需要传输整个程序成像仪,但程序映像的大小显然是超大的VLC-based重组。事实上,错误存在于几个functionality-relevant函数。因此,这个问题函数应该是固定的而不是整个项目的形象。
ReVLC提供一个机制来将显示程序图像分成若干个代码块划分为功能。这意味着把functionality-relevant函数在一个代码块并将相应的代码块,而不是整体形象。
在我们以前的工作(23),我们发现,functionality-relevant相似性函数所描述的功能可以独立的功能。函数的相似性定义基于观察的修改函数unidirectionality,即调用方函数将改变高可能性如果被调用的函数已经改变;相反的情况很少发生。因此,我们首先定义函数相似度(FSD)测量函数基于协同过滤算法的相似性。给定的函数u和v,N(u),N(v)分别被调用的函数u和v。的女性性功能障碍年代紫外线之间的u和v可以被描述为Jaccard公式:
在获得每个年代紫外线两个函数之间,我们计算整个函数相似度(年代与不同的重量)的代码块,如下:
在哪里β紫外线是加权值,函数的大小成反比u和v。它确保如果u和v自己的小尺寸高的女性性功能障碍,整个代码块的女性性功能障碍是高;相反,如果u和v自己的大尺寸高的女性性功能障碍,整个代码块的女性性功能障碍应该降低。通过计算女性性功能障碍、项目形象可以分为若干个代码块。
另一方面,每一个代码块都可以迁移到几个传感器节点具有不同的地址。每个函数的新地址重新编程之前是不确定的。如果修改每个调用指令新地址,重建开销很大,而不是通过传感器节点提供。为了简化这个过程,我们采用了一个寄存器相对寻址在RePage调用每个函数。
在每一个代码块,调用必须修改指令寄存器相对寻址和被保存在函数的入口地址表(外语教学)如图位置2。此外,哈希表(HT)需要在传感器节点维护。HT包含每个函数的入口地址,地址位于高flash程序。外语教学是固定在每个代码块的尾部。它节省了散列值和每个函数的偏移地址相对于代码块。
生成的散列值是哈希函数哈希(fun_name)函数名作为散列键。蒋春暄对于费马大定理时一个代码块添加新功能,需要相应增加一个新的项目和发展提出了低地址像堆栈的行为。
当一个代码块到达一个传感器节点,运行时系统会加载代码块与以下3步:
分配一个新地址插入程序代码块的flash和这个地址的基地址功能包含在新代码块。
修改第一个mov指令位于每个函数的头在本地节点HT的开始地址。
修改显示HT散列值保存在外语教学和HT的开始地址使用新的函数地址,由抵消发现+基地址。
在调用函数之前,HT的开始地址应该分配给一个特定的寄存器,例如,使用登记r5保存地址(0 xbc00)见图开始2。因此,在步骤 ,我们必须重新分配r5通过mov指令位于每个函数的代码块。
当调用器函数调用被调用函数根据寄存器相对寻址、寄存器r5结合相对地址的哈希值(0 x0054)和指向HT的项目保存函数的入口地址。最后,实现函数调用的过程。
节3所示。3,我们也讨论修改mov指令,抽调r5,每个调用指令的地址部分使用散列值。两个修改发生在预编译阶段。当然,他们是透明的开发人员或网络所有者。
3.2。压缩双Header-Pulse间隔调制
不同于RWC、信号调制的VLC取决于开关的状态。LED开关速度快于荧光灯和白炽灯,所以智能手机配备LED手电筒是一个潜在的光信号发射机。然而,专用光信号接收器通常是复杂的,很难承受低成本的传感器节点。为了实现传感器节点和智能手机之间的VLC,我们尝试使用环境光传感器内置的传感器节点作为光信号接收器。
然而,使用环境光传感器通信性能有一个没有吸引力,因为这些传感器响应延迟和开放时间。这两个参数决定最低可检测的脉冲宽度。我们定义的双重宽度最小可探测脉冲宽度为一个时间段tr。
此外,重组是一个破裂过程。即多个代码块在短时间内传播。以上问题很难直接应用VLC无线重新编程。
基于大量的实验,我们发现了大量的不断重复的部分(如“1010 1010 1010”)中存在一系列的代码块。这个发现让我们考虑压缩不断重复的部分,提出一种压缩DH-PIM(双Header-Pulse间隔调制)。CDH-PIM,短,把连续位级数nonrepetitive和重复的部分内容。
nonrepetitive零件,CDH-PIM采用DH-PIM为VLC设计(20.]。DH-PIM是anisochronous脉冲时间调制数据编码为相邻脉冲之间的离散时间槽。一个符号的编码米的数据的表示k槽低功率和紧随其后的是恒功率的一个脉冲,在0⩽k⩽L / 21,l= 2米。恒功率的脉冲将持续tr或2 tr两个数字的反码。例如,“0100”有4个名额的低功耗和1槽恒功率的脉冲。数字“1011”是“0100”的反码,有4个插槽的低功耗和2槽恒功率的脉冲。
对于重复的部分,CDH-PIM采用减少槽数压缩表示。重复的部分可以表示为三个部分:第一nonrepetition位,重复计数,和宽度。后两个部分需要特殊的符号标记。
在实践中,由于米= 4,一个槽脉冲和两个槽脉冲被用来代表k < 2米1和2米1⩽k < 2米如图3(一个)和3 (b)。它需要3重复旗帜为了马克和识别重复计数和宽度如图3 (c)。连续2槽脉冲重复开始标志,其次是正常DH-PIM 1槽脉搏和作为启动标志重复计数。下一个脉冲重复孤立的国旗将重复计数器和宽度。最后一个槽脉冲宽度是重复的重复结束标志。重复计数器和宽度为零功率的槽数。
(一)DH-PIM, ,和 :“0100”
(b)DH-PIM, ,和 :“1011”
(c)三个调节比较。系列:“0011 1001 1001 1001”
如图3 (c),表示重复的部分,它需要4槽脉冲和6槽的零功率表达式,而4槽脉冲和DH-PIM 14槽的零功率。传输时间减少了44%。在这样的情况下,3重复标志需要额外的4槽脉冲。
应该注意的是,某些情况下不能应用压缩表示。例如,有点“0000 0000 0000”系列是由DH-IPM和只需要3脉冲调制和3槽的零功率用CDH-PIM 5和7槽的零功率脉冲。因此,处理重复的部分,造成的额外成本树类型的重复标志灯之前需要考虑。
3.3。实现ReVLC
我们一个受欢迎的传感器网络操作系统上运行ReVLC TinyOS。ReVLC的运行阶段可以分为三个部分:编译阶段(编译程序的图像),传输阶段(VLC传输代码块),和加载阶段(部署代码块)。
如图4(一)编译阶段发生在智能手机或云。在ReVLC,它需要执行两次编译代码块。在第一次编译,我们在死代码消除TinyOS修改并保持图像中存在的所有函数程序文件(24]。然后,建立函数表通过阅读可执行文件(. exe)的符号表。功能表包含函数名,函数大小,记录所有被函数的调用关系当前函数。功能表如表所示1。
(一)
(b)
第一次编译后生成的函数表。使用调用关系,函数之间的相似程度(FSD)函数可以计算并保存在函数表。在女性性功能障碍方面,ReVLC调整所有位置的函数,函数在每个代码块。它也为外语教学储备空间在每个代码块。
在第二个编译,哈希值算出哈希(fun_name)。哈希值填充到外语教学中。在precompilation阶段,我们修改调用函数的寻址模式,添加寄存器赋值指令(mov每个功能的指令)的头。再次编译源文件需要根据新的调整函数地址。
图4 (b)显示传输和加载阶段。首先,ReVLC找出所有的重复部分系列的代码块。然后评估和比较的成本使用与不使用压缩表示。然后调制位系列包装成一个或多个帧,VLC传输。在目标传感器节点,传播一些系列解调。
一旦代码块到达传感器节点,运行时系统提供了新的空间为新代码块。然后,重写当地哈希表的外语教学的新代码块并修改源操作数(HT)的开始地址mov在每个函数的新指令代码块。最后,运行时系统启动软件重启程序重新启动目标节点。
4所示。评价
在本节中,我们在不断的更新情况下进行一系列的实验。我们首先介绍实验方法,然后评估ReVLC。
4.1。实验方法
我们实现ReVLC基于TelosB三星在Android智能手机N7100和传感器传感器节点(25)安装tinyos - 2. x。如图5TelosB,传感器节点配备2.4 GHz无线个域网CC2420射频收发机,一个16位单片机MSP430F1611 (10 kb RAM和48个kb程序flash),和一个TSL2561环境光传感器。我们评估能量开销和衡量一个专用装备目前监测电路电流变化现代放大器MAX9928 [26)如图5 (c)。
(一)
(b)
(c)
以下4.4.1。实验基本设置
(1)传感器节点的内存空间:1 kb项目flash(地址:0 xfbff-0xffff) HT和13 kb程序flash(地址:0 0 xfbfe xc708) ReVLC的运行时系统。(2)框架的最大大小是2048位,大小头的每个包是30位,包括开始标志(2位)、帧大小(20位)和代码块ID(8位)。(3)代码块的大小是256字节。蒋春暄对于费马大定理位于每个代码块。蒋春暄对于费马大定理的每一项与散列值是5字节(3字节)和位置信息(2字节)。
更新设置。我们描述8更新情况在现实世界中。在第一个更新情况下,目标传感器节点安装一个标准的例程程序命名为示波器在TinyOS包含应用程序库。程序的其他五个版本命名EasiRoute v0.3(从v0.1版)。他们是为我们的文物保护基础上开发的系统已部署在故宫博物馆(13]。每个版本意味着一个重大的升级。如图6,六个项目不断更新根据字母顺序:更新情况。示波器执行一个标准的数据采集程序。通过添加路由功能,我们EasiRoute_v0更新它。1。更新案例B。更新EasiRoute v0.1 v0.11。在更新后,添加一个遥感数据存储模块,并实现将数据存储在外部flash芯片。更新案例C。直接更新v0.11示波器,并添加路由在目标节点和存储模块。更新情况D。监控项目从v0.11 v0.18更新博物馆。更新后,一个错误将是固定的。这个错误导致传感器节点将数据发送给汇聚节点往往当博物馆晚上断电。更新情况E。更新v0.11 v0.21。我们添加一个睡眠机制来平衡负载根据电池剩余能量。更新情况下F。更新v0.18 v0.21。新版本将从节点删除sensing-relevant功能。它只保留路由和转发数据从其他的函数。更新情况下克。更新v0.18 v0.3。在更新后,节点将安装UDP协议支持的事实,用户直接通过web浏览器与节点交互。更新情况下H。更新v0.21 v0.3。
我们将测试ReVLC的表现在三个方面:传输和内存开销,重建开销,VLC的性能应用于重组。
4.2。传输和内存开销
不同于增量编程方法(17- - - - - -19,23,27),传输数据的ReVLC只包含代码块。我们比较与其他增量ReVLC重组等方法RePage [23和小Module-link27]。在RePage,程序图像分为每个功能页面代码块和修改每个页面显示δ脚本。小Module-link直接修改函数代码,但更新的功能需要存储在代码段的尾巴(。文本段)。
表2提供了6例下传输数据的细节。显然,在6例,重新分页和小Module-link ReVLC相比有优势,因为这两个方法可以修改图像使用小包装δ脚本。
例如,F,δ脚本主要是由重建操作删除关于RePage和小Module-link sensing-relevant功能。ReVLC仍然转移在一个代码块四次。但情况下C和G很特别。在这两种情况下,修改后的过程是复杂的。这意味着几个功能改变,δ脚本包含大约430字节的重建操作。ReVLC只有传送新代码块没有这些操作,因此,其传输数据相反小于其他两个。最后,传输数据的平均值的ReVLC高于小Module-link和RePage 7.12%和6.2%。
内存开销主要是由额外的代码和运行时系统。如表所示3,三个运行时系统占领12256 b、13558 b,和14124 b计划flash空间对RePage ReVLC,小Module-link。ReVLC CDH-PIM的运行时系统需要解调模块。因此,ReVLC运行时系统的规模比RePage大。此外,由于外部flash编写,运行时系统的微小Module-link需要1.4 kB和它的大小是三种方法中最大的。
关于额外的代码,小Module-link把尾巴代码段(size-increasing功能。文本段)没有RAM的参与,所以额外的代码将越来越flash存储在程序。手,RePage RAM缓存频繁更新功能页低功耗减少重建能量,正在进行重组,在RAM缓存区域生长,直到缩绒缓存(6144字节)。相反,ReVLC直接替换旧与新的存储在闪存程序代码块。因此,没有额外的代码存在于内存或程序闪光。
4.3。重建开销
无线的能源开销重组主要来自于程序代码传输和重建当读/写存储器(28]。事实上,重建开销在挥发性记忆(如RAM)远小于非易失存储器(如程序闪光)。采取TelosB的传感器节点为例,写作和阅读的能源开销(wt / rd)操作程序flash比在RAM的14.6倍。因此,当研究重建无线重组的开销,我们关注的wt / rd操作程序。
我们比较ReVLC RePage [23八下)不断更新场景。像ReVLC RePage采用分页机制的集群类似的功能,同时,作为一个增量重新编程的方法,只转移δ新旧之间的脚本功能页面。RePage需要新页面存储在缓存(RAM)或flash程序。RePage,因此有必要编写程序flash替换页面和读取程序flash在RAM缓存页面或重建新页面。同时,ReVLC转移整个冷块和直接写新的块程序flash, flash是不必要的阅读计划。
图7给了wt / rd计划闪光的数量。以防案件D, RePage关闭的性能ReVLC和wt / rd操作之间的差异RePage ReVLC是9.8%,因为没有替代发生。E,一个功能页面在RePage取代。这意味着一个页面需要编写成程序flash和另一个需要从程序阅读闪光。这样的交换512字节的功能页面带来增加比ReVLC重建开销的31.9%。F,使用RePage,尽管只有插入或修改操作最少在所有情况下,删除操作导致代码移动到新的位置。
与此同时,在ReVLC,它只覆盖旧的代码块。G和H,几个功能是插入程序由于UDP协议。在RePage,几个功能页面保存在程序flash缓存在内存中,2页替换缓存。最后,RePage超过4.5 kB的wt / rd操作相比2.3 kB和3.3 kB使用ReVLC以防G和H。
4.4。VLC应用于无线重编程的性能
在ReVLC,我们优化并提出当前DH-PIM位压缩表示压缩DH-PIM (CDH-PIM)。对传感硬件、环境光传感器TSL2561由传感器节点装备。它的最小可探测脉冲宽度大约是10 ms。这意味着只有光脉冲超过10 ms,稳定和传感器可以测量光强度。
因此,槽设置tr CDH-PIM 20 ms和M = 4。数据8和9显示完成时间和传输速率与DH-PIM CDH-PIM 8例。的平均传输速率CDH-PIM 54.8位/ DH-PIM相比45.4位/年代。的完成时间比DH-PIM CDH-PIM也减少了16.3%。这也表明,大量的连续重复存在转移代码块。
进一步,我们比较VLC RWC基于能源开销为备用电池传感器节点是非常重要的。我们进行重组过程在一个传感器节点,然后从水槽节点发送分组码RWC和智能手机VLC,分别。图10给出了传感器节点的能量开销使用VLC和RWC。由目前的监测测量电路的能量开销。VLC的能源开销主要来自打开TSL2561传输期间。很明显,环境光传感器的力量高于传统CC2420射频收发机。高功率光传感器导致这一事实的平均能量开销比RWC VLC增加49.1%。然而,在安全敏感的大多数情况下,这种能量开销增加是可以接受的。此外,考虑到失去了传感器节点通过网络或离线,ReVLC可能是唯一可行的重组方案解决传感器节点。
5。结论
大多数当前的重组方法解决安全问题在上层软件如添加复杂的安全机制。在本文中,我们试图减少安全风险通过改变物理级通信模式。为达此目的,我们提出一个VLC-based重组方法,ReVLC适用于资源有限的传感器节点。在这种方法中,我们直接使用低成本和一般传感器节点没有硬件改造和技术主管智能手机VLC网关转发并保存代码。与此同时,使用环境光传感器装备的传感器节点作为信号接收器导致毫无吸引力的传输性能。ReVLC,我们提出一个代码块机制来减少传输数据和CDH-PIM优化调制的VLC压缩表示。实验结果证明ReVLC的可用性。
在未来的工作中,我们将不断学习更多的VLC调制压缩表示,也介绍了概率编码如霍夫曼编码调制。
数据可用性
数据7- - - - - -10和表2- - - - - -3用于支持本研究的结果中包括这篇文章。
的利益冲突
作者宣称没有利益冲突。
确认
本研究工作是由中国自然科学基金会(NSF)资助下不。61502427,中国浙江省自然科学基金批准号下LY16F020034。