# VeraCrypt

VeraCrypt est un logiciel utilitaire sous licence libre utilisé pour le chiffrement à la volée (OTFE). Il est développé par la société française IDRIX et permet de créer un disque virtuel chiffré dans un fichier ou une partition. L'ensemble du dispositif de stockage demande une authentification avant de monter le disque virtuel.
En France, le logiciel est intégré à la liste des logiciels libres préconisés par l’État dans le cadre de la modernisation globale de ses systèmes d’informations (S.I.).
VeraCrypt est un fork qui a été initialement publié le 22 juin 2013 pour faire suite au projet TrueCrypt interrompu subitement quelques mois plus tard. Selon ses développeurs, des suspicions sur l'origine de plusieurs failles de sécurité ont été soulevées à la suite d’un audit du code source de TrueCrypt. Elles ont donné lieu à des améliorations de sécurité mises en œuvre dès la version 1.17 de VeraCrypt. La dernière version est actuellement la 1.26.7, publiée le 1er octobre 2023 (la version précédente 1.25.9 est la dernière supportant la compatibilité avec le format de volumes TrueCrypt ainsi qu'avec les versions de Windows antérieures à Windows 10).

## Système de chiffrement
### Algorithmes

Les systèmes de chiffrement supportés par VeraCrypt sont AES, Camellia, Kuznyechik (en), Serpent et Twofish. En outre, cinq combinaisons différentes de chiffrements en cascades sont possibles : AES-Twofish, AES-Twofish-Serpent, Serpent-AES, Serpent-Twofish-AES et Twofish-Serpent. Les fonctions de hachage cryptographique disponibles pour une utilisation dans VeraCrypt sont RipeMD-160, SHA-256, SHA-512, Streebog et Whirlpool.

### Modes de fonctionnement

VeraCrypt utilise le mode d'opération XTS.

### Clés

La clé d'en-tête et la clé d'en-tête secondaire (mode XTS) sont générées en utilisant PBKDF2 avec un salage en 512 bit et de 327 661 à 655 331 itérations, en fonction de la fonction de hachage sous-jacente utilisée.

## Amélioration de la sécurité

Selon ses développeurs, VeraCrypt a apporté plusieurs améliorations de sécurité par rapport à TrueCrypt.
Alors que TrueCrypt utilise 1 000 itérations avec l'algorithme PBKDF2 et un hachage RIPEMD-160 pour les partitions système, VeraCrypt utilise 327 661 itérations. Pour les conteneurs standards et d'autres partitions, VeraCrypt utilise 655 331 itérations avec RIPEMD160 et 500 000 itérations avec SHA-2 et Whirlpool. Même si cela rend VeraCrypt plus lent à l'ouverture des partitions chiffrées, cela rend également les attaques basées sur la découverte du mot de passe plus lentes.
Diverses optimisations ont été faites pour la version Windows dont la correction d'une vulnérabilité dans le chargeur d'amorçage. Sous ce système d'exploitation les développeurs ont aussi intégré le hachage SHA-256 avec l'option de chiffrement au démarrage et ont également corrigé le problème de sécurité avec la fonction ShellExecute. Les utilisateurs des systèmes Linux et Mac OS X bénéficient d'un support pour les disques durs avec des tailles de secteur supérieur à 512 octets. La version Linux a également bénéficié d'une mise à jour pour supporter le formatage des volumes NTFS.
En raison des améliorations de sécurité, le format de stockage VeraCrypt est incompatible avec celui de TrueCrypt. L'équipe de développement du projet VeraCrypt estime que l'ancien format TrueCrypt est trop vulnérable à une attaque de la NSA et il doit donc être abandonné. Ceci est l'une des principales différences entre VeraCrypt et son concurrent CipherShed (en), car ce dernier continue d'utiliser le format TrueCrypt. Cependant, à partir de la version 1.0f, VeraCrypt est capable d'ouvrir et de convertir des volumes dans le format TrueCrypt.

### Audit

En 2016, dans le but de rechercher d’éventuelles vulnérabilités et portes dérobées, l’association OSTIF utilise les fonds que leur ont alloués DuckDuckGo et VikingVPN pour faire auditer le code de la version 1.18 de VeraCrypt par Quarkslab.
Le 13 août 2016, l’OSTIF déclare que les courriels chiffrés échangés entre l’OSTIF, Quarkslab et le développeur principal de VeraCrypt sont interceptés$^,$, quatre de leurs courriels n’étant pas arrivés à destination et ayant mystérieusement disparu de leurs boites d’envois.
Le 17 octobre 2016, les résultats de cet audit sont rendus publics, révélant huit failles critiques, trois modérées et quinze mineures$^,$ ; la version 1.19 de VeraCrypt, corrigeant la grande majorité de ces failles, est publiée le même jour.
En 2020 L'office général allemand pour la sécurité informatique commandite un audit de sécurité auprès de l'institut Fraunhofer. Le rapport est publié en décembre 2020.

## Déni plausible

Tout comme son prédécesseur, VeraCrypt supporte le déni plausible, en permettant à un volume chiffré « à cacher » d’être créé dans un autre volume chiffré. En outre, les versions Windows de VeraCrypt ont la capacité de créer et d'exécuter un système d'exploitation chiffré caché dont on peut nier l'existence. La documentation de VeraCrypt répertorie les nombreuses caractéristiques de ce logiciel ainsi que les méthodes qui pourraient compromettre l’existence d'un volume chiffré, caché par le déni plausible, mais aussi les moyens possibles pour éviter la révélation du volume caché. Par exemple avec un logiciel tiers qui peut trahir l'existence de fichiers temporaires (vignettes d'images, raccourcis, etc.) conservés sur les disques non chiffrées liés au volume caché.

## Problèmes de sécurité

VeraCrypt est vulnérable à diverses attaques connues qui affectent également d'autres logiciels de chiffrement de disque basé sur ce type de logiciel tels que BitLocker. Pour atténuer ces attaques, la documentation distribuée avec VeraCrypt incite les utilisateurs à suivre diverses précautions de sécurité. Certaines de ces attaques sont détaillées ci-dessous.
Par ailleurs, la sécurité de VeraCrypt peut être questionnée lorsque celui-ci fonctionne sur des systèmes d'exploitation fermés (ClosedSource) comme Windows ou Mac OS. En effet, VeraCrypt utilise les ressources logicielles du système d'exploitation (comme tout logiciel fonctionnant sur ce système d'exploitation) et, en cas de ClosedSource, la sécurité de ces ressources logicielles ne peut être évaluée.

### Clés de chiffrement stockées en mémoire

VeraCrypt stocke ses clés en mémoire vive ; sur un ordinateur personnel ordinaire, la DRAM maintient son contenu pendant plusieurs secondes même après coupure et mise sous tension (ou plus longtemps à basse température). Même s'il y a une dégradation certaine des informations mémorisées, divers algorithmes peuvent intelligemment récupérer les clés. Cette méthode, connue sous le nom « d'attaque par démarrage à froid » a été utilisée avec succès pour forcer un système de fichiers protégés avec TrueCrypt (obtenu en particulier avec un ordinateur portable après mise sous tension, mise en veille ou en mode verrouillé).