24.11.2020

Google представил открытый стек OpenSK для создания криптографических токенов


Компания Google представила написанную на языке Rust платформу 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 также подготовил оптимизированное для Flash-накопителей (NVMC) хранилище для TockOS и набор патчей. Ядро и драйверы в TockOS как и OpenSK написаны на языке Rust.

Источник: https://www.opennet.ru/opennews/art.shtml?num=52281

Добавить комментарий