Рубрика:
Безопасность /
Сетевая безопасность
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
ВЛАДИМИР МЕДВЕДЕВ, руководитель ИТ-направления ГК «Колизей Технологий». Интересуется управлением и внедрением ИТ-систем, технологиями виртуализации, информационной безопасностью и криптографией
Конфиденциальность гарантируется Применение криптосистемы GnuPG в масштабах предприятия
Проблема сохранения конфиденциальности информации, передаваемой через Интернет, весьма актуальна. Система, базирующаяся на стандарте OpenPGP, позволяет ее решить
Почему важно защищать конфиденциальную информацию?
Информация, передаваемая по корпоративной локальной сети или Интернету, может быть легко перехвачена и прочитана злонамеренными и заинтересованными в ней лицами. Среди них можно назвать конкурентов, занимающихся промышленным шпионажем, спецслужбы или просто случайных людей. Кроме того, копия сообщения может остаться в кэше сервера интернет-провайдера, серверах интернет-кафе, серверах электронной почты и т.п.
Отправитель, зашифровав сообщения и передаваемые файлы для своего адресата, ограничивает число получателей, способных прочесть передаваемую информацию, лишь теми, кому она действительно адресована. Все сторонние наблюдатели по-прежнему будут иметь доступ к зашифрованному письму или файлу, но уже не будут иметь ни малейшего представления о его содержании.
Злоумышленник легко может перехватить послание, подделать и модифицировать служебные заголовки и сведения об адресатах, тем самым скомпрометировав отправителя и его электронный адрес. Применение ЭЦП (электронной цифровой подписи) позволяет легко определить, что содержимое письма не было искажено или подделано по пути к получателю, то есть является подлинным.
Обеспечение безопасного обмена информацией с помощью средств криптографической защиты информации (СКЗИ)
Доступно несколько технических реализаций обеспечения безопасного обмена информацией. Прежде всего это криптосистемы с открытым ключом – в частности, основанные на стандарте OpenPGP (PGP в названии – от Pretty Good Privacy, англ.: довольно хорошая секретность), а также системы, использующие PKI (Public Key Infrastructure, англ.: инфраструктура открытых ключей).
Различные решения, базирующиеся на OpenPGP и PKI, позволяют выполнять операции шифрования, расшифровки и цифровой подписи сообщений, файлов и т.п. с помощью ключевой пары – закрытого и открытого ключей.
Остановимся подробнее на системах, основанных на стандарте OpenPGP. Приложения, поддерживающие его, выполняют свои функции путем использования следующих технологий [1]:
- электронные цифровые подписи;
- шифрование;
- сжатие;
- преобразования Radix-64 (все данные передаются в виде ASCII-текста).
Кроме того, стандарт OpenPGP описывает механизмы управления ключами [1]. В отличие от PKI, где сертификат подписывается центром сертификации и формируется доверительная структура в виде дерева, в OpenPGP сертификат обычно создается и подписывается лично (то есть является самоподписанным сертификатом). Кроме того, сами пользователи подписывают сертификаты друг друга, формируя «сеть доверия» (так называемая Web of Trust). Например, в случае корпоративного применения руководитель группы подписывает сертификаты своих подчиненных.
Свободная реализация OpenPGP: GnuPG (GPG)
GnuPG (GNU Privacy Guard, англ.: страж безопасности GNU, или просто GPG) [2] – это криптографическое ПО с открытым исходным кодом, основанное на стандарте OpenPGP и служащее для генерирования ключей, шифрования данных, сообщений электронной почты и файлов, а также создания электронных цифровых подписей. Используя GnuPG для шифрования своих данных, владелец информации может надежно защитить информацию от чужих глаз, причем прочесть ее сможет только он сам или авторизованный получатель. Подписывая электронные письма или файлы, отправитель гарантирует, а получатель проверяет подлинность отправителя, принадлежность ему этого письма и целостность полученной информации.
Особенности GnuPG
Рассмотрим основные технические особенности [3]. GnuPG:
- является полноценной альтернативой коммерческому PGP;
- не использует патентованные алгоритмы;
- поддерживает электронные подписи с помощью алгоритмов ElGamal, DSA, RSA и хеш-функций MD5, SHA-1, RIPE-MD-160 и TIGER;
- работает с асимметричным шифрованием ElGamal и RSA (длина ключа от 1024 до 4096 бит);
- поддерживает блочные алгоритмы симметричного шифрования AES, 3DES, Blowfish, Twofish, CAST5, а также IDEA с помощью модуля;
- простота добавления новых алгоритмов путем подключения дополнительных модулей;
- поддерживает ключи с истекшим сроком действия;
- имеет встроенную поддержку HKP-серверов ключей (Horowitz"s Keyserver Protocol, по имени создателя первого сервера ключей PGP – Марка Хоровитца);
- распространяется под лицензией GPL.
Благодаря совместимости со стандартами OpenPGP все, что было подписано и зашифровано с помощью других OpenPGP-совместимых программ, может быть прочитано с помощью GnuPG [3].
GnuPG распространяется в виде открытых исходных кодов и бинарных пакетов, доступен практически в каждом дистрибутиве GNU/Linux, является обязательным пакетом в OpenBSD, NetBSD, FreeBSD и других свободных операционных системах. Также доступна его реализация и для ОС семейства MS Windows [3].
Поддержка GnuPG встроена во многих популярных приложениях, а там, где она отсутствует, ее можно добавить с помощью дополнительных модулей. Среди таких программ могут быть названы:
- почтовые клиенты Evolution, Sylpheed, KMail, Mozilla Thunderbird, The Bat!, MS Outlook и многие другие;
- Jabber-клиенты Gajim, Kopete и Psi.
Правовые аспекты использования OpenPGP/GnuPG в России
Нельзя упускать из вида и правовые аспекты применения программных решений, основанных на стандартах OpenPGP и GnuPG в частности, на территории РФ.
В законодательстве РФ отсутствуют прямые указания, касающиеся описываемых средств криптографической защиты информации (СКЗИ). Однако даны общие указания, регулирующие применение СКЗИ. На момент написания статьи они были следующие:
- Согласно ст. 5 закона «Об информации, информационных технологиях и о защите информации», информационный ресурс является объектом гражданско-правовых отношений. Обладатель информационного ресурса, физическое или юридическое лицо, вправе «разрешать или ограничивать доступ к информации, определять порядок и условия такого доступа» [4].
- Согласно ст. 16 вышеназванного закона, «при создании и эксплуатации государственных информационных систем, используемые в целях защиты информации, методы и способы ее защиты должны соответствовать указанным требованиям (федеральных органов обеспечения безопасности и противодействия техническим разведкам и технической защиты информации)». Одним из таких требований является обязательная сертификация средств, используемых в подобных системах [4].
Таким образом, мы можем законно применять СКЗИ GnuPG в качестве средства защиты информационных ресурсов для обработки и хранения информации как в личных, так и в коммерческих целях. Однако GnuPG не является сертифицированным в России СКЗИ. Следовательно, он не может применяться в госучреждениях и при контактах с ними, а также в любых информационных системах, связанных с хранением и обработкой сведений, составляющих государственную тайну РФ [4].
Установка корпоративного сервера ключей OpenPGP на базе SKS
Собственный корпоративный сервер ключей OpenPGP позволяет централизованно загружать, хранить, обмениваться и просматривать открытые ключи PGP/GPG в базе данных. Он также может синхронизироваться с другими серверами, поддерживая распределенную базу ключей, значительно упрощая их распространение среди пользователей.
Рассмотрим пример установки и настройки сервера ключей в среде ОС Debian GNU/Linux версии 5.0.3 «Lenny». В качестве сервера ключей был выбран SKS OpenPGP Key Server (Synchronizing Key Server) [5]. Среди альтернативных вариантов также рассматривались PGP Keyserver [6], PKS [7] и CKS [8], которые, однако, были отвергнуты в связи с их стоимостью или сложностью установки и настройки.
SKS поддерживает стандарты RFC2440 [1] и RFC2440bis. Он способен как отправлять, так и получать электронные сообщения синхронизации в стиле PKS (в целях совместимости с серверами, основанными на нем). SKS поддерживает запросы по стандартному протоколу HKP/Web, легко настраивается.
В репозитории дистрибутива Debian доступна версия пакета 1.1.0-4 (на момент написания статьи). Он устанавливается с помощью следующей команды:
$ sudo aptitude install sks
Вместе с сервером SKS будут установлены пакеты db и procmail, если ранее они отсутствовали в системе. Затем потребуется создать базу данных для хранения ключей:
$ sudo sks build
Когда процесс создания базы данных будет завершен, следует проверить работоспособность сервера, выполнив следующую команду:
$ sudo sks db
Для прерывания работы сервера и возврата в консоль необходимо нажать + .
Следующим этапом является установка прав доступа на базу данных, используемую для хранения ключей. В дистрибутиве Debian для этого существуют специальные учетные записи пользователя и группы – debian-sks:
$ sudo chown -Rc debian-sks:debian-sks /var/lib/sks/DB
Также важно отметить, что сервер SKS автоматически не запускается при перезагрузке компьютера. Для того чтобы разрешить его автозапуск в файле /etc/default/sks добавим следующую строку:
initstart=yes
Но и после этих манипуляций сервер SKS, скорее всего, не запустится. Для того чтобы это исправить, отредактируем скрипт /etc/init.d/sks таким образом, чтобы при старте SKS автоматически создавался каталог /var/run/sks. Для этого в секции start между строками, где происходит проверка настроек в файле /etc/default/sks, и перед строкой echo -n "sksdb.." (строка 71) добавим следующие строки:
mkdir -p `dirname "$SKSDBPID"` chown debian-sks `dirname "$SKSDBPID"`
После выполнения всех вышеописанных правок можно запустить сервер ключей:
$ sudo /etc/init.d/sks start
Теперь сервер SKS будет слушать порт 11371 и принимать подключения клиентов.
Порт по умолчанию, имя узла сервера, адрес электронной почты администратора и многие другие параметры работы сервера задаются в конфигурационном файле /etc/sks/sksconf, например:
# Имя узла сервера SKS hostname: sks.domain.local
# Адрес, к которому будет привязан HKP hkp_address: sks.domain.local
# Порт HKP, который будет прослушивать сервер hkp_port: 11371
# E-mail администратора, использующийся при синхронизации с другими серверами ключей from_addr: "PGP Key Server Administrator "
За более подробными сведениями по тонкой настройке SKS следует обратиться к странице man sks.
Установка GnuPG в среде ОС MS Windows
Скачаем файл установки GnuPG [9] с официального сайта проекта [2]. На момент написания статьи последней стабильной версией являлась 1.4.10b. Процесс установки программы стандартен и не должен вызвать каких-либо трудностей. После завершения установки необходимо добавить путь установки в переменную системного окружения PATH. Запустим апплет панели управления sysdm.cpl. На вкладке Дополнительно нажмем кнопку «Переменные среды». В появившемся диалоговом окне среди системных переменных найдем переменную Path и изменим ее, добавив в конец строку C:Program FilesGNUGnuPG, отделив ее от предыдущего значения с помощью точки с запятой (см. рис. 1). На этом этапе установку можно считать полностью законченной, если не принимать во внимание один факт: GnuPG является консольной программой и не имеет графического интерфейса.
Рисунок 1. Добавление пути к gpg.exe в системную переменную PATH
Графические оболочки к GnuPG в среде ОС MS Windows
Весь диалог с утилитой GnuPG организован посредством командной строки. Есть области и задачи, где данный способ диалога с программой является предпочтительным или даже единственным. Однако не стоит забывать об удобстве для пользователя, которому требуется максимальная прозрачность в работе с цифровыми подписями, зашифрованными и подписанными файлами, сообщениями электронной почты, ключами и т.п. Поэтому процесс взаимодействия с криптографическим ПО необходимо максимально упростить и сделать наглядным и доступным. На помощь нам приходят графические оболочки.
Разработано множество программ, предоставляющих удобный графический интерфейс к GnuPG и предназначенных для работы под MS Windows. Одни из наиболее известных «нативных» фронтэндов – это GPGshell [10] и WinPT [11]. Под MS Windows также портированы некоторые приложения для UNIX-like ОС – Kleopatra (окружение KDE) и GPA (окружение GNOME), доступные, например, в составе пакета Gpg4win [12].
Мы не будем вдаваться в подробности и детально рассматривать каждую из оболочек. Вместо этого остановимся на одной из них – GPGshell – и на ее примере разберем типичные сценарии применения GnuPG.
Состав и предназначение компонентов пакета GPGshell
В состав GPGshell [10] входит ряд программ-утилит, существенно облегчающих процесс использования GnuPG. Рассмотрим каждую из них в отдельности.
- GPGconfig – простая и удобная программа для настройки GnuPG.
- GPGkeys – функциональный менеджер ключей GnuPG, существенно облегчающий создание, импорт, экспорт, загрузку на сервер, подписывание и редактирование ключей. Также из меню этой утилиты доступны настройки GnuPG и управления ключами по умолчанию.
- GPGsfx – создает самораспаковывающиеся зашифрованные архивы.
- GPGtools – программа представляет собой «плавающую» панель, обеспечивающую быстрый доступ к созданию зашифрованных и подписанных файлов, а также к их проверке.
- GPGtray – это удобная утилита, позволяющая быстро выполнять рутинные операции по работе с GnuPG (такие как экспорт и импорт ключей, подписывание, шифровка и расшифровка файлов и буфера обмена) всего в несколько кликов мыши.
- GPGview – программа обеспечивает просмотр фото ID владельцев ключей.
Установка и настройка GPGshell
На момент написания статьи последней версией программы GPGshell являлась 3.75, которую можно скачать с сайта разработчика [13].
Процесс установки программы стандартен и не должен вызвать каких-либо трудностей.
На завершающем этапе установки на экран будет выведен запрос о том, где разместить GPGshell-HomeDir – каталог, в котором будут храниться настройки, списки, временные файлы и другая служебная информация (см. рис. 2).
Рисунок 2. Выбор домашнего каталога для GPGshell
По умолчанию будет предложен путь:
- %userprofile%application datagpgshell – для ОС MS Windows 2000/XP/2003;
- %userprofile%appdata oaminggpgshell – для ОС MS Windows Vista/2008/7/2008 R2.
Можно ответить «Да» или «Нет», так как в любом случае данный путь можно будет изменить в дальнейшем.
Может появиться сообщение об ошибке, говорящее, что GnuPG не найден в системе (см. рис. 3). В этом случае необходимо проверить, указан ли путь C:Program FilesGNUGnuPG в системной переменной окружения PATH (см. рис .1) и есть ли по указанному пути файлы GnuPG.
Рисунок 3. Сообщение об ошибке: GnuPG не найден в системе
Также стоит проверить, существует ли строковый параметр REG_SZ с именем Install Directory и значением C:Program FilesGNUGnuPG в ветке HKLMSOFTWAREGNUGnuPG реестра Windows. Если он отсутствует, то его необходимо создать, например, с помощью следующего reg-файла:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESOFTWAREGNUGnuPG] "Install Directory"="C:Program FilesGNUGnuPG"
Установка завершена.
Развертывание GnuPG и GPGshell с помощью групповых политик
Если клиентских компьютеров очень много и произвести установку в ручном режиме не представляется возможным, то удобно создать MSI-пакет из скачанных инсталляторов, а затем распространить его среди пользователей посредством GPO. Процесс сборки MSI-пакета состоит в «фиксации» состояния конфигурации компьютера до и после установки и настройки программного обеспечения. Затем производится сравнение записанных состояний, на основании которого и создается MSI-пакет. Подробная инструкция о процессе создания пользовательского пакета MSI содержится в базе знаний Microsoft [14].
- Установим Veritas Software Console (файл Swiadmle.msi, приблизительно 5,71 Мб, можно скачать, например, с источника [15]). В меню Start -> Programs -> Veritas Software запустим Veritas Discover.
- Укажем название создаваемого MSI-пакета: GPG. В следующем поле введем имя и путь к создаваемому MSI-пакету, например %userprofile%desktopgpg.msi. В последнем поле выберем русский язык.
- Выберем диск, который WinINSTALL Discover будет сканировать на предмет обнаружения изменений после установки программ.
- Согласимся, когда программа предложит исключить некоторые файлы и каталоги из списка анализируемых. Затем приступим к созданию снимка состояния компьютера до установки ПО – Before Snapshot. На заключительном этапе создания снимка откажемся от запуска программы установки, нажав Cancel.
- Установим и полностью настроим программы GnuPG и GPGshell, после чего еще раз запустим программу Veritas Discover. Выберем режим работы программы Perform the ‘After’ snapshot now.
- Затем мы можем проверить созданный MSI-пакет и при необходимости изменить какие-либо параметры. Для этого следует проследовать в меню Start -> Programs -> Veritas Software и запустить Veritas Software Console и открыть требуемый MSI-пакет
Сценарии практического применения GnuPG
Наша связка GnuPG и GPGshell во главе с корпоративным сервером PGP-ключей SKS установлена, настроена и готова к работе. В следующих статьях будут рассмотрены сценарии практического применения криптосистемы GnuPG для защиты конфиденциальных данных и информации:
- сценарии создания, импорта и экспорта PGP-ключей;
- сценарии работы с файлами и буфером обмена;
- сценарии защиты переписки по электронной почте;
- сценарии защиты коммуникаций через системы обмена мгновенными сообщениями.
- http://www.ietf.org/rfc/rfc2440.txt.
- http://www.gnupg.org.
- http://www.nixp.ru/articles/Защищаем-себя-средствами-GnuPG.html.
- http://www.pgpru.com/faq/proekt#h47-5.
- http://minskyprimus.net/sks.
- http://www.pgp.com.
- http://pks.sourceforge.net.
- http://cryptnet.net/fsp/cks.
- ftp://ftp.gnupg.org/gcrypt/binary/gnupg-w32cli-1.4.10b.exe.
- http://www.jumaros.de/rsoft/index.html.
- http://winpt.gnupt.de.
- http://www.gpg4win.org.
- http://www.jumaros.de/rsoft/download/gpgsh.php.
- http://support.microsoft.com/kb/257718.
- ftp://ftp.uni-leipzig.de/pub/novell/WINSTLE/SWIADMLE.MSI.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|