Nachdem ich etwa 4 volle Tage mit einem #YubiHSM gespielt habe, bin ich mit der Wahl ganz zufrieden! 😁 Das gesagt, gibt es auch einige Punkte, an denen es nicht ganz überzeugt, also könnte eure Erfahrung variieren (auch an einigen Stellen, wo ich es gebraucht hätte, dass es nicht versagt). 🧵
Wo es absolut glänzt, sind seine Fähigkeiten sowie die relative Eleganz und Benutzerfreundlichkeit. Im Gegensatz zu einem YubiKey, bei dem Sie direkt mit dem Gerät sprechen, wird das HSM in der Regel über einen Webserver bereitgestellt, der damit interagiert. Dies ermöglicht es Ihnen, das HSM aus der Ferne zu nutzen (mit den kniffligen OpSec-Problemen).
Yubico bietet eine CLI-Shell, die mit YubiHSM kommunizieren kann, was schön ist, da man sofort loslegen kann (man möchte hier wirklich kein eigenes Protokoll entwickeln). Auf der negativen Seite ist es... nicht die hochkarätige CLI, die wir heutzutage gewohnt sind. Es hat eine Menge technische Schulden und Fallstricke.
Leider sind YubiHSMs nicht sehr verbreitet, daher sind Schnittstellenbibliotheken aus anderen Sprachen nahezu nicht vorhanden. Yubico bietet Python an, also entweder damit arbeiten oder auf die Shell zurückgreifen... denk nur an die Fußschüsse.
Mein Hauptproblem mit Fußschüssen ist: "Ups, ich habe etwas Ungültiges unterschrieben". Nun ja, ups, denn du wirst niemals in der Lage sein, diesen Eintrag im Prüfprotokoll zu erklären oder zu beweisen, was du unterschrieben hast (hauptsächlich, weil du es nicht einmal wissen oder beweisen kannst). Das führt uns zu dem Schlechten: der Prüfung.
Der YubiHSM rühmt sich, ein manipulationssicheres, signiertes Prüfprotokoll zu haben. Nun, der signierte Teil stellte sich als Marketing heraus, es ist nicht signiert. Das Prüfprotokoll *ist* hash-verknüpft, leider ist es ohne eine Signatur auch nutzlos für die Offline-Prüfung, da jedes Protokoll gefälscht und gehasht werden kann.
Der einzige Weg, ein YubiHSM zu auditieren, besteht darin, eine Live-Verbindung zu ihm zu haben. Das liegt daran, dass Sie nachweisen können, dass Sie mit einem Yubico HSM verbunden sind (über signierte Zertifikate). Wenn Sie Yubico und deren HSM-Hardware vertrauen, dann glauben Sie, dass es bei Hash H ist, wenn es das sagt. Aber es ist interaktiv.
Der andere Nachteil ist, dass das Audit-Protokoll nur die durchgeführten Operationen enthält, aber keine Daten. Das ist irgendwie verständlich, macht die Protokolle aber auch viel weniger nützlich: Ihr Skript hat 10 Mal durchlaufen und die leere Zeichenkette signiert? Nun, das sind 10 Gelegenheiten für böswillige Signaturen.
Außerdem habe ich zumindest im Moment keinen Weg gefunden, einem Prüfer zu demonstrieren, dass ein bestimmter Schlüssel *auf* dem Gerät ist. Wenn du einem Prüfer Zugang zur Bestätigung deiner Schlüssel gibst, dann funktioniert es, aber es fühlt sich einfach falsch an. Ohne das kann ich nur beweisen, dass ich *zu einem bestimmten Zeitpunkt Schlüssel hatte*.
Mein persönlicher Schmerz ist, dass ich einen Transparenzbericht für mein @dark_dot_bio-Projekt erstellen möchte, was mit dem YubiHSM semi-unmöglich scheint. Wenn dein Bedrohungsmodell darin besteht, die Schlüssel vor böswilligen Akteuren zu schützen, ist ein YubiHSM perfekt. Wenn du jedoch keinen Missbrauch nachweisen möchtest, hast du Pech.
Alles in allem scheint es kein besseres Produkt auf dem Markt zu einem Preis zu geben, den ich mir tatsächlich leisten kann, also muss der YubiHSM ausreichen. Aber jeder, der sich dafür interessiert, sollte gewarnt sein: Die Prüfungsfähigkeit setzt *viel* Vertrauen voraus, das hätte vermieden werden können, wurde es aber einfach nicht. Fin.
2,39K