PDA

Afficher la version complète : [Réglé] [Réglé] Chiffrement swap



raph6768
22/12/2009, 22h47
Bonsoir à tous,

C'est mon premier message sur le forum et j'espère ne pas avoir créer un doublon.

Je souhaiterais s'il était possible de chiffrer la swap de manière aléatoire au démarrage.

J'ai trouvé une réponse pour Mandrake 8.2 (http://clx.anet.fr/spip/article.php3?id_article=53) mais rien pour OpenSuse 11.2.

L'un de vous aurait-il une idée ?

ahlner
22/12/2009, 22h56
Raphaël,

Bienvenue sur Alionet. Je ne saurai répondre à ta question, mais je te demande pourquoi chiffrer le swap?
Pourquoi cela te parait si important? Et seulement le swap?

alhner

raph6768
22/12/2009, 23h06
Pourquoi chiffrer la swap : parce qu'il est très facile de reconstituer les données de la swap. On peut ainsi reconstituer des certificats, entre autre (je l'ai déjà fait).
Ma /home est déjà chiffrée.
De plus, je compte repartitionner le disque et tout chiffrer sauf /boot.

Pour la swap, il est inutile d'avoir un chiffrement classique : une fois que la bécane est allumée, connaître la clé est totalement inutile. En effet, si on redémarre, la swap "se vide", mais on peut reconstituer les données !
L'utilité du chiffrement est donc évidant : je chiffre la swap comme ça si quelqu'un met la main sur mon portable, sort le disque et restaure la swap, il n'aura qu'un truc illisible.

Au redémarrage de la bécane, on redéfini une nouvelle clé aléatoire, qui écrase entièrement le reste, etc.

Si j'utilise un chiffrement standard (avec le même mot de passe), on pourrait dans l'absulu (il y a peu de chance, mais c'est possible) de recréer la clef de chiffrement : on lance un prob répétitif qui oblige l'ordi à utiliser la swap, on retrouve la version finale (chiffrée) et on déduit la clé (simple addition binaire).

Je suis donc limité à avoir une clé aléatoire sur la swap. De plus, y-a-t-il un "générateur de bruit" sur Opensuse afin de combler l'espace non utilisé du disque ?

J'espère être assez clair....

ahlner
22/12/2009, 23h23
Raphaël,

Tes explications sont claires et intéressantes.
Quant à la motivation, tu en connais mieux que nous les sources.
Tes données sont cruciales et ton environnement préoccupant.
Ce n'est pas une critique, mais simplement une source d'étonnement.
Quand au générateur de bruit, il va te falloir consulter Yast avec différent critères, mais il me parait essentiel d'avoir les dépôts adéquats pour le but recherché.

alhner

raph6768
22/12/2009, 23h38
L'environnement en soit n'est pas préocupant, mais c'est un ordinateur portable (que l'on peut me piquer ou que je peux perdre).
De plus, il n'est pas éternel et sera donc recyclé.

Les données sont très sensibles et je tiens à les protéger.

Je n'ai pas trouvé d'autre système qu'un chiffrement aléatoire de la swap. Si quelqu'un a une idée, je suis tout a fait preneur...

ahlner
22/12/2009, 23h55
L'environnement en soit n'est pas préocupant, mais c'est un ordinateur portable (que l'on peut me piquer ou que je peux perdre).
De plus, il n'est pas éternel et sera donc recyclé.

Les données sont très sensibles et je tiens à les protéger.

Je n'ai pas trouvé d'autre système qu'un chiffrement aléatoire de la swap. Si quelqu'un a une idée, je suis tout a fait preneur...[/b]


'Raphaël,

Avec explications, tu m'as convaincu.
J'ai une idée, mais je ne sais comment cela peut se réaliser.
Dans le processus arrêt/redémarrage, il;existe une étape désactivation de la swapp.
Il faudrait créer un script qui remplisse la swap avec une valeur fixe oualéatoire, juste avant qu'elle soit désactivée.
Dans Yast, je n'ai rien trouvé qui commence par sw..., mais ce n'est qu'une recherche triviale.

alhner

raph6768
23/12/2009, 00h07
J'avais plutôt penser à une génération de clef aléatoire au démarrage, suivi de formatage et chiffrement de la swap (comme une autre partition) : la clef restant en mémoire.

