APP下载

基于区块链的嵌入式数据抗攻击采集系统

2022-11-28梁菲菲宋振继梁腾飞

自动化技术与应用 2022年10期
关键词:采集卡驱动程序嵌入式

梁菲菲,宋振继,梁腾飞

(1.陕西工业职业技术学院 信息工程学院,陕西 咸阳 712000;2.秦川机床工具集团股份公司,陕西 宝鸡 721009;3.西安航空制动科技有限公司,陕西 咸阳713100)

1 引言

嵌入式技术系统具有体积小、专业性强、可靠性高、功耗低等优点,被广泛应用于我国工业领域。嵌入式数据采集卡的主要功能是完成采集卡与信号处理系统间的沟通,是一种典型的嵌入式系统应用形式,但在嵌入式数据采集的过程中,由于其硬件过多,移入的操作系统安全性不强,易受到暴力访问或者恶意攻击等,造成采集获取的数据完整性较差。相关研究较多:吉淑娇[1]利用USB-6009数据采集卡、LabVIEW编程工具和Mysql数据库设计数据采集系统,通过TCP模块完成信号传递,利用标识符确定双通道信号,以此实现多信号的传递功能。唐新懿等人[2]设计多通道数据采集方案,通过机箱背板总线实现数据读出能力,可以有效满足高速高精度的数据采集需求。Bai Y等人[3]设计了一种基于PCIe(peripheral component interconnect express)的采集卡,并提出了一种新的采集传输框架,可以有效满足系统回波信号的实时处理能力和准确传输的要求。

但是,以上系统都没解决安全性问题,区块链是一个共享数据库,存储于其中的数据或信息,具有“不可伪造”“全程留痕”“可以追溯”“公开透明”“集体维护”等特征。作为链式数据结构,区块链各节点的数据块依照时间顺序排列,通过加密的方式可以有效保障数据结果的安全性,是一种具有高可靠性的分布式公开数据技术。将区块链技术应用于嵌入式数据采集卡中可提升嵌入式数据采集的保密性和应用性能。

为了保障嵌入式数据采集卡有效运行,设计基于区块链的嵌入式数据采集抗攻击系统,以期提高数据完整性和一致性。

2 嵌入式数据采集系统结构设计

基于区块链技术的嵌入式数据采集系统基础架构可分为4 层(如图1所示),即包含数字签名等安全性能的保密层、包含驱动程序等基础设定的程序层、包含数据产生和信息采集等的收集层、包含驱动模式的驱动层。其中,保密层和程序层是区块链技术应用中具有基础性特征的数据层,可以有效提高嵌入式采集的抗攻击性能;收集层、驱动层则是嵌入式数据采集系统设计必不可少的环节,可以有效提高嵌入式数据采集系统的加载能力和使用性能,以此确保数据采集的完整性。

2.1 关键硬件设计

为了强化嵌入式数据采集的安全性与交互性,需要对区块链的保密层和程序层进行优化处理。通过两层的联合工作可以优化嵌入式数据采集的存储空间和实际操作能力,增强采集系统信息交互处理能力。

2.1.1 系统保密层模块

区块链数据层为嵌入式数据采集提供了虚拟数据存储空间,将区块链应用技术与数字签名相结合,提高数据采集的安全性,数字签名技术是只有信息的发送者才能产生的别人无法伪造的一段数字串,可以确保数据采集与传输过程中,没有被恶意篡改,以保证数据的安全性能。嵌入式数据采集卡以PC104总线为基础,兼容ISA总线,包含计数器与光电耦合器件,其在本质上可定义为是一种I/O卡。嵌入式数据采集卡内的计数器能够达到32路数字量输入输出,并且其中一路输入具有中断功能,以此构成嵌入式数据采集模块,具体如图2所示。

在计算机发送运行命令后,采集卡接收到嵌入式数据采集系统发出的触发信号后开始初始化运行[4]。该程序由区块链数据网进行控制,将采集到的信息进行存储,供计算机读取。在数据采集任务完成的条件下,计算机发送终止运行的命令,嵌入式数据采集卡工作完成。

2.1.2 基于区块链的保密存储模块

嵌入式数据采集系统采用区块链技术进行数据存储,提高采集过程的抗攻击性能。区块链网络在本质上可理解为是由集合U={U1,U2,U3,…,Un}构成的区块链网络,包含DUP与DAP两重身份[5],可实现上传与访问功能,保证了信息传输的安全性。

