Опубликован: 20.02.2006 | Доступ: свободный | Студентов: 2942 / 490 | Оценка: 4.22 / 3.75 | Длительность: 33:08:00
ISBN: 978-5-9556-0087-1
Лекция 9:

Криптографические средства

Установка GnuPG

Многие современные версии Linux и BSD поставляются с предустановленной системой GnuPG. Это можно проверить, набрав в командной строке gpg --version. Если появится листинг с информацией о программе, то можно пропустить данный раздел и сразу перейти к применению GnuPG.

Проверьте также, содержат ли ваши дистрибутивные диски файл RPM для автоматической установки. Если вы хотите получить самую свежую версию, то на web-сайте имеются RPM для многих дистрибутивов. Если там есть RPM для вашей ОС, загрузите его и просто щелкните на нем мышью, чтобы установить программу. Если RPM отсутствует, то можно загрузить .tar-файлы с прилагаемого к книге компакт-диска или с официального Web-сайта и скомпилировать их вручную с помощью следующих инструкций:

  1. Распакуйте .tar-файлы, затем наберите обычные команды компиляции:
    ./configure
    make
    make install

    Программа создаст структуру каталогов с корнем .gnupg в вашем пользовательском каталоге, где будут храниться ключи и другая информация.

  2. (Необязательно) После установки GnuPG наберите make clean, чтобы избавиться от бинарных или временных файлов, созданных в процессе конфигурирования.

Создание ключевых пар

После установки программы прежде всего необходимо создать свою пару ключей открытый-секретный. Если у вас уже есть ключ и вы хотите импортировать его в GnuPG, воспользуйтесь командой:

gpg --import маршрутное_имя_файла_ключей

Следует выполнить эту инструкцию для вашего кольца открытых ключей и отдельно - для кольца секретных ключей. Обычные форматы для колец ключей - pubring.pkr и secring.skr.

Если ключей у вас еще нет, следуйте приведенной ниже процедуре.

  1. Наберите gpg --gen-key. Будет запущен процесс, который запросит у вас некоторые данные.
  2. GnuPG попросит задать длину ключей в битах (по умолчанию - 1024, что обычно достаточно для надежной криптографии с открытым ключом). Можно увеличить длину до 2048 для усиления безопасности.
  3. Как правило, вам не нужно, чтобы ваши ключи имели ограниченный срок годности, но в специальном случае, когда ключи будут применяться ограниченное время, можно указать, когда истечет срок их действия.
  4. GnuPG запросит у вас имя и адрес электронной почты. Эти данные важны, поскольку они определяют индексацию открытого ключа на серверах открытых ключей.
  5. Наконец, GnuPG предложит ввести парольную фразу. Она должна быть достаточно длинной и сложной, но в то же время легко запоминаемой. (См. описание парольной фразы выше в этой лекции, в разделе о PGP). После двукратного ввода парольной фразы GnuPG создаст ключи. Это может занять некоторое время. В ходе этого процесса следует немного подвигать мышью. GnuPG использует случайные сигналы клавиатуры и мыши для повышения энтропии своего датчика случайных чисел.

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

Создание сертификата отзыва

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

Чтобы создать сертификат отзыва, введите:

gpg - output revoke.asc - gen-revoke пользователь

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

Публикация открытого ключа

Желательно разместить ваш открытый ключ на сервере ключей, чтобы его можно было легко найти и послать вам сообщение. Чтобы сделать это, наберите команду:

gpg - keyserver имя_сервера_открытых_ключей - send-key пользователь

где пользователь задается адресом электронной почты, с которым ассоциируется публикуемый ключ. Можно использовать любой сервер открытых ключей PGP, так как все они регулярно синхронизируются. Выберите любой из них, и ваш открытый ключ будет распространен на все остальные. Имеется много серверов открытых ключей, например:

  • certserver.pgp.com
  • pgp.mit.edu
  • usa.keyserver.net

Шифрование файлов с помощью GnuPG

Для зашифрования файла служит команда -- encrypt, имеющая следующий формат:

gpg -- output зашифрованный_файл -- encrypt -- recipient адрес 
  шифруемый_файл

Здесь адрес - это электронный адрес пользователя, которому вы хотите отправить зашифрованный файл. Отметим, что вы должны иметь открытый ключ адресата в своем кольце ключей.

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

gpg --output зашифрованный_файл --symmetric шифруемый_файл

Расшифрование файлов

Для расшифрования полученных файлов при помощи GnuPG, воспользуйтесь следующей командой:

gpg --output расшифрованный_файл --decrypt зашифрованный_файл

Чтобы расшифровать файл, необходимо иметь в своем кольце секретных ключей ключ пользователя, для которого файл был зашифрован. У вас запросят парольную фразу, и если вы введете ее правильно, GnuPG создаст расшифрованный файл.

Подписывание файлов

Как упоминалось выше, имеется еще одно применение GnuPG и PGP - подписывание документов для контроля их целостности. Это можно сделать с помощью следующей команды:

gpg --output подписанный_файл --sign подписываемый_файл

Обычно GnuPG автоматически проверяет подпись при получении файла. Верификация файла по инициативе пользователя осуществляется с помощью команды

gpg --verify подписанный_файл

Можно создавать подписи в текстовом виде и отдельно от файла, если вы хотите, чтобы пользователи без GnuPG могли получить к ним доступ. Для этого имеются две команды. Команда

gpg -- clearsign подписываемый_файл

создает текстовое дополнение к подписываемому файлу. Если вы не хотите изменять этот файл, можно создать отдельный файл подписи с помощью команды

gpg --output файл_подписи --detache-sign подписываемый_файл

Модель сети доверия PGP/GnuPG

Как упоминалось ранее, вместо иерархической системы доверия, с цифровыми сертификатами и удостоверяющим их центром, в PGP и GnuPG используется модель сети доверия. Подписывая ключи людей, которых вы знаете, вы можете проверить, что их ключ заслуживает доверия. А если они подписывают ключи других людей, которых вы не знаете непосредственно, вы создаете цепочку доверия. Такая модель основана на идее "друг моего друга - мой друг". Модель, конечно, несовершенна; кто-нибудь в дальней части цепочки доверия может оказаться плохим парнем. Но основной принцип состоит в естественном росте цепочки без какой-либо инфраструктуры, и поэтому ее нельзя легко разрушить или "раздуть". Вы создаете сеть доверия, подписывая ключи каких-то людей и предоставляя им возможность подписывать ваши. В примере на рис. 9.6 Тони может неявно доверять ключам Джейн, Джо, Джона и Евы, хотя он не знает их непосредственно.

Модель сети доверия

Рис. 9.6. Модель сети доверия
Роман Попов
Роман Попов

После прохождения курса Стандарты инфрмационной безопасности мне предложено получение Удостоверения о повышении квалификации от НИУ ВШЭ по программе Менеджмент информационной безопасности. Программа включает в себя ряд курсов которые я уже ранее проходил. Какой порядок действий в данном случае? Как прозводится перезачет результатов? И какие экщамены мне надо еще доздать чтобы получить удостоверение?

Александр Путятинский
Александр Путятинский

Добрый день по окончании данного курса выдается сертификат?