Шифрование в linux: использование gnupg

Содержание:

Правовые аспекты использования в России

На сегодняшний день прямых законодательных запретов на использование PGP в России нет. Законодательно ограничивается использование криптографии только в государственных и муниципальных учреждениях. ФСБ предписывает всем государственным структурам использовать только сертифицированные средства криптографии. Физические лица и компании сами устанавливают, какая информация является для них коммерческой тайной, методы хранения и передачи такой информации. Информационный ресурс Helpdesk24 в статье «Правомерность использования криптографических средств защиты информации» приводит выдержки из федеральных законов, поясняющие данный вопрос. Также авторы проекта «openPGP в России» утверждают, что не существует законов, запрещающих использование PGP. Электронная подпись, генерируемая с помощью PGP и её несертифицированных аналогов, имеет юридическую силу в Российской Федерации, так как, согласно пункту 3 статьи 5 63-ФЗ «Об электронной подписи», попадает под определение усиленной неквалифицированной электронной подписи. Согласно пункту 2 статьи 6 этого ФЗ, для признания такой ЭП необходимо соглашение между участниками электронного взаимодействия.

Другая проблема: если злоумышленник захочет выдать себя за вашего собеседника? Anchor link

В нашем примере с Юлией и Сезаром посредники постоянно способны получать метаданные.

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

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

Злоумышленник может даже изменить содержимое сообщения (файла) перед тем, как передать его Сезару.

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

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

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

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

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

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

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

Напомним:

  • Атака посредника – перехват злоумышленником сообщения, предназначенного вашему собеседнику. Атакующий может внести изменения в это сообщение, а может переслать его дальше, просто ознакомившись с содержимым.
  • Криптография (шифрование) с открытым ключом позволяет противостоять атаке посредника с помощью проверки личностей отправителя и получателя. Это делается с помощью проверки отпечатков ключей.
  • Открытый ключ вашего собеседника используется для шифрования сообщений, отправляемых ему. У каждого открытого ключа есть сокращенная версия — так называемый «отпечаток открытого ключа». Вы можете использовать его для проверки личности вашего собеседника.
  • Закрытый ключ используется для шифрования сообщений в качестве цифровой подписи, подтверждающей ваше авторство.

Как проверить PGP подпись файла

В примере ниже мы проверяем PGP подпись файла multibit-0.5.16-windows-setup.exe, которая расположена в файле с тем же именем, но только с приставкой «.asc» — оба файла должны располагаться в одной и той же директории («C:\» в нашем случае):

При первой проверке файл «multibit-0.5.16-windows-setup.exe» был расположен в другом каталоге, при второй проверке оба файла были в корне диска «С:\PORTABLE\GnuPG\pub» откуда мы и выполняли проверку подписи. Результат проверки положительный: «Good signature from …«.

Предупреждение говорит нам о том, что мы не доверяем любым ключам, которыми был подписан ключ Джима (Jim Burton):

GPG: ВНИМАНИЕ: Этот ключ не заверен доверенной подписью!
GPG: Здесь нет никаких признаков, что подпись принадлежит владельцу

The GNU Privacy Guard

GnuPG is a complete and free implementation of the OpenPGP standard as
defined by RFC4880 (also known as PGP). GnuPG allows you to encrypt and
sign your data and communications; it features a versatile key management
system, along with access modules for all kinds of public key
directories. GnuPG, also known as GPG, is a command line tool with
features for easy integration with other applications. A wealth of
frontend applications and libraries are available. GnuPG also
provides support for S/MIME and Secure Shell (ssh).

Since its introduction in 1997, GnuPG is Free Software (meaning that
it respects your freedom). It can be freely used, modified and
distributed under the terms of the GNU General Public License .

The current version of GnuPG is 2.2.22. See the download
page for other maintained versions.

Как пользоваться GnuPG в Linux

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

Создание ключей в GnuPG

Введите

На первые три вопроса примите настройки по умолчанию. Мы создадим 2048-битный RSA-ключ с RSA-подключом, и этот ключ не будет иметь срока годности.

Затем на вопрос «Верно ли это ?» надо ответить «Да ».

Как пользоваться GnuPG

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

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

После этого можете проверить, что все сделано, с помощью

GnuPG надежно хранит все сгенерированные ключи в наборе ключей

При необходимости их можно импортировать и экспортировать; но, перемещая приватный ключ, следует соблюдать крайнюю осторожность

Поскольку своим публичным ключом вам надо делиться, экспортируйте ключ с помощью

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

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

