Conception d'une application de gestion des mots de passe

Ici, on discute de l'anonymat et de la préservation des données personnelles sur le net. Il est également question de crypographie puisque ce domaine est étroitement liée au sujet.

Modérateur: modos Ixus

Conception d'une application de gestion des mots de passe

Messagepar potronam » 01 Juil 2005 12:56

Bonjour,


Je suis en train de réaliser une application Intranet permettant de gérer des mots de passe d'accès à des équipements.
Bien entendu, cette application est ultrasensible, et il faut donc la sécuriser au maximum.
Ce que j'aimerais, c'est qu'à aucun moment, les mots de passe ne circulent en clair.

Voici donc comment je l'ai architecturée :

- Identification des utilisateurs ayant accès à la base. Le mot de passe de connexion est hashé via une fonction JavaScript sur le client. Cette empreinte est comparée avec celle stockée dans une base de données pour réalisée l'identification de l'utilisateur.

- Les mots de passe de connexion aux équipements sont stockés chiffrés (via blowfish) dans la base. Et c'est là qu'est mon problème : je fais quoi de ma clé ????

Pour ne pas qu'elle apparaisse en clair (dans un morceau de code ou autre part), je voulais la chiffrer également. Mais avec quoi ?
J'ai pensé à utliser le mdp de l'utilisateur pour la chiffrer, mais ça voudrait dire qu'à un moment, sur le serveur ou sur le client, je stocke le mdp en clair pour pouvoir déchiffrer. L'idée de le stocker dans une session sur le client m'est venue, mais ça ne me plait pas trop.

Quelqu'un pourrait-il m'indiquer comment procéder SVP ?

Merci d'avance.

Encore un petit mot sur l'architecture technique : serveur Linux, avec Apache, PHP (+MCrypt), SSL, MySQL. L'application est programmée en PHP, la base est MySQL, et les flux HTTP sont chiffrés via SSL.
potronam
Matelot
Matelot
 
Messages: 2
Inscrit le: 01 Juil 2005 12:40

Messagepar krisnalada » 02 Juil 2005 15:24

Si tu doit communiquer ta clef, tu la cryptes en utilisant un mechanisme de clef public/privé comme ca tu seras tranquille.
=> le client qui veux la clef, fait une requete, il te donne sa clef publique, tu encrypte la clef avec ca. Tu envoie la clef cryptée sur le réseau. Le client la recoit, et lui seul peut la décrypter grace à sa clef privée.

2 trucs à prendre en considération :
* comment s'assurer que le client est bien le bon ? regardes du coté des certificats et des signatures
* les durées de validité de ta (tes) clefs
Avatar de l’utilisateur
krisnalada
Capitaine de vaisseau
Capitaine de vaisseau
 
Messages: 270
Inscrit le: 24 Jan 2005 19:09
Localisation: UK

Messagepar potronam » 08 Juil 2005 17:15

Si tu doit communiquer ta clef, tu la cryptes en utilisant un mechanisme de clef public/privé
...
=> le client qui veux la clef, fait une requete, il te donne sa clef publique, tu encrypte la clef avec ca


Ca veut dire que quelque part, elle est stockée en clair.

Ce que je voudrais, c'est qu'elle soit simplement renseigner lorsque je chiffre un mot de passe d'accès à un équipement.

Je ne sais pas si j'ai été suffisament clair.

Voici la cinématique de l'appli :

- Un administrateur ajoute à mot de passe d'accès à un équipement. Ce mot de passe est stocké chiffré avec K1 dans une bbd.

- Un utilisateur voulant accéder à l'équipement doit récupérer le mot de passe ad hoc en accédant à la base de données. Pour déchiffrer le mot de passe retouné, il a besoin de K1.

Cette clé K1, j'en fait quoi ? je ne veux pas qu'elle soit stocké en clair dans un fichier, dans un morceau de code ou une bdd.

J'avais donc pensé à la chiffrer avec K2, qui serait par exemple le mot de passe de l'utilisateur. Ce qui signifirait dans ce cas, stocker quelque part ce mot de passe, durant la durée de la session. Ca en fait également un point faible succeptible d'êre attaqué !

La question est donc : comment réaliser une appli sûre de stockage des mots de passe (mis à part tous les connaître par coeur :wink: )
potronam
Matelot
Matelot
 
Messages: 2
Inscrit le: 01 Juil 2005 12:40

Messagepar krisnalada » 08 Juil 2005 22:47

potronam a écrit:Ca veut dire que quelque part, elle est stockée en clair.


.....

Le plus simple c'est que tu regardes comment fonctionne la cryptographie à clef publique :
http://www.commentcamarche.net/crypto/rsa.php3
http://www.commentcamarche.net/crypto/pgp.php3
http://tpe.crypto.free.fr/index.html?http://tpe.crypto.free.fr/contenu/clef_publique/
http://fr.wikipedia.org/wiki/Cryptographie_%C3%A0_clef_publique

et pour le soft je te conseille gnupg ou PGP
Avatar de l’utilisateur
krisnalada
Capitaine de vaisseau
Capitaine de vaisseau
 
Messages: 270
Inscrit le: 24 Jan 2005 19:09
Localisation: UK


Retour vers Confidentialité et Cryptographie

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron