Escenario de seguridad líquido

1

Soy parte de un pequeño equipo de desarrolladores de pregrado que toman un curso sobre el desarrollo de aplicaciones Arduino y Raspberry Pi con un enfoque en el Internet de las cosas. Nuestra tarea actual es imaginar, diseñar e implementar algún sistema útil con los siguientes requisitos:

  1. Debemos hacer uso de una Raspberry Pi
  2. Debemos usar algún sensor externo o actuador junto con la Raspberry Pi
  3. Debemos implementar un sistema web que soporte el dispositivo físico de alguna manera

Hemos decidido utilizar una válvula magnética para evitar que usuarios no autorizados accedan a un líquido. Los casos de uso podrían incluir el almacenamiento seguro de líquidos tóxicos o peligrosos, evitar el robo de líquidos valiosos o evitar que los menores accedan al alcohol.

Para ser más específicos, hemos conectado nuestra Raspberry Pi a la válvula magnética y al teclado numérico. Cuando ingresa un PIN determinado, la válvula se abre temporalmente para permitir el flujo de líquido y luego se cierra después de un período de tiempo fijo. Esta configuración se considera un dispositivo.

Hemos desarrollado un sistema web que permite a un usuario con uno de estos dispositivos registrar una cuenta con nosotros. Se requiere que tengan una clave ubicada en el dispositivo para registrar una cuenta. Una vez que se ha creado su cuenta con nosotros, pueden registrar dispositivos adicionales si los tienen. El usuario establece un PIN para cada dispositivo registrado a través del sistema web. Pueden usar el sistema web para cambiar su contraseña para su cuenta web, cambiar los PIN para cualquiera de sus dispositivos y ver los registros reportados de cada vez que se accedió a su dispositivo con éxito.

Una vez que un usuario tiene uno de estos dispositivos y se ha registrado en línea y ha establecido un PIN, su dispositivo está listo para dispensar su líquido. La válvula está conectada a un contenedor muy resistente que se bloquea en el mecanismo, lo que evita que un usuario no autorizado simplemente retire el contenedor de líquido del dispositivo. Supongamos que la seguridad física de la válvula, el contenedor y el mecanismo de bloqueo están garantizados para los fines de este escenario académico.

Cuando un usuario desea acceder a su líquido almacenado de manera segura, ingresa el PIN asociado en un teclado numérico conectado a la Raspberry Pi. Su PIN se revisa y se envía a través de Internet a nuestro servidor para compararlo con el PIN guardado en nuestra base de datos. Si el PIN es correcto, el servidor regresa al dispositivo con una señal de éxito. Cuando el dispositivo recibe una señal de éxito, la válvula se abre durante un período de tiempo fijo, se establece de modo que se dispense un cierto volumen de líquido antes de que la válvula se cierre de nuevo. El servidor toma nota de cuándo se produjo la solicitud exitosa para fines de registro.

Mi problema es que la válvula se abre y se cierra con dos funciones simples ubicadas en la Raspberry Pi. La aplicación que hemos desarrollado para controlar el dispositivo espera hasta que recibe la señal de éxito antes de abrir y cerrar la válvula, pero no sé cómo evitar que un usuario malintencionado escriba su propia aplicación y haga uso de estas dos funciones para abrir. y cierra la válvula.

La Raspberry Pi tiene un puerto de video y puertos USB en el lateral. Un usuario malintencionado que está solo con el dispositivo podría traer su propio monitor y teclado, conectarse a la Raspberry Pi y ejecutar una aplicación que podría llamar a las mismas funciones que abren y cierran la válvula. ¿Cómo puedo evitar que esto suceda?

¿Necesito que el Pi esté asegurado físicamente para que el usuario pueda acceder al teclado numérico, pero no al Pi en sí? ¿Hay alguna manera de evitar que se usen los puertos disponibles? Cualquier sugerencia sobre cómo manejar esta situación sería muy apreciada. La seguridad no es el objetivo principal de esta tarea, pero me gustaría hacer lo mejor que pueda.

    
pregunta Christian Westbrook 08.12.2018 - 17:57
fuente

1 respuesta

2

Dependiendo de su modelo de amenaza, puede agregar recintos, alarmas, CCTV, controles de acceso a la habitación, un guardia de seguridad, etc. Pero sin saber qué quiere hacer, es difícil decir dónde detenerse.

Ciertamente, consideraría asegurar el Pi en sí mismo: un contenedor de metal cerrado, firmemente fijado a la pared / dispositivo hará que cualquier ataque sea más difícil / más ruidoso / más obvio. Agregar una alarma también mejorará esto.

Si puedes encontrar un gabinete que incorpore un teclado seguro (es decir, uno que sea difícil de romper y que sea inviolable) que te ayudará a prevenir un ataque.

Los puertos de sellado pueden ayudar, pero si un atacante ingresa al gabinete, podría acceder a las huellas en la PCB, por lo que aunque tenga algún valor disuasorio, no lo recomendaría.

    
respondido por el Rory Alsop 08.12.2018 - 18:24
fuente

Lea otras preguntas en las etiquetas