Masked Authenticated Messagingの紹介

この記事は原題『Introducing Masked Authenticated Messaging』の翻訳です。
ご参考までに公開します。必要だと思われる部分には言葉や構成を補っています。私の力不足のため、えいやで翻訳されている部分もあります。

投稿者:Paul Handy
投稿日:2017年11月5日

IOTAにはトランザクションフィーがありません。そしてInternet of ThingsやWeb 3.0(デバイスがセキュアに通信し、自律的にお互いを補いあう将来を実現する)などのエコシステム向けに構築された最初の分散台帳アーキテクチャです。

その中核として、IOTAはゴシッププロトコルを使用し、ネットワークを通じてトランザクションを伝播します。このメカニズムは、十分な重みを持つデータをクラスタの反対側に効率的に広められることを意味します。これらのトランザクションでは、車、貨物船、携帯電話のアプリから送信された価値やデータを運ぶことができ、あらゆるデバイスや人間が世界中でメッセージを送信することを可能にします。

Masked Authenticated Messagingとは何か

目下ピアレビュー中の実験モジュールである、Masked Authenticated Messaging (MAM)は第2層のデータ通信プロトコルです。このプロトコルは、デバイスのサイズやコストに関係なく、Tangle(IOTAの分散台帳)上で暗号化されたデータストリームを発信したり、アクセスしたりするRSSのような機能を持たせます。IOTAのコンセンサスプロトコルは、これらのメッセージストリームに完全性を持たせます。これらの特性を考慮すると、MAMは完全性とプライバシーが関連する業界で重要なニーズを満たします。

IOTAでは、ユーザーはいつでもメッセージを発行できます。ネットワークを介してデータを伝播させるためには、小規模のプルーフオブワークを行うだけです(これはネットワークのスパムを防ぐために必要です)。ノードがチャネルID(=アドレス)をリアルタイムで監視している場合、メッセージ(ネットワークを介して収集されたメッセージ)はサブスクライバのノードに到達するとサブスクライバによって受信されます。

これらのメッセージのサイズは任意です。ただし、ヒューリスティックな評価では、メッセージのサイズが小さいほど、データの整合性が向上します。たとえば、MAMを使用して暗号化された4kビデオを送信することができますが、ネットワークを飽和させ、ラグを引き起こす原因となります。したがって、MAMを使用して実際にストリーミングをするには、オフタングルプロトコルを使用するほうが効率的です。MAMに大きな利点があると考えられる他のコンセプトには、リモートコントロールコマンドの送信とアップグレードのオーケストレーションがあります。

これらのメッセージは分散台帳の一部であるため、全体のハッシュパワーを向上させることにより、ネットワークのセキュリティーに貢献します。また、他のトランザクションが間接的にそれらを参照し続けるため、ネットワークのデータ完全性の恩恵をもたらします。

組み込みデバイスで利用されているMAMの既存の機能例は、Bosch XDK IoT開発キットやRuuvi LabsのオープンソースセンサービーコンであるRuuviTagです。XDKやRuuviTagsを使用すれば、ポータブル気象観測所、Eddystone近接ビーコン、車両ロケータ、他にもMAMストリームを介してコマンドを受信して​​限られた視聴者にテレメトリーを報告する素晴らしいセンサーアプリケーションを作成できます。最近発表された別のユースケースは、オランダのエネルギー大手ElaadのEV充電ステーションで、透明なデータの完全性を実現するIOTAによる支払いを可能にしました。

詳細

MAMは、Merkleツリーベースの署名方式を使用して、暗号化されたメッセージの暗号ダイジェストに署名します。このMerkleツリーのルートは、チャネルのIDとして使用されます。単一のツリーは短時間しか持続しないので、各メッセージは次のMerkleツリーのルート(またはチャネルの将来の方向)を含みます。以前のツリーは参照されないので、これによりチャネルに前方秘匿性の要素を追加できるかもしれません。

各メッセージは、チャネルIDとメッセージの署名に使用されたキーのインデックスで構成されるワンタイムパッドで暗号化されます(取消可能な暗号鍵として追加のナンスを使用するかもしれません)。結果の暗号ハッシュは、リーフの1つに属する秘密鍵を使用して署名されます。暗号化されたペイロード、署名、およびリーフの兄弟は、タングルに公開されます。対称鍵を持っている者は誰でもそれを見つけることができ、復号が可能です。

MAMストリームを使用する際には、まず最初に署名を検証し、その署名がツリーのリーフの1つに属していることを確認してから、メッセージが承認されます。その後、マスクが解除されます。署名検証が失敗した場合、メッセージ全体が無効とみなされます。

