web-dev-qa-db-fra.com

Comment le cryptage Android peut-il être si rapide?

Android utilise le chiffrement complet du disque pour chiffrer les fichiers et les déchiffrer au démarrage. Ce que je ne comprends pas, c'est que le décryptage de plusieurs gigaoctets de fichiers doit prendre beaucoup de temps, sinon rien au moins le temps d'accès IO requis pour lire tout le contenu du stockage, mais = Android démarre en quelques secondes. Comment est-ce possible?

43
Aayush Mahajan

Le chiffrement se produit dans la mémoire, pas sur le disque.

Vous comprenez mal le fonctionnement du chiffrement de disque. Il ne lit pas l'intégralité du disque et le remplace par une version déchiffrée. Au contraire, lorsqu'un fichier ou un secteur de données chiffrées est accédé, il est lu en mémoire et déchiffré en mémoire. De même, lors de l'écriture sur le disque, les données sont chiffrées en mémoire avant d'être enregistrées dans un stockage persistant. Les systèmes d'exploitation conservent des copies des données qui ont été lues ou qui doivent être écrites en mémoire (le tampon du système de fichiers) pour optimiser les performances. C'est dans cette mémoire que le chiffrement et le déchiffrement ont lieu. Cela permet aux données d'être lues sur le disque et déchiffrées une fois, mais par la suite accédées plusieurs fois à partir de la mémoire. Soit dit en passant, l'utilisation de la mémoire pour stocker des fichiers fréquemment consultés explique pourquoi tant de gens pensent à tort Linux mange trop de RAM .

Je tiens également à souligner que le goulot d'étranglement est souvent les E/S, pas le cryptage. Vous dites que le cryptage de gigaoctets de données prend beaucoup de temps, mais sur la plupart des machines modernes (y compris les appareils mobiles), le cryptage de gigaoctets de données ne peut prendre que quelques secondes (en particulier avec l'accélération matérielle, le cryptage est vraiment, vraiment très rapide). Cependant, le disque SSD dans la plupart des appareils Android Android ne peut pas lire ou écrire des données à presque ces vitesses. Donc, quelle que soit la vitesse à laquelle vous essayez de lire ou d'écrire des données sur le disque, le le goulot d'étranglement sera généralement toujours d'E/S, pas de chiffrement.

Le matériel plus ancien souffrait souvent de performances réduites lorsque le chiffrement était utilisé. En effet, à cette époque, les vitesses de stockage s'amélioraient plus rapidement que les vitesses du processeur. Le manque d'accélération matérielle dédiée à la cryptographie et les algorithmes inefficaces ont souvent provoqué un ralentissement notable lors de l'accès au disque. Sur les systèmes modernes, cela est inversé. Le processeur est si rapide que le périphérique de stockage a du mal à suivre. Tout frais généraux est négligeable.

84
forest

Il ne déchiffre pas le disque complet au démarrage. Au lieu de cela, il déchiffre continuellement les données lors de leur lecture à partir du disque quand elles sont lues à partir du disque, laissant le contenu réel sur le disque intact et chiffré. Étant donné que le déchiffrement est rapide par rapport aux lectures sur disque, il ne devrait pas affecter de manière significative la vitesse de lecture. Bien sûr, cela ajoute (légèrement) à la charge globale.

50
Anders

Il n'y a aucune raison de déchiffrer des gigaoctets de fichiers au démarrage. Android n'a besoin que de déchiffrer les fichiers exacts dont il a besoin pour se charger en mémoire au démarrage.

FDE en Android ne crypte pas le noyau, seulement la partition de données utilisateur. Vous pouvez en lire plus sur le site officiel .

Le chiffrement accéléré par matériel moderne est assez rapide et ne ralentit pas trop le système. Surtout quand ce ne sont que des fichiers utilisateur qui sont cryptés avec FDE, et ils ne sont pas vraiment critiques en termes de vitesse. Il existe d'autres inconvénients, actuellement répertoriés sur la page liée, mais la vitesse n'est pas le problème.

Les téléphones Android ne pouvaient pas décrypter toute la partition au démarrage même s'ils le voulaient - il n'y a nulle part où la stocker.

15
ZOMVID-20