Pgp ключ что это
Перейти к содержимому

Pgp ключ что это

  • автор:

Принцип «Web of Trust» или как работает PGP

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

Но что это вообще такое? Википедия дает следующее определение:

PGP (англ. Pretty Good Privacy) — компьютерная программа, также библиотека функций, позволяющая выполнять операции шифрования и цифровой подписи сообщений, файлов и другой информации.

На словах ясно, но давайте посмотрим, что у него под капотом.

Концепт

Представим, что у нас есть пользователь А и пользователь Б.

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

В современных системах используют алгоритмы Rjindael (на данный момент — AES), DES, RC4 и некоторые другие.

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

И вот он ответ, не так ли? Пусть пользователь А передаст свой ключ пользователю Б. Тогда можно будет шифровать свою переписку с двух сторон, и никто не узнает что они друг другу пишут.

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

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

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

Раз передать свой личный ключ от того-же AES — всё равно, что скомпрометировать свою безопасность, то встает вопрос — как пользователь А может безопасно передать свой ключ пользователю Б?

Решение проблемы — подписывать ключи и письма другим ключом! Но только этот второй ключ будет уже от асимметричного алгоритма шифрования. Суть та же, что и у симметричных, только теперь нет единого ключа от замка — их два. Один «публичный», им данные можно только зашифровать, а второй — «приватный», он способен расшифровать данные, обработанные публичным ключом из его пары.

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

На этом основывается принцип действия «Электронных подписей».

Они нужны для того, чтобы пользователь Б данных мог быть уверен в том, что данные были зашифрованы именно тем ключом, что принадлежит пользователю А, и наоборот.

Подпись создается из хэша изначальных данных и прилагается к отправленному пакету.

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

Web of Trust

ОК, мы разобрались, как совершить рукопожатие (handshake — процесс образования безопасного канала связи).

А теперь представьте, что между пользователем А и Б сидит еще один — пользователь С.

«С» — злоумышленник, которому нужно знать о подробностях общения А и Б.

Он создает две пары ключей для подписи и еще два ключа для шифрования данных.

Пользователю А он представляется пользователем Б, а пользователю Бпользователем А. Реальность такова, что в реалиях интернета нельзя быть на 100% уверенным, что полученная электронная подпись и ключ — подлинные.

Выходит, что если такой сценарий действительно возможен, то безопасности нашим А и Б не видать?

Спасение есть! Вот мы и дошли до основной темы — «сеть доверия», по англ. «Web of trust».

Эта сеть заключается в том, что все пользователи знают публичные ключи электронных подписей друг друга, и у каждого из участника сети можно спросить: «А точно ли вот этот ключ, который мне прислал пользователь Б, принадлежит ему, а не какому-нибудь злоумышленнику?»

При этом сеть доверия может быть даже при маленьком количестве участников очень эффективной, так как если один знает другого, то третий, спросив первого, узнает публичный ключ второго. Как корни дуба, Web of Trust переплетается между собой, позволяя юзерам обмениваться данными.

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

Обобщение

Теперь давайте соединим все эти концепты в одну простую схему.

Пользователь А и пользователь Б оба находятся в одной сети доверия и хотят начать безопасное общение.

«А» спрашивает у любых нескольких участников сети публичный ключ «Б». Используя этот ключ, он отправляет запрос на рукопожатие юзеру Б. «Б» в свою очередь узнает публичный ключ юзера А, генерирует симметричный ключ для дальнейшего общения и, воспользовавшись публичным ключом юзера А, отправляет симметричный ключ обратно.

Все сообщения в этой схеме также подписываются электронными подписями.

При таком взаимодействии вмешательство со стороны невозможно, и наши пользователи, наконец, могут приступить к переписке.

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

Итог

Ни одна система не бывает идеальной. MITM (Man in the middle, в нашем случае — способ подделки сертификатов, путем верификации поддельных ключей теми подписями, которым доверяет браузер пользователей-жертв) атаки осуществляются и по сей день.

