| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
Использование CFS, криптографической файловой системы.
Если вы хотите надежно скрыть вашу личную информацию (например, письма или номера телефонов), то можно воспользоваться самым простым способом - поместить свои данные в скрытую директорию под названием ~/.private с правами доступа 0700, чтобы только вы могли прочитать свои файлы. Вы уже смеетесь? Тогда настало время перейти к более надежным способам, основанных на криптографии. Итак - рассмотрим CFS, свободную криптографическую файловую систему от Матта Блейза (Mutt Blaze) для Unix/Linux. С помощью CFS вы можете надежно хранить вашу информацию в зашифрованном виде внутри обыкновенной директории. Используя ключ (или, если хотите, пароль), вы можете временно расшифровать ваши файлы, и они становятся доступными в течение некоторого времени - пока вы с ними работаете. CFS делает зашифрованные файлы доступными для вас с помощью локального NFS-монтирования; в документации CFS этот процесс называется <подключение> ( В этой статье рассматривается CFS версии 1.4.0beta2, дистрибутив которого вместе с несколькими полезными инструментами прилагается (см. раздел <Ресурсы>). Другие криптографические системы. Существуют и другие открытые криптографические системы, среди которых можно выделить OpenSSL, OpenSSH и TCFS ( CFS: работает в пространстве обычного пользователя, и для работы не требуется устанавливать патчи на ядро. CFS использует обыкновенный NFS loopback (локальный экспорт NFS с локальным подключением), что может создать некоторые проблемы с безопасностью. Будьте осторожны с экспортом директорий. CFS был разработан на SunOS и BSDI, а потом портирован на Linux и другие подходящие для его работы операционные системы. Поддерживаются несколько алгоритмов шифрования. TCFS: для работы требуется специфический модуль NFS для Linux или пересборка ядра. Улучшенная совместимость с ядром и расширенные атрибуты файловой системы делают TCFS более защищенной, но менее мобильной. OpenSSL: работает в пространстве обычного пользователя, и для работы не требуется устанавливать патчи на ядро. OpenSSL поддерживет большое количество методов шифрования, и даже имеет поддержку аппаратных ключей. Существуют версии OpenSSL для Linux, Windows и других сред. Но OpenSSL 3.4 позволяет производить шифрование или расшифровку только одного потока или файла за один раз. OpenSSH: Его можно использовать вместе с другими инструментами. Главным образом OpenSSH предназначен не для хранения секретных данных, а для безопасного обмена данными. Loop device mount: входит в комплект дистрибутива Red Hat. В данный момент DES - единственный серьезный метод шифрования из поддерживаемых. Loop device mount требует подготовку файла фиксированного размера или привилегий root'а (или чтобы пользовател имели права на доступ к файлам loop device). Подробнее - в man-страницах mount(8) и losetup(8). Установка CFS. В разделе <Ресурсы> есть ссылка на файл cfs-1.4.0.beta2j в формате src.rpm, который, кроме самой программы, включает: - Патч для повышения безопасности Linux. - Два установочных скрипта для Red Hat Linux. - И два удобных скрипта - decrypt и dpw.py. Так же можно скачать все эти скрипты отдельно. Всегда полезно поискать в сети более новые версии CFS и обратить внимание на новые патчи. NFS - обязательный компонент для использования CFS. Будьте осторожны с экспортом ресурсов и не сделайте случайно все ваши файлы доступными для всего мира. А лучше всего - настроить свой персональный firewall так, чтобы запретить внешний доступ к портам, используемым демонами NFS и RPC. Номера портов - 2049 и 111 (TCP и UDP) соответственно. Во всех приведенных примерах приглашение <#> означает работу под root'ом, а <$> - работу под обычным пользователем. Установите пакет с исходниками, как обычно: # rpm -iv cfs-1.4.0.beta2j-6.2a.src.rpm Затем соберите и установите CFS: # cd /usr/src/redhat/SPECS Если у вас есть трудности c установкой именно этого конкретного пакета - поищите и установите более подходящую для вашего дистрибутива версию. После установки необходимо провести небольшую настройку CFS. Используйте скрипт cfs-setup, поставляющийся вместе с этой статьей, или прочитайте документ Мэтта Блэйза <Установка и использование CFS> (см. раздел <Ресурсы>). Начинаем работу с CFS. Приведенные инструкции подходят для Red Hat Linux 6.2, 7.1, 7.2, и 7.3. Чтобы они работали в вашем дистрибутиве, могут понадобиться некоторые изменения. Убедитесь, что NFS запущена: # ps auxww | grep rpc.mountd Если rpc.mountd не присутствует в списке процессов, запустите NFS: # /etc/rc.d/init.d/nfs start Затем запустите демона CFS: # /etc/rc.d/init.d/cfsd start Теперь создайте под своим пользователем директорию с приватной информацией (например, Самый простой - запустите скрипт $ decrypt -init Другой способ создания личной директории - использование стандартных команд CFS (cmkdir и cattach): $ mkdir ~/cdata (В примере, приведенном выше, встроенная переменная среды $LOGNAME содержит ваше имя входа. Это используется для того, чтобы избежать конфликта между различными пользователями - вы можете использовать более простое название.) В обоих случаях может потребоваться 1-2 минуты для того, чтобы демон CFS cоздал директорию для временно расшифрованных файлов с именем $LOGNAME-notes. Теперь создайте тестовый файл во временной директории: $ pushd /mnt/crypt/$LOGNAME-notes Завершите ваш сеанс CFS и посмотрите, что появилось в директориях: $ cdetach $LOGNAME-notes Листинг ~/cdata должен показывать зашифрованное имя вашего файла test.txt - например, 03fa2aa5242d5a741866a6605de1ae3b. Подключите вашу директорию снова, чтобы убедиться, что ваш тестовый файл - все еще там. Опять же, есть два способа: Легкий способ - использование decrypt: $ decrypt Нормальный способ - использование cattach: $ cd ~/cdata Теперь проверьте, что ваш тестовый файл все еще там: $ cat /mnt/crypt/$LOGNAME-notes/test.txt Переходим к поиску документации для CFS, которая включает в себя man-страницы для команд cmkdir, cattach, cdetach, cpasswd и еще некоторых. Основы CFS хорошо описаны в статьях <Установка и использование CFS> и <Криптографическая файловая система для Unix>. Вы можете прочитать их с помощью команды Рассмотрим скрипты decrypt и dwp.py. Dpw.py обеспечивает графический интерфейс, и для работы этого скрипта требуется стандартный модуль Python под названием Tkinter. Преимущества и недостатки CFS: Сильные стороны CFS включают в себя различные способы уменьшения и предотвращения ошибок: - После изменения временно расшифрованных файлов CFS не требует выполнения отдельной процедуры шифрования, и таким образом можно избежать проблемы шифрования с неправильным ключом. - CFS поддерживает тайм-аут после определенного периода неактивности, поэтому временно расшифрованный файл не может случайно оказаться свободно доступным в течении долгого периода времени. Не забудьте использовать опцию тайм-аута (-I) с командой cattach. Уязвимые места CFS и некоторых других криптографических систем: - Ваш секретный ключ может быть получен с помощью различных клавиатурных шпионов, когда вы набираете его для шифрования или расшифровки. - Более привилегированные пользователи (злоумышленники или нет) могут получить доступ к временно расшифрованным файлам. - Ваши временно расшифрованные файлы могут быть различными способами перехвачены при их передаче через сеть. OpenSSH может помочь в какой-то мере, но лучше всего ограничить ваше использование CFS и OpenSSL только вашим личным компьютером, а так же хранить зашифрованные и временные данные только в локальной файловой системе. - Сохраняйте различные файлы в различных частных директориях. В документах Матта Блейза по CFS можно найти более подробное обьяснение различных вопросов безопасности CFS. Вывод. Не нужно вводить себя в заблуждение и считать, что CFS спасет нас от различных шпионов или от проблем с сетевой безопасностью. Но все равно, использование CFS - важный момент в защите информации. Мобильный компьютер с установленным Linux - вероятно, идеальное место для применения CFS, если применены другие практические меры предосторожности (настроен firewall и отключены необязательные сетевые сервисы). Даже если ваш лаптоп украдут, закодированные с помощью CFS секретные файлы останутся невидимыми. Не забывайте делать резервные копии. Самое желаемое улучшение для будущих версий CFS - это поддержка аппаратных ключей, пусть даже позаимствованная из OpenSSL. Использование аппаратных ключей решает проблему с раскрытием пароля с помощью клавиатурных шпионов при его вводе. Так же желательно было бы портировать CFS на платформу Windows, чтобы можно было работать с ним на мультизагрузочных компьютерах. Ресурсы. ftp://ftp.ssc.com/pub/lj/listings/Web/6381.tar.gz ftp://speakeasy.rpmfind.net/linux/rhcontrib/SRPMS/cfs-1.4.0.beta2-6.2.src.rpm Мэтт Блэйз, <Установка и использование CFS>, 1997 и <Криптографическая файловая система для Unix>, 1993. Вы можете прочитать эти статьи с помощью команды Mauriello, Ermelindo. |
|
| ||||||||||||||||
|