IOTA Stronghold - Boden Fortress

19. Mrz'21

Übersetzung des IOTA Blogartikel.



Stronghold ist eine Open-Source-Software-Bibliothek, die ursprünglich zum Schutz von IOTA Seeds entwickelt wurde, aber zum Schutz jedes digitalen Geheimnisses verwendet werden kann. Es ist eine sichere Datenbank für die Arbeit mit Kryptographie, die sicherstellt, dass Geheimnisse (wie private Schlüssel) niemals preisgegeben werden. Es stellt einen eigenen Peer-to-Peer Kommunikations-Layer zur Verfügung, so dass verschiedene Apps sicher mit dem hochmodernen Noise Protocol über libp2p kommunizieren können. Stronghold wird eine sichere Basis für die neue IOTA Firefly Wallet bilden und in IOTA Identity integriert werden.

Wir haben diese Beta-Version "Boden Fortress" getauft, nach der Festung in Nordschweden, die zum Schutz des Landes und des Transports der "Wirtschaftswährung" - Eisenerz - während der Weltkriege in der ersten Hälfte des 20. Jahrhunderts errichtet wurde. Seine Nützlichkeit hat sich bewährt und er wurde auch während des Kalten Krieges weiter verwendet. Wie die Beta-Version von Stronghold auch, war die Boden-Fortress eine temporäre Lösung, die nur kurzlebig war und nach ihrer Dienstzeit wieder abgebaut werden sollte. Trotzdem war die Boden-Fortress fast hundert Jahre lang im Einsatz. Wir sind uns ziemlich sicher, dass die Beta von Stronghold viel, viel kürzer sein wird.

Heute, drei Monate nach dem Alpha-Release, freuen wir uns, die Stronghold-Beta ankündigen zu können. Diese Version bietet Garantien über die API, die Client-Logik und das Snapshot-Format - die sich nur ändern werden, wenn Sicherheitslücken gefunden werden. In diesem Stadium zu sein, qualifiziert Stronghold für ein vollständiges externes Audit, dessen Abschluss ein Meilenstein sein wird, den Stronghold für die Veröffentlichung der stabilen Version 1.0 erreichen muss.

Wenn Sie eine Auffrischung benötigen, wie Stronghold funktioniert, hat unser ansässiger Meme Lord Navin vom IOTA Foundation Board ein wunderbares kleines Diagramm erstellt, das erklärt, was Strongholds tun (und nicht tun) wird:


Im Allgemeinen werden die meisten Leute nicht einmal wissen müssen, dass sie einen Stronghold haben. Seine Verwendung sollte unsichtbar sein, ähnlich wie Besucher gewöhnlicher Webseiten nicht wissen müssen, welche Datenbank im Backend verwendet wird. Natürlich, wenn Webseiten verpflichtet wären, offenzulegen, wie sie unsere Benutzerdaten sichern, dann hätten wir vielleicht tatsächlich mehr Vertrauen in ihre Fähigkeit, uns zu schützen.

Hoffentlich werden irgendwann in nicht allzu ferner Zukunft Websites, Apps und sogar Betriebssysteme beginnen, die Stärke und den Nutzen von Ansätzen wie IOTA Identity zu erkennen: wo wir unsere eigenen Daten kontrollieren und sichern; wo wir entscheiden, was wir teilen; wo wir wählen, mit wem wir es teilen; wo wir befugt sind, den Zugriff zu widerrufen, wenn es uns passt.

Aus der Systemperspektive sehen wir uns heute in der Software damit konfrontiert, dass jede Anwendung das Bedürfnis hat, alle Geheimnisse zu nutzen, die sie zu brauchen glaubt, und dass es selten starke Garantien gibt, dass diese Anwendungen die Geheimnisse richtig schützen. Wir wollen, dass die Industrie im Allgemeinen erkennt, dass dies eine höchst unsichere Praxis ist, und dass der neuartige Ansatz von Stronghold nicht nur offensichtlich sicherer ist, sondern auch ein Architekturmuster, das es wert ist, angenommen zu werden. Es ist wirklich ganz einfach: Man kann keine Geheimnisse preisgeben, von denen man nichts weiß.


Sei ruhig und nimm mein Geld

Es ist nie gut, zu zuversichtlich zu sein, aber gleichzeitig müssen wir Ihr Vertrauen gewinnen, indem wir Sie bitten, unseren Glauben an Stronghold zu bestätigen. Aus diesem Grund werden wir neben dem "Attack-a-thon" bis Chrysalis (21. April 2021) eine Capture the Flag (CTF)-Herausforderung laufen lassen.

Irgendwo, versteckt in dieser Blogseite, können Sie eine Flagge (Hinweis) entdecken, die Ihnen hilft, einen Stronghold-Snapshot zu finden. Dieser Snapshot wurde mit dem Stronghold CLI unter der git-Revision fb7e9a6e2e6bbdd8a9f4140b3712ad5dce361cae erstellt. Sobald Sie es gefunden haben, ist der Rest des CTFs zu 100% in diesem Snapshot enthalten. Mit anderen Worten, es gibt nirgendwo externe Ressourcen, die Ihnen helfen könnten, also verschwenden Sie wirklich nicht Ihre Zeit mit dem Versuch, in andere Systeme einzubrechen.

