Estoy construyendo un dispositivo de rastreo y estoy buscando un método de autenticación seguro para usar cuando el dispositivo quiera establecer una conexión con el servidor.
El servidor es un servidor TCP con el que abrimos una conexión a través de TLS. Utilizamos TLS para cifrar el tráfico entre el dispositivo y el servidor para descartar las posibilidades de que un pirata informático rastree los datos. El dispositivo establece una conexión con el servidor utilizando los datos de la red móvil de la tarjeta SIM integrada.
Si el dispositivo está físicamente comprometido, esto no es un problema (no nos preocupa evitarlo, ya que, de todos modos, como si lo hubieran perdido, no es su ubicación). Además, como estamos usando TLS, no tenemos que preocuparnos por que alguien escanee las comunicaciones entre el dispositivo y la red móvil. La principal preocupación es evitar que alguien falsifique / emule uno de los dispositivos de rastreo. No queremos que los piratas informáticos establezcan la ubicación del dispositivo de rastreo de otro usuario.
¿Sería suficiente proporcionar una ID de dispositivo y una contraseña hash segura que enviemos al servidor TCP para la autenticación (obviamente única para cada dispositivo) cuando se establece una conexión? No estoy seguro de los métodos de autenticación aquí y agradecería cualquier orientación.
BOUNTY EDIT: Algunos comentarios mencionan que la mejor manera de hacerlo es a través de certificados de clientes. No tengo ningún conocimiento en esta área y si esta es la mejor opción, estaría interesado en ver una respuesta que explique esto con más detalle. Además, en una nota al margen completa, ¿sería una mala idea dejar de usar TLS en nuestros dispositivos y usar otro método que no incluya cifrado? Somos conscientes de la sobrecarga adicional en la que incurrimos al usar TLS, por lo que si hay otro método para asegurar la autenticación que no use cifrado, me encantaría escucharlo. Después de todo, ¿cuáles son las posibilidades de que alguien realmente rastree el tráfico entre uno de nuestros dispositivos y una red móvil y luego use la identidad del dispositivo para enviar coordenadas maliciosas / falsas?