воскресенье, 20 ноября 2011 г.

Проще, и в то же время надежнее эту же задачу можно решить с помощью пакета libpam-encfs. Создаем папку .private, она будет криптована и private (без точки) -- ее расшифрованное отображение. При создании encfs не забываем применить expert mode и выбрать для имен файлов null-шифрование. Иначе дропбокс будет непрерывно пересинхронизировать файлы. Некоторое снижение секретности здесь неизбежно, с другой стороны папка на гигабайт с именами файлов типа aldkjasldkjasldkj тоже вызывает нездоровый интерес.
Конфигурирование pam-encfs производится в /etc/security/pam_encfs.conf. Комментируем строку с заданием времени idle=1, или подбираем время автодемонтирования по вкусу. Раскомментируем строку вида
* .private private -v allow_other, это позволит при каждом логине через pam автомонтировать папку .private в private, пароль encfs при этом должен совпадать с паролем логина.  Также следует добавить опцию user_allow_other в fuse.conf.

Делаем симлинк на .private в папку Dropbox, и позволяем ему все в себя всосать. Аналогичные процедуры проводим на всех машинах, тянущих файлы с этого дропбокса. В результате через криптованную папку .private и ее некриптованное отображание в локальной системе имеем безопасный обмен. 

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

воскресенье, 12 июня 2011 г.

Чтобы хранить что-то в дропбоксе в криптованном виде, можно воспользоваться следующей командой:

cat ~/.pswd | encfs -S --reverse ~/devel ~/Dropbox/devel


 Здесь ~/devel -- исходник, криптованный вид которого оказывается в ~/Dropbox/devel, а ~/.pswd -- файл, в котором записан пароль для шифрования.


Для восстановления оригинала по криптованной копии нужно держать где-то еще копию файла .encfs6.xml из папки ~/devel. Тогда можно подмонтировать криптованную копию командой:

cat ~/.pswd  | ENCFS6_CONFIG=~/saved/.encfs6.xml encfs -S  ~/Dropbox/devel ~/d

Здесь ~/d -- "живая" копия исходной папки, а ~/saved/.encfs6.xml -- копия соответствующего файла, вытащенная откуда-то еще. Все ее изменения  будут транслироваться на криптованную, а если она смонтирована из исходной, то и на нее. Так можно расшаривать папки, прозрачно шифруя их в дропбоксе. Если это не желательно, к команде выше надо добавить "-- -o ro".

Картинка для отвлечения внимания
Я просто положу это здесь
То же самое, но в виде файла

четверг, 24 июня 2010 г.

Для памяти: Philips/NXP выпускает совершенно замечательные расширители ввода-вывода, управляемые по i2c. PCA9535, PCA9555 и т.п. Эротические танцы со сдвиговыми регистрами и мультиплексорами остаются в прошлом.

четверг, 29 апреля 2010 г.

Генератор паролей для онлайн-сервисов

При использовании нескольких веб-сервисов существует опасность взлома одного из них и получения злоумышленником пароля пользователя. Ущерб от этого возрастает многократно, если пользователь поленился использовать различные пароли для всех сервисов. Простой способ иметь общий секрет для всех сервисов, но разные пароли к ним - это порождение паролей с помощью хэш-функции от секрета с добавлением уникальной строки для каждого сервиса. При этом пароли все будут разные, секрет надо будет запомнить только один, а восстановить секрет, даже если злоумышленник завладел одним или несколькими паролями, будет достаточно сложно. Вот алгоритм, который использую я (bourne shell):

echo "Service name:"
read s
echo "User name:"
read u
echo "Secret password:"
read p
ts=`echo "$u@$s" | sha1sum | cut -f 1 -d ' '`
ps=`echo "$p" | sha1sum | cut -f 1 -d ' '`
key=`echo "$ts:$ps" | sha1sum | cut -b 1-12`
echo $key