Google представил открытый стек OpenSK для создания криптографических токенов
Компания Google представила платформу OpenSK, позволяющую создавать прошивки для криптографических токенов, полностью соответствующих стандартам FIDO U2F и FIDO2. Подготовленные с использованием OpenSK токены могут применяться в качестве аутентификаторов для первичной и двухфакторной аутентификации, а также для подтверждения физического присутствия пользователя. Проект написан на языке Rust и распространяется под лицензией Apache 2.0.
OpenSK даёт возможность создания собственного токена для двухфакторной аутентификации на сайтах, который в отличие от готовых решений, выпускаемых такими производителями, как Yubico, Feitian, Thetis и Kensington, построен на полностью открытой прошивке, доступной для расширения и аудита. OpenSK позиционируется как исследовательская платформа, которую производители токенов и энтузиасты могут использовать для разработки новых возможностей и продвижения токенов в широкие массы. Изначально код OpenSK был разработан как приложение для Tock OS и протестирован на платах Nordic nRF52840-DK и Nordic nRF52840-dongle.
Кроме программного обеспечения проектом предоставляются макеты для печати на 3D-принтере корпуса USB-брелока на базе популярного чипа Nordic nRF52840, включающего микроконтроллер 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, аналогичные прошивки развивают открытые проекты Solo и Somu. По сравнению с упомянутыми проектами OpenSK написан не на Си, а на языке Rust, позволяющем избежать многих уязвимостей, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей и выход за границы буфера.
Предложенная для установки прошивка базируется на TockOS, операционной системе для микроконтроллеров на базе Cortex-M и RISC-V, обеспечивающей sandbox-изоляцию ядра, драйверов и приложений. OpenSK оформлен как апплет для TockOS. Кроме OpenSK Google также подготовил для TockOS оптимизированное для Flash-накопителей (NVMC) хранилище и набор патчей. Ядро и драйверы в TockOS, как и OpenSK, написаны на языке Rust.
Источник: www.opennet.ru