Xiaomi signe cryptographiquement le micrologiciel du scooter – et ensuite ?

[Daljeet Nandha] depuis [RoboCoffee] nous écrit, partageant ses recherches sur les vérifications d’authenticité du micrologiciel basées sur la signature cryptographique récemment ajoutées au micrologiciel du scooter Xiaomi Mi. Ces scooters utilisent un mécanisme de mise à jour du micrologiciel OTA sur BLE, vous pouvez donc mettre à jour votre scooter en utilisant uniquement une application pour smartphone – idéal car vous pouvez facilement obtenir toutes les bonnes nouvelles fonctionnalités, mais sous-optimal car vous pouvez facilement obtenir toutes les mauvaises nouvelles fonctionnalités. En tant que propriétaire d’un scooter Mi 1S mais hacker avant tout, [Daljeet] a configuré un proxy HTTPS et capturé les fichiers du micrologiciel que l’application a téléchargés à partir des serveurs Xiaomi, les a creusés et a résumé ce qu’il a trouvé.

Boîte de dialogue de mise à jour du micrologiciel de l'application Scooter, indiquant "Nouvelle mise à jour du firmware disponible.  Mettez à jour maintenant?"
La confirmation de cette mise à jour vous empêchera indéfiniment d’accéder aux mises à jour OTA tierces

Contrairement à de nombreuses mesures de sécurité que nous avons vues manquer par conception, celle-ci sécurise les mises à jour du micrologiciel OTA avec ce que nous considérerions comme la norme de l’industrie – le hachage SHA256 avec une signature reposant sur la cryptographie elliptique. Dès que la première version du micrologiciel mettant en œuvre les vérifications de signature est flashée dans votre scooter, il n’acceptera rien d’autre que d’autres fichiers binaires du micrologiciel fournis avec la signature numérique de Xiaomi. À moins qu’une faille ne soit trouvée dans l’implémentation de la vérification des signatures, la route « flasher un micrologiciel personnalisé avec une application pour smartphone » ne semble plus être une voie viable pour modifier votre scooter d’une manière que Xiaomi n’approuve pas.

Après avoir désassemblé le code actuellement disponible, [Daljeet] nous raconte tout cela – et plus encore. Dans sa rédaction détaillée, il partage les scripts qu’il a utilisés lors de son voyage d’exploration, afin que tout pirate suffisamment motivé puisse suivre ses traces, et nous vous recommandons vivement de jeter un œil à tout ce qu’il a partagé. Il donne également des informations supplémentaires, expliquant certaines contraintes du processus de mise à jour OTA et soulignant quelques hypothèses liées à la sécurité faites par Xiaomi, à vérifier pour contourner la sécurité mise en œuvre. Ensuite, il souligne les noms de fichiers du micrologiciel laissant entendre qu’à l’avenir, le micrologiciel de la carte ESC (contrôle électronique de la vitesse, responsable de la conduite des moteurs) pourrait être chiffré avec le même type de cryptographie à courbe elliptique, et trouve quelques crochets de mise à jour dans le code décompilé qui pourrait permettre exactement cela dans les futures versions du firmware.

On pourrait dire que ces scooters sont généralement modifiés pour supprimer les limites de vitesse, installés là-bas en raison de limitations légales dans divers pays. Cependant, les limites de vitesse légales sont plus nuancées qu’une limite supérieure dure, et si le matériel est capable de faire 35 km/h, vous ne devriez pas être à la merci de Xiaomi pour pouvoir utiliser votre scooter dans toute sa mesure où prévenant. Il serait juste d’affirmer, cependant, que Xiaomi a fait cela parce qu’ils ne veulent pas que leur réputation soit proche de « fabricant de scooters que les gens peuvent modifier pour enfreindre les lois », et donc nous ne pouvons pas nous attendre à ce qu’ils soient à venir.

De plus, bien sûr, cela limite fortement la réutilisation et la modification significative du matériel que nous possédons. Si vous souhaitez redonner de l’utilité à un scooter payant à la retraite, ajouter Bluetooth ou même reconstruire le scooter à partir de zéro, vous devriez pouvoir le faire. Alors, comment contournons-nous ces restrictions ? Enlever le couvercle et trouver un moyen de reflasher le firmware via SWD en utilisant quelque chose comme un Pi Pico, peut-être ? Nous avons hâte de voir ce que les pirates trouveront.