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

Sécurité Discussion :

Sécurité données encryptage en PHP


Sujet :

Sécurité

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 13
    Points : 13
    Points
    13
    Par défaut Sécurité données encryptage en PHP
    Bonjour !


    J'ai créé ma propre fonction d'encryptage (et de décryptage) en PHP stocké sur mon serveur pour crypter mes données avant de les insérer dans ma base.

    Je trouve que c'est problématique si un jour, mon serveur vient à se faire hacker puisque le hackeur a tout en main pour décrypter les données contenues dans mes bases de données.

    Y a-t-il un moyen de protéger nos propres fonctions de cryptage. Par exemple si je les stocke sur un autre serveur me permettant uniquement de retourner la réponse de cryptage/décryptage, est ce une bonne idée ?


    Merci en avance pour vos réponses.

  2. #2
    Membre éprouvé Avatar de Algo D.DN
    Homme Profil pro
    WPM - Web Dev.
    Inscrit en
    Août 2012
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : WPM - Web Dev.
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2012
    Messages : 374
    Points : 1 173
    Points
    1 173
    Par défaut
    Citation Envoyé par adelinesc2 Voir le message
    Bonjour !

    J'ai créé ma propre fonction d'encryptage (et de décryptage) en PHP stocké sur mon serveur pour crypter mes données avant de les insérer dans ma base.

    Je trouve que c'est problématique si un jour, mon serveur vient à se faire hacker puisque le hackeur a tout en main pour décrypter les données contenues dans mes bases de données.

    Y a-t-il un moyen de protéger nos propres fonctions de cryptage. Par exemple si je les stocke sur un autre serveur me permettant uniquement de retourner la réponse de cryptage/décryptage, est ce une bonne idée ?

    Merci en avance pour vos réponses.
    Si j'ai bien compris c'est un peu le principe des matriochkas que tu cherches à faire, si c'est le cas, je n'en vois pas trop l'utilité de faire un miroir et d'encapsuler tes fonctions (pouvant entraîner les mêmes faiblesses)...

    Tu a déjà fait un test de sûreté, vulnérabilité, sur ton serveur ?.

    A défaut il y a quelques ressources qui peuvent t'aider dans ce domaine:

    http://securite.developpez.com/cours/?page=code_app

    http://fr.php.net/manual/fr/security.php

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    Je n'ai pas encore effectué ce test mais j'aimerai être sûre que l'on ne puisse voler de données et même si elles sont prises elle ne doivent être utilisables.

    Est-ce possible ?

    Y a-t-il des moyens pour protéger mes données alors ?

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 173
    Points : 187
    Points
    187
    Par défaut
    A ma connaissance pour encrypter et pour décrypter il faut une clé donc même si un hacker recupère ton code source, n'ayant pas la clé, l'algo seul de décryptage ne lui servira à rien.
    La clé ne doit pas, à mon avis, être stockée sur le serveur (genre dans un fichier Key.txt), ni même dans le code source comme c'est souvent fait car là si un hacker le récupère il aura tout pour décypter.
    Le mieux serait je pense de charger la clé en mémoire au lancement du serveur (ex: l'administrateur la saisie au lancement du serveur/de l'application serveur et elle est stockée dans une variable de l'application). La clé n'est ainsi pas en clair sur le serveur ou dans le code source ce qui complique la tache pour la trouver (même si cela doit être possible même en mémoire).

    Pour protéger tes méthodes de cryptage et d'encryptage je ne vois pas trop comment on pourrait faire ca et les déporter sur un autre serveur ne ferait que déporter le problème (car l'autre serveur pourrait aussi être hacké aussi). Cela prendrai juste plus de temps au hacker mais s'il est déterminer il pourra hacker l'autre serveur. Le mieux est donc de bien protéger ton serveur et de ne pas avoir la clé en clair.
    Diplomes: DUT informatique et Master 2 MIAGE.
    Développeur Java/J2EE (principalement), .NET (niveau scolaire mais je compte m'améliorer ) et Web (HTML, PHP...).

  5. #5
    Membre actif
    Homme Profil pro
    Expertise sécurité
    Inscrit en
    Avril 2013
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Expertise sécurité

    Informations forums :
    Inscription : Avril 2013
    Messages : 185
    Points : 268
    Points
    268
    Par défaut
    Citation Envoyé par philou44300 Voir le message
    A ma connaissance pour encrypter et pour décrypter il faut une clé donc même si un hacker recupère ton code source, n'ayant pas la clé, l'algo seul de décryptage ne lui servira à rien.
    La clé ne doit pas, à mon avis, être stockée sur le serveur (genre dans un fichier Key.txt), ni même dans le code source comme c'est souvent fait car là si un hacker le récupère il aura tout pour décypter.
    Le mieux serait je pense de charger la clé en mémoire au lancement du serveur (ex: l'administrateur la saisie au lancement du serveur/de l'application serveur et elle est stockée dans une variable de l'application). La clé n'est ainsi pas en clair sur le serveur ou dans le code source ce qui complique la tache pour la trouver (même si cela doit être possible même en mémoire).

    Pour protéger tes méthodes de cryptage et d'encryptage je ne vois pas trop comment on pourrait faire ca et les déporter sur un autre serveur ne ferait que déporter le problème (car l'autre serveur pourrait aussi être hacké aussi). Cela prendrai juste plus de temps au hacker mais s'il est déterminer il pourra hacker l'autre serveur. Le mieux est donc de bien protéger ton serveur et de ne pas avoir la clé en clair.
    Je suis d'accord.
    A noter qu'il existe des systèmes plus sûrs que du code fait maison... Kerberos pour ne pas le citer. Si tu comprends bien le principe de Kerberos, tu peux essayer de t'amuser à le refaire dans ton code, en générant des clés de façon à les envoyer à un serveur qui va lui même les... Bref. Kerberos quoi. Tu as un schéma clair ici.

    Bon courage,

    JayGr

    J'avais oublié de le dire et j'ai vu que Neckara l'a dit, donc :

    Citation Envoyé par Neckara
    Le cryptage ça n'existe pas.

    Chiffrer - déchiffrer.
    Décrypter, c'est "déchiffrer" quand on ne possède pas la clé.

  6. #6
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Bonjour,

    Utiliser son propre algorithme de chiffrage est une hérésie. Si tout le monde utilise des algos vérifiés, c'est bien parce que c'est compliqué d'en faire un. Si tu ne me crois pas, regarde la polémique actuelle sur l'algorithme de chiffrelent utilisé par Apple (pourtant, ils ont plus de moyens que toi pour employer des gens compétents en cryptographie, je pense que tu en conviendras) : ils utilisent un bon algorithme, mais une mauvaise courbe. Oui, simplement une mauvaise courbe mathématique, et c'est toute la sécurité qui est compromise, alors même que l'algorithe utilisé est bon et valide et tout ce que tu veux.

    Donc oublie ta solution maison, et prends une implémentation existante.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    Merci à tous pour vos réponses

  8. #8
    Inactif  
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Novembre 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Novembre 2014
    Messages : 82
    Points : 110
    Points
    110
    Par défaut
    Le problème, c'est que tu n'as pas défini le problème à résoudre!

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

Discussions similaires

  1. [VB6][MYSQL] recuperer des données MySQL via PHP
    Par psykotox dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 18/01/2008, 11h25
  2. Réponses: 4
    Dernier message: 08/06/2006, 20h41
  3. Sécurité Données
    Par Keuf95 dans le forum Sécurité
    Réponses: 8
    Dernier message: 25/04/2006, 09h59
  4. Réponses: 7
    Dernier message: 18/03/2006, 13h16
  5. [Sécurité] ?securisé le code php
    Par estampille dans le forum Langage
    Réponses: 6
    Dernier message: 04/01/2006, 14h25

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