Je n'étais pas sûr de savoir comment formuler cette question, donc je m'excuse si c'est une copie d'autre chose. Je voulais vérifier la sécurité de mon application torsadée et penser que j'ai fait du bon travail, mais cela fait plus d'une décennie que j'ai écrit tout ce qui utilise des sockets crus ou gérés.Principes de base de la sécurité de protocole à base de chaîne
Transaction d'authentification: Le client se connecte et immédiatement une réponse de défi est renvoyée avec une chaîne hexadécimale de 16 caractères. Le côté client prend le nom d'utilisateur & mot de passe, le mot de passe est converti sha1 (salt + sha1 (mot de passe)) et les informations d'identification sont renvoyées au serveur en tant que {nom d'utilisateur, mot de passe}. Du côté serveur, l'authentification fait un modèle de recherche standard (si l'utilisateur existe et a un mot de passe égal à l'entrée, puis accorder).
Si la connexion entre l'utilisateur & client est perdue, la classe de protocole se marque comme sale et se déconnecte de l'objet utilisateur. À tout moment après ce point, pour avoir à nouveau accès à l'objet utilisateur, le client devra répéter le processus d'authentification avec un nouveau salt.
Ai-je raté quelque chose? Existe-t-il une approche meilleure/plus sécurisée pour un protocole basé sur un flux de caractères?
Est-ce fondamentalement http://www.ietf.org/rfc/rfc2617.txt Digest Authentication? –
@S.Lott Assez proche en fait parce que j'ai modélisé ma mise en œuvre actuelle partiellement après. – David
@David: Pourquoi ne l'utilisez-vous pas complètement? Pourquoi omettez-vous le qop et le client nonce? –