Популярные новости

Наша кнопочка

    Вам понравился наш портал? Добавьте код баннера на ваш сайт/блог посредством нажатия на кнопочку:

Голосования

Вам нравится Linux?
Да, обожаю
Нет, на нем в игры не поиграешь :"(
Неплохо, для работы пойдет :)
Юзаю и Linux и Windows

 

Ubuntu-часы

Ubutu 11.10

Ubuntu 11.04 it's here

Мини Чат

Написалdazar4ik
Уважаемые гости и пользователи нашего проекта! Если вы хотите помочь нашему проекту в развитии, не стесняйтись и добавляйте ваши статьи по освоению OS Linux.
Написалdazar4ik
нр123,новинькие :)
Написалнр123
dazar4ik,дарова
Написалdazar4ik
Приветствую всех посетителей моего сайта!
НаписалISKREEM
Отличный сайт :D
НаписалJoker_kms
Доброго времени суток всем. Кирил, хороший сайт сделал laughing
НаписалMr.OFF
Кирилл выходи на связь! wink
НаписалEXCLUSIVE
Кирилл ты когда уже будешь на связи
НаписалMr.OFF
EXCLUSIVE,
ку!
НаписалEXCLUSIVE
Ку Ку
НаписалMr.OFF
dazar4ik,
Вообще норм!
Написалdazar4ik
Поставил переходы. Можете затестить ;)
Написалdazar4ik
Поменял цвет для модераторов.
НаписалMr.OFF
А что такое?
НаписалTalia
Дазарчик, вылазь, я знаю что ты тут!
НаписалTalia
а чего это у вас в чате такая тишина гробовая?

Только зарегистрированные пользователи могут отправлять сообщения.

Кто Оnline

Пользователи: - отсутствуют
Гостей: 1
Роботы: crawl Bot

Облако тегов

Требуется для просмотраFlash Player 9 или выше.

Друзья сайта

Yamobilko - Все что нужно вашему телефону... Данильченко Игорь Васильевич - Обо мне, фотки, статьи и другое... Linux 
  Format - главное в мире Linux LiNewb Проект OpenNET
linuxworld - весь Linux на ладони. » Linux-ПО » Защищаем себя средствами GnuPG
0

Защищаем себя средствами GnuPG

Автор: dazar4ik   Просмотров: 1562   Дата: 7-11-2011, 15:28

Защищаем себя средствами GnuPG


Предисловие


В последнее время очень остро стоит проблема сохранения конфиденциальности информации. Особенно в глобальной сети Интернет, где риск перехвата секретных данных весьма высок. В этой статье будет представлено описание работы пакета GnuPG (GNU Privacy Guard, GPG) вкупе с несколькими примерами применения.


GnuPG служит для создания цифровых подписей и шифрования данных. Например, вопрос идентификации писем всегда был актуальным. С помощью GnuPG можно «вложить» в письмо электронную подпись. И, таким образом, получатель определит подлинность отправителя и принадлежность ему этого письма. Процесс работы GnuPG весьма прост: за сложнейшими алгоритмами шифрования скрыта простая логика: используется пара ключей, один из которых является приватным (вы его держите у себя), а второй — публичным (он свободно бороздит просторы Сети). Файл второго содержит публичный ключ и подписи ваших респондентов. Получается, что после доставки подписанного письма получатель сравнивает публичные ключи, и таким образом идентифицирует отправителя.


Особенности GnuPG


Основные технические особенности GnuPG таковы:


  • полноценная альтернатива PGP;

  • не использует патентованные алгоритмы;

  • распространяется под лицензией GPL;

  • полная реализация OpenPGP (RFC4880);

  • расшифровывание и аутентификация сообщений, созданных с помощью PGP 5, 6 и 7;

  • поддержка электронной подписи с помощью алгоритмов ElGamal, DSA, RSA и хеш-функций MD5, SHA-1, RIPE-MD-160 и TIGER;

  • работа с асимметричным шифрованием ElGamal и RSA (длина ключа от 1024 до 4096 бит);

  • поддержка блочных алгоритмов симметричного шифрования AES, 3DES, Blowfish, Twofish, CAST5, а также IDEA с помощью модуля;

  • лёгкая реализация новых алгоритмов с помощью дополнительных модулей;

  • многоязыковая поддержка (в том числе и русского);

  • online-система помощи;

  • поддержка просроченных ключей и подписей;

  • встроенная поддержка HKP-серверов ключей.


