Распределенное зашифрованное хранилище на основе Bittorrent Sync
Ожидает приглашения

Этот пост не очередной обзор софта, а некий, на мой взгляд, способ, позволяющий решить задачу обозначенную в заголовке.
Примеров того, как люди используют продукт известной американской компании на хабре масса, вот некоторые из них:
habrahabr.ru/post/206072
habrahabr.ru/post/217399
habrahabr.ru/post/252167
habrahabr.ru/post/266955
habrahabr.ru/post/184702
Да, Sync упрощает жизнь многим решая проблемы синхронизации данных с помощью одноименного BitTorrent протокола. Однако, думаю мало кто в курсе, что начиная с версии 2.3, Sync умеет «создавать» зашифрованные папки с зашифрованными файлами, которые можно использовать, например, если в проекте имеются какие-нибудь недоверяемые сервера. Однако кто нам с вами, уважаемые хабравчане, запрещает взять и разместить свои данные друг у друга с помощью этих зашифрованных папок, образовав громадных размеров кластер с зашифрованными данными, так, что каждый из нас может расшифровать и прочесть только свои данные!? Интересная идея, не правда ли?
Теперь по порядку. BitTorrent гарантируeт, что шифрование данных является криптографически стойким, таким образом, что кто-нибудь (не вы), кто имеет зашифрованные ваши данные у себя на компьютере при всем своем желании не сможет их расшифровать. Схема «работы» Sync следующая: есть два обычных пира (не encrypted), которые синхронизируются друг с другом; для того, чтобы сделать это они устанавливают AES-128 зашифрованный туннель друг между другом и обмен данными происходит непосредственно через этот туннель, так что кто-то третий, вклинившись где-то посередине и перехватив данные, будет видеть билеберду, поскольку расшифровать он ее, не имея ключа, не может; данные шифруются в течение передачи с помощью ключа, уникального для каждой сессии, и расшифровываются с помощью Sync до того, как будут помещены на жесткий диск на принимающей стороне, таким образом, что на принимающей стороне данные будут находится в незашифрованным виде и будут доступны. Теперь рассмотрим два пира, один из которых encrypted, т.е. который получил в свое распоряжение зашифрованную папку, а второй — «обычный» пир, который располагает незашифрованными данными. Когда эти два пира синхронизируются друг с другом, они также устанавливают AES-128 зашифрованный туннель друг между другом используя упомянутый сессионный ключ, для того чтобы передать данные, но «обычный» пир вдобавок шифрует данные с помощью AES-128 «storage» ключа (т.е. ключа уникального для каждой передаваемой папки) перед отправкой на «encrypted» пир. Таким образом, данные, в процессе передачи между устройствами шифруются дважды благодаря использованию двух ключей session key и storage key, и соответственно получающая сторона (наш encrypted пир) сохраняет на диск данные, которые зашифрованы с помощью AES-128. Это официальная информация из блога BitTorrent, с головы я ничего не брал.
Фигурально выражаясь, если кому-либо удастся расшифровать данные на encrypted пире, то это означает, что этот кто-то сумел «победить» AES-128 шифрование. Да, многие из читающих этот пост могут сослаться на опубликованную в 2009 году работу, в которой утверждается, что «использование дифференциального анализа ошибок (англ. Differential Fault Analysis), искусственно создаваемых в матрице состояния на 8-м раунде шифрования, позволило восстановить ключ за 2 в 32 степени операций», но мы-то все понимаем что значит «2 в 32 степени» операций… И да, знаю-знаю, что с массовым распространением квантовых компьютеров, это все канет в лету, но пока еще мы до этого не дожили.
К тому же, сам продукт Bittorrent Sync имеет закрытый исходный код, что еще больше усиливает безопасность его использования (вспомните продукцию компании Apple).
Кстати, можно также обезопасить доступ к веб-интерфейсу программы (если вы используете ее на Linux-сервере), с помощью вашего SSL сертификата (который можно без проблем купить или без проблем достать бесплатно), который «включается» через конфиг файл.
/* ssl configuration */
,"force_https" : true // disable http
,"ssl_certificate" : "/path/to/cert.pem"
,"ssl_private_key" : "/path/to/private.key"
Поэтому все, кто читает данный пост могут решить задачи о распределенном и безопасном хранении своих данных на компьютерах и серверах других людей (таких же энтузиастов как и я), используя encrypted папки программы Sync, держа в голове то, что данные будут прочитаны только их хозяином. Думаю сильно объяснять не нужно, что распространить вирусы таким образом не удастся, посколько на encrypted пире будет уже не вирус (если предположить, что обычный пир заражён), а некий безвредный файл, представляющий собой просто невыполняемый блок данных.
Я расшарил папку (~370Мб) со своими документами (довольно конфиденциальными), и было бы здорово, увидеть большое количество пиров у себя в пир-листе.
Encrypted key: FCCTQT5KV2OCP6I552PHDPDSB4CN7WVX4
Можете оставлять в комментариях свои encrypted ключи, добавим их себе.