Недавно прочитал интересную для себя статью о криптографической защите данных, хранимых в облачных сервисах: «Обзор вариантов шифрования данных в облаках для Windows».
Очень интересной показалась программа CryptSync — простая и самодостаточная. Программа синхронизирует 2 каталога, шифруюя при этом файлы при помощи 7-zip или GnuPG. Единственная поддерживаемая платформа — Windows.
Недостаток, упомянутый автором статьи выше — хранение 2-х экземпляров файлов — мне не кажется уж очень существенным, к тому же с включенной опцией «Mirror original folder to encrypted folder» можно спокойно стирать файлы оригиналов в папке источника после синхронизации и хранить только зашифрованные копии, а когда нужно выключить данную опцию, соответственно расшифрованные файлы появятся опять в папке-источнике.
С некоторых пор мне расхотелось использовать AES, крипто-алгоритм официально сертифицированный и стандартизированный АНБ США в любой реализации, хотя бы потому, что это самый атакуемый шифр, в силу его повсеместного распространения. Да и безальтернативность как-то уже мозолит глаза.
Поэтому, узнав, что программа поддерживает синхронизацию с помощью GnuPG, был приятно удивлен. В 7-zip для шифрования используется только AES-256, тогда как в GnuPG выбор достаточно богатый.
Установив CryptSync и оценив работу сразу же обновил GnuPG до версии 1.4.18 с официального сайта (с CryptSync предоставляется порядком старая версия). Установил, поместил фалйы gpg.exe и iconv.dll в установочный каталог CryptSync. Саму установку GnuPG можно просто деинсталлировать. Теперь можно и посмотреть: а из чего собственно выбрать, и как наш выбор обозначить? В каталоге CryptSync запускаем CMD — gpg.exe --version и видим следующий листинг:
Симметричные шифры: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256,
TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256 — выбрать есть из чего.
В этом же листинге есть указание на домашнюю директорию GnuPG — Home: — это нам тоже понадобится.
Директория HOME — обычное это C:/Users/'UserName'/AppData/Roaming/gnupg, но можно изменить в регистре значение HKCUSoftwareGNUGnuPG:HomeDir на любое удобное, там GnuPG хранит настойки, ключи, что ей нужно для работы.
В домашней директории создаем текстовый файл — gpg.conf в нем указываем personal-cipher-preferences 'имя шифра' как он указан в листинге выше, т.е.personal-cipher-preferences CAMELLIA256, например. Кстати, шифр по умолчанию — CAST5. Тот же резульат дает cipher-algo 'имя шифра'. Отключил компрессию — compress-level 0 — каждая опция отдельной строкой (отключает компрессию для ZLIB который используется по умолчанию). Лично мне компрессия ни к чему. Здесь можно отметить, что в файле gpg.conf можно настроить почти все, что нужно конкретному пользователю, с учетом того, что мы используем симметричное шифрование.
И вот тут всплывают грабли, которыми автор CryptSync, видимо, особенно гордится и даже упомянул это в описании программы:
Optionally the encryption can be done using GnuPG. Please note that when using this option, the encrypted files can be larger than the original files and use up more space on your cloud drive.
То есть опционально можно использовать GnuPG, но файлы получаются больше размером, чем оригиналы.
Давайте разберемся, а почему больше и насколько. Больше на ~30%! Почему так происходит — выходной формат по умолчанию у GnuPG — бинарный и большой разницы в размере у исходного и зашифрованного файла нет. Автор CryptSync вызывает GnuPG с опцией --armor (ASCII armor) — не иначе как название понравилось, которая превращает выходной файл в текст ASCII. Эта опция в GnuPG служит для передачи чистого текста (plain-text) по электронной почте, либо для режима передачи текста по FTP. Просто PGP — изначально защищенная система передачи текстовых сообщений. А вот переопределить это используя gpg.conf или как то еще — нельзя. Лично я долго искал, как можно это сделать, но не нашел. А вот включить эту опцию (если бы ее не было) — можно было бы, используя gpg.conf — указываем собственно --armor.
Проверить можно просто — cmd — gpg -с ваш.файл в сравнении с gpg -с -armor ваш.файл.
Что мы имеем в итоге для формата gpg в CryptSynс — 30% лишнего размера. И опцию, которую нельзя отключить Это можно исправить, сжав файл, архиватором — это же чистый текст и эти 30% сожмутся. Но если исходный файл — архив, и ты отключил специально компрессию, то зачем это нужно?
В заключении хочу сказать, что пытался связаться с автором CryptSynс по предоставленной электронной почте, никакого ответа не получил.
Также написал отзыв на SourceForge с тем же результатом. Может быть в будущих релизах ситуация изменится или кто нибудь подскажет, как отключить данную опцию. В принципе, очень достойная и бесплатная программа крипто-синхронизации и использование GnuPG помогают расширить её возможности, если довести это дело до ума.
При написании использовались материалы с официальных сайтов:
GnuPG — www.gnupg.org/documentation/manuals/gnupg/GPG-Options.html#GPG-Options
и CryptSync — stefanstools.sourceforge.net/CryptSync.html
Автор: leik007