Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

GNU Privacy Guard ( GnuPG или GPG ) - это бесплатная замена программного обеспечения Symantec для шифрования PGP . Он соответствует RFC 4880 , спецификации IETF для OpenPGP . Современные версии PGP могут взаимодействовать с 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. to GnuPG ", [8] и поэтому не рекомендуется для регулярного использования.

Начиная с версии 2.2 GnuPG поддерживает следующие алгоритмы:

Открытый ключ
RSA , Эль-Гамал , DSA , ECDH , ECDSA , EdDSA
Шифр
3DES , IDEA (начиная с версий 1.4.13 и 2.0.20), CAST5 , Blowfish , Twofish , AES-128, AES-192, AES-256 , Camellia-128, -192 и -256 (начиная с версий 1.4.10 и 2.0 .12)
Хеш
MD5 , SHA-1 , RIPEMD-160 , SHA-256, SHA-384, SHA-512, SHA-224
Сжатие
Несжатый, ZIP , ZLIB , BZIP2

Более поздние выпуски GnuPG 2.x («современная» и устаревшая «стабильная» серии) раскрывают большинство криптографических функций и алгоритмов, предоставляемых Libgcrypt (его криптографическая библиотека), включая поддержку криптографии на эллиптических кривых (ECDH, ECDSA и EdDSA) [9 ] в «современной» серии (т.е. начиная с GnuPG 2.1).

История [ править ]

GnuPG изначально был разработан Вернером Кохом . [10] [11] Первая производственная версия 1.0.0 была выпущена 7 сентября 1999 года, почти через два года после первого выпуска GnuPG (версия 0.0.0). [1] [10] Федеральное министерство экономики и технологий профинансировали документацию и порт для Microsoft Windows в 2000 году [11]

GnuPG - это система, соответствующая стандарту OpenPGP, поэтому важна история OpenPGP; он был разработан для взаимодействия с PGP , программой шифрования электронной почты, первоначально разработанной Филом Циммерманном . [12] [13]

7 февраля 2014 года краудфандинг GnuPG завершился, собрав 36 732 евро на новый веб-сайт и улучшение инфраструктуры. [14]

Филиалы [ править ]

По состоянию на январь 2018 года у GnuPG есть две активно поддерживаемые ветви:

  • «Современный» (2.2) с многочисленными новыми функциями, такими как криптография на основе эллиптических кривых , по сравнению с прежней «стабильной» (2.0) веткой, которую она заменила выпуском GnuPG 2.2.0 28 августа 2017 г. [15] Первоначально он был выпущен 6 ноября 2014 г. [9]
  • "Classic" (1.4), более старая, но все еще поддерживаемая автономная версия, наиболее подходящая для старых или встроенных платформ. Первоначально выпущен 16 декабря 2004 г. [16]

Различные версии GnuPG 2.x (например, из веток 2.2 и 2.0) не могут быть установлены одновременно. Однако можно установить «классическую» версию GnuPG (то есть из ветки 1.4) вместе с любой версией GnuPG 2.x. [9]

Перед выпуском GnuPG 2.2 («современный») для общего использования была рекомендована устаревшая «стабильная» ветвь (2.0), первоначально выпущенная 13 ноября 2006 г. [17] Срок действия этой ветки истек в декабре. 31, 2017; [18] Его последняя версия - 2.0.31, выпущенная 29 декабря 2017 г. [19]

До выпуска GnuPG 2.0 все стабильные выпуски происходили из одной ветви; т.е. до 13 ноября 2006 г. несколько ветвей выпуска не поддерживались параллельно. Эти предыдущие, последовательно следующие (до 1.4) ветки выпуска были:

  • Ветка 1.2, первоначально выпущенная 22 сентября 2002 г. [20], последняя версия - 1.2.6, выпущенная 26 октября 2004 г. [21]
  • 1.0 ветка, первоначально выпущенная 7 сентября 1999 г. [1], последняя версия 1.0.7 была выпущена 30 апреля 2002 г. [22]

