GnuPG
GNU Privacy Guard(GnuPG,GPG) —свободнаяпрограмма дляшифрованияинформации и созданияэлектронных цифровых подписей.Разработана как альтернативаPGPи выпущена под свободной лицензиейGNU General Public License.GnuPG полностью совместима со стандартомIETFOpenPGP.Текущие версии GnuPG могут взаимодействовать сPGPи другими OpenPGP-совместимыми системами.
История
[править|править код]Достоверность этого раздела статьи поставлена под сомнение. |
Первоначальное название проекта было не GnuPG, a G10 (в честьдесятой статьи Конституции(нем.Grundgesetz) Германии). Эта статья аналогична23-й статье Конституции РФ,гарантирующей тайну переписки, переговоров и иных сообщений. Американский программистФилипп Циммерманнопубликовал исходный код своей программыPGP(предназначенной для защиты сообщений электронной почты) в Интернете. Ограничения в США не позволяли экспортировать криптографическое программное обеспечение за границу. Правительство США стало преследовать Циммерманна, и тогда он обошёл это ограничение — опубликовал исходный код в книге, а уже за границей можно было набрать этот исходный код из книги и скомпилировать на компьютере. Жёсткие ограничения правительства США не давали возможность другим странам использовать сильную криптографию в программном обеспечении американских компаний (в том числе и Microsoft Windows). Разрабатывать криптографическое ПО в США с возможностью дальнейшего экспорта в другие страны разрешается только с соблюдением некоторых требований, и поэтому часть такого ПО создавалось за границами США (например,OpenBSD— в Канаде, GnuPG — в Германии). Правительство Германии, желая получить сильную криптографию в операционной системе Microsoft Windows, спонсировало портирование GnuPG на платформу Windows в2000 году.Правительство США пыталось заставить правительство Германии пересмотреть позицию по выпуску сильной криптографии на платформе Windows, но, так ничего и не добившись, в конце концов, ослабило свои экспортные ограничения на криптографическое ПО.
Проект созданВернером Кохом(нем.Werner Koch).
Версия 0.0.0 выпущена20 декабря1997 года.Версия 1.0.0 была выпущена7 сентября1999 года.
1 августа2006 годавышла версия 1.4.5;13 ноября2006 года — версия 2.0;3 октября2014 года— версия 2.1.
В настоящее время существуют следующие версии:
- GnuPG «classic» (1.4) — для старых платформ.
- GnuPG «stable» (2.2) — текущая стабильная разработка для общего пользования.
Все ветви версий GnuPG развиваются параллельно.
Особенности
[править|править код]- Полная альтернативаPGP.
- Не использует патентованные алгоритмы.
- Распространяется подGNU General Public License.
- Полная реализацияOpenPGP.
- Расшифрование и аутентификация почтовых сообщений, созданных с помощьюPGP5, 6 и 7.
- Поддержка электронной подписи с помощью алгоритмовElGamal,DSA,RSAи хеш-функцийMD5,SHA-1,SHA-2,RIPEMD-160иTIGER.Начиная с версии 2.2[1]в разряд стабильных переведены алгоритмыэллиптической криптографиис использованием кривыхCurve25519,NIST P-256/P-384/P-521,Brainpool[2]P-256/P-384/P-512 и Secp256k1[3].
- Работа с асимметричным шифрованиемElGamalиRSA(длина ключа от 1024 до 4096 бит).
- Поддержка блочных алгоритмов симметричного шифрованияAES,CAST5,3DES,Twofish,Blowfish,Camellia,а такжеIDEAс помощью плагина.
- Поддержка алгоритмов сжатия:ZIP,ZLIB,BZIP2.
- Лёгкая реализация новых алгоритмов с помощью дополнительных модулей.
- Поддержка просроченных ключей и подписей.
- Интегрированная поддержкаHKPсерверов ключей.
- Встроенный сервер и клиент WKD[4]для распространения публичных ключей.
Использование
[править|править код]GnuPG — программа, которая работает почти на всех операционных системах: отMicrosoft WindowsиGNU/LinuxдоMac OS X,FreeBSD,OpenBSD,NetBSDи т. д.
Хотя в основном интерфейсом GnuPG являетсякомандная строка,существуют различные внешние дополнения, которые делают доступной функциональность этой программы через графический интерфейс пользователя. Например, GnuPG интегрирован в графические клиенты электронной почтыKMailиEvolution.Механизм плагинов полностью совместим со стандартомOpenPGP.
С помощью расширенияEnigmailGnuPG работает в почтовом клиентеMozilla Thunderbirdдля шифрования и аутентификации сообщений. Также поддержка GnuPG имеется в почтовых клиентахMutt,The Bat!иGnus.
При помощи программыGPGrelayшифровать и подписывать электронные письма через GnuPG можно любыми почтовыми клиентами, работающими по протоколамPOP3,IMAP4,SMTP.
Для пользователей операционной системы Microsoft Windows вторая ветка GnuPG поставляется сразу с графическим интерфейсом. Начиная с 2005 года разработчиками проекта GnuPG выпускается Gpg4win (GNU Privacy Guard for Windows) — инсталляционный пакет, который включает в себя:
- версию GnuPG для Windows (ядро пакета, само средство шифрования);
- Kleopatra— менеджер сертификатов для OpenPGP иX.509;
- GPA— альтернативный менеджер сертификатов (GNU) для OpenPGP и X.509;
- GpgOL— плагин для Outlook;
- GpgEX— плагин для проводника Windows, используется при шифровании файлов;
- Claws Mail— полноценную почтовую программу с поддержкой функций GnuPG (с версии 2.2.6 удалён из пакета[1]);
- документацию на английском и немецком языке.
По сути, Gpg4win — это официальная версия GnuPG для платформы Windows, и все включённые в этот пакет компоненты такжесвободны.
Также, используя дополнительные плагины GnuPG илиSecureIM,можно достичь шифрования сообщений с помощью GnuPG в клиенте сетей мгновенных сообщенийMiranda IM.
GnuPG поддерживаетсяJabber-клиентамиPsiиGajim.
Плагины для браузеров
[править|править код]До 7 июня 2010 года велась разработка FireGPG[5]— дополнения дляFirefox,которое позволяло добавить в этот браузер поддержку GnuPG. Помимо прочих функций оно позволяло интегрировать GnuPG вGmail.Из-за того что веб-интерфейс Gmail постоянно менялся, автор плагина прекратил сначала поддерживать шифрование Gmail почты, а затем и всего плагина. Этим плагином FireGPG пользовалось около 30 тысяч человек.
Другой плагин для браузеровWebPGсуществует в версиях для Firefox (Seamonkey, Thunderbird) иChrome(Chromium). Поддерживает функции: шифрование, расшифровывание, цифровая подпись, управление ключами. Текущая версия 0.9.2 от 24 января 2013 года. Есть экспериментальная интеграция с Gmail.
Другой действующий плагин, позволяющий использовать криптозащиту (шифрование и ЭЦП) в сообщении на странице в Интернете для браузера Chrome — этоGPG4Browsers.Этот плагин первоначально выпущен немецкой компаниейRecurity Labs,но затем передан в отдельный проектOpenPGP.js.
Использование плагинов в браузерах позволяет гарантировать принадлежность того или иного сообщения тому или иному человеку (через ЭЦП) или позволяет прочитать сообщение, находящееся в публичном доступе, кому-то одному (для кого зашифровано данное сообщение). В том числе возможно использование данных плагинов в социальных сетях или электронной почте.
Принцип работы
[править|править код]GnuPG шифрует сообщения, используя асимметричные пары ключей, генерируемые пользователями GnuPG. Открытыми ключами можно обмениваться с другими пользователями различными путями, в том числе и через Интернет с помощью серверов ключей. Также GnuPG позволяет добавлять криптографическую цифровую подпись к сообщению, при этом целостность и отправитель сообщения могут быть проверены.
GnuPG не использует запатентованное или иначе ограниченноепрограммное обеспечениеи/или алгоритмы, включая алгоритмIDEA,который представлен в PGP почти с самого начала. GnuPG использует другие непатентованные алгоритмыCAST5,3DES,AES,BlowfishиTwofish.Тем не менее, возможно использование в GnuPG и алгоритма IDEA с помощью дополнительногомодуля.
GnuPG — это гибридное криптографическое программное обеспечение, которое использует комбинацию стандартного шифрования с помощью симметричных ключей и шифрования с открытым ключом для безопасного обмена ключами, открытый ключ получателя необходим для шифрования ключа сессии, используемого единожды. Такой режим работы является частью стандартаOpenPGPи частью PGP в его первой версии.
Проблемы
[править|править код]Подпись
[править|править код]Стандарт OpenPGP определяет несколько методов дляподписанных цифровой подписьюсообщений. Из-за ошибки, допущенной в результате попытки сделать эти методы более эффективными, появилась уязвимость. Это затрагивает только один метод в цифровой подписи сообщений, только для некоторых выпусков GnuPG (1.0.2 до 1.2.3), и было меньше чем 1000 таких ключей, перечисленных на ключевых серверах.[6]
CVE-2016-6313
[править|править код]Уязвимость (CVE-2016-6313) была найдена специалистами Технологического института Карлсруэ, Феликсом Дёрре и Владимиром Клебановым; баг присутствует во всех версиях GnuPG и Libgcrypt, вышедших до 17 августа 2016 года.
Суть проблемы: если атакующему удастся извлечь 4620 бит данных из генератора случайных чисел, то последующие 160 бит последовательности он сумеет легко предсказать.
В заявлении разработчиков отдельно сообщается, что проблема не должна сказываться на безопасности существующих RSA-ключей. Также специалисты[кто?]считают крайне маловероятным, что кто-то сумеет использовать публичную информацию для предсказания приватных ключей DSA и Elgamal, однако в документе сообщается, что проблему всё ещё продолжают изучать.
Уязвимость устранена выпуском Libgcrypt 1.7.3, 1.6.6 и 1.5.6 и выпуском GnuPG 1.4.21.[7]
См. также
[править|править код]Примечания
[править|править код]- ↑Объявление о выпуске GnuPG 2.2.0 .Дата обращения: 21 сентября 2018.Архивировано29 августа 2017 года.
- ↑RFC 5639 — Elliptic Curve Cryptography (ECC) Brainpool Standard Curves and Curve Generation .Дата обращения: 21 сентября 2018.Архивировано15 февраля 2020 года.
- ↑Описание кривой Secp256k1 на Bitcoin Wiki .Дата обращения: 21 сентября 2018.Архивировано21 сентября 2018 года.
- ↑WKD — GnuPG wiki .Дата обращения: 21 сентября 2018.Архивировано4 сентября 2018 года.
- ↑Maximilien Cuony.FireGPG discontinued (7 июля 2010). Дата обращения: 22 апреля 2014.Архивировано27 июля 2013 года.
- ↑Werner Koch.[Announce] GnuPG's ElGamal signing keys compromised (27 ноября 2003). Дата обращения: 22 апреля 2014.Архивировано18 марта 2004 года.
- ↑Мария Нефёдова.В GNUPG И БИБЛИОТЕКЕ LIBGCRYPT ИСПРАВИЛИ КРИТИЧЕСКИЙ БАГ, СУЩЕСТВУЮЩИЙ С 1998 ГОДА (22 августа 2016). Дата обращения: 28 августа 2016.Архивировано8 ноября 2016 года.