Les réseaux sociaux gardent vos traces

Toute personne interessé par l’informatique sait que la sécurité sur Internet est un problème majeur pour les ingénieurs qui développent des sites et applications web. Qu’en est-il des informations que vous partagez avec vos clients, amis et autre ? Sachez que quand vous écrivez un message sur Skype ou Facebook, des traces de vos messages sont trouvable assez facilement. Facebook (et Skype en l’occurrence) garde des logs (historique) de vos messages privés. Vous pouvez à tout moment consulter les archives et retrouver les messages que vous avez envoyé et reçu depuis la création de votre compte.

Comment partager des données sensibles ?

Il y a plusieurs types de données sensibles et différentes solutions à fin de partager des données secretes ou protégées. Evidemment le simple email ne garantit pas la suppression du message après lecture ni la transmission sécurisée des informations. Un email est toujours accessible sur la machine de l’envoyeur, du destinataire ainsi que sur leurs serveurs mail respectifs. Evidemment, je déconseille de fournir des informations confidentielles à travers les réseaux sociaux (Facebook, Twitter, Google Plus, etc..) car les données peuvent être lues ou interceptés dépendant du niveau de sécurité de ces facteurs. Si le destinataire se fait détourner son compte mail (ou Facebook ou autre), les informations confidentielles/sensibles que vous avez envoyé sont à la merci du pirate.

OpenPGP

Vous pouvez utiliser un système de clé publique/clé privée et crypter vos emails (OpenPGP) à travers des plugins pour Thunderbird comme Enigmail. Cette technique permet de storer des emails cryptés avec votre clé publique et que vous ne pouvez lire qu’en étant en possession de la clé privée. Cette solution est plutôt compliquée à mettre en place et n’est effective que si la personne vous envoyant un email détient votre clé publique. En gros, un casse tête mais envisageable pour une petite compagnie dont les employés sont techie.

Intranet Privé

Vous pouvez aussi mettre en place un intranet privé avec un système de messagerie et une base de donnée cryptée. Je n’ai pas de solution clé en main (Open Source) en tête qui pourrait être facile à mettre en place. Cette solution doit bien sûr être sécurisée et tout un système de login et gestion d’utilisateurs doit être mis en place. Il faut aussi prendre en compte la sécurité des sessions et du serveur en lui même.

Cloakmy et autres

Devant souvent partager des informations sensibles avec nos clients (mots de passe généralement) et n’étant pas un fan d’envoyer des mots de passe par email, j’ai décidé de créer une application web gratuite qui se chargera de ça pour moi. Cloakmy est une web app en PHP/MySQL/CSS/jQuery qui permet de partager des messages sensibles de manière sécurisée.

Cloakmy

Les messages que vous créez sur Cloakmy sont bien évidemment cryptés dans la base de donnée. Votre mot de passe (optionnel) fera partie de la clé d’encryption rendant impossible la lecture de vos messages par moi ou qui que ce soit d’autre sans le mot de passe. Les messages sans mot de passe sont accessibles au publique (toutefois, il faut connaître le lien d’accès à la page).

Cloakmy propose plusieurs options quant à la destruction du message :

  • Auto-destruction: Le message est détruit à la lecture. Le lien ne peut être ouvert qu’une seule fois.
  • Date de validité/expiration: Vous pouvez déterminer une date à partir de laquelle le message sera lisible et/ou une date d’expiration après laquelle le message est détruit et ne peut plus être lu.
  • Destruction manuelle: Vous pouvez autoriser les lecteurs à détruire le message ou le détruire en cliquant un lien secret que seul le créateur du message connaît.

Plus de détails technique sur Cloakmy

Cloakmy est conçu de manière  à résister aux attaques web les plus communes. Un certain nombre de protections sont mises en place afin d’éviter toute tentative de brute-force sur notre service. Nous devons aussi nous protéger des tentatives de spam et de l’usage illégal de notre service comme par example envoyer des menaces anonymes.

Sessions

Les sessions sont générées à partir du hash(SHA-512) d’une “pseudo-random seed” ramenée de /dev/urandom. Les sessions sont associées à une adresse IP et à l’User Agent, ce qui réduit considérablement la possibilité de session hi-jacking.

Messages

Les messages sont cryptés en PHP (mcrypt avec MCRYPT_RIJNDAEL_256) avant d’être enregistrés dans la base de donnée. La clé est salée avec un grain généré aléatoirement et éventuellement le mot de passe, le tout est hashé avec Bcrypt.Pour accéder à un message, il vous faut le lien d’accès qui est composé de la sorte : https://cloakmy.org/r/[KEY]  avec KEY étant une clé générée aléatoirement à la création du message. A chaque fois que quelqu’un essaye d’ouvrir un message avec une mauvaise clé, son IP est enregistrée et au bout d’un certain nombre d’essais, la personne est bloquée une periode de temps exponentiellement grande. Ceci protège des tentatives de brute-force sur les messages sans password.

Si la personne qui envoie le message utilise notre service d’envoi d’email, son IP est enregistrée avec le message, sinon l’ip n’est pas enregistrée.

Lorsque vous ouvrez un message pour la première fois, si le message est protégé, vous devez fournir un mot de passe qui sera storé dans votre session et qui vous permettra de réouvrir ce message si il n’est pas détruit (tant que vous ne fermez pas votre navigateur). Ce système est utilisé pour le chat et permet la décryption/encryption synchronisée entre les différents clients de la même chambre.

Stack

La stack vous permet d’avoir une box (https://cloakmy.org/x/[BOXID]) et d’empiler (stack) des informations personelles ou sensibles comme par exemple des informations bancaires, des mots de passe, des liens vers des sites porno. Vous pouvez partager une stack pour un projet ou pendant les cours pour partager temporairement des informations (le chat peut être plus utile dans ce cas la). Vous pouvez aussi détruire la stack (ou un seul element de la stack) en un seul click. Contrairement au chat, les informations stockées dans la pile ne sont pas effacés à la fermeture du browser.

Cloakmy Stack

Autres articles

Cloakmy a été cité dans plusieurs articles :

D’autres services similaires à Cloakmy valent sûrement la peine d’être essayés et conviendront peut être mieux à vos besoins.

 

Leave a Reply