Quand la bécane tourne, la swap est utilisée normalement.

On coupe le jus et la clef disparait. Si maintenant on essaye de restaurer ma swap, c'est illisible

On redémarre : la swap est formatée avec une nouvelle clef, etc.

ahlner
23/12/2009, 00h22
Raphaël,

Il faut rechercher la simplicité.
Le formatage est une bonne idée, surtouts'il est accompagné d'un remplissage de données "standard", comme des "0", dont personne ne pourra rien tirer, donc remonte aux données initiales.
Je ne sais comment réaliser cela. Un programme quelconque a besoind'un environnement minimal.

alhner

raph6768
23/12/2009, 00h31
J'ai pensé m'inspirer de http://petaramesh.org/post/2007/10/27/Secu...frement-du-swap (http://petaramesh.org/post/2007/10/27/Securisation-dune-Ubuntu:-Chiffrement-du-swap)

raph6768
23/12/2009, 03h40
La méthode indiquée dans le lien au dessus fonctionne parfaitement !

les paquets suivant doivent être installés, avec leurs dépendances :
- compcache, avec ses dépendances
- cryptsetup, avec sa lib

ahlner
23/12/2009, 09h54
Raphaël,

C'est bien que tu aies trouvé une solution.
Après déconnexion d'Alionet et juste avant d'aller dormir, j'ai eu deux idées de réalisation simple :

-le swap est-il indispensable avec les configs actuelles : j'ai pensé pas de partition swap!
-en le conservant, j'ai trouvé une méthode simple de mise en œuvre puisque l'outil existe, mais un peu contraignante : redémarrer sur le livecd de gparted et formater la partition de swap.
Si tu veux renforcer la sécurité sur ton système, tu pourrais faire comme dans Openbsd et NetBSD, avoir les partitions suivantes :

/
swap
/tmp
/var
/usr
/home

alhner

Agemen
23/12/2009, 12h50
Une petite recherche sur le net m'inciterait à utiliser LUKS pour faire ça. Je te conseille la lecture suivante :
Création de partition cryptée pour openSUSE (http://en.opensuse.org/Encrypted_Root_File_System#Create_an_encrypted_swa p_partition), malheureusement en anglais. Si la langue de Shakespeare est problématique, fait nous signe, on pourra essayer de traduire.

Deux petite remarques : Fait attention à la partition sur laquelle tu pointes lors du swapoff et du remplissage avec des données aléatoires. Ce serait dommage de faire une connerie à ce niveau là :P . Et globalement : soit prudent lors des manipulations :)

@alhner : écrire des 0 partout dans une partition, ça n'empêche absolument pas le recouvrement des fichiers. Les lecteurs les plus performants (genre NSA) ne deviennent aveugles qu'à partir d'au moins 6 écrasements... 8, c'est bien, donc. Mais mettre tous les bits à 0 sur 4 Go de swap 8 fois, c'est long et ça bousille le disque dur ;)

raph6768
23/12/2009, 19h32
Une petite recherche sur le net m'inciterait à utiliser LUKS pour faire ça. Je te conseille la lecture suivante :
Création de partition cryptée pour openSUSE (http://en.opensuse.org/Encrypted_Root_File_System#Create_an_encrypted_swa p_partition), malheureusement en anglais. Si la langue de Shakespeare est problématique, fait nous signe, on pourra essayer de traduire.

Deux petite remarques : Fait attention à la partition sur laquelle tu pointes lors du swapoff et du remplissage avec des données aléatoires. Ce serait dommage de faire une connerie à ce niveau là :P . Et globalement : soit prudent lors des manipulations :)[/b]
J'ai trouvé la traduction en fr : http://www.queret.net/blog/post/2009/08/21...m-crypt-et-luks (http://www.queret.net/blog/post/2009/08/21/Crypter-Chiffrer-une-partition-avec-dm-crypt-et-luks), mais c'est très pratique pour chiffre une partition ordinaire, et non la swap...

<div class='quotetop'>Citation </div>
@alhner : écrire des 0 partout dans une partition, ça n'empêche absolument pas le recouvrement des fichiers. Les lecteurs les plus performants (genre NSA) ne deviennent aveugles qu'à partir d'au moins 6 écrasements... 8, c'est bien, donc. Mais mettre tous les bits à 0 sur 4 Go de swap 8 fois, c'est long et ça bousille le disque dur ;)[/b]
Je me permets de te corriger : c'est à la 7e écriture que le disque est propre...
De toute façon, il faut le faire la première fois. Une fois que la partition est chiffrée, même si le méchant arrive à restaurer les données, il n'aura que du chiffré et c'est le but !

