Топ питань
Часова шкала
Чат
Перспективи

GNU Privacy Guard

вільне програмне забезпечення для шифрування інформації та створення електронних цифрових підписів З Вікіпедії, вільної енциклопедії

GNU Privacy Guard
Remove ads

GNU Privacy Guard (GnuPG або GPG) вільне криптографічне програмне забезпечення, що використовується для шифрування та розшифрування даних, а також для створення та перевірки електронних підписів[7]. Це відкрита і вільна альтернатива криптографічному пакету PGP (Pretty Good Privacy).

Коротка інформація Тип, Автор ...

GnuPG є повною і вільною реалізацією стандартів IETF OpenPGP (визначеного RFC4880[8]) і S/MIME, а також забезпечує підтримку Secure Shell (ssh)[9][7].

GPG дозволяє шифрувати і підписувати дані і повідомлення, має універсальну систему управління ключами і модулі для доступу до всіх видів каталогів відкритих ключів[7].

GNU Privacy Guard розповсюджується на умовах ліцензії GNU GPL версії 3 і є частиною проєкту GNU[10][11].

Remove ads

Історія

Узагальнити
Перспектива

Проєкт було розпочато у 1997 році Вернером Кохом[12]. Federal Ministry of Economics and Technology(інші мови) профінансувало портування GnuPG на Microsoft Windows і розробку документації у 2000 році[13][14]. GnuPG використовується кількома європейськими державними адміністраціями, в тому числі державною компанією Deutsche Bahn[15]. Вернер Кох, початковий розробник GnuPG, був одним з тих, кого Федеральне відомство з інформаційної безпеки (BSI) найняла у 2006 році для розробки криптографічного інструментарію Gpg4win[16] для шифрування і підпису у Windows, зокрема у MS Outlook і Windows Explorer після публічного тендеру[17]. Кох: 'BSI також замовила розширення для GnuPG, частину S/MIME. Це розширення встановлено на всіх робочих станціях, і таким чином співробітники можуть безпечно спілкуватися, використовуючи S/MIME і OpenPGP'. Німецька газета Tageszeitung повідомила, що Міністерство внутрішніх справ країни тепер пропонує відкритий ключ GnuPG як частину контактної форми на своєму вебсайті, що дозволяє іншим особам надсилати листи до міністерства, які можуть бути розшифровані лише міністерством та відправником[18][15]. Pretty Easy Privacy має на меті автоматизувати та таким чином значно спростити використання PGP. Наприкінці 2014 року Вернер Кох запустив краудфандингову кампанію. У січні 2015 року тему підхопила національна преса, і протягом кількох днів було забезпечено фінансування на два-три роки за рахунок пожертв[19].

Програма була розроблена як заміна PGP та реалізує стандарт OpenPGP відповідно до його застарілої версії RFC 4880[8]. Підтримка поточної версії RFC 9580[20] не планується[21] Натомість вона опирається на власну розробку «LibrePGP», яка, однак, не була прийнята як стандарт робочою групою OpenPGP. Версії 2.0 та пізніші також реалізують стандарти S/MIME та PGP/MIME(інші мови)[22].

Remove ads

Концепція

Узагальнити
Перспектива

GnuPG прагне надати якомога більшій групі користувачів можливість використовувати криптографічні методи для конфіденційної передачі електронних даних.

GnuPG підтримує наступні функції:

  • Шифрування даних (наприклад, електронної пошти) для передачі конфіденційної інформації одному або декільком одержувачам, яка може бути розшифрована тільки самими одержувачами.
  • Створення підпису на надісланих даних для підтвердження їхньої автентичності та цілісності.

Обидві функції можна поєднувати. Як правило, спочатку створюється підпис і додається до даних. Потім цей пакет, що складається з повідомлення і підпису, надсилається одержувачу у зашифрованому вигляді. GnuPG підтримує поєднання обох дій в одному виклику лише в такому порядку. При надсиланні електронних листів (як PGP/MIME(інші мови) згідно з RFC 3156[23]) можливі обидва варіанти, але через обмеження поштових клієнтів це єдина можлива послідовність на практиці. Неможливо спочатку зашифрувати електронний лист, а потім додати звичайний текстовий підпис (який потім може бути проаналізований, наприклад, антивірусним сканером або спам-фільтром, які не зможуть розшифрувати справжнє повідомлення). Однак можна зашифрувати файли незалежно від надсилання електронного листа, прикріпити їх до електронного листа, а потім підписати його як PGP/MIME.