Как уже было отмечено, GnuPG разработан в соответствии со стандартом OpenPGP, а это значит, что подписи и зашифрованные данные, созданные другими программами, совместимыми с OpenPGP, будут работать с GnuPG. Использование различных криптографических алгоритмов, таких как симметричные шифры, шифрование с открытым ключом и смешанные алгоритмы, позволяет надёжно защищать секретные данные и передавать их. Длины ключа в 1024 или 2048 бит достаточно, чтобы не беспокоиться о взломе зашифрованной информации.


GnuPG — исключительно консольная программа, но уже сейчас существует несколько графических оболочек для неё: Seahorse и GPG-Crypter, — которые упрощают работу с программой посредством интуитивно понятного графического интерфейса.


Работа с GnuPG


Первое взаимодействие с пакетом GnuPG начинается с генерирования ключей:


$ gpg --gen-key

Программа задаст несколько вопросов о длине ключей, имени и адресе электронной почты. Затем нужно будет ввести пароль для защиты ключа. Таким образом будет создана пара ключей, один из которых будет основным. Его стоит использовать для шифрования самых важных данных. Поскольку вероятность взлома есть всегда, основной ключ лучше использовать для подписи в крайних случаях. Также можно создать ещё несколько подключей, которым по усмотрению пользователя могут быть заданы другие алгоритмы шифрования, если не требуется повышенного уровня секретности данных. Такие подключи будут зависеть от основного и могут использоваться для шифрования документов или переписки. Другими словами, для каждого способа связи — свой ключ. У каждого из них есть срок использования (так же, как и у кредитных карт). Хорошим тоном является установка срока использования для подключей 1—2 года. GnuPG ведёт собственную базу, которая находится в файле ~/.gnupg/pubring.gpg. Туда и заносятся открытые (публичные) ключи ваших респондентов.


С помощью команды:


$ gpg --list-keys

можно просмотреть все ключи, находящиеся в базе. Будет выведен список ключей, показывающий их статус (pub — публичный, sub — второстепенный), длину и метод шифрования, дату создания и, главное, уникальный идентификатор (ID), представляющий собой 8-значное 16-ричное число.


Для основного ключа можно (и нужно) создать отзывающий сертификат:


$ gpg --gen-revoke $KEY

где $KEY — ID основного ключа.


Отзывающий сертификат нужен для уничтожения ключа. Это может потребоваться, например, если ключ будет украден или утерян. Даже если ключевая фраза очень надёжна, стоит заранее, еще на этапе создания ключа, подумать о возможности его уничтожения в будущем. После создания сертификата его содержимое будет выведено в stdout. Его нужно сохранить в надёжном месте (желательно на другом носителе или вообще в печатном виде), т.к. любой, завладевший этим сертификатом, может сделать ключ недействительным и удалить его из базы данных сервера открытых ключей (тогда никто не сможет получить ваш ключ). Такие базы данных хранят публичные ключи совершенно свободно. Это сделано для удобства обмена ключами: вам необязательно постоянно передавать ваш публичный ключ лично. Можно воспользоваться несколькими способами: разместить у себя на домашней странице, на портале, в котором есть поле для публичного ключа, либо воспользоваться более централизованной базой — копилкой ключей, из которой достать ваш ключ будет всегда удобно.


Чтобы использовать сертификат, нужно просто импортировать его в базу, как и любой открытый ключ:


$ gpg --import revoke-certificate.asc

а затем отправить на сервер:


$ gpg --send-keys $KEY

где $KEY — ID ключа, который будет отправлен.


Точно так же можно отправлять публичные ключи и хранить их на серверах баз данных. Для этого в первую очередь их нужно экспортировать в общую локальную базу командой:


$ gpg --import $FILE

где $FILE — файл ключа или keyring («связка», несколько ключей в одном файле).


После этого командой --sign-key $KEY (где $KEY — ID ключа респондента) нужно подписать желаемый ключ. При подписывании к нему добавляется ваш публичный ключ для того, чтобы ваши сообщения/письма могли идентифицировать другие. Затем нужно отправить подписанный вами ключ его владельцу:


$ gpg --export $KEY > userkey.gpg

— эта команда извлекает подписанный ключ отдельно для удобства отправки.


Можно сделать то же самое в виде ASCII-текста, который легко разместить в Сети:


$ gpg -a --export $KEY > userkey.asc