Agemen
23/12/2009, 21h18
En fait, dans le lien que je te file, il est clairement question de crypter la swap ;) C'est pas le sujet principal de la page, mais il en est bien question. Donc je réitère ma proposition de traduction... même si maintenant ce sera peut être pas tout de suite :P

raph6768
24/12/2009, 00h17
j'ai réussi à chiffrer ma swap ;)

ahlner
24/12/2009, 10h02
j'ai réussi à chiffrer ma swap ;)[/b]


Raphaël,

Alors ce serait utile que tu marques [Réglé] à gauche du titre de ton message initial, par edit, Edition complète.
Bonnes fêtes,

alhner

Agemen
24/12/2009, 12h37
Je m'en suis chargé ;)
Par contre j'aimerais bien savoir quelle méthode tu as utilisée :)

ahlner
24/12/2009, 13h16
Je m'en suis chargé ;)
Par contre j'aimerais bien savoir quelle méthode tu as utilisée :)[/b]


Excuse-moi, Astérix, je comprends pas pourquoi cette question.
Nous sommes entre Gaulois, donc pas de grades (centurion, décurion, coccione)
Tu es admimin, pas moi.

raph6768
24/12/2009, 13h43
Comme ça : http://raphaels.blog.lemonde.fr/2009/12/23...r-opensuse-112/ (http://raphaels.blog.lemonde.fr/2009/12/23/comment-chiffre-sa-swap-avec-une-clef-aleatoire-sur-opensuse-112/)
(je sais : l'autopub, c'est mal)

ahlner
25/12/2009, 13h31
<div class='quotetop'>Citation </div>
Citation
@alhner : écrire des 0 partout dans une partition, ça n'empêche absolument pas le recouvrement des fichiers. Les lecteurs les plus performants (genre NSA) ne deviennent aveugles qu'à partir d'au moins 6 écrasements... 8, c'est bien, donc. Mais mettre tous les bits à 0 sur 4 Go de swap 8 fois, c'est long et ça bousille le disque dur wink.gif

Je me permets de te corriger : c'est à la 7e écriture que le disque est propre...
De toute façon, il faut le faire la première fois. Une fois que la partition est chiffrée, même si le méchant arrive à restaurer les données, il n'aura que du chiffré et c'est le but ![/b]

Agemen,

Pas de problème. Seulement là, quelquechose m'échappe, je ne comprends pas pourquoi.
Veux-tu m'éclairer.
Merci,

alhner

raph6768
26/12/2009, 02h31
Quand tu appuies sur la touche del de ton clavier et que tu vides la corbeille, tu n'effaces rien, en réalité, mais tu indiques au système que l'emplacement utilisé par les données peut être effacé.
Autrement dit, tu passes un bit de 1 (occupé) à 0 (libre).

La solution est donc de réécrire dessus. La question est : pourquoi sept fois ?

Imagine que ton disque dur est une feuille de papier A4. Lorsque tu remplis des données, c'est comme si tu écrivais au crayon à papier dessus et quand tu en supprimes une, c'est comme si tu barrais d'un trait.
Lorsque tu vas réécrire, tu as le choix : soit tu gommes un truc barré pour réécrire dessus, soit tu écris dans un espace blanc.
Ca ne dit toujours pas pourquoi sept fois.

On reste toujours sur notre feuille. Tu as baré et gommer. Très bien, mais on peut encore retrouver des données : tu prends la feuille qui est en dessous et tu colorie au crayon, tu vas retrouver le texte gommé !

Donc, réécrire sept fois permet de rendre la relecture impossible.

