Salut tout le monde;
je me demandais si je pouvais sécuriser un mot de passe que j'obtiens depuis un TextBox, pour ensuite pouvoir le stocker sans danger dans ma configuration.
merci





Salut tout le monde;
je me demandais si je pouvais sécuriser un mot de passe que j'obtiens depuis un TextBox, pour ensuite pouvoir le stocker sans danger dans ma configuration.
merci
la sécurité en .net n'existe pas vraiment, enfin la sécurité en informatique n'existe pas de toute facon
néanmoins crypter un mot de passe est faisable, ca se passe dans system.security.cryptography
le truc c'est que si quelqu'un décompile ton programme, il trouvera la méthode de cryptage ainsi que la clé
Tu peux utiliser un algo de chiffrage comme RSA ou autre, l'inconvénient est que tu dois quand même stocker la clé quelque part...
Une autre technique que je trouve bien pratique est d'utiliser Windows Data Protection. Ca permet de chiffrer des données automatiquement sans préciser de clé, et c'est Windows qui se débrouille pour savoir qui a le droit ou non de les déchiffrer. Tu peux chiffrer soit pour l'utilisateur courant, dans ce cas seul cet utilisateur (dans le sens utilisateur Windows) aura le droit de déchiffrer, soit pour la machine locale, dans ce cas seul un utilisateur de la machine locale aura le droit de déchiffrer.
Il y a une classe ProtectedData qui permet d'utiliser cette fonctionnalité :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Imports System Imports System.Text Imports System.Security.Cryptography Shared Function ProtectPassword(ByVal password As String) As String Dim bytes As Byte() = Encoding.UTF8.GetBytes(password) Dim protectedBytes as Byte() = ProtectedData.Protect(bytes, Nothing, DataProtectionScope.CurrentUser) Return Convert.ToBase64String(protectedBytes) End Function Shared Function UnprotectPassword(ByVal protectedPassword As String) As String Dim protectedBytes As Byte() = Convert.FromBase64String(protectedPassword) Dim bytes as Byte() = ProtectedData.Unprotect(protectedBytes, Nothing, DataProtectionScope.CurrentUser) Return Encoding.UTF8.GetString(bytes) End Function
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
cynique je ne sais pas ... mais rien n'a résisté à personne en informatique
et les rares trucs qui résistent ne résisteront jamais longtemps
ios5 a été jailbraiké en quelques jours (et pourtant c'est la 5ème version de l'os, donc ils doivent avoir eut le temps de se pencher sur la question)
lors de concours de hack de navigateurs, en moins de 24h y a des trous de partout
l'aes256 a été percé récemment je crois (peut etre qu'en théorie, mais la pratique s'applique généralement à la théorie)
sony s'est fait percé plusieurs fois dans l'année
(etc ...)
pour moi la sécurité en informatique est quelque chose qu'on doit adapter selon l'utilité que des gens auraient à la mettre à mal ; pour peu d'envergure, il n'y a pas à déployer une armée
et une sécurité plus sûre resterait de changer de système très souvent
Tout à fait d'accord avec ce principe... D'ailleurs c'est pour ça que quand quelqu'un me dit qu'il veut obfusquer son code, je fais tout pour l'en dissuader : à moins que ce soit un algo complètement révolutionnaire, ça n'intéressera pas grand monde de voir le code, et de toutes façons si ça en vaut la peine quelqu'un de déterminé finira toujours par y arriver quand même...
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF





je comprends, bien que je sois débutant, dejà j'ai trouvé bizarre , d'utiliser une clé (qui doit etre secrète) pour crypter un mot de passe (lui aussi devant etre secret) , bref , je sais que l'espace de noms cryptography contient tout ce qui pourrait m'aider, mais je sais pas m'y prendre , j'ai jamais fais ça avant , et après tout , on ne sécurise pas vraiment , on rend juste les choses plus difficiles à découvrir , il y a des trucs qui aident à rendre les 'assemblies' non décomplilables je crois, bref ; tout ce que je souhaite c'est fournir un minimum de sécurité , une idée pour commencer?





Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF





