Je ne connais pas de solution GUI qui réponde à vos besoins mais je peux vous parler de solutions CLI qui fonctionnent.
LE CRYPTAGE DU DISQUE :
la carte microSD externe n'est pas fusionnée avec le stockage interne
Vous parlez de l'Android Stockage adoptif . En fait, il n'est pas fusionné (comme dans le cas de LVM ), il est simplement décrypté et monté comme un système de fichiers séparé. Android démarre émulant /sdcard
de /mnt/expand/[UUID]
qui autrement est de /data/media/
. De plus, certaines applications sont également mobile à cette nouvelle adopté stockage. En cas de FDE (sur la base de dm-crypt
), la clé est stockée à /data/misc/vold/expand_*.key
qui peut être utilisé pour monter la carte SD sur tout système d'exploitation utilisant le noyau Linux (y compris Android). Tout ce dont vous avez besoin est dmsetup
. Voir 本答 pour les détails.
le contenu d'une carte microSD cryptée peut être consulté sur un autre appareil Android et un PC Windows/Linux
Dans le cas d'un stockage adaptable, vous pouvez sauvegarder la clé maîtresse dans un endroit sûr afin qu'elle puisse être utilisée au cas où l'appareil serait effacé ou ne serait plus amorçable. Ou si vous ne voulez pas utiliser le cryptage natif d'Android, vous pouvez configurer manuellement les paramètres suivants dm-crypt
FDE (plain / LUKS) sur la carte SD à l'aide de cryptsetup
.
LE CRYPTAGE DU SYSTÈME DE FICHIERS :
Les versions récentes d'Android utilisent principalement FBE qui est basé sur Linux cryptage au niveau du système de fichiers (pour ext4
y f2fs
). Il n'utilise pas de clé unique, mais la clé maîtresse génère des clés par fichier sur le champ. Sur Android, les clés maîtresses cryptées sont sauvegardées dans le fichier /data/misc/vold/user_keys/
. Les stockages Device Encrypted (DE) et Credential Encrypted (CE) rendent les choses encore plus compliquées. De plus, FBE avec Adoptable Storage ne fonctionne pas sur Nougat et Oreo, et n'a pas l'air très stable sur Pie. Ce n'est donc pas une option très fiable pour le moment.
Il est également possible de configurer manuellement FBE en utilisant fscrypt
(o e4crypt
/ f2fscrypt
) à condition que votre noyau soutient il. Mais encore une fois, il y a de multiples problèmes avec l'implémentation dans l'espace utilisateur ainsi que dans l'espace noyau, particulièrement en ce qui concerne gestion des clés . Ce n'est donc pas une option très réaliste.
fscrypt
va très probablement remplacer ecryptfs
; une autre fonctionnalité native du noyau Linux. C'est un système de fichiers empilés qui peut chiffrer n'importe quel autre système de fichiers. Mais fscrypt
( chiffrement par fichier ) "est plus efficace en mémoire car il évite de mettre en cache les pages cryptées et décryptées dans le cache des pages" . Vous pouvez utiliser ecryptfs
aussi sur Android si le noyau est construit avec CONFIG_ECRYPT_FS
.
LE CRYPTAGE PAR FUSÉE :
Toutes les options discutées ci-dessus sont natives du noyau Linux, donc ne fonctionneront pas (ou du moins très mal) sous Windows (désolé, je n'ai pas d'expérience avec Mac). Cependant, vous pouvez opter pour des solutions basées sur FUSE qui ont plus ou moins de support sous Windows. Par exemple encfs
y gocryptfs
sont des systèmes de fichiers cryptographiques empilables ; plus utiles dans des situations telles que sauvegardes incrémentielles .
Si vous voulez vous en tenir à veracrypt
qui fonctionne aussi parfaitement, est encore plus performant que sous Windows s'il est associé à dmsetup
pour utiliser les services cryptographiques natifs du noyau Linux.
Une autre solution basée sur FUSE dislocker
peut décrypter Bitlocker. Mais FUSE sur FUSE peut entraîner une baisse des performances, et doit donc être évité avec le bon choix de pilotes de systèmes de fichiers.
la microSD externe cryptée est montée au démarrage automatiquement
Vous ne trouverez pas d'option avec des interactions gracieuses avec l'interface graphique pour entrer un mot de passe au démarrage car contrairement à Linux, il n'y a pas de terminal login
o crypttab
o PAM
. L'interaction avec l'utilisateur n'est possible qu'en développant une application à démarrage automatique, qui ne sera pas en service avant que zygote
/ system_server
et tous les services (natifs / Java) sont pleinement opérationnels. Vous pouvez aussi essayer de pirater le paquet SystemUI du framework Android pour obtenir les mêmes informations d'identification demandées par l'interface utilisateur (dans le cas de FDE/FBE).
Une approche simple consisterait à mettre un init.d
ou créer un init
service. Cela devrait fonctionner avec l'une des méthodes décrites ci-dessus. Cette réponse peut être utile. J'ai utilisé EncFS
pour étendre mon stockage externe sur les appareils K et L (détails ici ). La carte SD a été montée par un init
service, le mot de passe a été enregistré dans /data
qui était à son tour chiffrée par FDE.
NOTES :
- Les méthodes de cryptage décrites ci-dessus couvrent tous les systèmes de fichiers couramment utilisés, notamment
FAT
, exFAT
, NTFS
, ext4
, f2fs
etc.
- Si vous n'utilisez pas Adoptable Storage, il est préférable de créer deux partitions sur la carte SD afin de laisser
vold
service mount first partition on boot. La première partition peut être de quelques centaines de Mo. Utilisez la deuxième partition pour le cryptage.
- Les applications en ligne de commande utilisées pour le cryptage sont disponibles ici pour Android.
RELATION :