PROJET AUTOBLOG


Shaarli - Les discussions de Shaarli

Archivé

Site original : Shaarli - Les discussions de Shaarli du 23/07/2013

⇐ retour index

Chiffrer et déchiffrer avec CRYPTOPAT - YouTube

jeudi 2 juillet 2015 à 16:28

En 2013, lors d'une crise de paranoĩa hivernale, j'avais fabriqué CRYPTOPAT!
PLus tard, lors d'une autre crise de paranoĩa d'été, j'ai supprimé le nom de domaine.
En effet, c’était avant tout un long hackaton, apprendre sur le tas, tout ça, m'voyez  ;)

L'idée de départ était de faire un système de messagerie protégé par un mot de passe unique par message, sans le stocker.
Bien que la cryptographie en javascript n'est pas recommandable pour ces raisons --> https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2011/august/javascript-cryptography-considered-harmful/

1/ La page s'affiche, le navigateur génère une clé publique et une privée, le serveur fait de même.
2/ Les clés publiques sont échangées -> Le "tunnel" est crée. Chaque requête GET ou POST sera chiffrée (AES 256, ..)
3/ Le "client compose son message, ajoute un mot de passe. (Aucuns échanges de data à ce moment, voir firebug), valide et chiffre. Le "html" du message est chiffré et envoyé au serveur.
4/ Le serveur php rechiffre le message en serpent256 (ou autre mais celui-là est bien) avec mcrypt et un salt. (Cascading)
5/ Le message repart chiffré en serpent vers le client, à travers le tunnel aes.
6/ Le client reçoit le message chiffré en serpent, et peut l'ouvrir avec un mailto, ou bien l'envoyer par sms, le copier, ou le sauvegarder dans un fichier.
7/ Le destinataire reçoit un message sous la forme d'un lien, le message est inclus dans l'url. Au clic il arrive sur la page de déchiffrement sur le même principe. Il n'a qu'a tapé son mot de passe, si il le connaît. Sinon il faut faire sauter serpent et c'est "publiquement" loin d'être possible, moins que aes en tout cas.

->On peut aussi chiffrer des images ou des zips, mais l'envoit dans l'url est limité à 2000 caractères environ, ça dépend. Pas plus de 1mo en pièce jointe, sinon c'est instable*

--> Pour en lire plus, voir la description sur youtube.

Ce shèma est loin d'être parfait pour plusieurs raisons.
Je clean/comment un peu le code et le met sur github. C'est un projet abandonné pour le moment.


{code

This tools allow to generate and read specials (smalls) messages encrypted with SERPENT 256bits
(or another mcrypt supported algorythm like AES, TWOFISH..) and a private key.
Specially made for be simple but with a very high privacy level.

The reader and the writer don't needs any additionnal software or plugin for use it, just a
html5 compatible browser.

Encryption and decryption are made on client-side with javascript, so it can also be used
offline, clear datas are never sent or backed-up, by this way an ssl certificat is not need
for use it peacefuly.

Messages can be created with a rich editor (tinymce) It allow drag and drop pasting for images
only with firefox. Images are coded into base64, so they are NOT called somewhere in internet,
they are really hidden and included into the message.

[Working Beta] A special drag & drop zone allow any decent browser to include any kind of smalls
files within the message, they will be converted into base64 dataURI formatting.

This tool is stable at this time with a total message size lower than 1,4MB wich is enough
for explicits threads.

[Working Beta]  Encrypted messages can be loaded or downloaded into a .txt file, for avoid lagging
with big raw data copying/pasting.. (like more than 1mb) This can increase the message size
up to 10MB. In this case the crypting/decrypting process could be longer than 1 minute.
Sharing multiples files is faster and recommended using a .zip archive.

Crypted messages can be sent by email using writer email (mailto..), for better privacy..
There is a natural limitation of the mailto url size, depending of the mail client used.
This limit is always less than 64000 caracters, so it can include only text on this case.

This script is made using html5, javascript, css3, php5.
And of course some open-sources ressources :) :

-Cryptoxi
-Mcrypt
-Tinymce
-Base64 drag &drop
-jquery
-(..)


code}


Oros links 02/07/2015

Y a les sources quelques part ?
(Permalink)