Je suis après quelques conseils concrets sur la meilleure façon de prévenir (ou au moins de dissuader) les mises à niveau non autorisées de logiciels sur un système embarqué. Il n'a pas besoin d'être à l'épreuve des balles et nous pouvons supposer pour l'instant que le système lui-même est suffisamment verrouillé pour que personne ne puisse y accéder sans autorisation. Mon plan consiste essentiellement à avoir un processus d'installation exécuté sur le système qui recevrait des paquets de mise à jour de n'importe où mais qui pourrait s'assurer que ces paquets provenaient d'une source fiable (ie, moi) avant d'essayer de les installer.Comment puis-je utiliser une signature numérique pour contrôler les mises à niveau logicielles?
Sous une forme simple, le package de mise à jour comprendrait le package d'installation réel, plus une signature numérique correspondante qui ne pourrait être générée que par moi-même. De plus, les signatures seraient purement auto-générées sans aucune autorité externe impliquée.
Ce sont mes réflexions sur le processus possible:
générons une paire clé privée/publique et la distribution de la clé publique ainsi que le système embarqué lui-même. Lors de la création d'un package d'installation de logiciel, acheminez le contenu du package (ou un MD5 du package) via un générateur de signature à l'aide de notre clé privée.
Distribuez le package d'installation du logiciel avec cette signature. Demandez à l'installateur de vérifier la signature par rapport au paquet d'installation du logiciel (en utilisant la clé publique dont il dispose déjà) et de ne l'installer que s'il y a correspondance.
Si quelqu'un peut trouver des problèmes avec ce régime, j'apprécierais les détails, ainsi que des conseils spécifiques sur la façon de les éviter. De plus (bien que ce ne soit pas l'objectif principal de la question), tout conseil sur les outils pour générer les clés serait apprécié.