[Linux/web Apps] CryptBoard : l’outil de partage de fichiers et de textes chiffrés pour les crypto-sérieux
-
À tous les crypto anarchistes qui me lisent, voici un projet libre que vous pouvez héberger sur votre propre serveur, qui va vous permet de faire des « dingueries » comme dirait Elisabêth Borne. Cet outil s’appelle CryptBoard et n’est plus ni moins qu’un presse-papier chiffré permettant de copier-coller de manière sécurisée du texte et des fichiers et de les partager entre différentes machines.
Conçu pour permettre un excellent anonymat, CryptBoard utilise un chiffrement hybride RSA + AES côté client. Ainsi, le client fait une demande d’autorisation anonyme au serveur, et obtient un UID aléatoire du serveur puis chaque message est chiffré en AES avec une clé aléatoire de 256 bits.
Cette clé AES aléatoire est ensuite chiffrée par la clé RSA publique de l’utilisateur, et envoyée au serveur. Une fois que le destinataire reçoit le message du serveur, il déchiffre la clé AES avec sa clé privée RSA, puis décode le message codé AES
Les utilisateurs doivent partager leur UID et leur clé publique RSA via un lien ou un QR code pour pouvoir s’écrire et se lire, mais la clé privée, elle n’est pas partagée avec le serveur ni avec les autres clients.
De plus, l’intégrité de la clé publique et de l’UID peut être vérifiée visuellement en inspectant l’avatar généré à partir du hachage de la clé publique et de l’UID.
Ça parait un peu complexe raconté comme ça (lol) mais cette façon de faire permet de résoudre certaines problématiques liées au partage de fichiers ou de texte entre certaines machines et VM, ou machines contrôlées à distance, sans jamais avoir à rogner sur la sécurité. Et comme CryptoBoard se présente sous la forme d’un site web, pas besoin d’installer un outil pour partager des secrets comme des mots de passe.
Si vous voulez plus d’infos sur le chiffrement, cliquez ici. Son code est dispo sur Github, vous pouvez donc l’auditer ou l’améliorer si ça vous chante.
– Pour l’installer sur votre machine, vous devrez disposer de Docker et suivre la procédure suivante :
Tout d’abord, clonez le code comme ceci :
git clone https://github.com/MihanEntalpo/cryptboard.io.git
Installez Docker et Docker Compose si ce n’est pas déjà fait. Ainsi que Nginx.
Créez ensuite le fichier de config comme ceci :
cp web-app/.env.docker.example web-app/.env.docker
Et générez les clés privées et publiques nécessaire comme ceci :
ssh-keygen -t rsa -b 4096 -m PEM -f jwtRS256.key # Ne mettez pas de passphrase openssl rsa -in jwtRS256.key -pubout -outform PEM -out jwtRS256.key.pub
2 fichiers seront alors créés : jwtRS256.key et jwtRS256.key.pub
Ajoutez le contenu de ces fichiers dans les variables JWT_PUBLIC_KEY et JWT_PRIVATE_KEY dans le fichier .env.docker en utilisant les commandes suivantes :
LINE=$(cat ./web-app/jwtRS256.key | tr '\n' '$' | sed 's|\$|\\\\n|g;s|^|JWT_PRIVATE_KEY=|g'); sed -i "s|^JWT_PRIVATE_KEY.*|$LINE|g" -i ./web-app/.env.docker LINE=$(cat ./web-app/jwtRS256.key.pub | tr '\n' '$' | sed 's|\$|\\\\n|g;s|^|JWT_PUBLIC_KEY=|g'); sed -i "s|^JWT_PUBLIC_KEY.*|$LINE|g" -i ./web-app/.env.docker
Définissez les variables SERVER_HOST et SERVER_PORT dans le fichier .env.docker, pointer vers votre Nginx puis créez l’image Docker comme ceci :
./build-docker-images.sh
Et lancez le Docker Compose comme ceci :
./docker-compose.sh up -d
Rendez-vous ensuite sur l’URL http://127.0.0.1:PORT/ pour voir si tout roule.
Configurez ensuite Nginx en tant que reverse-proxy pour ce serveur local et activez SSL si nécessaire en utilisant le fichier conf/nginx/docker-proxypass.conf comme modèle pour votre configuration Docker.
Assurez-vous de définir le bon nom d’hôte, le port de proxy_pass, l’emplacement des fichiers de journal et les fichiers de clé et de certificat LetsEncrypt.
–> Et si vous avez la flemme de faire tout ça, et bien l’outil reste utilise ici :
-
Si quelqu’un a le temps de faire un tuto/démo de cet outil depuis le site web, ça serait peut-être une bonne idée, parce que le mécanisme de l’utilisation, me semble assez brumeux…
Mais c’est probablement moi qui n’ai pas bu assez de café ce matin.
-
J’opte pour la seconde proposition
Il suffit de tester avec 2 navigateurs différents.
Le premier user peut partager sa clé soit par le QR Code soit par le lien
L’autre user utilise ce lien et ajoute la clé du premier user :
Rien de plus simple
Voici une clé à ajouter pour tester :
-
-