Компания BitTorrent представит в этом году релиз безопасного сервиса для удалённой синхронизации данных. Пока бесплатно доступна бета-версия клиента, обладающая внушительным функционалом.

Ранее “Компьютерра” уже писала о начале открытого тестирования BT Sync в апреле прошлого года. За минувшее время проект успешно развивался, а недавно появились долгожданные бета-версии для мобильных операционных систем.

Весь процесс синхронизации в BT Sync для пользователя происходит примерно так же, как при использовании Dropbox или SkyDrive. Кардинальное отличие заключается в том, что в новой схеме отсутствует облачный сервер, хранящий полные копии файлов. По заявлению разработчиков это исключает (лёгкий) доступ к персональным данным сотрудников NSA, CIA, FBI и других ведомств.

Поскольку копирование происходит напрямую, объём и количество файлов для синхронизации ограничены только свободной ёмкостью самих устройств — как в персональном облаке.

Отрицательный момент заключается в том, что из-за отсутствия сервера-посредника все устройства, выполняющие синхронизацию, должны находится онлайн одновременно. Впрочем, протокол BitTorrent оптимизирован для передачи больших файлов частями — и временная потеря связи не станет помехой. При восстановлении соединения синхронизация возобновиться автоматически.

Генеральный директор BitTorrent Эрик Клинкер (Eric Klinker) считает BT Sync демонстрацией нового подхода к разработке веб-приложений: «Возьмите любой популярный веб-сервис: Twitter, электронную почту или веб-поиск. Все они были разработаны централизованным способом и хранят данные пользователей на серверах компании. Я пытаюсь передать больше свободы в руки конечного потребителя и сделать его менее зависимым от любых компаний и организаций».

Для защиты данных от повреждения и кражи BitTorrent Sync использует криптографические средства самой операционной системы. Весь трафик шифруется по алгоритму AES при помощи ключа длиной 256 бит. Он генерируется на основе (псевдо)случайного набора символов, автоматически создаваемого для каждой синхронизируемой папки.

Этот предварительный ключ в терминологии BitTorrent называется “секретом” и может быть трёх типов: “мастер” (полный доступ), “только чтение” (для однонаправленной синхронизации) и одноразовый.

Ключ создаётся при первом добавлении папки и отображается в явном виде. Его можно скопировать в буфер обмена и затем сохранить где-либо.

Пример "секрета" в настройках синхронизации папки через BT Sync
Пример “секрета” в настройках синхронизации папки через BT Sync.

Затем, чтобы создать через интернет копию этой папки на других устройствах, достаточно выбрать опцию “У меня есть секрет” и ввести его.

Настройка синхронизации в BitTorrent Sync для Windows
Настройка синхронизации в BitTorrent Sync для Windows.

Для синхронизации с мобильным устройством можно не вводить ключ вручную, а отсканировать встроенной камерой содержащий его QR-код.

Копирование "секрета" в BT Sync с помощью QR кода (изображение: qnap.com)
Копирование “секрета” в BT Sync с помощью QR кода (изображение: qnap.com).

В руководстве указывается, что автоматическое создание предварительного ключа сделано во избежание случайных повторов. При длине по умолчанию в 33 символа число вариантов ключей составляет (26+10)33. Шанс на их совпадение практически отсутствует.

Есть возможность дополнительно повысить безопасность, сгенерировав ключ на основе любой строки в формате Base64 длиной от 40 байт. После такой замены потребуется выполнить повторный вход на всех синхронизируемых устройствах.

Обычно клиент BT Sync работает в фоне и синхронизация начинается сразу после изменений в любой отслеживаемой папке. Однако на Mac OS X 10.6 из-за системных ограничений задержка может составлять до десяти минут.

До окончания процесса синхронизации загружаемые файлы получают расширение .Sync, а обновляемые — .SyncPart. Файлы из синхронизируемых каталогов, удаляемые на одном компьютере, помещаются в скрытую папку .SyncArchive на других. По умолчанию на мобильных устройствах они перемещаются в “Корзину” или её аналог. В настройках можно задать и удаление сразу.