Agemen
26/12/2009, 13h26
Je vais tenter de t'éclairer, alhner. Imagine, tu es un disque dur. T'as plein de petits blocs, que tu lis... quand un bloc affiche un potentiel de 1, tu considère qu'il est à 1. Quand tu vois un bloc avec un potentiel inférieur à 0,6, tu considères qu'il est à 0. Soit donc un bloc à 1, que tu veux effacer. Tu lui opposes un potentiel à 0. Mais comme ça marche moyennement, son potentiel passe à peu près à 0,5. donc quand tu le liras tu le verras à 0. Maintenant, imagine qu'on te pique le bloc, et qu'on le lise avec un matériel plus performant. Le voleur verra un bloc à 0,5 et se dira "il a été mis à 1, puis effacé récemment". Donc il arrivera à retrouver les informations, s'il s'y prend bien...
si tu repasses une écriture à 0 sur le bloc dont on parle, son potentiel passera à 0,25, puis 0,13, etc... et tu arriveras à quelque chose de vraiment chiant à lire au bout de 7 écritures. Là, même les meilleurs matériel sont mis en défaut.
En fait, si tu veux vraiment mettre le bordel en une fois, tu écris des données aléatoirement. Parceque là, l'attaquant se retrouve avec n'importe quoi, et il est juste incapable de revenir en arrière. Parcequ'une mise à 1, c'est plus efficace qu'une mise à 0.

ahlner
26/12/2009, 16h53
Agemen,

Merci pour ces explications. Dis-moi si mon image est crrecte :
-les données magnétiques sont du style "continu", elles appartiennent à R
-les données de mémoire RAM sont digitales, elles appartiennet à N
Sehr gut?

alhner

Agemen
26/12/2009, 17h48
Oui et non. Disons qu'on travaille en binaire... là on est dans l'algèbre de boole, c'est beau, y'a du 0 et du 1... Ca c'est la théorie du matériel, et c'est ce sur quoi on s'appuie quand on code. Dans la réalité, on n'est pas capable d'être aussi précis. Si on joue à coups de transistors, le 1 sera là aussi assuré plus facilement pour ta RAM que le 0. Le 0, pour toi, ce sera plus un machin genre " < 0,x". La différence fondamentale, c'est que quand tu coupes le courant, tout retombe à 0. Mais attention, t'as quand même des infos qui restent... Des techniques sont développées pour récupérer les infos en Ram eu boot suivant. Enfin je crois. On est vraiment à la limite de ce que je connais...

raph6768
26/12/2009, 18h20
Pour récuper la ram : on fait une projection de la "raisonnance magnétique" du matériel. C'est compliqué à expliquer... mais quand on le met sur un plama, c'est vachement joli avec les couleurs qui changent au fur et à mesure de la reconstitution :lol:
Dans tous les cas, il ne doit y avoir que quelques labo qui ont la technique et le matériel pour réussir le tour et pouvoir exploiter les données...

ahlner
27/12/2009, 00h29
Agemen,

Merci pour ces précisions. Pour le magnétisme, qqchose m'est revenu après ma réponse, et cela m'a encore plus éclairé : le cycle d'hytérésis, avec ses seuils. Et comme pour un disque dur,le cycle d'hystérsis n'est pas rectangulaire, les trnasitions, les changements d'état sont moins brusques. Il y a des rampes au lieu de "verticales".
et à la réflexion, les verticales consomment plus d'énergie que les rampes.

Quant à l'existence des résidus de données dans la RAM (après mise hors tension), qu'elle soit statique (des bascules), ou dynamique (des condensateurs), j'en suis fortement étonné, et sceptique, puisque à la mise sous-tension, les zones mémoires non utilisées par un programme reçoivent des valeurs aléatoires.

Bien que cela soit éloigné du présent sujet, cela ma remémore une discussion sur Alionet à propos des processeurs quantiques.
Je ne sais si la miniaturisation est proche de la limite quantique, mais un jour ou l'autre, les concepteurs y seront confrontés.
A l'autre extrémité, je veux dire supraconductivité, ou le désordre cède la place à l'ordre, cela me rappelle un artcle de la revue NL Elektor. Il s'agissait de l'ordinateur Josephson. Il consommait 7 Watt et le groupe froid 15 KW, pour descendre à la température de l'heloum liquide (entre -260 et -273,16°C)

alhner

raph6768
27/12/2009, 00h42
Le jour où on aura des proc quantiques, le cryptage actuel de la RAM, swap ou d'une patition sera le dernier de nos problèmes...

xiloa
27/12/2009, 20h29
salux
en tous cas, merci pour cette solution. J'avais le souci depuis longtemps de crypter mes clefs usb et mon /home depuis un moment, mais je ne m'étais pas penché sur le problème du swap.