Opublikowano FS Oramfs, ukrywając charakter dostępu do danych

Kudelski Security, firma specjalizująca się w audytach bezpieczeństwa, opublikowała system plików Oramfs z implementacją technologii ORAM (Oblivious Random Access Machine), która maskuje wzorzec dostępu do danych. W projekcie zaproponowano moduł FUSE dla systemu Linux z implementacją warstwy systemu plików, która nie pozwala na śledzenie struktury operacji zapisu i odczytu. Kod Oramfs jest napisany w języku Rust i jest objęty licencją GPLv3.

Technologia ORAM polega na stworzeniu obok szyfrowania kolejnej warstwy, która nie pozwala na określenie charakteru bieżącej aktywności podczas pracy z danymi. Na przykład, jeśli podczas przechowywania danych w usłudze strony trzeciej stosowane jest szyfrowanie, właściciele tej usługi nie mogą sami znaleźć danych, ale mogą określić, do których bloków uzyskuje się dostęp i jakie operacje są wykonywane. ORAM ukrywa informacje o tym, do których części FS uzyskuje się dostęp i jakiego rodzaju operacja jest wykonywana (odczyt lub zapis).

Oramfs zapewnia uniwersalną warstwę systemu plików, która pozwala uprościć organizację przechowywania danych na dowolnej pamięci zewnętrznej. Dane są przechowywane w postaci zaszyfrowanej z opcjonalnym uwierzytelnianiem. Do szyfrowania można używać algorytmów ChaCha8, AES-CTR i AES-GCM. Wzorce dostępu do zapisu i odczytu są ukrywane przy użyciu schematu Path ORAM. W przyszłości planowane jest wdrożenie kolejnych schematów, lecz w obecnej formie opracowanie jest jeszcze na etapie prototypu, co nie jest zalecane do stosowania w systemach produkcyjnych.

Oramfs może pracować z dowolnym systemem plików i nie jest zależny od rodzaju docelowej pamięci zewnętrznej - możliwa jest synchronizacja plików z dowolną usługą, którą można zamontować w formie lokalnego katalogu (SSH, FTP, Google Drive, Amazon S3 , Dropbox, Google Cloud Storage, Mail.ru Cloud, Yandex.Disk i inne usługi obsługiwane w rclone lub dla których dostępne są moduły FUSE do montażu). Rozmiar pamięci nie jest stały i jeśli potrzebna jest dodatkowa przestrzeń, rozmiar ORAM można dynamicznie zwiększać.

Konfiguracja Oramfs sprowadza się do zdefiniowania dwóch katalogów – publicznego i prywatnego, które pełnią rolę serwera i klienta. Katalogiem publicznym może być dowolny katalog w lokalnym systemie plików, który jest podłączony do zewnętrznych magazynów poprzez zamontowanie ich za pośrednictwem SSHFS, FTPFS, Rclone i dowolnych innych modułów FUSE. Katalog prywatny jest udostępniany przez moduł Oramfs FUSE i jest przeznaczony do bezpośredniej pracy z plikami przechowywanymi w ORAM. Plik obrazu ORAM znajduje się w katalogu publicznym. Każda operacja na katalogu prywatnym wpływa na stan tego pliku obrazu, ale dla zewnętrznego obserwatora plik ten wygląda jak czarna skrzynka, której zmian nie można powiązać z aktywnością w katalogu prywatnym, w tym z tym, czy została wykonana operacja zapisu czy odczytu .

Oramfs można używać w obszarach, w których wymagany jest najwyższy poziom prywatności i można poświęcić wydajność. Wydajność spada, ponieważ każda operacja przechowywania, w tym operacje odczytu danych, prowadzą do odbudowy bloków w obrazie systemu plików. Na przykład odczytanie pliku o wielkości 10 MB zajmuje około 1 sekundy, a 25 MB zajmuje 3 sekundy. Zapisanie 10 MB zajmuje 15 sekund, a 25 MB zajmuje 50 sekund. Jednocześnie Oramfs jest około 9 razy szybszy podczas odczytu i 2 razy szybszy podczas zapisu w porównaniu do systemu plików UtahFS opracowanego przez Cloudflare i opcjonalnie obsługującego tryb ORAM.

Źródło: opennet.ru

Dodaj komentarz