Защита конфиденциальности GNU
![]() | |
![]() Процесс генерации пары ключей в Unix эмуляторе терминала | |
Оригинальный автор(ы) | Вернер Кох |
---|---|
Разработчик(и) | Проект GNU |
Первоначальный выпуск | 7 сентября 1999 г |
Стабильный релиз(ы) | |
Репозиторий | разработчик |
Написано в | С |
Операционная система | Microsoft Windows , macOS , RISC OS , Android , Linux |
Тип | OpenPGP |
Лицензия | 2007: GPL-3.0 или новее [а] 1997: GPL-2.0 или более поздняя версия [б] |
Веб-сайт | гнупг |
GNU Privacy Guard ( GnuPG или GPG ) — это бесплатная замена Symantec от программного обеспечения PGP пакета криптографического . Программное обеспечение совместимо с RFC 4880, IETF , соответствующей стандартам спецификацией OpenPGP . Современные версии PGP совместимы с GnuPG и другими системами , совместимыми с OpenPGP. [3] Однако ожидается, что с апреля 2024 года GnuPG нарушит соответствие предстоящей версии OpenPGP и, следовательно, другим реализациям, которые продолжат соответствовать. [4]
GnuPG является частью проекта GNU и получил крупное финансирование от правительства Германии в 1999 году. [5]
Обзор [ править ]
GnuPG — это программа гибридного шифрования, поскольку она использует комбинацию традиционной криптографии с симметричным ключом для повышения скорости и криптографии с открытым ключом для простоты безопасного обмена ключами, обычно с использованием открытого ключа получателя для шифрования сеансового ключа , который используется только один раз. Этот режим работы является частью стандарта OpenPGP и был частью PGP с его первой версии.
Серия GnuPG 1.x использует интегрированную криптографическую библиотеку, а серия GnuPG 2.x заменяет ее Libgcrypt .
GnuPG шифрует сообщения, используя пары асимметричных ключей, индивидуально сгенерированные пользователями GnuPG. Полученными открытыми ключами можно обмениваться с другими пользователями различными способами, например, через серверы ключей в Интернете . Их всегда следует обменивать осторожно, чтобы предотвратить подделку личности путем повреждения соответствий открытого ключа ↔ личности «владельца». Также можно добавить криптографическую цифровую подпись к сообщению , чтобы можно было проверить целостность сообщения и отправителя, если конкретная переписка, на которую полагаются, не была повреждена.
GnuPG также поддерживает симметричного шифрования алгоритмы . По умолчанию GnuPG использует симметричный алгоритм AES , начиная с версии 2.1. [6] CAST5 использовался в более ранних версиях. GnuPG не использует запатентованное или иным образом ограниченное программное обеспечение или алгоритмы. Вместо этого GnuPG использует множество других незапатентованных алгоритмов. [7]
Долгое время он не поддерживал алгоритм шифрования IDEA , используемый в PGP. На самом деле можно было использовать IDEA в GnuPG, загрузив для него плагин, однако для некоторых видов использования в странах, где IDEA была запатентована, могла потребоваться лицензия. Начиная с версий 1.4.13 и 2.0.20, GnuPG поддерживает IDEA, поскольку срок действия последнего патента IDEA истек в 2012 году. Поддержка IDEA предназначена «избавиться от всех вопросов со стороны людей, пытающихся расшифровать старые данные или перенести ключи из PGP». в GnuPG", [8] и, следовательно, не рекомендуется для регулярного использования.
Более поздние выпуски GnuPG 2.x («современная» и ныне устаревшая «стабильная» серия) предоставляют большинство криптографических функций и алгоритмов, предоставляемых Libgcrypt (ее криптографическая библиотека), включая поддержку криптографии с эллиптическими кривыми (ECDH, ECDSA и EdDSA). [9] в «современной» серии (т.е. начиная с GnuPG 2.1).
Алгоритмы [ править ]
Начиная с версий 2.3 или 2.2, GnuPG поддерживает следующие алгоритмы:
- Открытый ключ
- RSA , Эль-Гамаль , DSA , ECDH ( cv25519 , cv448 , [с] nistp256, nistp384, nistp521 , nistp384 , nistp521, мозговой пулP256r1, мозговой пулP384r1 мозговой пулP256r1, мозговой пулP384r1, мозговой пулP512r1, secp256k1), ECDSA (nistp256, , мозговой пулP512r1, secp256k1), EdDSA (ред.) 25519, изд448 [с] )
- Шифр
- 3DES , IDEA (для обратной совместимости), CAST5 , Blowfish , Twofish , AES-128, AES-192, AES-256 , Camellia-128, -192 и -256
- Хэш
- МД5 , ША-1 , РИПЭМД-160 , ША-256, ША-384, ША-512, ША-224
- Сжатие
- Несжатый, ZIP , ZLIB , BZIP2.
История [ править ]
GnuPG изначально был разработан Вернером Кохом . [10] [11] Первая производственная версия, версия 1.0.0, была выпущена 7 сентября 1999 года, почти через два года после первого выпуска GnuPG (версия 0.0.0). [12] [10] Федеральное министерство экономики и технологий Германии профинансировало документацию и порт на Microsoft Windows в 2000 году. [11]
GnuPG — это система, совместимая со стандартом OpenPGP, поэтому история OpenPGP имеет важное значение; он был разработан для взаимодействия с PGP , программой шифрования электронной почты, первоначально разработанной Филом Циммерманном . [13] [14]
7 февраля 2014 г. завершился краудфандинговый проект GnuPG, в результате которого было собрано 36 732 евро на новый веб-сайт и улучшение инфраструктуры. [15]
Филиалы [ править ]
С момента выпуска стабильной версии GnuPG 2.3, начиная с версии 2.3.3 в октябре 2021 года, активно поддерживаются три стабильные ветки GnuPG: [16]
- « Стабильная ветка», которая в настоящее время (по состоянию на 2021 год) является веткой 2.3.
- « Ветка LTS (долгосрочная поддержка) », которая в настоящее время (по состоянию на 2021 год) является веткой 2.2 (которая раньше называлась «современной веткой» по сравнению с веткой 2.0).
- Старая « устаревшая ветка» (ранее называвшаяся «классической веткой»), которая есть и останется веткой 1.4.
До GnuPG 2.3 активно поддерживались две стабильные ветки GnuPG:
- «Современная» (2.2) с многочисленными новыми функциями, такими как криптография на основе эллиптических кривых , по сравнению с бывшей «стабильной» (2.0) ветвью, которую она заменила выпуском GnuPG 2.2.0 28 августа 2017 г. [17] Первоначально он был выпущен 6 ноября 2014 года. [9]
- «Классик» (1.4), очень старая, но до сих пор поддерживаемая автономная версия, наиболее подходящая для устаревших или встроенных платформ. Первоначально выпущен 16 декабря 2004 г. [18]
Различные версии GnuPG 2.x (например, из ветвей 2.2 и 2.0) не могут быть установлены одновременно. Однако можно установить «классическую» версию GnuPG (т.е. из ветки 1.4) вместе с любой версией GnuPG 2.x. [9]
Перед выпуском GnuPG 2.2 («современный») для общего использования была рекомендована устаревшая «стабильная» ветвь (2.0), первоначально выпущенная 13 ноября 2006 г. [19] этой ветки завершился Срок службы 31 декабря 2017 г.; [20] Последняя версия — 2.0.31, выпущенная 29 декабря 2017 года. [21]
До выпуска GnuPG 2.0 все стабильные выпуски происходили из одной ветки; т.е. до 13 ноября 2006 г. несколько ветвей выпуска не поддерживались параллельно. Этими предыдущими, последовательно последующими (до версии 1.4) ветвями выпуска были:
- Ветка 1.2, первоначально выпущенная 22 сентября 2002 г., [22] последняя версия - 1.2.6, выпущенная 26 октября 2004 г. [23]
- Ветка 1.0, первоначально выпущенная 7 сентября 1999 г., [12] последняя версия - 1.0.7, выпущенная 30 апреля 2002 г. [24]
(Обратите внимание, что до выпуска GnuPG 2.3.0 ветки с нечетным младшим номером версии (например, 2.1, 1.9, 1.3) были ветвями разработки, ведущими к стабильной ветке выпуска с номером версии «+ 0,1» выше (например, 2.2, 2.0). , 1.4); следовательно, ветви 2.2 и 2.1 относятся к «современной» серии, 2.0 и 1.9 — к «стабильной», а ветви 1.4 и 1.3 — к «классической» серии.
С выпуском GnuPG 2.3.0 эта номенклатура была изменена и теперь состоит из «стабильной» и «LTS» веток из «современной» серии, а также 1.4 как последней поддерживаемой «классической» ветки. Также обратите внимание, что четные или нечетные номера второстепенных выпусков больше не указывают на стабильную или разрабатываемую ветку выпуска.)
Платформы [ править ]

