From 22eb44c231ae1b1fda9c9799f2b5e75cda60b8d2 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Wed, 11 Oct 2017 22:37:54 +0300 Subject: [PATCH] =?utf8?q?=D0=9D=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB=20GEO?= =?utf8?q?M=20Gate=20=D0=B4=D0=B5=D0=BC=D0=BE=D0=BD=D0=B0=20=D0=BD=D0=B0?= =?utf8?q?=20Go?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit https://www.freebsd.org/doc/handbook/geom-ggate.html У меня была давно хотелка написать свою реализацию полнодискового шифрования. Не то чтобы текущий GELI или LUKS не устраивал бы, но если можно с достаточной надёжностью написать своё, то почему бы и нет. Плюс иметь возможно делать deniable encryption -- например хранить данные так, что нельзя доказать их наличие. Например по запросу суда/полиции заставляют отдать ключ дешифрования диска -- отдаём, но также возможно будут иметься ещё какие-то скрытые данные, факт наличия которых не доказать. Идея hidden volume-ов не нова и давно есть в TrueCrypt. Я же пока думаю делать полнодисковое шифрование не совсем классическими XTS, CBC, whatever, но добавлять к ним вектор инициализации и именно в нём возможно хранить дополнительный hidden volume. Если IV будет на самом деле шифротекстом, то для стороннего наблюдателя он всё-равно не отличим от шума и выглядит как просто IV, рандомный, как и должен бы быть. Но это всё откладывал потому-что хочется писать на Go, но чтобы никакого C. Поэтому применять только сетевую подсистему эмулирующую доступ к блочным устройствам. Я знал про iSCSI, AoE, NBD. AoE -- сложно и геморройно и мало где используется. NBD нет под *BSD. iSCSI -- мне кажется я не осилил прочитать даже всякий introduction в его RFC: с нуля писать iSCSI target это колоссальное количество работы. Но вот на днях случайно увидел GEOM Gate -- УБЕР простой протокол доступа по сети к блочному устройству. Вчера за вечер полностью его реализовал. Теперь остаётся только криптографическая часть, -- 2.48.1