也许以加密货币而闻名,区块链技术也可以成为嵌入式系统的强大工具。暂时搁置比特币,考虑一下区块链提供了什么:跨分布式系统的经过验证的、不可变的操作记录,具有强大的安全功能。如果需要,可以对区块链的实际内容进行加密 - 提供保密性和完整性。
这些功能可以通过多种方式使用。它们的范围从收集传感器数据的可靠方法到构建更安全的命令和控制系统,即使在存在系统故障、通信降级以及边界内受损或敌对节点的情况下也能正常工作。
虽然区块链可以使用标准化框架(如Hyperledger或Ethereum)实现,但它也可以使用自定义系统来实现以满足特定需求。嵌入式系统可能会使用自定义区块链实现来满足这些系统的功能、性能和功能要求。
区块链和链
在最基本的层面上,区块链由两个部分组成:块,它是一组数据,链是前一个区块中数据的哈希,用于建立块之间的链接。任何修改块的尝试都将更改该块的哈希值,与下一个块中记录的哈希值相比,会产生验证失败。您可以通过读取每个块并根据下一个块对其进行验证来跟踪区块链的整个历史记录。
虽然一个块可以包含单个数据片段,但为了提高效率,通常将几条数据放置在单个块中。除了保存数据之外,区块链的一个特殊优势是它可以处理交易——数据状态的变化。区块链为在分布式环境中处理交易提供了一种优雅的方法——即使在不受信任的环境中和不安全的传输中也是如此。
区块链系统由几个组件组成。它包括旨在创建和提交数据或交易的系统;按顺序处理事务的序列化服务器;验证交易并创建要添加到区块链的官方区块的验证服务器;以及已验证区块的分配机制。
区块链在行动
考虑一个受污染地点的例子,例如科德角的前军事基地。在这里,数十年的燃料泄漏和弹药测试污染了正在修复的土壤和地下水。
在一般情况下,地下水和空气可能由100个传感器监测,并且可能有一个过滤系统,其流速可以每分钟改变一次。土地所有者(造成污染的人)、环保组织、政府监督机构和进行补救的公司都在密切关注。各方都希望访问数据、数据的永久记录以及数据有效性的证明。由于这些团体有相反的观点,因此对能够证明记录没有被篡改有浓厚的兴趣。假设 100 个传感器全部联网,每分钟报告一次。有一个监控网关,用于收集和连接传感器数据,过滤系统的命令流经网关。
每个传感器获取当前值、传感器标识符和时间戳,使用传感器私钥将它们连接并散列,并使用 MQTT [消息队列遥测传输] 等协议将这四个数据元素发送到网关。每个传感器都需要具有唯一的标识和私钥;这些可以在制造过程中进行硬编码,闪存到固件中,或者在将每个传感器配置到系统中时分配。
网关将来自多个传感器的传感器数据合并到一个块中,为块添加时间戳,使用其私钥对块进行哈希处理,并将此组合块发送到后端系统,可能在云中运行。强大的通信可以通过更高级的消息传递系统来实现,例如AMQP [高级消息队列协议],它集成到后端系统上运行的复杂应用程序中。
此时,验证服务器将验证原始区块链数据,可能使用特定应用程序的自定义代码。验证服务器可以验证数据在传输过程中是否未被修改,并可以应用其他检查。
可以使用单个验证服务器或多个验证服务器。您可能希望拥有两台验证服务器(可能位于修复公司和政府机构),并要求两台服务器在发布块之前对其进行验证。验证服务器使用加密哈希及其私钥对块进行签名。
一旦数据块经过验证,副本就会发送给所有相关方。结果是每个实体都有自己的数据副本,他们可以独立验证数据的来源,并且没有记录被修改或篡改。
密码学关注
使用密码学的一个问题是计算要求。所使用的加密可以满足需求。例如,传感器可以使用简单的哈希算法,如SHA-1。虽然 SHA-1 被认为是不安全的,但它可能仍然适用于此用例。网关将使用更安全的算法,例如 SHA-256。验证服务器也可能使用 SHA-256,但在专用 HSM(硬件安全模块)中执行签名操作。
审核编辑:郭婷
-
传感器
+关注
关注
2547文章
50525浏览量
751430 -
嵌入式
+关注
关注
5063文章
18992浏览量
302547
发布评论请先 登录
相关推荐
评论