В GPG не використовуються ні запатентовані, ні обмежені в інший спосіб алгоритми, включаючи алгоритм шифрування IDEA, який підтримувався в PGP майже з самого початку. Замість цього, використовуються інші, не запатентовані алгоритми, такі як CAST5, Triple DES, AES[24], Blowfish та Twofish. Алгоритм IDEA в GPG наразі лише підтримується, використання IDEA не рекомендується через малу довжину блоку і призначений лише для розшифрування заархівованих даних[25]. IDEA є запатентованим алгоритмом, і тому використання IDEA в країнах, де цей патент є чинним, може бути заборонено через обмеження, що містяться в ліцензії GPL. Однак, якщо користувачеві вкрай необхідно використовувати IDEA, він може завантажити файл idea.c.gz і його підпис, прочитати інструкції у верхній частині файлу і використовувати його як плагін до GnuPG для розшифрування даних[25].

Remove ads

Принцип дії

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

GPG є програмою з гібридним шифруванням, в тому сенсі, що для підвищення швидкості роботи використовуються симетричні алгоритми шифрування, та асиметричні алгоритми шифрування для полегшення процедури обміну ключами, як правило, використовуючи відкритий ключ отримувача повідомлення для шифрування ключа сеансу, який використовується лише один раз. Цей режим роботи є частиною стандарту OpenPGP, і використовувався в PGP, починаючи з його першої версії[24].

Функціональність

Узагальнити
Перспектива

GPG – це метод шифрування з відкритим ключем, що означає, що для шифрування повідомлень не потрібна секретна інформація. Кожен користувач GPG створює пару ключів, що складається з двох частин: закритого ключа та публічного ключа. Тільки власник має доступ до закритого ключа, тому він зазвичай захищений паролем. За допомогою нього можна розшифровувати та підписувати дані. Відкритий ключ використовується для шифрування даних і перевірки підписаних даних. Він має бути доступним кожному партнеру по спілкуванню, який хоче виконати ці дві дії. Дані не можуть бути підписані або розшифровані за допомогою відкритого ключа, тому його розповсюдження не пов'язане з жодним ризиком для безпеки. Відкритими ключами можна обмінюватися з іншими користувачами за допомогою різних каналів, наприклад, серверів ключів в Інтернеті. Вони (або комбінація відкритого ключа та ідентифікатора користувача) завжди повинні бути надійно перевірені перед використанням, щоб запобігти маніпуляціям з ідентифікаційними даними, оскільки ідентифікаційні дані, що вводяться в відкриті ключі, можуть бути легко підроблені. GPG може лише визначити, чи були дані підписані або зашифровані певним ключем. Користувач повинен вирішити, чи заслуговує на довіру сам ключ; зрештою, будь-хто може створити ключ, використовуючи дані інших користувачів, і завантажити його на сервер ключів. Тому ключу, завантаженому з незахищеного джерела (наприклад, з Інтернету), не варто довіряти з самого початку. Для перевірки можна отримати відбиток ключа (хеш-значення) через захищений канал (наприклад, захищену електронну пошту, телефон) і порівняти його з локально згенерованим відбитком завантаженого ключа. Це безпечно, оскільки неможливо згенерувати відповідний ключ для даного відбитка. Ця безпека залежить від надійності хеш-функції (і кількості можливих ключів). Версія 4 формату ключів OpenPGP визначає використання хеш-функції SHA-1, для якої в даний час (2012) можливі атаки на зіткнення, але не атаки з використанням другого зображення які є вирішальними для імітації ключів. З огляду на нещодавню специфікацію хеш-функції SHA-3, розробка наступного формату ключа OpenPGP, як очікується, розпочнеться найближчим часом[26][24].