В качестве альтернативы, его можно загрузить на сервер ключей, чтобы вас мог найти любой.

Использование GnuPG

Чтобы отправить вам шифрованное сообщение, скажем, instructions.txt, ваш коллега должен ввести

и отправить вам полученный файл instructions.txt.gpg.

Ему также следует удалить исходный файл (например, с помощью shred) — как и вам после его получения.

И это было очень краткое введение в GPG на Linux, не такое уж мучительное. Однако если вы предпочитаете графический интерфейс, для вас есть GPA (Gnu Privacy Assistant), а также отличный плагин Enigmail для Thunderbird.

Как пользоваться GnuPG: GPA

Сеть Доверия и стороны, подписывающие ключ

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

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

Можно создать эти отношения для создания централизованной структуры, известной как Сеть Доверия. Со временем люди увидят, чьи ключи вы подписали, и если они доверяют вам, то станут доверять и этим ключам.

Чтобы положить некое начало этому процессу, можно устроить вечеринку подписи ключей, где участники — помимо прочего веселья — встретятся лично, удостоверят ID фото и подпишут ключи и сертификаты. Вымышленная вечеринка подписи ключей в романе Кори Доктороу «Младший брат» проходит на пляже в Калифорнии — а где будет проходить ваша?

Вас также может заинтересовать обзор лучших анонимных Linux дистрибутивов.

Необходимость применения

Все интернет-пользователи должны отчётливо понимать, что обычная электронная почта и сетевая связь не предоставляют совершенно никаких механизмов защиты, и любое сообщение может быть прочитано множеством людей, не имеющих отношения ни к отправителю, ни к получателю письма, даже без всякой нужды осуществлять его целенаправленный перехват. Копия сообщения остаётся в кэше сервера вашего интернет-провайдера, сетевые серверы у вас на работе, в университете или в интернет-кафе, не говоря о бесплатных почтовых службах вроде mail.ru, также сохраняют копию, копии остаются на всех серверах, через которые сообщение проходит по пути к адресату. Системные администраторы этих серверов могут по своему желанию прочитать ваше письмо и переслать его, кому захотят. Спецслужбы крупных государств в рабочем порядке сканируют электронную почту на предмет подозрительных ключевых слов и фраз (система wwwECHELON (глобальная, США), проект wwwCarnivore (национальный, США), российские системы wwwСОРМ и СОРМ-2 и множество иных подобных по всему миру). С помощью PGP вы можете зашифровать сообщение для своего адресата, даже если никогда прежде с ним не общались. Все названные организации и люди смогут по-прежнему получить доступ к зашифрованному письму, но уже не будут иметь ни малейшего представления о его содержании. Таков принцип секретности.

Кто угодно может перехватить ваше сообщение и отредактировать его содержание; кто угодно может отправить сообщение, выглядящее так, будто отправлено лично вами (обратный адрес и служебные заголовки письма легко подделываются и модифицируются). С помощью PGP вы можете электронно подписать своё письмо, заверяя не только его авторство, но и конкретное содержание. Получив письмо, адресат сверит вашу электронную подпись (ЭЦП), чем установит, что а) отправителем являетесь именно вы и б) сообщение получено им ровно в том виде, в каком оно было подписано вами (т.е. не было по пути кем-то подделано или изменено). Таков принцип подлинности.

Оба этих принципа в исполнении PGP в равной степени относятся как к электронной почте, так и к файлам, хранящимся в вашем компьютере или передаваемым через сеть. Оба этих принципа использовали и используют с начала 1990-х десятки тысяч совершенно разных людей и организаций по всему миру: юристы и практикующие врачи, защищающие адвокатскую и врачебную тайну, финансовые консультанты, защищающие информацию по налогам и вкладам своих клиентов, компании, защищающие свои научные разработки, личные дела своих сотрудников, переговоры о планируемых контрактах, государственные структуры, правозащитники, журналисты, параноики, программисты, политики, граждане тоталитарных режимов, тайные любовники – просто люди, обеспокоенные сохранением своей информации, какой бы она ни была и каких бы денег ни стоила, в тайне от посторонних глаз. А на вопрос, нужно ли всё это конкретно вам, должны ответить вы сами.

Общие сведения

Совместимость

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

Защищённость

В 1996 году криптограф Брюс Шнайер охарактеризовал раннюю версию PGP как «ближайшую к криптосистемам военного уровня».
На данный момент не известно ни одного случая взлома данных, зашифрованных PGP, при помощи полного перебора или уязвимости криптоалгоритма. Ранние версии PGP обладали теоретическими уязвимостями, поэтому рекомендуется пользоваться современными версиями[источник не указан 1289 дней].