Но если возле адресной строки вашего браузера красуется тот самый «зеленый замочек» — ваши данные в надежных руках алгоритма PGP.

PGP / GPG шифрование

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

Я также могу вам посоветовать статью «Зашифрованная почта», в которой мы рассказывали как с помощью GPG шифрования зашифровать конфиденциальную переписку.

  • GPG шифрование
  • История PGP / GPG шифрования
  • Термины GPG шифрования
  • Установка GPG шифрования
  • Шифрование сообщений и файлов
  • Подписи в GPG шифровании
  • Функция Web of Trust
  • Зачем нужно шифрование

GPG шифрование

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

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

История PGP / GPG шифрования

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

PGP Меркль Хеллман Диффи

В 1991 появился общедоступный инструмент асимметричного шифрования для личного использования — PGP, задавший стандарт, однако он был платным и являлся зарегистрированной товарной маркой.

В 1999 был создан GPG — свободный, бесплатный, открытый и полностью совместимый со стандартом аналог PGP. Именно GPG стал самым популярным и зрелым инструментом асимметричного шифрования.

Термины GPG шифрования

Прежде чем приступить к использованию GPG, нужно понять несколько главных особенностей этого инструмента. Первая и основная особенность — это понятие «ключи». Каждый пользователь создает себе свой личный ключ. Ключ пользователя состоит из двух частей

  • Публичный ключ (из публичной части)
  • Секретный ключ (из секретной части)

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

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

Gnu Privacy Guard

