BT

Diffuser les connaissances et l'innovation dans le développement logiciel d'entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Android 4.4 KitKat et l'usine des clés magiques

Android 4.4 KitKat et l'usine des clés magiques

Favoris

Avec l'introduction d'Android 4.4, les développeurs sont invités à changer la manière dont les clés symétriques des passphrases sont générées via le SecretKeyFactory. Cette modification affecte les programmes qui utilisent l'algorithme de génération PBKDF2WithHmacSHA1 si leurs utilisateurs sont autorisés à utiliser des passphrases Unicode.

Auparavant, l'algorithme PBKDF2WithHmacSHA1 n'utilisait que les 8 bits de poids faible des caractères de la passphrase. Ceci est en conflit avec les recommandations de RSA Laboratories datant de 2000 et détaillées dans le document suivant PKCS #5: Password-Based Cryptography Specification Version 2.0.

Comme ce changement créé une rupture dans le fonctionnement, les développeurs peuvent maintenir une rétro compatibilité en utilisant l'ancien algorithme. Cette version a été renommée PBKDF2WithHmacSHA1And8bit et est accessible en utilisant l'exemple de code disponible sur Android Developers Blog.



SecretKeyFactory factory;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    // Use compatibility key factory -- only uses lower 8-bits of passphrase chars
    factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1And8bit");
} else {
    // Traditional key factory. Will use lower 8-bits of passphrase chars on
    // older Android versions (API level 18 and lower) and all available bits
    // on KitKat and newer (API level 19 and higher).
    factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
}

Evaluer cet article

Pertinence
Style

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

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

Commentaires de la Communauté

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

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

BT