La société Google la plateforme OpenSK, permettant de créer des firmwares pour des jetons cryptographiques, entièrement conformes aux normes et . Les jetons préparés avec OpenSK peuvent être utilisés comme authentificateurs pour l'authentification primaire et à deux facteurs, ainsi que pour confirmer la présence physique de l'utilisateur. Le projet est écrit en Rust et sous licence Apache 2.0.
OpenSK permet la création de son propre jeton pour l'authentification à deux facteurs sur des sites, qui, contrairement aux solutions prêtes à l'emploi fournies par des fabricants tels que Yubico, Feitian, Thetis et Kensington, est construit sur un firmware entièrement ouvert, disponible pour extension et audit. OpenSK se positionne comme une plateforme de recherche que les fabricants de jetons et les passionnés peuvent utiliser pour développer de nouvelles fonctionnalités et promouvoir les jetons auprès du grand public. Le code OpenSK a été initialement développé comme une application pour et testé sur les cartes Nordic nRF52840-DK et Nordic nRF52840-dongle.
En plus du logiciel, le projet comprend des modèles pour imprimer en 3D le boîtier d'un USB key fob basé sur le chipset populaire , qui comprend un microcontrôleur ARM Cortex-M4 et un cryptoaccélérateur
ARM TrustZone Cryptocell 310. Le Nordic nRF52840 est la première plateforme de référence pour OpenSK. OpenSK offre un support pour le cryptoaccélérateur ARM CryptoCell et tous les types de transport fournis par la puce, y compris USB, NFC et Bluetooth Low Energy. En plus d'utiliser le cryptoaccélérateur, OpenSK propose également des implémentations distinctes des algorithmes ECDSA, ECC secp256r1, HMAC-SHA256 et AES256, écrites en Rust.
Il convient de noter qu'OpenSK n'est pas la première implémentation ouverte de firmware pour des jetons avec support FIDO2 et U2F, des firmwares analogues développent des projets ouverts et . Par rapport aux projets mentionnés, OpenSK est écrit non pas en C, mais en Rust, permettant d'éviter de nombreuses vulnérabilités résultant d'une manipulation de la mémoire à bas niveau, telles que l'accès à la mémoire après sa libération, le déréférencement de pointeurs nuls et les dépassements de tampon.
Le firmware proposé pour installation est basé sur ,
système d'exploitation pour microcontrôleurs basé sur Cortex-M et RISC-V, offrant une isolation sandbox du noyau, des pilotes et des applications. OpenSK est présenté sous la forme d'un applet pour TockOS. En plus d'OpenSK, Google a également préparé pour TockOS une version optimisée pour les mémoires Flash (NVMC) et un ensemble . Le noyau et les pilotes dans TockOS, tout comme OpenSK, sont écrits en Rust.

Source : opennet.ru