Im Speicher des Schnappschusses befindet sich eine Flagge, die beweist, dass Sie hineingekommen sind. Der Tresor enthält jedoch einen aktuellen IOTA Mainnet Seed in einem geheimen Tresor/Pfad, der eine weitere Flagge ist. Dieser Seed enthält 3,78 GIOTA. Zum Zeitpunkt des Schreibens dieses Artikels hat das einen Wert von ~5000 USD. Der einzige Preis ist der Seed.

Wenn Sie eine Flagge finden, besuchen Sie bitte die Stronghold-Diskussion auf GitHub, um Anweisungen zu erhalten, wie Sie in die Bestenliste aufgenommen werden. Viel Glück!


Was als nächstes kommt

In den nächsten Monaten werden wir Tutorials, Beispiele, Dokumentationen und Spezifikationen vorbereiten sowie die Integration mit anderen Projekten der IOTA Foundation vornehmen. Während dieser Zeit werden wir den Client um einen flexiblen Ansatz für die prozedurale Kryptographie von Stronghold erweitern, einen "Versions-Updater" veröffentlichen, der das nahtlose Upgrade eines Snapshots auf eine neue Stronghold-Version ermöglicht, und das Kommunikationssystem mit einer nativen Desktop-Anwendung validieren. Schließlich wird Stronghold einem vollständigen Audit unterzogen und dann als Stable markiert.


Technische Hinweise zum Release

Stronghold besteht aus einer Reihe von Bibliotheken, die alle zusammenarbeiten. Diese Bibliotheken wurden im Rahmen eines externen Audits von Firefly vertikal geprüft und von einer Reihe von IF Rust Engineers auf Qualität und Sicherheit untersucht. Diese haben es für die Beta-Veröffentlichung qualifiziert, aber bevor wir Stronghold als stabil markieren, wird es ein zukünftiges horizontales Audit der gesamten Codebasis geben.

Im Folgenden finden Sie eine kurze Beschreibung jedes einzelnen Moduls, gefolgt von seinem internen Release-Status und einem Link zum Changelog.


Client

Der Client ist die einzige Schnittstelle zu Stronghold, deren Verwendung wir empfehlen können. Er dient als Abstraktionslayer für die darunterliegende Engine und die Kommunikationsbibliotheken, was garantiert, dass selbst wenn sich die interne Codebasis ändert, Ihre Schnittstelle zu Stronghold weiterhin funktioniert.

Status: Beta, CHANGELOG


Vault (dt. Tresor)

Der Tresor ist jetzt beschreibbar und nutzbar, aber nicht lesbar. Das bedeutet, dass es keine Methode gibt, mit der der Client jemals die im System gespeicherten Geheimnisse lesen kann, und bietet eine solide Garantie, dass Stronghold so sicher wie möglich ist. Wenn ein Geheimnis aus einem Datensatz im Tresor abgerufen wird, wird es an die Laufzeitumgebung weitergegeben, die es in einen fortschrittlichen Speicherallokator entschlüsselt, der das Geheimnis während der Verwendung bewacht. Aus diesem Grund betrachten wir den Tresor als "gehärtet".

Status: Beta, CHANGELOG


Speicher

Der Speicher ist ein Schlüssel:Wert-Speicherdienst mit Lese- und Schreibzugriff, der zwar im Snapshot verschlüsselt ist, aber nicht den gleichen Speicherschutz wie der Tresor genießt. Dies liegt daran, dass alle Daten, die an den Client zurückgegeben werden können, nicht als "wirklich geheim" eingestuft werden können. Während sie im Ruhezustand verschlüsselt sind, sind sie im Speicher nicht verschlüsselt und werden daher von uns als "privat und sicher", aber nicht als "gehärtet" eingestuft.

Status: Beta, CHANGELOG


Runtime (dt.Laufzeit)

Die vielleicht größte Einzeländerung seit der Alpha-Version ist die neue Laufzeitumgebung, die vollständig auf libsodium-sys basiert und garantiert auf allen Plattformen funktioniert. Sie schützt nach wie vor exponierte Geheimnisse im Speicher mit klassischen Guard Pages und Canaries, während kryptografische Operationen durchgeführt werden. Zusätzlich gibt es jetzt einen internen Guarded-Vektor-Typ, der es Stronghold ermöglicht, Datensätze zu schützen, wenn sie in Gebrauch sind, und sie automatisch auf Null zu setzen.

Status: Beta, CHANGELOG


Snapshot

Die Snapshot-Crate dient dazu, die Persistenzdatei zu entschlüsseln und die Daten in den Tresor und Speicher zu legen. Sie verschlüsselt auch den Tresor und Speicher, um die Persistenzdatei zu aktualisieren.

Status: Beta, CHANGELOG


Kommunikation

Die Kommunikations-Crate verwendet das libp2p-System mit dem Noise-Protokoll, das die erlaubte Nutzung von entfernten Tresoren für die Erstellung von Diensten wie Fernsignierung und Multi-Faktor-Autorisierung ermöglicht. Es ist nicht in aktiver Verwendung mit Chrysalis, wird aber zu einem späteren Zeitpunkt von Wallet und Identity verwendet.

Status: Alpha, CHANGELOG


crypto.rs

Diese Bibliothek ist zwar keine interne Abhängigkeit von Stronghold, stellt aber kryptographische Primitive für Stronghold (und alle anderen IOTA-Bibliotheken, die Kryptographie verwenden müssen) zur Verfügung.

Status: Beta, CHANGELOG