No me culpen por promover DRM, estoy a favor de las plataformas abiertas; solo tengo curiosidad por saber cómo funcionaría esto.
Primero:
Hay fusibles en el chip que se pueden configurar para evitar que herramientas externas lean el código del chip. Busque los fusibles de protección en su hoja de datos y/o documentación del programador.
No es perfecto, pero te protege de ataques simples.
Segundo:
No puede descargar el firmware de forma segura. El AVR no puede autoprogramar áreas protegidas:
http://www.atmel.com/dyn/resources/prod_documents/doc1644.pdf
Lo mejor que puede hacer es usar un lenguaje de token encriptado (como básico o similar) y tener el intérprete protegido en el chip con un gestor de arranque que pueda programar los tokens encriptados en un área abierta. Al ejecutarse, el chip descifraría y ejecutaría las instrucciones sobre la marcha.
Si es tan importante y le preocupa especialmente que los competidores roben su código, obtenga protección IP en sus segmentos de código. Debería investigar esto si va a intentar ganar dinero con un proyecto de todos modos.
Ciertos elementos del código pueden patentarse (para métodos de procesamiento específicos y algoritmos novedosos) o registrarse como diseños industriales (la apariencia, el diseño y la aplicación de su código a un dispositivo). Es posible que desee consultar a un abogado de propiedad intelectual sobre esto.
Si escribió su propio gestor de arranque que aceptó datos cifrados a través del puerto serie, los descifró y los almacenó en el área de almacenamiento de códigos, podría tener una actualización de firmware de código seguro. Cada dispositivo podría incluso tener su propia clave de descifrado única en su gestor de arranque personalizado.
connor lobo