¿Es este sistema hipotético seguro?

-3

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.
pregunta Artur 07.01.2016 - 00:30
fuente

3 respuestas

1

Si un atacante puede realizar a un hombre en el ataque central (y puede hacerlo si la conexión wifi es insegura), no es seguro:
Si tomo su ejemplo: cuando el servicio de mensajería de UPS escanea el paquete, el atacante puede dejar el mensaje con hash pero guardar el hash para más tarde. El módulo le negará el acceso al servicio de mensajería de UPS y es probable que simplemente se vaya. Ahora el atacante puede ir a la casa y enviar el mensaje con el hash para desbloquear la puerta.

Pero esta es solo una de las vulnerabilidades evidentes de su sistema, que debería mostrarle por qué no debe rodar su propio criptográfico . (Le recomiendo que lea esta respuesta: enlace )

Si TLS / SSL no es posible para su sistema, creo que debería usar una implementación bien probada de un protocolo de autenticación existente. El código es como una contraseña, el token que autentica al usuario en el servidor.

Echa un vistazo a Wikpedia para obtener una lista de protocolos: enlace

    
respondido por el sven.to 07.01.2016 - 05:10
fuente
0

No veo en ninguna parte de su descripción que esté cifrando su tráfico. ¿Estás enviando tu hash en el claro? Si es así, estoy pensando, ¿qué evitaría que un intruso interceptara el hash y lo reutilizara?

Otra pregunta es, ¿cómo intentas mantener tu lista de contraseñas permitidas que "siguen cambiando"?

    
respondido por el wei 07.01.2016 - 00:43
fuente
-1

La primera vulnerabilidad está relacionada con el uso de hashes SHA1. Las colisiones basadas en hash SHA1 son relativamente altamente probables con el poder de cómputo moderno. Consulte SHA1-collisions

Lo que esto significa es que la parte maliciosa puede capturar esos hashes en el cable y forzarlos. Peor aún, si el atacante ingresa a su servidor y obtiene el conjunto limitado permitido, reduce el problema significativamente.

    
respondido por el sandyp 07.01.2016 - 00:39
fuente

Lea otras preguntas en las etiquetas