Merci beaucoup pour votre intervention.
Par contre est-ce que je peux utiliser openSSL avec des sockets boost (le système de callback est très intéressant pour relier un socket à un client).
Par contre je remarque une énorme faille dans votre schéma.
Pour le 3 ème message, le paquet sera toujours le même donc même sans connaitre le mot de passe (ou son hash), le login, ou les clés RSA, il suffit de "copier" le paquet et de l'envoyer au serveur, il faut donc rajouter lors du message 2 un sel à ajouter au message 3.
Sinon je suppose que openSSL peut créer des clés RSA à volonté donc qu'on peut, pour le client, générer une clé RSA à chaque connexion afin d'éviter de la stocker en dur côté client?
Derrière il faut bien évidement vérifier la cohérence du contenu du paquet.
Il n'y aurait alors plus que 2 failles "corrigeable" :
- la connexion SSH : interdire la connexion par mot de passe et utiliser une clé.
- les ports ouverts.
Par contre, si je ne dis pas de bêtises, les connexions acceptées utilisent un port unique différent de celui du socket d'écoute ?
Il faut donc fermer tous les ports à l'exception du port SSH, du port d'écoute et garder une plage de port ouvert pour les connexions (?).
Après avec cela, je ne sais pas si on peut faire plus à mon niveau.
Partager