Вторая особенность — ключи, основанные на разных алгоритмах совместимы между собой. Неважно, использует ли пользователь 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-ключ, можно начать его распространять. Для этого надо ввести команду отображения публичной части. Исторически сложилось так, что программа изначально применялась для шифрования почты и подписи публичных сообщений в почтовых рассылках, поэтому ключи отображаются по принципу формата РЕМ (англ. «Privacy­Enhanced 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.

установить gpg

Подписи тоже можно применять на файлах. Особенно часто эта функция применяется разработчиками ПО, связанного с безопасностью. Делается это для того, чтобы предотвратить подмену файлов злоумышленниками, которые могут встроить в программы вредоносный код. Подписываются обычно архивы или сборки, сама подпись сохраняется в отдельный файл с расширением .asc или .sig. Ключ публикуется в нескольких местах и/или загружается на сервер, где его очень трудно подменить. Сам процесс проверки называется «верификация подписи».

Функция Web of Trust

Еще одна функция GPG, которую стоит упомянуть — это Web of Trust. Она используется для подтверждения принадлежности публичного ключа конкретному человеку. Для этого знакомые друг с другом пользователи GPG обмениваются ключами при личной встрече.

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

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

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

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

Зачем нужно шифрование

Зачем вообще нужно все это шифрование, если человек ничего не скрывает и не нарушает? Это один из самых часто задаваемых вопросов. На него есть несколько ответов. За последние годы возможность тотальной слежки за сетевой деятельностью миллионов пользователей стала уже вопросом не технической сложности, а ресурсов. Обладатели таких ресурсов — все спецслужбы мира и десятки крупных корпораций, с помощью таких программ как PRISM и X­Keyscore могут собирать и хранить годами все письма электронной почты, SMS-сообщения и историю звонков.

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

Вас может заинтересовать обзор расширения браузера для передачи зашифрованных файлов MiniLock

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

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

Шифрование с помощью PGP

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

PGP (Pretty Good Privacy) — одна из первых популярных реализаций шифрования с открытым ключом. У нее интересная история, особенно в части как правительство США пыталось запретить её экспорт. В итоге PGP стала коммерческим продуктом. Доступна бесплатная версия, основанная на том же стандарте, что и PGP. Она называется GnuPG (или GPG). Поскольку стандарт одинаковый, пользователи часто говорят «PGP-ключ» и «PGP-сообщение», хотя на самом деле используют GnuPG.

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

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

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

Шифрование и Дешифрование

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

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

Отпечатки

Одна из проблем с публичным ключами это самозванство. Нет легкого способа гарантировать, что определенный публичный ключ, опубликованный онлайн действительно принадлежит конкретному человеку. Атакующий может сгенерировать пару ключей и “подсунуть” свой публичный ключ, прикидываясь другим человеком.

Чтобы справиться с этой проблемой, в PGP существует механизм отпечатков. Отпечатки (Fingerprints) — это уникальный идентификатор, они генерируются в результате односторонней математической функции называемой хэширование. Односторонней значит что из отпечатка нельзя получить исходный ключ выполнив обратную процедуру (хэшировать можно любые данные, не только ключи). Результатом является цифробуквенная строка фиксированной длинны. Пользователи публикуют свои отпечатки на различных платформах. Например в социальных сетях, email подписях или даже печатают на визитках. Одним из способов также является публикация на специальном сервере-справочнике (например keybase.io).

У меня в блоге есть отдельная страница, на которой можно скачать мой публичный PGP ключ и найти отпечаток. Этот же отпечаток указан в био в моем Twitter аккаунте. Скачав публичный ключ и импортировав его к себе (об этом еще будет позже), можно повторить процесс генерации отпечатка самостоятельно и сравнить его с тем, что указан публично. Таким образом вы убедитесь что публичный ключ действительно принадлежит этому человеку. Но будьте внимательны, злоумышленник может подменить отпечатки тоже.

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

Подпись сообщений

Другой компонент PGP — подпись сообщений. Это процесс удостоверения сообщения уникальной цифровой подписью.

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

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

Сочетание подписания с шифрованием гарантирует:

  • Конфиденциальность — гарантия того, что ни одна сторона, кроме предполагаемого получателя, не сможет получить доступ к содержимому сообщения
  • Целостность — гарантия того, что сообщение не было изменено при передаче
  • Аутентификация — гарантия того, что личность отправителя может быть проверена
  • Неотрицание — гарантия того, что отправитель не сможет обоснованно отрицать факт отправки сообщения

Как генерировать PGP ключи

Как я уже упоминал, существует бесплатная библиотека и ПО, которые реализуют PGP протокол — GnuPG. Есть несколько способов как ими пользоваться, я предпочитаю использовать терминал. Команды, приведенные ниже, подходят для операционных систем MacOS и Linux, а также, скорее всего, Linux подсистемы в Windows — WSL.

Если работать с PGP в терминале вам некомфортно, я советую посмотреть в сторону инструкций Surveillance Self-Defense от Electronic Frontier Foundation. Они доступны в том числе на русском языке.

На MacOS GnuPG может быть установлен через Homebrew.

Сначала выбираем тип ключа, который хотим создать. Можно нажать Enter чтобы выбрать тип по умолчанию, на MacOS это ECC (sign and encrypt) . Если вы не видите такой тип в списке, а по умолчанию предлагается RSA, воспользуйтесь параметром —expert , чтобы увидеть больше опций.

Дальше нам предлагается выбрать эллептическую кривую. Берем Curve 25519 и переходим к сроку действия. Можно создать ключи с ограниченным сроком действия, это хорошая, но продвинутая практика, придется перегенерировать ключи до даты истечения, чтобы начать работать с PGP это не нужно, поэтому выбираем key does not expire .

Для RSA будет предложен выбор размера, если вы, по какой-то причине не можете использовать ECC, а доступен только RSA, я бы рекомендовал как минимум 4096.

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

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

Вот и все! Теперь у вас есть приватный и публичный ключи, которые можно использовать для шифрования и подписывания. Чтобы просмотреть список доступных публичный ключей, можно использовать команду:

А чтобы посмотреть доступные приватные ключи, команду:

Используйте параметр —fingerprint чтобы отобразить отпечатки ключей. Это длинная строка из 10 блоков с 4 цифрами и буквами в каждом.

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

Как импортировать публичный ключ и зашифровать им сообщение

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

Первым делом нужно скачать мой публичный ключ со специальной страницы. Это можно сделать через браузер или в том же терминале, с помощью команды:

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

Если вы уверены в каком-то конкретном ключе, вы можете изменить его уровень доверия в GnuPG и тогда предупреждения не будет. Для этого можно воспользоваться параметром —edit-key .

gpg --edit-key KEY_ID> gpg> trust

Далее вам будет предложен выбор уровня доверия.

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 m = back to the main menu

После подтверждения выбора можно выйти из редактирования ключа командой quit .

Дополнительные материалы

Примеры критики PGP:

  • Operational PGP
  • Using OpenPGP subkeys in Debian development
  • signify: Securing OpenBSD From Us To You
  • Поблагодарить автора
  • Telegram канал

Pgp ключ что это

Что такое PGP? Шифруем письма
Что такое PGP? Шифруем письма
30 октября 2023

40103

E-mail маркетинг | Статьи, советы, рекомендации.

Поделиться →
30 октября 2023

40103

E-mail маркетинг | Статьи, советы, рекомендации.

Поделиться →

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

Соответственно многие из нас задаются вопросом, что же нам нужно для того, чтобы защитить себя? Заморозить кредитку? Использовать разные пароли для каждого нового интернет магазина, банковского аккаунта или просто логина?

А что же тогда по поводу зашифровки писем?

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

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

Что такое PGP?

PGP расшифровывается как “Pretty Good Privacy”. Это тип зашифровки писем, который должен защищать их от прочтения кем-либо, кроме намеренного получателя. PGP используется как для зашифровки, так и для дешифровки писем, а так же как инструмент для подтверждения отправителя и контента как такогого.

Как работает PGP?

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

Для примера, давайте представим, что кто-то хочет приватно отправить намёк журналисту. Журналист может иметь публичный ключ, который отправитель использовал для зашифровки и безопасной отправки письма ему. После того как письмо зашифруют, оно станет криптограммой, которая является текстом, которому требуется расшифровка.

После того, как криптограмма получена, журналист воспользуется своим личным, частным ключом для её расшифровки.

Есть два типа зашифровки: симметричная и асимметричная.

В симметричном шифровании, нет как такого публичного ключа. Есть только один приватный ключ используемый для расшифровки и дешифровки. Многие рассматривают подобный тип шифрования, как вполне рисковый, потому что любой кто расшифрует один ключ может прочитать, что было в зашифрованном сообщении. Это как-будто бы кто-то нашел бы ваш пароль, только ставки гораздо выше и тут гораздо сложнее сменить «пароль».

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

Как получить PGP ключ?

PGP шифрование доступно на разных типах софта. Есть много всего доступного, но один из самых упоминаемых вариантов это GNU Privacy Guard (GPG), бесплатный криптографический софт, который может управлять ключами и зашифровывать файлы и письма.

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

Если вы создали публичный ключ и хотите поделиться им с другими, то у вас есть несколько директорий из которых выбрать. MIT Key Server и PGP Global Directory, для примера, позволяют людям найти ваш ключ без обращения к вам, что важно для тех, кто пытается поддерживать высокий уровень приватности.

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

Как мне зашифровать сообщение в PGP?

Чтобы отправить зашифрованное сообщение, вам понадобится скачать софт, который позволит вам отправлять зашифрованные сообщения. CPG это как вариант, но есть ещё один — Enigmail который является аддоном для почтового клиента Thunderbird.

В GPG вы можете создавать зашифрованные письма внутри софта с различными вариантами шифровки. PGP это один пример и активируется он с «security method indicator» в программе.

Почему PGP используется?

Хоть PGP и широко применяется для шифрования писем, рост популярности и разговоры о криптовалюте могли бы объяснить, почему его стоит использовать в необычном формате.

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *