2013-06-24 4 views
-1

Je suis seulement un développeur débutant et je le fais plus pour pratiquer mes compétences.Transmettre et stocker des mots de passe en toute sécurité

Je développe une application de serveur client dans laquelle le serveur hébergera un jeu et les clients se connecteront en utilisant un nom d'utilisateur et un mot de passe. Premièrement: Une fois que l'utilisateur entre son identifiant et son mot de passe, quel serait le moyen le plus simple de le faire envoyer au client en toute sécurité? Dois-je corriger ma propre méthode de chiffrement ou existe-t-il des protocoles prédéterminés facilement accessibles à l'aide des bibliothèques Java intégrées? J'ai entendu parler de TLS et SSL mais je ne sais pas comment les utiliser.

Deuxièmement, pour des raisons de sécurité, je ne veux bien sûr pas que les mots de passe stockés sur le serveur soient enregistrés en texte brut. Au lieu de cela, ce serait bien si au lieu de stocker le mot de passe, un condensé de hachage du mot de passe est stocké. Dans un fichier texte pour une comparaison facile. Existe-t-il un moyen simple de produire un condensé de hachage?

Merci beaucoup pour toute aide

+0

use Spring security. –

Répondre

1

Cryptage: Si vous allez utiliser le protocole HTTP pour la communication, vous devez utiliser le protocole HTTP sur SSL. Il assure le cryptage/décryptage des données transférées entre le client et le serveur. Il vous aidera également à éviter les attaques telles que la falsification, l'écoute indiscrète, l'attaque par l'homme dans le milieu
.

Si vous avez votre propre protocole de communication, vous pouvez toujours utiliser les algorithmes existants
comme RSA pour générer une paire de clés. Lorsque l'utilisateur se connecte, laissez l'application chiffrer le mot de passe avec la partie publique de la clé du serveur, et le serveur le décryptera en utilisant sa propre clé privée.

Hachage: Pour le hachage, vous pouvez utiliser SHA-2. (MD5 et SHA-1 peuvent également être utilisés, mais SHA-2 est plus sûr.) Vous pouvez stocker le hachage du mot de passe dans la base de données et le faire correspondre lorsque l'utilisateur se connecte.

Questions connexes