Comme prévu, deux semaines après son annonce et suite à une première série d'améliorations, miniLock est disponible sur le Chrome Web Store. Il peut donc être testé plus facilement. Des portages sur Firefox et Safari sont prévus, mais pas encore disponibles. L'audit de sécurité effectué est accessible par ici.
Si Nadim Kobeissi, créateur de Cryptocat, a récemment lancé une campagne de Crowdfunding afin de renforcer le développement de son application, ce n'était pas son seul projet. Récemment, il a commencé à évoquer miniLock, qu'il a dévoilé de manière plus détaillée ce week-end à la conférence Hope X. Son but ? Rendre le chiffrement des données plus simple en se débarrassant des lourdeurs de PGP.
Nadim Kobeissi fait parler de lui depuis quelques années grâce à l'un de ses projets : Cryptocat. Le but de ce dernier est de permettre à n'importe qui de discuter de manière chiffrée, simplement, et sans rien avoir à installer. Cela était effectivement possible auparavant, mais il fallait souvent utiliser des outils plus ou moins ergonomiques tels que Jisti, Pidgin + OTR, etc.
Le chiffrement n'est pas simple, mais il est possible de revoir les procédures
S'il a rapidement fait face à des critiques concernant le développement et la sécurité de l'application, il a continué le projet, l'a fait évoluer, et a misé sur l'ouverture du code et une certaine franchise pour assurer l'avenir de son projet et son évolution. Il prévient qu'il n'est, comme tout outil du genre, pas infaillible, et détaille ce qu'il permet et ne permet pas, ainsi que les différents vecteurs d'attaques possibles.
Lors de la mise en place des applications Android et iOS, il y a aussi eu une période laissée à ceux qui voulaient analyser et améliorer le code afin de le renforcer, avant de publier des versions accessibles à tous. Et si le projet est toujours contesté par certains, notamment ceux qui s'opposent farouchement au chiffrement via JavaScript, il a réussi à convaincre une certaine communauté de soutiens et d'utilisateurs fidèles.
Actuellement, JavaScript fédère de plus en plus d'adeptes du côté du chiffrement, notamment avec l'arrivée de Google dans la danse, alors que de son côté, le W3C peaufine sa Web Crypto API.
Pour autant, cela n'a pour le moment pas suffi à motiver assez de monde pour la campagne de financement participatif mise en place récemment. Celle-ci a pour but de permettre à une équipe de développement de se constituer et de travailler sur l'évolution des différents clients. Avec un objectif de 45 000 dollars canadiens et des contreparties de base à 10, 20 ou 40 dollars canadiens, entre 1 000 et 2 000 soutiens suffiraient. Mais ils ne sont pour le moment que 179 et un peu moins de 5 000 dollars canadiens ont été récoltés, à 9 jours de la fin de la campagne.
Après Cryptocat, miniLock veut rendre l'échange de fichiers chiffrés plus simple
Quoi qu'il en soit, cela n'a pas empêché Nadim Kobeissi de travailler depuis quelques mois sur un projet dont il parle depuis peu et qu'il a dévoilé hier lors de la conférence Hope X : miniLock. Le but est ici de reproduire avec l'échange de fichiers ce qu'il a fait avec la messagerie instantanée, soit simplifier l'utilisation du chiffrement.
Et cette fois, il a semble-t-il appris de ses erreurs passées. En effet, dès l'annonce et la présentation officielle, le code était disponible (AGPL v3) et exploitable, accompagné de tests unitaires. Il a déjà été audité par certains et avant une mise en ligne d'une version prête à exploiter, une période de deux semaines va être respectée, là aussi afin de renforcer la sécurité si nécessaire. L'objectif visé est ainsi de permettre une installation facile d'ici le courant du mois d'août. On note d'ailleurs déjà deux changements annoncés : l'utilisation du codage base58 au lieu de base64 pour les ID publics, et la mise en place d'un procédé assurant à l'expéditeur qu'il est lui aussi anonyme.
Mais dans la pratique, qu'est-ce que miniLock ? Elle est, commeCryptocat, une application à utiliser au sein d'un navigateur. Elle sera dans un premier temps proposée uniquement sous Chrome et Chrome OS, mais les dérivés pour d'autres navigateurs devraient rapidement émerger. Son but est de vous permettre un chiffrement asymétrique de vos fichiers, comme avec PGP par exemple, mais d'en effacer toutes les contraintes.
En effet, l'utilisation de PGP implique en général la création d'une paire de clefs pour vos différentes identités, de les stocker et d'assurer la sécurité de la clef privée, de gérer les clefs publiques de vos amis, de les échanger, le tout avec des outils pas forcément toujours très simples à utiliser.
Un mot de passe complexe et central, un code ouvert et un projet à l'écoute...
Pour ce faire, Nadim Kobeissi a donc tenté de faire les choses différemment. Il a tout d'abord décidé de réduire la longueur des clefs privée et publique pour simplifier leur partage (44 caractères), notamment pour la clef publique, connue ici sous le petit nom de miniLock ID, que vous devrez diffuser largement, afin que vous puissiez recevoir et déchiffrer des fichiers. Il mise pour cela sur les courbes elliptiques et Curve25519 (via TweetNaCL), qui est déjà utilisée au sein de Cryptocat et d'autres outils.
Les clefs sont donc dérivées du mot de passe principal (via l'algorithme Scrypt appliqué sur un hash SHA-512), qui devra par contre être relativement complexe. Il utilise pour cela la bibliothèque zxcvbn de Dropbox, et ne validera aucun élément qui ne dépasse pas les 100 bits d'entropie, ce qui est relativement élevé. Vous pouvez d'ailleurs effectuer un test en ligne par ici.
Notez que si vous n'arrivez pas à trouver un mot de passe suffisamment complexe, miniLock vous en fournira un, basé sur un dictionnaire des 58 110 mots les plus populaires de la langue anglaise et composé de sept mots. Soit 111 bits d'entropie environ, et 2111 possibilités. Tous les détails sont donnés par ici pour les plus curieux.
Au final, l'ensemble paraît exploitable et plutôt cohérent. La volonté de vouloir remplacer un usage complexe par un mot de passe long qui sert de base a d'ailleurs en partie déjà été vue. Même si l'usage est bien différent, c'est notamment ce sur quoi repose en partie Sync de Bittorrent qui permet à chacun d'ajouter un dossier d'échange chiffré via le partage d'une simple clef secrète. Ici, on retrouve juste en plus une notion de clef publique simplifiant l'échange ponctuel de fichiers avec un tiers, ou même plusieurs destinataires.
... est-ce que cela sera suffisant pour satisfaire tout le monde ?
Reste maintenant à voir ce que tout cela donnera dans la pratique. L'utilisation par un nombre croissant de personnes devrait faire émerger les différents problèmes à résoudre et montrer si un mot de passe trop long ne risque pas de poser de problèmes à retenir, tout en assurant une sécurité suffisante. Espérons aussi que l'intégration à des services d'échange de fichiers pourra aussi être proposée rapidement, puisque c'est le seul élément manquant une fois celui-ci chiffré.
Cela montre néanmoins qu'un développeur peut faire bouger les lignes, et qu'avec un peu de bonne volonté et de travail en commun, le chiffrement, souvent jugé complexe, peut être largement simplifié.
Encore faudrait-il que les différents projets arrivent à fédérer des communautés suffisantes de développeurs, se fassent auditer de manière sérieuse et réussissent à se financer en toute indépendance. Autant dire que cela demandera sans doute un changement large dans les comportements, et de la bonne volonté de la part de chacun.
Vous retrouverez le code de miniLock par ici. La présentation de Kobeissi est accessible ci-dessous, alors que sa présentation au format PDF peut être téléchargée par là.