где $KEY — ID ключа владельца.


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


Иногда может потребоваться хранить ваши ключи (публичные или приватные) на каком-либо носителе (например, на USB flash). Для этого нужно экспортировать ключ, что можно сделать как в бинарном виде:


$ gpg --export $KEY > mykey.gpg

Так и в текстовом (ASCII armor):


$ gpg -a --export $KEY > mykey.asc

В обоих случаях $KEY — это ID вашего ключа. Вместо -a можно также использовать --armor.


В итоге, для работы с документами доступны следующие команды:


  • подписать документ (гарантирует, что документ «от вас»), к нему просто добавляется ваша электронная подпись;

  • зашифровать документ (производится шифровка выбранным алгоритмом всего документа);

  • подписать и зашифровать документ (сочетает в себе эти действия).


Вне зависимости от типа файла (как было показано выше с ключом) можно получить подпись или зашифрованное сообщение как в бинарном, так и в текстовом виде. Например, есть файл библиотеки — он двоичный. Шифруем и подписываем его, а на выходе получаем текстовый файл. После расшифровки файл приходит в своё оригинальное состояние. Это можно использовать для хранения различных файлов в таблицах реляционных баз данных: в таком случае, несмотря на различные типы файлов, после зашифровки все они будут представлять набор символов в виде строк ASCII.


Можно создавать так называемые «прозрачные» подписи (в которых будет незашифрованное содержимое документа + ваша цифровая подпись):


$ gpg --clearsign $DOC

где $DOC — путь к документу. Таким образом, будет создан файл $DOC.asc, в котором само содержание документа открыто и добавлена его цифровая подпись.


А подписи, находящиеся в отдельных файлах в бинарном виде (будет создан файл подписи $DOC.sig), создаются командами:


$ gpg --detach-sign $DOC

В текстовом (ASCII armor) виде (будет создан файл подписи $DOC.asc):


$ gpg -a --detach-sign $DOC

Такие подписи (в последних двух примерах) должны распространяться вместе с подписываемым документом.


Любой ключ также можно отредактировать командой `--edit-key'. Это позволит изменить некоторые параметры ключа: степень достоверности, если это чужой публичный ключ, секретную фразу, если это ваш приватный ключ, и другое.


Что касается степени достоверности, то в GnuPG существует 5 уровней:

  1. I don't know or won't say (я ничего не знаю о владельце этого ключа или не хочу говорить об этом);

  2. I do NOT trust (я не доверяю этому человеку);

  3. I trust marginally (я знаю этого человека и доверяю ему, но не уверен, что ключ принадлежит ему);

  4. I trust fully (я знаю этого человека и лично убедился в том, что ключ принадлежит ему);

  5. I trust ultimately (я знаю этого человека, у меня есть доступ к его секретному ключу).


GnuPG и Open Source


GnuPG существует практически в каждом дистрибутиве GNU/Linux, является обязательным пакетом в OpenBSD, NetBSD, FreeBSD и других свободных операционных системах. Множество Open Source-приложений поддерживают GnuPG посредством различных модулей. Например, gpgme (библиотека, являющаяся неким посредником между GnuPG и программами) используется следующими приложениями:


  • Почтовые клиенты Evolution (входит в состав GNOME) и Sylpheed, а с помощью расширения Enigmail GnuPG работает в почтовом клиенте Mozilla Thunderbird.

  • Jabber-клиенты Gajim и Psi.

  • KDE PIM (Personal Information Management).


У упомянутой библиотеки gpgme есть и модули для скриптовых языков. Например:


В последнее время всё больше проектов используют GnuPG для подписывания файлов с целью дальнейшей проверки их целостности (вместо использования хешей MD5, SHA1, SHA256, SHA512). Поэтому помимо архивов (особенно в Open Source-среде) на сайтах обычно лежат GPG-подписи в бинарном или ASCII-видах.


Один из основанных на исходниках (так называемых source-based) Linux-дистрибутивов использует GnuPG как основной инструмент проверки целостности файлов в системе управления программным обеспечением — Source Mage GNU/Linux.


Бинарные дистрибутивы Linux также зачастую используют пакеты, подписанные GnuPG. Например, в случае с пакетами DEB — это Debian GNU/Linux и Ubuntu, а с RPM — Red Hat, Fedora, Mandriva и многие-многие другие.


Итоги


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


 (голосов: 1)
Вернутся

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.