Comment monter un conteneur VeraCrypt sur un RPi avec des performances optimales?

Nov 25 2020

Sur un Raspberry Pi, afin d'utiliser un conteneur / partition chiffré VeraCrypt, quelle solution offre les meilleures performances entre l'installation de VeraCrypt ou l'utilisation cryptsetup( qui semble le supporter )?


Contexte: J'ai un disque dur externe USB3, qui contiendra:

  • un conteneur VeryCrypt 1 To, hébergé dans une partition exFAT (1) ou NTFS (2), pour pouvoir lire le disque dur avec Windows à l'avenir si nécessaire

  • ou une partition Veracypt 1 To (3)

Je vais comparer (1), (2), (3) pour voir lequel offre les performances de lecture / écriture les plus élevées de RPi.

Réponses

1 Basj Nov 27 2020 at 05:50

J'ai effectué un grand nombre de tests aujourd'hui sur un RaspberryPi4 2 Go (avec bloc d'alimentation officiel, et vérifié qu'aucune limitation ne s'est produite; RaspiOS standard).

J'ai utilisé un disque dur USB3 externe, testé pour pouvoir à la fois lire et écrire à partir du RPi4 plus rapidement que 70 Mo / s pour un fichier séquentiel de 1 Go, lors de l'utilisation d'une ext4partition normale (non chiffrée) (juste pour être sûr que le disque lui-même n'est pas le élément le plus faible de la chaîne).

Les résultats suivants doivent être pris en valeur relative pour comparer le FS, pas en valeur absolue.

J'ai testé les deux:

  • la vitesse d'écriture RAW sur une partition chiffrée

    dd if=/dev/zero of=/mnt/b/1000mb bs=1M count=1000 iflag=fullblock
    

    (même si constant zéro octet, l'algorithme AES doit rechiffrer chaque bloc, pour que la répétition ne soit pas identifiable, voir crypto.SE pour des questions à ce sujet, c'est courant)

  • la vitesse de transfert avec Samba lors de l'envoi d'un fichier de 2,3 Go depuis un ordinateur Windows vers la partition / conteneur chiffré RPi (encore une fois, j'ai vérifié que le réseau, le disque de l'ordinateur de destination, etc. n'étaient pas un goulot d'étranglement)

Comme je veux que le disque contenant les données cryptées soit également ouvrable sous Windows (disons que ma femme en a besoin), sans commandes de ligne de commande Linux, j'ai testé uniquement exFAT et NTFS .

Résultats

host ↓       FS inside container →   exFAT                       NTFS
Veracrypt part.                      dd:41 MB/s  samba:!! MB/s   dd:28 MB/s  samba: 25 MB/s
exFAT part. + Veracrypt container    dd:39 MB/s  samba:!! MB/s   dd:25 MB/s  samba: 20 MB/s
NTFS part. + Veracrypt container     dd:29 MB/s  samba:!! MB/s   dd:25 MB/s  samba: 15 MB/s       

!!: Explorateur Windows ne répond pas au début du transfert de fichiers de 2,3 Go, pendant environ ~ 30 secondes, puis il commence mais assez lent. Cela semble être un bogue lors de l'utilisation de fuse-exfat+ samba+ à 1 GB+ file tranferpartir de Windows, même sans utiliser VeraCrypt. Il est même amplifié lorsqu'il y a une couche Veracrypt supplémentaire.

En conclusion, la meilleure option si nous voulons que le disque crypté soit également lisible sous Windows, et pour pouvoir l'utiliser via Samba, est d'utiliser une partition Veracrypt, contenant une partition NTFS.


Remarque: lorsque vous n'utilisez pas de cryptage, l'utilisation de cette petite astuce "big_writes" permet d'accélérer les écritures NTFS de 30 Mo / s à plus de 70 Mo / s:

sudo mount /dev/sda4 /mnt/a -o big_writes

Mais encore une fois, après la couche Veracrypt supplémentaire, nous retombons à ~ 20-30 Mo / s.