PGP (Pretty Good Privacy) — криптиране, цифров подпис и история
Научете всичко за PGP: как работи криптирането и цифровите подписи, историята от 1991 г. и практически съвети за сигурна защита на имейл комуникацията.
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 криптиране
обискирам