четверг, 28 апреля 2011 г.

Напуганный ДропБоксом

Последние изменения в лицензионном соглашении всеми горячо любимого дропбокса, заставили задуматься о вечном. А именно - о паранойе, безопасности и мерах предохранения от нежелательных утечек. Если вы вдруг не в курсе, то dropbox изменил условия и предупредил, что по решению соответствующих органов ваши файлы могут быть переданы кому надо. Честно говоря, меня это волнует мало, но вот, что действительно вызывает недетские опасения, так это техническая возможность этой доброй и приятной компании, читать мои файлы. Тут опять не вопрос переписки шпионов и страха что недремлющие органы возьмут за жабру, нет, дело в другом. Если что-то может утечь, то оно непременно утечет. И изменения в пользовательском соглашении с формы "мы не можем читать ваши данные" на "мы не будем читать ваши данные" тоже не добавляет нам, параноикам спокойствия. Но давайте не будем шуметь и возникать, и без нас таких много. У dropbox в форуме полно тем с криками "аа, эти козлы нас обманули и кинули", что по форме грубо, но по сути верно. А давайте, наоборот, эту проблему решать конструктивно.


Решение состоит в том, чтоб поверх сомнительного криптования dropbox добавить свое собственное, без паяльника не взламываемое. И все это конечно синхронизировать через dropbox. В идеале, это решение не должно напрягать, должно работать относительно просто и конечно не портить ваших данных.

Легкий поиск по интернету подскажет заветное слово TrueCrypt. Все его хвалят, любят и в один голос утверждают "это оно, лучше ничего не надо". Программа очень opensource, в том числе и на внешний вид :) Ничего конечно там сложного нет, все ожидаемо. Создаешь новый, зашифрованный контейнер в одном из директориев Dropbox, вводишь пароль покрепче, говоришь ему "mount" и появляется новый с иголочки, виртуальный диск в вашей системе. По необходимости, его можно отмаунтить и потом примаунтить опять. Все просто. Но увы, эта простота тут не очень радует. Главная проблема в том, как это работает с dropbox. А работает очень уж атомарно. Примаунтеный (т.е. доступный вам для чтения и записи) секретный раздел живет своей жизнью и никаких сигналов dropboxу не подает. Т.е. записываете вы туда файл, удаляете, редактируете - все это дропбокс никак не возбуждает и никакой передачи данных не инициирует. Только в момент eject/umount дропбокс очнется и зальет ваши изменения. Есть даже слухи, что там все совсем плохо и что каждый раз дропбокс будет гонять туда-сюда полный размер вашего контейнера (задается при создании), но не верьте - это враки. Он явно умеет посылать обновленные куски этого файла-контейнера, хотя по моим наблюдениям, все таки шлет/читает многовото, но конечно не полный файл каждый раз.

Небходимость следить за статусом секретного диска не просто напрягает, но, на мой взгляд убивает на корню всю идею легкой и бездумной (т.е. когда вам не надо думать) синхронизации. Каждый раз производить манипуляции по подключению/отключению мне хлопотно, а цена забывчивости высока. В лучшем случае, вы положите в дропбокс нужные файлы, а прийдя в другой компьютер их там не обнаружите. Понятное дело, забыли перед уходом отмаунтить. А в худшем случае, вы вдумчиво поредактируете документ на одном компьютере, опять забудете закрыть секретный диск, перейдете на другой компьютер и продолжите редактирование. Конечно, не обратив внимание, что это была не та свежая, а вовсе старая версия. Короче говоря, типичная ситуация конфликтных изменений. Дропбокс и для обычных файлов конфликты не очень помогает разрешать, а здесь у вас просто окажется 2 контейнера с 2мя частями вашей работы. Слить все это вместе конечно можно, но практически задача весьма нетривиальная и очень ручная.

В этом месте текста можно поменять TrueCrypt на встроенный в OSX зашифрованный образ, который легко создается в Disk Utility. Из особенностей - это будет совместимо только с другими маками, что лично для меня недостатком не является. Однако, все проблемы TrueCrypt и тут представлены в фас и в профиль. И это тоже, увы, не наш путь.

А что касается нашего пути, то он состоит их 4х простых шагов:

  1. Ставим MacFUSE, если у вас он еще не установлен. Его берут вот тут.
  2. Ставим encfs. По ссылке есть несколько способов это сделать, но я, как ленивый, поставил из портов (sudo port install encfs)
  3. Создаем 2 директория: один на дропбоксе, например ~/Dropbox/.secure-data, а второй – где вашей душе угодно, хоть на десктопе, и называем его по человечески, например SuperSecret
  4. в терминале пишим магическую команду encfs ~/Dropbox/.secure-data ~/SuperSecret -ovolname=MyPrivateDrive. То, что после -o задает Finder под каким именем этот диск показывать. При первом запуске вас попросят ввести пароль, и после этого в заданном вами месте (в нашем случае ваш дом. каталог), появится диск SuperSecret, который можно перетащить в раздел Devices, и он станет рядом с нормальными дисками.

И на этом вся подготовка завершена. Можете писать/читать и это сразу польется в Dropbox. На втором компьютере, после того как у вас появился этот .secure-datа, приведенная encfs команда его превратит в зашифрованный диск с самыми свежими файлами. С ним можно работать так же как и с любым другим каталогом под контролем дропбокса. Никакой разницы вы не заметитие, за исключением того, что содержимое .secure-data (а посылается на DropBox именно оно) абсолютно нечитаемо и вполне надежно защищено от недобрых людей на той стороне облака.

