Nadim Kobeissi, un étudiant libanais de 21 ans résidant au Canada, a cherché un moyen simple et sûr qui permettrait aux utilisateurs de discuter en ligne en protégeant leurs conversations des regards indiscrets. « Petit génie de l'informatique doté d'une forte conscience citoyenne » comme il se décrit lui-même, le jeune étudiant de l'Université Concordia de Montréal a calculé qu'il passait cinq fois plus de temps à développer son projet Cryptocat qu'à potasser ses bouquins de sciences politiques et de philosophie.

A une époque où l'activisme politique se développe sur le web, Cryptocat souhaite fournir un environnement très sécurisé pour les systèmes de messagerie instantanée et contrer les gouvernements qui surveillent l'Internet pour débusquer des opposants. Les programmes de messagerie instantanée sont très populaires, mais, côté sécurité, ce ne sont pas des outils assez fiables pour les militants. Beaucoup de ces applications reposent sur le protocole SSL (Secure Sockets Layer), un protocole de chiffrement utilisé aussi pour sécuriser les transactions commerciales sur Internet. Les messages sont cryptés lors de la transmission, mais les conversations sont déchiffrées sur les serveurs sur lesquels tourne le service de messagerie, si bien que, potentiellement, des intrus pourraient avoir accès à leur contenu. Il y a bien des technologies de cryptage éprouvées pour la messagerie instantanée, comme PGP (Pretty Good Privacy) et OTR (Off The Record), un programme de chiffrement sous forme d'add-on compatible avec des applications de messagerie instantanée comme Pidgin et Adium. Mais le PGP peut être « difficile à utiliser pour les non-geeks », a estimé Nadim Kobeissi. OTR doit être téléchargé, installé et configuré, et il doit être activé chez les deux parties qui discutent pour que les messages soient cryptés.

Un chiffrement 256-bit AES

L'atout de Cryptocat est sa simplicité. Tout d'abord, une des versions du logiciel est basée sur le web, donc il n'est pas nécessaire de la télécharger. L'utilisateur crée une session de chat, choisit un pseudonyme, puis saisit une chaîne de caractères aléatoires afin de générer les clés de chiffrement 256-bit AES correspondant au système de cryptographie à clé publique qu'il utilise. Le cryptage et les clés de décryptage sont stockées dans le navigateur Web de l'utilisateur lui-même, si bien que le système assure une vraie protection d'un bout à l'autre de la chaîne. Selon le jeune étudiant, depuis peu les navigateurs Internet incorporent des moteurs JavaScript suffisamment puissants pour utiliser des clés de chiffrement très longues. Même si un attaquant parvient à s'introduire sur un serveur exécutant Cryptocat, les contenus n'auraient aucun sens et seraient impossibles à décrypter.  Nadim Kobeissi a ajouté d'autres fonctionnalités au client web, comme la possibilité d'inviter ses amis Facebook et d'envoyer des fichiers cryptés à une autre personne.