Компания Google платформата OpenSK, позволяваща създаването на фърмуери за криптографски токени, напълно отговарящи на стандартите и . Подготвените с OpenSK токени могат да се използват като аутентификатори за първоначална и двуфакторна аутентикация, както и за удостоверяване на физическото присъствие на потребителя. Проектът е написан на Rust и се разпространява под лицензия Apache 2.0.
OpenSK предоставя възможност за създаването на собствен токен за двуфакторна аутентификация на уебсайтове, който, за разлика от готовите решения от производители като Yubico, Feitian, Thetis и Kensington, е построен на напълно отворен фърмуер, наличен за разширение и одит. OpenSK е позициониран като изследователска платформа, която производители на токени и ентусиасти могат да използват за разработване на нови функционалности и популяризиране на токените сред широката общественост. Първоначално кодът на OpenSK беше разработен като приложение за и тестван на платките Nordic nRF52840-DK и Nordic nRF52840-донгъл.
Освен софтуера, проектът включва макети за печат на 3D-принтер на корпуса на USB-ключа, базиран на популярния чип , включващ ARM Cortex-M4 микроконтролер и криптоакселератор
ARM TrustZone Cryptocell 310. Nordic nRF52840 е първата референтна платформа за OpenSK. OpenSK осигурява поддръжка на криптоакселератора ARM CryptoCell и всички предоставени от чипа видове транспорт, включително USB, NFC и Bluetooth Low Energy. Освен използването на криптоакселератора в OpenSK също така са подготвени отделни реализации на алгоритми за ECDSA, ECC secp256r1, HMAC-SHA256 и AES256, написани на Rust.
Следва да се отбележи, че OpenSK не е първата отворена фърмуерна реализация за токени с поддръжка на FIDO2 и U2F; аналогични фърмуери развиват отворени проекти и . В сравнение с посочените проекти, OpenSK е написан не на C, а на Rust, което позволява избягването на много уязвимости, възникващи от ниско ниво работа с паметта, като достъп до областта на паметта след нейното освобождаване, разыменоване на нулеви указатели и излизане извън границите на буфер.
Предлаганата за инсталиране фърмуерна версия се основава на ,
операционна система за микроконтролери, базирана на Cortex-M и RISC-V, осигуряваща sandbox-изолация на ядрото, драйверите и приложенията. OpenSK е оформен като аплет за TockOS. Освен OpenSK, Google също така подготви за TockOS оптимизирано за Flash-накопители (NVMC) и набор . Ядрото и драйверите в TockOS, както и OpenSK, са написани на езика Rust.

Източник: opennet.ru
