Hay un dicho que menciona que las personas inteligentes no siempre terminan la carrera primero. En la universidad, recuerdo que algunos compañeros copiaban mis tareas, solo para terminar obteniendo mejores calificaciones que yo. Ser inteligente no necesariamente me garantizaba las mejores notas en la universidad y ver a otros alcanzar el éxito basado en mis ideas se volvía desmoralizador.
El mundo empresarial es similar; no es raro que las empresas copien conceptos que funcionan bien para sus competidores y los usen para dominar el mercado. Aunque éticamente cuestionable, los diseños falsificados son bastante comunes. Como ingeniero de diseño, es mi trabajo hacer que falsificar mi diseño sea lo más difícil posible.
Salvo por cubrir toda la PCB con epoxi, he intentado todos los trucos posibles. Esto incluye usar EEPROM de ID única (memoria de solo lectura programable y borrable eléctricamente) para hacer imposible duplicar una copia exacta de mi hardware y hacerlo operativo. Al incluir EEPROM de ID única en tu sistema embebido, tú también puedes prepararte para el peor de los casos y prevenir la falsificación de diseño.
Una EEPROM es un tipo de memoria no volátil que es útil para almacenar pequeñas cantidades de datos. Por lo general, se conecta a un microcontrolador a través de Circuito Inter-Integrado (I2C) o Interfaz Periférica Serial (SPI). La EEPROM ha estado presente en el escenario electrónico durante décadas y se utiliza para almacenar parámetros como valores de configuración.
Una EEPROM de ID Único es una EEPROM que lleva una ID no borrable. La longitud de la ID Única varía de 32 bits a 128 bits, dependiendo del fabricante. Teóricamente, no hay posibilidad realista de que dos EEPROM compartan la misma ID. Esto es similar al concepto de una dirección única de Control de Acceso al Medio (MAC) para tus dispositivos capaces de conectarse a internet.
En un sistema embebido totalmente desprotegido, los modelos falsificados pueden crearse fácilmente mediante la ingeniería inversa del PCB y la extracción del firmware del microcontrolador. Por supuesto, incluso con las características de protección de código activadas, duplicar el firmware todavía puede ser posible, aunque más desafiante.
Incluir una EEPROM de ID Único en tu diseño e implementar procedimientos de verificación en el firmware ayuda a prevenir la falsificación en masa. Así es como lo implemento en mis sistemas embebidos:
Cree un firmware sencillo que lea el ID único desde la EEPROM y lo guarde en un archivo dentro de una tarjeta SD. Este firmware solo está programado para recuperar el ID único y será sobrescrito por el firmware de la aplicación real más tarde.
Verificar contra el ID Único para prevenir la carga de programas falsificados.
Luego, cree una función especial en el firmware de la aplicación para extraer el ID único del archivo y escribir el valor en la memoria Flash interna del microcontrolador. El microcontrolador entonces necesita eliminar el archivo guardado en la tarjeta SD, después de almacenarlo de manera segura.
En el firmware de la aplicación real, cree una función que verifique el ID único de la EEPROM en el PCB con un ID de EEPROM codificado duro en la memoria Flash del microcontrolador. Esto permite que solo el firmware compilado con el ID único codificado duro correcto funcione en un PCB particular.
Como en cualquier diseño, la seguridad y la comodidad siempre están en extremos opuestos del espectro. La viabilidad de tu método de protección contra falsificaciones depende de la naturaleza de tus aplicaciones y del impacto proyectado de la falsificación en tu negocio.
La ventaja obvia de la verificación de ID única es que tu sistema embebido no puede ser falsificado en masa. Incluso si se extrae el firmware, inyectarlo en múltiples PCBs no hará que ninguno de los dispositivos se vuelva operativo. Salvo que se consiga que el microcontrolador se autodestruya, esta es la medida de protección más segura que he implementado.
La desventaja de este método es que la producción será un proceso mucho más lento, ya que esto implica descargar firmware de extracción de ID única y usar una tarjeta SD. Después de guardar el ID único, el técnico de producción necesitaría inyectar el firmware de la aplicación. Además, los EEPROMs de ID única generalmente son más caros que sus contrapartes regulares.
Espera un proceso largo pero seguro de inyección de firmware.
Si las consecuencias de la falsificación son una gran preocupación para su negocio, colocar un EEPROM con ID único es la mejor manera de proteger su diseño. Esto es simple de configurar usando un software de diseño de PCB versátil como Altium Designer®. Si un EEPROM con ID único no está disponible de manera integrada, puede crear fácilmente uno usando un footprint estándar.
¿Necesita más consejos sobre cómo proteger su diseño de sistemas embebidos contra la falsificación?