掩码认证消息 (Masked Authenticated Messaging) 介绍

资讯 dasheng 2周前 (11-05) 259次浏览 0个评论

IOTA是第一个无交易费用,并且为物联网或Web 3.0生态系统所搭建的分布式账本架构。这使得未来机器之间可以安全地进行通信和自动偿付。

IOTA核心使用了gossip protocol向网络传播交易。这一机制意味着任何数据只要有足够的权重,都可以有效地散布至集群的各个角落。交易可以承载来自汽车、货船或者手机app的价值或者数据,即允许任何设备或人在全球范围发送消息。

 

什么是Masked Authenticated Messaging

Masked Authenticated Messaging(MAM)是一个实验性的模块,正在接受同业评审。它是一个附加的数据传输协议,在Tangle之上增加了发送和接收加密数据流的功能,类似RSS,且对设备的大小和成本不作限制。IOTA的共识协议赋予了消息流的完整性。鉴于这些特性,MAM满足了行业重要的需求,即完整性和私密性。

使用IOTA,用户可以在任意时间发布一条消息。他们只需进行少量的工作量证明就可以将数据传播至网络(这可以有效地阻止对网络的攻击)。如果节点实时监听某一通道 ID(和地址相同),当消息抵达订阅人的节点时,这一消息就会被订阅人所接收。

消息可以是任意大小;然而heuristic evaluation证明更小的消息可以实现数据完整性的可能性更高。例如,可以使用MAM传输一个加密的4k视频,但是这会使得网络饱和,最终影响用户体验。因此使用MAM通知某些tangle以外的协议进行真正的流媒体传输,会更加有效。其它可以利用MAM优势的概念包括传输远程控制命令和统筹集群更新。

消息是分布式账本的一部分,通过增加总体哈希算力,它们共同保证了网络的安全性,并得益于网络的数据完整性特点,其它交易持续地间接引用它们。

已有的功能实例将MAM用于嵌入式设备,如Bosch XDK IoT开发者工具或RuuviTag(Ruuvi Labs的一个开源传感器信标)。通过使用XDK或者RuuviTags,人们可以搭建移动气象站、Eddystone近距离信标、车辆定位器和其它传感器应用,通过tangle向指定的订阅人报告传感数据,或者通过MAM消息流接收命令。另外一个使用案例是由荷兰能源巨头Elaad开发的电动汽车充电站,使用IOTA进行支付,也可用来进行数据整合。

 

深入了解

MAM使用基于Merkle tree的签名机制来对一条加密消息的密文进行签名。

Merkle tree的根节点被用来作为通道的ID。因为单一的树仅持续一定时间,所有每条消息包含了下一个Merkle tree的根节点(或者这个通道的下一方向)。因为之前的树没有被引用,所以这可用于向通道内添加一个正向加密元素。

每一条消息通过一个[one-time pad](https://en.wikipedia.org/wiki/One-time_pad#Perfect_secrecy)进行加密,one-time pad包含了通道ID和用于消息签名的秘钥的索引,一个额外的随机数可能被用来作为可撤销的加密秘钥。

使用属于某一叶子节点的私钥对密文哈希进行签名。加密后的内容、签名和叶子节点的兄弟节点随后发布至tangle网络,任何知道私钥的人都可以找到并对它进行解密。

当消费一条MAM消息流时,首先通过验证签名并审核签名属于树的叶子节点之一,对消息进行验证,之后解密消息。如果签名验证失败,那么整个消息被认为是无效的。

 

隐私和加密模式

MAM可通过多种方式进行可见性和访问控制。这里介绍几种模式,提供了细致入微的MAM使用场景,远超过简单的加密消息流。

公开模式

公共模式使用交易的地址作为树的根节点,即用于发布消息秘钥。任何用户遇到这一消息都能够通过使用消息的地址将其解码。

这一模式和无线电广播类似,可用于来自设备或个体的公开声明,可能的使用案例如twitter的山寨版,但是添加了不可变和数据完整性的特点。

私密模式

私密模式可用于加密消息流不公开的情形。私密模式下,使用Merkle tree根节点的哈希作为地址。当随机用户遇到你的消息,他们并不能解密你的消息,因为不能够从哈希得到根节点。这使得MAM消息流只能被那些拥有根节点的用户读取。

这一模式和加密广播更加类似,任何人都能够看见,但只有那些知道如何查找到它的人才能解密。当私有的设备之间进行秘密的通信时,私密模式十分有用。

限制模式

限制模式向私密模式增加了授权私钥。用于向tangle网络发布的地址是授权私钥、Merkle tree结合后的哈希。消息发布者可以停止使用授权私钥,而无需改变Channel ID(即merkle tree),那么一旦需要,就可以撤销订阅者。

当一个私钥变更发生时,新的授权私钥需要分发至有关方,从而允许订阅消息流。

 

前向加密

每条消息包含下一个merkle tree的根节点,一旦当前树的叶子节点耗尽,如果知道消息流的类型和可选的授权私钥,那么用户可以方便地追随消息流。

基于当前消息仅指向下一个merkle tree,用户无法读取当前根节点之前的MAM流中的消息。可以将MAM流比作高速公路,当第一次读取流,你便进入了高速公路,不能够逆向行驶。

很简单,但是十分有用,尤其当和通道拆分结合起来时。

 

通道拆分

MAM发布者可以决定在任何时候对通道进行拆分。这意味着,之后的消息使用一个新Merkle tree,其根节点之前从未披露过。这一特性可以实现特定数据集合的分支通道,整体的数据并不用于共享,因此可实现许可数据和提供细粒度访问。

永久通道拆分

 

例如个人身份记录,可以有两个主要分支:公开和私密数据。公开分支使用MAM私密模式,并允许所有持有根节点的用户读取消息。

消息可能包含姓名、兴趣列表和一个base64编码的个人图片。当去看病时,用户可以和医生分享日常体重数据的子消息流。鉴于存在前向加密,医生不能获取权限之外的额外数据。

短暂信息流拆分

另外一种方式是对数据流的短暂通道拆分。某设备报告每天的环境数据,当探测到任何环境异常时,设备对通道进行拆分,并开始用更小的时间间隔报告数据。设备除了定期向主通道发送数据,还可以通知新拆分通道的监听者,新拆分的通道包含了更加频繁的更新。

这不仅维护了主消息流的时间间隔,而且能为特殊场景灵活地添加辅助消息流。

 

总结

掩码认证消息(MAM)是IOTA最强大的IXI模块之一,打开了基于IOTA应用的新领域。确保数据完整性和访问管理控制是一些应用的必备条件,如在线更新(OTA)、数据市场、雾分析、端到端可核查的供应链、自动保险等等。


IOTACHINA遵守BY-NC-SA协议 , 翻译文章仅供参考,建议用户参考原文为准!
喜欢 (6)
关于作者:
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址