Основы GnuPG с примерами использовани в Linux ч.1

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

 
GnuPG расшифровывается как GNU Privacy Guard и распространяется под лицензией GPL. Данный пакет входит в состав большинства Linux-based ОС, но его также можно скачать и для других платформ.
 
GnuPG является открытой реализации стандарта OpenPGP (Pretty Good Privacy), который определен в RFC 4880. В этой статье мы рассмотрим установку и основы генерации ключей с помощью GnuPG.  
 
В теорию сильно вдаваться не будем, так как все это вы сможете найти в той-же wiki, а перейдем сразу к практической части.  Рассматривать будем на примере Debian-подобной системы (а если более кратко - Ubuntu)
 
Итак, если данный пакет отсутствует в Вашем дистрибутиве, его необходимо установить -
$ sudo apt-get install gnupg

Первое что нам необходимо сделать, это создать пару открытого и закрытого ключа - 

$ gpg --gen-key

Эта команда работает в интерактивном режиме. Ниже идет пояснение по работе с данной командой.

 
1. Выбираем алгоритм, который будет использоваться для генерации ключей 
gpg (GnuPG) 1.4.11; Copyright (C) 2010 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Выберите тип ключа:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (только для подписи)
   (4) RSA (только для подписи)

Ваш выбор (?-подробнее)? 
Каждый алгоритм имеет свои преимущества и недостатки. Выберите тот, который вам больше подходит, или используйте стандартный алгоритм RSA, для чего нажмите 1 или Enter.
 
2. Выбираем размер ключа
 
После того, как алгоритм выбран, необходимо ввести размер ключа
ключи RSA могут иметь длину от 1024 до 4096 бит.
Какой размер ключа Вам необходим? (2048)
Чем больше размер ключа, тем более безопасным он является. Я думаю, что длины ключа 2048 бит вполне достаточно для достойной безопастности. Вводим размер ключа или нажимаем Enter, чтобы принять значение по умолчанию (2048)
 
3. Срок действия ключа
 
Следующий вопрос будет о сроке жизни ключа. Надо понимать, чем он меньше, тем безопаснее, но до маразма доходить не нужно. В нашем случае мы делаем его бессрочным.
Выберите срок действия ключа.
         0 = без ограничения срока действительности
      <n>  = срок действительности n дней
      <n>w = срок действительности n недель
      <n>m = срок действительности n месяцев
      <n>y = срок действительности n лет
Ключ действителен до? (0) 
То бишь оставляем по умолчанию 0, дальше подтверждаем наш выбор
Ключ не имеет ограничения срока действительности
Все верно? (y/N)
4. Создаем идентификатор пользователя (User ID) и пароль
 
Каждый ключ будет сопоставлен с идентификатором пользователя и паролем. Далее он запросит имя, e-mail и пароль.
Для идентификации Вашего ключа необходим User ID
Программа создаст его из Вашего имени, комментария и адреса e-mail в виде:
    "Baba Yaga (pensioner) <yaga@deepforest.ru>"

Ваше настоящее имя: alitius
Email-адрес: admin@greendail.ru
Комментарий: my test gpg
Вы выбрали следующий User ID:
    "alitius (my test gpg) <admin@greendail.ru>"

Сменить (N)Имя, (C)Комментарий, (E)email-адрес или (O)Принять/(Q)Выход? 
Принимаем и задаем пароль -
Для защиты секретного ключа необходим пароль.
5. Генерация ключей
 
В принципе комментарии излищни, все пояснения выведены на экран -
Необходимо сгенерировать много случайных чисел. Желательно, что бы Вы
выполняли некоторые другие действия (печать на клавиатуре, движения мыши,
обращения к дискам) в процессе генерации; это даст генератору
случайных чисел возможность получить лучшую энтропию.
.+++++
.....+++++

gpg: ключ 8CB6FE03 помечен как абсолютно доверяемый.
открытый и закрытый ключи созданы и подписаны.

gpg: проверка таблицы доверий
gpg: 3 ограниченных необходимо, 1 выполненных необходимо, PGP модель доверия
gpg: глубина: 0  корректных:   1  подписанных:   0  доверия: 0-, 0q, 0n, 0m, 0f, 1u
pub   2048R/8CB6FE03 2013-03-25
      Отпечаток ключа = B6AA 4F9C 67E3 316E 4F57  9D01 AA5C B091 8CB6 FE03
uid                  alitius (my test gpg) <admin@greendail.ru>
sub   2048R/AC185A9C 2013-03-25
Итак мы создали пару ключей с использованием GnuPG. Приведенные выше сведения, такие как 
 
Key-ID 8CB6FE03
 
Мы будем использовать этот Key-ID для выполнения различных задач, но об это немного позднее.
 
6. Просмотр списка пар ключей
 
Вы можете просмотреть список сгенерированных ключей используя опции –list-keys и list-secret-keys 
/home/alitius/.gnupg/pubring.gpg
-----------------------------------------------------
pub   2048R/8CB6FE03 2013-03-25
uid                  alitius (my test gpg) <admin@greendail.ru>
sub   2048R/AC185A9C 2013-03-25
gpg --list-secret-keys   
/home/alitius/.gnupg/secring.gpg
-----------------------------------------------------
sec   2048R/8CB6FE03 2013-03-25
uid                  alitius (my test gpg) <admin@greendail.ru>
ssb   2048R/AC185A9C 2013-03-25
7. Экспорт открытых ключей
 
Итак мы создали пару ключей, следующим шагом будет публикация вашего открытого ключа в интернет (Key Servers), для того, чтобы другие люди могли использовать этот открытый ключ для отправки сообщения Вам.
gpg --armor --export --output alitius_pubkey.gpg alitius
Теперь файл "alitius_pubkey.gpg" будет иметь мой открытый ключ. Вы также можете использовать Key-Id или E-mail адрес как аргумент командной строки.
gpg --armor --export --output alitius_pubkey.gpg 8CB6FE03

или

gpg --armor --export --output alitius_pubkey.gpg admin@greendail.ru

После чего Вы сможете отослать файл людям, с которым вам необходимо общаться

 
8. Отправка ключей на Key-сервер
 
Экспорт открытого ключа и рассылка его другим лицам может быть громоздкой, особенно если Вы общаетесь с большим количеством людей. В этом случае, вы можете загрузить открытый ключ на сервер (называется Key-server). Таким образом люди смогут получить Ваш ключ самостоятельно с этого сервера.
gpg --send-keys --keyserver keyserver.ubuntu.com 8CB6FE03
gpg: отправляю ключ 8CB6FE03 на hkp сервер keyserver.ubuntu.com
Теперь мы имеем базовые представления о GnuPG. В следующей части статьи этой серии я расскажу использовать GnuPG для шифрования, расшифровки и цифровой подписи. 
 

 

0
Голосов пока нет