Estoy intentando crear un mecanismo para prevenir fraudes y proporcionar rastreabilidad de los recursos físicos en un sistema distribuido. La idea es sencilla: el recurso viaja salto por salto en una red y cada salto está en manos de un actor diferente que debe registrar la recepción y el envío de recursos en una base de datos distribuida. Cada entrada de registro está firmada por su actor correspondiente. Los recursos tienen dos estados mutuamente excluyentes, in_transit
y stopped
, que se verifican y configuran cada vez que el recurso llega o sale de un salto. Asumo que un adversario en la red puede ser un actor e intentará:
- Clone una ID para robar sin problemas un recurso;
- Cambie las ID, es decir, reemplace la ID con la ID de otro recurso, como para generar errores en las verificaciones de estado;
- Eliminar una ID, para evitar la trazabilidad de un recurso;
- Cree un ID falso, como para insertar recursos falsos en la red.
Un desafío clave para este problema es proporcionar una manera de manipulación indebida para identificar de manera única los recursos en una red. En mi (pequeña) experiencia, veo tres maneras de lograr esto:
-
Forzando los recursos para registrar cada salto activamente. Esto podria lograrse mediante la implementación de sensores en cada recurso capaz de clave pública criptografía. Seguro pero caro. Los sensores también pueden verse comprometidos.
-
Códigos QR. Barato y generalizado pero fácilmente clonable. No sé si los códigos QR se pueden utilizar realmente para este propósito. Solo pensé en ellos porque todos los teléfonos de hoy pueden leer un código QR.
-
RFIDs. Esto parece una solución limitada pero bastante segura. Cada actor debe tener una máquina lectora y los recursos hechos de metal, como barriles u hojas de metal, pueden ser un problema para los lectores.
Por supuesto, nunca hay una solución perfecta y cada una de estas soluciones tiene sus vulnerabilidades y sus costos. Entonces, mis preguntas son: ¿cuál podría ser una manera segura de identificar de manera única los recursos físicos en este sistema? ¿Alguna de mis sugerencias proporciona una forma real de mitigar los ataques? ¿Hay mejores prácticas o normas para este propósito?
Gracias de antemano.