Криптографическая стойкость PGP основана на предположении, что используемые алгоритмы устойчивы к криптоанализу на современном оборудовании. Например, в PGP первых версий для шифрования ключей сессии использовался алгоритм RSA, основанный на односторонней функции (факторизация). В PGP версии 2 дополнительно можно использовать алгоритм IDEA. В последующем были добавлены дополнительные алгоритмы шифрования. Ни у одного используемого алгоритма нет известных уязвимостей.

В 2010 году группе учёных из Швейцарии, Японии, Франции, Нидерландов, Германии и США удалось декодировать данные, зашифрованные по алгоритму RSA при помощи ключа длиной 768 бит. Нахождение простых сомножителей осуществлялось общим методом решета числового поля. На первый шаг (выбор пары полиномов степени 6 и 1) было потрачено около полугода вычислений на 80 процессорах, что составило около 3 % времени, потраченного на главный этап алгоритма (просеивание), который выполнялся на сотнях компьютеров в течение почти двух лет. Если интерполировать это время на работу одного процессора AMD Opteron 2,2 ГГц с 2 ГБ оперативной памяти, то получилось бы порядка 1500 лет. Обработка данных после просеивания для следующего ресурсоёмкого шага (линейной алгебры) потребовала несколько недель на малом количестве процессоров. Заключительный шаг после нахождения нетривиальных решений ОСЛУ занял не более 12 часов.

Решение ОСЛУ проводилось с помощью метода Видемана на нескольких раздельных кластерах и длилось чуть менее 4 месяцев. При этом размер разрежённой матрицы составил 192 796 550×192 795 550 при наличии 27 795 115 920 ненулевых элементов. Для хранения матрицы на жёстком диске понадобилось около 105 гигабайт. В то же время понадобилось около 5 терабайт сжатых данных для построения данной матрицы.

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

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

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

Зная разложение модуля на произведение двух простых чисел, противник может легко найти секретную экспоненту и тем самым взломать RSA. Однако на сегодняшний день самый быстрый алгоритм факторизации — решето обобщённого числового поля (General Number Field Sieve), скорость которого для k-битного целого числа составляет exp⁡((c+o(1))k13log23⁡k){\displaystyle \exp((c+o(1))k^{\frac {1}{3}}\log ^{\frac {2}{3}}k)} для некоторого c<2{\displaystyle c<2}, не позволяет разложить большое целое за приемлемое время.

Чем являются эти ключи? И как они связаны друг с другом? Anchor link

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

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

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

Мы собираемся изучить процесс создания ключей в широко используемом алгоритме шифрования с открытым ключом, который называется RSA (Rivest-Shamir-Adleman). Алгоритм RSA часто используется для создания пар ключей для PGP-шифрования электронной почты.

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

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

А преимущество всего этого состоит в том, что люди могут делиться друг с другом своими открытыми ключами по незащищённым каналам! Но при этом свой закрытый ключ (алгоритмическое представление первоначальных простых чисел), используемый для расшифровывания сообщений, нельзя никому и никогда раскрывать.

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

Можно представить себе это иначе: открытый ключ и закрытый ключ связаны друг с другом как символ инь-янь. Они сплетены в единое целое.

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

Шифровка и обмен почтовыми сообщениями с использованием публичных GPG ключей

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

Шифрование электронных почтовых сообщений с использованием GPG ключей выполняется почти аналогично шифрованию файлов, но с некоторыми отличиями. В чём заключаются эти отличия?

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

Если мы хотим передать само зашифрованное сообщение в теле письма, то у нас ест несколько вариантов:

  1. Создать обычный текстовый файл (расширение .txt) в котором набрать нужное сообщение, после чего зашифровать его с флагом «-a» (—armor);
  2. Скопировать в буфер обмена и там его зашифровать при помощи графических утилит kleopatra.exe или gpa.exe

Первый вариант реализуется из консоли, с помощью команды «gpg -e -a -r TO_ID -r FROM_ID filename.txt«, в результате чего получим файл «filename.txt.asc» с примерно таким содержимым:

-----BEGIN PGP MESSAGE-----
Version GnuPG v2.0.22 (MingW32)
 
hQIMA2uUsWRtIxS1ARAApAEj1FfvasNx68tQbjU6G80LVl5WGeqiZmnYR+DyryD
................
TQHuyM587gfUf3kwiKPvbzgCtH3yaiwAuVXbl8JufdxKaMaKrPrXhGQHdueWlQD
gE0NKMmwOMbtKDAZtq61ojiM2E49O98XnYDVlS1
=oGdy
-----END PGP MESSAGE-----

