Google die OpenSK-Plattform, die die Erstellung von Firmware für kryptografische Tokens ermöglicht, die vollständig den Standards entsprechen und . Mit OpenSK vorbereitete Tokens können als Authentifikatoren für die Einmal- und Zwei-Faktor-Authentifizierung sowie zur Bestätigung der physischen Präsenz des Nutzers verwendet werden. Das Projekt ist in Rust geschrieben und unter der Apache 2.0-Lizenz.
OpenSK ermöglicht die Erstellung eigener Tokens für die Zwei-Faktor-Authentifizierung auf Websites. Im Gegensatz zu fertigen Lösungen, die von Herstellern wie Yubico, Feitian, Thetis und Kensington angeboten werden, basiert es auf einer vollständig offenen Firmware, die zur Erweiterung und Überprüfung verfügbar ist. OpenSK wird als Forschungsplattform positioniert, die von Token-Herstellern und Enthusiasten genutzt werden kann, um neue Möglichkeiten zu entwickeln und Tokens in breitere Massen zu bringen. Ursprünglich wurde der Code von OpenSK als Anwendung für entwickelt und auf den Nordic nRF52840-DK- und Nordic nRF52840-Dongle-Platinen getestet.
Neben der Software stellt das Projekt auch Druckvorlagen für die 3D-Druck des Gehäuses eines USB-Schlüsselanhängers, basierend auf dem beliebten Chip , der einen ARM Cortex-M4 Mikrocontroller und einen Krypto-Beschleuniger umfasst
ARM TrustZone Cryptocell 310. Der Nordic nRF52840 ist die erste Referenzplattform für OpenSK. In OpenSK wird der Krypto-Beschleuniger ARM CryptoCell unterstützt, sowie alle von dem Chip bereitgestellten Transportmethoden, einschließlich USB, NFC und Bluetooth Low Energy. Neben der Nutzung des Krypto-Beschleunigers wurden in OpenSK auch spezifische Implementierungen der Algorithmen ECDSA, ECC secp256r1, HMAC-SHA256 und AES256, in Rust geschrieben, vorbereitet.
Es ist erwähnenswert, dass OpenSK nicht die erste offene Implementierung der Firmware für FIDO2- und U2F-Token ist; ähnliche Firmwares entwickeln offene Projekte und . Im Vergleich zu den genannten Projekten ist OpenSK nicht in C, sondern in der Programmiersprache Rust geschrieben, die viele Schwachstellen vermeidet, die durch die niedrigstufige Arbeit mit Speicher entstehen, wie z.B. das Zugreifen auf Speicherbereiche nach deren Freigabe, das Dereferenzieren von Nullzeigern und das Überlaufen von Buffern.
Die vorgeschlagene Firmware für die Installation basiert auf ,
ein Betriebssystem für Mikrocontroller auf Basis von Cortex-M und RISC-V, das eine Sandbox-Isolierung des Kernels, der Treiber und Anwendungen bietet. OpenSK wurde als Applet für TockOS gestaltet. Neben OpenSK hat Google auch eine für Flash-Speicher optimierte Version für TockOS (NVMC) vorbereitet. und Set . Der Kernel und die Treiber in TockOS, wie auch OpenSK, sind in der Programmiersprache Rust verfasst.

Quelle: opennet.ru