プライバシーと暗号化モード

MAMは、可視性とアクセスを制御するために複数の方法を使用できます。単純な暗号化メッセージストリームを超えるMAMの絶妙な使用パターンをいくつかご説明します。

パブリック

パブリックモードでは、ツリーのルートが、メッセージが公開されるトランザクションのアドレスとして使用されます。ランダムなユーザーがメッセージに出会ったとき、そのメッセージのアドレスを使用してメッセージを復号できます。

このモードは、HAMラジオでの放送に似ています。これはデバイスや個人からのパブリックアナウンスのために使用することができ、可能性のあるユースケースはツイッタークローンになりますが、データの不変性とデータの完全性という追加の特性があることをご理解いただけるでしょう。

プライベート

プライベートモードは、一般向けではない暗号化されたストリームに使用できます。プライベートモードでは、Merkleルートのハッシュがアドレスとして使用されます。ハッシュからルートを逆算することができないため、ランダムなユーザーがメッセージを復号することは不可能です。これにより、MAMストリームは、ルートが与えられている者だけが読むことができます。

このモードは、暗号化されたラジオストリームに似ています。誰でも見ることができますが、それを探している人だけが復号できます。プライベートモードは、お互いの間で個人的に通信するオウンドデバイスにとって有益です。

制限付き

制限モードでは、プライベートモードに認証キーが追加されます。ネットワークに接続するために使用されるアドレスは、認証キーとMerkleルートのハッシュです。メッセージ発行者は、チャネルID(つまり、Merkleツリー)を変更せずに認証キーの使用を止めることができます。そのため、発行者は必要に応じてサブスクライバのアクセス権を実質的には取り消すことができます。キー変更イベントが発生した場合には、新しい認証キーをストリームをフォローすることが許可されている関係者に配布する必要があります。

前方秘匿性

各メッセージには次のMerkleツリーのルートが含まれているので、ストリームのタイプと使用されているオプションの認証キーも知っていれば、現在のツリーが使い尽くされた後でもユーザーがストリームをフォローすることは容易です。現在のメッセージが次のMerkleツリーだけを指していると仮定すると、ユーザーが与えられたルートより前のメッセージを読むためのMAMストリームを読み取る方法はありません。MAMストリームを高速道路と考えると理解しやすいかもしれません。最初にストリームを読み始めたら、つまり高速道路に入ったなら、トラフィックの流れに逆らうことはできません。

これはシンプルではありますが、チャンネル分割と組み合わせて考えるのであれば非常に便利な機能です。

チャネル分割

MAMの発行者は、任意の時点でチャネルを分割することができます。これは、将来のメッセージが、以前に明らかにされていない新しいMerkleツリーを使用することを意味します。これにより、データの特定のサブセット(その全体が共有されることを意図していない)に対してチャネルをオフシュートすることができ、それによりデータへのアクセスを許可し、きめ細かなアクセスを可能とします。

Permanent Channel Split『Introducing Masked Authenticated Messaging』より引用

1つの例は、個人識別レコードでしょう。このレコードには、パブリックデータとプライベートデータという2つの主要なブランチがあります。パブリックブランチはプライベートMAMモードを使用し、ルートを持つすべてのユーザーにメッセージを読み取らせます。これは、名前、志向のリスト、およびbase64でエンコードされたプロフィール画像を含むことができます。病院に行くとき、ユーザーは毎日の体重データのサブストリームを医師に共有することができます。体重ストリームのルートと認証キーを共有するのです。前方秘匿性があるとすれば、医師はアクセス権が与えられていないその他のデータにアクセスすることはできません。

Short lived stream split『Introducing Masked Authenticated Messaging』より引用

もう1つのアプローチは、データストリームの短期間のチャネル分割です。デバイスは環境データに関する日々の報告を行うことができるでしょう。異常を検出すると、チャネルを分割し、より短い間隔でデータの報告を開始します。定期的な間隔で値をメインチャネルに伝達することに加えて、より頻繁な更新を含む新しい分割チャネルをリスナーに通知することもできます。これは、メインストリームの時間間隔を維持しながら、特別な使用事例のための二次ストリームを柔軟に追加することを可能にします。

結論

Masked Authenticated Messagingは、IOTAの最も強力なIXIモジュールの1つであり、IOTAの上に新しいユースケースのフィールドを開きます。データの整合性を確保し、アクセス管理を制御することは、Over-The-Airアップデート(OTA)、データマーケットプレイス、Fog Analytics、エンドツーエンドの検証可能なサプライチェーン、自動化された保険などの前提条件です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です