IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Crypter et sauvegarder un mot de passe


Sujet :

VB.NET

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2011
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 7
    Par défaut Crypter et sauvegarder un mot de passe
    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

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    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é
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    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

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    la sécurité en .net n'existe pas vraiment, enfin la sécurité en informatique n'existe pas de toute facon
    C'est un peu cynique comme point de vue, non ?

    Citation Envoyé par Pol63 Voir le message
    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é
    Avec la méthode que j'ai indiquée plus haut, il aura plus de mal... sauf s'il est connecté avec le compte de l'utilisateur qui a crypté les données

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    Citation Envoyé par tomlev Voir le message
    C'est un peu cynique comme point de vue, non ?
    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
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    pour moi la sécurité en informatique est quelque chose qu'on doit adapter selon l'utilité que des gens auraient à la mettre à mal
    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...

  7. #7
    Membre du Club
    Inscrit en
    Novembre 2011
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 7
    Par défaut
    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?

  8. #8
    Membre du Club
    Inscrit en
    Novembre 2011
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 7
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Avec la méthode que j'ai indiquée plus haut, il aura plus de mal... sauf s'il est connecté avec le compte de l'utilisateur qui a crypté les données
    je trouve la méthode pile poile à ma convenance , le mot de passe ne devrait pas etre transmit entre sessions , ni entre machine dans mon cas, donc je vais dejà lire la documentation et l'emloyer , merci

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Orbit22 Voir le message
    une idée pour commencer?
    bah je t'ai donné un truc pas mal pour commencer, non ?

  10. #10
    Membre du Club
    Inscrit en
    Novembre 2011
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 7
    Par défaut
    oui merci , c'est juste que mes réponses semblent arriver à pieds sur le forum ça doit venir de ma connexion..merci encore

  11. #11
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    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 !!!!

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  12. #12
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    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.

  13. #13
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    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

  14. #14
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Pourquoi vouloir le récupérer ???

  15. #15
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Citation Envoyé par griftou Voir le message
    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.
    Griftou.
    Pas besoin de le decrypter il suffit d'utiliser brut-force pour trouver ton mot de passe !
    Le hacker n'aura pas besoin de connaitre ton algorithme.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  16. #16
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    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é.

  17. #17
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    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é
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  18. #18
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    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.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  19. #19
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par griftou Voir le message
    Je dois être au même niveau que Orbit dans ce domaine mais qu'en est-il du md5 ?
    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.

    Citation Envoyé par griftou Voir le message
    Pourquoi vouloir le récupérer ???
    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...

    Citation Envoyé par WOLO Laurent Voir le message
    Pas besoin de le decrypter il suffit d'utiliser brut-force pour trouver ton mot de passe !
    Le hacker n'aura pas besoin de connaitre ton algorithme.
    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é

    Citation Envoyé par WOLO Laurent Voir le message
    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.
    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

  20. #20
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Citation Envoyé par tomlev Voir le message
    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é
    Tu as deja repondu a la question, de ce point de vue nous sommes d'accord.

    Citation Envoyé par tomlev Voir le message
    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
    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.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

Discussions similaires

  1. Sauvegarder un mot de passe
    Par raphielda dans le forum Langage
    Réponses: 10
    Dernier message: 17/08/2009, 12h25
  2. Ne pas permettre la sauvegarde du mot de passe
    Par Prosis dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 10/08/2007, 18h17
  3. [C#] sauvegarder un mot de passe
    Par damned3 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 07/10/2006, 03h08
  4. Crypter et tester un mot de passe
    Par ego dans le forum Sécurité
    Réponses: 3
    Dernier message: 30/03/2006, 20h02
  5. Sauvegarde des Mots de passe de connexion Web
    Par zakuli dans le forum Windows XP
    Réponses: 5
    Dernier message: 08/12/2005, 20h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo