Защита целостности кода с помощью PGP. Часть 1. Базовые концепции и инструменты
Если вы пишете код, который попадает в общедоступные репозитории, вам может пригодиться PGP. В этой серии статей, перевод первой из которых мы публикуем сегодня, будут рассмотрены вопросы использования PGP для обеспечения целостности кода программного обеспечения. Эти материалы, в основном, нацелены на разработчиков свободного ПО, хотя изложенные здесь принципы применимы в любых ситуациях, когда разработка ведётся силами распределённых команд программистов.
Здесь будут раскрыты следующие темы:
- Основы PGP и рекомендации по работе с соответствующим ПО.
- Использование PGP с Git.
- Защита учётной записи разработчика.
О структуре материалов
Каждый раздел этой серии материалов разбит на две части:
- Контрольный список, который может быть адаптирован под нужды конкретного проекта.
- Пояснения, раскрывающие суть элементов контрольного списка, а также инструкции по работе с программами.
Особенности контрольного списка
Элементы в каждом из контрольных списков включают в себя сведения об уровне приоритетности того или иного пункта. Надеемся, это поможет вам в ходе принятия решений по использованию предлагаемых рекомендаций.
- Элементам, которым назначен приоритет «важно», следует уделить особое внимание. Если рекомендации из «важных» пунктов не будут реализованы, это будет означать высокий риск возникновения проблем с кодом, включаемым в проект.
- Элементы с приоритетом «рекомендовано» содержат рекомендации, которые полезно реализовать для улучшения общего уровня безопасности. Их внедрение может подействовать на взаимодействие программиста с его рабочим окружением, это, возможно, потребует приобретения новых привычек или отказа от старых.
Базовые концепции и инструменты PGP
▍Контрольный список
Вот темы, в которых нужно ориентироваться после успешного освоения материала этого раздела:
- Роль PGP в разработке свободного ПО (Важно).
- Основы криптографии с открытым ключом (Важно).
- Различия между шифрованием и подписыванием материалов (Важно).
- Идентификационные данные ключей PGP (Важно).
- Достоверность ключей PGP (Важно).
- Установка утилит GnuPG (версии 2.x) (Важно).
▍Пояснения
Сообщество открытого ПО уже давно полагается на PGP для обеспечения аутентичности и целостности разрабатываемых программных продуктов. Вы можете об этом не знать, но работаете ли вы в среде Linux, Mac или Windows, вы уже пользовались PGP для того, чтобы обеспечить целостность вашего вычислительного окружения.
- Дистрибутивы Linux используют PGP для обеспечения неизменности бинарных пакетов или пакетов с исходным кодом с момента их создания до момента их установки конечным пользователем.
- Проекты свободного ПО обычно предлагают отдельные подписи PGP для выпущенных программных архивов, таким образом, проекты, полагающиеся на них, могут проверить целостность загруженных релизов перед интеграцией их в собственные дистрибутивы.
- Проекты свободного ПО обычно полагаются на подписи PGP в самом коде для того, чтобы отслеживать происхождение и обеспечивать целостность кода, вносимого в проект его разработчиками.
Наша цель заключается в том, чтобы помочь вам контролировать происхождение кода, попадающего в ваш проект, и отслеживать его целостность с помощью PGP. Сделать это можно, следуя рекомендациям по работе с PGP и усвоив основные правила безопасности.
▍Обзор работы PGP
Вам не нужно знать все подробности о том, как работает PGP. Для успешного использования этой технологии достаточно понимания её базовых концепций. В PGP используются криптография с открытым ключом. С помощью криптографических методов, например, обычный текст может быть преобразован в текст зашифрованный. Этот процесс требует наличия двух разных ключей:
- Открытого ключа, который известен всем.
- Закрытого ключа, который известен только владельцу.
▍Шифрование
Для шифрования PGP использует открытый ключ того, для кого предназначен зашифрованный материал. В ходе шифрования создаётся сообщение, которое можно расшифровать только используя соответствующий закрытый ключ, принадлежащий получателю сообщения.
Процесс шифрования выглядит так:
- Отправитель создаёт случайный ключ шифрования (сеансовый ключ).
- Отправитель шифрует содержимое сообщения, применяя этот сеансовый ключ (с использованием симметричного шифра).
- Отправитель шифрует сеансовый ключ, используя открытый ключ PGP получателя.
- Отправитель отправляет зашифрованные данные и зашифрованный сеансовый ключ получателю.
- Получатель расшифровывает сеансовый ключ, используя свой закрытый ключ PGP.
- Получатель использует сеансовый ключ для расшифровки содержимого сообщения.
▍Подписывание
Для подписывания данных открытые и закрытые ключи PGP используются обратным способом:
- Подписывающий генерирует хэш контрольной суммы неких данных.
- Подписывающий использует собственный закрытый ключ для шифрования этой контрольной суммы.
- Подписывающий предоставляет зашифрованную контрольную сумму вместе с данными.
- Проверяющий генерирует собственную контрольную сумму данных.
- Проверяющий использует открытый ключ подписывающего для расшифровывания предоставленной контрольной суммы.
- Если контрольные суммы совпадают, значит целостность содержимого подтверждена.
▍Совместное использование шифрования и подписывания
Часто зашифрованные сообщения ещё и подписывают с использованием собственного PGP-ключа отправителя данных. Подобный подход следует использовать всегда, когда осуществляется обмен зашифрованными сообщениями, так как шифрование без аутентификации не имеет особого смысла (пожалуй, анонимность в подобных вещах нужна лишь секретным агентам и тем, кто делает общественным достоянием некую закрытую информацию).
▍Идентификационные данные ключа
С каждым PGP-ключом должны быть ассоциированы идентификационные данные владельца ключа. Обычно это — полное имя человека и адрес электронной почты в следующем формате:
Иногда идентификационные данные так же содержат комментарии, приводимые в скобках и предназначенные для того, чтобы сообщить конечному пользователю подробности о конкретном ключе:
Так как люди, владельцы ключей, могут играть множество профессиональных и персональных ролей, в одном и том же ключе могут присутствовать несколько наборов идентификационных данных:
Когда используются множество наборов идентификационных данных, один из них помечается как основной, для упрощения поиска ключа.
▍Достоверность ключа
Для того чтобы иметь возможность использовать чей-нибудь открытый ключ для шифрования или верификации, вам нужно убедиться в том, что он действительно принадлежит этому человеку (Alice в данном случае), а не мошеннику (пусть мошенника зовут Eve). В PGP это называется достоверностью ключа:
- Полная достоверность ключа означает, что имеется очень высокий уровень уверенности в том, что данный ключ принадлежит Alice.
- Граничная достоверность ключа означает, что мы до некоторой степени уверены в том, что ключ принадлежит Alice.
- Неизвестная достоверность ключа означает, что у нас абсолютно нет уверенности в том, что этот ключ принадлежит Alice.
▍Сеть доверия и механизм «доверие при первом использовании»
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:
- PGP (Pretty Good Privacy) — это название коммерческой программы, вышедшей в 1991-м году.
- OpenPGP — это стандарт IETF, совместимый с PGP.
- GnuPG (Gnu Privacy Guard) — это бесплатное ПО, которое реализует стандарт OpenPGP.
- Инструмент командной строки для GnuPG называется gpg.
- Ключ PGP (не GnuPG или GPG)
- Подпись PGP (не GnuPG или GPG)
- Сервер ключей PGP (не GnuPG или GPG)
▍Установка GnuPG
Если вы используете Linux, это значит, что в вашей системе уже установлено ПО GnuPG. На Mac вам надо установить GPG-Suite, или воспользоваться командой brew install gnupg2 . Если вы пользователь Windows, то вам подойдёт GPG4Win, и вам, вероятно, потребуется изменить некоторые команды из этого руководства. Если же вы пользуетесь в Windows Unix-подобным окружением, то команды менять не придётся. Если вы пользуетесь какими-то другими платформами, то вам понадобится самостоятельно подобрать подходящую реализацию GnuPG.
▍GnuPG версий 1 и 2
И GnuPG v.1, и GnuPG v.2 реализуют один и тот же стандарт, но они предоставляют несовместимые библиотеки и инструменты командной строки, в результате многие дистрибутивы поставляются и с устаревшей версией 1, и с более новой версией 2. Вам нужно удостовериться в том, что вы всегда пользуетесь GnuPG v.2.
Для начала, для того, чтобы узнать, какая версия GnuPG скрывается в вашей системе под именем gpg , выполните следующую команду:
Если вы видите нечто вроде gpg (GnuPG) 1.4.x , это значит, что по команде gpg вызывается GnuPG v.1. Попробуйте в таком случае команду gpg2 :
Если вы видите что-то вроде gpg (GnuPG) 2.x.x , значит, всё в порядке. Тут мы полагаем, что у вас есть версия GnuPG 2.2 или более поздняя. Если вы используете версию GnuPG 2.0, некоторые из команд, которые будут здесь приведены, работать не будут, поэтому вам стоит рассмотреть возможность установки самой свежей версии 2.2 GnuPG.
▍Псевдоним для GnuPG v.2
Если в вашей системе есть и команда gpg , и команда gpg2 , хорошо бы настроить всё так, чтобы по команде gpg вызывалась GnuPG v.2, а не старая версия ПО. Сделать это можно, создав псевдоним:
Эту команду можно поместить в .bashrc для того, чтобы на команду gpg откликалась программа GnuPG v.2.
Итоги
Здесь мы поговорили об основах PGP, которыми необходимо владеть для успешного применения PGP в деле защиты кода. В следующий раз мы расскажем о создании и защите PGP-ключей.
Уважаемые читатели! Используете ли вы PGP для защиты кода ваших программных проектов?
Что такое шифрование 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 Encryption & Decryption
Thanks for using this software, for Cofee/Beer/Amazon bill and further development of this project please Share.
Any private key value that you enter or we generate is not stored on this site, this tool is provided via an HTTPS URL to ensure that private keys cannot be stolen, for extra security run this software on your network, no cloud dependency
Asking for donation sound bad to me, so i’m raising fund from by offering all my Nine book for just $9
Pretty Good Privacy
Pretty Good Privacy or PGP is a popular program used to encrypt and decrypt email over the Internet, as well as authenticate messages with digital signatures and encrypted stored files.
PGP and similar software follow the OpenPGP standard (RFC 4880) for encrypting and decrypting data.
When we generate a public-private keypair in PGP, it gives us the option of selecting DSA or RSA, This tool generate RSA keys. RSA is an algorithm.PGP is originally a piece of software, now a standard protocol, usually known as OpenPGP.
PGP Vs OpenPGP
PGP is a proprietary encryption solution, and the rights to its software are owned by Symantec
Расшифровка pgp сообщения. Программа шифрования PGP. Оповещение адресатов об использовании PGP
13.5. Использование программы PGP для шифрования сообщений электронной почты
PGP (Pretty Good Privacy) – это криптографическая (шифровальная) программа с высокой степенью надежности, которая позволяет пользователям обмениваться информацией в электронном виде в режиме полной конфиденциальности.
И если у вас есть секретный способ отправки ключей декодирования, почему вы не используете это для всех своих секретных сообщений? Для этого используется криптография с открытым ключом. У каждого человека в разговоре есть способ создать два ключа. Один из них — их секретный ключ, который они хранят для себя и никогда не позволят кому-либо еще знать. Другой — открытый ключ, который они раздают всем, кто хочет общаться с ними. Не важно, кто может видеть открытый ключ. Вы можете разместить его в Интернете, где каждый может его увидеть.
«Ключи» сами по себе, на самом деле, очень большие числа, с определенными математическими свойствами. Открытый ключ и закрытый ключ связаны. Если вы кодируете что-то с помощью открытого ключа, то кто-то еще может его декодировать с помощью соответствующего секретного ключа.
Главное преимущество этой программы состоит в том, что для обмена зашифрованными сообщениями пользователям нет необходимости передавать друг другу тайные ключи, т.к. эта программа построена на принципе публичной криптографии или обмене открытыми (публичными) ключами.
Пользователи могут в открытом виде посылать друг другу свои публичные ключи с помощью сети Интернет и при этом не беспокоиться о возможности несанкционированного доступа каких-либо третьих лиц к их конфиденциальным сообщениям.
Давайте посмотрим, как это может работать. Он может его декодировать, потому что у него есть соответствующий закрытый ключ, но никто другой не может. Криптография с открытым ключом избавляет от проблемы контрабанды ключа декодирования человеку, которому вы хотите отправить сообщение, потому что у этого человека уже есть ключ. Вам просто нужно овладеть подходящим общедоступным ключом кодирования, который получатель может раздавать всем, включая шпионов. Поскольку это полезно только для кодирования сообщения, это бесполезно для любого, кто пытается декодировать сообщение.
В PGP применяется принцип использования двух взаимосвязанных ключей: открытого и закрытого. К закрытому ключу имеете доступ только вы, а свой открытый ключ вы распространяете среди своих корреспондентов.
PGP шифрует сообщение таким образом, что никто кроме получателя сообщения, не может ее расшифровать. Создатель PGP Филипп Циммерман открыто опубликовал код программы, который неоднократно был исследован специалистами-криптоаналитиками высочайшего класса и ни один из них не нашел в программе каких-либо слабых мест
Если вы кодируете сообщение с определенным открытым ключом, его можно декодировать только соответствующим личным ключом. Но верно и обратное. Если вы кодируете сообщение с определенным личным ключом, его можно декодировать только с помощью соответствующего открытого ключа.
Оповещение адресатов об использовании PGP
На первый взгляд, не кажется, что есть какое-то преимущество в создании секретного сообщения с вашим личным ключом, которое могут взломать все в мире. Подписание также делает сообщения защищенными от несанкционированного доступа. Таким образом, подписанное сообщение, как гарантируется, исходит из определенного источника и не должно быть запущено в пути.
Как работает PGP
Когда пользователь шифрует сообщение с помощью PGP, то программа сначала сжимает текст, что сокращает время на отправку сообщения (например, через модем) и увеличивает надежность шифрования. Большинство приемов криптоанализа (взлома зашифрованных сообщений) основаны на исследовании «рисунков», присущих текстовым файлам, что помогает взломать ключ. Сжатие ликвидирует эти «рисунки» и таким образом повышает надежность зашифрованного сообщения.
Затем PGP генерирует сессионный ключ, который представляет собой случайное число, созданное за счет движений вашей мышки и нажатий на клавиши клавиатуры.
Таким образом, криптография с открытым ключом позволяет безопасно шифровать и отправлять сообщения всем, чей открытый ключ вам известен. Если другие знают ваш открытый ключ, они могут отправлять вам сообщения, которые вы можете расшифровать. И если люди знают ваш открытый ключ, вы можете подписывать сообщения, чтобы эти люди знали, что они могли бы только прийти от вас. И если вы знаете открытый ключ другого человека, вы можете декодировать подписанное ими сообщение и знать, что оно только от них.
Теперь должно быть ясно, что криптография с открытым ключом становится более полезной, чем больше людей знают ваш открытый ключ. Также должно быть очевидно, что вам необходимо сохранить секретный ключ в безопасности. Если кто-то еще получит копию вашего закрытого ключа, они могут притворяться вами и подписывать сообщения, утверждающие, что они были написаны вами. Самая важная часть использования криптографической системы с открытым ключом — очень осторожно защищать ваш секретный ключ.
Как только данные будут зашифрованы, сессионный ключ зашифровывается с помощью публичного ключа получателя сообщения и отправляется к получателю вместе с зашифрованным текстом.
Расшифровка происходит в обратной последовательности. Программа PGP получателя сообщения использует закрытый ключ получателя для извлечения временного сессионного ключа, с помощью которого программа затем дешифрует зашифрованный текст.
Он также позволит вам загружать открытые ключи других людей и загружать открытые ключи в «,», которые являются хранилищами, в которых другие люди могут найти ваш ключ. Если есть одна вещь, которую вам нужно убрать из этого обзора, это так: вы должны хранить секретный ключ в безопасном месте и защищаться длинным паролем. Вы можете предоставить свой открытый ключ всем, с кем хотите общаться с вами, или кто хочет узнать, действительно ли сообщение появилось от вас.
Возможно, вы обнаружили потенциальный недостаток в том, как работает криптография с открытым ключом. Если бы люди поверили мне, они могли бы начать отправлять секретные сообщения Бараку, зашифрованные с помощью ключа. Или они могут полагать, что все, что подписано с этим ключом, является присяжным заявлением Барака.
Ключ — это число, которое используется криптографическим алгоритмом для шифрования текста. Как правило, ключи — это очень большие числа. Размер ключа измеряется в битах. Число, представленное 1024 битами — очень большое. В публичной криптографии, чем больше ключ, тем его сложнее взломать.
В то время как открытый и закрытый ключи взаимосвязаны, чрезвычайно сложно получить закрытый ключ исходя из наличия только открытого ключа, однако это возможно при наличии большой компьютерной мощности. Поэтому крайне важно выбирать ключи подходящего размера: достаточно большого для обеспечения безопасности и достаточно малого для обеспечения быстрого режима работы. Более большие ключи будут более надежными в течение более длительного срока времени. Поэтому если вам необходимо зашифровать информацию с тем, чтобы она хранилась в течение нескольких лет, то необходимо использовать более длинный ключ.
Это довольно редко, но на самом деле это произошло с некоторыми людьми в реальной жизни, в том числе с некоторыми из авторов этого документа — некоторые люди, которые писали им, были обмануты! Еще одна подлая атака заключается в том, что злоумышленник сидит между двумя людьми, разговаривающими в Интернете, подслушивая их всю беседу и иногда вставляя злоумышленников собственные вводящие в заблуждение сообщения в разговор. Благодаря дизайну Интернета как системы, которая отправляет сообщения на разных компьютерах и частных вечеринках, эта атака вполне возможна.
Ключи хранятся на жестком диске вашего компьютера в зашифрованном состоянии в виде двух файлов: одного для открытых ключей, а другого — для закрытых. Эти файлы называются «кольцами» (keyrings). В течение работы с программой PGP вы, как правило, будете вносить открытые ключи ваших корреспондентов в открытые «кольца». Ваши закрытые ключи хранятся в вашем закрытом «кольце».
В этих условиях обмен ключами без предварительного соглашения может стать очень рискованным. «Вот мой ключ», — объявляет человек, который звучит как Барак Обама, и отправляет вам файл с открытым ключом. Но что сказать, что кто-то не дождался этого момента, пронзил передачу Обамы ключом и затем вставьте его?
Я слышал и обеспокоен тем, что исходные тексты последних версий PGP не предоставляются для свободного доступа. Это правда?
Как мы доказываем, что определенный ключ действительно принадлежит определенному человеку? Один из способов — получить ключ от них напрямую, но это не намного лучше, чем наша первоначальная задача получить секретный ключ, если кто-то не заметил нас. Тем не менее, люди обмениваются открытыми ключами, когда они встречаются, в частном порядке и в публичных криптопартиях.
Цифровая подпись
Огромным преимуществом публичной криптографии также является возможность использования цифровой подписи, которая позволяет получателю сообщения удостовериться в личности отправителя сообщения, а также в целостности (верности) полученного сообщения.
Цифровая подпись исполняет ту же самую функцию, что и ручная подпись. Однако ручную подпись легко подделать. Цифровую же подпись почти невозможно подделать.
Для определения целостности полученного сообщения используется хеш-функция. В чем-то она похожа на «контрольную сумму», или код проверки ошибок CRC, который компактно представляет сообщение и используется для проверки сообщения на наличие изменений.
Эти ключевые серверы будут передавать подписанные ключи всем, кто их запрашивает. Но пока, если вам нужна альтернатива передаче ключей друг другу лично, использование сети доверия и сети серверов с открытым ключом — ваш лучший вариант. Как мы уже отмечали, информация о ваших сообщениях может быть столь же показательной, как и их содержимое.
Действительно, в некоторых странах вы можете столкнуться с тюремным заключением просто за отказ в расшифровке зашифрованных сообщений. Действительно, если вы загружаете свой открытый ключ на серверы ключей или подписываете ключи других людей, вы эффективно показываете миру, какой ключ принадлежит вам, и кто вы знаете.
«Хэш-функция» действует таким образом, что в случае какого-либо изменения информации, пусть даже на один бит, результат «хэш-функции» будет совершенно иным. С помощью «хэш-функции» и закрытого ключа создается «подпись», передаваемая программой вместе с текстом.
При получении сообщения получатель использует PGP для восстановления исходных данных и проверки подписи.
Цифровая подпись и шифрование сообщений
Вам не нужно прикреплять свое имя к ключу. Скрывать то, что вы общаетесь с конкретным человеком, сложнее. Версия 52 Версия 45 Версия 38 Версия 31 Версия 24 Версия 17. Инфраструктура электронной почты, которую каждый использует, по своей конструкции не защищена. В то время как большинство людей подключаются к своим почтовым серверам с использованием безопасного соединения, некоторые серверы обеспечивают незащищенный доступ. Кроме того, поскольку сообщение перемещается по пути передачи от отправителя к получателю, соединения между каждым сервером не обязательно безопасны.
При условии использования надежной формулы «хэш-функции» невозможно вытащить подпись из одного документа и вложить в другой, либо каким-то образом изменить содержание сообщения. Любое изменение подписанного документа сразу же будет обнаружено при проверке подлинности подписи.
Парольная фраза
Еще одним средством защиты в PGP является парольная фраза.
Парольная фраза — это сочетание нескольких слов, которое теоретически более надежно, чем парольное слово. Парольная фраза должна быть такой, чтобы ее потом не забыть и чтобы третьи лица не могли ее разгадать.
Если вы забудете свою парольную фразу, то уже никогда не сможете восстановить свою зашифрованную информацию. Ваш закрытый ключ абсолютно бесполезен без знания парольной фразы.
Возможно, третьи стороны могут перехватывать, читать и изменять сообщения электронной почты по мере их передачи. Используя сильные протоколы шифрования, вы можете убедиться, что ваши данные безопасны от посторонних глаз и что только люди, которых вы решаете, должны видеть, что ваша информация имеет к нему доступ. Шифрование — это то, что может выиграть каждый пользователь компьютера.
Но это также вполне безопасно, так как сообщения могут быть дешифрованы только с помощью секретных ключей, защищенных паролем. Подписывая ваше зашифрованное сообщение своим личным ключом, вы предоставляете получателю сообщения сообщение о том, было ли изменено содержимое сообщения. Если даже одна буква в сообщении будет изменена до того, как она будет расшифрована, подпись будет признана недействительной, предупреждая получателя о нарушении игры.
Генерация ключей
1. Нажмите кнопку «ПУСК» и выберете команду «Выполнить». Выберете программу PGPKEYS.
2. Зайдите в меню KEYS и выполните команду NEW KEY.
Нажмите на «Далее»
Введите свое имя и электронный адрес
Нажмите на «Далее»
Выберите размер ключа 2048 или 1024 и нажмите на «Далее»
Выделите фразу key pair never expires (срок действия ключевой пары никогда не истекает) и нажмите на «Далее»
Два раза введите секретный пароль и нажмите на «Далее»
И если это достаточно хорошо для Сноудена, это достаточно хорошо для большинства, если не для всех, других людей, которым нужно зашифровать вещи. Вам также необходимо убедиться, что у вас есть подходящие инструменты для вашего почтового клиента. Создайте свои общедоступные и закрытые ключи.
В зависимости от используемого вами программного обеспечения вы будете использовать разные методы для генерации новых ключей. Вам также придется решить, следует ли публиковать открытый ключ на ключевом сервере. В общем, это хорошая идея, так как это позволит другим людям найти ваш открытый ключ и отправить вам зашифрованные сообщения, даже если вы ранее не общались.
Программа начнет генерировать пару ключей. Если программе не хватает информации, то она может попросить нажать на несколько клавиш наугад и подвигать мышку. Это необходимо выполнить.
Затем программа сообщит, что процесс генерации ключей закончен.
Нажмите на «Далее»
Потом еще раз нажмите на «Далее»
Затем нужно нажать на команду Done
Вы будете делать это по-разному в зависимости от вашего почтового клиента; лучший способ узнать, что именно делать, — это посмотреть в файлы справки для вашего приложения. Получите открытые ключи для своих контактов. Однако есть еще один важный шаг. Для того, чтобы кто-то расшифровывал отправленное им электронное письмо, вам нужно иметь открытый ключ.
Вы также можете искать своего друга на сервере ключей. После того, как вы нашли ключ для своего контакта, его необходимо загрузить и импортировать в свое приложение, используя требуемые процедуры. Все это может показаться большой работой, и это, безусловно, может быть. К счастью, как только вы получите систему и начнете привыкать к этому процессу, все начнет работать немного плавно, и вы мгновенно отпустите зашифрованные электронные письма. Некоторые группы пытаются сделать весь процесс проще для пользователей, одним из которых является то, о чем мы говорили ранее.
На этом процесс создания пары ключей закончился и можно начинать пользоваться программой.
3. Обменяйтесь со своими корреспондентами открытыми ключами. Для этого необходимо исполнить команду LAUNCH PGP KEYS, выделить свой ключ (файл со своим именем) в окошке, нажать на правую кнопку мышки и выбрать команду EXPORT.
Появится окошко, с помощью которого можно указать путь, где сохранить файл с названием.
И вам не обязательно быть гениальным компьютером, чтобы использовать его для шифрования ваших электронных писем и файлов, что значительно увеличивает вашу электронную и электронную безопасность. Примечание. Инструкции, приведенные здесь, относятся к версиям 6 и 6.
По завершении создания ключа вы увидите следующее окно. Здесь вы можете видеть, с кем вы обменяли ключи, все ли они действительны и имеют обзор силы и типа ключей. На данный момент все выглядит немного мрачно, у вас есть только один ключ: ваш собственный. Для обмена зашифрованными электронными письмами с партнером необходим его открытый ключ. Вы получаете его либо прямо от него, либо с ключевого сервера. Это компьютеры в Интернете, на которые каждый может отправлять свой открытый ключ. Оттуда партнер по связям может загрузить ключ, даже если владелец находится в отпуске.
Этот файл необходимо выслать своему корреспонденту, в обмен на его открытый ключ.
Как только вы получите открытый ключ своего корреспондента, надо его запустить, нажав на него двойным щелчком мышки, выделить его в окошке и выполнить команду IMPORT.
4. Теперь можно пересылать друг другу зашифрованные сообщения, которые шифруются открытым ключом получателя сообщения.
Для начала вы можете скачать открытый ключ Алисы и написать ей электронное письмо: Нажмите. Первая версия уже имела место при выполнении алгоритмов шифрования, на которые даже американская разведывательная служба кусает зубы. Обычные методы используют один и тот же ключ для кодирования и декодирования. Получатель может прочитать сообщение только в том случае, если он знает ключ, который использует отправитель. Этот метод имеет большой недостаток: отправитель и получатель должны согласовать общий ключ и обменять его.
Получение открытого ключа с сервера ключей
Это, конечно, не зашифровано, поэтому существует вероятность того, что эта связь будет контролироваться. Затем злоумышленник мог прочитать все остальные сообщения: у него уже есть ключ. У каждого коммуникационного партнера есть два ключа: частный и публичный. Открытый ключ можно распределять произвольно, по электронной почте, через веб-сайт или даже на дискете. С помощью этого открытого ключа вы можете только шифровать сообщения, но не читать их. И если текст был закодирован таким образом, используя открытый ключ, только владелец соответствующего закрытого ключа может расшифровать текст.
Свой открытый ключ можно поместить на специальном сервере, тогда он будет доступен всем желающим вести с вами переписку. Программа PGP сама предлагает вам выбрать, как сообщить корреспондентам свой общедоступный ключ — храня его на сервере или послав письмом.
Как послать зашифрованное сообщение
После того, как открытый (публичный) ключ вашего корреспондента будет установлен на вашем компьютере, сообщение можно отправлять получателю.
Существует три основных способа шифрования информации:
— напрямую в почтовой программе;
— через копирование текста в буфер обмена Windows;
— через шифрование всего файла, который затем прикрепляется к сообщению.
Рассмотрим второй способ.
1. Составить сообщение в почтовой программе.
2. Выделить сообщение и скопировать в буфер Windows.
3. Запустить PGP. Появляется окно диалога с PGP под названием PGPkeys.
4. Выделить адрес (открытый ключ) корреспондента (ключ получателя сообщения) и щелкнуть по нему мышкой два раза, чтобы он появился внизу, потом нажать OK и программа зашифрует все содержимое clipboard.
5. После этого зайти в сообщение с текстом, который был ранее выделен, установить мышку на поле сообщения, нажать на правую кнопку мышки и исполнить команду Paste.
В результате зашифрованное содержимое clipboard заменяет предыдущее сообщение, и на этом процесс шифровки закончился. Теперь можно отправлять сообщение обычным образом.
Рассмотрим третий способ.
1. Создать текст в каком-либо редакторе, например, Блокноте, и сохранить его в виде файла.
2. В проводнике выделить файл и нажать на правую кнопку мышки. В нижней части команды опций появится команда под названием PGP. Поставив мышку на PGP, увидим раскрывающееся меню, состоящее из 4 команд:
encrypt
sign
encrypt and sign
wipe
3. Выбрать команду encrypt. Появится диалог выбора открытого ключа корреспондента.
4. Выбрать ключ, нажать на OK, ввести пароль. В результате получим зашифрованный файл.
После этого рекомендуется выполнить еще одну команду в меню PGP: wipe (стереть, уничтожить оригинальный файл).
После этой операции у файла остается то же самое имя, но меняется тип расширения на.
Теперь этот файл можно прикрепить к сообщению и отправить вместе с ним.
Как расшифровать полученное сообщение
Расшифровать полученное сообщение можно так. Выделить полученный зашифрованный текст, скопировать его в буфер Windows clipboard, зайти мышкой в меню PGP через панель задач Windows и выбрать команду decrypt and verify clipboard. Появляется окно программы PGP, в которое необходимо ввести пароль и нажать на OK. Сообщение будет расшифровано.
При работе с программой PGP появляется следующая проблема: при шифровании исходящих сообщений открытым ключом своего корреспондента отправитель сообщений не может их потом прочитать. Только получатель может прочитать такое сообщение. В результате получается, что отправитель не может впоследствии прочитать свои зашифрованные сообщения, отправленные им ранее.
В настройках PGP есть опция, позволяющая зашифровывать свои исходящие сообщения таким образом, чтобы их можно было потом прочитать (взять из архива и прочитать).
Для этого надо щелкнуть мышкой по символу PGP на панели задач, исполнить команду PGP preferences, зайти в General и поставить галочку напротив команды Always encrypt to default key.
Кроме этого нужно зайти в PGPkeys, выбрать мышкой свой ключ, зайти в меню keys и исполнить команду set as default key.
Здесь же можно изменить свою парольную фразу:
— выделить мышкой свой ключ,
— нажать на правую кнопку мышки, исполнить команду key properties, change passphrase и поменять свою парольную фразу.
Краткий справочник команд PGP
Зашифровать текстовый файл с открытым ключом получателя:
pgp -e textfile her_userid
Подписать текстовый файл вашим секретным ключом:
pgp -s textfile [-u your_userid]
Подписать текстовый файл вашим секретным ключом и, затем, зашифровать его с открытым ключом получателя:
pgp -es textfile her_userid [-u your_userid]
Для шифрования текстового файла стандартным криптографическим методом:
pgp -c textfile
Для расшифровки зашифрованного файла или для проверки целостности подписи подписанного файла:
pgp ciphertextfile [-o plaintextfile]
Шифрование данных — непременный хакерский ритуал, в котором каждый применяет свой набор утилит. Если для десктопных ОС выбор предлагается большой, то в мобильных операционках пока доступны единичные приложения. Мы обратили внимание на новое творение разработчика SJ Software — PGPTools. Первая версия этой программы вышла в апреле. За полгода список поддерживаемых платформ существенно расширился. Теперь он включает Windows 10, Windows Phone, iOS (8.0 и выше), OS X (начиная с 10.9) и Android (4.0 и новее). Для тестирования была выбрана последняя версия PGPTools v.1.10 под ОС Android. Скачать программу можно зарегистрировашись на форуме 4Pda.ru в этой теме .
Еще до установки программы становит ся очевидно, что ее авторы придерживаются минималистических взглядов. В инсталляционном пакете PGPTools занимает полтора мегабайта, а после установки — всего пять с половиной. Радует и то, что список запрашиваемых разрешений состоит ровно из одного пункта — записи на карту памяти. Никакой отправки СМС, доступа в интернет и к личным сведениям ей не требуется.
Интерфейс утилиты тоже крайне прост и легок в освоении. С одной стороны, это позволяет быстро в ней разобраться, а с другой — вызывает легкую тоску по привычным менюшкам с длинными списками настроек. В текущей версии PGPTools можно только задать пароль и выбрать длину ключа. Зато программа позволяет создать несколько пар ключей и управлять ими из отдельной вкладки. Здесь можно выбрать текущий ключ и желаемые действия с ним. Поддерживается экспорт (через буфер обмена или функцию «передать»), а также возможен импорт ранее созданных PGP-ключей.

