Page 1 sur 1

Protéger le contenu de sa Carte SD (Raspbian)

Posté : lun. 29 févr. 2016 17:51
par Louis
Bonjour,

Je rencontre une difficulté que j'ai du mal à surmonter.
Je possède un Pi 2. Au démarrage, ce Pi exécute un programme Python qui permet de vérifier continuellement si je reçois de nouveaux mails.
Ce programme Python se situe dans un le dossier /home/pi/mail
Le programme s'exécute bien à chaque démarrage.

Dans mon programme sont inscrits en clair mon identifiant et mon mot de passe qui permettent au Pi de se connecter à ma boîte mail.
import poplib
mail_Louis="louis@framboise314.fr"
mot2passe="doitencoreprogresser"
...
Ma question est la suivante :
"Comment empêcher une personne qui récupèrerait ma carte SD de lire le contenu du programme Python ?"
Ou de manière générale : "Peut-on lire avec un ordinateur tournant sous Linux, le contenu des dossiers du Pi ?"

Pourquoi cette question ?
Je suis utilisateur Linux depuis seulement quelques mois. J'utilise d'habitude Windows (shame on me). J'ai il y a peu, récupéré le disque dur de mon ancien ordinateur, et ai réussi à ouvrir tous les fichiers sur un nouvel ordinateur sans avoir à entrer de mot de passe. Il doit bien y avoir un moyen de protéger un fichier en lecture sans pour autant empêcher le programme de se lancer au démarrage ?

Solution suivie
J'ai regardé du côté des droits utilisateurs. Un post de maxty01 explique notamment que la fonction 'chmod' permet de modifier les droits.
Le "r" signale que le fichier peut être lu
Le "w" signale que le fichier peut être écrit
Le "x" signale que le fichier peut être exécuté
J'essaie donc de rendre mon fichier exécutable mais voudrait empêcher qu'il puisse être lu ou modifié sans se connecter préalablement l'utilisateur qui va bien : je n'ai pas envie qu'une personne qui prendrait ma carte SD puisse récupérer mes données de connexions mails.

Quel est votre avis ?

Merci d'avance :)

Bien cordialement,

Louis

Re: Protéger le contenu de sa Carte SD (Raspbian)

Posté : lun. 29 févr. 2016 18:31
par maxty01
Bonsoir,

Puisque tu as suivi l'un de mes post, je me permets de répondre. :lol: :lol: :lol:
Louis a écrit :Ma question est la suivante :
"Comment empêcher une personne qui récupérerait ma carte SD de lire le contenu du programme Python ?"
Ou de manière générale : "Peut-on lire avec un ordinateur tournant sous Linux, le contenu des dossiers du Pi ?"
Dans l'état, rien ne peut empêcher quelqu'un de récupérer le contenu de ta carte SD.
Oui, on peut lire aisément le contenu d'une carte SD d'un RPI depuis un ordinateur tournant sous Linux (je le fait parfois).
Louis a écrit :Solution suivie
J'ai regardé du côté des droits utilisateurs. Un post de maxty01 explique notamment que la fonction 'chmod' permet de modifier les droits.
Le "r" signale que le fichier peut être lu
Le "w" signale que le fichier peut être écrit
Le "x" signale que le fichier peut être exécuté
J'essaie donc de rendre mon fichier exécutable mais voudrait empêcher qu'il puisse être lu ou modifié sans se connecter préalablement l'utilisateur qui va bien : je n'ai pas envie qu'une personne qui prendrait ma carte SD puisse récupérer mes données de connexions mails.
Ce n'est pas la bonne méthode.
Les différents attributs (RWX) ne fonctionne que sur un système fonctionnel, le fait de lire ta carte SD avec une ordi Linux, on peut outrepasser ces droits.

Pour moi, la bonne méthode serai d'utiliser un chiffrement.
Chiffrer le disque (ou la SD) sur un RPI va se révéler plus compliqué.
J'opterai pour un chiffrement de fichier avec PGP, mais cela implique une intervention humaine à chaque démarrage pour débloquer le dossier.

