Protection du mot de passe
Bonjour tout le monde,
Je me pose moi aussi des questions sur la protection du mot de passe, maintenant que mon application est prête à être mise en ligne.
Je vois que cette réflexion s'inscrit en prolongement de la discussion qui a eu lieu ici, alors il me paraît intéressant de la poser ici. Peut-être devrai-je écrire un nouveau fil pour inviter du monde à venir lire ?
J'ai moi aussi pensé à écrire un module de cryptage et le déployer sur le site.
Toutefois il se pose encore une question : si on déconseille de mettre le mot de passe en clair dans le web.config, c'est qu'on considère que des "petits futés" sont capables de finir par le lire, et donc si ils trouvent le mot de passe en clair il ne leur faut plus guère longtemps pour accéder à la base.
Ah bon. Mais alors, si ils peuvent lire le web.config, qu'est-ce qui nous fait penser qu'ils ne pourront pas télécharger le module de cryptage, aussi ?
En fait, le conseil de Microsoft est d'utiliser le cryptage RSA niveau machine, par une commande comme
aspnet_regiis -pef "connectionStrings" "Web-site-folder "
ce qui fait apparaître dans le web.config des champs supplémentaires servant de support au cryptage, et les informations en clair n'apparaissent plus.
Si je cherche encore un peu d'info, je vois que cryptage niveau machine signifie que les clefs de cryptage vont être conservées dans le registre du serveur (il faut que IIS soit installé). Ah bon. En corollaire, je suppose que la commande ci-dessus doit être tapée sur la console du serveur ? Là-dessus je suis quelque peu hésitant, et ça m'aiderait bien si quelqu'un pouvait m'éclairer un peu (par exemple en m'indiquant un newsgroup plus adapté ?). Le personnel du serveur ne semble pas très rôdé à cette manœuvre, ce qui me laisse penser que peut-être il y a quelque chose que j'ai mal compris, car ça m'étonnerait que je sois le premier client à avoir des chaînes de connexion à protéger.
A défaut de réponse sur la mise en œuvre du cryptage RSA par aspnet_regiis, j'aimerais assez qu'on approfondisse la réflexion sur le stockage du module de cryptage et des clefs de cryptage.
En puisant les clefs de cryptage dans la base de registre on évite que quelqu'un puisse faire tourner le module de cryptage sur une autre machine, mais alors le pirate, me semble-t-il, va plutôt chercher à ajouter une page pour lire la chaîne de connexion ?