приятно что программе не требуется каких либо дополнительных разрешений.
ИСПОЛЬЗОВАНИЕ PGPTOOLS
Начинается работа в программе с простого шага — создания пары ключей. Для этого нужно ввести свое имя или никнейм, адрес электронной почты (он будет использоваться для отправки зашифрованных и/или подписанных писем) и пароль.
В схеме PGP все ключи генерируются парами, поскольку их математически связывает общая парольная фраза. Ее стоит сделать длинной и сложной, но без фанатизма — забытый пароль не восстановят. Ключи в парах генерируются разные по своей структуре — асимметричные. Публичный ключ назван так потому, что его можно свободно передавать кому угодно. Он служит
для проверки подписи его владельца и обеспечивает возможность отправить ему зашифрованное сообщение. Расшифровать такое послание можно только парным ему секретным ключом. На то он и секретный, чтобы знал его лишь создатель этой пары ключей.

Упрощенно говоря, публичным ключом письмо шифруют перед отправкой, а секретным дешифруют после получения. Это как бы цифровая реализация замка с защелкой: захлопнуть дверь с ним может любой, а вот открыть — только владелец ключа. Мы сделали на пробу две пары ключей: минимально (1024 бита) и максимально (4096 бит) возможной длины.
Основная панель в PGPTools носит такое же название. Она переключается между двумя режимами: шифрованием и дешифрованием. Ее вид зависит от того, какой ключ был ранее выбран на панели key list — публичный или секретный. Зашифровать любой текст с помощью PGPTools можно в пару кликов. Для этого достаточно вставить его в поле с подсказкой Enter source из любого источника и нажать кнопку Encrypt. Шифрование будет выполнено с использованием выбранного ранее публичного ключа.
Расшифровать его чуть сложнее. Нужно выбрать секретный ключ (парный использованному для шифрования публичному) и ввести пароль, заданный при их совместной генерации. Блок зашифрованного текста также вставляется в поле источника, а результат дешифровки отображается ниже после нажатия кнопки Decrypt. Основное назначение PGPTools как программы с асимметричной схемой шифрования состоит в защите переписки (в частности, почты) с возможностью передать ключ собеседнику по ненадежному каналу. Если бы один
и тот же ключ использовался для шифрования/дешифрования сообщений, то его перехват скомпрометировал бы всю переписку. Перехват открытых ключей практически бесполезен. Обменявшись ими, можно сразу начать обмен зашифрованными сообщениями. После создания их не открыть даже отправителю. Это может сделать только получатель — своим секретным ключом и после ввода парольной фразы.
Передавая зашифрованные письма, убедись, что блок шифротекста вставляется как есть — без разрывов и переносов. Иначе его нельзя будет дешифровать из-за появления искажений.
ПАРА (ТЫСЯЧ) СЛОВ ОБ АЛГОРИТМЕ
В классической реализации Циммермана схема PGP использует одну хеш-функцию и два криптографических алгоритма: один с симметричным и один с асимметричным ключом. Также в ней применяется сеансовый ключ, создаваемый при помощи генератора псевдослучайных чисел. Такой сложный процесс обеспечивает более надежную защиту данных, то есть математическую сложность восстановления секретного ключа из парного ему публичного.
Выбор алгоритмов сейчас доступен очень широкий. Именно он в большой степени влияет на качество конкретной реализации PGP. Обычно используют AES и RSA, а из хеш-функций выбирают ту, что, по современным представлениям, наименее подвержена коллизиям (RIPEMD-160, SHA-256). В PGPTools для шифрования данных используется алгоритм IDEA, для управления ключами и цифровой подписи — RSA. Хеширование происходит с помощью функции MD5.
Сам многостадийный процесс (де)шифрования данных у любой программы реализован в одном
из наборов общедоступных криптографических библиотек. Все создаваемые PGPTools ключи содержат в названии версии BCPG, что косвенно указывает на использование Bouncy Castle OpenPGP API. При проверке этого предположения в файле com.safetyjabber.pgptools.apk было обнаружено прямое указание на библиотеки Bouncy Castle.
Они реализуют схему OpenPGP согласно RFC 4880, но имеют свои особенности. Одна из них состоит в том, что (в зависимости от выбранной версии) в них может не применяться подключ шифрования. Также в этих библиотеках замечены ограничения эффективной длины ключа. Это означает, что выше некоего предела (обычно 1024 бита) попытка создать ключ большей длины не будет иметь практического смысла. Алгоритм не сможет обеспечить высокое качество ключей, поскольку в парах появится слишком много совпадающих блоков.
Для проверки мы экспортировали публичный и секретный PGP-ключ каждой пары в текстовый файл и сравнили их. У пары ключей с длиной 1024 бита повторяющихся фрагментов нет, как и должно быть в качественной реализации.


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

УТЕШИТЕЛЬНЫЙ ВЫВОД
Выявленные в ходе тестирования недостатки носят общий характер. Они типичны для многих программ, поскольку касаются кода не самого приложения, а используемых в нем популярных библиотек. Криптографическое сообщество рекомендует разработчикам избегать Bouncy Castle OpenPGP. Мы надеемся, что в следующих версиях авторы PGPTools возьмут за основу более продвинутые реализации.
В текущем виде программа уже способна обеспечить базовый уровень приватности и может быть рекомендована как утилита, добавляющая функционал PGP на мобильные устройства. Она поможет создать или прочесть зашифрованные тексты практически на любом современном смартфоне, а также скрыть тайную переписку от любопытных глаз. Любая защита может считаться стойкой ровно до тех пор, пока затраты на ее преодоление оказываются существенно выше, чем предполагаемая стоимость оберегаемых данных.
По данным NIST, ключи PGP с длиной 1024 бита и менее считались ненадежными еще несколько лет назад. Тогда они вскрывались за приемлемое время на мощных серверах, а сегодня щелкаются как семечки в сетях распределенных вычислений. Помимо выбора длины ключа, уровень защиты определяется также сложностью парольной фразы и самим механизмом реализации PGP.