BT

Encrypter des fichiers sur Android avec Conceal

par Abel Avram , traduit par Olivier Gonthier le 06 févr. 2014 |

Facebook a rendu open source Conceal, un set d'APIs Java pour encrypter des fichiers et gérer l'authentification d'utilisateurs sur Android. Conceal utilise un sous-ensemble d'algorithmes et de réglages prédéfinis issus d'OpenSSL afin de maintenir la librairie aussi petite que possible, représentant actuellement 85Ko.

La librairie cible les anciennes versions d'Android, de Froyo à Jelly Bean, sur lesquelles les performances sont selon Facebook bien meilleures en comparaison de l'utilisation de code natif.

Le benchmark ci-dessus compare un algorithme natif (ES-CTR-HMAC-SHA1) avec Bouncycastle (AES-GCM) et Conceal (AES-GCM) sur un Galaxy Y.

Google a introduit le support d'OpenSSL dans KitKat, mais la source de chiffrement par défaut "n'est pas très performante", selon Facebook. "Lorsque l'on remplace cette source par la notre (Voir BetterCipherInputStream), les performances sont comparables à celles de Conceal."

L'exemple de code suivant montre comment fonctionne l'encryption de fichiers avec Conceal:

// Crée un nouvel objet Crypto avec l'implémentation
// d'une key chain et celle d'une librairie native.
Crypto crypto = new Crypto(
  new SharedPrefsBackedKeyChain(context),
  new SystemNativeCryptoLibrary());

// Vérifie si les fonctionnalités d'encryption sont disponibles
// Cela peut ne pas être le cas si Android ne charge pas les librairies correctement
if (!crypto.isAvailable()) {
  return;
}

OutputStream fileStream = new BufferedOutputStream(
  new FileOutputStream(file));

// Crée un OutputStream qui encrypte les données en entrée
// puis les écrit dans un fichier
OutputStream outputStream = crypto.getCipherOutputStream(
  fileStream,
  entity);

// Donne un flux de texte lisible à ce stream
outputStream.write(plainText);
outputStream.close();

Conceal peut être utilisé pour encrypter des fichiers de grande taille. Facebook l'utilise pour encrypter des données et des images sur la carte SD des appareils.

Des instructions pour construire une librairie similaire basée sur OpenSSL sont disponibles sur la page GitHup de Conceal.

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Donnez-nous votre avis

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet
Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Discuter

Contenu Éducatif

Rien ne serait possible sans le soutien et la confiance de nos Sponsors Fondateurs:

AppDynamics   CloudBees   Microsoft   Zenika
Feedback Général
Bugs
Publicité
Éditorial
InfoQ.com et tous les contenus sont copyright © 2006-2014 C4Media Inc. InfoQ.com est hébergé chez Contegix, le meilleur ISP avec lequel nous ayons travaillé.
Politique de confidentialité
BT