EncryptPad est une application de visualisation et d’édition de texte chiffré symétriquement. Grâce à son interface graphique et en ligne de commande simple, EncryptPad propose un outil pour chiffrer et déchiffrer des fichiers binaires sur le disque, tout en offrant des mesures efficaces pour protéger les informations. De plus, EncryptPad utilise le format de fichier OpenPGP RFC 4880 qui est largement adopté pour sa qualité. Contrairement à d’autres logiciels OpenPGP dont le but principal est le chiffrement asymétrique, l’objectif premier d’EncryptPad est le chiffrement symétrique.
Windows
Linux
Mac OS
Code base **multiplateforme : EncryptPad a été compilé sur trois systèmes d’exploitation populaires et peut être adapté à d’autres.
Portable : il suffit de copier l’exécutable sur une clé USB ou un disque réseau pour l’utiliser sur tous vos ordinateurs.
Convivial : EncryptPad est un éditeur de texte et un outil de chiffrement pour fichiers binaires, mais il enregistre des fichiers chiffrés, compressés et dont l’intégrité est protégée.
À code source ouvert avec un code base concis : vous pouvez lire le code ou demander à quelqu’un de confiance de le lire pour vous afin de vous assurer qu’il n’y a pas de porte dérobée et que vos informations sont en sécurité.
Format de fichier OpenPGP : vous pouvez chiffrer un fichier avec un autre outil (gpg par exemple) qui utilise ce format, et l’ouvrir ensuite avec EncryptPad, et vice versa.
Protection double : des fichiers clés générés aléatoirement en plus de phrases de passe.
Vous avez un fichier contenant des informations délicates telles que des noms de compte, des phrases de passe ou des numéros d’identification. Ce fichier est stocké sur un support sans protection, ou vous ne pouvez pas contrôler qui y accède, que ce soit au travail, sur un ordinateur portable lors de déplacements, une clé USB ou un disque nuagique.
Vous devez envoyer un fichier chiffré à quelqu’un avec qui vous avez prédéterminé un secret (une phrase de passe ou un fichier clé). Dans ce cas, vous devez échanger le secret en personne (pas par un protocole Internet accessible) pour que le fichier protégé soit déchiffré par le destinataire.
You are on public transport or a common area where somebody can see your screen.
Vous devez être protégé contre une attaque par force brute au cas où votre moyen de stockage tomberait dans les mains de quelqu’un. EncryptPad permet de générer une clé et de la stocker séparément des informations chiffrées. Une personne non autorisée aurait besoin de deux secrets pour ouvrir un fichier : la phrase de passe et la clé. Examinons cet exemple : vous stockez votre fichier chiffré sur une carte mémoire flash et vous le protégez par phrase de passe. De plus, vous protégez le fichier avec un fichier clé et stockez la clé sur les ordinateurs utilisés pour ouvrir le fichier. Si la carte mémoire flash est perdue, la phrase de passe ne suffira pas pour déchiffrer vos informations. Le fichier clé est aussi exigé, et il n’est pas sur la carte mémoire flash.
Vous devez envoyer un fichier à quelqu’un avec qui vous n’avez pas prédéterminé un secret partagé (une phrase de passe ou un fichier clé). Dans ce cas, il vous faut un chiffrement asymétrique avec des clés publique et privée. Heureusement, de nombreux outils pratiques sont adaptés à la tâche.
Vous êtes dans un transport en commun ou dans un espace public où quelqu’un peut voir votre écran.
EncryptPad est inefficace sur un ordinateur infecté par un logiciel espion ou un virus. Ne l’utilisez pas sur un ordinateur public, partagé ou compromis si vous n’avez pas confiance en sa sécurité.
IMPORTANT : avant d’utiliser EncryptPad, vous devez vous assurer qu’il est légal d’utiliser dans votre pays les techniques de chiffrement fournies par EncryptPad. Vous trouverez des informations pertinentes sur cryptolaw.org.
IMPORTANT : si vous avez oublié votre phrase de passe ou si vous avez perdu un fichier clé, rien ne peut être fait pour accéder à vos informations chiffrées. Il n’y a aucune porte dérobée dans les formats qu’EncryptPad prend en charge. Les développeurs d’EncryptPad n’assument aucune responsabilité en cas de fichiers corrompus ou invalides, conformément à la licence.
Le format est déterminé par l’extension du fichier. Les principales extensions des fichiers chiffrés sont GPG et EPD.
Ce type de fichier se conforme au format OpenPGP et est compatible avec les autres outils OpenPGP. Utilisez-le si vous devez ouvrir un fichier où vous ne disposez pas d’EncryptPad. Le format ne prend pas en charge la protection double (fichier clé + phrase de passe). Vous devez donc choisir entre un fichier clé et une phrase de passe, mais ne pouvez pas utiliser les deux. De plus, il ne peut pas enregistrer le chemin du fichier clé dans le fichier chiffré. Cela signifie que chaque fois que vous ouvrirez un fichier chiffré avec un fichier clé, l’application vous demandera quel fichier clé utiliser.
Format propre à EncryptPad. Les autres logiciels OpenPGP ne pourront pas l’ouvrir à moins que le fichier n’ait été protégé que par une phrase de passe. Si seule la protection par phrase de passe a été utilisée, le fichier est en fait un fichier GPG (voir la section GPG ci-dessus). Cependant, si la protection par fichier clé est utilisée, c’est un fichier GPG dans un conteneur WAD. Consulter le chapitre suivant pour plus de détails.
Type | Caractéristique | Prise en charge | Chemin du fichier clé\* | Compatible OpenPGP | Format de fichier |
---|---|---|---|---|---|
GPG | Phrase de passe | oui | n.d. | oui | Fichier OpenPGP |
GPG | Fichier clé | oui | non | oui | Fichier OpenPGP |
GPG | Fichier clé et phrase de passe | non | n.d. | n.d. | n.d. |
EPD | Phrase de passe | oui | n.d. | oui | Fichier OpenPGP |
EPD | Fichier clé | oui | oui | non | Imbriqué : WAD/OpenPGP |
EPD | Fichier clé et phrase de passe | oui | oui | non | Imbriqué : OpenPGP/WAD/OpenPGP |
* L’emplacement du fichier clé se trouve dans l’en-tête d’un fichier chiffré afin que l’utilisateur n’ait pas à l’indiquer lors du déchiffrement.
Dans un chiffrement symétrique, la même séquence est utilisée pour chiffrer et pour déchiffrer les données. L’utilisateur ou une autre application fournie habituellement la séquence sous la forme d’une phrase de passe saisie ou d’un fichier. En plus des phrases de passe saisies, EncryptPad génère des fichiers avec des séquences aléatoires appelés « fichiers clés ».
Quand l’utilisateur crée un fichier clé, EncryptPad génère une séquence aléatoire d’octets, demande une phrase de passe à l’utilisateur, chiffre la séquence générée et l’enregistre dans un fichier.
Le format du fichier est OpenPGP. D’autres applications OpenPGP peuvent aussi créer et ouvrir les fichiers clés EncryptPad comme les lignes de commande ci-dessous le démontrent.
Quand EncryptPad génère un nouveau fichier clé, il est approximativement équivalent à la commande gpg2
suivante.
pwmake 1024 | gpg2 -c --armor --cipher-algo AES256 > ~/.encryptpad/foo.key
pwmake
génère une séquence aléatoire que gpg2
chiffre à son tour. Il demandera la
phrase de passe pour chiffrer la séquence.
Quand vous utilisez cette clé pour chiffrer test3.txt
, la commande gpg
équivalente est comme suit :
gpg2 --decrypt ~/.encryptpad/foo.key \
| gpg2 --passphrase-fd 0 --batch -c --cipher-algo AES256 \
-o /tmp/test3.txt.gpg /tmp/test3.txt
Le premier processus gpg2
déchiffre foo.key
et le dirige vers le descripteur 0 du second processus
par un opérateur de transfert de données . gpg2
lit la séquence du descripteur avec --passphrase-fd 0
.
Quand EncryptPad ouvre le fichier chiffré protégé avec foo.key
, les commandes gpg
équivalentes sont
gpg2 --decrypt ~/.encryptpad/foo.key \
| gpg2 --passphrase-fd 0 --batch --decrypt \
-o /tmp/test4.txt /tmp/test3.txt.gpg
Comme vous pouvez le voir, les autres applications OpenPGP peuvent aussi utiliser les clés EncryptPad.
Un fichier enregistré peut avoir trois structures différentes selon le mode de protection :
Phrase de passe seulement (une phrase de passe est utilisée pour protéger un fichier, mais aucune clé n’est spécifiée). Le fichier est un fichier OpenPGP ordinaire.
Clé seulement (une phrase de passe n’est pas définie, mais un fichier clé est utilisé pour la protection). Le fichier est un fichier WAD. WAD est un format simple qui combine plusieurs fichiers binaires en un seul. Vous pouvez ouvrir un fichier WAD avec Slade. Il contient deux fichiers :
__X2_KEY
est un fichier texte en clair contenant le chemin de la clé si l’option « Emplacement de clé persistante dans le fichier chiffré » est activée. Sinon, il a une taille de zéro.Protégé par phrase de passe et clé. Le fichier produit est un fichier OpenPGP contenant un fichier WAD tel que décrit en 2.
Si une URL CURL est précisée dans le champ **Chemin du fichier clé de la boîte de dialogue Définir une clé de chiffrement, EncryptPad essaiera de lancer un processus curl pour télécharger la clé à partir d’un hôte distant. Si vous souhaitez utiliser cette fonction, vous devez définir le chemin de l’exécutable CURL dans les paramètres d’EncryptPad.
Examinons un scénario d’utilisation : en voyage, vous ouvrez un fichier chiffré sur votre ordinateur portable. Si vous protégez le fichier avec une phrase de passe et une clé, et que votre portable est perdu ou volé, le malfaiteur pourra attaquer votre fichier par force brute, car la clé est aussi stockée sur l’ordinateur portable. Pour empêcher cela, EncryptPad prend les mesures suivantes :
Si le fichier tombe dans les mains d’un malfaiteur, il devra d’abord attaquer par force brute la phrase de passe afin d’obtenir l’URL de la clé et les paramètres d’authentification. Dans la mesure où une attaque par force brute prend beaucoup de temps, l’utilisateur pourra retirer la clé ou changer l’authentification afin que les paramètres précédents deviennent désuets.
encryptcli est l’exécutable pour chiffrer ou déchiffrer des fichiers à partir de la ligne de commande. Exécutez-le sans arguments pour obtenir une liste des paramètres proposés. Ci-dessous un exemple de chiffrement d’un fichier avec une clé :
# générer une nouvelle clé et la protéger avec la phrase de passe « clé ».
# --key-pwd-fd 0 pour lire la phrase par de la clé à partir de descripteur 0
echo -n "clé" | encryptcli --generate-key --key-pwd-fd 0 ma_clé.key
# chiffrer texte_clair.txt avec ma_clé.key créé ci-dessus.
# La phrase de passe de la clé est envoyé par le descripteur de fichier 3
cat texte_clair.txt | encryptcli -e --key-file ma_clé.key \
--key-only --key-pwd-fd 3 -o texte_clair.txt.gpg 3< <(echo -n "clé")
Des fichiers binaires portables sont proposés pour Windows et Apple. Ils peuvent être copiés sur une clé USB ou placés sur un disque réseau.
Utiliser des empreintes pour recevoir des clés gpg pour EncryptPad et Botan
gpg --recv-key 621DAF6411E1851C4CF9A2E16211EBF1EFBADFBC
gpg --recv-key 634BFC0CCC426C74389D89310F1CFF71A2813E85
Installer les paquets AUR ci-dessous :
pacaur
installe botan-stable
automatiquement comme dépendance d’encryptpad
.
Alin Andrei de webupd8.org à gentiment créé des paquets EncryptPad pour plusieurs versions de Linux. Voir les instructions d’installation ci-dessous :
Utiliser les commandes ci-dessous pour installer les paquets :
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt update
sudo apt install encryptpad encryptcli
Ci-dessous se trouvent les étapes pour vérifier les hachages SHA-1 des fichiers sources dans Launchpad webupd8 PPA, utilisés pour construire les paquets. Vous devez idéalement être familier avec les PPA.
1. Télécharger un des fichiers changes
ci-dessous selon votre version d’Ubuntu. La version du paquet était 0.3.2.5 au moment d’écrire ceci. Veuillez la remplacer avec la version la plus récente que vous installez.
Yakkety
wget https://launchpadlibrarian.net/282249531/encryptpad_0.3.2.5-1~webupd8~yakkety1_source.changes
Xenial
wget https://launchpadlibrarian.net/282249418/encryptpad_0.3.2.5-1~webupd8~xenial1_source.changes
Vivid
wget https://launchpadlibrarian.net/282249098/encryptpad_0.3.2.5-1~webupd8~vivid1_source.changes
Trusty
wget https://launchpadlibrarian.net/282247738/encryptpad_0.3.2.5-1~webupd8~trusty1_source.changes
2. Télécharger le fichier tarball avec le fichier « changes » et sa signature :
wget https://github.com/evpo/EncryptPad/releases/download/v0.3.2.5\
/encryptpad0_3_2_5_webupd8_ppa_changes.tar.gz
wget https://github.com/evpo/EncryptPad/releases/download/v0.3.2.5\
/encryptpad0_3_2_5_webupd8_ppa_changes.tar.gz.asc
3. Obtenir et vérifier la clé de version EncryptPad Release
:
gpg --recv-key 634BFC0CCC426C74389D89310F1CFF71A2813E85
4. Vérifier la signature du fichier tarball :
gpg --verify encryptpad0_3_2_5_webupd8_ppa_changes.tar.gz.asc
5. Extraire le contenu :
tar -xf encryptpad0_3_2_5_webupd8_ppa_changes.tar.gz
6. Comparer le fichier « changes » pour votre version d’Ubuntu avec le fichier de l’étape 1. Les hachages SHA devraient correspondre.
diff encryptpad_0.3.2.5-1~webupd8~yakkety1_source.changes \
encryptpad0_3_2_5_webupd8_ppa_changes/encryptpad_0.3.2.5-1~webupd8~yakkety1_source.changes
Modifier la variable d’environnement de session PATH afin d’inclure l’ensemble d’outils Qt et Python. mingw32-make, g++, qmake, python.exe devraient se trouver dans le chemin de recherche globale de votre session bash Git. Personnellement, je modifie bash.bashrc et ajoute une ligne comme PATH=$PATH:/c/Python35-32:…
afin de ne pas polluer la variable PATH à l’échelle du système.
Extraire les fichiers sources d’EncryptPad dans un répertoire.
Exécuter le script configure.sh sans paramètres pour voir les options proposées. Pour tout compiler :
./configure.sh --all
ou pour des fichiers binaires localisés
./configure.sh --all-cultures
Le système Makefiles utilise uname pour identifier le système d’exploitation et la plate-forme. Vous pourriez avoir à modifier les paramètres uname dans ./deps/makefiles/platform.mak pour que cela fonctionne. Consultez la documentation Makefiles et le script configure.sh si vous éprouvez des problèmes.
Si la compilation a réussi vous devriez voir l’exécutable ./bin/release/EncryptPad.exe
Prendre note que si vous voulez qu’EncryptPad fonctionne en un seul exécutable sans dll, vous devez compiler le d’applications Qt vous-même de façon statique. Cela prend quelques heures. De nombreuses instructions décrivant comment accomplir cela se trouvent sur Internet. L’article le plus populaire recommande d’utiliser un script PowerShell. Bien qu’il soit très pratique (je l’ai utilisé une fois), on ne veut pas toujours mettre à niveau son PowerShell et installer les lourdes dépendances qui viennent avec. Et donc, la fois d’après, j’ai lu le script et j’ai tout fait manuellement. Heureusement qu’il n’y avait pas trop d’étapes.
C’est plus facile que de compiler sous Windows. Tout ce que vous avez à faire est d’installer Qt, Python et d’exécuter :
./configure.sh --all
./configure.sh --all --use-system-libs
Compilation avec des liens dynamiques vers les bibliothèques. Elle utilise aussi Botan
et Zlib
installés sur le système plutôt
que de compiler leur code source sous deps
. Sous Ubuntu, installer les
paquets « libbotan1.10-dev » et « zlib1g-dev » avant de compiler.
Installer les dépendances et outils :
dnf install gcc make qt5-qtbase-devel gcc-c++ python libstdc++-static glibc-static
PATH=$PATH:/usr/lib64/qt5/bin/
export PATH
Ouvrir le répertoire encryptpad :
./configure.sh --all
Pour une compilation dynamique en utilisant les bibliothèques système :
dnf install botan-devel
./configure.sh --all --use-system-libs
EncryptPad vérifie la présence d’un sous-répertoire nommé encryptpad_repository
dans le répertoire de l’exécutable. S’il existe, il est utilisé pour les paramètres et les fichiers clés. Le répertoire .encryptpad
situé dans le profil de l’utilisateur est alors ignoré. L’exécutable EncryptPad et encryptpad_repository
peuvent être copiés vers un support amovible, et ainsi être utilisés sur plusieurs ordinateurs. Il convient de noter qu’il est moins sécuritaire de conserver sur le même support amovible documents chiffrés et fichiers clés. Séparez-les si possible.
Après avoir été saisis, une phrase de passe et un sel aléatoire sont hachés avec un algorithme S2K. Le résultat est utilisé comme clé de chiffrement pour chiffrer ou déchiffrer le fichier. Une réserve de ces résultats S2K est générée chaque fois que l’utilisateur saisit une nouvelle phrase de passe. Cela permet d’enregistrer ou de charger plusieurs fois les fichiers protégés par cette phrase de passe sans l’avoir. La taille de la réserve peut-être changée dans la boîte de dialogue Préférences. Au moment d’écrire ceci, la dernière version a une valeur par défaut de 8. Cela signifie que vous pouvez enregistrer un fichier 8 fois avant qu’EncryptPad ne vous demande de saisir la phrase de passe de nouveau. Vous pouvez augmenter ce chiffre, mais cela aura un impact sur les performances, car les algorithmes S2K comprenant de nombreuses itérations sont lents par nature.
EncryptPad utilise les cadres d’applications et les bibliothèques suivants :
Tous les téléchargements associés à EncryptPad sont signés avec la clé OpenPGP suivante :
EncryptPad (Releases) 2048R/A2813E85
software@evpo.net
Empreinte de la clé = 634B FC0C CC42 6C74 389D 8931 0F1C FF71 A281 3E85
J’ai aussi un certificat de signature de code délivré par une autorité de certification (CA). Pour établir une connexion entre mon certificat CA et la clé OpenPGP ci-dessus, j’ai créé un exécutable signé avec le certificat CA contenant les empreintes et la clé OpenPGP. Vous trouverez ca_signed_pgp_signing_instructions
dans les téléchargements. J’ai en fait créé un pont de confiance entre mon certificat CA et la clé OpenPGP.
Il y a plusieurs raisons pour lesquelles je n’ai pas simplement utilisé le certificat CA :
ca_signed_pgp_signing_instructions
.EncryptPad est un logiciel libre et gratuit : vous pouvez le redistribuer ou le modifier selon les conditions de la licence générale publique GNU telle que publiée par « Free Software Foundation », soit la version 2 de la licence, soit toute version ultérieure (à votre gré).
EncryptPad est distribuée en espérant qu’elle sera utile, mais SANS GARANTIE ; sans même la garantie tacite de QUALITÉ MARCHANDE ou D’ADÉQUATION À UN BUT PARTICULIER. Voir la licence générale publique GNU pour plus de détails.
Si votre question concerne EncryptPad, veuillez l’envoyer à la liste de diffusion encryptpad@googlegroups.com reliée au groupe public de discussion.
Gestionnaire de bogues et contributions : github.com/evpo/EncryptPad/issues
Pour tout autre sujet, contacter Evgeny Pokhilko software@evpo.net