Это сообщение в ASCII формате можно свободно отправлять в теле электронного сообщения, желательно в виде обычного текста, а не в виде ХТМЛ.

Вторым вариантом шифрования текста сообщения является использование программ из пакетов Gpg4win или Gpg4win-Light — это либо GPA (GNU Privacy Assistant (альтернатива WinPT)) или Kleopatra (Менеджер ключей Kleopatra).

Например, при использовании Менеджера ключей Kleopatra последовательность шифрования следующая:

  1. Нужно запустить менеджер ключей Kleopatra, после чего в «трее» появится соответствующий значок;
  2. В текстовом редакторе набрать нужное сообщение, которое мы хотим зашифровать, после чего выделить его и скопировать через контекстное меню или использовать для этого комбинацию клавиш Ctrl+C;
  3. В трее, на значке менеджера ключей Kleopatra, кликнуть правой кнопкой крыски, чем вызвать контекстное меню, где выбрать пункт «Clipboard — Encrypt«, в открывшемся окне добавить ИД ключей получателей (ака Add Recipient), далее нажать «Next — Ok«, после чего буфер обмена будет содержать уже зашифрованное сообщение, которое можно вставить куда угодно используя контекстное меню «Вставить» или комбинацию клавиш «Ctrl+V«.

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

Симметричное шифрование: история передачи тайного послания с помощью одного ключа Anchor link

Юлия хочет отправить своему другу Сезару записку с текстом: «Встретимся в саду» (meet me in the garden). Но она бы не хотела, чтобы её одноклассники увидели это послание.

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

Юлия решает зашифровать своё сообщение с помощью ключа 3, сдвигая буквы алфавита по порядку на 3. Таким образом буква «А» стала буквой «Г», буква «Б» стала «Д» и т.д. Если Юлия и Сезар просто будут использовать этот ключ для шифрования и расшифровывания сообщений, этот код будет легко взломать. Кто-либо сможет путём перебора возможных комбинаций установить подходящий ключ. Другими словами, можно настойчиво пытаться угадать ключ до тех пор, пока сообщение не будет расшифровано.

Способ сдвига букв алфавита на три символа является историческим примером шифрования, использовавшегося Юлием Цезарем. Этот способ называется «Шифр Цезаря». Когда один и тот же ключ используется для шифрования и расшифровывания (как в указанном примере, где ключом является цифра 3), то шифрование называется симметричным.

Шифр Цезаря является слабой формой симметричного шифрования. Однако со времён Юлия Цезаря шифрование существенно эволюционировало. С помощью математики и компьютеров мы имеем возможность сгенерировать ключ, который будет намного длиннее и который намного сложнее угадать. Существенное развитие симметричного шифрования сказалось и на широком его применении.

Тем не менее симметричное шифрование не поможет, если кто-то украдёт ключ для расшифровывания сообщений Юлии и Сезара (можно просто подслушать его, когда кто-либо из них скажет другому, что ключ для расшифровывания это «3»). А что, если Юлия и Сезар находятся в разных странах и не могут лично встретиться?

Как Сезар и Юлия могут решить эту проблему?

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

Уязвимость

В мое 2018 года недели группа из девяти европейских ученых, во главе с профессором Университета прикладных наук в Мюнстере Себастьяном Шинцелем (Sebastian Schinzel), предупредила о критических уязвимостях в составе PGP. Экспертов поддержали представители Фонда электронных рубежей (Electronic Frontier Foundation, EFF); они подтвердили критичность обнаруженных проблем и опубликовали сообщение, в котором призвали пользователей отключить или деинсталлировать инструменты работы с PGP.

Более того, для эксплуатации уязвимостей атакующему сначала понадобится получить доступ к переписке своей жертвы, то есть предварительно потребуется произвести атаку на почтовый сервер, взломать чужую почту или перехватить трафик посредством атаки man-in-the-middle.

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

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

Так, атакующий может использовать теги img или style, разместив их в незашифрованной части HTML-писем (а именно в MIME-заголовках), как показано на иллюстрации ниже. Фактически, письмо превращается в multipart HTML-сообщение, и внутри тега содержится зашифрованный текст. В итоге, когда уязвимый клиент будет расшифровывать это послание, он перейдет к автоматической обработке HTML и отправит уже дешифрованный текст злоумышленнику в рамках использованного тега.

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

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