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