Pgp ключ как создать
Pgp ключ как создать
Шифрование PGP
Аутентификация гарантирует, что если некоторая информация была создана Вами и выложена для публичного доступа, то она действительно поступила от Вас и не была никем фальсифицирована или изменена в пути.
PGP основана на криптографической системе, известной как открытый ключ, которая может быть использована на ненадежных каналах. Это делает ее идеальной для обеспечения защиты информации, передаваемой по таким сетям, как Internet.
В системах с открытым ключом каждый из участников информационного обмена имеет два ключа, взаимно дополняющих друг друга; один является открытым ключом, а другой закрытым. Открытый ключ может и должен быть свободно доступным, так как он является именно тем ключом, который отправитель использует для шифрования передаваемой Вам информации. Закрытый ключ ни в коем случае не должен распространяться. Именно он гарантирует безопасность передаваемых данных.
Вы посылаете письмо в список рассылки для своих клиентов. При этом подписчики списка хотят быть уверены что это именно Вы послали сообщение и что оно не было изменено каким-либо посторонним лицом. Подписываем сообщение с помощью своего закрытого ключа и вставляем подпись в письмо. Теперь все клиенты, у которых есть открытый ключ, могут с помощью него проверить, действительно ли Вы послали это письмо и не изменено ли оно кем-либо.
На наших машинах установлены две версии PGP:
В PGP версии 2.6.3ia для криптования используется алгоритм RSA, а в версии 6.5.1i добавлен алгоритм DSS/DH.
Теперь можете приступать к использованию PGP
Создание пары ключей
Чтобы начать использовать PGP, нужно создать собственную пару ключей (открытый/закрытый). Чтобы это сделать, выполните команду:
Вас попросят выбрать максимальный размер ключа (512, 768 или 1024 байт). Чем больше ключ, тем более надежным он будет, правда ценой небольшого снижения быстродействия при шифровании.
После выбора размера нужно задать идентификатор открытого ключа. Обычно здесь указывают свои имена и/или e-mail адрес. Например:
Далее нужно задать пароль, который будет защищать закрытый ключ. Это необходимо для защиты закрытого ключа. Например, если кто-нибудь украдет его, ключ будет бесполезен без пароля. Наконец, программа попросит в произвольном порядке нажать несколько клавиш на клавиатуре чтобы она могла создать последовательность случайных чисел. Через несколько секунд PGP создаст ключи и известит об этом соответствующим сообщением. После того, как ключи были сгенерированы должным образом, они сохраняются в каталоге
Добавление ключей в файл
Теперь Вам, вероятно, захочется добавить открытые ключи людей, с которыми есть желание обмениваться шифрованными сообщениями. Для этого потребуется получить открытые ключи Ваших корреспондентов: с сервера ключей, непосредственно от конкретных людей, по e-mail, и т.д. Вспомним, что открытые ключи распространяются свободно и нет необходимости передавать их по безопасному каналу. Если в файле somekey.pgp содержится ключ и есть желание добавить его в файл ключей, процедура такова:
Удаление ключа из файла
Удалить ненужный ключ из файла можно командой
После сохранения ключей друзей в файле необходимо послать им свой открытый ключ. Прежде всего его необходимо выделить из собственного файла открытых ключей:
Созданный файл mykey.pgp будет не в формате ASCII. Однако, если потребуется создать файл ключа в формате ASCII чтобы послать, к примеру, по e-mail или добавить дополнительную информацию к базе данных, потребуется использовать команду:
Вместе с ключом также выделяются все сертификаты, которые его подтверждают.
Содержание файлов с ключами
Чтобы просмотреть ключи, содержащиеся в файле, наберите команду:
Еще раз заметим, что файлом по умолчанию является pubring.pgp. Если идентификатор не указан явно, то показываются все ключи из файла. Чтобы просмотреть все сертификаты каждого ключа, необходимо набрать:
Теперь попробуем зашифровать файл. Сделать это можно командой:
Эта команда создает файл с именем файл.pgp, содержащий исходный файл, зашифрованный так, что только получатель может его расшифровать с помощью своего закрытого ключа.
Кодирование сообщения для нескольких получателей
Допустим, необходимо зашифровать и отправить письмо для нескольких получателей. В этом случае поступим так:
Как подписывается сообщение
Подписывание документа позволяет получателю удостовериться в том, что текст написан действительно отправителем и что сообщение не было изменено. Чтобы подписать документ, необходимо использовать закрытый ключ:
Если у нас есть несколько закрытых ключей в нашем secring.pgp, мы можем выбрать один из них при помощи идентификатора. Эта команда создает файл, который не является ASCII-текстом, потому что PGP пытается сжать файл. Если, с другой стороны, Вы хотите подписать файл, оставив текст читабельным и с подписью в конце, то процедура будет выглядеть так :
Эта последняя команда очень полезна при подписывании электронной почты, которую и дальше можно будет читать без использования PGP. Также такое сообщение смогут читать те, кому не обязательно проверять подпись.
Кроме того, можно подписать документ и затем закодировать его при помощи следующей команды:
Для расшифровки файла и/или проверки его подписи используется команда:
pgp входной_файл [-o выходной_файл]
Также можно просто просмотреть расшифрованный файл без сохранения:
Шифрование с помощью PGP
7 Мая, 2022 14 мин чтения
В виду своего возраста и распространенности, PGP одна из самых критикуемых реализаций. Но именно из-за этих двух факторов PGP является своего рода стандартом. Куча ошибок в нем уже были найдены и устранены и многие уже привыкли/знают как с ним работать. При использовании современных алгоритмов он дает неплохую криптоустойчивость, а к минусам можно отнести не самое простое управление, для которого требуется небольшое погружение.
Предположим, вы хотите отправить кому-то сообщение, содержащее деликатную информацию и не хотите, чтобы кто-то еще мог его прочитать. Лучший способ будет зашифровать сообщение специальным ключом, который будете знать только вы и получатель. Если атакующий перехватит сообщение, он не сможет ничего расшифровать. В наше время мы считаем “условно не сможет” потому что компьютерные мощности растут и, например, устаревшие алгоритмы шифрования могут быть взломаны как через уязвимости, так и методом перебора. Такой вариант назыается системой с симметричным ключом. Они работают нормально, но есть проблема курицы и яйца, прежде чем отправить сообщение, нужно поделиться ключом, а как это сделать без секретного канала?
PGP решает именно эту проблему. Криптография открытого ключа позволяет безопасно делиться информацией, независимо на каком расстоянии и за какими границами вы находитесь и не требует установки изначального безопасного канала.
Шифрование и Дешифрование
Шифрование и дешифрование в криптографии публичным ключом опирается на пару математически уникальных ключей. Один называется публичный, а другой приватный. Публичный ключ предоставляет однонаправленную функцию, подобно висячему замку. Любой человек может его закрыть, но открыть только владелец закрытого ключа. Критическим моментом является защита приватного ключа, который используется для расшифровки сообщения, зашифрованного публичным ключом. Он должен всегда оставаться секретным, известным только владельцу. Картинка ниже иллюстрируется пример шифрования и дешифрования.
Если Ваня хочет послать зашифрованное сообщение Пете, ему нужен Петин публичный ключ. Это значит, что Петя должен им как-то поделиться, например в социальных сетях. Тогда Ваня сможет взять этот публичный ключ, зашифровать им сообщение и отправить любым, в том числе ненадежным каналом связи Пете. А Петя в свою очередь расшифрует сообщение своим приватным ключом.
Отпечатки
Одна из проблем с публичным ключами это самозванство. Нет легкого способа гарантировать, что определенный публичный ключ, опубликованный онлайн действительно принадлежит конкретному человеку. Атакующий может сгенерировать пару ключей и “подсунуть” свой публичный ключ, прикидываясь другим человеком.
У меня в блоге есть отдельная страница, на которой можно скачать мой публичный PGP ключ и найти отпечаток. Этот же отпечаток указан в био в моем Twitter аккаунте. Скачав публичный ключ и импортировав его к себе (об этом еще будет позже), можно повторить процесс генерации отпечатка самостоятельно и сравнить его с тем, что указан публично. Таким образом вы убедитесь что публичный ключ действительно принадлежит этому человеку. Но будьте внимательны, злоумышленник может подменить отпечатки тоже.
Публикация отпечатка в разных источниках увеличивает стоимость атаки для злоумышленника, который пытается прикинуться другим человеком. Ему придется взломать каждую платформу, на которой опубликован настоящий отпечаток, чтобы подменить его своим собственным. Выложив отпечаток на разных платформах, можно также легко идентфицировать, если какая-то из них была скомпрометирована.
Подпись сообщений
Ваня хочет отправить сообщение Пете и подтвердить, что сообщение действительно пришло от него, а также, что оно не было модифицировано по пути. Для этого он подписывает его. Чтобы подписать сообщение PGP хэширует его, чтобы длина подписи не зависела от размера сообщения, затем шифрует хэш используя приватный ключ. Расшифровать подпись можно только публичным ключом Вани, т.е. если у Пети получилось это сделать, он будет уверен, что сообщение пришло именно от Вани. Затем, Петя может сам создать хэш сообщения и сравнить его с тем, что получился в результате дешифрования подписи, таким образом убедившись, что сообщение не было изменено в процессе передачи.
Будьте внимательны, подписывание сообщения позволяет убедиться в аутентичности и целостности данных, но не защищает само сообщение. Другими словами, если вы только подписали сообщение, оно будет передано в открытом виде и кто угодно сможет его прочитать. Чтобы сообщение было конфиденциальным, после подписания его надо зашифровать публичным ключом получателя и отправить в шифрованном виде.
Сочетание подписания с шифрованием гарантирует:
Как генерировать PGP ключи
Если работать с PGP в терминале вам некомфортно, я советую посмотреть в сторону инструкций Surveillance Self-Defense от Electronic Frontier Foundation. Они доступны в том числе на русском языке.
На MacOS GnuPG может быть установлен через Homebrew.
На Linux используя стандартные средства, например APT в Debian/Ubuntu.
Для RSA будет предложен выбор размера, если вы, по какой-то причине не можете использовать ECC, а доступен только RSA, я бы рекомендовал как минимум 4096.
Дальше нам нужно будет заполнить идентификационные данные, такие как имя и email. В поле комментарий можно ввести любую информацию.
На следующем шаге нужно будет дважды ввести пароль для ключа, тут как всегда, он должен быть достаточно сложным, но если вы его забудете/потеряете, то уже никогда не сможете пользоваться приватным ключом из этой пары. Сгенерировать хороший случайный пароль можно в специальном Telegram боте.
Вот и все! Теперь у вас есть приватный и публичный ключи, которые можно использовать для шифрования и подписывания. Чтобы просмотреть список доступных публичный ключей, можно использовать команду:
А чтобы посмотреть доступные приватные ключи, команду:
Чтобы поделиться вашим публичным ключом его нужно экспортировать в текстовый файл. Для этого можно воспользоваться следущей командой, заменив
Как импортировать публичный ключ и зашифровать им сообщение
Представим, что кто-то хочет отправить мне сообщение зашифровав его моим публичным ключом. Для этого ему НЕ нужно иметь собственные ключи, но необходимо иметь установленной GnuPG.
Первым делом нужно скачать мой публичный ключ со специальной страницы. Это можно сделать через браузер или в том же терминале, с помощью команды:
Теперь публичный ключ отображается в списке и следующим шагом стоит сравнить его отпечаток с тем, что указан на сайте и в соц. сетях, чтобы быть уверенным что это правильный ключ.
Чтобы зашифровать короткое сообщение прямо в терминале, можно воспользоваться следующей командой:
Далее вам будет предложен выбор уровня доверия.
Защита целостности кода с помощью PGP. Часть 1. Базовые концепции и инструменты
Если вы пишете код, который попадает в общедоступные репозитории, вам может пригодиться PGP. В этой серии статей, перевод первой из которых мы публикуем сегодня, будут рассмотрены вопросы использования PGP для обеспечения целостности кода программного обеспечения. Эти материалы, в основном, нацелены на разработчиков свободного ПО, хотя изложенные здесь принципы применимы в любых ситуациях, когда разработка ведётся силами распределённых команд программистов.
Здесь будут раскрыты следующие темы:
О структуре материалов
Каждый раздел этой серии материалов разбит на две части:
Особенности контрольного списка
Элементы в каждом из контрольных списков включают в себя сведения об уровне приоритетности того или иного пункта. Надеемся, это поможет вам в ходе принятия решений по использованию предлагаемых рекомендаций.
Базовые концепции и инструменты PGP
▍Контрольный список
Вот темы, в которых нужно ориентироваться после успешного освоения материала этого раздела:
▍Пояснения
Сообщество открытого ПО уже давно полагается на PGP для обеспечения аутентичности и целостности разрабатываемых программных продуктов. Вы можете об этом не знать, но работаете ли вы в среде Linux, Mac или Windows, вы уже пользовались PGP для того, чтобы обеспечить целостность вашего вычислительного окружения.
Наша цель заключается в том, чтобы помочь вам контролировать происхождение кода, попадающего в ваш проект, и отслеживать его целостность с помощью PGP. Сделать это можно, следуя рекомендациям по работе с PGP и усвоив основные правила безопасности.
▍Обзор работы PGP
Вам не нужно знать все подробности о том, как работает PGP. Для успешного использования этой технологии достаточно понимания её базовых концепций. В PGP используются криптография с открытым ключом. С помощью криптографических методов, например, обычный текст может быть преобразован в текст зашифрованный. Этот процесс требует наличия двух разных ключей:
▍Шифрование
Для шифрования PGP использует открытый ключ того, для кого предназначен зашифрованный материал. В ходе шифрования создаётся сообщение, которое можно расшифровать только используя соответствующий закрытый ключ, принадлежащий получателю сообщения.
Процесс шифрования выглядит так:
▍Подписывание
Для подписывания данных открытые и закрытые ключи PGP используются обратным способом:
▍Совместное использование шифрования и подписывания
Часто зашифрованные сообщения ещё и подписывают с использованием собственного PGP-ключа отправителя данных. Подобный подход следует использовать всегда, когда осуществляется обмен зашифрованными сообщениями, так как шифрование без аутентификации не имеет особого смысла (пожалуй, анонимность в подобных вещах нужна лишь секретным агентам и тем, кто делает общественным достоянием некую закрытую информацию).
▍Идентификационные данные ключа
С каждым PGP-ключом должны быть ассоциированы идентификационные данные владельца ключа. Обычно это — полное имя человека и адрес электронной почты в следующем формате:
Иногда идентификационные данные так же содержат комментарии, приводимые в скобках и предназначенные для того, чтобы сообщить конечному пользователю подробности о конкретном ключе:
Так как люди, владельцы ключей, могут играть множество профессиональных и персональных ролей, в одном и том же ключе могут присутствовать несколько наборов идентификационных данных:
Когда используются множество наборов идентификационных данных, один из них помечается как основной, для упрощения поиска ключа.
▍Достоверность ключа
Для того чтобы иметь возможность использовать чей-нибудь открытый ключ для шифрования или верификации, вам нужно убедиться в том, что он действительно принадлежит этому человеку (Alice в данном случае), а не мошеннику (пусть мошенника зовут Eve). В PGP это называется достоверностью ключа:
▍Сеть доверия и механизм «доверие при первом использовании»
PGP включает в себя механизм делегирования доверия, известный как сеть доверия (Web of Trust, WOT). В своей основе — это попытка заменить необходимость в централизованных службах сертификации вроде тех, что используются в HTTPS/TLS. При таком подходе пользователь самостоятельно принимает решения о том, кому можно доверять.
К сожалению, очень немногие понимают, как работает сеть доверия, и ещё меньше людей заботится об этой технологии. И хотя сети доверия остаются важным аспектом спецификации OpenPGP, существующие версии GnuPG (2.2 и выше) реализовали альтернативный подход, представленный механизмом «доверие при первом использовании» (Trust on First Use, TOFU).
TOFU можно сравнить с SSH. Когда вы, используя SSH, в первый раз подключаетесь к удалённой системе, ваша система запоминает отпечаток её ключа. Если ключ изменится, SSH-клиент сообщит вам об этом и отклонит соединение, предлагая вам принять решение о том, доверяете ли вы изменившемуся ключу или нет.
Похожим образом работает и механизм TOFU. Когда вы впервые импортируете чей-то PGP-ключ, он считается достойным доверия. Если после этого GnuPG столкнётся с новым ключом с теми же самыми идентификационными данными, тогда оба ключа будут помечены как недействительные и вам нужно будет самостоятельно принять решение о том, какой из них следует сохранить.
В этом руководстве мы будем использовать модель доверия TOFU.
▍О терминологии
Тут нам хотелось бы отметить важность понимания различий между такими терминами, как PGP, OpenPGP, GnuPG и gpg:
▍Установка GnuPG
▍GnuPG версий 1 и 2
И GnuPG v.1, и GnuPG v.2 реализуют один и тот же стандарт, но они предоставляют несовместимые библиотеки и инструменты командной строки, в результате многие дистрибутивы поставляются и с устаревшей версией 1, и с более новой версией 2. Вам нужно удостовериться в том, что вы всегда пользуетесь GnuPG v.2.
▍Псевдоним для GnuPG v.2
Итоги
Здесь мы поговорили об основах PGP, которыми необходимо владеть для успешного применения PGP в деле защиты кода. В следующий раз мы расскажем о создании и защите PGP-ключей.
Уважаемые читатели! Используете ли вы PGP для защиты кода ваших программных проектов?
Защита целостности кода с помощью PGP. Часть 2. Создание мастер-ключа
Перед вами перевод второй части серии материалов, посвящённых защите целостности кода с помощью PGP. В прошлый раз мы разобрали основы PGP, а сегодня поговорим о том, как создавать 4096-битные мастер-ключи RSA, и о том, как их защищать.
Ключи RSA
▍Контрольный список
Вот какие навыки вы должны освоить после того, как разберётесь с материалами этого раздела:
Пояснения
▍Что такое мастер-ключ (сертифицирующий ключ)
В этом и следующем разделах мы будем говорить о так называемых «мастер-ключах» и «подключах». Рассматривая эти виды ключей, важно понимать следующее:
Только сертифицирующий ключ может быть использован для выполнения следующих действий:
▍Действия, выполняемые перед созданием мастер-ключа
Прежде чем вы создадите свой мастер-ключ, вам нужно выбрать свои основные идентификационные данные и ключевую фразу.
▍Основные идентификационные данные
Идентификационные данные — это строка, использующая тот же формат, что и поле From в электронных письмах:
Вы можете создавать новые наборы идентификационных данных, отзывать старые и менять основные идентификационные данные в любое время. Так как основной набор идентификационных данных показывается при выполнении всех операций GnuPG, вам следует выбрать и указать ваше имя, и, возможно, должность, а также адрес электронной почты, которые относятся к вашей профессиональной деятельности и с наибольшей долей вероятности будут использованы для обмена данными с использованием PGP. Например, это может быть адрес вашей рабочей электронной почты, или тот, который вы используете для регистрации коммитов на GitHub.
▍Ключевая фраза
Надёжная ключевая фраза состоит из 3-4 слов, причём желательно, чтобы слова из неё нельзя было найти в словаре. Она не должна являться цитатой из широко известных источников (не стоит использовать в качестве ключевой фразы слова из песен, книг, рекламных лозунгов какой-нибудь компании). Вы будете использовать ключевую фразу довольно часто, поэтому она должна быть ещё и такой, чтобы вам было легко её запомнить и удобно вводить с клавиатуры.
▍Алгоритм и стойкость ключа
GnuPG уже некоторое время поддерживает шифрование, основанное на эллиптических кривых, но мы пока будем придерживаться использования ключей RSA. Хотя можно применять и ключи ED25519, вероятно, вам встретятся программные инструменты и устройства, которые не смогут с ними нормально работать.
Кроме того, у вас может возникнуть вопрос о том, почему мастер-ключ имеет длину 4096 бит, если широко известно, что и 2048-битных ключей хватает для любых нужд, и такие ключи ещё долго не потеряют актуальности. Причина использования 4096-битных ключей, в основном, относится к социальной, а не к технической сфере. Всё дело в том, что другие разработчики могут отнестись к вам с некоторым недоверием, если в вашем мастер-ключе будет меньше битов, чем в их мастер-ключе.
▍Создание мастер-ключа
Для того чтобы создать мастер-ключ, выполните следующую команду, поместив ваши данные вместо данных условного пользователя Alice Engineer:
После выполнения этой команды появится диалоговое окно с предложением ввести фразу-пароль. Затем, возможно, вам понадобится подвигать мышью или понажимать какие-нибудь клавиши на клавиатуре для того, чтобы система могла накопить достаточно энтропии для завершения работы команды.
Посмотрите на то, что выведет команда. Вы увидите примерно следующее:
Обратите внимание на длинную последовательность символов во второй строке. Это — полный отпечаток только что созданного ключа. Идентификаторы ключей могут быть представлены в трёх различных формах:
В этот момент рекомендуется открыть текстовой редактор, скопировать отпечаток ключа и вставить его туда. Вам понадобится использовать его для выполнения нескольких следующих шагов, поэтому удобно будет держать его под рукой.
▍Резервная копия мастер-ключа
Для аварийного восстановления ключа, и особенно, если вы намереваетесь использовать сеть доверия и собирать сигнатуры ключей других разработчиков проекта, вам нужно создать надёжную копию вашего секретного ключа, перенеся его на бумагу. Бумажная копия рассматривается как последний шанс восстановления ключа на тот случай, если все остальные механизмы резервного копирования уже бесполезны.
Тот файл, который получится в результате этой команды, после распечатки, подходит для систем оптического распознавания текста или для ручного ввода, если возникнет необходимость восстановить ключ. Этот файл следует распечатать, затем взять ручку и написать где-нибудь на поле листа бумаги ключевую фразу. Это важный шаг, так как распечатанный ключ зашифрован ключевой фразой, и если вы когда-нибудь её измените, то вы гарантированно, не сможете вспомнить исходную ключевую фразу.
Положите распечатку с записанной на ней ключевой фразой в конверт и поместите всё это в надёжное место, желательно — вне вашего жилища, например — в банковскую ячейку.
Обратите внимание на принтер, на котором вы будете распечатывать бумажную резервную копию ключа. Давно прошли те времена, когда принтеры были примитивными устройствами, подключаемыми к параллельным портам компьютеров. В наши дни у принтеров имеются полноценные операционные системы, жёсткие диски, интеграция с облачными службами. Так как данные ключа, которые мы отправляем на печать, зашифрованы с помощью ключевой фразы, распечатку можно считать довольно-таки безопасной операцией, однако, тут лучше перестраховаться, чем недосмотреть.
▍Добавление идентификационных данных
Если у вас есть несколько адресов электронной почты, которыми вы активно пользуетесь (личный и рабочий адреса, адрес, применяемый в некоем опенсорсном проекте, и так далее), вам следует добавить их к вашему мастер-ключу. Вам не нужно делать это для любых адресов, которые вы не планируете использовать с PGP (скажем, для адреса, который вам выдали, когда вы где-то учились). Ниже показана команда для добавления идентификационных данных к ключу. Здесь [fpr] надо заменить на отпечаток вашего ключа:
Просмотреть уже добавленные к ключу UID можно следующей командой:
▍Выбор основного набора идентификационных данных
GnuPG автоматически сделает последний добавленный набор идентификационных данных главным, поэтому если вам нужно что-то другое, вы можете воспользоваться такой командой:
Итоги
Из этого материала вы узнали о ролях ключей PGP, том, как сгенерировать мастер-ключ, как надёжно сохранить резервную копию этого ключа, и как назначить основные идентификационные данные ключа. В следующий раз поговорим о подключах.
Уважаемые читатели! Как вы храните резервные копии ваших мастер-ключей?
Шифруем сообщения в сети XMPP/Jabber с помощью PGP
Мотивация
Немного теории
Сообщения шифруются с помощью криптосистемы с открытым ключом. Если не вдаваться в подробности, суть системы шифрования состоит в том, что существует пара ключей и некая процедура, которая может с помощью одного ключа преобразовать сообщение так, что обратное преобразование можно будет выполнить только с помощью другого ключа. Один из этих ключей называется закрытым и держится в тайне, другой же, напротив, называется открытым, и распространяется свободно. Таким образом, зашифровав сообщение открытым ключом можно быть уверенным, что его прочитает только владелец закрытого ключа, напротив, подписав что-то своим ключом автор даёт уверенность получателю сообщения в своём авторстве.
Можно объединить эти две процедуры и тогда содержимое будет известно только двум лицам, обладающими соответсвующими ключами. Наглядно это изображено на картинке:
На данный момент невозможно за обозримое время из открытого ключа восстановить закрытый.
Инструменты
В качестве системы шифрования мы будем использовать пакет с открытым кодом GnuPG (эй, не убегайте, это под Windiows тоже есть и очень даже юзерфрендли :)) и клиент Psi. Уверен, что в других клиентах процедура схожая. Я взял реализацию под windows, так как всё-таки её использует большинство пользователей, а юниксоиды, думаю, и сами разбирутся. В *nix в качестве удобного средства управления ключами можно посоветовать kgpg.
Предполагаю что у вас уже стоит jabber клиент, он настроен и соединение с сетью есть.
Шаг первый, загрузка ПО и генерация закрытого и открытого ключей
Для пользователей Windows специально создан пакет программ gpg4win, который существенно облегчает работу с GPG. Скачиваем gpg4win lite с официального сайта, выбираем необходимые компоненты и устанавливаем.
Version: GnuPG v1.4.7 (MingW32)
Это и есть ваш открытый ключ, его можно разослать друзьям и коллегам, с которыми вы собираетесь обмениваться сообщениеми. Естественно обмениваться ключами желательно через зашифрованный канал или банально переписать на CD-R/флешку. Так же можно разместить свой открытый ключ на своём вебсайте или в профайле хабра. Не буду вдаваться в подробности, но обмен ключами довольно забавная процедура, см. Web Of Trust и Key signing party
Шаг второй, добавление своего ключа в Psi и импорт открытых ключей контактов
Итак, теперь надо сказать Psi, что нужно использовать ключ. Запускаем Psi, идём в настройки аккаунта, там во вкладке подробности нажимаем «выбрать openPGP ключ» и указываем наш ключ.
После выбора ключа и переподключения к сети, Psi затребует пароль от закрытого ключа:
Теперь вы подключены к сети и ваш статус подписан. То есть те, кто имеют ваш открытый ключ, знают, что за компьютером именно вы.
Допустим, вы обменялись с кем-то ключами, по есть отдали свой открытый ключ и получили чей-то открытый. Теперь нужно привязать ключ к конкретному аккаунту. Для этого заходим в WinPT, заходим в key->import, далее выбираем файл с ключом нужного человека. Всё, открытый ключ импортирован в систему. Стоит сказать, что Psi считывает состояние ключей только при запуске, так что после того как мы добавили новый ключ надо перезапустить Psi. Кликаем правой кнопкой мыши на нужный контакт и выбираем «Присвоить ключ OpenPGP», присваиваем контакту его ключ. Теперь мы можем проверить электронную подпись нашего контакта:
Выделенная зелёным строчка означает, что контакт вошёл в сеть с правильным ключом и у вас есть его открытый ключ. Если строчка чёрная это означает, что статус клиента подписан, но у вас нет его ключа или ключ неверен, так что неизвестно кто там за компом.
Шаг третьий. Обмениваемся шифрованными сообщениями
Теперь всё что требуется это отрыть новое окно с чатом и нажать иконку с замочком. Произойдёт сверка ключей и, если всё в порядке, система выдаст сообщение о том, что разговор зашифрован. После этого можно общатся спокойно, не беспокоясь что разговор будет перехвачен в пути.
Последнее сообщение в шифрованном виде выглядит так:
message from =»ivlis_test@jabber.ru/Psi» type =»chat» xml:lang =»ru-RU» to =»ivan@ivlis.com/WorkF53B8E96″ id =»aaf8a» >
body > [Ошибка: сообщение зашифровано, и невозможно его расшифровать.] body >
active xmlns =»http://jabber.org/protocol/chatstates» />
x xmlns =»jabber:x:encrypted» >
hQEOA/CjxWiKTl51EAP9HaQ8nzTtjUECqiO+1lcJRciUJrOLkgFr/KTqjvOmEgvx
rtF4TCCjpBMElbVbjY+yYmV6F8IWMweRlU4olzDFfdbJYO/TGWq+22s3jIvhWI+e
7bfMn7qVcnDD7GsGxU8norUqjKHQmYvwdAwHBDdbf/AD0qqAvb7jK+1X1NXyeioD
/3lxyWobgoiCt165OwZu/G2osiDQlMTtzt/W198tzfpKoJURaUNkwhFJeOp3rgr0
77frKDbIO6IRloyHx1xL3kRZNEBOVJO5AYdflH0Z756wPt+mGpZ29vzbdt40hkwu
rHjnYEDJhj1oJkoRpesIgiPQxmXpbsRGrAcKQr2f4e3d0lgBCkkivC27qPEM0eFO
TQnVww+RGczA+VHRbpXCRvLx4fcle9qSEM0xgdkae7IWJXBQRVEootOqdNJz49G8
FPakyAsBoZ2XvrEqW+r6hXvLYrKGBYO2cI3F
=ysML x >
message >
Можно быть уверенным, что в ближайшие 50 лет никто не сможет это прочитать.
Заключение
Итак, как видно, шифровать сообщения на лету очень просто, для конечного юзера не меняется практически ничего, а надёжность системы возрастает. Может быть это и сподвигнет кого-то перейти на xmpp/jabber.
Спасибо за внимание, надеюсь было интересно. 🙂
КЛЮЧИ
В то время как открытый и закрытый ключи взаимосвязаны, чрезвычайно сложно получить закрытый ключ исходя из наличия только открытого ключа, однако это возможно при наличии большой компьютерной мощности. Поэтому крайне важно выбирать ключи подходящего размера: достаточно большого для обеспечения безопасности и достаточно малого для обеспечения быстрого режима работы. Кроме этого, необходимо учитывать личность того, кто намеревается прочитать ваши зашифрованные сообщения, насколько он заинтересован в их расшифровке, каким временем он обладает, и какие у него имеются ресурсы.
Более большие ключи будут более надежными в течение более длительного срока времени. Поэтому если вам необходимо зашифровать информацию с тем, чтобы она хранилась в течение нескольких лет, то необходимо использовать более крупный ключ.
ЦИФРОВАЯ ПОДПИСЬ
Огромным преимуществом публичной криптографии также является возможность использования цифровой подписи, которая позволяют получателю сообщения удостовериться в личности отправителя сообщения, а также в целостности (верности) полученного сообщения. Цифровая подпись исполняет ту же самую функцию, что и ручная подпись. Однако ручную подпись легко подделать. Цифровую же подпись почти невозможно подделать.
ХЭШ-ФУНКЦИЯ
Еще одно важное преимущество использования PGP состоит в том, что PGP применяет так называемую «хэш-функцию», которая действует таким образом, что в том случае какого-либо изменения информации, пусть даже на один бит, результат «хэш-функции» будет совершенно иным. С помощью «хэш-функции» и закрытого ключа создается «подпись», передаваемая программой вместе с текстом. При получении сообщения получатель использует PGP для восстановления исходных данных и проверки подписи.
При условии использования надежной формулы «хэш-функции» невозможно вытащить подпись из одного документа и вложить в другой, либо каким-то образом изменить содержание сообщения. Любое изменение подписанного документа сразу же будет обнаружено при проверке подлинности подписи.
ПАРОЛЬНАЯ ФРАЗА
Большинство людей, как правило, знакомы с парольной системой защиты компьютерных систем от третьих лиц.
Парольная фраза – это сочетание нескольких слов, которое теоретически более надежно, чем парольное слово. В виду того, что парольная фраза состоит из нескольких слов, она практически неуязвима против так называемых «словарных атак», где атакующий пытается разгадать ваш пароль с помощью компьютерной программы, подключенной к словарю. Самые надежные парольные фразы должны быть достаточно длинными и сложными и должны содержать комбинацию букв из верхних и нижних регистров, цифровые обозначения и знаки пунктуации.
Парольная фраза должна быть такой, чтобы ее потом не забыть и чтобы третьи лица не могли ее разгадать. Если вы забудете свою парольную фразу, то уже никогда не сможете восстановить свою зашифрованную информацию. Ваш закрытый ключ абсолютно бесполезен без знания парольной фразы и с этим ничего не поделаешь.
ОСНОВНЫЕ ШАГИ В ИСПОЛЬЗОВАНИИ ПРОГРАММЫ PGP
1. Установите программу на свой компьютер. Руководствуйтесь краткой инструкцией по инсталляции программы, приведенной ниже.
3. Распространите свой открытый ключ среди своих корреспондентов в обмен на их ключи. Ваш открытый ключ, это всего лишь маленький файл, поэтому его можно либо воткнуть в сообщение, копировать в файл, прикрепить к почтовому сообщению или разместить на сервере.
4. Удостовериться в верности открытого ключа. Как только вы получите открытые ключи своих корреспондентов, то их можно внести в «кольцо» открытых ключей. После этого вам необходимо убедиться в том, что у вас действительно открытый ключ вашего корреспондента. Вы можете это сделать, связавшись с этим корреспондентом и, попросив его зачитать вам по телефону «отпечатки пальцев» (уникальный идентификационный номер) его открытого ключа, а также сообщив ему номер вашего ключа. Как только вы убедитесь в том, что ключ действительно принадлежит ему, вы можете его подписать и таким образом подтвердить ваше доверие к этому ключу.
7. Уничтожение файлов. Когда вам необходимо полностью удалить какой-либо файл, вы можете исполнить команду wipe (стереть). Таким образом, удаленный файл уже невозможно будет восстановить.
ИНСТАЛЛЯЦИЯ ПРОГРАММЫ PGP
PGP Installation program
Software License agreement
Введите свое имя, название компании и нажмите на Next
Setup: choose installation directory
Здесь необходимо выбрать компоненты для установки
* Microsoft Exchange/Outlook plugin
* Microsoft Outlook Express plugin
* User’s manual Adobe
* PGP disk for Windows
Check setup information
Начинается копирование программных файлов на жесткий диск компьютера.
Для того чтобы программа автоматически запустила операцию создания ключей после перезагрузки компьютера нажать на кнопку «Yes I want to run PGP keys»
Restart Windows для перезагрузки Windows.
Компьютер перезапустится и на этом программа установки завершится.
Теперь необходимо установить на компьютер два ключа:
ГЕНЕРАЦИЯ КЛЮЧЕЙ
Поставьте на него мышку, нажмите на мышку и выберите в открывшемся меню команду Launch PGP keys.
Зайдите в меню KEYS и выполните команду NEW KEY
Введите свое имя и электронный адрес
Выберите размер ключа 2048 и нажмите на next
Затем выделите фразу key pair never expires (срок действия ключевой пары никогда не истекает) и нажмите на next.
Два раза введите секретный пароль и нажмите на next.
Программа начнет генерировать пару ключей. Если программе не хватает информации, то она может попросить нажать на несколько клавиш наугад и подвигать мышку. Это необходимо выполнить.
Затем программа сообщит, что процесс генерации ключей закончен.
Потом еще раз нажмите на next.
Затем нужно нажать на команду done.
На этом процесс создания пары ключей закончился и можно начинать пользоваться программой.
Теперь после установки программы необходимо обменяться со своими корреспондентами открытыми ключами. Для этого необходимо исполнить команду LAUNCH PGP KEYS, выделить свой ключ (файл со своим именем) в окошке, нажать на правую кнопку мышки и выбрать команду EXPORT.
Появится окошко, с помощью которого можно указать путь, где сохранить файл с названием
Этот файл необходимо выслать своему корреспонденту, в обмен на его открытый ключ.
Как только вы получите открытый ключ своего корреспондента, надо его запустить, нажав на него двойным щелчком мышки, выделить его в окошке и выполнить команду IMPORT.
Теперь можно пересылать друг другу зашифрованные сообщения, которые шифруются открытым ключом получателя сообщения.
КАК ПОСЛАТЬ ЗАШИФРОВАННОЕ СООБЩЕНИЕ
После того, как открытый (публичный) ключ вашего корреспондента установится на вашем компьютере, сообщение можно отправлять получателю следующим образом:
Составляем сообщение в почтовой программе Outlook Express.
После того, как сообщение готово к отсылке, нажимаем один раз либо на третий значок справа на панели Outlook Express с изображением желтого конверта и замка (при этом кнопка просто вдавливается и больше ничего не происходит), либо в меню tools нажимаем на encrypt using PGP и затем нажимаем на команду в меню fil e под названием send later.
Тогда сразу же появится окошко программы PGP под названием Recipient selection, в котором необходимо найти и выделить мышкой публичный ключ своего корреспондента (получателя сообщения, который обычно именуется именем получателя) и нажать на O’K.
Сразу же после этого программа автоматически зашифрует сообщение и поместит его в папку исходящих сообщений outbox
Теперь можно заходить в Интернет и отправлять все сообщения, готовые к отправке.
РАСШИФРОВКА СООБЩЕНИЙ
Существует еще один способ использования PGP, который чуть-чуть сложнее, чем шифрование через Outlook Express. Этот способ можно применять в том случае, если не удается установить PGP вместе с программой Outlook Exress.
После этого ставим мышку на значок PGP в панели задач, нажимаем на мышку и исполняем команду encrypt clipboard.
Появляется окно диалога с PGP под названием key selection dialog
Необходимо выделить адрес (открытый ключ) корреспондента (ключ получателя сообщения)) в этом окне и щелкнуть по нему мышкой два раза, чтобы он появился внизу, потом нажимаем на O’K и программа зашифрует все содержимое clipboard.
После этого заходим в сообщение с текстом, который был ранее выделен, ставим мышку на поле сообщения, нажимаем на правую кнопку мышки и исполняем команду paste.
В результате зашифрованное содержимое clipboard заменяет предыдущее сообщение и на этом процесс шифровки закончился. Теперь можно отправлять сообщение обычным образом.
Расшифровывать полученные сообщения можно таким же образом: т.е. выделяем полученный зашифрованный текст, копируем его в буфер Windows clipboard, заходим мышкой в меню PGP через панель задач Windows и выбираем команду decrypt and verify clipboard.
Появляется окно программы PGP, в которое необходимо ввести пароль, вводим пароль в это окно, нажимаем на O’K и перед нами предстает расшифрованное сообщение.
Естественно, перед тем, как это сделать, необходимо создать пару ключей, как было описано ранее.
Также кроме этого способа можно применить еще один способ шифрования (третий способ).
Можно создать текст в каком-либо редакторе, например блокноте, и сохранить его в виде файла. После этого в проводнике выделяем файл, нажимаем на правую кнопку мышки и видим, что в нижней части команды опций появилась еще одна команда под названием PGP, после чего, поставив мышку на PGP, мы увидим раскрывающееся меню, состоящее из 4 команд:
Нажимаем на первую команду и перед нами появляется диалог выбора открытого ключа корреспондента, выбираем ключ, нажимаем на O’K, вводим пароль и файл зашифрован.
После этого рекомендуется выполнить еще одну команду в меню PGP: wipe (стереть, уничтожить оригинальный файл). Иначе, какой смысл шифровать файл, если на диске компьютера остался первоначальный файл?
После этой операции у файла остается то же самое имя, но меняется тип расширения на
Теперь этот файл можно прикрепить к сообщению и отправить вместе с ним.
В результате мы узнали, что существует три основных способа шифрования информации:
При работе с программой PGP появляется следующая проблема: при шифровании исходящих сообщений открытым ключом своего корреспондента, отправитель сообщений не может их потом прочитать, ввиду того, что исходящее сообщение шифруется с помощью закрытого ключа отправителя и открытого ключа его корреспондента, т.е. только получатель может прочитать такое сообщение. В результате получается, что отправитель не может впоследствии прочитать свои сообщения, отправленные им ранее.
В настройках PGP есть опция, позволяющая зашифровывать свои исходящие сообщения таким образом, чтобы их можно было потом прочитать (взять из архива и прочитать).
Для этого надо щелкнуть мышкой по символу PGP на панели задач, исполнить команду PGP preferences, зайти в General и поставить галочку напротив команды Always encrypt to default key
Кроме этого нужно зайти в PGP keys, выбрать мышкой свой ключ, зайти в меню keys и исполнить команду set as default key
Здесь же можно изменить свою парольную фразу:
Парольную фразу рекомендуется менять, по крайней мере, раз в полгода, хотя если вы постарались создать надежную парольную фразу и исключили какую-либо возможность разгадки этой фразы кем бы то ни было, то этого можно и не делать.
Кроме того, там же (в key properties) можно увидеть fingerprint или своеобразные «отпечатки пальцев», состоящие из комбинации цифр и букв.
Эти отпечатки пальцев (идентификатор ключа) хороши тем, что можно предотвратить незаконное вторжение какими-либо людьми в вашу переписку.
Т.е. кто-либо может перехватить ваш открытый ключ при отправке вашему корреспонденту или кому-либо еще и заменить своим открытым ключом. Когда ваш корреспондент получит этот ключ, то он будет думать, что это ваш ключ, когда в действительности это ключ третьего лица. Вы зашифровываете свое сообщение этим открытым ключом и в результате получается, что ваше сообщение не доходит до вашего корреспондента, а прочитывается другой третьей стороной, которая затем меняет это сообщение и отсылает вам под видом ответа от вашего корреспондента.
Для того чтобы исключить такие проблемы, владельцы открытых ключей созваниваются по телефону и зачитывают друг другу отпечатки своих ключей. В таком случае достигается 100% надежность того, что информация не попала в чужие руки.
PGP диск
PGP диск – это удобное приложение, которое позволяет вам отвести некоторую часть вашего жесткого диска для хранения конфиденциальной информации. Это зарезервированное место используется для создания файла под именем PGP disk >.
Хотя это всего лишь один файл, он действует подобно вашему жесткому диску в том отношении, что он выполняет функцию хранения ваших файлов и исполняемых программ. Вы можете его себе представить в виде флоппи дискеты или внешнего жесткого диска. Для того, чтобы использовать программы и файлы, находящиеся на нем, вы его устанавливаете mount >, после чего его можно использовать также, как любой другой диск. Вы можете установить программы внутри этого диска либо копировать на него файлы. После того, как вы отключите unmount > этот диск, он станет недоступным для третьих лиц и для того, чтобы открыть его, необходимо ввести парольную фразу, которая известна только вам. Но даже разблокированный диск защищен от несанкционированного доступа. Если ваш компьютер зависнет во время использования диска, то его содержание будет зашифровано.
Одним из наиболее важных преимуществ и удобств использования программы PGPdisk является тот факт, что теперь нет необходимости шифровать большое количество файлов, в которых находится конфиденциальная информация. Теперь можно переместить все конфиденциальные файлы и даже программы на такой диск и таким образом избежать необходимости каждый раз расшифровывать какой-либо файл при его открытии.
Для того, чтобы установить новый PGP диск, необходимо выполнить следующие команды:
Пуск – Программы – PGP – PGPdisk
после чего появится окно программы со следующими командами:
new – создать новый PGP диск
mount – установить созданный диск путем ввода парольной фразы
unmount – закрыть диск (зашифровать), который был ранее установлен
prefs – опции настройки
Как создать новый PGP диск
1. Запустите программу PGPdisk
4. Появится окошко создания PGP диска, в котором необходимо указать путь, где новый диск под названием надо сохранить.
5. Нажмите на кнопку Save и файл под этим названием сохранится на диске, выбранном вами (по умолчанию на диске С).
6. Под надписью PGPdisk Size field> введите цифру, обозначающую размер PGP диска и не забудьте выбрать килобайты или мегабайты там же.
подтвердите букву, которую вы присвоите новому диску.
9. Введите парольную фразу, которую в дальнейшем необходимо будет вводить для установки нового диска. Введите парольную фразу два раза.
10. Нажмите на next
11. При необходимости подвигайте мышку или нажимайте на кнопки на клавиатуре для того, чтобы программа сгенерировала новый ключ
15. Введите название нового диска.
16. Нажмите на Start
17. Нажмите на OK (на диске еще нет данных). Компьютер скажет вам, когда закончится форматирование диска.
18. Нажмите на кнопку Close на окне форматирования. Теперь ваш новый диск появится на том диске, который вы ранее указали (по умолчанию диск С). Для того, чтобы открыть диск, надо дважды нажать на него мышкой.
Как установить PGP диск
Как только новый диск будет создан, программа PGP автоматически его установит с тем, чтобы вы могли начать его использовать. После того, как вы закончили работу с конфиденциальной информацией, необходимо отключить диск. После отключения диск его содержимое будет зашифровано в виде зашифрованного файла.
Использование установленного PGP диска
На диске PGP можно создавать файлы, каталоги, перемещать файлы или каталоги, либо стирать, т.е. можно делать те же самые операции, что и на обычном диске.
Закрытие PGP диска
Как только диск будет закрыт, то он исчезнет из моего компьютера и превратится в зашифрованный файл на диске С.
Еще один важный момент, на который необходимо обратить внимание, это настройки программы, которые позволяют автоматически закрыть диск в случае не обращения к диску в течение какого-либо периода времени. Для этого надо исполнить команду prefs > в программе PGPdisk и в появившемся меню под названием auto unmount > (автоматическое закрытие) выделить флажками все три команды:
· auto unmount after __ minutes of inactivity (автоматически закрыть после __ минут бездействия). Здесь также необходимо указать количество минут.
· auto unmount on computer sleep (автоматически закрыть при переходе компьютера в спящее состояние)
· prevent sleep if any PGPdisks could not be unmounted (не позволить компьютеру перейти в состояние спячки, если PGP диск не был закрыт)
Смена парольной фразы:
1. Убедитесь в том, что PGP диск не установлен. Невозможно сменить парольную фразу в том случае, если диск установлен.
2. Выберите команду Change Passphrase > из меню
3. Выберите тот диск, парольную фразу для которго вы хотите изменить.
4. Введите старую парольную фразу. Нажмите на ОК. Появится окошко для ввода новой парольной фразы.
5. Введите новую парольную фразу. Минимальная длина парольной фразы: 8 знаков
6. Нажмите на ОК. Окошко новой парольной фразы New passphrase > закроется.
Удаление парольной фразы
1. Убедитесь в том, что PGP диск не установлен.
3. Введите пароль и нажмите на ОК.
[an error occurred while processing this directive]
[an error occurred while processing this directive]
Защита целостности кода с помощью PGP. Часть 2. Создание мастер-ключа
Перед вами перевод второй части серии материалов, посвящённых защите целостности кода с помощью PGP. В прошлый раз мы разобрали основы PGP, а сегодня поговорим о том, как создавать 4096-битные мастер-ключи RSA, и о том, как их защищать.
Ключи RSA
▍Контрольный список
Вот какие навыки вы должны освоить после того, как разберётесь с материалами этого раздела:
Пояснения
▍Что такое мастер-ключ (сертифицирующий ключ)
В этом и следующем разделах мы будем говорить о так называемых «мастер-ключах» и «подключах». Рассматривая эти виды ключей, важно понимать следующее:
Только сертифицирующий ключ может быть использован для выполнения следующих действий:
▍Действия, выполняемые перед созданием мастер-ключа
Прежде чем вы создадите свой мастер-ключ, вам нужно выбрать свои основные идентификационные данные и ключевую фразу.
▍Основные идентификационные данные
Идентификационные данные — это строка, использующая тот же формат, что и поле From в электронных письмах:
Вы можете создавать новые наборы идентификационных данных, отзывать старые и менять основные идентификационные данные в любое время. Так как основной набор идентификационных данных показывается при выполнении всех операций GnuPG, вам следует выбрать и указать ваше имя, и, возможно, должность, а также адрес электронной почты, которые относятся к вашей профессиональной деятельности и с наибольшей долей вероятности будут использованы для обмена данными с использованием PGP. Например, это может быть адрес вашей рабочей электронной почты, или тот, который вы используете для регистрации коммитов на GitHub.
▍Ключевая фраза
Надёжная ключевая фраза состоит из 3-4 слов, причём желательно, чтобы слова из неё нельзя было найти в словаре. Она не должна являться цитатой из широко известных источников (не стоит использовать в качестве ключевой фразы слова из песен, книг, рекламных лозунгов какой-нибудь компании). Вы будете использовать ключевую фразу довольно часто, поэтому она должна быть ещё и такой, чтобы вам было легко её запомнить и удобно вводить с клавиатуры.
▍Алгоритм и стойкость ключа
GnuPG уже некоторое время поддерживает шифрование, основанное на эллиптических кривых, но мы пока будем придерживаться использования ключей RSA. Хотя можно применять и ключи ED25519, вероятно, вам встретятся программные инструменты и устройства, которые не смогут с ними нормально работать.
Кроме того, у вас может возникнуть вопрос о том, почему мастер-ключ имеет длину 4096 бит, если широко известно, что и 2048-битных ключей хватает для любых нужд, и такие ключи ещё долго не потеряют актуальности. Причина использования 4096-битных ключей, в основном, относится к социальной, а не к технической сфере. Всё дело в том, что другие разработчики могут отнестись к вам с некоторым недоверием, если в вашем мастер-ключе будет меньше битов, чем в их мастер-ключе.
▍Создание мастер-ключа
Для того чтобы создать мастер-ключ, выполните следующую команду, поместив ваши данные вместо данных условного пользователя Alice Engineer:
После выполнения этой команды появится диалоговое окно с предложением ввести фразу-пароль. Затем, возможно, вам понадобится подвигать мышью или понажимать какие-нибудь клавиши на клавиатуре для того, чтобы система могла накопить достаточно энтропии для завершения работы команды.
Посмотрите на то, что выведет команда. Вы увидите примерно следующее:
Обратите внимание на длинную последовательность символов во второй строке. Это — полный отпечаток только что созданного ключа. Идентификаторы ключей могут быть представлены в трёх различных формах:
В этот момент рекомендуется открыть текстовой редактор, скопировать отпечаток ключа и вставить его туда. Вам понадобится использовать его для выполнения нескольких следующих шагов, поэтому удобно будет держать его под рукой.
▍Резервная копия мастер-ключа
Для аварийного восстановления ключа, и особенно, если вы намереваетесь использовать сеть доверия и собирать сигнатуры ключей других разработчиков проекта, вам нужно создать надёжную копию вашего секретного ключа, перенеся его на бумагу. Бумажная копия рассматривается как последний шанс восстановления ключа на тот случай, если все остальные механизмы резервного копирования уже бесполезны.
Тот файл, который получится в результате этой команды, после распечатки, подходит для систем оптического распознавания текста или для ручного ввода, если возникнет необходимость восстановить ключ. Этот файл следует распечатать, затем взять ручку и написать где-нибудь на поле листа бумаги ключевую фразу. Это важный шаг, так как распечатанный ключ зашифрован ключевой фразой, и если вы когда-нибудь её измените, то вы гарантированно, не сможете вспомнить исходную ключевую фразу.
Положите распечатку с записанной на ней ключевой фразой в конверт и поместите всё это в надёжное место, желательно — вне вашего жилища, например — в банковскую ячейку.
Обратите внимание на принтер, на котором вы будете распечатывать бумажную резервную копию ключа. Давно прошли те времена, когда принтеры были примитивными устройствами, подключаемыми к параллельным портам компьютеров. В наши дни у принтеров имеются полноценные операционные системы, жёсткие диски, интеграция с облачными службами. Так как данные ключа, которые мы отправляем на печать, зашифрованы с помощью ключевой фразы, распечатку можно считать довольно-таки безопасной операцией, однако, тут лучше перестраховаться, чем недосмотреть.
▍Добавление идентификационных данных
Если у вас есть несколько адресов электронной почты, которыми вы активно пользуетесь (личный и рабочий адреса, адрес, применяемый в некоем опенсорсном проекте, и так далее), вам следует добавить их к вашему мастер-ключу. Вам не нужно делать это для любых адресов, которые вы не планируете использовать с PGP (скажем, для адреса, который вам выдали, когда вы где-то учились). Ниже показана команда для добавления идентификационных данных к ключу. Здесь [fpr] надо заменить на отпечаток вашего ключа:
Просмотреть уже добавленные к ключу UID можно следующей командой:
▍Выбор основного набора идентификационных данных
GnuPG автоматически сделает последний добавленный набор идентификационных данных главным, поэтому если вам нужно что-то другое, вы можете воспользоваться такой командой:
Итоги
Из этого материала вы узнали о ролях ключей PGP, том, как сгенерировать мастер-ключ, как надёжно сохранить резервную копию этого ключа, и как назначить основные идентификационные данные ключа. В следующий раз поговорим о подключах.
Уважаемые читатели! Как вы храните резервные копии ваших мастер-ключей?
PGP / GPG шифрование
Защита своих данных от чужих глаз — в некоторых случаях может быть вопросом жизни и смерти, а полагаться в этом вопросе на других означает доверять им свои данные. Защитить от любопытных носов свою переписку своими же силами поможет GPG шифрование.
GPG шифрование
GPG (Gnu Privacy Guard) — это инструмент асимметричного шифрования. Если проще, он создает такое сообщение, которое может прочитать только тот, кому ты его написал. Он незаменим при передаче любой важной текстовой информации. Это могут быть письма электронной почты, личные сообщения на форумах, или даже на публичных открытых сервисах. Помимо шифрования он также предоставляет несколько других функций для обеспечения безопасности.
Всегда самым очевидным способом защитить свои коммуникации было шифрование. Раньше для этого применялось симметричное шифрование, требовавшее передачи ключей по надежному каналу. С развитием электронных коммуникаций, увеличением объема данных и возможностей прослушки надежная передача ключей стала трудной задачей.
История PGP / GPG шифрования
В 1970-ых были разработаны асимметричные алгоритмы, позволяющие безопасно, открыто и автоматизировано обмениваться ключами. Схемы таких алгоритмов позволяют двум сторонам обменяться открытыми ключами, используемыми для обозначения получателя сообщения, и при зашифровке использовать открытый ключ получателя одновременно с секретным ключом отправителя. Расшифровать сообщение можно только секретным ключом получателя, и при этом будет видно, что шифрование выполнял именно владелец открытого ключа, то есть отправитель. В такой схеме секретные ключи, используемые для расшифровки, не нужно передавать, поэтому они остаются в безопасности, а отправитель сообщения выявляется при расшифровке, что исключает подмену информации. Но подобное изобретение было доступно только военным и спец. службам.
Авторы алгоритма шифрования с открытым ключом, слева направо: Диффи, Хеллман, Меркль
В 1991 появился общедоступный инструмент асимметричного шифрования для личного использования — PGP, задавший стандарт, однако он был платным и являлся зарегистрированной товарной маркой.
В 1999 был создан GPG — свободный, бесплатный, открытый и полностью совместимый со стандартом аналог PGP. Именно GPG стал самым популярным и зрелым инструментом асимметричного шифрования.
Термины GPG шифрования
Прежде чем приступить к использованию GPG, нужно понять несколько главных особенностей этого инструмента. Первая и основная особенность — это понятие «ключи». Каждый пользователь создает себе свой личный ключ. Ключ пользователя состоит из двух частей
Публичный ключ (далее просто «ключ») представляет собой своего рода визитную карточку, которую пользователь раздает всем своим контактам, желающим переписываться с шифрованием.
Секретный ключ отвечает за процессы шифрования исходящих сообщений и расшифровки полученных. Его следует хранить в безопасном месте. Принято считать, что если кто-либо завладеет секретным ключом, то ключ можно считать скомпрометированным, а значит небезопасным. Этого следует избегать.
GPG4USB
Вторая особенность — ключи, основанные на разных алгоритмах совместимы между собой. Неважно, использует ли пользователь RSA или ELGamal, для шифрования не нужно забивать голову такими деталями. Это достигается за счет работы по упомянутому выше стандарту и через некоторые криптографические приемы. Это одно из главных преимуществ GPG. Достаточно знать нужные команды, и программа сделает все сама. В библиотеку входит большое количество асимметричных алгоритмов, симметричным шифров и односторонних хэш-функций. Разнообразие также является преимуществом, потому что позволяет создать одновременно и общие рекомендованные конфигурации, подходящие для большинства, и возможность тонкой настройки для более опытных пользователей.
Как установить GPG шифрование
Для начала работы нужно установить сам GPG. Пользователи Linux могут поставить его из любого пакетного менеджера, поискав там «gnupg», или собрать вручную. Пользователи Windows могут воспользоваться сильно устаревшим клиентом GPG4Win, который имеет несколько неприятных багов и больше функций, или портативным и более свежим клиентом GPG4USB, который имеет меньше функций, но намного проще и стабильнее. Кстати, мы уже писали о том как с помощью клиента GPG4USB зашифровать свою переписку.
GPG ключ
Независимо от операционной системы и клиента, после установки нужно будет создать свой ключ, введя в терминале или кликнув в клиенте соответствующую команду. Программа попросит определиться с алгоритмом шифрования. Обычно их два — это RSA и ELGamal (на самом деле три, если на Linux Вы отважились поставить экспериментальную ветку «modern» с криптографией на эллиптических кривых). Конкретных рекомендаций по алгоритмам нет, они разные и каждый выбирает себе схему по нраву.
Затем необходимо определиться с размером ключа в битах. Здесь тоже нет короткого и однозначного ответа. У слишком длинных ключей есть и недостатки. Одно можно сказать с уверенностью: при выборе RSA и ELGamal не используйте ключи меньше 2048 бит, они крайне не безопасны. Далее программа попросит заполнить несколько форм: E-mail, Имя и комментарий. E-mail и Имя — это публичная информация, которую сможет увидеть каждый, с кем вы будете переписываться.
• В качестве почты можно указать другие виды связи, например ID какого-либо сервиса или мессенджера (Tox, Jabber, BitMessage и т. д.), разделив знаком «@» сам идентификатор/адрес и название сервиса. Чаще всего содержание именно этого поля используется для идентификации владельца ключа.
• Имя выбирать по своему усмотрению. Например, часто используемый ник или вообще «Anonymous».
• Поле комментария заполнять не обязательно. Можно ввести дополнительный. адрес или свою должность. Комментарий будет виден другим пользователям.
После заполнения всех форм нужно ввести пароль. Его можно и пропустить, что не рекомендуется, так как это единственная мера безопасности, которая защитит секретную часть ключа в случае захвата файла с данным ключом злоумышленником. Также важно не забыть пароль, иначе работа с ключом будет более невозможна. При создании ключа нужно внимательно проверять корректность ввода всех полей — ошибки потом не исправить. Публичный ключ распространяется среди большого количества людей, поэтому среди пользователей не принято их часто менять — не у всех контактов может быть свежий ключ.
Сгенерировав свой GPG-ключ, можно начать его распространять. Для этого надо ввести команду отображения публичной части. Исторически сложилось так, что программа изначально применялась для шифрования почты и подписи публичных сообщений в почтовых рассылках, поэтому ключи отображаются по принципу формата РЕМ (англ. «PrivacyEnhanced Mail»). Формат представляет собой единый стандартный блок ключа, начинающийся заголовком — BEGIN PGP PUBLIC KEY BLOCK —, за ним следует достаточно длинное тело самого ключа, кодированное цифрами и латинским алфавитом, и завершающий заголовок — END PGP PUBLIC KEY BLOCK —. Весь блок с заголовками представляет собой ключ GPG, его и нужно распространять целиком. Помимо ручного распространения ключей, возможно использовать специализированные сервера. Пользователь загружает свой публичный ключ на сервер, и при необходимости любой может запросить его. Во многих программах в качестве сервера по умолчанию часто указывают сервер MIT.
Каждый GPG-ключ уникален. Запоминать и сравнивать такие большие блоки ключей вручную невозможно, поэтому для этого существуют отпечатки ключей. Каждый отпечаток ключа тоже уникален, формируется из публичной части, предоставляя короткую уникальную строку для идентификации. В строке отпечатка содержится 40 символов с разделением на 4 символа пробелами. Важно знать, что последние 8 или 16 символов являются еще и ID ключа. При использовании команд из терминала надо будет указывать ID для работы. Отпечатки удобны для быстрого сравнения двух ключей, или короткого указателя нужного ключа при нехватке места.
Шифрование сообщений и файлов
Шифрованные с помощью GPG сообщения состоят из похожих на публичный ключ блоков, только с заголовком — BEGIN PGP MESSAGE —, а длина кодированной символами части зависит от длины сообщения. Подобные сообщения могут быть прочитаны только обладателем ключа, которому адресовано сообщение. Также можно зашифровать свое послание для нескольких ключей, что очень удобно при общении небольшой группы людей. Шифровать можно и файлы, тогда результат шифрования будет записан в файл, а не кодирован текстовыми символами.
Подписи в GPG
Подпись сообщений является удобным средством открытого публичного подтверждения авторства, потому что, как и в случае с шифрованием, только истинный обладатель ключа может подписать свое послание таким ключом и подделать подобную подпись невозможно. Отличается от шифрованных сообщений тем, что текст остается открытым, заключенным с двух сторон соответствующим заголовком, а снизу добавляется небольшой блок самой подписи, также кодированный символами. При попытке изменить хотя бы один символ открытого текста, подпись станет не действительной. Проверка подписей также выполняется при помощи GPG.
Функция Web of Trust
Еще одна функция GPG, которую стоит упомянуть — это Web of Trust. Она используется для подтверждения принадлежности публичного ключа конкретному человеку. Для этого знакомые друг с другом пользователи GPG обмениваются ключами при личной встрече.
Каждый из них сверяет отпечаток ключей и создает для каждого полученного ключа электронный сертификат, доказывающий достоверное соответствие между определенной персоной и публичным ключом.
Создание сертификата называется «подписывание ключей». Сам сертификат потом загружается на сервер ключей, и любой может его запросить. Подразумевается, что чем больше пользователей подписали ключ, тем выше к владельцу доверие.
Модель использования WoT предполагает, что пользователи всегда указывают в ключах свои реальные имена и все желающие установить сеть доверия могут физически встретиться для личного обмена ключами. Это делает подобную схему трудно выполнимой при анонимном общении.
При псевдонимном общении для обмена можно использовать каналы связи или сервисы с аутентификацией, которая будет подтверждать достоверность. В любом случае, сети доверия при анонимном или псевдонимном общении не такие стойкие, частично из-за отсутствия «крепкого набора», формирующего основную группу доверенных пользователей, частично из-за человеческого фактора. Решение о целесообразности подобной сети доверия лежит целиком на группе пользователей, желающих ее построить.
Зачем нужно шифрование
Зачем вообще нужно все это шифрование, если человек ничего не скрывает и не нарушает? Это один из самых часто задаваемых вопросов. На него есть несколько ответов. За последние годы возможность тотальной слежки за сетевой деятельностью миллионов пользователей стала уже вопросом не технической сложности, а ресурсов. Обладатели таких ресурсов — все спецслужбы мира и десятки крупных корпораций, с помощью таких программ как PRISM и XKeyscore могут собирать и хранить годами все письма электронной почты, SMS-сообщения и историю звонков.
Это нарушает конституционные права граждан на тайну переписки, однако влияние этих организаций такое сильное, что остановить неправомерный сбор информации невозможно. Использование GPG не снимет слежку с миллионов людей и не исправит магическим образом весь мир. Это всего лишь инструмент в руках человека. Инструмент, позволяющий сохранить письма и слова только для тех, кому они предназначены, и ни для кого больше. Это немного, но по крайне мере это возвращает право каждого человека на тайну переписки.
Если сбор данных и слежка кажутся слишком отдаленными, можно рассмотреть шифрование с еще более практичной стороны. Та же электронная почта в открытом виде проходит десятки промежуточных узлов. На каждом может быть сколько угодно уязвимостей и дыр безопасности, которые могут быть использованы кем угодно.
В мире, где цифровые коммуникации играют ключевую роль, шифрование — это элементарное правило безопасности, предотвращающее огромное количество проблем. Глупо не воспользоваться возможностью повысить безопасность, учитывая что программа распространяется бесплатно, и освоить ее можно достаточно быстро. А подробнее ознакомиться с командами можно в официальном руководстве.
Что такое шифрование PGP и как его использовать?
Если вы не шифруете свои электронные письма или файлы, то оставляете их в открытом доступе. Любой, кто шпионит за вашим трафиком, может прочитать их. Стоит узнать, что такое шифрование PGP и как оно может улучшить вашу конфиденциальность в интернете.
Что такое PGP?
Это признанный стандарт шифрования, который обеспечивает конфиденциальность и гарантирует подлинность отправляемых или получаемых данных. PGP может использоваться для шифрования и дешифрования текста, электронных писем, файлов или целых разделов диска, а также для создания цифровых подписей.
Как работает шифрование?
Чтобы понять шифрование, представьте, что вы хотите отправить любовное письмо, но вы не хотите, чтобы кто-то его читал, кроме предполагаемого получателя. Вы пишете свое письмо, а затем создаете код (в терминах криптографии ключ) для шифрования вашего сообщения. Например, если вы выберете, что каждая буква алфавита соотносится с числом, то ваше сообщение “I love you” будет выглядеть так: «9 12-15-22-5 25-15-21».
С помощью алгоритма шифрования, ваш любовник сможет расшифровать сообщение и ответить таким же образом. Этот тип криптографии использовался в течение многих лет, но он представляет много уязвимостей.
Чтобы ваше сообщение оставалось конфиденциальным, вам также необходимо передать свой ключ получателю в частном порядке. Вы не можете отправить ключ вместе с сообщением. Если вы отправите его в отдельном конверте или через интернет, он может быть легко украден. Вы, конечно, можете передать ключ лично, но это также неудобно, особенно если вам нужно доставить сообщение кому-то на другой конец мира. Вот где PGP вступает в действие.
Шифрование PGP
PGP использует «криптографию с открытым ключом», что означает, что для шифрования и расшифровки сообщений вам нужны два ключа – открытый и закрытый. Открытый ключ используется для шифрования данных, а закрытый-для их расшифровки.
Представьте себе, что кто-то кладет свое сообщение в коробку, прежде чем отправить его вам. Это окно ‘шифрования’ имеет два замка, и отправитель должен использовать открытый ключ для ‘запирания’ этого ящика. Вы можете поделиться своим открытым ключом с отдельным пользователем или загрузить его на серверы совместного использования ключей. Публичный ключ затем шифрует сообщение так, что никто не сможет расшифровать его, даже сам отправитель.
Ваши открытый и закрытый ключи связаны таким образом, что теперь только комбинация этих двух ключей может разблокировать коробку (расшифровать сообщение). Вы единственный владелец закрытого ключа, поэтому расшифровать сообщение можете только вы. И также никогда не должны делиться своим секретным ключом ни с кем.
Является ли шифрование PGP безопасным?
Шифрование PGP использует 128-битные ключи, что делает его довольно сложным для взлома. Другими словами, есть 2^128 возможных комбинаций, которые кто-то может попробовать, прежде чем сломает шифрование и прочитает ваше сообщение.
Чтобы атака была успешной, хакеру понадобится компьютер, способный запускать миллиард ключей каждую секунду. Даже если бы такой суперкомпьютер существовал, все равно потребовалось бы более 10 000 000 000 000 лет, чтобы опробовать все возможности. Таким образом, пользователи PGP могут чувствовать себя довольно безопасно, используя этот стандарт шифрования.
Зачем использовать PGP?
1. Чтобы зашифровать сообщения электронной почты
PGP широко используется для шифрования сообщений почты. Существует несколько плагинов, которые можно установить в аккаунт Gmail для шифрования сообщений. Некоторые из них будут шифровать ваши сообщения автоматически, в то время как другие будут нуждаться в ручной настройке. Однако эти плагины не шифруют ваши вложения или другую конфиденциальную информацию, такую как строка темы или адрес почты.
Вместо этого вы можете выбрать надежного поставщика услуг электронной почты со встроенным шифрованием PGP. Это означает, что ваша электронная почта будет зашифрована автоматически. Некоторые даже предлагают дополнительные функции, такие как анонимная регистрация, анонимная оплата или даже «перезапись адресов электронной почты».
2. Использование цифровых подписей
Ваш ключ также может быть использован для цифровой подписи документов, которые вы отправляете через интернет, чтобы доказать, что они являются подлинно вашими.
Например, представьте, что вы посылаете книгу своему лучшему другу. Вы шифруете документ их открытым ключом и подписываете его своим закрытым ключом. Как только он получит книгу, то узнает, что она пришла от вас и больше ни от кого. Если по какой-то причине кто-то перехватил документ и что-то изменил — хотя бы одну букву или цифру — ваш друг увидит недействительную цифровую подпись.
Биткоин-кошельки также могут быть подписаны с помощью закрытого ключа разработчика. Цифровая подпись гарантирует, что эти предварительно скомпилированные кошельки не скрывают никакого вредоносного кода, который может украсть вашу криптовалюту или другую конфиденциальную информацию.
Как использовать PGP?
Продвинутые пользователи смогут настроить свое собственное шифрование PGP, но большинство пользователей должны искать службы, которые предоставляют шифрование PGP в качестве функции. Как и большинство протоколов, он не доступен в качестве отдельного приложения.
Одно из его самых частых применений — это электронные письма. Ваши лучшие варианты состояли бы в том, чтобы найти электронную почту, которая предлагает встроенное шифрование PGP.
На видео: Как создать PGP-ключ и шифровать свою почту?
Как сделать ключ PGP?
Выполните следующую команду:
sudo apt-get purge skypeforlinux
3 ответа
Создание ключа PGP
Вот пример GUI для создания нового ключа PGP.
Вы можете найти свой ключ на вкладке Мои личные ключи приложения «Пароли и ключи».
Загрузка вашего ключа в Launchpad
Откройте приложение «Пароли и ключи» (Seahorse). Появится этот экран.
Откройте приложение «Пароли и ключи (Seahorse)»
Пароли и клавиши (Seahorse)
Этот экран появится.
на File → New в глобальном меню или нажмите Ctrl + N
Либо перейдите в File → New в глобальном меню, либо нажмите Ctrl + N
Нажмите «Ключ-серверы» Кнопка Выберите сервер ключей hkp://keyserver.ubuntu.com:XXXXX из ключей «Опубликовать» для списка и нажмите «Закрыть» Введите свое полное имя и ваш адрес электронной почты, комментарий является необязательным
Введите свое полное имя и адрес электронной почты, Комментарий необязателен
Введите надежный пароль, который вы запомните
Введите надежный пароль, который вы запомните
Создание ваших ключей OpenPGP с помощью gpg
Шаг 1: Откройте терминал и введите:
Шаг 2: GPG задаст вам ряд вопросов о типе ключа, который вы хотите сгенерировать. выполните следующие действия, чтобы выбрать параметр по умолчанию каждый раз.
Замените 12345678 идентификатором паба, который вы отметили на шаге 3.
В случае успеха GPG отобразит сообщение, похожее на:
12345678
Шаг 1: Launchpad идентифицирует ваш ключ OpenPGP своим отпечатком. В своем терминале вы можете запросить GPG для отпечатка вашего ключа, набрав:
GPG отобразит сообщение, подобное:
скопировать только цифровой отпечаток: [ f8].
Шаг 2. Посетите ваш OpenPGP
. Шаг 3: Вставьте отпечаток, который вы скопировали на шаге 1, в текстовое поле Fingerprint, затем нажмите кнопку «Импортировать ключ». Launchpad будет использовать отпечаток пальца для проверки сервера ключей Ubuntu для вашего ключа и, в случае успеха, отправить вам зашифрованное письмо с просьбой подтвердить импорт ключа.
В некоторых системах, таких как lubuntu, где недоступен приложение для пароля и ключей (seahorse), хорошим и простым способом сделать ключ PGP является использование gpa (помощник по конфиденциальности GNU). Это графический интерфейс для gpg. Этот метод применим и к другим производным ubuntu.
install gpa sudo apt install gpg gpa
2.launch gpa из меню ваших приложений
install gpa Теперь вы успешно создали pgp-ключ. На самом деле это пара, состоящая из вашего личного ключа и открытого ключа. Чтобы использовать PGP в переписке ур, например, для безопасного обмена электронной почтой вам нужно предоставить другой стороне ваш открытый ключ. Поэтому сначала экспортируйте свой открытый ключ, затем вы можете отправить его им. Чтобы экспортировать, откройте gpa и выберите свой ключ. Теперь нажмите клавишу «Клавиши», а затем клавиши экспорта. Дайте вашему открытому ключу имя и сохраните его
совет: чтобы обеспечить экспорт открытого ключа, откройте его текстовым редактором и проверьте, есть ли стартовая строка
Источники информации:
- http://doam.ru/encrypting_with_pgp/
- http://habr.com/ru/company/ruvds/blog/349618/
- http://habr.com/ru/company/ruvds/blog/350028/
- http://habr.com/ru/post/50982/
- http://www.rusdoc.ru/material/manual/pgp.shtml
- http://habr.com/ru/company/ruvds/blog/350028/?hl=ru_RU&fl=ru,en
- http://spy-soft.net/gpg-shifrovanie/
- http://bezopasnik.info/%D1%87%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-pgp-%D0%B8-%D0%BA%D0%B0%D0%BA-%D0%B5%D0%B3%D0%BE-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C/
- http://askubuntu.ru/questions/240/kak-sdelat-klyuch-pgp