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

PHP & Base de données Discussion :

Sécurisation de données


Sujet :

PHP & Base de données

  1. #1
    Invité
    Invité(e)
    Par défaut Sécurisation de données
    Bonjour/Bonsoir,

    J'ai récemment été contacté afin de créer l'interface client d'un hébergeur fin bref.. J'ai besoin de stocker des informations sensible telle des mots de passe que j'ai besoin d'encrypter et de décrypter depuis le serveur.
    Vous devez sûrement vous dire " Bah, encrypte les mots de passe avec BCRYPT " le problème est que les mots de passe des serveurs hôtes sont stocker en base de données et comme tout bon développeur je ne stock pas les mots de passe des serveurs en clair sur la base de données... Du coup, je cherche a faire que quand le système appelle tel serveur, je récupère tel mot de passe et je le décrypte pour que la connexion site et API serveur soit établie et que je lui passe les informations nécessaires.

    Au début, j'avais trouvé une classe php sur github qui utilisait mcrypt (Car on m'a demandé de faire les maj php) sauf que mcrypt a été déprécié après la version PHP7.0 ou PHP7.1 après on m'a dit d'utiliser libsodium car mcrypt n'était pas sûr... du coup voilà je ne sais plus ce que je dois faire, je suis totalement perdu..

    Github Classe PHP avec MCRYPT : https://github.com/o/crypt-php
    Voici ce que j'ai trouvé sur libsodium (Afin de voir un peu) : https://gist.github.com/petermuller7...00a663d30194ba

    Cordialement,

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    salut,

    mauvaise approche, il est préférable et de loin de stocker en base que des hash des mots de passe et de mettre en place un mécanisme de génération de mot de passe à usage unique
    sinon la bibliothèque libsodium est incluse nativement dans PHP depuis la version 7.2

    Tiens la doc par ici

  3. #3
    Invité
    Invité(e)
    Par défaut
    Tu aurais moyen de m'expliquer un peu quand tu dis mot de passe à usage unique car je comprend pas trop...

    Tu veux dire une mot de passe avec un clé de cryptage spécifique à ce mot de passe ?

    EDIT: En gros faire comme pour BCRYPT a chaque fois que tu retape le même mot de passe tu as l'algorithme qui change ? Si j'ai bien compris après avoir relu.
    Dernière modification par Invité ; 19/07/2019 à 00h09.

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Non du tout,

    quand le mot de passe est oublié, tu en génères un temporaire que tu envoies par mail et à la première connexion, tu forces le changement de mot de passe.
    Pourquoi faire ainsi : comme le mot de passe est envoyé en clair dans un mail, tu ne peux pas le garder pour y accéder ad-vitam aeternam. Le forçage de changement de mot de passe, te permet d'utiliser ton interface totalement sécurisée pour t'assurer que ledit mot de passe n'a pas été intercepté, compromis...
    Et en cas de problème, il est de très loin préférable de ne jamais conserver des mots de passe en clair dans une base de données.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Dans ce cas là je fais comment pour savoir le mot de passe du serveur si je dois le re-encrypté à chaque fois si j'ai presque compris, Je suis obliger de le garder en clair quelques part pour l'encrypter et l'utiliser....
    On m'a dit d'utiliser libsodium pour cela donc pour encrypter le mot de passe et le stocker dans la base de données pour ne pas le stocker dans la base de données en clair... donc je l'encrypte pour le récupère quand j'ai besoin de celui-ci et le décrypter quand j'ai besoin.

    Sachant que je suis pas débile non plus pour pouvoir le décrypter j'aurais mis un token utiliser lors de l'encryption pour comprendre les informations

  6. #6
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Ce n'est pas question d'être débile, c'est que tu ne lis pas correctement ce que je t'ai écrit :
    il est préférable et de loin de stocker en base que des hash des mots de passe
    tu ne dois JAMAIS stocker un mot de passe en clair. En tant qu'hébergeur ou fournisseur de service, il est très fortement conseillé de ne pas connaître les mots de passe de tes clients/utilisateurs. La bibliothèque libsodium fournie en standard à partir de PHP 7.2+ te fournit de manière sécurisée tous les mécanismes de hashage et vérification des mots de passe.
    Yapuka lire la doc.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Toi non plus du ne dois par lire correctement, Car si on n'arrive pas a se comprendre on va arriver dans une impasse.
    Car je n'ai jamais parler de stocker les mots de passe en clair ..!

    EDIT: le truc est que je ne comprend pas trop ce que tu me dit, Car tu me dit de stocker les infos avec une hash a usage unique comme pour les mots de passe comme tu m'a dit jusqu'ici ça va, mais du coup je fais comment pour comprendre les infos crypter lorsque je dois les utilisées
    Dernière modification par Invité ; 19/07/2019 à 12h43.

  8. #8
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par ValentinRgt Voir le message
    mais du coup je fais comment pour comprendre les infos crypter lorsque je dois les utilisées
    tu n'as pas à les comprendre, la bibliothèque libsodium te fournit ce qui'il faut pour vérifier si le mot de passe est correct. Comme je te le répète penche toi sur la doc et sur password_verify()

Discussions similaires

  1. Comment sécuriser les données
    Par amireve dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 22/05/2007, 10h30
  2. Sécurisation de données, multiple accés
    Par gapse dans le forum Administration
    Réponses: 2
    Dernier message: 06/04/2007, 13h52
  3. sécuriser ses données avant de les ajouter..
    Par italiasky dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 09/02/2007, 23h42
  4. [Sécurité] Sécuriser ses données !
    Par mLk92 dans le forum Langage
    Réponses: 2
    Dernier message: 22/12/2006, 15h21
  5. [Sécurité] sécuriser les données d'un site
    Par lodan dans le forum Langage
    Réponses: 10
    Dernier message: 20/07/2006, 12h26

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