Masked Authenticated Messaging (MAM)
IOTA Masked Authenticated Messaging ermöglicht es Sensoren und anderen Geräten, ganze Datenströme zu verschlüsseln und diese auf quantensichere Weise sicher im IOTA Tangle zu verankern. Nur autorisierte Parteien können den gesamten Datenstrom lesen und rekonstruieren. Im Grunde funktioniert es ähnlich wie ein Radio: Nur wer die richtige Frequenz hat, kann mithören – bei MAM erhalten nur diejenigen mit den richtigen Channel-IDs Zugriff auf die Daten. Mehr Informationen zu MAM findest du in der IOTA Development Roadmap.
Loslegen
Aktualisiere zuerst deine RuuviTags mit deinem Smartphone auf die Hackathon-Firmware. Die vollständige Firmware enthält das komplette Hex-Paket; du kannst sie verwenden, wenn du eine Verbindung zum RuuviTag mit Developer Shield haben möchtest. Anleitungen zum Hochladen der Firmware findest du auf der DFU-Seite.
Wir haben ein NodeJS-Programm erstellt, das eingehende Bluetooth-Advertisements abhört und versucht, sich automatisch mit allem zu verbinden, das den Nordic-UART-Service verfügbar hat. Die Verbindung schlägt manchmal fehl, und wenn während der Ausführung eine Exception auftritt, musst du möglicherweise deinen Bluetooth-Stack mit sudo hciconfig hci0 restart neu starten. Das Programm wurde sowohl unter Debian als auch auf einem Raspberry Pi mit Raspbian getestet.
Starte „node example.js“. Du bekommst eine Kommandozeile, über die du Befehle an den verbundenen RuuviTag senden kannst. Wenn du „4“ sendest, liest der RuuviTag die Temperatur-, Feuchtigkeits- und Drucksensoren aus und sendet die Werte als Klartext, der durch MAM verschlüsselt ist. Das Programm empfängt die Nachricht in einer Reihe von Chunks und setzt sie wieder zu einem MAM-Payload zusammen. Der MAM-Payload wird anschließend im Tangle veröffentlicht. Die Zieladresse ist in der JavaScript-Beispieldatei fest codiert; du kannst die Adresse nach Bedarf anpassen.
Wie funktioniert es?
Der RuuviTag beginnt beim Start, sich selbst zu announcen, und sendet weiter, bis eine BLE-Verbindung hergestellt wird. Das Programm sendet ein vordefiniertes Datenpaket, sobald ein Befehl über das Command-Line-Interface gegeben wird. Der RuuviTag verarbeitet dieses Paket und antwortet mit einem Klartext-Paket mit der Nachricht „INIT MAM“. Nach ein paar Sekunden ist die MAM-Verschlüsselung auf der RuuviTag-Seite abgeschlossen und die Nachricht wird in Chunks aufgeteilt, die an das verbundene Gerät gesendet werden. Du kannst den Fortschritt am roten LED erkennen: Die LED leuchtet, wenn auf dem RuuviTag Aktivität ist. Du wirst sehen, dass die LED ein paar Sekunden lang leuchtet, während die Nachricht verarbeitet wird, und anschließend blinkt, während die Nachricht in Chunks übertragen wird.
Sobald die Übertragung abgeschlossen ist, geht der RuuviTag wieder in den Sleep-Modus, um Energie zu sparen. Du kannst die Verbindung trennen und später wieder zu deinem RuuviTag verbinden und erneut „4“ senden, um eine weitere MAM-Nachricht zu erhalten. Du kannst die Nachrichten im iotasearch service. prüfen.

Was kann ich damit machen?
Die Demo ermöglicht es dir, Umweltdaten im IOTA Tangle zu speichern, geschützt mit MAM. Wenn du einen Use Case im Kopf hast, helfen wir dir gern dabei, zusätzliche Funktionen umzusetzen, die du auf dem RuuviTag benötigst.
Erzähl uns …
Wie hast du das MAM-Protokoll verwendet? Wir sind sicher, dass andere das gern wissen würden!
Schau auf IOTAs Website und in unseren Blogbeitrag, um mehr zu erfahren.