Хотя базовая программа GnuPG имеет интерфейс командной строки , существуют различные внешние интерфейсы , которые предоставляют ей графический интерфейс пользователя . Например, поддержка шифрования GnuPG была интегрирована в KMail и Evolution , графические почтовые клиенты, имеющиеся в KDE и GNOME , самых популярных рабочих столах Linux . Существуют также графические интерфейсы GnuPG, например Seahorse для GNOME и KGPG и Kleopatra для KDE.
GPGTools предоставляет ряд интерфейсов для интеграции шифрования и управления ключами в ОС , а также установки GnuPG через установщика . пакеты [25] для MacOS . GPG-пакет [26] устанавливает все связанные приложения OpenPGP (GPG Keychain), плагины ( GPG Mail ) и зависимости (MacGPG), а также службы GPG (интеграция в меню «Службы» macOS) для использования шифрования на основе GnuPG.
Приложения для обмена мгновенными сообщениями, такие как Psi и Fire, могут автоматически защищать сообщения, когда GnuPG установлен и настроен. веб-программное обеспечение, такое как Horde Его также использует . Кроссплатформенное расширение Enigmail обеспечивает поддержку GnuPG для Mozilla Thunderbird и SeaMonkey . Аналогично, Enigform обеспечивает поддержку GnuPG для Mozilla Firefox . Выпуск FireGPG был прекращен 7 июня 2010 года. [27]
В 2005 году компании g10 Code GmbH и Intevation GmbH выпустили Gpg4win — пакет программного обеспечения, включающий GnuPG для Windows, GNU Privacy Assistant и плагины GnuPG для Windows Explorer и Outlook . Эти инструменты включены в стандартный установщик Windows, что упрощает установку и использование GnuPG в системах Windows. [28]
Уязвимости [ править ]
Стандарт OpenPGP определяет несколько методов цифровой подписи сообщений. В 2003 году из-за ошибки в изменении GnuPG, призванном сделать один из этих методов более эффективным, была обнаружена уязвимость безопасности. [29] Это затронуло только один метод цифровой подписи сообщений, только для некоторых выпусков GnuPG (с 1.0.2 по 1.2.3), и на серверах ключей было зарегистрировано менее 1000 таких ключей. [30] Большинство людей не использовали этот метод, и в любом случае их отговаривали от этого, поэтому нанесенный ущерб (если таковой имелся, поскольку о нем публично не сообщалось), по всей видимости, был минимальным. Поддержка этого метода была удалена из версий GnuPG, выпущенных после этого открытия (1.2.4 и новее).
Еще две уязвимости были обнаружены в начале 2006 года; во-первых, использование GnuPG по сценарию для проверки подписи может привести к ложным срабатываниям . [31] во-вторых, сообщения, отличные от MIME, были уязвимы для внедрения данных, которые, хотя и не покрыты цифровой подписью, будут считаться частью подписанного сообщения. [32] В обоих случаях на момент анонса были доступны обновленные версии GnuPG.
В июне 2017 года Бернштейн, Брайтнер и другие обнаружили уязвимость (CVE-2017-7526) в Libgcrypt : библиотеке, используемой GnuPG, которая позволила полностью восстановить ключ для RSA-1024 и примерно более 1/8 RSA-1024. 2048 ключей. Эта атака по побочному каналу использует тот факт, что Libgcrypt использовал метод скользящего окна для возведения в степень , что приводит к утечке битов экспоненты и полному восстановлению ключа. [33] [34] Опять же, на момент анонса была доступна обновленная версия GnuPG.
В октябре 2017 года было объявлено об уязвимости ROCA , которая затрагивает ключи RSA, генерируемые токенами YubiKey 4, которые часто используются с PGP/GPG. Многие опубликованные ключи PGP оказались уязвимыми. [35]
Примерно в июне 2018 года SigSpoof было объявлено об атаках . Это позволило злоумышленнику убедительно подделать цифровые подписи. [36] [37]
В январе 2021 года была выпущена версия Libgcrypt 1.9.0, в которой была обнаружена серьезная ошибка, которую было легко использовать. Исправление было выпущено 10 дней спустя в Libgcrypt 1.9.1. [38]
См. также [ править ]
- Акустический криптоанализ
- Сторона, подписывающая ключ
- Неофициальные сообщения , также известные как OTR.
- Карта OpenPGP - смарт-карта со многими функциями GnuPG.
- Менеджер пакетов
- Retroshare — сеть «друг-друг», основанная на аутентификации PGP.
- Сеть доверия
Примечания [ править ]
- ^ GPL-3.0 или более поздняя версия с 4 июля 2007 г. для 2.x и с 23 октября 2007 г. для 1.x.
- ^ GPL-2.0 или более поздняя версия с 18 ноября 1997 г. по 4 июля 2007 г. для 2.x и 23 октября 2007 г. для 1.x.
- ^ Jump up to: Перейти обратно: а б доступно только в версии 2.3
Ссылки [ править ]
- ^ Вернер Кох (12 марта 2024 г.). «[Объявить] Выпущена версия GnuPG 2.4.5» . Архивировано из оригинала 12 марта 2024 года . Проверено 12 марта 2024 г.
- ^ «Примечательные изменения в версии 2.2.43» . 16 апреля 2024 г. Проверено 27 мая 2024 г.
- ^ «Защитник конфиденциальности Gnu» . GnuPG.org. Архивировано из оригинала 29 апреля 2015 г. Проверено 26 мая 2015 г.
- ^ «Раскол в мире OpenPGP» . Еженедельные новости Linux . Проверено 9 декабря 2023 г.
- ^ «Федеральное правительство продвигает открытый исходный код» (на немецком языке). Хейзе Онлайн. 15 ноября 1999 г. Архивировано из оригинала 12 октября 2013 года . Проверено 24 июля 2013 г.
- ^ «[Анонс] Возможно, последняя бета-версия GnuPG 2.1» . Архивировано из оригинала 2 мая 2019 г. Проверено 28 марта 2019 г.
- ^ «Функции GnuPG» . Архивировано из оригинала 4 октября 2009 года . Проверено 1 октября 2009 г.
- ^ Кох, Вернер (21 декабря 2012 г.). «Выпущен GnuPG 1.4.13» (список рассылки). gnupg-пользователи. Архивировано из оригинала 12 февраля 2013 г. Проверено 19 мая 2013 г.
- ^ Jump up to: Перейти обратно: а б с Кох, Вернер (6 ноября 2014 г.). «[Анонс] Выпущен GnuPG 2.1.0 «современный»» . gnupg.org. Архивировано из оригинала 6 ноября 2014 г. Проверено 6 ноября 2014 г.
- ^ Jump up to: Перейти обратно: а б Ангвин, Джулия (5 февраля 2015 г.). «Всемирное программное обеспечение для шифрования электронной почты опирается на одного парня, который обанкротился» . ПроПублика . Архивировано из оригинала 6 февраля 2015 года . Проверено 6 февраля 2015 г.
- ^ Jump up to: Перейти обратно: а б Уэйнер, Питер (19 ноября 1999 г.). «Грант Германии в области шифрования» . Нью-Йорк Таймс . Архивировано из оригинала 25 августа 2014 года . Проверено 8 августа 2014 г.
- ^ Jump up to: Перейти обратно: а б «Примечания к выпуску» . ГнуПГ. Архивировано из оригинала 9 февраля 2014 г. Проверено 30 января 2014 г.
- ^ «Защитник конфиденциальности Gnu» . OpenPGP.org. Архивировано из оригинала 27 февраля 2014 г. Проверено 26 февраля 2014 г.
- ^ «Где взять PGP» . Philzimmermann.com. Архивировано из оригинала 26 февраля 2014 г. Проверено 26 февраля 2014 г.
- ^ «GnuPG: Новый веб-сайт и инфраструктура» . goteo.org. Архивировано из оригинала 30 марта 2014 г. Проверено 9 марта 2014 г.
- ^ «Выпущена GnuPG 2.3.3» .
- ^ Кох, Вернер (28 августа 2017 г.). «[Объявить] Выпущен GnuPG 2.2.0» . gnupg-announce (список рассылки). Архивировано из оригинала 29 августа 2017 г. Проверено 21 сентября 2017 г.
- ^ Кох, Вернер (16 декабря 2004 г.). «[Объявить] Выпущена стабильная версия GnuPG 1.4» . gnupg.org. Архивировано из оригинала 3 января 2005 г. Проверено 16 декабря 2004 г.
- ^ Кох, Вернер (13 ноября 2006 г.). «[Объявить] Выпущен GnuPG 2.0» . gnupg.org. Архивировано из оригинала 14 февраля 2014 г. Проверено 30 января 2014 г.
- ^ Кох, Вернер (23 января 2017 г.). «[Объявить] Выпущена GnuPG 2.1.18» . gnupg.org. Архивировано из оригинала 11 февраля 2017 г. Проверено 4 февраля 2017 г.
- ^ «ГнуПГ 2.0.31» . 29 декабря 2017 г. Проверено 30 декабря 2017 г.
- ^ Кох, Вернер (6 сентября 2002 г.). «[Объявить]Выпущена GnuPG 1.2» . gnupg.org. Архивировано из оригинала 17 июня 2014 г. Проверено 6 ноября 2014 г.
- ^ Кох, Вернер (26 августа 2004 г.). «[Объявить] Выпущен GnuPG 1.2.6» . gnupg.org. Архивировано из оригинала 17 июня 2014 г. Проверено 6 ноября 2014 г.
- ^ Кох, Вернер (30 апреля 2002 г.). «[Объявить] Выпущена версия GnuPG 1.0.7» . gnupg.org. Архивировано из оригинала 17 июня 2014 г. Проверено 6 ноября 2014 г.
- ^ «ГПГ-люкс» . GPGTools . Проверено 24 декабря 2017 г.
- ^ «ГПГ-люкс» . GPGTools . Проверено 16 февраля 2021 г.
- ^ «Блог разработчиков FireGPG» . 7 июня 2010. Архивировано из оригинала 27 июля 2013 года . Проверено 24 июля 2013 г.
- ^ «Gpg4win – О Gpg4win» . gpg4win.org . Проверено 23 марта 2021 г.
- ^ Нгуен, Фонг В. «Можем ли мы доверять криптографическому программному обеспечению? Криптографические недостатки в GNU Privacy Guard v1.2.3» . ЕВРОКРИПТ 2004: 555–570. Архивировано из оригинала 4 декабря 2017 г. Проверено 23 августа 2019 г.
- ^ Кох, Вернер (27 ноября 2003 г.). «Ключи подписи Эль-Гамаля GnuPG скомпрометированы» . Архивировано из оригинала 18 марта 2004 года . Проверено 14 мая 2004 г.
- ^ Кох, Вернер (15 февраля 2006 г.). «Ложноположительная проверка подписи в GnuPG» . Архивировано из оригинала 17 июня 2006 года . Проверено 23 мая 2006 г.
- ^ Кох, Вернер (9 марта 2006 г.). «GnuPG не обнаруживает внедрение беззнаковых данных» . Архивировано из оригинала 5 мая 2006 года . Проверено 23 мая 2006 г.
- ^ Эдж, Джейк (5 июля 2017 г.). «Взлом Libgcrypt RSA через побочный канал» . LWN.net . Архивировано из оригинала 28 июля 2017 года . Проверено 28 июля 2017 г.
- ^ «Скольжение прямо к катастрофе: протечки раздвижных окон слева направо» (PDF) . Архивировано (PDF) из оригинала 30 июня 2017 г. Проверено 30 июня 2017 г.
- ↑ Возвращение атаки Копперсмита: практическая факторизация широко используемых модулей RSA. Архивировано 12 ноября 2017 г. в Wayback Machine , Матус Немец, Марек Сис, Петр Свенда, Душан Клинец, Вашек Матьяс, ноябрь 2017 г.
- ^ «Ошибка PGP, возникшая несколько десятилетий назад, позволила хакерам подделать чью-либо подпись» . 14 июня 2018 г. Архивировано из оригинала 07 сентября 2018 г. Проверено 7 сентября 2018 г.
- ^ «Проход не пройден: в хранилище простых паролей обнаружена ошибка подмены GnuPG» . Регистр . Архивировано из оригинала 30 июня 2018 г. Проверено 7 сентября 2018 г.
- ^ «Серьезная ошибка в Libgcrypt, используемая GPG и другими, вызывает целую кучу неприятностей, требующих установки патчей» . Архивировано из оригинала 21 февраля 2021 г.
Внешние ссылки [ править ]
- Официальный сайт
- Краткая история защиты конфиденциальности GNU , написанная Вернером Кохом и опубликованная к 10-летию GnuPG.