Das Unternehmen Kudelski Security, das auf Sicherheitsprüfungen spezialisiert ist, hat das Dateisystem Oramfs veröffentlicht, das die ORAM-Technologie (Oblivious Random Access Machine) implementiert und das Zugriffsverhalten auf Daten (data access pattern) verbirgt. Das Projekt bietet ein FUSE-Modul für Linux mit einer Implementierung der Dateisystemschicht, die die Struktur von Lese- und Schreiboperationen nicht nachvollziehbar macht. Der Code von Oramfs ist in Rust geschrieben und wird unter der GPLv3-Lizenz veröffentlicht.
Die ORAM-Technologie sieht die Schaffung einer zusätzlichen Schicht neben der Verschlüsselung vor, um zu verhindern, dass die aktuelle Aktivität beim Umgang mit Daten bestimmt werden kann. Beispielsweise können bei der Verwendung einer Verschlüsselung bei der Speicherung von Daten in einem externen Dienst die Betreiber dieses Dienstes die Daten selbst nicht erfahren, können jedoch herausfinden, auf welche Blöcke zugegriffen wird und welche Operationen durchgeführt werden. ORAM verbirgt Informationen darüber, auf welche Teile des Dateisystems zugegriffen wird und welche spezifische Operation (Lesen oder Schreiben) ausgeführt wird.
Oramfs bietet ein universelles Dateisystem-Wrapper, das die Organisation der Datenspeicherung auf beliebigen externen Speicherlösungen erleichtert. Daten werden in verschlüsselter Form gespeichert, mit der optionalen Möglichkeit der Authentifizierung. Für die Verschlüsselung können die Algorithmen ChaCha8, AES-CTR und AES-GCM verwendet werden. Zugriffsgewohnheiten beim Schreiben und Lesen werden unter Verwendung des Path ORAM-Schemas verborgen. Für die Zukunft ist die Implementierung weiterer Schemata geplant, im aktuellen Zustand befindet sich die Entwicklung jedoch noch in der Prototypenphase, die nicht für den Einsatz in produktiven Systemen empfohlen wird.
Oramfs kann mit beliebigen Dateisystemen verwendet werden und ist unabhängig vom Typ des Ziel-Externspeichers - eine Synchronisation von Dateien ist mit jedem Dienst möglich, der in Form eines lokalen Verzeichnisses (SSH, FTP, Google Drive, Amazon S3, Dropbox, Google Cloud Storage, Mail.ru Cloud, Yandex.Disk und andere Dienste, die in rclone unterstützt werden oder für die es FUSE-Module zum Mounten gibt) eingebunden werden kann. Die Größe des Speichers ist nicht festgelegt, und bei Bedarf kann die Größe von ORAM dynamisch erhöht werden.
Die Konfiguration von Oramfs besteht in der Festlegung von zwei Verzeichnissen - einem öffentlichen und einem privaten, die als Rollen dienen. Server und den Kunden. Das öffentliche Verzeichnis kann beliebiges Verzeichnis im lokalen Dateisystem sein, das über die Montage durch SSHFS, FTPFS, Rclone und andere FUSE-Module mit externen Speichern verbunden ist. Das private Verzeichnis wird vom FUSE-Modul Oramfs bereitgestellt und ist für die direkte Arbeit mit Dateien gedacht, die in ORAM gespeichert sind. Im öffentlichen Verzeichnis befindet sich eine Datei mit dem Bild von ORAM. Jede Operation mit dem privaten Verzeichnis spiegelt sich im Zustand dieser Bilddatei wider, aber diese Datei sieht für einen externen Beobachter wie eine Blackbox aus, deren Änderungen nicht mit der Aktivität im privaten Verzeichnis in Verbindung gebracht werden können, einschließlich der Unfähigkeit zu bestimmen, ob eine Lese- oder Schreiboperation durchgeführt wurde.
Oramfs kann in Bereichen eingesetzt werden, in denen ein Höchstmaß an Vertraulichkeit erforderlich ist und die Leistung in den Hintergrund treten kann. Die Leistung sinkt, da jede Operation mit dem Speicher, einschließlich Lesevorgänge, zu einer Umstrukturierung der Blöcke im Bild des Dateisystems führt. Beispielsweise dauert das Lesen einer Datei mit 10 MB etwa 1 Sekunde, und 25 MB benötigen 3 Sekunden. Das Schreiben von 10 MB dauert 15 Sekunden, während 25 MB 50 Sekunden in Anspruch nehmen. Dabei ist Oramfs beim Lesen etwa 9-mal schneller und beim Schreiben 2-mal schneller im Vergleich zum Dateisystem UtahFS, das von Cloudflare entwickelt wird und optional den ORAM-Modus unterstützt.
Quelle: opennet.ru
