Облачный хостинг VDS за 2 минуты

Настоящий облачный VDS-хостинг от UltraVDS: тестируем производительность

Дельта-синхронизация крипто-дисков

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

Смотрим плавность хода с помощью BMW Rheingold

Всем знакома ситуация, когда двигатель немного "троит", но пропусков зажигания нет...

Дельта синхронизация без облака

Ранее мы показывали разные способы синхронизации криптодиска между ПК и Android-устройством.

Электронная подпись в Linux. Программа GPG


Электронная подпись

В этой статье мы рассмотрим программу GnuPG, использующуюся для безопасного хранения и передачи данных, — ведь при транспортировке файлов по Интернету от разработчика (или автора документа) к вам файлы могут быть изменены третьими лицами. GnuPG полностью соответствует стандарту OpenPGP и может применяться для проверки подлинности получаемых программ и документов.

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

к сожалению, она не поддерживает стандарт PGP2 — тогда бы GnuPG не была бесплатной.

GnuPG входит в состав большинства дистрибутивов и даже устанавливается по умолчанию. Если GnuPG не установлена по умолчанию, следует установить пакет gpg (или gpgv — в зависимости от дистрибутива). Также можно установить пакеты gpgp и kgpg (обратите внимание на названия пакетов!) — это оболочки GnuPG, соответственно, для GNOME и KDE.

Использование программы

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

Для тестирования работы программы нужно, чтобы в системе было хотя бы две пользовательские учетные записи. Мы попробуем зашифровать сообщение одного пользователя и передать его другому пользователю, чтобы он его расшифровал. Для определенности будем считать, что у нас есть пользователи den и user2. Войдите в систему как пользователь den, перейдите в домашний каталог и введите команду: $ gpg. Программа создаст все необходимые подкаталоги (рис. 35.1) и по-просит вас ввести текст сообщения. Ничего вводить не надо, просто нажмите клавиатурную комбинацию Ctrl+C — нам только и нужно было, чтобы программа создала в домашнем каталоге все необходимые для нормальной работы подкаталоги.

Рис. 1. Первый запуск программы gpg

Затем введите команду: $ gpg --gen-key.

Первым делом программа попросит выбрать алгоритм шифрования (рис. 2). По умолчанию используется первый алгоритм (DSA и Elgamal). Все алгоритмы хороши, но вам нужно знать некоторые особенности каждого алгоритма:

  • RSA — служит для шифрования и для создания цифровой подписи (цифровая подпись позволяет удостовериться, что автор документа именно вы, а не кто-то другой), но GnuPG использует его только для подписи;
  • DSA — служит только для создания цифровой подписи;
  • Elgamal — используется только для шифрования информации;
  • DSA + Elgamal — можно применять для шифрования и подписи.

Как видите, первый алгоритм более универсальный — его можно использовать как для шифрования информации, так и для цифровой подписи, поэтому смело вво- дите 1.

После этого программа попросит ввести длину ключа:

What keysize do you want?

Учитывая мощность современных компьютеров, минимальная длина ключа должна быть не менее 2048 битов, иначе ваше сообщение относительно быстро расшиф- руют.

Рис. 2. Настройка программы

Следующий шаг — ввод срока действия ключа:

  • 0 — неограниченный срок действия;
  • n — ключ действителен n дней;
  • <n>w — ключ действителен n недель;
  • <n>m — ключ действителен n месяцев;
  • <n>y — ключ действителен n лет.

    После этого вы увидите дату окончания действия ключа, и программа спросит, все ли правильно. Если все введенные данные верны, нажмите клавишу . Далее программа попросит вас ввести ваше имя, адрес e-mail и комментарий для ключа (рис. 3).

    Рис. 3. Информация о владельце ключа

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

    После ввода пароля и его подтверждения вам предстоит усердно понажимать кла-виши на клавиатуре — это необходимо для создания случайных байтов. Нужно ввести как минимум 192 символа (рис. 4).

    Рис. 4. Генерирование случайных байтов

    Затем вы увидите сообщение, что ключ создан. Также программа отобразит все па-раметры ключа (рис. 35.5).

    Самое время экспортировать ключ:

    $ gpg --export –ao den.asc

    Рис. 5. Ключ создан

    Можно просмотреть созданный ключ (рис. 6): cat den.asc. Полученный таким способом ключ называется открытым ключом. Вам нужно ра-зослать его всем пользователям, с которыми вы планируете обмениваться важной информацией. Можно также выложить его на Web-сайте.

    Теперь зарегистрируйтесь под вторым пользователем (user2) и аналогичным обра-зом создайте ключ для него. Ключ нужно экспортировать в файл user2.asc.

    После этого следует обменяться ключами — т. е. ключ пользователя den скопиро-вать в домашний каталог пользователя user2 и наоборот: su

    # cp /home/den/den.asc /home/user2
    # cp /home/user2/user2.asc /home/den
    

    Затем нужно подписать ключи. От имени первого пользователя (т. е. пользователя den) введите команду:

    gpg --sign user2.asc

    Рис. 6. Созданный ключ

    Программа запросит пароль. Нужно ввести пароль, который вы вводили при созда-нии ключа пользователя den (рис. 7). Войдите в систему как пользователь user2 и подпишите ключ den.asc:

    gpg --sign den.asc

    Теперь проверим, как работает GnuPG. Пока вы находитесь в консоли под именем user2, введите команду:

    echo "Hello, Den" > message.txt

    Как вы уже догадались, команда создаст файл message.txt. Теперь зашифруем со-общение для пользователя den:

    [user2@localhost user2]$ gpg –sear dhsilabs@mail.ru message.txt

    Вместо электронного адреса адресата можно использовать его фамилию, напри- мер,

    [user2@localhost user2]$ gpg –sear "Denis Kolisnichenko" message.txt

    Программа попросит ввести пароль ключа пользователя user2.

    ВНИМАНИЕ!

    Будьте внимательны и не введите случайно пароль ключа пользователя den. На прак-тике такая ситуация исключена, а вот во время эксперимента всякое может случиться. Программа зашифрует файл и сохранит его под именем message.txt.asc. Его нужно скопировать в домашний каталог пользователя den и уже от его имени ввести команду:

    gpg –d message.txt.asc > message.txt

    Рис. 7. Пользователь den подписал ключ user2.asc

    Программа запросит пароль ключа пользователя den и расшифрует файл. В итоге в домашнем каталоге пользователя den появится файл message.txt с текстом "Hello, Den".

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