chiffrer mysql (linux)

Eléphant du PHP | 83 Messages

06 août 2009, 15:19

Bonjour,

J'essaye d'apprendre à chiffrer des données. De manière générale j'avance bien mais je bloque sur le point suivant :

Supposons que j'ai une base de données.
Supposons qu'une personne pique mon disque dur pendant mes vacances pour y accéder directement.

J'ai trouvé un lien intéressant (http://www.google.fr/url?sa=t&source=we ... RDvXtijCHw) mais je ne comprends pas sa logique : à quoi cela sert-il de chiffrer sa bdd si on stock son mot de passe sur son disque dur (dans le fichier php qui est lié à la bdd) ?

Merci de m'aider à comprendre la logique svp.

Amicalement,
Kanaille.
c'est pas mon site mais je soutiens : http://www.consommateurendanger.org/

ViPHP
ViPHP | 5924 Messages

06 août 2009, 18:07

Alors l'article que tu as trouvé parle surtout du hashage de mots de passe. C'est utilisé pour chiffrer les mots de passe de tes utilisateurs. Si quelqu'un récupère ces données, elles sont (théoriquement) inexploitables.
Avec l'article qui y est lié, on parle plus de cryptographie. On s'en rapproche. Tu peux, au niveau de ton application, chiffrer et déchiffrer les données. Si quelqu'un récupère là encore le contenu de la base, il ne peut pas les lire, alors que toi tu as moyen de les avoir en clair dans ton application.

Mais aucune de ces solutions ne sont adaptées à ton problème. Dans ton cas, c'est le disque qu'il faut chiffrer. Ce sont des routines qui opèrent au niveau du noyau. Je n'ai jamais étudié le sujet mais recherche autour des mots clés "Cryptographie" "noyau" "linux" ou "chiffrer" "disque dur" "linux" ou d'autres trucs du genre :)

Eléphant du PHP | 83 Messages

07 août 2009, 12:03

Salut Sékitoyai,

Et merci de l'info. J'ai continué mes recherches et avec ton aide, j'ai vu comment chiffrer une partition sous linux. Je n'ai pas de matériel ici (je suis en vacances) donc je testerai un peu plus tard.

Par contre, je me permets de corser un peu la protection.

Bon, d'un côté, c'est bon la partition est cryptée ce qui permet d'éviter qu'une intrusion physique permette d'accéder aux données. De l'autre, supposons que l'intrusion soit virtuelle :

-la machine est en marche et les serveurs apache/mysql (avec du php) sont lancés sur une partition cryptée.
-Une intrusion se produit permettant d'accéder à la machine (ssh ou autre faille supposée).

A ce niveau, le fait que la partition soit chiffrée ne sert plus à rien car l'intrus peut copier le répertoire mysql.

Je me demande s'il est possible de chiffrer à nouveau le répertoire mysql. Le problème est l'interaction entre mysql et php. Pour que le serveur apache/php fonctionne normalement, il faut bien que le mot de passe se trouve sur le serveur. A la limite on peut l'enregistrer une fois mais il reste quand même accessible via la mémoire vive.

Je ne sais pas si je suis clair. En résumé, comment faire pour chiffrer mysql tout en permettant le dialogue entre php et mysql. Le tout, sans laisser le mot de passe sur le serveur ?!?
Alors l'article que tu as trouvé parle surtout du hashage de mots de passe. C'est utilisé pour chiffrer les mots de passe de tes utilisateurs. Si quelqu'un récupère ces données, elles sont (théoriquement) inexploitables.
Avec l'article qui y est lié, on parle plus de cryptographie. On s'en rapproche. Tu peux, au niveau de ton application, chiffrer et déchiffrer les données. Si quelqu'un récupère là encore le contenu de la base, il ne peut pas les lire, alors que toi tu as moyen de les avoir en clair dans ton application.

Mais aucune de ces solutions ne sont adaptées à ton problème. Dans ton cas, c'est le disque qu'il faut chiffrer. Ce sont des routines qui opèrent au niveau du noyau. Je n'ai jamais étudié le sujet mais recherche autour des mots clés "Cryptographie" "noyau" "linux" ou "chiffrer" "disque dur" "linux" ou d'autres trucs du genre :)
c'est pas mon site mais je soutiens : http://www.consommateurendanger.org/

ViPHP
ViPHP | 5924 Messages

07 août 2009, 12:50

Je ne sais pas si je suis clair. En résumé, comment faire pour chiffrer mysql tout en permettant le dialogue entre php et mysql. Le tout, sans laisser le mot de passe sur le serveur ?!?
Tu arrives sur des limites techniques. Il faut que soit conscient que la cryptographie, ce n'est pas de la magie. Si PHP doit pouvoir déchiffrer les données, alors il lui faut forcément le mot de passe. Donc dans tous les cas, quelqu'un qui a la main totale sur ton serveur, quoi que tu fasses, aura accès aux données. Puisque ce que PHP peut faire, un pirate pourra le faire aussi.
Il faut savoir quel genre de protection tu veux, et tu peux t'offrir. Il est plus sûr d'empêcher à quiconque d'accéder à ton système plutôt que de l'empêcher de lire tes données une fois qu'il a la main totale dessus. Parce que si ton système est compromis à ce point, la seule solution, c'est de couper le courant.
Donc ce que peut t'apporter le chiffrage du disque, c'est de rendre le disque dur inexploitable une fois le serveur éteint. Et je ne sais pas comment cela marche mais peut être aussi lorsqu'il est allumé pour quelqu'un qui n'a pas le mot de passe.
Ce qu'il ne fait pas, c'est empêcher l'accès à quelqu'un qui a la main sur une application qui sait déchiffrer ces données. Ca ne fait pas le café quoi :-/

Eléphant du PHP | 83 Messages

08 août 2009, 16:25

A l'impossible, nul n'est tenu comme on dit.

Bon bah, je vais me pencher sur les règles d'iptables et la sécurité globale du serveur. Sinon je coupe le courant ;-)

Merci pour ton aide Sékiltoyai !!

Amicalement,
Kanaille.
Tu arrives sur des limites techniques. Il faut que soit conscient que la cryptographie, ce n'est pas de la magie. Si PHP doit pouvoir déchiffrer les données, alors il lui faut forcément le mot de passe. Donc dans tous les cas, quelqu'un qui a la main totale sur ton serveur, quoi que tu fasses, aura accès aux données. Puisque ce que PHP peut faire, un pirate pourra le faire aussi.
Il faut savoir quel genre de protection tu veux, et tu peux t'offrir. Il est plus sûr d'empêcher à quiconque d'accéder à ton système plutôt que de l'empêcher de lire tes données une fois qu'il a la main totale dessus. Parce que si ton système est compromis à ce point, la seule solution, c'est de couper le courant.
Donc ce que peut t'apporter le chiffrage du disque, c'est de rendre le disque dur inexploitable une fois le serveur éteint. Et je ne sais pas comment cela marche mais peut être aussi lorsqu'il est allumé pour quelqu'un qui n'a pas le mot de passe.
Ce qu'il ne fait pas, c'est empêcher l'accès à quelqu'un qui a la main sur une application qui sait déchiffrer ces données. Ca ne fait pas le café quoi :-/
c'est pas mon site mais je soutiens : http://www.consommateurendanger.org/

ViPHP
ViPHP | 5924 Messages

08 août 2009, 19:24

Bon bah, je vais me pencher sur les règles d'iptables et la sécurité globale du serveur. Sinon je coupe le courant ;-)
Très bonne initiative :)
Et tu pourras constater que c'est très puissant iptables. :)