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 :

Protéger des données


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Cybercope
    Homme Profil pro
    Programmeur amateur
    Inscrit en
    Mai 2014
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Programmeur amateur

    Informations forums :
    Inscription : Mai 2014
    Messages : 78
    Par défaut Protéger des données
    Bonjour à tous !

    Je développe une application mais j'ai besoin de sauvegarder des données confidentielles (mots de passe). Je ne sais pas trop quel procédure utiliser.
    Créer un document texte et le crypter ?
    Utiliser les paramètres (settings) ?
    Utiliser une extension ?

    Merci de votre aide

  2. #2
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Salut,

    les mots de passe que tu veux conserver servent à se connecter ou tu comptes te faire un portefeuille de mot de passes ? Dans le premier cas tu pourras faire un hash (avec un salt ? mais comment le conserver sans qu'il soit facilement accessible), dans le second réfléchir à l'utilisation d'une PKI.

    Pour la localisation de tes enregistrements il me semble que les settings sont accessibles par l'utilisateur final, du coup ça où un fichier à plat y'a pas une grosse différence (à confirmer tout de même).

    Enfin je ne sais pas bien ce que t'entends par "extension".

  3. #3
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par jopopmk Voir le message
    avec un salt ? mais comment le conserver sans qu'il soit facilement accessible)
    Le rôle du salt est juste de se prémunir contre l'utilisation des tables de brute force (ex. Rainbow Tables). En gros, ca rend une attaque par brute force beaucoup plus coûteuse (mémoire/CPU). Il n'y a aucune contre indication pour stocker le salt et le hash du mot de passe dans la même table.

    Cela dit, si un seul salt est utilisé pour tous les mots de passe, l'attaquant n'aura besoin de faire le calcul qu'une seule fois... S'il y a un salt par mot de passe, c'est une autre histoire. Donc il vaut mieux utiliser un salt différent par mot de passe.

    Il est même recommandé d'aller encore un peu plus loin, en faisant un hash du hash du hash... Vu qu'un attaquant peut aujourd'hui accèder très facilement à de grosses puissances de calcul CPU, il est recommandé d'utiliser PBKDF2 qui est dispo en .NET via la classe Rfc2898DeriveBytes. C'est un standard éprouvé pour réaliser ce genre d'opération. La recommandation est de dériver le hash 1000 fois...

    A lire pour info et des exemples de code : Salted Password Hashing - Doing it Right
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  4. #4
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Citation Envoyé par DotNetMatt Voir le message
    Le rôle du salt est juste de se prémunir contre l'utilisation des tables de brute force (ex. Rainbow Tables). En gros, ca rend une attaque par brute force beaucoup plus coûteuse (mémoire/CPU). Il n'y a aucune contre indication pour stocker le salt et le hash du mot de passe dans la même table.
    Oui mais si l'attaquant connait le salt (car trouvable facilement dans un fichier à plat/settings), ça ne change rien au coût, nop ?
    Après je laisse la décision au développeur d'utiliser n fois sa fonction de hash favorite.

  5. #5
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par jopopmk Voir le message
    Oui mais si l'attaquant connait le salt (car trouvable facilement dans un fichier à plat/settings), ça ne change rien au coût, nop ?
    Encore une fois, le salt sert juste à complexifier une attaque par force brute (dictionnaire ou rainbow table). Il ralentit l'attaquant car ca demande plus de temps, et ca consomme plus de mémoire.

    En gros, sans salt, l'attaquant peut faire hash(tentative[0]) et comparer le résultat : si le hash obtenu est le même que celui dans la DB alors bingo, sinon il continue avec tentative[1] etc.

    Avec salt, l'attaquant doit faire hash(salt[a] + tentative[0]) puis hash(salt[b] + tentative[0]) etc. Donc le coût est plus élevé.

    Si tu as le temps et l'envie, jette un oeil au lien que j'ai donné plus haut, dans la partie sur le Salt il y a des exemples et des explications un peu plus détaillées
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  6. #6
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    De ce que je comprends de la demande, et en partant du principe qu'on n'est pas dans le cas d'un portefeuille de pass (*), Ind6x veut sérialiser à travers un fichier à plat (settings ou maison) un couple user/pass sans qu'un utilisateur qui aurait accès audit fichier puisse exploiter l'information s'y trouvant. Or si l'attaquant tombe sur un enregistrement de type : user/salt/pass_hashé, le salage perd fortement de son utilité (hors méthode de salage exotique). Toi tu pars du principe qu'on ne connait pas ce salt

    (*) oui, parce qu'on cause mais on sait toujours pas bien ce qu'il veut ^^

  7. #7
    Membre Expert Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Par défaut
    Citation Envoyé par jopopmk Voir le message
    Oui mais si l'attaquant connait le salt (car trouvable facilement dans un fichier à plat/settings), ça ne change rien au coût, nop ?
    Après je laisse la décision au développeur d'utiliser n fois sa fonction de hash favorite.
    Tu te fiches que l'attaquant voit le sel, tant que ce sel est unique (utilisé une seule fois pour une seule personne).

    Sans ce sel il suffirait d'investir massivement dans une grosse rainbow table pour pouvoir ensuite déchiffrer rapidement plusieurs utilisateurs.

  8. #8
    Membre confirmé Avatar de Cybercope
    Homme Profil pro
    Programmeur amateur
    Inscrit en
    Mai 2014
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Programmeur amateur

    Informations forums :
    Inscription : Mai 2014
    Messages : 78
    Par défaut
    Salut !


    oui effectivement c'était le Framerwork qui n'était pas a jour ! j'ai le pas retéléchargé car entre temps (hier) j'ai téléchargé visual c# express donc il m'as mit a jour mon framework ! et maintenant ca fonctionne ! merci !


    Donc si j'ai bien compris, la valeur que prend label1 est bien celle de textbox1 hachée ?!
    et label2 c'est le salage !

    Cepandant pourquoi je ne retrouve pas le salage dans le hach ?!


    Merci !

Discussions similaires

  1. [XL-2003] Protéger des données dans un fichier partagé
    Par nelson le doudou dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 05/01/2010, 17h14
  2. Protéger des données confidentielles dans un code source java lisible
    Par A Cherry Tells dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 09/10/2009, 17h23
  3. Protéger des donnés
    Par alex'l dans le forum Général Java
    Réponses: 7
    Dernier message: 10/06/2008, 16h54
  4. [DEV] Protéger les données des objets en objective-C
    Par Ceylo dans le forum Objective-C
    Réponses: 0
    Dernier message: 01/12/2007, 16h11
  5. [Conception] Protéger des données payantes
    Par Denti-fritz dans le forum Langage
    Réponses: 10
    Dernier message: 06/02/2007, 09h51

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