(Обратите внимание, что ветки с нечетным второстепенным номером выпуска (например, 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 имеет интерфейс командной строки , существуют различные внешние интерфейсы , которые предоставляют ей графический пользовательский интерфейс . Например, поддержка шифрования GnuPG была интегрирована в KMail и Evolution , графические почтовые клиенты, входящие в состав KDE и GNOME , самых популярных рабочих столов Linux . Существуют также графические интерфейсы GnuPG, например Seahorse для GNOME и KGPG для KDE.

Проект GPG Suite предоставляет ряд внешних интерфейсов Aqua для интеграции в ОС шифрования и управления ключами, а также для установки GnuPG с помощью пакетов установщика [23] для macOS . Кроме того, установщик GPG Suite [24] устанавливает все связанные приложения OpenPGP (GPG Keychain Access), плагины ( GPGMail ) и зависимости (MacGPG) для использования шифрования на основе GnuPG.

Приложения для обмена мгновенными сообщениями, такие как Psi и Fire, могут автоматически защищать сообщения, когда GnuPG установлен и настроен. Интернет-программное обеспечение, такое как Horde, также использует его. Кросс-платформенное расширение Enigmail обеспечивает поддержку GnuPG для Mozilla Thunderbird и SeaMonkey . Точно так же Enigform обеспечивает поддержку GnuPG для Mozilla Firefox . Поддержка FireGPG была прекращена 7 июня 2010 г. [25]

В 2005 году компании g10 Code GmbH и Intevation GmbH выпустили Gpg4win , программный пакет, который включает GnuPG для Windows, GNU Privacy Assistant и подключаемые модули GnuPG для Windows Explorer и Outlook . Эти инструменты включены в стандартный установщик Windows, что упрощает установку и использование GnuPG в системах Windows. [ необходима цитата ]

Ограничения [ править ]

Как система на основе командной строки, GnuPG 1.x не написан как API, который может быть включен в другое программное обеспечение. Чтобы преодолеть это, GPGME (сокращенно GnuPG Made Easy ) был создан как оболочка API для GnuPG, которая анализирует вывод GnuPG и обеспечивает стабильный и поддерживаемый API между компонентами. [26] В настоящее время для многих вызовов API GPGME требуется внепроцессный вызов исполняемого файла GnuPG; в результате возможные проблемы безопасности в приложении не распространяются на фактический криптокод [ необходима цитата ] из-за барьера процесса. Созданы различные графические интерфейсы на основе GPGME.

Начиная с GnuPG 2.0, многие функции GnuPG доступны непосредственно как C API в Libgcrypt . [27]

Уязвимости [ править ]

Стандарт OpenPGP определяет несколько методов цифровой подписи сообщений. В 2003 году из-за ошибки при изменении GnuPG, призванного сделать один из этих методов более эффективным, была введена уязвимость системы безопасности. [28] Это затронуло только один метод цифровой подписи сообщений, только для некоторых выпусков GnuPG (с 1.0.2 по 1.2.3), и на серверах ключей было менее 1000 таких ключей. [29] Большинство людей не использовали этот метод и, в любом случае, отговаривались от этого, поэтому причиненный ущерб (если таковой имел место, поскольку ни о чем не сообщалось публично), казалось бы, был минимальным. Поддержка этого метода была удалена из версий GnuPG, выпущенных после этого обнаружения (1.2.4 и новее).

Еще две уязвимости были обнаружены в начале 2006 года; первое существо , которое заскриптованные использование GnuPG для проверки подписи может привести к ложным срабатываниям , [30] второе , что не-MIME сообщения были уязвимы для введения данных , которые при этом не охвачено цифровой подписью, будут сообщены как часть подписанное сообщение. [31] В обоих случаях обновленные версии GnuPG были доступны на момент объявления.

В июне 2017 года Бернштейном, Брайтнером и другими в Libgcrypt была обнаружена уязвимость (CVE-2017-7526) : библиотека, используемая GnuPG, которая позволила полностью восстановить ключ для RSA-1024 и около более чем 1/8 части RSA- 2048 ключей. Эта атака по побочному каналу использует тот факт, что Libgcrypt использовал метод скользящего окна для возведения в степень, что приводит к утечке битов экспоненты и к полному восстановлению ключа. [32] [33] И снова обновленная версия GnuPG была доступна на момент объявления.

В октябре 2017 года было объявлено об уязвимости ROCA, которая затрагивает ключи RSA, сгенерированные токенами YubiKey 4, которые часто используются с PGP / GPG. Многие опубликованные ключи PGP оказались уязвимыми. [34]

Примерно в июне 2018 года было объявлено об атаках SigSpoof . Это позволило злоумышленнику убедительно подделать цифровые подписи. [35] [36]

Поддержка приложений [ править ]

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

  • Claws Mail  - почтовый клиент с плагином GPG
  • Enigmail  - расширение Mozilla Thunderbird и SeaMonkey
  • Evolution  - приложение GNOME Mail с собственной поддержкой GnuPG
  • FireGPG  - расширение Firefox (снято с производства)
  • Gnus  - программа для чтения сообщений и новостей в GNU Emacs
  • Gpg4win  - пакет для Windows с инструментами и руководствами для шифрования электронной почты и файлов.
  • GPGMail  - плагин для macOS Mail.app
  • KGPG  - графический интерфейс KDE для GnuPG
  • KMail  - почтовый клиент / компонент электронной почты Kontact ( программное обеспечение PIM ), использующий GPG для криптографии
  • MCabber  - клиент Jabber
  • Mailvelope  - расширение Google Chrome и Firefox для сквозного шифрования почтового трафика.
  • Mutt  - почтовый клиент со встроенной поддержкой PGP / GPG
  • Psi (клиент обмена мгновенными сообщениями)
  • Летучая мышь!  - почтовый клиент, который может использовать GnuPG в качестве провайдера OpenPGP
  • WinPT  - графический интерфейс к GPG для Windows (прекращено)

В популярной культуре [ править ]

В мае 2014 года газета The Washington Post сообщила о 12-минутном видеогиде «GPG для журналистов», опубликованном на Vimeo в январе 2013 года [37] пользователем с именем anon108. The Post опознала anon108 как беглого информатора АНБ Эдварда Сноудена , который, по ее словам, создал учебник, «озвученный замаскированным в цифровой форме голосом, чьи речевые схемы похожи на речевые модели Сноудена» - для обучения журналиста Гленна Гринвальда шифрованию электронной почты. Гринвальд заявил, что не может подтвердить авторство видео. [38]Есть сходство между учебным пособием и интервью, в которых участвовал Сноуден, например, упоминание пароля «margaretthatcheris110% sexy» как в этом видео, так и в интервью, проведенном с Джоном Оливером в 2015 году. [39]

См. Также [ править ]

  • Акустический криптоанализ
  • Вечеринка для подписания ключей
  • Обмен сообщениями вне записи  - также известный как OTR
  • Карта OpenPGP  - смарт-карта со многими функциями GnuPG
  • Менеджер пакетов
  • RetroShare  - сеть друзей, основанная на аутентификации PGP
  • Сеть доверия

Ссылки [ править ]

  1. ^ a b c «Примечания к выпуску» . GnuPG. Архивировано 9 февраля 2014 года . Проверено 30 января 2014 .
  2. ^ Кох, Вернер (2021-01-11). «[Объявление] Выпущена версия GnuPG 2.2.27» . gnupg-announce (Список рассылки) . Проверено 11 января 2021 .
  3. ^ "Файл НОВОСТЕЙ" . Заслуживающие внимания изменения в заголовке версии 1.4.23 (2018-06-11) . Проверено 13 июня 2018 .
  4. ^ "Gnu Privacy Guard" . GnuPG.org. Архивировано 29 апреля 2015 года . Проверено 26 мая 2015 .
  5. ^ "Bundesregierung fördert Open Source" (на немецком языке). Heise Online. 1999-11-15. Архивировано 12 октября 2013 года . Проверено 24 июля 2013 года .
  6. ^ "[Объявление] Возможно, последняя бета-версия GnuPG 2.1" . Архивировано 02 мая 2019 года . Проверено 28 марта 2019 .
  7. ^ «Возможности GnuPG» . Архивировано 4 октября 2009 года . Проверено 1 октября 2009 года .
  8. ^ Кох, Вернер (2012-12-21). «Выпущен GnuPG 1.4.13» (список рассылки). gnupg-users. Архивировано 12 февраля 2013 года . Проверено 19 мая 2013 .
  9. ^ a b c Кох, Вернер (2014-11-06). "[Объявление] Выпущен GnuPG 2.1.0" modern " . gnupg.org. Архивировано 6 ноября 2014 года . Проверено 6 ноября 2014 .
  10. ^ a b Ангвин, Джулия (5 февраля 2015 г.). «Мировое программное обеспечение для шифрования электронной почты полагается на одного парня, который разоряется» . ProPublica . Архивировано 6 февраля 2015 года . Дата обращения 6 февраля 2015 .
  11. ^ a b Уэйнер, Питер (19 ноября 1999 г.). «Грант Германии награждает за шифрование» . Нью-Йорк Таймс . Архивировано 25 августа 2014 года . Проверено 8 августа 2014 .
  12. ^ "Gnu Privacy Guard" . OpenPGP.org. Архивировано из оригинала на 2014-02-27 . Проверено 26 февраля 2014 .
  13. ^ «Где взять PGP» . Philzimmermann.com. Архивировано 26 февраля 2014 года . Проверено 26 февраля 2014 .
  14. ^ «GnuPG: Новый веб-сайт и инфраструктура» . goteo.org. Архивировано 30 марта 2014 года . Проверено 9 марта 2014 .
  15. ^ Кох, Вернер (2017-08-28). «[Объявление] GnuPG 2.2.0 выпущен» . gnupg-announce (Список рассылки). Архивировано 29 августа 2017 года . Проверено 21 сентября 2017 .
  16. ^ Кох, Вернер (2004-12-16). «[Объявление] GnuPG stable 1.4 выпущен» . gnupg.org. Архивировано 3 января 2005 года . Проверено 16 декабря 2004 .
  17. ^ Кох, Вернер (13-11-2006). «[Объявление] GnuPG 2.0 выпущен» . gnupg.org. Архивировано 14 февраля 2014 года . Проверено 30 января 2014 .
  18. ^ Кох, Вернер (2017-01-23). «[Объявление] Выпущена версия GnuPG 2.1.18» . gnupg.org. Архивировано 11 февраля 2017 года . Проверено 4 февраля 2017 .
  19. ^ "GnuPG 2.0.31" . 2017-12-29 . Проверено 30 декабря 2017 .
  20. ^ Кох, Вернер (2002-09-06). «[Объявление] GnuPG 1.2 выпущен» . gnupg.org. Архивировано 17 июня 2014 года . Проверено 6 ноября 2014 .
  21. ^ Кох, Вернер (2004-08-26). «[Объявление] Выпущена версия GnuPG 1.2.6» . gnupg.org. Архивировано 17 июня 2014 года . Проверено 6 ноября 2014 .
  22. ^ Кох, Вернер (2002-04-30). «[Объявление] Выпущена версия GnuPG 1.0.7» . gnupg.org. Архивировано 17 июня 2014 года . Проверено 6 ноября 2014 .
  23. ^ "Mac GPG Suite" . GPG Suite . Проверено 24 декабря 2017 .
  24. ^ "Установщик Mac GPG Suite" . GPG Suite . Проверено 24 декабря 2017 .
  25. ^ "Блог разработчиков FireGPG" . Архивировано 27 июля 2013 года . Проверено 24 июля 2013 года .
  26. ^ "GPGME (GnuPG Made Easy)" . gnupg.org . 11 февраля 2015 года. Архивировано 17 февраля 2015 года . Проверено 3 марта 2015 года .
  27. ^ «Библиотеки» . GNUPG . Архивировано 8 декабря 2015 года . Дата обращения 2 декабря 2015 .
  28. ^ Нгуен, Фонг В. «Можно ли доверять криптографическому программному обеспечению? Криптографические недостатки в GNU Privacy Guard v1.2.3» . ЕВРОКРИПТ 2004: 555–570. Архивировано 4 декабря 2017 года . Проверено 23 августа 2019 .
  29. Кох, Вернер (27 ноября 2003 г.). «Ключи подписи ElGamal от GnuPG скомпрометированы» . Архивировано 18 марта 2004 года . Проверено 14 мая 2004 года .
  30. Кох, Вернер (15 февраля 2006 г.). «Проверка ложноположительной подписи в GnuPG» . Архивировано 17 июня 2006 года . Проверено 23 мая 2006 года .
  31. Кох, Вернер (9 марта 2006 г.). «GnuPG не обнаруживает внедрение беззнаковых данных» . Архивировано 5 мая 2006 года . Проверено 23 мая 2006 года .
  32. Edge, Jake (5 июля 2017 г.). «Взлом Libgcrypt RSA через побочный канал» . LWN.net . Архивировано 28 июля 2017 года . Проверено 28 июля 2017 года .
  33. ^ «Скольжение вправо в беду: утечка через скользящие окна слева направо» (PDF) . Архивировано (PDF) из оригинала 30.06.2017 . Проверено 30 июня 2017 .
  34. The Return of Coppersmith's Attack: Практическая факторизация широко используемых модулей RSA. Архивировано 12ноября 2017 г.на Wayback Machine , Матус Немец, Марек Сис, Петр Свенда, Душан Клинец, Вашек Матьяс, ноябрь 2017 г.
  35. ^ "Архивная копия" . Архивировано 07 сентября 2018 года . Проверено 7 сентября 2018 .CS1 maint: archived copy as title (link)
  36. ^ "Архивная копия" . Архивировано 30 июня 2018 года . Проверено 7 сентября 2018 .CS1 maint: archived copy as title (link)
  37. ^ «GPG для журналистов - выпуск Windows - Шифрование для журналистов» . Vimeo . Архивировано 24 октября 2016 года . Проверено 14 октября 2016 .
  38. Петерсон, Андреа (14 мая 2014 г.). «Эдвард Сноуден отправил Гленну Гринвальду это видео-руководство о шифровании для журналистов. Гринвальд проигнорировал его» . Вашингтон Пост . Архивировано 23 июня 2015 года . Проверено 28 августа 2017 года .
  39. ^ «Эдвард Сноуден о паролях: Сегодня вечером на прошлой неделе с Джоном Оливером (HBO)» . YouTube . Архивировано 17 июля 2020 года . Дата обращения 17 июля 2020 .

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • Краткая история GNU Privacy Guard , написанная Вернером Кохом, опубликованная к 10-летию GnuPG