Различные версии одного и того же файла хранятся на протяжении месяца (время можно изменить, задав новое значение переменной sync_trash_ttl). Они отображаются по команде Open SyncArchive и могут быть восстановлены в любое время. Число синхронизируемых папок и файлов на уровне клиента BT Sync не лимитировано, однако пользователи могут столкнуться с ограничениями файловых систем.

Клиент BT Sync не задаёт никаких ограничений на число папок и объём файлов.
Клиент BT Sync не задаёт никаких ограничений на число папок и объём файлов.

Начиная с версии клиента 1.0.95 в BitTorrent Sync реализована возможность однонаправленной синхронизации для выбранной папки. В таком режиме на всех устройствах будут синхронизироваться только те изменения, которые были выполнены на главном устройстве.

Исключить отдельные файлы из синхронизации можно при помощи списка .SyncIgnore. Это обычный текстовый файл в кодировке UTF-8. Помимо указания имён конкретных файлов, в нём можно задавать маски. Например, *.rar исключит все архивы RAR, а IMG_58??.jpg — все фотографии с номерами от 5800 до 5899 включительно.

BT Sync подвергается критике в первую очередь из-за отказа компании публиковать исходный код. Эрик Клинкер считает требование обоснованным, но открывать исходники не торопится: «Это справедливое замечание. Мы понимаем, что прозрачность хороша, но на данном этапе она также откроет и уязвимости. Сейчас компания предпочитает сохранять код проприетарным и выполнять проверку защиты за закрытыми дверьми».

По мнению эксперта CSR Group Джейкоба Уильямса, это логичная позиция: «Открытый исходный код — обоюдоострый меч. Целенаправленный и этичный поиск уязвимостей добровольцами очень сложен. Проекты с открытым исходным кодом могут привести к расколу и породить различные параллельные версии».

Новый метод синхронизации уже реализован для массы настольных и мобильных операционных систем. В настоящее время поддерживаются многочисленные версии Linux, Windows (начиная от XP SP3), MAC OS X (от v.10.6 и новее), FreeBSD 32-bit и 64-bit. Более того, есть варианты для сетевых устройств с микроархитектурой ARM, PowerPC и QorIQ. Поэтому клиенты BT Sync могут быть установлены непосредственно в маршрутизаторы и сетевые хранилища.

Неофициальные дистрибутивы BT Sync для ОС Linux, основанных на Debian (включая Ubuntu и Raspian), можно скачать по ссылкам с этой страницы форума BitTorrent. Версии для Gentoo обсуждаются и выкладываются здесь.

Владельцы устройств с OS Android 2.2 и выше могут загрузить клиент BitTorrent Sync из Google Play. Поклонники Apple могут скачать его в магазине приложений App Store (потребуется iOS 5.0 или новее).

Все версии для мобильных клиентов совместимы с десктопным клиентом BitTorrent Sync v.1.1.27 или более свежими релизами. Традиционно синхронизации с мобильными устройствами используется в основном для удобной отправки отснятых фотографий и видео, диктофонных записей и текстовых заметок. Автоматическое обновление в бета-версиях BitTorrent Sync не реализовано, поэтому почаще проверяйте наличие новых вручную.

Различные твики, хаки и другие неявные моменты использования обсуждаются на форуме. Желающие получить доступ к документации BT Sync API должны зарегистрироваться как разработчики. Среди наиболее интересных сторонних идей, принятых на вооружение, выделяется концепция защищённого чата. Ранее “Компьютерра” писала, что на основе протокола BitTorrent, помимо синхронизации, создаётся технология прямого чата с шифрованием передаваемых сообщений.

Каждый раз при появлении очередного бесплатного продукта задаёшься вопросом об источниках прибыли его разработчика. Пока BitTorrent не планирует одолевать пользователей клиентов BT Sync рекламой или как-то использовать их данные. Просто все ранние адепты (а их число уже превысило сотню тысяч) сыграют роль бета-тестеров при разработке нового платного дистрибутива — BT Sync Enterprise, рассчитанного на корпоративных клиентов и обладающего дополнительной функциональностью.

Руководители компаний уже начинают проявлять интерес к BT Sync, видя в нём способ снизить затраты на облачные решения и повысить безопасность.