Meilleures pratiques pour les mises à jour sécurisées Over The Air [fermé]

8

Quelles sont les meilleures pratiques de sécurité à suivre lors de l'émission d'une mise à jour OTA sur un parc d'appareils IoT? Quelles sont les principales causes de préoccupation?

Par exemple,

  • empêcher une mise à jour d'être interceptée
  • suivant les normes établies
  • plates-formes de distribution de logiciels
  • mises à jour automatiques vs mises à jour facultatives
Noam Hacker
la source
5
Cette question est trop large pour convenir aux questions et réponses.
Sean Houlihane
1
@SeanHoulihane, j'ai réduit l'attention portée à la sécurité de l'OTA. À quoi ça ressemble maintenant?
Noam Hacker
2
C'est encore assez large car chaque puce peut être une question autonome à part entière. Même juste pour la dernière puce de tester les succès, vous pourriez écrire un livre entier à ce sujet.
Dom
1
Je serais d'accord avec Dom. Mieux vaut prendre un aspect de l'OTA (comme assurer un résultat fiable). Même alors, il existe de nombreuses réponses. Idéalement, une question ne devrait avoir besoin que d'une ou deux réponses de haute qualité pour que vous puissiez accepter que sa «réponse».
Sean Houlihane
1
éditer le titre aussi?
Sean Houlihane

Réponses:

10

Cette question est trop large, mais étant donné que vous avez omis la chose la plus importante, je pense que je dois répondre.

Authentifiez la mise à jour .

Si vous voulez vous assurer que vos appareils exécutent votre code, vous avez besoin d'authentification, pas de cryptage. Le chiffrement garantit que d'autres personnes ne peuvent pas savoir ce qu'il y a dans votre code, ce qui est difficile à réaliser et rarement utile. (Vous pouvez chiffrer, mais si la clé de déchiffrement est sur l'appareil, vous n'avez rien gagné à moins que vous ayez un moyen de protéger la clé de déchiffrement qui ne vous laisse pas protéger directement le code.) L'authenticité est la propriété que les autres personnes ne peut pas produire une fausse mise à jour, et cette propriété est généralement souhaitable.

Notez que le chiffrement n'aide pas à l'authenticité. C'est une fausse croyance que les gens qui ne comprennent pas vraiment la sécurité ont parfois, mais ce n'est tout simplement pas vrai.

Pour certains appareils, il est possible d'exécuter n'importe quel firmware si le propriétaire le souhaite. Dans ce cas, vous avez toujours besoin d'un mécanisme pour vous assurer que seul le propriétaire de l'appareil peut installer le micrologiciel, et non un passant aléatoire. Cela signifie généralement que l'appareil doit authentifier la mise à jour comme provenant du propriétaire enregistré.

Gilles 'SO- arrête d'être méchant'
la source
Ce n'est pas vraiment correct. Le chiffrement n'est ni très difficile à réaliser ni seulement "rarement utile". De plus, ce cryptage «n'aide pas à l'authenticité» n'est que semi-vrai. La plupart des modes de cryptage modernes, comme GCM, sont en fait des schémas dits de "cryptage authentifié", qui combinent authenticité et confidentialité.
mat
@mat J'ai changé cette phrase pour qu'elle soit formellement correcte. Le chiffrement n'est pas difficile, mais je parlais de confidentialité, ce qui est difficile. Le chiffrement ne vous confère pas la confidentialité si vous n'êtes pas en mesure de garder la clé confidentielle. Le chiffrement n'aide en rien l'authenticité. Si vous utilisez un cryptage authentifié, cela vous donne les deux, mais le fait qu'il inclut un cryptage n'aide pas à obtenir l'authenticité.
Gilles 'SO- arrête d'être méchant'
En cas de fuite de votre clé, chaque crypto perd son utilité, que ce soit pour des raisons de confidentialité ou d'authentification. S'il est logique d'utiliser le chiffrement avec une clé non protégée sur l'appareil, cela dépend de votre modèle de menace (accessibilité de l'appareil, capacités des adversaires)
mat
@mat Non. J'aurais dû réagir à cette remarque de GCM dans mon commentaire précédent, en fait. GCM n'est pas un moyen décent de diffuser des mises à jour, car cela signifie que l'authenticité est vérifiée avec une clé de classe. Sauf si vous créez une plate-forme hautement renforcée (par exemple une carte à puce), une clé de classe est aussi bonne que publique. Les mises à jour doivent utiliser une cryptographie asymétrique. De cette façon, pour déployer une fausse mise à jour sur un appareil, cet appareil particulier doit être violé: pour produire une fausse mise à jour qui fonctionne partout, l'attaquant devrait casser le serveur ou le protocole et ceux-ci sont généralement mieux protégés que les appareils de la champ.
Gilles 'SO- arrête d'être méchant'