PGP (Pretty Good Privacy) — криптиране, цифров подпис и история

Научете всичко за PGP: как работи криптирането и цифровите подписи, историята от 1991 г. и практически съвети за сигурна защита на имейл комуникацията.

Автор: Leandro Alegsa

Pretty Good Privacy (PGP) е компютърна програма, която осигурява криптографска поверителност и удостоверяване. PGP често се използва за подписване, криптиране и декриптиране на електронни писма (имейли), за да се повиши сигурността на комуникациите по електронна поща. Първоначално тя е създадена от Фил Цимерман през 1991 г.

PGP и други подобни продукти следват стандарта OpenPGP (RFC 4880) за криптиране и декриптиране на данни.

Как работи PGP

PGP използва комбиниран (хибриден) подход: за бързо криптиране на големи обеми данни се използва симетричен алгоритъм (сесийн ключ), а самият този сесийн ключ се криптира с асиметричния (публичен) ключ на получателя. По този начин се постига ефективност и сигурност едновременно.

  • Криптиране: подателят генерира временен (симетричен) ключ, с който се криптира съдържанието. След това временният ключ се криптира с публичния ключ на получателя и се прикачва към криптираното съобщение.
  • Дигитален подпис: подателят хешира съобщението и подписва хеша със своя частен ключ, което дава възможност на получателя да провери автентичността и целостта на данните чрез публичния ключ на подателя.
  • ASCII armor: за предаване по текстови канали PGP често използва ASCII преобразуване (Base64), което прави криптираното съдържание безопасно за имейл и други текстови системи.

Модел за доверие (Web of Trust)

Вместо централизирана PKI инфраструктура с издател на сертификати, PGP въвежда концепцията "web of trust" — потребителите сами подписват (втвърждават) публични ключове на други потребители. Доверието към даден ключ се определя чрез подписите и нивата на доверие, които вие и други участници задавате. Този модел позволява децентрализирано установяване на автентичност, но изисква активна работа по проверка и подписване на ключове.

История и развитие

PGP е публикуван от Фил Цимерман през 1991 г. като приложение, което предоставя силни криптографски възможности на широката публика. Пускането му предизвиква голям интерес и внимание, включително и правителствени проверки: през първата половина на 1990-те САЩ започват разследване поради износните ограничения за силна криптография, но впоследствие (средата на 1990-те) няма повдигнати обвинения и разследването е прекратено.

За да улесни съвместимостта и развитието, общността започва стандартизацията на формата и протоколите под името OpenPGP. Първоначалният документ RFC 2440 дефинираше стандарта, а по-късно той е актуализиран и обобщен в RFC 4880 (2007), който е широко приет от софтуерните реализации.

След първоначалната безплатна версия на PGP се появяват както комерсиални, така и свободни реализации. Един от най-известните свободни проекти е GNU Privacy Guard (GnuPG, разработван от Werner Koch), съвместим с OpenPGP и широко използван в Linux, Windows и macOS среди.

Алгоритми и технологии

  • Публични ключови алгоритми: RSA, DSA/ElGamal; в модерни реализации се използват и алгоритми на базата на елиптични криви (ECC) за по-добра ефективност при по-малки ключове.
  • Симетрични алгоритми: първоначално PGP използваше IDEA (патентован), по-късно се разпространяват CAST5, AES и други.
  • Хеш-функции: SHA-1 беше стандартна в ранните версии; днес се използват по-силни хешове като SHA-256 и SHA-512.

Реализации и инструменти

  • GnuPG (GPG) — свободна и широко използвана имплементация на OpenPGP.
  • Комерсиални продукти на база PGP/ OpenPGP, които предлагат интеграция с корпоративни сървъри, управление на ключове и други услуги.
  • Клиентски добавки и GUI-инструменти (напр. Kleopatra, Enigmail в миналото и интеграции в съвременните имейл клиенти) правят използването на PGP по-лесно за крайните потребители.
  • Обществени keyserver-и и мрежи за разпространение на публични ключове улесняват намирането и изтеглянето на ключове, но изискват внимание при проверка на автентичността.

Практическо използване и ограничeния

PGP е подходящо за:

  • шифроване и подписване на имейли;
  • подписване и проверка на софтуер/файлове;
  • защита на архиви и чувствителни файлове.

Ограничения и рискове:

  • PGP не прикрива метаданни (адреси, заглавия на имейли, временни печати) — това може да разкрие информация за комуникацията;
  • липсва автоматична "forward secrecy" (промяна на ключове за всяка сесия) в класическия PGP сценарий;
  • сигурността зависи от правилното управление на ключовете: защита на частния ключ, използване на силни пароли, своевремено оттегляне/ревокация на компрометирани ключове;
  • възможни уязвимости при некачествени реализации или неподходящи конфигурации.

Добри практики

  • Проверявайте отпечатъците (fingerprints) на ключовете по доверен канал преди да поверявате чувствителна информация.
  • Създайте и съхранявайте ревокационен сертификат веднага след генериране на ключа.
  • Използвайте модерни алгоритми и достатъчна дължина на ключа (напр. 2048–4096 бита за RSA или съвременни ECC схеми) и съвременни хеш-функции.
  • Дръжте частните ключове защитени (офлайн носители, хардуерни токени, силни пароли).

PGP остава силно средство за сигурност и поверителност в електронните комуникации, но ефективността му зависи както от техническите детайли (алгоритми, реализации), така и от добрите практики и вниманието на потребителите при управление на ключовете и проверка на доверие.

OpenPGP

OpenPGP е в списъка на стандартите на интернет; настоящата спецификация е RFC 4880 (ноември 2007 г.). OpenPGP все още е в процес на разработване, а наследникът на RFC 2440, който е RFC 4880, е превърнат в предложен стандарт. Много клиенти за електронна поща осигуряват съвместима с OpenPGP защита на електронната поща, както е описано в RFC 3156.

Фондацията за свободен софтуер е разработила собствена програма, съвместима с OpenPGP, наречена GNU Privacy Guard (съкратено GnuPG или GPG). GnuPG е свободно достъпна заедно с целия изходен код под Общия публичен лиценз на GNU (GPL) и се поддържа отделно от няколко графични потребителски интерфейса (GUI), които взаимодействат с библиотеката на GnuPG за функции по криптиране, декриптиране и подписване (вж. KGPG, Seahorse, MacGPG). Няколко други доставчици също са разработили софтуер, съвместим с OpenPGP.

Свързани страници

  • FreeOTFE - Криптиране на дискове
  • PuTTY - SSH криптиране


обискирам
AlegsaOnline.com - 2020 / 2025 - License CC3