Shufflecake, une boîte à outils pour créer des partitions de disque cryptées cachées, a été publiée

La société d'audit de sécurité Kudelski Security a publié un outil appelé Shufflecake qui vous permet de créer des systèmes de fichiers cachés dispersés dans l'espace libre disponible sur les partitions existantes et impossibles à distinguer des données résiduelles aléatoires. Les partitions sont créées de telle manière que sans connaître la clé d'accès, il est difficile de prouver leur existence même lors d'une analyse médico-légale. Le code des utilitaires (shufflecake-userland) et du module du noyau Linux (dm-sflc) est écrit en C et distribué sous licence GPLv3, ce qui rend impossible l'inclusion du module du noyau publié dans le noyau Linux principal en raison d'une incompatibilité avec la licence GPLv2 sous laquelle le noyau est fourni.

Le projet se positionne comme une solution plus avancée que Truecrypt et Veracrypt pour masquer les données nécessitant une protection, qui prend en charge nativement la plate-forme Linux et vous permet de placer jusqu'à 15 partitions cachées sur l'appareil, imbriquées les unes dans les autres pour confondre l'analyse. de leur existence. Si l'utilisation de Shufflecake elle-même n'est pas un secret, comme on peut en juger, par exemple, par la présence des utilitaires correspondants dans le système, alors le nombre total de partitions cachées créées ne peut pas être déterminé. Les partitions cachées créées peuvent être formatées à la discrétion de l'utilisateur pour s'adapter à n'importe quel système de fichiers, par exemple ext4, xfs ou btrfs. Chaque partition est traitée comme un périphérique de bloc virtuel distinct doté de sa propre clé de déverrouillage.

Pour brouiller les traces, il est proposé d'utiliser le modèle de comportement de « déni plausible », dont l'essence est que les données précieuses sont cachées sous forme de couches supplémentaires dans des sections cryptées avec des données de moindre valeur, formant une sorte de hiérarchie cachée de sections. En cas de pression, le propriétaire de l'appareil peut révéler la clé de la partition cryptée, mais d'autres partitions (jusqu'à 15 niveaux imbriqués) peuvent être cachées dans cette partition, et déterminer leur présence et prouver leur existence est problématique.

Le masquage est obtenu en construisant chaque partition comme un ensemble de tranches cryptées placées à des positions aléatoires sur le périphérique de stockage. Chaque tranche est créée dynamiquement lorsqu'un espace de stockage supplémentaire est nécessaire dans la partition. Pour rendre l'analyse plus difficile, des tranches de différentes sections sont alternées, c'est-à-dire Les sections de Shufflecake ne sont pas liées à des régions contiguës et les tranches de toutes les sections sont mélangées. Les informations sur les tranches utilisées et libres sont stockées dans une carte de localisation associée à chaque partition, qui est référencée par un en-tête chiffré. Les cartes et l'en-tête sont cryptés et, sans connaître la clé d'accès, ne se distinguent pas des données aléatoires.

L'en-tête est divisé en emplacements, chacun définissant sa propre section et les tranches associées. Les emplacements dans l'en-tête sont empilés et liés de manière récursive - l'emplacement actuel contient la clé pour déchiffrer les paramètres de la section précédente dans la hiérarchie (la moins cachée), permettant d'utiliser un mot de passe pour décrypter toutes les sections les moins cachées associées à la rubrique sélectionnée. Chaque partition moins cachée traite les tranches des partitions imbriquées comme libres.

Par défaut, toutes les sous-sections Shufflecake ont la même taille visible que la section de niveau supérieur. Par exemple, s'il y a trois partitions sur un périphérique de 1 Go, chacune d'elles sera visible par le système comme une partition de 1 Go et l'espace disque total disponible sera partagé entre toutes les partitions - si la taille totale des données stockées dépasse la taille réelle de l'appareil, une erreur d'E/S est générée.

Les sections imbriquées qui ne sont pas ouvertes ne participent pas à l'allocation d'espace, c'est-à-dire une tentative de remplissage d'une partition de niveau supérieur entraînera le broyage des données dans des partitions imbriquées, mais ne permettra pas de révéler leur présence par l'analyse de la taille des données pouvant être placées dans la partition avant le début de l'erreur (cela est supposé que les partitions supérieures contiennent des données immuables pour détourner l'attention et ne sont jamais utilisées séparément, et un travail régulier est toujours effectué avec la section imbriquée la plus récente, le schéma lui-même implique qu'il est plus important de maintenir le secret de l'existence de données que de perdre ces données).

En fait, 15 partitions Shufflecake sont toujours créées - le mot de passe utilisateur est attaché aux partitions utilisées, et les partitions inutilisées reçoivent un mot de passe généré aléatoirement (il est impossible de comprendre combien de partitions sont réellement utilisées). Lorsque les partitions Shufflecake sont initialisées, le disque, la partition ou le périphérique de bloc virtuel alloué pour leur placement est rempli de données aléatoires, ce qui rend impossible l'identification des métadonnées et des données Shufflecake dans le contexte général.

L'implémentation de Shufflecake a des performances assez élevées, mais en raison de la présence de surcharge, son débit est environ deux fois plus lent que le chiffrement de disque basé sur le sous-système LUKS. L'utilisation de Shufflecake entraîne également des coûts supplémentaires en termes de RAM et d'espace disque pour le stockage des données de service. La consommation de mémoire est estimée à 60 Mo par partition et l'espace disque à 1 % de la taille totale. A titre de comparaison, la technique WORAM, d'objectif similaire, entraîne un ralentissement de 5 à 200 fois avec une perte de 75 % d'espace disque utilisable.

La boîte à outils et le module noyau ont été testés uniquement sur Debian et Ubuntu avec les noyaux 5.13 et 5.15 (pris en charge sur Ubuntu 22.04). Il est à noter que le projet doit toujours être considéré comme un prototype fonctionnel, qui ne doit pas être utilisé pour stocker des données importantes. À l'avenir, nous prévoyons d'apporter des optimisations supplémentaires en termes de performances, de fiabilité et de sécurité, ainsi que d'offrir la possibilité de démarrer à partir des partitions Shufflecake.

Source: opennet.ru

Ajouter un commentaire