Шифрование файловой системы по проводам
Давайте предположим следующий сценарий; мне нужно открыть зашифрованную файловую систему (как я могу делать с TrueCrypt локально) по сети, но
- я хочу, чтобы шифрование / дешифрование происходило строго в клиенте, чтобы никакие магические токены не выходили за пределы моей машины
- я хочу читать / записывать файловую систему по требованию: моя зашифрованная файловая система может содержать файлы размером 3 ГБ, но мне нужно только отредактировать файл размером 1 МБ, поэтому мое потребление пропускной способности не должно превышать значительную часть этого
мне кажется, что единственный способ удовлетворить оба требования - это шифрование на уровне блоков, поэтому клиент расшифрует структуру файловой системы, запросит определенные блоки по сети, отредактирует некоторые запрошенные блоки, отправит обновленные (уже зашифрованные) блоки.
Какие инструменты существуют для этого? Я слышал, что eCryptFS выполняет шифрование на уровне блоков, но я не уверен, есть ли для него хороший внешний интерфейс, как с TrueCrypt
Насколько я понимаю, с TrueCrypt вам необходимо скачать полный раздел 3Gb, открыть его, отредактировать некоторые файлы, размонтировать, а затем повторно отправить весь 3Gb. Это правильно?
3 ответа
Вы можете использовать протокол, который позволяет вам подключаться к сырому диску по сети, а затем запустить стандартный инструмент шифрования разделов (например, TrueCrypt) поверх этого.
Примерами таких протоколов являются NBD (сетевое блочное устройство) и iSCSI (SCSI поверх IP).
Если вы ищете библиотеку файловой системы, тогда наша SolFS предлагает именно то, что вам нужно. Вы можете сохранить хранилище на сервере (в зашифрованном виде) и открыть его с клиента. При открытии будут загружены только некоторые страницы, и они будут расшифрованы на стороне клиента (и повторно зашифрованы и загружены обратно после изменения).
Сетевые блочные устройства должны сделать это возможным. Не уверен, насколько стабилен этот протокол и поддерживает ли он даже несколько клиентов.