Firma Google platforma OpenSK, umożliwiająca tworzenie oprogramowania układowego dla tokenów kryptograficznych, w pełni zgodnych z normami i . Tokeny przygotowane za pomocą OpenSK mogą być używane jako uwierzytelniacze do jednolitych i dwuetapowych metod uwierzytelniania, a także do potwierdzania fizycznej obecności użytkownika. Projekt został napisany w języku Rust i na licencji Apache 2.0.
OpenSK umożliwia tworzenie własnego tokena do dwuetapowego uwierzytelniania na stronach internetowych, który w przeciwieństwie do gotowych rozwiązań wydawanych przez producentów takich jak Yubico, Feitian, Thetis czy Kensington, oparty jest na w pełni otwartym oprogramowaniu układowym, dostępnym do rozbudowy i audytu. OpenSK pozycjonuje się jako platforma badawcza, którą producenci tokenów i entuzjaści mogą wykorzystać do rozwijania nowych możliwości i popularyzacji tokenów wśród szerszej publiczności. Oryginalnie kod OpenSK został opracowany jako aplikacja dla i przetestowany na płytach Nordic nRF52840-DK oraz Nordic nRF52840-dongle.
Oprócz oprogramowania, projekt obejmuje modele do druku na drukarce 3D obudowy USB-klucza opartego na popularnym chipie , który zawiera mikrokontroler ARM Cortex-M4 oraz akcelerator kryptograficzny
ARM TrustZone Cryptocell 310. Nordic nRF52840 jest pierwszą platformą referencyjną dla OpenSK. W OpenSK zapewniona jest obsługa akceleratora kryptograficznego ARM CryptoCell oraz wszystkich dostępnych rodzajów transportu, w tym USB, NFC i Bluetooth Low Energy. Oprócz wykorzystania akceleratora kryptograficznego, w OpenSK również przygotowano odrębne implementacje algorytmów ECDSA, ECC secp256r1, HMAC-SHA256 oraz AES256, napisane w Rust.
Należy zauważyć, że OpenSK nie jest pierwszą otwartą implementacją oprogramowania układowego dla tokenów z obsługą FIDO2 oraz U2F, podobne oprogramowanie rozwijają otwarte projekty i . W porównaniu do wspomnianych projektów, OpenSK jest napisane nie w C, lecz w języku Rust, co pozwala uniknąć wielu luk bezpieczeństwa, które występują z powodu niskopoziomowej pracy z pamięcią, takich jak dostęp do obszaru pamięci po jego zwolnieniu, dereferencja wskaźników null oraz przekroczenie granic bufora.
Oprogramowanie przeznaczone do instalacji opiera się na ,
system operacyjny dla mikrokontrolerów opartych na Cortex-M i RISC-V, zapewniający izolację sandboxową dla rdzeni, sterowników i aplikacji. OpenSK jest przedstawiony jako aplet dla TockOS. Oprócz OpenSK Google przygotował również wersję TockOS zoptymalizowaną dla pamięci Flash (NVMC) i zestaw . Rdzeń i sterowniki w TockOS, podobnie jak OpenSK, są napisane w języku Rust.

Źródło: opennet.ru
