• pyFC-GUI : La version 0.3 de pyFC arrive enfin !

     

     

    Voici (enfin) la nouvelle mouture de pyFC en version 0.3, avec au menu des nouveautés :

    •  Une "nouvelle" interface graphique (les allergiques à la ligne de commande n'ont plus d'excuses ! :-))
    •  La possibilité de choisir la taille des jeux de clés
    •  Une "surcouche" (optionnelle) de chiffrement en ajoutant un mot de passe (AES 256 bits) si vous le souhaitez en plus du chiffrement avec les jeux de clés
    • Une révision du code permettant un fonctionnement sous Windows qui n'a (presque) rien à envier à celui sous Linux

     

    Si vous n'avez pas encore lu mes 2 premiers articles sur pyFC, je vous conseille de le faire sans tarder, vous y trouverez pas mal d'informations que je ne re-détaillerai pas ici. Le 1er article se trouve ici et le 2nd .

     

    Petit rappel :

    pyFC permet de chiffrer vos fichiers ou répertoires en utilisant une/des opération(s) de type XOR entre votre fichier/répertoire à chiffrer et un ensemble de fichiers clés de plusieurs centaines de MBytes (voire GBytes) générés aléatoirement. Le fichier chiffré (qui sera un vrai/faux fichier pdf contenant la version chiffrée du fichier/répertoire traité) sera nommé selon le nom du fichier ou du répertoire d' origine (sans l'extension d'origine pour un fichier), et aura pour extension '.pdf', exemples :

    Avant chiffrement ==> Après chiffrement

             toto.doc ==> toto.pdf

           image.jpeg ==> image.pdf

             adam.pdf ==> adam.pdf

           /unDossier ==> unDossier.pdf

    Générer les clés de chiffrement sera donc la première étape à effectuer avant de pouvoir les utiliser pour protéger/chiffrer vos fichiers, mais en tout premier lieu, procédons à l'installation.

     

    Installation :

    Commencez par télécharger le fichier zip contenant l'arborescence de pyFC_V0.3 ici. Décompressez cette archive là où bon vous semble, vous obtiendrez alors un répertoire nommé pyFC_V0.3 qui contiendra tous les scripts et fichiers nécessaires.

    Pré-requis : pour la partie chiffrement en AES, il est nécessaire d'installer le module pycryptodome

    pip3 install pycryptodome sous Linux

    pip install pycryptodome sous Windows

    J'ai eu quelques soucis sous Linux Mint pour installer pycryptodome, problème résolu avec la ligne suivante :

    pip3 install pycryptodome --no-binary pycryptodome

    Pour l'interface graphique, il faut installer python3-tk sous Linux (pas besoin sous Windows, tkinter est inclus dans le pack d'installation standard...).

    Il semble que build-essential, setuptools et python3-dev soient aussi nécessaires à la bonne installation
    de ce module.
    Pour l'interface graphique, il y a besoin d'installer la librairie PIL (Pillow sous python3):

    pip3 install Pillow sous Linux 

    pip install Pillow sous Windows

    Je détaillerai ici uniquement le fonctionnement à partir de l'interface graphique. Si vous souhaitez plus d'informations sur l'utilisation en mode console (pyFC.py **options), je vous renvoie vers les articles du blog concernant les versions précédentes de pyFC, ainsi que vers la liste des commandes/options de pyFC que vous pourrez obtenir comme suit:

    python3 pyFC.py -help sous Linux

    python pyFC.py -help sous Windows

    L'installation est maintenant terminée, vous pouvez passer à la suite.

     

    1ère étape : la génération des clés :

    Je vais considérer ici que vous n'avez jamais créé aucun jeu de clés (avec une version précédente de pyFC, j'entends). Si toutefois vous avez déjà des jeux de clés existants, il est beaucoup plus simple de repartir de zéro - donc de supprimer ces jeux de clés ainsi que le répertoire .pyFC avec tout son contenu (il est situé dans votre /home/user, ou dossier utilisateur sous Windows) ! Je reconnais que ce manque de retro-compatibilité peut poser problème, si tel est le cas, n'hésitez pas à me laisser un commentaire ! Je pourrai vous guider pour récupérer vos clés existantes et les intégrer à cette nouvelle version 0.3, mais ça n'est pas quelque chose de prioritaire pour le moment pour moi à l'écriture de cet article.

    Placez-vous dans le répertoire ../pyFC_V0.3, puis dans votre console préférée donc, entrez :

    python3 pyFC-GUI.py (ou bien "python pyFC-GUI.py" sous Windows)

     

    Cela va démarrer l'interface graphique :

     

     

    Tout de suite après, la fenêtre modale destinée à choisir la taille du jeu de clés à créer va s'ouvrir automatiquement:

    D'ici, vous pouvez choisir la taille de votre jeu de clés (en jouant sur la taille de key1 uniquement, par pas de 50 MegaBYTES). Vous verrez se mettre à jour en direct la taille de chacune des autres clés. Les valeurs min et max permises pour key1 vont de 100 à 10000 MegaBYTES. Plus votre jeu de clés sera gros, plus il prendra du temps à la création. Personnellement, quelques centaines de Mega pour key1 me paraissent amplement suffisants, à chacun de voir...

    Vous pourrez modifier cette valeur comme bon vous semble avant chaque création d'un nouveau jeu de clés. Cliquez sur "Valider" quand vous avez choisi la valeur qui vous convient. Le bouton affiche "_Done_" pendant un court instant, puis la fenêtre se ferme, laissant place à la fenêtre de création d'un nouveau jeu de clés :


    A l'ouverture de cette fenêtre, un nom pour le nouveau jeu de clés est généré aléatoirement. Libre à vous de le changer si besoin. Ce nom ne doit pas déjà exister (autre jeu de clés portant ce nom) et comporter au moins 3 lettres. Un répertoire sera créé avec ce nom, vous devez donc respecter les règles de nommage standard en ce qui concerne l'utilisation des caractères spéciaux (le mieux étant de les éviter...).

    Si par erreur vous cliquez sur le bouton "Création du jeu de clés" avec un nom plus court que 3 lettres, ou un nom qui existe déjà, vous verrez le nom ainsi que le bouton clignoter en rouge en affichant le message d'erreur qui va bien, puis la fenêtre va se fermer. Il vous suffit alors de la ré-ouvrir en cliquant sur le bouton "Créer un nouveau jeu de clés" dans la fenêtre principale.

    Vous devez aussi choisir le répertoire dans lequel votre nouveau jeu de clés sera stocké ("Chemin vers le nouveau jeu de clés", utilisez le bouton "Changer..." pour cela). Quand cela est fait, cliquez sur le bouton "Créez le nouveau jeu de clés", vous verrez les barres de progression avancer :

    Attendez la fin du process, le bouton affichera "_Done_" un court instant quand la création du jeu de clés sera terminée, puis la fenêtre se fermera automatiquement.

    Vous pouvez maintenant aller vérifier que votre jeu de clés a bien été créé en cliquant sur le bouton "Informations des jeux de clés" dans la fenêtre principale. Une autre fenêtre modale va s'ouvrir :

    L'intérêt de cette fenêtre est surtout d'avoir une vue d'ensemble de tous vos jeux de clés et de vérifier lequel est actif. Vous pouvez maintenant fermer la fenêtre et passer au bouton suivant : "Choisir le jeu de clé actif" qui va ouvrir la fenêtre de sélection d'un jeu de clés :

    La liste de tous les jeux de clés existants va apparaitre en cliquant sur la Combobox. Le jeu de clés actif est marqué d'une étoile juste avant son nom (ici, keySet003). Pour chaque jeu, la taille de la 1ère clé est aussi notée entre crochets. Cliquez sur le bouton "Appliquer" quand vous avez fait votre choix, cela va fermer la fenêtre.

    Dernière fonction en ce qui concerne la gestion des jeux de clés, la suppression d'un jeu de clés. Pour cela, cliquez sur le bouton "Supprimer un jeu de clés" dans la fenêtre principale, vous verrez la fenêtre correspondante s'ouvrir :

     

    Pour pouvoir supprimer un jeu de clés, vous devez cocher la checkbox "Autoriser la suppression" afin de rendre le bouton "Supprimer" valide. Dans la combobox figureront tous les jeux de clés existant sauf le jeu de clés actif. Si vous n'avez qu'un seul jeu de clés, aucun n'apparaitront dans la liste. Comme pour toutes les autres fenêtre, celle-ci se fermera après le process de suppression si vous cliquez sur le bouton.

     

    2/ Chiffrement :

    Dans le panneau central de la fenêtre principale, cliquez maintenant sur le bouton "Chiffrer un fichier". La fenêtre de sélection de fichier va s'ouvrir :

     

    Vous ne pourrez sélectionner qu'un seul fichier à la fois. Si vous souhaitez chiffrer plusieurs fichiers en même temps, vous devrez les mettre dans un répertoire, et passer par la fonction "Chiffrer un répertoire". Une fois votre fichier sélectionné, la fenêtre de sélection va laisser place à la fenêtre de chiffrement proprement dite :

    Vous pouvez maintenant procéder au chiffrement directement en cliquant sur le bouton "Procéder au chiffrement". Attendez alors que la barre de progression arrive à 100% et que la fenêtre se ferme.

    Si vous le souhaitez, vous pouvez (avant de cliquer sur le bouton) entrer un mot de passe dans le textEdit "Ajouter un mot de passe (AES 256 bits)". Vous pourrez vérifier votre mot de passe qui sera masqué par des '*' par défaut en validant la checkbox correspondante.

    Si vous avez entré un mot de passe donc, en plus du chiffrement avec le jeu de clés, chaque "bloc RAW" (voir explications sur les blocs RAW dans mon 1er article sur pyFC) sera chiffré en AES avec une clé 256 bits. Si vous n'entrez pas de mot de passe, il n'y aura pas de 'seconde couche' de chiffrement en AES.

    La checkbox "Effacer le fichier d'origine" effacera le fichier d'origine après chiffrement si celui-ci s'est bien passé. Idem pour effacer le dossier d'origine si vous chiffrez un répertoire (les étapes et fenêtres sont exactement les mêmes, à quelques différences de texte près...). Dans notre cas, nous venons de chiffrer un fichier pdf, donc l'extension après chiffrement sera aussi 'pdf'. La notion d'effacement du fichier d'origine ne joue pas ici, puisque le fichier une fois chiffré écrasera automatiquement le fichier d'origine...

    Comme je l'ai dit quelques lignes plus haut, le chiffrement d'un répertoire se déroule exactement de la même manière que le chiffrement d'un fichier, je ne re-détaillerai donc pas cette étape.

     

    3/ Déchiffrement :

    Dans la fenêtre principale, cliquez maintenant sur le bouton "Déchiffrer un fichier". La fenêtre de sélection apparait :

     

    Ouvrez le fichier à déchiffrer, la fenêtre suivante va apparaître :

     

    Cliquez sur le bouton qui va bien pour procéder au déchiffrement. Attention, si un fichier a été chiffré avec un mot de passe, vous devrez le taper dans le textEdit "Utiliser un mot de passe..." avant de cliquer sur le bouton de déchiffrement. Il n'y a aucun moyen (autre que votre mémoire/connaissance de comment le fichier a été chiffré) de savoir si un fichier a été chiffré avec un mot de passe ou non. Idem pour le jeu de clés utilisé, cette information ne figure pas au sein du fichier chiffré. Si la clé utilisée est la bonne, et si le mot de passe (si il y en a un) est correct, alors tout se passe bien. Dans le cas contraire, le process de déchiffrement ne pourra pas aller au bout, et vous aurez un message d'erreur (en rouge dans le bouton "Procéder au déchiffrement") vous indiquant que le jeu de clés et/ou le mot de passe ne sont pas les bons. Aussi, la fenêtre de déchiffrement se fermera. Dans ce cas, pas de panique, le fichier chiffré n'aura pas été affecté, pour pourrez retenter avec un autre jeu de clés ou mot de passe. Si tout se passe bien, alors vous trouverez votre fichier ou répertoire d'origine là où était le fichier chiffré 'pdf'.

    Si vous n'aviez pas sélectionné l'option "Effacer le fichier d'origine", le fichier chiffré 'pdf' aura vu alors son extension renommée en '.pdfake' (pdf-fake), comme vous pouvez le voir dans l'image suivante :

     

    Si vous aviez coché la case, alors ce fichier aura été effacé à la fin du process de déchiffrement si celui-ci s'est bien passé.

     

    4/ Le panneau "Divers" :

    Dans le panneau de droite de la fenêtre principale, les 2 premiers boutons (Autorisation et interdiction d'accès à la configuration...) ont une action sous Linux essentiellement. Ils sont le pendant graphique des fonctions 'python3 pyFC.py -showconf'  et ' python3 pyFC.py -hideconf'. Ils permettent l'interdiction (mode par défaut) ou l'autorisation d'accès aux fichiers de configuration (répertoire ~/.pyFC et son contenu) ainsi qu'à toute l'arborescence des répertoires contenant les fichiers clés, même en lecture, ce qui est une protection supplémentaire non négligeable, mais que Windows n'est malheureusement pas capable de gérer ! Windows peut gérer les droits d'écriture, cacher des dossiers, mais aucunement interdire les droits d'accès et de lecture pour les fichiers ou répertoires d'un utilisateur lambda.

    Le dernier bouton enfin, "Configuration générale" :

    Sert tout simplement à adapter la taille de la police pour votre écran, et à la mémoriser.

     

    Voilà pour cette fois, j'espère que cette version 0.3 vous donnera l'envie de protéger un peu mieux vos données 'exposées'. Pour rappel, j'ai créé pyFC au départ pour chiffrer des fichiers que je voulais stocker dans le cloud, sans risque que quiconque puisse y mettre le nez.

    Pour ce qui est du code, je ne le présenterai pas ici pour la simple raison qu'il est beaucoup plus conséquent que ce que j'avais imaginé en passant de la version 0.2 à la version 0.3. Il y a dans cette version une quinzaines de fichiers python, plus les images et les fichiers de configuration. Je vous laisse explorer tout ça à votre temps, n'hésitez pas à laisser un commentaire si vous avez des questions/suggestions.

    Enjoy !


    Tags Tags : , , , , , , ,
  • Commentaires

    Aucun commentaire pour le moment

    Suivre le flux RSS des commentaires


    Ajouter un commentaire

    Nom / Pseudo :

    E-mail (facultatif) :

    Site Web (facultatif) :

    Commentaire :