С точки зрения надежности, по слухам EncFS работает вполне стабильно. Однако, меня лично напрягает то, что TM не делает бэкап этой виртуальной файловой системе. Прийдется рисовать несложный скриптик, который будет решать это досадную проблему. Пока я не доверяю этому секретному диску ничего особенно важного и все еще пытаюсь убедится в надежности такого решения. И да, это работает и в остальных нормальных OS, например в  Linux. Что там на windows я не знаю, но подозреваю, что как обычно - т.е. не очень хорошо.

UPD: сегодня на хабре подобный способ тоже описали, хотя и приговаривая "а у умпутуна упрощенный вариант" :) По сути, там большая часть заметки посвящена тому, как делать монтирование секретного диска из GUI. Если вам это надо, то вот ссылка.

25 коммент.:

Sergey Sulzhenko комментирует...

под линух бы что-то подобное...

Umputun комментирует...

а в чем проблема? fuse уже во всех нормальных линуксах из коробки, encfs тоже поставить не проблема.

Sergey Sulzhenko комментирует...

упс, оно работает на линухе ))

Dima комментирует...

Пользуюсь дропбоксом с encfs уж пару лет, как подключился на дропбокс. В основном, полет нормальный, проблем особо не было. Иногда появляются странные файлы типа .fuse_hiddenXXXXXXXXXXXXXXXX, но, вроде, ничего не пропадало. Было еще раз что-то странное с гит репозиторием, но, думаю, просто разовый глюк.

MrGALL комментирует...

Если вы под портами имели ввиду macports то команда будет: sudo port install encfs

umputun комментирует...

да, починил, спасибо.

info комментирует...

Dropbox крайне хорош своим открытым API, благодоря которому существует ряд программ для iPad, использующие Dropbox тем или иным способом. Например очень удобно заливать документы в GoodReader. К сожалению приходится идти на компромис между параноей и удобством использования, впрочем так всегда...

Olfway комментирует...

можно еще посмотреть на http://wuala.com

bartram комментирует...

Все больше возникает желания написать свой DropBox

Vyacheslav Kuznetsov комментирует...

Спасибо. Как раз подобное искал.

Евгений Андрухов комментирует...

Лично мне вполне хватает True Crypt. Когда Евгений в подкасте упомянул, что у связки True Crypt+Dropbox какие-то проблемы с синхронизацией образов, у меня аж сердце ёкнуло - неужели Дропбокс изменённые образы не опознаёт и не сохраняет копии (а то и хуже - затирает новые версии старыми). Но если проблема только в необходимости mount/unmount, то это не так страшно. Отмаунтить образ не сложно. Да и макинтоша у меня нет, чтобы вышеописанный "правильный" способ использовать :)

И если уж зашла об этом речь - нет ли подобного правильного способа для винды? Было бы интересно попробовать.

hostmaster комментирует...

У Dropbox на Wiki есть статья об этом http://wiki.dropbox.com/TipsAndTricks/IncreasePrivacyAndSafety

Windows, Linux, Mac OS

lvader комментирует...

а в чем проблема при помощи например того же Knox создать Mac'овский криптованный диск ? зачем еще что-то доустанавливать (если конечно не синхронизировать это и на win/linux) ?

Example комментирует...

Спокойно и не напрягаясь пробую Wuala. Пока нравится, несмотря на общую плавность и странность интерфейса Java-приложения клиента. Возможно через пару месяцев и удалю Dropbox.
Особенно нравится возможность делать backup и синхронизировать отдельные директории где угодно.
Понимаю, что это комментарий наверное не совсем по теме, но как вариант имейте рекомендацию.

Umputun комментирует...

ну я не знаю как еще подробней об этом сказать. об этом вся заметка по сути

Igor Nikonov комментирует...

Для винды не все так плохо: BoxCryptor http://www.boxcryptor.com/download.html понимает EncFS. Пока это бета, и бесплатно только 1Gb. Для хранения важных данных этого хватит

romx комментирует...

> Что там на windows я не знаю, но подозреваю, что как обычно - т.е. не очень хорошо.

Под Windows все как раз куда проще, с использованием встроенного, уж и не помню когда, файлового шифрования NTFS.

Anton Furin комментирует...

Спасибо! Уже начал использовать приведенное решение. Так спокойней)

Ruslan комментирует...

Вы не правы - DropBox в этом случае будет работать с расшифрованными файлами, а храниться на вашем диске они будут в зашифрованном виде.

Ruslan комментирует...

Кстати, используя TrueCrypt+DropBox вы понижаете безопасность контейнера. Злоумышленник на стороне сервера ("DropBox insider") может следить за изменениями в зашифрованном контейнере и, например, обнаружить, что вы используете скрытый раздел, и его примерный размер... Оцените степень паранои )

Евгений Андрухов комментирует...

А как злоумышленник определит, что изменения были внесены именно в скрытый раздел, а не в обычный? =)

romx комментирует...

Совсем не обязательно дропбоксу запускаться из под того же аккаунта, что и пользователь.

Ruslan комментирует...

Скрытый раздел находиться в конце контейнера, а таблица расположения файлов в FAT - в начале раздела. Если между снепшотами что-то поменялось в середине, с что-то в конце контейнера - признак скрытого раздела, т.к., когда меняются файлы, с большой вероятностью теняется и FAT. Если в начале контейнера ничего не изменилось, значит FAT - в скрытом контейнере.

Ruslan комментирует...

Интересная мысль! Надо будет попробовать.

Сергей комментирует...

Извиняюсь что не по теме. Скажите пожалуйста: у вас на
YouTube видео с наложенной музыкой. Эта музыка под какой лицензией?
Я просто хочу тоже музыку вставить и поэтому ищу подходящую музыку.

Отправить комментарий