Présentation effectuée à Meetup OWASP (10 octobre 2019) par Christophe Villeneuve sur "Chiffrer vos fichiers".
Une occasion de voir comment les fichiers sont chiffrés pour Firefox Send et dans les WebExtensions pour communiquer avec cette plateforme
2. @hellosct1
Transfert de fichiers
●
Petits fichiers
– A la main
– l’upload d’un formulaire
– SMTP avec ou sans Pièce jointe
●
Fichiers volumineux
– FTP
– Stockage distant
3. @hellosct1
Gros Fichiers
●
We Transfer
– Max 2 Go
– 15 jours
●
Free
– Max 1 Go
FTP 10 Go
– 1 mois
●
Framadrop
– Max 2 Mo
– 60 jours
●
Orange
– Max 100 Go
– Dispo ????
●
Firefox Send
– 2.5 Go
– 1 à 7 jours
– 100 DL max
– Password
7. @hellosct1
Envoie de fichiers (1/2)
●
Générer une clef secrètre
●
Chiffrer le fichier
●
Chiffrer les métadonnées (aes-256-gcm)
●
Jeton / Token
fonction secretKeys() {
var max = 10;
var secret = new Uint32Array(max);
window.crypto.getRandomValues(secret);
var select = Math.floor(Math.random() * Math.floor(max));
return secret[select];
}
var hash = CryptoJS.HmacSHA256(nameFile, secretKeys);
var hashInBase64 = CryptoJS.enc.Base64.stringify(hash);
const result = crypto.subtle.encrypt(algorithm, key, data);
8. @hellosct1
Upload (2/2)
●
Réponse du serveur
– Jeton du propriétaire
– l’url de partage
●
Clef secrète est ajoutée à l’url de partage
– Ancre [#fragment]
●
Possibilité d’ajouter un mot de passe
9. @hellosct1
Téléchargement
●
DL à partir de l’URL
●
GET de l’ancre
●
Le navigateur
– Métadonnées sont déchiffrées
– Demande authentification
– Télécharge et déchiffre le fichier
●
Boite de dialogue pour le fichier