oui merci , c'est juste que mes réponses semblent arriver à pieds sur le forumça doit venir de ma connexion..merci encore
Il est recommander d'utiliser le SSO (Single Sign On) plutot que de produire des nouveaux stores pour mots de passe. Si vous avez deja active directory, il vaut mieux s'en servir !!!!
Je dois être au même niveau que Orbit dans ce domaine mais qu'en est-il du md5 ?
Quand je vois les tutos en php, il est écrit partout qu'on ne peut pas le décrypter et que pour valider un mot de passe lors d'un login, il faut encoder en md5 le mot de passe introduit et comparer le résultat avec celui enregistrer dans la DB.
Je me doute bien que le cryptage se base sur un algorithme bien précis (sinon ça ne produirait pas 2 fois la même chose) et que par conséquent il doit être possible de produire un algo réciproque pour décrypter. Néanmoins, rien n'est stocké en clair et aucune clef n'est nécessaire.
N'est-ce pas préférable comme solution pour un minimum de sécurité à moindre coût ? (maintenant, j'avoue ignorer si cette méthode de cryptage est disponible en .NET mais au pire, on doit pouvoir faire un dll qui gère le bazar...)
Griftou.
je pensais à la même chose que toi, un algorithme de hashage après il y a un inconvénient tu peux pas récupérer ton mot de passe une fois hasher
tu as plusieurs algorithme d'hashage dispo dans cryptography
http://msdn.microsoft.com/fr-fr/libr...algorithm.aspx
Pourquoi vouloir le récupérer ???
Comme je l'ai dit, je suis novice dans ce domaine.
Du coup, je ne sais pas ce qu'est "brut-force"...
Mais je veux bien croire que ça peut venir à bout du mot de passe sans difficulté.
brute force c'est tester toutes les combinaisons jusqu'à trouver la bonne
le hashage permet en effet d'empecher le décryptage, une partie de l'information étant perdu pendant le chiffrement
le md5 étant le plus connu
après crypter plutot que de hasher permet de redonner le mot de passe à quelqu'un l'ayant oublié
avec du hashage on peut juste lui en définir un nouveau à la place de celui oublié
Pour en connaitre un peu plus
En fait, c'est pour cette raison que je vous ai recommande d'utiliser le SSO base sur AD car on peut appliquer une strategie a des comptes voirs des objects active directory.
Ca n'a rien à voir, le md5 génère un hash, ca ne chiffre pas le mot de passe... ça permet seulement de vérifier que le mot de passe est (probablement) correct.
Bah par exemple, pourquoi est-ce que ton navigateur enregistre tes mots de passe ? pour que tu n'aies pas à les ressaisir à chaque fois... Evidemment du point de vue d'un site web ça ne sert à rien, mais il n'y a pas que des sites web dans la vie...
Et la force brute c'est quoi si c'est pas une technique de décryptage ?
Enfin de toutes façons, avec md5 un hacker ne pourrait pas vraiment retrouver le mot de passe : il pourrait trouver des collisions de hash, c'est à dire d'autres entrées qui génèrent le même hash, mais ça ne lui permettrait de savoir laquelle correspond effectivement au mot de passe enregistré
Oui enfin bon, là c'est un peu le bulldozer pour écraser une mouche... Orbit22 demande juste un système simple pour enregistrer un mot de passe, et toi tu lui proposes l'artillerie lourde![]()
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Tu as deja repondu a la question, de ce point de vue nous sommes d'accord.
Si, ce n'est pas une application professionnelle, d'accord, mais si s'en est une, il vaut mieux quelle respecte les bonnes pratiques !!!!
En fait, toutes les entreprises en presque un SSO, il suffirait de la reutiliser.
Partager