De nombreux services de stockage en ligne existent, avec l'intérêt d'une synchronisation entre tous nos appareils. Malgré toutes les promesses de sécurité et de respect de la vie privée, il est légitime de vouloir y ajouter une couche de protection. Cryptomator est justement prévu pour cela.
Pour chiffrer un fichier ou un message, il existe pléthore de solutions. Mais dès que l'on commence à vouloir s'attaquer à un dossier complet, les choses se complexifient.
Chiffrer les données dans les nuages
Heureusement, il existe des outils comme VeraCrypt qui a l'intérêt d'être relativement complet et disponible sur de nombreuses plateformes (voir notre analyse). Mais il reste un cas qui s'avère encore plus complexe : celui du chiffrement de données hébergées dans des services de stockage en ligne.
Car quelle que soit sa composition, un conteneur VeraCrypt prend la forme d'un fichier unique. Si vous le placez dans un répertoire synchronisé, il sera envoyé complètement au moindre changement sur un des fichiers qu'il contient. Si cela ne pose pas de problème sur des conteneurs de quelques dizaines ou centaines de Mo, surtout avec une connexion rapide, il en est tout autrement dès que l'on parle de plusieurs Go.
Certains services comme Dropbox ont une parade : la synchronisation différentielle. Ainsi, lorsqu'un fichier est modifié, seule la partie qui a changé par rapport à la version déjà en ligne est traitée. Mais cette pratique est encore rare, il faut donc le plus souvent trouver une autre solution.
EncFS : c'est compliqué
Si certains travaillent sur le chiffrement homomorphe, qui devrait révolutionner le genre (voir notre analyse), ce n'est pas encore une possibilité à exploiter à court terme :
Historiquement, on pouvait compter sur EncFS. Il s'agissait ici de monter l'équivalent d'un système de fichiers de manière à ce que chaque élément soit chiffré individuellement.
Comme nous l'avions détaillé en 2012, le système d'exploitation voyait ainsi des données chiffrées, alors que l'utilisateur accédait à un lecteur classique contenant ses dossiers et fichiers comme si de rien n'était. Le client de synchronisation, lui, ne s'occupait que des éléments qui étaient modifiés, évitant ainsi un envoi de données massif sans raison.
En 2014, un audit a révélé plusieurs failles de sécurité dans EncFS. Depuis, son développeur d'origine, Valient Gough, a repris le projet afin de l'améliorer. Mais la plupart des soucis relevés sont encore présents et aucune mouture 2.0 ne semble prévue à court terme. Plusieurs alternatives ont donc vu le jour.
Plusieurs alternatives existent...
Sous Windows, le projet Dokany a pris la suite de la bibliothèque Dokan permettant de créer simplement un système de fichiers. Elle était notamment utilisée par la branche classique de Boxcryptor, avant l'arrivée de la version 2.0 qui intègre un modèle par abonnement, une gestion du partage et du travail en équipe.
Dokany est implémenté dans de nombreux outils, notamment dans le système de fichiers du client de Keybase.io. D'autres sont sur les rangs, d'eCryptFS à SecureFS en passant par GoCryptFS. Mais rare sont les solutions simples, complètes et multiplateformes. C'est là que Cryptomator, qui est récemment passé à la version 1.3.0, montre son intérêt.
... Cryptomator offre une solution multiplaterfomes
Ce petit outil utilise Java 8 (la migration vers la version 9 est en cours), et fonctionne donc parfaitement sous Linux, macOS, Windows mais aussi sur des appareils mobiles sous Android (en bêta) ou iOS. L'application est open source et gratuite, proposant simplement un financement par des dons sur son site, sauf au sein de l'App Store d'Apple. Comptez ainsi 5,49 euros pour la version iOS.
Si l'utilisation de Java peut parfois effrayer, ici elle est relativement transparente, sauf si vous ne disposez pas d'un OS pour lequel il existe une version préparée. Il faudra alors en passer par l'utilisation d'un fichier .jar. Les adeptes de Linux apprécieront l'intégration à l'Archlinux User Repository (AUR), la présence d'un PPA pour Ubuntu et ses dérivés, mais aussi de paquets .deb et .rpm.
WebDAV, AES-256, du sel et quelques clés
Cryptomator repose sur l'utilisation d'un serveur WebDAV, là aussi pour faciliter l'intégration à de nombreux systèmes. Celui-ci n'est accessible que depuis la machine locale (et ne peut pas être utilisé depuis une machine distante), et permet de monter des conteneurs (coffres) à la manière de ce que l'on retrouve ailleurs.
Ceux-ci sont composés de chaque fichier chiffré individuellement, ainsi que leur nom et leurs métadonnées. L'organisation des répertoires est aussi obfusquée, avec un dispositif permettant d'aussi réduire leur longueur, afin d'éviter les problèmes lorsque l'OS impose certaines limites.
L'architecture utilisée est détaillée par ici. Elle repose principalement sur de l'AES-256 avec encapsulation des clés (RFC 3394) qui sont utilisées pour le chiffrement et l'authentification (HMAC). Elles sont propres à chaque conteneur et sont stockées dans un fichier JSON nommé masterkey.cryptomator
situé à la racine. Elles sont protégées par une Key-encryption key (KEK) dérivée du mot de passe salé via la fonction Scrypt.
Le code source est diffusé sur GitHub sous licence GPLv3. Les plus attentifs noteront d'ailleurs que l'on rencontre Aeris (développeur chez Cozy Cloud) au sein des contributeurs. Pour le moment, aucun audit complet n'a été mené.
Un outil simple et efficace...
Dans la pratique, l'outil est assez simple à utiliser et traduit en français à travers le service POEditor auquel chacun peut participer. L'interface se compose de deux parties : la liste des conteneurs sur la gauche, avec la possibilité d'en créer, d'en supprimer ou d'en ouvrir, et les différentes options à droite. Quand un conteneur est monté, la vitesse de transfert du contenu (dé)chiffré est affichée sous la forme d'un graphique.
La création d'un conteneur est assez simple : vous indiquez l'emplacement d'un fichier avec l'extension de votre choix, qui peut être le répertoire de synchronisation d'un service de stockage en ligne ou même un partage réseau, ainsi qu'un mot de passe. Un indicateur coloré à cinq éléments vous indiquera la force de ce dernier et vous préviendra que si vous l'oubliez, toutes vos données seront perdues.
Une fois cette phase terminée, vous devrez déverrouiller le conteneur, avec la possibilité d'activer certaines options. Le fait de monter un lecteur est ainsi optionnelle. Vous pourrez décider de le faire dans un second temps ou simplement récupérer l'URL du serveur WebDAV (flèche vers le bas à droite de Verrouiller le coffre) pour l'utiliser avec un client tiers. Une fonctionnalité qui s'avèrera très utile plus loin.
Il est aussi proposé de stocker le mot de passe pour déverrouiller le conteneur automatiquement au démarrage (encore expérimental), ou de choisir une lettre utilisée. Par défaut, elle est sélectionnée automatiquement.
Les paramètres de l'application permettent de choisir le port du serveur WebDAV et de vérifier les éventuelles mises à jour, mais rien de plus. L'ensemble se veut simple et efficace. De ce point de vue, c'est plutôt réussi.
On appréciera au passage une petite subtilité : la fermeture de l'application sera gérée différemment si au moins un conteneur est monté ou non. Dans le premier cas, elle sera réduite dans la barre des tâches, dans le second, elle sera tout simplement fermée.
... mais pas avec le client WedDAV de Windows
Lorsque l'on parle de stockage chiffré, un point est souvent oublié : celui des performances. En effet, en plus du transfert, le fichier doit être chiffré, ce qui n'est pas forcément transparent. Il est aussi intéressant d'analyser la façon dont se comporte l'outil lors d'une simple copie, d'autant plus lorsqu'il passe par un serveur WebDAV.
Lorsque nous avons commencé à analyser le fonctionnement de Cryptomator, nous étions sous Windows 10. Nous avons effectué une première série de tests avec 320 fichiers pour un total de 710 Mo vers des conteneurs situés sur le SSD principal de la machine, un autre connecté en USB 3.0 puis un NAS DS416Play de Synology relié par un câble RJ45 @ 1 Gb/s.
Nous n'avions alors pas relevé de souci particulier, seulement une chute du débit. Le chiffrement s'opérait simultanément à la copie dans les trois cas, mais l'on passait de 70 à 100 Mo/s sans chiffrement à un résultat situé entre 10 et 22 Mo/s avec, ce qui montre un impact réel. Cela ne gêne pas un usage au quotidien, mais il faut se préparer à souffrir un peu lors du transfert d'un grand nombre de fichiers ou d'opérations de compression.
Notre seconde série de tests était effectuée avec un fichier unique de pas moins de 3,27 Go. Et c'est dans ce cas que nous avons eu une mauvaise surprise : bien que la copie débute, aucune donnée n'est chiffrée dans un premier temps. Cela n'arrive que dans une seconde phase qui démarre au bout d'une vingtaine de secondes et pendant laquelle l'utilisateur peut être amené à se demander ce qu'il se passe. En effet, la fenêtre de copie de Windows parait bloquée à quelques instants de la fin et aucune autre information n'est donnée :
Cette opération s'effectue à un débit situé entre 35 et 45 Mo/s, mais le résultat pour l'ensemble du transfert est de 26,37 Mo/s, contre 176 Mo/s dans un même espace local non chiffré. À cela, il faut ajouter d'autres comportements gênants.
Ainsi, lors d'un premier accès à un fichier, pour le lire ou même le supprimer, nous constations une lecture préalable de ses données. De quoi retarder la procédure d'une vingtaine de secondes, sans que l'on ne sache ce qu'il se passe (à moins de regarder le graphique intégré à Cryptomator). Une sorte de cache se mettait ensuite en place, mais il n'était valable que jusqu'au prochain verrouillage du conteneur.
Nous avions d'abord pensé que l'architecture de Cryptomator et de son dispositif de chiffrement étaient en cause. Nous avons donc vérifié ce qu'il en était sous Debian 9 et avec un autre client WebDAV sous Windows, et là surprise : tout se passait bien. Ainsi, c'est simplement le comportement du client WebDAV intégré à Windows qui pose problème et ralenti le fonctionnement de l'ensemble.
Si vous voulez accéder à de gros fichiers, vous devrez donc apprendre à vous en passer, surtout qu'il impose une limite à 4 Go pour la taille des fichiers. Malheureusement, il n'existe pas à notre connaissance de client WebDAV gratuit et open source permettant de monter un lecteur. Vous pourrez néanmoins corriger ces problèmes en allant voir du côté de solutions payantes comme ExpanDrive, Netdrive, TNT Drive ou bien Mountain Duck.
Une intégration native à Mountain Duck et CyberDuck
Ce dernier cas est assez spécifique. En effet, l'équipe de Mountain Duck s'est récemment rapprochée de celle de Cryptomator afin de proposer une intégration native dans sa version 2.0 actuellement en bêta (Préférences > Mises à jour).
Ainsi, il peut servir à créer ou ouvrir directement des conteneurs Cryptomator stockés à distance depuis son interface. Pour rappel, ce petit outil vous permet en effet de monter un lecteur en se basant sur différents types de services : (S)FTP, WebDAV, Amazon S3, Azure, Dropbox, Google Drive, OneDrive, etc.
Nous avons néanmoins pu constater que le plus efficace était de continuer à utiliser Cryptomator comme serveur WebDAV et Moutain Duck seulement pour le montage du lecteur. Les performances sont en effet bien meilleures, ce qui s'est vérifié lors de tests avec notre fichier de 3,27 Go au sein d'un conteneur stocké localement :
Un outil pratique, mais limité par ses performances
Au final, on ne peut que recommander l'usage de Cryptomator. L'outil est simple, pratique, gratuit et open source. Son dispositif de chiffrement et l'accès aux données sont plutôt bien pensés, le tout étant adapté à un usage complémentaire à des services de stockage en ligne, depuis un ordinateur ou un appareil mobile.
Néanmoins, son impact sur les débits et les limites du fonctionnement de base de Windows ne peuvent que lui nuire et en font un outil assez peu adapté à l'utilisation au quotidien de gros fichiers, surtout avec cet OS. Si vous êtes concernés, nous ne pouvons que vous conseiller de le compléter avec un client WebDAV tiers qui permettra d'éviter les problèmes et de revoir les performances à la hausse. On s'étonne d'ailleurs que l'équipe n'ait pas choisi d'en informer ses utilisateurs clairement afin de leur éviter de rester sur une mauvaise impression.
Mais excepté ce point négatif, qui sera corrigé à terme par l'intégration de Dokany, Cryptomator est plutôt d'une bonne surprise. Il peut ainsi servir d'alternative à Boxcryptor pour ceux qui ne veulent pas en passer par un abonnement payant pour chiffrer leurs données dans des services de stockage en ligne, sans gestion d'équipe.