Un autre solution, serai de mettre un fichier de conf dans le dossier /tmp, à condition de mettre le /tmp en RAM.
Cela aura pour avantage de ne pas jouer avec un chiffrement.
L'avantage/désavantage est que le dossier /tmp est automatiquement supprimé lors de l'arrêt du RPI puisque le dossier est en RAM.
Un autre avantage est que même si le RPI est toujours alimenté, le dossier ne suit pas la carte SD puisque la RAM est sur le RPI.
Le désavantage est qu'une intervention humaine est nécessaire à chaque redémarrage (pour créer le fichier avec les données sensibles dans /tmp/).

Bonne soirée,

Re: Protéger le contenu de sa Carte SD (Raspbian)

Posté : lun. 29 févr. 2016 20:35
par destroyedlolo
Le ext4 permet le chiffrement et la solution la plus simple est évidement de crypter tout le FS (enfin, pour peut que l'OS ai été construit correctement et peu booter dessus) ... sauf que c'est super mauvais pour les perfs.

Je préconiserais donc alors d'utiliser une petite partition FS qui contient uniquement les données critiques (mot de passe, config, ...). De plus, il faut aussi activer le cryptage hard ... pour peu que les Broadcom sachent le faire.

Re: Protéger le contenu de sa Carte SD (Raspbian)

Posté : lun. 29 févr. 2016 21:48
par Louis
Merci pour vos réponses Destroyedlolo et Maxty01.

Mon objectif est de rendre le Pi distant le plus indépendent possible : il est très loin de moi. Je ne peux pas interagir physiquement avec lui, son but est qu'il réagisse aux courriels qu'il reçoît. Donc je ne suis pas très chaud pour les solutions PGP et RAM.

Je n'ai pas très bien compris la méthode ext4 ? Tu me proposes de recompiler l'OS avec mes programmes au démarrage ? Ca me paraîtrait une super idée ! Mais comme tu dis, je risque d'en baver. Qu'est ce que la partition FS :?

Ou alors peut être que je devrais laisser les indentifiants et mdp en clair mais que je devrais chiffrer l'intégralité des échanges courriels ? Mais comment chiffrer mes échanges ? La méthode de déchiffrage serait forcément elle aussi en claire (ou si je passe par des clefs PGP, la clef privé sera en clair sur le Pi ce qui perd tout son intérêt). Hummm pas facile.

Pour simplifier la chose, je ne cherche pas à empêcher un hacker de niveau avancé de récupérer mes données, plutôt à me protéger contre des utilisateurs de niveau faible à intermédiaires.

Re: Protéger le contenu de sa Carte SD (Raspbian)

Posté : lun. 29 févr. 2016 22:06
par maxty01
Bonsoir,

Dans ce cas, je suis d'avis de chiffrer les données, comme le dit destroyedlolo.

Tu peux effectivement créer une petite partition sur la quelle se trouvera les données sensibles.

Il est possible d'automatiser le processus grâces à des scripts.

Je souhaiterai également avoir plus d'info concernant son indépendance ?
Est-ce qu'il sera accessible via internet ? si c'est le cas, tu peux y accéder via SSH.

Bonne soirée,

Re: Protéger le contenu de sa Carte SD (Raspbian)

Posté : lun. 29 févr. 2016 23:25
par destroyedlolo
Louis a écrit :Je n'ai pas très bien compris la méthode ext4 ?
Avec EXT4_FS_ENCRYPTION dans un kernel 4.2 ou plus, il est possible d'avoir un File System (FS) encrypté.
Par contre, je ne peux pas t'aider sur la manière de le configurer car je ne l'utilise pas (encore :D)
Louis a écrit :Tu me proposes de recompiler l'OS avec mes programmes au démarrage ? Ca me paraîtrait une super idée ! Mais comme tu dis, je risque d'en baver.
C'est plus simple que ça :
  • tu dois avoir un kernel avec EXT4_FS_ENCRYPTION activé (et comme je le disais, avec l'encryption hard si tu ne veux pas te retrouver avec machine aussi lente qu'un windows moyen dont le disque n'a jamais été défragmenté).
  • il te faut créer une partition avec un EXT4 encrypté. Tous ce que tu placeras dans cette partition ne sera lisible que sur ton Rasp mais plus en montant la carte sur un PC
Il faut que tu vois avec ta distribution si son kernel à EXT4_FS_ENCRYPTION activé.
Avec un peu de chance, tu peux essayé un

Code : Tout sélectionner

zcat /proc/config.gz | grep EXT4_FS_ENCRYPTION
S'il te répond

Code : Tout sélectionner

EXT4_FS_ENCRYPTION=y
c'est gagné.
Dans le cas contraire, c'est vrai que si tu n'as pas l'habitude de recompiler un kernel, c'est un peu touchy.
Louis a écrit : Qu'est ce que la partition FS :?
Une phrase dont il manque la moitié : je voulais dire une partition avec un FS encrypté :( .
Louis a écrit :La méthode de déchiffrage serait forcément elle aussi en claire (ou si je passe par des clefs PGP, la clef privé sera en clair sur le Pi ce qui perd tout son intérêt). Hummm pas facile.
Ben ... dans tout les cas, il faudra à un moment ou a un autre qu'elle soit en clair. Mais si tu la met sur un FS crypté, elle ne sera lisible que sur ton PI ... t'aura plus qu'a te focaliser sur la sécurité de ce dernier.
Louis a écrit :Pour simplifier la chose, je ne cherche pas à empêcher un hacker de niveau avancé de récupérer mes données, plutôt à me protéger contre des utilisateurs de niveau faible à intermédiaires.
Faut être clair : Linux est sécurisé pour évité une intrusion à distance sur un système qui tourne, mais n'importe qui avec un peu d'expérience peut entrée s'il a un accès physique à la machine (c'est fait pour, lorsqu'on oublie le mot de passe root). Sur mon BananaPI, je pourrai l'éviter en mettant un mot de passe sur le uboot ... je ne sais pas s'il y a la même chose sur un Raspberry.

Re: Protéger le contenu de sa Carte SD (Raspbian)

Posté : mar. 1 mars 2016 09:20
par Louis
A nouveau, merci pour vos réponses complètes.
Est-ce qu'il sera accessible via internet ? si c'est le cas, tu peux y accéder via SSH.
Le Pi sera situé derrière un firewall que je ne peux pas paramétrer. Une fois installé, je ne pourrais y accéder via SSH (en établissant un tunnel VPN avec le firewall) qu'à intervalles de temps très espacés. Or j'ai besoin d’interagir avec le Pi à n'importe quel moment.
J'ai choisi de communiquer avec le Pi par mail car : c'est gratuit et pacre que le firewall bloque les communications externes (à l'exception de quelques accès VPN comme dit plus haut).

Je suis sous Wheezy. J'ai essayé

Code : Tout sélectionner

zcat /proc/config.gz | grep EXT4_FS_ENCRYPTION
, il m'a répondu que le fichier n'existait pas.
La solution qui consiste à encrypter le File System me semble convenir parfaitement. J'ai bien compris que suivant la manière dont j'allais l'implémenter, je risquais d'avoir des performances dégradées. Une seule manière pour moi de valider ces performances dégradées : les tester.

J'essaie de réunir des informations sur différents sites avant de me lancer :
https://lwn.net/Articles/639427/
http://www.stefan-seelmann.de/wiki/cryptsetup
http://blog.quarkslab.com/a-glimpse-of- ... ption.html
http://paxswill.com/blog/2013/11/04/enc ... pberry-pi/

Si vous connaissez des tutos bien faits à ce sujet, je suis preneurs de vos recommandations !

Merci :)