La empresa Google la plataforma OpenSK, que permite crear firmware para tokens criptográficos que cumplen completamente con los estándares y . Los tokens preparados utilizando OpenSK pueden ser utilizados como autenticadores para autenticación primaria y de dos factores, así como para confirmar la presencia física del usuario. El proyecto está escrito en el lenguaje Rust y bajo la licencia Apache 2.0.
OpenSK permite la creación de un token personalizado para autenticación de dos factores en sitios web, que a diferencia de las soluciones listas ofrecidas por fabricantes como Yubico, Feitian, Thetis y Kensington, se basa en un firmware completamente abierto, disponible para expansión y auditoría. OpenSK se posiciona como una plataforma de investigación que los fabricantes de tokens y entusiastas pueden utilizar para desarrollar nuevas capacidades y promover tokens a una audiencia más amplia. Originalmente, el código de OpenSK fue desarrollado como una aplicación para y probado en las placas Nordic nRF52840-DK y Nordic nRF52840-dongle.
Además del software, el proyecto incluye maquetas para imprimir en 3D de la carcasa de un llavero USB basado en el popular chip , que incluye un microcontrolador ARM Cortex-M4 y un acelerador criptográfico
ARM TrustZone Cryptocell 310. El Nordic nRF52840 es la primera plataforma de referencia para OpenSK. OpenSK proporciona soporte para el acelerador criptográfico ARM CryptoCell y todos los modos de transporte proporcionados por el chip, incluyendo USB, NFC y Bluetooth Low Energy. Además de utilizar el acelerador criptográfico, en OpenSK también se han preparado implementaciones separadas de los algoritmos ECDSA, ECC secp256r1, HMAC-SHA256 y AES256, escritos en Rust.
Cabe destacar que OpenSK no es la primera implementación de firmware abierta para tokens con soporte para FIDO2 y U2F; proyectos abiertos similares existen y . En comparación con los proyectos mencionados, OpenSK está escrito no en C, sino en el lenguaje Rust, que permite evitar muchas vulnerabilidades que surgen de la manipulación de memoria a bajo nivel, como el acceso a áreas de memoria después de su liberación, la desreferenciación de punteros nulos y el desbordamiento de búfer.
El firmware propuesto para la instalación se basa en ,
un sistema operativo para microcontroladores basado en Cortex-M y RISC-V, que ofrece aislamiento en sandbox del núcleo, controladores y aplicaciones. OpenSK está diseñado como un applet para TockOS. Además de OpenSK, Google también preparó para TockOS una versión optimizada para unidades de Flash (NVMC) y conjunto . El núcleo y los controladores en TockOS, al igual que OpenSK, están escritos en el lenguaje Rust.

Fuente: opennet.ru
