PGP – это криптографическая (шифровальная) программа с высокой степенью надежности, которая позволяет пользователям обмениваться информацией в электронном виде в режиме полной конфиденциальности.
Главное преимущество этой программы состоит в том, что для обмена зашифрованными сообщениями пользователям нет необходимости передавать друг другу тайные ключи т.к. эта программа построена на новом принципе работы – публичной криптографии или обмене открытыми (публичными) ключами, где пользователи могут открыто посылать друг другу свои публичные ключи с помощью сети «Интернет» и при этом не беспокоиться о возможности несанкционированного доступа каких-либо третьих лиц к их конфиденциальным сообщениям.
В PGP применяется принцип использования двух взаимосвязанных ключей: открытого и закрытого. К закрытому ключу имеете доступ только вы, а свой открытый ключ вы распространяете среди своих корреспондентов.
Великолепное преимущество этой программы состоит также в том, что она бесплатная и любой пользователь, имеющий доступ к Интернету, может ее «скачать» на свой компьютер в течение получаса. PGP шифрует сообщение таким образом, что никто кроме получателя сообщения, не может ее расшифровать. Создатель PGP Филипп Циммерман открыто опубликовал код программы, который неоднократно был исследован специалистами крипто-аналитиками высочайшего класса и ни один из них не нашел в программе каких-либо слабых мест.
Знакомство с PGP
Филипп Циммерман следующим образом объясняет причину создания программы: «Людям необходима конфиденциальность. PGP распространяется как огонь в прериях, раздуваемый людьми, которые беспокоятся о своей конфиденциальности в этот информационный век. Сегодня организации по охране прав человека используют программу PGP для защиты своих людей за рубежом. Организация Amnesty International также использует ее».
Пользователям сети «Интернет» рекомендуется использовать эту программу именно по той же причине, почему люди предпочитают посылать друг другу письма в конвертах, а не на открытках, которые могут быть легко прочитаны почтовыми служащими. Дело в том, что электронные сообщения, в том виде и формате, который существует на сегодняшний день, легко могут быть прочитаны и архивированы любым человеком, имеющим доступ к серверу Интернет провайдера (поставщика услуг сети «Интернет»).
В настоящий момент спецслужбам проще и дешевле подключиться к электронным адресам большого количества лиц, нежели к телефонным разговорам. Здесь вообще ничего делать не надо. Все сделает компьютер. Агенту спецслужбы или другому заинтересованному человеку остается только сесть за компьютер и просмотреть все ваши сообщения. Научно-технический прогресс облегчил задачу таким людям, однако, этот же самый прогресс предоставил возможность пользователям сети «Интернет» скрыть свои сообщения от третьих лиц таким образом, что даже суперкомпьютер стоимостью несколько десятков миллионов долларов не способен их расшифровать.
КАК PGP РАБОТАЕТ
Использование открытых и закрытых ключей PGP. Зачем это все
Когда пользователь шифрует сообщение с помощью PGP, то программа сначала сжимает текст, что сокращает время на отправку сообщения через модем и увеличивает надежность шифрования. Большинство приемов криптоанализа (взлома зашифрованных сообщений) основаны на исследовании «рисунков», присущих текстовым файлам, что помогает взломать ключ. Сжатие ликвидирует эти «рисунки» и таким образом повышает надежность зашифрованного сообщения. Затем PGP генерирует сессионный ключ, который представляет собой случайное число, созданное за счет движений вашей мышки и нажатий на клавиши клавиатуры.
Как только данные будут зашифрованы, сессионный ключ зашифровывается с помощью публичного ключа получателя сообщения, который отправляется к получателю вместе с зашифрованным текстом.
Расшифровка происходит в обратной последовательности. Программа PGP получателя сообщения использует закрытый ключ получателя для извлечения временного сессионного ключа, с помощью которого программа затем дешифрует зашифрованный текст.
КЛЮЧИ
Ключ – это число, которое используется криптографическим алгоритмом для шифрования текста. Как правило, ключи — это очень большие числа. Размер ключа измеряется в битах. Число, представленное 1024 битами – очень большое. В публичной криптографии, чем больше ключ, тем его сложнее взломать.
В то время как открытый и закрытый ключи взаимосвязаны, чрезвычайно сложно получить закрытый ключ исходя из наличия только открытого ключа, однако это возможно при наличии большой компьютерной мощности. Поэтому крайне важно выбирать ключи подходящего размера: достаточно большого для обеспечения безопасности и достаточно малого для обеспечения быстрого режима работы. Кроме этого, необходимо учитывать личность того, кто намеревается прочитать ваши зашифрованные сообщения, насколько он заинтересован в их расшифровке, каким временем он обладает, и какие у него имеются ресурсы.
Более большие ключи будут более надежными в течение более длительного срока времени. Поэтому если вам необходимо зашифровать информацию с тем, чтобы она хранилась в течение нескольких лет, то необходимо использовать более крупный ключ.
Ключи хранятся на жестком диске вашего компьютера в зашифрованном состоянии в виде двух файлов: одного для открытых ключей, а другого — для закрытых. Эти файлы называются «кольцами» (keyrings). В течение работы с программой PGP вы, как правило, будете вносить открытые ключи ваших корреспондентов в открытые «кольца». Ваши закрытые ключи хранятся в вашем закрытом «кольце». При потере вашего закрытого «кольца» вы не сможете расшифровать любую информацию, зашифрованную с помощью ключей, находящихся в этом «кольце».
ЦИФРОВАЯ ПОДПИСЬ
Огромным преимуществом публичной криптографии также является возможность использования цифровой подписи, которая позволяют получателю сообщения удостовериться в личности отправителя сообщения, а также в целостности (верности) полученного сообщения. Цифровая подпись исполняет ту же самую функцию, что и ручная подпись. Однако ручную подпись легко подделать. Цифровую же подпись почти невозможно подделать.
ХЭШ-ФУНКЦИЯ
Еще одно важное преимущество использования PGP состоит в том, что PGP применяет так называемую «хэш-функцию», которая действует таким образом, что в том случае какого-либо изменения информации, пусть даже на один бит, результат «хэш-функции» будет совершенно иным. С помощью «хэш-функции» и закрытого ключа создается «подпись», передаваемая программой вместе с текстом. При получении сообщения получатель использует PGP для восстановления исходных данных и проверки подписи.
ПАРОЛЬНАЯ ФРАЗА
Большинство людей, как правило, знакомы с парольной системой защиты компьютерных систем от третьих лиц.
Парольная фраза – это сочетание нескольких слов, которое теоретически более надежно, чем парольное слово. В виду того, что парольная фраза состоит из нескольких слов, она практически неуязвима против так называемых «словарных атак», где атакующий пытается разгадать ваш пароль с помощью компьютерной программы, подключенной к словарю. Самые надежные парольные фразы должны быть достаточно длинными и сложными и должны содержать комбинацию букв из верхних и нижних регистров, цифровые обозначения и знаки пунктуации.
Парольная фраза должна быть такой, чтобы ее потом не забыть и чтобы третьи лица не могли ее разгадать. Если вы забудете свою парольную фразу, то уже никогда не сможете восстановить свою зашифрованную информацию. Ваш закрытый ключ абсолютно бесполезен без знания парольной фразы и с этим ничего не поделаешь.
ОСНОВНЫЕ ШАГИ В ИСПОЛЬЗОВАНИИ ПРОГРАММЫ PGP
1. Установите программу на свой компьютер. Руководствуйтесь краткой инструкцией по инсталляции программы, приведенной ниже.
2. Создайте закрытый и открытый ключ. Перед тем, как вы начнете использовать программу PGP, вам необходимо генерировать пару ключей, которая состоит из закрытого ключа, к которому имеете доступ только вы, и открытый ключ, который вы копируете и свободно передаете другим людям (вашим корреспондентам).
3. Распространите свой открытый ключ среди своих корреспондентов в обмен на их ключи. Ваш открытый ключ, это всего лишь маленький файл, поэтому его можно либо воткнуть в сообщение, копировать в файл, прикрепить к почтовому сообщению или разместить на сервере.
4. Удостовериться в верности открытого ключа. Как только вы получите открытые ключи своих корреспондентов, то их можно внести в «кольцо» открытых ключей. После этого вам необходимо убедиться в том, что у вас действительно открытый ключ вашего корреспондента. Вы можете это сделать, связавшись с этим корреспондентом и, попросив его зачитать вам по телефону «отпечатки пальцев» (уникальный идентификационный номер) его открытого ключа, а также сообщив ему номер вашего ключа. Как только вы убедитесь в том, что ключ действительно принадлежит ему, вы можете его подписать и таким образом подтвердить ваше доверие к этому ключу.
5. Шифрование и удостоверение корреспонденции вашей цифровой подписью. После генерации пары ключей и обмена открытыми ключами вы можете начать шифрование и удостоверение ваших сообщений и файлов своей цифровой подписью. Если вы используете почтовую программу, которая поддерживается программой PGP, то вы можете шифровать и дешифровать всю вашу корреспонденцию, находясь прямо в этой программе. Если же ваша почтовая программа не поддерживается программой PGP, то вы можете шифровать вашу корреспонденцию другими способами (через буфер обмена или шифрованием файлов целиком).
6. Дешифровка поступающих к вам сообщений и проверка подлинности отправителя. Когда кто-либо высылает вам зашифрованное сообщение, вы можете дешифровать его и проверить подлинность отправителя этого сообщения и целостность самого сообщения. Если ваша почтовая программа не поддерживается PGP, то вы можете сделать это через буфер обмена.
7. Уничтожение файлов. Когда вам необходимо полностью удалить какой-либо файл, вы можете исполнить команду wipe (стереть). Таким образом, удаленный файл уже невозможно будет восстановить.
Антивирусная защита.
Понятие антивирусных средств защиты информации.
Антивирусная программа (антивирус) — программа для обнаружения компьютерных вирусов, а также нежелательных (считающихся вредоносными) программ вообще, и восстановления зараженных (модифицированных) такими программами файлов, а также для профилактики — предотвращения заражения (модификации) файлов или операционной системы вредоносным кодом (например, с помощью вакцинации).
Антивирусное программное обеспечение состоит из подпрограмм, которые пытаются обнаружить, предотвратить размножение и удалить компьютерные вирусы и другое вредоносное программное обеспечение.
2. Классификация антивирусных программ.
Наиболее эффективны в борьбе с компьютерными вирусами антивирусные программы. Однако сразу хотелось бы отметить, что не существует антивирусов, гарантирующих стопроцентную защиту от вирусов, и заявления о существовании таких систем можно расценить как либо недобросовестную рекламу, либо непрофессионализм. Таких систем не существует, поскольку на любой алгоритм антивируса всегда можно предложить контр-алгоритм вируса, невидимого для этого антивируса (обратное, к счастью, тоже верно: на любой алгоритм вируса всегда можно создать антивирус).
Самыми популярными и эффективными антивирусными программами являются антивирусные сканеры (другие названия: фаг, полифаг, программа-доктор). Следом за ними по эффективности и популярности следуют CRC-сканеры (также: ревизор, checksumer, integrity checker). Часто оба приведенных метода объединяются в одну универсальную антивирусную программу, что значительно повышает ее мощность. Применяются также различного типа блокировщики и иммунизаторы.
2.1 Сканеры.
Принцип работы антивирусных сканеров основан на проверке файлов, секторов и системной памяти и поиске в них известных и новых (неизвестных сканеру) вирусов. Для поиска известных вирусов используются так называемые “маски”. Маской вируса является некоторая постоянная последовательность кода, специфичная для этого конкретного вируса.
Если вирус не содержит постоянной маски, или длина этой маски недостаточно велика, то используются другие методы. Примером такого метода являетcя алгоритмический язык, описывающий все возможные варианты кода, которые могут встретиться при заражении подобного типа вирусом. Такой подход используется некоторыми антивирусами для детектирования полиморфик — вирусов.
Сканеры также можно разделить на две категории — “универсальные” и “специализированные”. Универсальные сканеры рассчитаны на поиск и обезвреживание всех типов вирусов вне зависимости от операционной системы, на работу в которой рассчитан сканер. Специализированные сканеры предназначены для обезвреживания ограниченного числа вирусов или только одного их класса, например макро-вирусов. Специализированные сканеры, рассчитанные только на макро-вирусы, часто оказываются наиболее удобным и надежным решением для защиты систем документооборота в средах MS Word и MS Excel.
Сканеры также делятся на “резидентные” (мониторы, сторожа), производящие сканирование “на-лету”, и “нерезидентные”, обеспечивающие проверку системы только по запросу. Как правило, “резидентные” сканеры обеспечивают более надежную защиту системы, поскольку они немедленно реагируют на появление вируса, в то время как “нерезидентный” сканер способен опознать вирус только во время своего очередного запуска. С другой стороны резидентный сканер может несколько замедлить работу компьютера в том числе и из-за возможных ложных срабатываний.
К достоинствам сканеров всех типов относится их универсальность, к недостаткам —относительно небольшую скорость поиска вирусов. Наиболее распространены в России следующие программы: AVP — Касперского, Dr.Weber – Данилова, Norton Antivirus фирмы Semantic.
Антивирус Касперского.
Ревизор Inspector отслеживает все изменения в вашем компьютере и при обнаружении несанкционированных изменений в файлах или в системном реестре позволяет восстановить содержимое диска и удалить вредоносные коды. Inspector не требует обновлений антивирусной базы: контроль целостности осуществляется на основе снятия оригинальных отпечатков файлов (CRC-сумм) и их последующего сравнения с измененными файлами. В отличие от других ревизоров, Inspector поддерживает все наиболее популярные форматы исполняемых файлов.
Эвристический анализатор дает возможность защитить компьютер даже от неизвестных вирусов.
Фоновый перехватчик вирусов Monitor, постоянно присутствующий в памяти компьютера, проводит антивирусную проверку всех файлов непосредственно в момент их запуска, создания или копирования, что позволяет контролировать все файловые операции и предотвращать заражение даже самыми технологически совершенными вирусами.
Антивирусная фильтрация электронной почты предотвращает возможность проникновения вирусов на компьютер. Встраиваемый модуль Mail Checker не только удаляет вирусы из тела письма, но и полностью восстанавливает оригинальное содержимое электронных писем. Комплексная проверка почтовой корреспонденции не позволяет вирусу укрыться ни в одном из элементов электронного письма за счет проверки всех участков входящих и исходящих сообщений, включая прикрепленные файлы (в том числе архивированные и упакованные) и другие сообщения любого уровня вложенности.
Антивирусный сканер Scanner дает возможность проводить полномасштабную проверку всего содержимого локальных и сетевых дисков по требованию.
Перехватчик скрипт-вирусов Script Checker обеспечивает антивирусную проверку всех запускаемых скриптов до того, как они будут выполнены.
Поддержка архивированных и компрессированных файлов обеспечивает возможность удаления вредоносного кода из зараженного компрессированного файла.
Изоляция инфицированных объектов обеспечивает изоляцию зараженных и подозрительных объектов с последующим их перемещением в специально организованную директорию для дальнейшего анализа и восстановления.
Автоматизация антивирусной защиты позволяет создавать расписание и порядок работы компонентов программы; автоматически загружать и подключать новые обновления антивирусной базы через Интернет; рассылать предупреждения об обнаруженных вирусных атаках по электронной почте и т.д.
Источник: studopedya.ru
Основы работы с криптографической программой pgp
Основы работы с криптографической программой PGP: Метод. указ. к лаб. работе / Самар. гос. техн. ун-т; Сост. В.И. Будин, С.Н. Майорова. Самара, 2005. 34 с.
Приведена лабораторная работа по изучению и применению криптографической программы PGP8.0.
Методические указания предназначены студентов технических вузов, изучающих дисциплину «Информатика».
Библиогр.: 2 назв.
Основы работы с криптографической программой pgp
Цель работы — изучение функциональных возможностей криптографической программы PGP и приобретение навыков практической работы по шифрованию информации.
1. Основные понятия криптографической программы
1.1. Общие сведения
PGP (Pretty Good Privacy — довольно хорошая секретность)- это криптографическая (шифровальная) программа с высокой степенью надежности, которая позволяет пользователям обмениваться информацией в электронном виде в режиме полной конфиденциальности.
В PGP применяется принцип использования двух взаимосвязанных ключей: открытого (public key)изакрытого (private key). Это очень большие числа, генерируемые случайным образом (1024 бита, 2048 бит и т.д.). К закрытому ключу имеет доступ только отправитель сообщения, а открытый ключ публикуется или распространяться через коммуникационные сети среди своих корреспондентов. При этом открытым ключом информация шифруется, закрытым расшифровывается.
Открытые ключи можно публиковать на сервере открытых ключей или распространять через коммуникационные сети среди корреспондентов. Они хранятся в компьютере в каталоге pubring.pkr в виде «сертификатов открытых ключей», которые включают в себя:
- идентификатор пользователя владельца ключа (обычно это имя пользователя);
- временную метку, которая указывает время генерации пары ключей;
- собственно ключи.
1.2. Принцип работы pgp
Процесс шифрования сообщения с помощью PGPсостоит из ряда шагов (рис. 1). Сначала программа сжимает текст. Это сокращает время на отправку сообщения через модем и увеличивает надежность шифрования. Примечание: Большинство приемов криптоанализа (взлома зашифрованных сообщений) основаны на исследовании “рисунков”, присущих текстовым файлам, что помогает взломать ключ. Сжатие ликвидирует эти “рисунки”. Для обеспечения установления подлинности сообщения его можно «подписать». Это делается добавлением к сообщению электронной (цифровой) подписи, которую получатель может проверять, используя открытый ключ отправителя для расшифровки. Цифровая подпись — это блок данных, сгенерированный с использованием секретного ключа. Программа делает это следующим образом:
- Из документа генерируется дайджест сообщения(это 160 или 128 – битная «выжимка» или контрольная сумма файла сообщения), к нему добавляется информация о том, кто подписывает документ и штамп времени.
- Закрытый ключ отправителя используется для зашифровки дайджеста сообщения, таким образом, «подписывая» его.
- Дайджест сообщения передается вместе с самим сообщением в зашифрованном виде. При идентификации подписи создается новый дайджест и сравнивается с переданным дайджестом, если они совпадают, то подпись считается подтвержденной. Если сообщение подвергнется какому-либо изменению, ему будет соответствовать другой дайджест, т.е. будет обнаружено, что сообщение было изменено.
Распознавание электронной подписи показывает, что отправителем был действительно создатель сообщения, и что сообщение впоследствии не изменялось. Следующим шагом является генерирование так называемого сессионного (временного) ключа, который представляет собой случайное число значительно меньшего размера, чем открытый и закрытый ключ (128 бит, 168 бит), что обеспечивает высокое быстродействие шифрации-дешифрации. Временный ключ генерируется автоматически с использованием строго случайных событий, в качестве источника которых используются параметры нажатий клавиш и движений мыши. Данным сессионным ключом шифруется сообщение, а сессионный ключ зашифровывается с помощью публичного ключа получателя сообщения и отправляется к получателю вместе с зашифрованным текстом (рис. 1.1). Рис.1.1. Процесс шифрования сообщения Расшифровка происходит в обратной последовательности. Программа PGP получателя сообщения использует закрытый ключ получателя для извлечения временного сессионного ключа, с помощью которого программа затем дешифрует зашифрованный текст (рис.1.2).
Рис.1.2. Процесс дешифрования сообщения
Источник: studfile.net
Шифрование с помощью 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 канал
Источник: doam.ru