Для шифрування або підписання даних доступні ключі різної стійкості. В даний час (2014) зазвичай використовуються ключі довжиною від 2048 до 4096 біт, з рекомендованою довжиною 2048 біт. GPG наразі використовує лише незапатентовані алгоритми для шифрування даних, такі як RSA, Elgamal, CAST5, Triple-DES (3DES), AES (Rijndael) та Blowfish.

Головні ключі

За допомогою майстер-ключів GnuPG підтримує функцію безпеки, яка виходить за рамки стандарту OpenPGP і тому не працює надійно, якщо такі секретні ключі потрібно імпортувати в іншу програму OpenPGP. Головний ключ використовується не для повсякденного підписання і розшифрування, а для керування власними ключовими компонентами (ідентифікаторами користувачів і підключами) і сертифікації інших ключів. Ці дії відбуваються порівняно рідко, Ці дії відбуваються відносно рідко, тому майстер-ключ може бути спеціально захищений[27]. Перевагами такого підходу є:

  1. Партнерам по комунікації не потрібно повторювати перевірку ключа. Головний ключ залишається дійсним.
  2. Підключі можна легко замінити. Закінчення терміну дії та нові підключі не є чимось особливим для OpenPGP, вони автоматично додаються під час оновлень ключів і використовуються прозоро для користувача.
  3. Якщо майстер-ключ також дозволено підписувати, його значно вищий рівень безпеки можна використовувати для підпису дуже важливої інформації, наприклад, політики приватних ключів.

Технічний підхід полягає в тому, щоб експортувати секретні ключі без головного ключа (після створення резервної копії головного ключа), потім видалити всі секретні ключі, а потім імпортувати лише підключі. На жаль, ця функція GnuPG поки що не підтримується графічним інтерфейсом, тому доведеться виконати необхідні дії самостійно у консолі.

Павутина довіри

