Una pequeña empresa está tratando de subcontratar la fabricación a una pequeña fábrica de terceros. Los productos son dispositivos electrónicos de consumo y no requieren ninguna certificación especial además de CE y FCC clase B (aunque no creo que sea relevante para el problema).
La fábrica debe pagar una determinada regalía fija a la empresa por cada dispositivo fabricado.
Para cobrar la regalía, la empresa debe tener una forma confiable de saber cuántos dispositivos se han fabricado en un período de tiempo determinado.
Los dispositivos fabricados ejecutan firmware no trivial proporcionado por la empresa.
Los dispositivos también están equipados con un cargador de arranque personalizado trivial.
Los dispositivos no tienen medios de comunicación con la empresa por sí mismos (no están conectados a Internet, redes celulares, etc.).
Cada dispositivo fabricado se somete a un determinado procedimiento de prueba automatizado, que implica que el dispositivo se conecte a una PC que ejecuta un software de propósito especial desarrollado por la empresa. Este software también actualiza el firmware.
Los microcontroladores del dispositivo tienen una identificación de 96/128 bits única a nivel mundial. En realidad, los microcontroladores son STM32F0, STM32F1, STM32F4 y LPC11C24, si eso ayuda.
Las cantidades proyectadas son de hasta 500 dispositivos mensuales en total.
El envío de cualquier hardware entre la empresa y la fábrica no es factible.
La fábrica es un negocio legal y razonablemente honesto, no harán grandes esfuerzos para explotar el proceso en su beneficio.
El número de dispositivos fabricados es igual al número de dispositivos vendidos; cantidad de productos defectuosos es insignificante.
Una de las primeras soluciones que viene a la mente es extender el software de prueba mencionado anteriormente para que siga el siguiente algoritmo:
Esto parece proporcionar a la empresa los datos necesarios.
Los inconvenientes son obvios: la aplicación se puede parchear de muchas maneras, la PC host puede redirigir las consultas a un servidor de terceros, la fábrica puede ignorar la aplicación de prueba por completo e implementar su propia alternativa en su lugar, etc. Sin mencionar que la fabricación se detendrá si la API web de la empresa no funciona, aunque no debería ser un problema frecuente hoy en día.
¿Qué enfoques del problema existen en la industria?
¿Se puede implementar una solución más confiable con memoria OTP (algunas de las MCU enumeradas la tienen, otros productos pueden equiparse con un chip OTP dedicado, aunque no es deseable por razones de rentabilidad).
Aparte de OTP/criptografía, ¿hay alguna manera obvia de mejorar la solución descrita que me falta?
Proporcione a la empresa fabricante un número fijo de microcontroladores preprogramados. Muchas distribuciones propias y de terceros brindan un servicio de programación. Debido a que el firmware no es trivial, la fábrica no podría producir más productos que los chips que tienen.
Transeúnte
Pavel Kirienko
Un tipo de hardware
Un tipo de hardware
Un tipo de hardware
Spehro Pefhany
Bagelitas