Estoy desarrollando un dispositivo IoT (una Raspberry Pi) que se conectará a Internet. Los usuarios no necesariamente se sentirán cómodos con la implementación de actualizaciones, así que planeo hacerlo lo más seguro posible sin tener que implementar actualizaciones de vez en cuando.
Lo que el dispositivo debe poder hacer:
- acceder a un micrófono: esta es mi preocupación, no quiero que nadie espíe a los usuarios del dispositivo accediendo al micrófono de forma remota
- acceder a API específicas en Internet. Se conocen de antemano y se pueden considerar guardar y no cambiar. Se accederá a ellos a través de la línea de comandos, python o Chrome (ver más abajo)
- ejecuta el código de Python
- ejecuta una instancia de Chrome. Será la versión más reciente cuando cree el dispositivo, pero (con suerte) nunca será necesario actualizarlo
- ejecute Raspian (Debian optimizado para Raspberry Pi). Esperemos que nunca sea necesario actualizarlo también.
Mi plan actual es:
- Solo comuníquese con las API usando SSL
- Establezca
/etc/hosts
para permitir solo la comunicación con las IP específicas de las API que necesito usar
No me preocupa que los usuarios del dispositivo manipulen ninguna configuración. Los ataques que requieren acceso físico al dispositivo no son mi preocupación. Los ataques que requieren estar cerca del dispositivo son interesantes, pero muy poco probables (el dispositivo no está muy extendido, no es de conocimiento general dónde están instalados y los usuarios son personas comunes, no hay ubicaciones de alta seguridad). En su mayoría me preocupan los ataques más o menos aleatorios a través de Internet.
¿Debo seguir algunos pasos adicionales para garantizar que el dispositivo (especialmente el acceso al micrófono) sigue siendo seguro, incluso si hay un error conocido en uno de sus componentes de software?