Існує раціональне сподівання, що механізм автентифікації криптографічних ключів PGP/GnuPG(інші мови) вирішить проблему неможливості особистої перевірки автентичності ключів усіх партнерів по спілкуванню[28]. Користувачі можуть підписувати інші ключі своїм власним ключем і таким чином підтверджувати третім особам, що вони переконані в автентичності ключа. Ви також можете вказати, наскільки ви довіряєте підпису людини. Це створює описану мережу довіри. Наприклад, якщо Аліса підтвердила автентичність ключа Боба своїм підписом, то Клоі може довіряти автентичності ключа Боба, навіть якщо вона не змогла безпосередньо перевірити його сама, наприклад, тому що отримала його з Інтернету. Передумовою для цього, звичайно, є те, що вона знає і довіряє ключу Аліси. Існує кілька центрів сертифікації (англ. certification authority (CA), які перевіряють автентичність ключів, наприклад, шляхом особистого контакту та перевірки особи. Це пропонується безкоштовно, наприклад, журналом c't та CAcert. Зацікавлені сторони можуть особисто ідентифікувати себе в цих організаціях, наприклад, на комп'ютерних виставках, таких як CeBIT, та отримати підтвердження своїх відкритих ключів[29].

Мережа довіри PGP була ретельно вивчена та візуалізована дослідниками. Було виявлено, що значна частина користувачів належить до підмножини, яка повністю пов'язана через взаємні підтвердження, так званої Сильної множини Мережі довіри[30]. Дослідження також показали, що криптокампанія c't зробила значний внесок у зміцнення зв'язків між учасниками[31].

Ще одним важливим внеском у PGP web of trust(інші мови) є проєкт Debian, який вимагає цифрових підписів для включення внесків.

Підтримка SSH

У версії 2 GPG управління закритими ключами було передано на аутсорсинг демону (gpg-agent[32]). Схожа структура (ssh-agent) існує в OpenSSH, але там вона не є обов'язковою. Оскільки алгоритм підпису RSA використовується як в OpenPGP, так і в SSH, відповідні ключі в принципі взаємозамінні. Тому gpg-agent можна використовувати для встановлення SSH-з'єднання за допомогою ключа OpenPGP (який повинен мати можливість автентифікації, яка зазвичай не використовується). Це відкриває дві корисні можливості:

  1. Для SSH також можна використовувати вже перевірений ключ OpenPGP. Верифікацію (можливо, складну) другого ключа можна не проводити.
  2. Оскільки GPG підтримує смарт-картки, доступ по SSH може бути пов'язаний з використанням смарт-картки (що також можливо без GPG завдяки підтримці PKCS#1(інші мови) в OpenSSH).

Тестування поштової програми

Щоб перевірити, чи правильно працює програма, можна скористатися поштовим ботом Adele (adele@gnupp.de) з проєкту GNU Privacy Project. Для цього потрібно надіслати лист із власним відкритим ключем як вкладення до Adele і отримати зашифрований цим ключем лист, який містить відкритий ключ Adele у вигляді текстового блоку в електронному листі. Потім можливо імпортувати цей ключ до системи керування ключами і використовувати його для відправлення зашифрованого листа Адель самостійно. Відповідь Адель міститиме вміст щойно зашифрованого повідомлення, а також інформацію про те, що повідомлення можна розшифрувати.

Ліцензування

GnuPG за замовчуванням використовує лише невласницькі алгоритми і розповсюджується під ліцензією GNU GPL. Його можна використовувати у GNU/Linux, MacOS та інших Unix-подібних системах, а також у Microsoft Windows.

Remove ads

Попереднє встановлення GnuPG

GnuPG попередньо встановлено у більшості дистрибутивів Linux та вільних Unix-подібних операційних систем (таких як NetBSD, OpenBSD, FreeBSD) як частина їхнього менеджера пакунків для забезпечення цілісності програмних пакунків і тому включений до більшості інсталяцій. Тому завантаження з автентичного інсталяційного носія такої системи є способом запуску GnuPG у безпечному середовищі (тобто без шкідливих програм), наприклад, для генерації або використання ключів з високими вимогами до безпеки. Він також доступний для самостійного встановлення на операційні системи Microsoft Windows.

Remove ads

Сумісність з PGP

Поточні версії PGP сумісні з GPG та іншими системами, що втілюють стандарт OpenPGP. Хоча, деякі старі версії PGP також працюють із GPG, не всі можливості нових версій програмного забезпечення підтримуються в старих версіях. Тому слід знати про ці можливі несумісності та враховувати їх при обміні даними між різними програмами[33].

Уразливості

Узагальнити
Перспектива

Efail

У травні 2018 року група дослідників з Європи поширили попередження про виявлені ними дві вразливості у поширених поштових клієнтах. Обидві вразливості можуть бути реалізовані за умови атаки «людина посередині» та якщо в поштовому клієнті увімкнено підтримку перегляду HTML. Перша уразливість, при цьому, дозволяє зловмиснику отримувати розшифрований шифротекст[34].

Efail не є вразливістю самої OpenPGP чи GPG, і натомість працює шляхом «обгортання» шифротексту тегами img, в атрибут src яких вклеюється сам шифротекст. Таким чином після дешифрування в поштовому клієнті, клієнт здійснює запит в мережу, який містить в URL розшифроване повідомлення.

Для поширення інформації про уразливості був створений вебсайт efail.de [Архівовано 14 травня 2018 у Wayback Machine.].

Через помилку в оптимізації процедури цифрового підпису в GPG у 2003 році з'явилася прогалина в безпеці[35]. Це вплинуло лише на процес цифрового підпису повідомлень у версіях GPG від 1.02 до 1.2.3. Як стверджується, на серверах ключів було зазначено менше 1000 таких ключів[36]. Використання цього процесу не заохочувалося, і лише кілька користувачів скористалися ним. Про жодні збитки публічно не повідомлялося. Починаючи з версії 1.2.4 ця процедура більше не пропонується.

На початку 2006 року було виявлено ще дві вразливості безпеки – перша могла призвести до генерації помилок другого роду (помилкових спрацьовувань) скриптами GPG під час перевірки підписів[37], друга зробила повідомлення, що не є MIME, вразливими до введення даних, які, як здавалося, були покриті цифровим підписом[38]. Обидві вразливості вже були виправлені в новіших версіях GPG на той момент, коли було оголошено про їх появу.

Remove ads

Критика

Експерти з ІТ-безпеки неодноразово критикують погану кодову базу(інші мови) GnuPG, відсутність системи безперервної інтеграції та спричинені цим вразливості безпеки[39].

Див. також

Примітки

Література

Посилання

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads