Компанията Kudelski Security, специализирана в извършването на одити на сигурността, публикува файловата система Oramfs с реализация на технологията ORAM (Oblivious Random Access Machine), която маскира характера на достъпа до данни (data access pattern). Проектът предлага FUSE модул за Linux с реализация на слой на ФС, който не позволява проследяване на структурата на операциите по запис и четене. Кодът на Oramfs е написан на езика Rust и се разпространява под лиценз GPLv3.
Технологията ORAM предвижда създаването на още един слой, освенEncryption, който не позволява определяне на характера на текущата активност при работа с данни. Например, в случай на прилагане на шифроване при съхранение на данни в външна услуга, собствениците на тази услуга не могат да разберат самите данни, но могат да определят до кои блокове се извършват запитвания и какви операции се изпълняват. ORAM скрива информацията за това до какви части на ФС се осъществява достъп и каква точно операция се извършва (четене или запис).
Oramfs предоставя универсална файловата система-прослойка, която улеснява организацията на съхранение на данни на всякакви външни хранилища. Данните се съхраняват в шифрован вид с опционална възможност за проверка на автентичността. За шифроване могат да се използват алгоритми ChaCha8, AES-CTR и AES-GCM. Законоверността при достъпа за запис и четене се скрива с използване на схемата Path ORAM. В бъдеще се планира реализиране и на други схеми, но в текущия етап разработката все още е на прототипно ниво, което не се препоръчва за употреба в работни системи.
Oramfs може да се използва с всякакви ФС и не зависи от типа на целевото външно хранилище — възможна е синхронизация на файловете в всяка услуга, която може да бъде монтирана във вид на локална директория (SSH, FTP, Google Drive, Amazon S3, Dropbox, Google Cloud Storage, Mail.ru Cloud, Яндекс.Диск и други услуги, поддържани в rclone или за които има FUSE модули за монтиране). Размерът на хранилището не е фиксиран и при необходимост от допълнително пространство размерът на ORAM може да се увеличава динамично.
Настройката на Oramfs се свежда до определяне на два каталога — публичен и частен, които изпълняват роля сървър и клиента. Публичният каталог може да бъде всяка директория в локалната файловата система, която е свързана с външни хранилища чрез монтиране чрез SSHFS, FTPFS, Rclone и всякакви други FUSE модули. Приватният каталог се предоставя от FUSE модула Oramfs и е предназначен за непосредствена работа с файлове, съхранявани в ORAM. В публичния каталог се разполага файл с образа на ORAM. Всяка операция с приватния каталог се отразява на състоянието на този файл-образ, но този файл изглежда за външния наблюдател като черна кутия, промените в която не могат да бъдат асоциирани с активността в приватния каталог, включително не може да се определи дали е извършена операция за запис или четене.
Oramfs може да се използва в области, в които е необходимо да се постигне най-високо ниво на конфиденциалност и може да се жертва производителността. Производителността намалява, тъй като всяка операция с хранилището, включително операциите за четене на данни, водят до пренастройване на блоковете в образа на файловата система. Например, четенето на файл с размер 10 МБ отнема около 1 секунда, а 25 МБ — 3 сек. Записът на 10 МБ отнема 15 секунди, а 25 МБ — 50 секунди. При това Oramfs е приблизително 9 пъти по-бърз при четене и 2 пъти по-бърз при запис в сравнение с файловата система UtahFS, разработвана от компанията Cloudflare и опционално поддържаща режим ORAM.
Източник: opennet.ru
