- Quelle est la meilleure façon de protéger le code flashé sur n'importe quel appareil AVR contre la rétro-ingénierie?
- Quelle est la manière la plus simple de fournir des mises à jour aux utilisateurs finaux pour qu'ils clignotent d'eux-mêmes sans divulguer le code? (Est-ce avec un chargeur de démarrage qui déchiffre une image cryptée?)
Ne me flashez pas pour la promotion de DRM, je suis en faveur de plates-formes ouvertes - je suis simplement curieux de savoir comment cela fonctionnerait.
Réponses:
Première:
Il y a des fusibles sur la puce qui peuvent être réglés pour empêcher les outils externes de lire le code sur la puce. Recherchez les fusibles de protection dans votre fiche technique et / ou la documentation du programmeur.
Ce n'est pas parfait, mais il vous protège des attaques simples.
Seconde:
Vous ne pouvez pas télécharger le firmware en toute sécurité. L'AVR ne peut pas auto-programmer les zones protégées:
http://www.atmel.com/dyn/resources/prod_documents/doc1644.pdf
Le mieux que vous puissiez faire est d'utiliser un langage de jeton chiffré (comme basique ou autre) et de faire protéger l'interpréteur sur la puce avec un chargeur de démarrage qui peut programmer les jetons chiffrés dans une zone ouverte. Lors de l'exécution, la puce décrypterait et exécuterait les instructions à la volée.
la source
Si c'est si important et que vous vous inquiétez particulièrement des concurrents qui volent votre code, souscrivez une protection IP sur vos segments de code. Vous devriez examiner cela si vous voulez quand même essayer de faire de l'argent avec un projet.
Certains éléments de code peuvent être soit brevetés (pour des méthodes de traitement spécifiques et de nouveaux algorithmes), soit enregistrés en tant que dessins industriels (aspect, mise en page et application de votre code à un appareil). Vous voudrez peut-être consulter un avocat spécialisé en propriété intellectuelle à ce sujet.
la source
Si vous avez écrit votre propre chargeur de démarrage qui a accepté les données chiffrées sur le port série, les a déchiffrées et les a stockées dans la zone de stockage de code, vous pouvez avoir une mise à jour sécurisée du firmware du code. Chaque appareil peut même avoir sa propre clé de déchiffrement unique dans votre chargeur de démarrage personnalisé.
la source