区块链保密层中,不同节点通过无可信中心的数字签名模式生成密钥与签名。以H和(P,P')分别表示单向哈希函数和两个安全素数;x和Q分别表示GF(P)阶上的生成元和素因子;α表示GF(P)阶上Q的生成元。基于U内不同用户节点能够得到:

式(1)中,a 数据存储于U内。以SKi、PKi和y分别表示私钥、公钥和群公钥。U将访问请求发送至其他用户节点。

其他用户节点接收访问请求后生成子签名,其他用户成员Uj将访问请求O发送至区块链数据网,区块链网络用户节点Ui查看O后生成随机数di,并将同意O的命令发送至区块链数据网。同意O的节点通过自身密钥实现非对称式加密,与不同节点接收的构建子签名si,其可通过下式描述:

Ui生成子签名后,确定符合gcd(ki,P)=1要求的任意数,同时利用式(3)和式(4)确定H(o)和Qi:

在此条件下,Ui可将信息{si,ki,ri,zi}传输至Uj处。Uj在获取不同节点传送的子签名后,利用式(5)与式(6)确定(R,G):

在此条件下,Uj生成自身对O的数字签名。区块链保密层可以验证不同节点群签名的准确性[6],若通过验证即可在区块链数据网存储访问请求,极大程度提高了数据信息安全性,提升了嵌入式数据采集系统的抗攻击能力。

2.1.2 程序层设计

Linux是一款普遍使用的嵌入式操作系统,该操作系统在区块链程序层运行,具有占用资源少、可裁剪与移植性强等优点[7]。区块链程序层的内部网络节点,在信息采集过程中保持着持续传输的共享状态,对信息数据进行全方位的采集,大幅度提高了系统采集数据的完整性。采集卡作为数据采集的主要工具,将采集的数据通过外围接口进行转换,利用控制器的Linux 内核对数据加工处理,使采集到的数据可以被嵌入式数据采集系统搜索整理。Linux系统要获取采集卡传输的数据,需要通过区块链程序层完成采集卡初始化行为。计算机系统驱动程序模块设计,如图3所示。

Linux操作系统内,运行在内核中的驱动程序是嵌入式采集系统设计的重要组成部分,若驱动程序产生错误,则系统无法有效运行。根据图3可得,区块链程序层从左至右可归纳为四个部分,分别是:驱动程序、内核、库和应用程序。驱动程序主要分为字符设备驱动模块、块设备驱动模块和网络设备驱动模块,以此强化嵌入式数据采集系统的数据存储与备份能力,同时保证数据的完整性和一致性。

2.2 软件设计

为了提高嵌入式数据采集系统对抗恶意攻击及暴力访问等攻击行为的能力,选用EVC开发采集系统的驱动程序设计。区块链下的嵌入式数据采集系统驱动程序,是由动态区块链完成软件与硬件之间的接口协议,以此扩大恶意行为的搜索范围,提高数据处理能力,保证数据完整性。

2.2.1 收集层设计

嵌入式数据采集系统的核心工作是满足区块链收集层的信息采集和处理,因此其应用程序接口驱动需要设计其对应的接口函数,用以保证采集数据一致性。对于嵌入式数据采集系统,在设计其驱动程序过程中需要着重强化设备初始化、数据读取与程序关闭等环节。因此,采集系统微软例程需要包含xxx_Open(应用程序打开驱动)、xxx_Close(应用程序关闭驱动)、xxx_Read(应用程序读取设备相关的数据)等代码模块,对其进行针对性优化后可以直接使用。

全部设计代码模块内,xxx_Init(装载驱动)最为重要,且具有较高复杂度[8]。在调用嵌入式数据采集系统驱动程序的条件下,采集卡管理器可以利用函数对板卡实施初始化运行。函数在区块链下实现程序驱动,采用以下数据结构:

Struct D_DEVICE_NFO

{

DWORD DeviceName[16];

DWORD IOB ase;

DWORD IOL en;

DWORD IRQ;

DWORD D ev Index;

HANDLE h IstEvent;

}TIO_DEVICE_INFO.*PTD_DEVICE_INFO;

上述数据结构中{}内的内容分别为:第一行:嵌入式数据采集卡名称;第二行:嵌入式数据采集卡基地址;第三行:嵌入式数据采集卡地址长度;第四行:嵌入式数据采集卡终端号;第五行:嵌入式数据采集卡设备序号。

针对上述数据结构设计一个调用函数:

DWORD IO_Init(DWORD dwContext)

{

IO_DEVICE_INFO pDex.

GetRegParams(dwContext,PDex).

pDex->IOB ase=oX230.

pDex->SysIntr=SYSINTR_FIRMWARE+pDex->IrqNo;

Retum(DWORD)pDex

}

在内核获取宏IOTL_IOINLT 消息后即可调用此函数,以此强化嵌入式数据采集系统的数据信息收集能力,提高数据采集完整性。

2.2.2 驱动层设计

区块链驱动层应用程序可分为两种加载模式,一种是设备管理器运行时加载,另一种是应用程序自行加载。两种模式都可以加强驱动程序同采集系统内其他组件间的相互影响作用,可以有效提高嵌入式采集系统的抗攻击能力。

在嵌入式操作系统运行后,设备管理器依次读取注册表内HKEY_LOCAL_MACHNEDriversBuiltin 的键值,同时将全部列表内的流接口驱动程序装入系统内。

在设备管理器无法自动确定与平台连接的嵌入式数据采集卡条件下,可以通过自行加载的形式加载程序,对采集数据进行过滤处理。流接口驱动程序对全部核心信息实施搜索处理,剔除恶意攻击及暴力访问行为,以此实现命令信息与响应动作间的转换,保证采集数据完整性。在区块链驱动层引入以下内容:

HKEY_LOCAL_MACHINEDriversIO

“Prefix”=“PIO”

“Dll”=“Pc104_IO.dll”

“Index”=sword:1

“Order”=sword:1

“IoBase”=sword:230

“IoLen”=dword:10

“Irq”=dword:7

将写好的驱动程序dll文件存储至windows目录内,再通过ActivateDevice()函数在区块链驱动层加载HKEY_LOCAL_MACHNEDriversIO 的信息,由此实现嵌入式数据采集系统的驱动程序加载,提高系统抗攻击能力。

3 实验测试结果

实验为验证本文所设计的基于区块链的嵌入式数据抗攻击采集系统在实际应用测试中的性能,针对本文方法设计的基于区块链技术的嵌入式数据采集系统作为应用对象,测试本文设计系统的应用性能。

3.1 驱动传输速率分析

本文所设计的系统在完成设计投入应用前需进行调试。由于区块链驱动技术不具备运行界面,因此为有效获取驱动程序的运行情况,需编写用于检验的调试程序,用于验证嵌入式数据采集系统实际应用性能。

测试本文所设计系统的数据传输速率结果如图4所示。

由于应用对象具有32 路输入输出,因此调试过程中分析32 路输入输出的驱动传输速率。分析图4得到,驱动调试过程中,应用对象各路输入输出的数据流均高于45MBbs,与相关文献中的20MBbs—40MBbs 相比,本文方法所设计的驱动程序驱动下应用对象的驱动传输速率显著提升,由此说明本文所设计系统具有显著的应用性优势。

3.2 数据采集完整性分析

测试本文所设计系统采集数据的完整性,多个区块链网络节点对若干条采集数据的完整性测试结果以及统计结果如图5所示。

分析图5得到,本文所设计系统的不同数据完整性测试结果完全相同。由此说明本文所设计系统能够保障嵌入式数据采集的完整性。

3.3 数据一致性分析

区块链技术中Leader节点的主要功能是确保在区块链网络内不同用户节点区块链的一致性。进行验证能够保障区块链网络内Leader节点不能伪造访问请求。不同节点区块链长度相等是验证的前提条件,嵌入式数据在确定Leader 节点后,不同数据节点区块链长度在不同时间条件下的波动情况如图6所示。

分析图6得到,采用本文系统下,应用对象确定Leader 节点30ms 后区块链网络内不同节点区块链长度即可达到一致,由此说明本文设计的采集系统能够保障嵌入式数据节点长度一致,同时还能够说明在本文系统区块链内不同节点均有效参与了访问控制。上述实验结果说明本文所设计系统可有效确保所采集数据的安全性以及访问请求的合理性。

3.4 抗攻击性能分析

测试本文所设计系统的抗攻击性,令攻击者对系统进行暴力破解和物理攻击,成功攻击区块的概率与区块差距间相关性波动结果如图7所示。

分析图7得到,在安全大素数生成元小于0.5的条件下,攻击者成功攻击区块的概率同区块差距之间呈反比例相关,即区块差距越大,攻击者成功攻击区块的概率越小;相反,在安全大素数生成元大于等于0.5的条件下,攻击者即可成功攻击下一个区块。在应用对象中,安全大素数生成元基本控制在0.4以下,由此说明在本文所设计的系统在嵌入式数据采集过程中具有较高的抗攻击能力。

4 结束语

本文设计了一种以区块链技术为基础的嵌入式数据采集系统。相比于传统的数据采集方式,应用区块链技术在数据采集过程中具有较好的抗攻击能力,在确保采集数据的完整性和一致性的同时也保证了数据传输速率。

猜你喜欢

采集卡驱动程序嵌入式
基于IMX6ULL的嵌入式根文件系统构建
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
避免Windows系统更新反复安装显示驱动
育婴监控系统的设计与实现
阻止Windows Update更新驱动程序
基于ARM嵌入式的关于图像处理的交通信号灯识别
TS系列红外传感器在嵌入式控制系统中的应用
智能变电站电子式电流互感器故障分析
大型视频多帧图像信息处理系统设计
脉冲采集卡的开发