A empresa Google a plataforma OpenSK que permite criar firmwares para tokens criptográficos totalmente compatíveis com os padrões e . Os tokens preparados com o OpenSK podem ser usados como autenticadores para autenticação primária e de dois fatores, bem como para confirmar a presença física do usuário. O projeto é escrito na linguagem Rust e estão sob a licença Apache 2.0.
o OpenSK oferece a possibilidade de criar seu próprio token para autenticação de dois fatores em sites, que, ao contrário das soluções prontas, produzidas por fabricantes como Yubico, Feitian, Thetis e Kensington, é construído em um firmware totalmente aberto, disponível para expansão e auditoria. O OpenSK se posiciona como uma plataforma de pesquisa que pode ser utilizada por fabricantes de tokens e entusiastas para desenvolver novas funcionalidades e popularizar tokens em larga escala. Inicialmente, o código OpenSK foi desenvolvido como um aplicativo para e testado em placas Nordic nRF52840-DK e Nordic nRF52840-dongle.
Além do software, o projeto inclui modelos para impressão em 3D do corpo de um pen drive USB baseado no popular chip , que inclui microcontrolador ARM Cortex-M4 e acelerador criptográfico
ARM TrustZone Cryptocell 310. O Nordic nRF52840 é a primeira plataforma de referência para o OpenSK. O OpenSK oferece suporte para o acelerador criptográfico ARM CryptoCell e todos os tipos de transporte disponíveis no chip, incluindo USB, NFC e Bluetooth Low Energy. Além de utilizar o acelerador criptográfico, o OpenSK também preparou implementações isoladas dos algoritmos ECDSA, ECC secp256r1, HMAC-SHA256 e AES256, escritos em Rust.
Vale ressaltar que o OpenSK não é a primeira implementação de firmware aberto para tokens com suporte a FIDO2 e U2F, projetos semelhantes desenvolvem iniciativas abertas e . Em comparação com os projetos mencionados, o OpenSK é escrito em Rust, evitando muitas vulnerabilidades que surgem devido ao trabalho de baixo nível com a memória, como acesso a áreas de memória após terem sido liberadas, desreferenciação de ponteiros nulos e estouro de buffer.
O firmware proposto para instalação é baseado em ,
sistema operacional para microcontroladores baseados em Cortex-M e RISC-V, proporcionando isolamento de sandbox para o núcleo, drivers e aplicativos. O OpenSK é implementado como um applet para o TockOS. Além do OpenSK, o Google também preparou para o TockOS uma versão otimizada para dispositivos de armazenamento Flash (NVMC) e conjunto . O núcleo e os drivers no TockOS, assim como o OpenSK, são escritos na linguagem Rust.

Fonte: opennet.ru
