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 :

Chiffrement Sodium PHP Possible de chiffrer d'autres données que des messages ?


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Homme Profil pro
    Entrepreneur
    Inscrit en
    Août 2017
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Entrepreneur

    Informations forums :
    Inscription : Août 2017
    Messages : 119
    Par défaut Chiffrement Sodium PHP Possible de chiffrer d'autres données que des messages ?
    Bonjour,

    Je souhaite savoir s'il est possible s'il vous plaît de chiffrer plusieurs de données textes/ nombre / dates / heures, avant qu'elles soient enregistré en bdd, et de les déchiffres avec sodium. Ca semble une question bête mais sur les vidéos que je regarde sur Youtube et les sites où je suis aller pour me renseigner, l'exemple du message est toujours pris pour la démonstration de l'usage de sodium.

    L'exemple du message peut être là à titre illusratif mais pour être sûr je pose la question, car je souhaite chiffrer les données de ma bdd. Je veux être sûr que ça ne concerne pas que le type de données style messages d'une conversation.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 670
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 670
    Par défaut
    par définition, le chiffrement s'applique sur une chaine de caractères. donc si vous avez un nombre ou même un tableau plus complexe vous pouvez essayer la conversion au format json qui est une chaine de caractères.
    regardez ces 2 fonctions :
    https://www.php.net/manual/fr/function.json-encode.php
    https://www.php.net/manual/fr/function.json-decode.php

  3. #3
    Membre actif
    Homme Profil pro
    Entrepreneur
    Inscrit en
    Août 2017
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Entrepreneur

    Informations forums :
    Inscription : Août 2017
    Messages : 119
    Par défaut
    Merci. En fait c'est surtout pour chiffrer, des noms, prénoms, informations d'experiences, de formations. Des caracteristiques qui peuvent être enregistré en tant que châine de caractères en dehors des messages de conversations. Infos d'entreprises aussi. Et même les données uniquement au format numériques ou de dates j'imagine que c'est pareil pour elles ? Ca concernera la création d'un site d'offres d'emploi et de plusieurs types de données relatives qu'on peut retrouver sur d'autres jobboard comme le poste recherché par exemple. On va pas stocker de fichiers par contre pour l'instant.

    Rien n'est stocké au format tableau pour l'instant.

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Tu peux évidemment chiffrer tout ce que tu veux avec sodium. La seule contrainte est effectivement que tu lui passe une chaine de caractère.

    Par exemple chiffrer une image :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $recipient_keypair = sodium_crypto_box_keypair();
    $recipient_public_key = sodium_crypto_box_publickey($recipient_keypair);
     
    $image = file_get_contents("image.png");
    $encrypted_image = sodium_crypto_box_seal($image, $recipient_public_key);
    $original_image = sodium_crypto_box_seal_open($encrypted_image, $recipient_keypair);
    Ou encore un tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $datas = [1,2,3,4,5,6];
    $recipient_keypair = sodium_crypto_box_keypair();
    $recipient_public_key = sodium_crypto_box_publickey($recipient_keypair);
     
    $array = serialize($datas);
    $encrypted_array = sodium_crypto_box_seal($array, $recipient_public_key);
    $serialized_array = sodium_crypto_box_seal_open($encrypted_array, $recipient_keypair);
    $original_array = unserialize($serialized_array);
    Pour le stockage en BDD usuellement on ne stock pas la valeur binaire mais une représentation base 64 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $readyForDatabase = sodium_bin2base64($encrypted_array ,SODIUM_BASE64_VARIANT_ORIGINAL );
    Toutefois , la plus part des bases de données possède des mécanismes de chiffrement et il est plus simple de les utiliser que de gérer soit même les chiffrement/déchiffrement si on est pas trop sûr de ce qu'on fait.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre actif
    Homme Profil pro
    Entrepreneur
    Inscrit en
    Août 2017
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Entrepreneur

    Informations forums :
    Inscription : Août 2017
    Messages : 119
    Par défaut
    Merci à vous deux, j'étais bloqué depuis plusieurs jours sur la manière de chiffrer et surtout bien savoir quelle solution fait quoi (j'étais parti voir aussi AES_ENCRYPT d'SQL mais bon je ne vais pas prendre). Ah d'accord, donc uniquement les châines de caractères, bon bah heuresement qu'on compte pas enregistrer de fichiers alors.

    C'est bon à savoir concernant les mécanismes de chiffrement que possèdent les bdd, je ne suis qu'un simple développeur du dimanche , donc je vais devoir me débrouiller jusqu'à ce qu'on puisse recruter plus tard quelqu'un qui sera vraiment câlé sur la programmation en sécurité ou la sécurité tout court.

  6. #6
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Citation Envoyé par Coeur De Roses Voir le message
    Merci à vous deux, j'étais bloqué depuis plusieurs jours sur la manière de chiffrer et surtout bien savoir quelle solution fait quoi (j'étais parti voir aussi AES_ENCRYPT d'SQL mais bon je ne vais pas prendre). Ah d'accord, donc uniquement les châines de caractères, bon bah heuresement qu'on compte pas enregistrer de fichiers alors.
    Tu ne comprend pas.
    La fonction de chiffrement prend en paramètre une chaine de caractère , ca ne veux pas dire que cette chaine ne peut pas contenir des données binaire d'un fichier.
    C'est l'exemple que je met avec le chiffrement d'une image. Ca pourrait être n'importe quel autre type de fichier, ca ne changerais rien.

    N'oublie pas que chiffrer les données va créer des problématiques de recherche (on ne peut pas simplement rechercher une valeur chiffrée).
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre actif
    Homme Profil pro
    Entrepreneur
    Inscrit en
    Août 2017
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Entrepreneur

    Informations forums :
    Inscription : Août 2017
    Messages : 119
    Par défaut
    Ok c'est compris pour le fichier. Oui je me doute qu'il faudra déchiffré les valeurs.

  8. #8
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Pas forcément , on peut utiliser ce qu'on appel des index aveugle.
    C'est à dire que pour les valeurs qu'on souhaite rechercher , on stock en plus de la valeur chiffrée , un hash. Comme ce hash est constant , on peut alors rechercher sur ce hash.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre actif
    Homme Profil pro
    Entrepreneur
    Inscrit en
    Août 2017
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Entrepreneur

    Informations forums :
    Inscription : Août 2017
    Messages : 119
    Par défaut
    Merci. Je me suis rendu du pourquoi ça ne peut que traiter les chaînes de caractères et pas les format full numériques. Car chiffré un ID ne serait pas logique si le retour chiffré est en alphanumériques en + de caractères spéciaux. Mais bon je pense pas que si la CNIL me tombe dessus, elle va m'en vouloir de pas avoir chiffré des ID. Je fais allusion aux ID des colonnes par auto-incrémentation.

  10. #10
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Les seuls données qui peuvent avoir un intérêt à être chiffrée ce sont les données personnelle. Les données technique c'est inutile

    Ce qui important c'est de ne pas pouvoir liée une donnée à une personne physique.
    Donc par exemple si on peux avoir en clair Nom/prénom/adresse postale/ numéro de téléphone c'est pas top
    Au contraire juste nom et prénom , ce n'est pas grave puisque les homonymes existent.

    La réflexion qu'il faut avoir c'est : Si je me fais voler ma BDD que peuvent faire les voleurs des données qu'ils ont récupéré ?
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Membre actif
    Homme Profil pro
    Entrepreneur
    Inscrit en
    Août 2017
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Entrepreneur

    Informations forums :
    Inscription : Août 2017
    Messages : 119
    Par défaut
    D'accord, merci beaucoup.

    Même si ça paraît évident pour certains, ça me supprime les doutes à savoir si telle chose doit être vraiment chiffré ou pas. Merci à vous deux. Je met le sujet en résolu, j'ai eu les informations dont j'avais besoin et plus encore.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Autre solution que des VM
    Par ricil78 dans le forum VMware
    Réponses: 4
    Dernier message: 05/05/2017, 15h25
  2. Réponses: 0
    Dernier message: 01/05/2015, 20h57
  3. [classpath] autre chose que des jars
    Par eatherquake dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 09/12/2008, 10h22
  4. VBO autre chose que des GLfloats
    Par lXT95l dans le forum OpenGL
    Réponses: 4
    Dernier message: 01/04/2007, 19h22
  5. [Sécurité] Sessions PHP d'une fenetre à une autre
    Par creascript.com dans le forum Langage
    Réponses: 4
    Dernier message: 29/10/2005, 10h10

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