La société Kudelski Security, spécialisée dans l'audit de sécurité, a publié le système de fichiers Oramfs avec une implémentation de la technologie ORAM (Oblivious Random Access Machine), qui masque le modèle d'accès aux données. Le projet propose un module FUSE pour Linux, réalisant une couche FS qui empêche le suivi de la structure des opérations d'écriture et de lecture. Le code d'Oramfs est écrit en Rust et est distribué sous la licence GPLv3.
La technologie ORAM implique la création d'une couche supplémentaire, en plus du chiffrement, qui empêche de déterminer la nature de l'activité actuelle lors du travail avec les données. Par exemple, dans le cas où des données sont chiffrées et stockées sur un service tiers, les propriétaires de ce service ne peuvent pas connaître les données elles-mêmes, mais peuvent déterminer à quels blocs d'informations on accède et quelles opérations sont effectuées. ORAM masque les informations sur les parties du système de fichiers qui sont accessibles et quelle opération est exécutée (lecture ou écriture).
Oramfs fournit un système de fichiers intermédiaire universel qui simplifie l'organisation du stockage des données sur n'importe quel stockage externe. Les données sont enregistrées sous forme chiffrée avec la possibilité optionnelle de vérification d'authenticité. Les algorithmes pouvant être utilisés pour le chiffrement incluent ChaCha8, AES-CTR et AES-GCM. Les modèles d'accès en écriture et en lecture sont dissimulés en utilisant le schéma Path ORAM. À l'avenir, d'autres schémas seront mis en œuvre, mais dans sa version actuelle, le développement est encore au stade de prototype, qui n'est pas recommandé pour une utilisation dans des systèmes de production.
Oramfs peut être utilisé avec n'importe quel système de fichiers et ne dépend pas du type de stockage externe cible — il est possible de synchroniser des fichiers avec tout service pouvant être monté sous forme de répertoire local (SSH, FTP, Google Drive, Amazon S3, Dropbox, Google Cloud Storage, Mail.ru Cloud, Yandex.Disk et d'autres services pris en charge par rclone ou pour lesquels il existe des modules FUSE pour le montage). La taille du stockage n'est pas fixe et, en cas de besoin d'espace supplémentaire, la taille de l'ORAM peut augmenter dynamiquement.
La configuration d'Oramfs consiste à définir deux répertoires — public et privé, qui jouent le rôle de de serveurs et du client. Le répertoire public peut être n'importe quel répertoire dans le système de fichiers local, lié à des stockages externes par leur montage via SSHFS, FTPFS, Rclone et d'autres modules FUSE. Le répertoire privé est fourni par le module FUSE Oramfs et est destiné à un travail direct avec les fichiers stockés dans ORAM. Un fichier contenant une image ORAM est placé dans le répertoire public. Toute opération avec le répertoire privé se reflète dans l'état de ce fichier image, mais ce fichier apparaît pour un observateur externe comme une boîte noire, dont les modifications ne peuvent pas être associées à l'activité dans le répertoire privé, y compris la détermination de l'exécution d'une opération d'écriture ou de lecture.
Oramfs peut être utilisé dans des domaines où il est nécessaire d'atteindre le plus haut niveau de confidentialité et où l'on peut sacrifier la performance. La performance diminue car chaque opération avec le stockage, y compris les opérations de lecture de données, entraîne la reconstruction des blocs dans l'image du système de fichiers. Par exemple, lire un fichier de 10 Mo prend environ 1 seconde, tandis que 25 Mo prennent 3 secondes. L'écriture de 10 Mo prend 15 secondes, et 25 Mo prennent 50 secondes. Cependant, Oramfs est environ 9 fois plus rapide en lecture et 2 fois plus rapide en écriture par rapport au système de fichiers UtahFS, développé par Cloudflare et qui prend en charge en option le mode ORAM.
Source : opennet.ru
