No estaba seguro de cómo formular esta pregunta, así que le pido disculpas de antemano si se trata de un duplicado de otra cosa.Fundamentos de la seguridad del protocolo basado en cadenas
Quería comprobar con cordura cómo he asegurado mi aplicación twisted based y creo que he hecho un buen trabajo en ella, pero hace más de una década que escribí todo lo que utiliza sockets sin procesar o administrados.
Transacción de autenticación: El cliente se conecta e inmediatamente se envía una respuesta de desafío con una cadena hexadecimal de 16 caracteres. El lado del cliente toma el nombre de usuario & contraseña, la contraseña se convierte sha1 (salt + sha1 (contraseña)) y las credenciales se envían al servidor como {nombre de usuario, contraseña}. En el lado del servidor, la autenticación hace un patrón de búsqueda estándar (si el usuario existe y tiene una contraseña igual a la entrada que otorgar).
Si se pierde la conexión entre el usuario & cliente, la clase de protocolo se marca a sí misma como sucia y se desconecta del objeto de usuario. En cualquier momento después de este punto, para acceder de nuevo al objeto del usuario, el cliente tendría que repetir el proceso de autenticación con una nueva sal.
¿Echo de menos algo? ¿Hay un enfoque mejor/más seguro para un protocolo basado en secuencias de caracteres?
¿Esto es básicamente http://www.ietf.org/rfc/rfc2617.txt Autenticación de resumen? –
@S.Lott bastante cerca en realidad porque modelé mi implementación actual parcialmente después de eso. – David
@David: ¿Por qué no estás simplemente usándolo por completo? ¿Por qué estás omitiendo el qop y el cliente nonce? –