Me gustaría construir un sistema simple, ¿hay fallas de seguridad obvias en él? ¿Este mecanismo de hash será bastante seguro sin otras capas de cifrado?
Tengo un módulo simple donde las personas pueden ingresar códigos, y un servidor que mantiene una lista de códigos permitidos (que se usan solo una vez, y los nuevos se agregan, pero no se reutilizan). Supongamos que la conexión wifi entre el módulo y el servidor es insegura.
Aquí están los pasos que se verifica el código:
- el módulo envía un hash sha1 del código al servidor
- (si es válido) el servidor responde con un hash sha1 del código + una sal codificada (conocida por el módulo, pero desconocida para los piratas informáticos)
- el módulo puede verificar eso y aceptar o rechazar al usuario
(La razón por la que solo se utilizan los hashes es que sería imposible que un pirata informático transmita un mensaje de Permitir / Denegar directamente al módulo. Se usa una sal, es así que los intermediarios no pueden ingresar un código aleatorio y luego transmitir su propio hash sha1 de eso)
Estoy evitando la complejidad de SSL porque el módulo se ejecutará en un sistema integrado extremadamente simple sin sistema operativo.
Ejemplo actualizado que tiene más sentido: Permita que los mensajeros de UPS escaneen el número de seguimiento de los paquetes para desbloquear una puerta para que puedan dejar el paquete. Solo se permiten números de seguimiento conocidos para que los ladrones no puedan simplemente escanear un paquete irrelevante para interrumpir.
Notas :
- Supongo que "contraseña" no es la palabra correcta, es solo códigos de un solo uso. Sí, la sal está codificada y espero evitar el cifrado. El motivo por el que se devuelve el código es que, independientemente de lo que un pirata informático pueda transmitir al módulo, será imposible autenticarse a menos que conozca la sal.
- En cuanto a dónde ocurre la autenticación: el servidor sabrá si el código es válido o no, pero el módulo solo aceptará el hash del código salt + para que el módulo sepa que la respuesta provino del servidor, no de los piratas informáticos, y también así que los hackers no pueden descubrir la sal.