Хакерите използваха особеност на протокола OpenPGP, която е известна от повече от десет години.
Разказваме каква е същността и защо не могат да я закрият.
/ Unsplash /
Проблеми в мрежата
В средата на юни неизвестни лица върху мрежата от криптографски ключове , изградена на базата на протокола OpenPGP. Това е стандарт на IETF (), който се използва за криптиране на електронна поща и други съобщения. Мрежата SKS е създадена преди тридесет години за разпространение на публични сертификати. Към нея се свързват инструменти като за криптиране на данни и създаване на електронни цифрови подписи.
Хакерите компрометираха сертификатите на двама поддържатели на проекта GnuPG — Роберт Хансен (Robert Hansen) и Дэниел Гиллмор (Daniel Gillmor). Зареждането на повреден сертификат от сървъра води до срив на GnuPG — системата просто засяда. Има основания да се смята, че злонамерените лица няма да се спрат на това и броят на компрометираните сертификати ще продължи да нараства. Към момента мащабите на проблема остават неизвестни.
Същността на атаката
Хакерите се възползваха от уязвимост в протокола OpenPGP. Тя е известна на обществеността вече не един десетилетие. Дори в GitHub има съответни експлойти. Но засега никой не се е ангажирал да закрие "проблема" (по-късно ще говорим по-подробно за причините).
Пара подборки от нашия блог в Хабра:
Според спецификацията на OpenPGP всеки може да добавя цифрови подписи към сертификатите, за да потвърди тяхния собственик. Въпреки това, максималният брой подписи не е регламентиран. И тук възниква проблемът — мрежата SKS позволява да се поставят до 150 000 подписа на един сертификат, но GnuPG не поддържа такава бройка. По този начин, при зареждане на сертификат GnuPG (както и други реализации на OpenPGP) засяда.
Един от потребителите — импортът на сертификата му отне около 10 минути. Сертификатът имаше над 54 000 подписа, а размерът му беше 17 Мбайта:
$ gpg --homedir=$PWD --recv C4BC2DDB38CCE96485EBE9C2F20691179038E5C6
gpg: ключ F20691179038E5C6: 4 дублирани подписи премахнати
gpg: ключ F20691179038E5C6: 54614 подписи не проверени поради липсващи ключове
gpg: ключ F20691179038E5C6: 4 подписи реорганизирани
gpg: ключ F20691179038E5C6: публичен ключ "Даниел Кан Гилмор <dkg@fifthhorseman.net>" импортиран
gpg: не са намерени окончателно доверени ключове
gpg: Общо обработени: 1
gpg: импортирани: 1
$ ls -lh pubring.gpg
-rw-r--r-- 1 filippo staff 17M 2 юли 16:30 pubring.gpg
Ситуацията се усложнява от факта, че сървърите на ключове с OpenPGP не премахват информация за сертификатите. Това е направено, за да се проследи веригата от действия с сертификатите и да се изключи тяхната подмяна. Следователно еневъзможно да се ликвидират компрометирани елементи.
По същество, мрежата SKS представлява голям "файлов сървър", на който всеки желаещ може да записва данни. За да илюстрираме проблема, миналата година резидентът на GitHub , която съхранява документи в мрежата от сървъри на криптографски ключове.
Защо уязвимостта не беше затворена
Нямаше причина за затваряне на уязвимостта. По-рано не е била използвана за провеждане на хакерски атаки. Въпреки това ИТ общността разработчиците на SKS и OpenPGP да обърнат внимание на проблема.
За справедливост трябва да се отбележи, че през юни те все пак експериментален сървър на ключове . В него е реализирана защита срещу подобни типове атаки. Обаче неговата база данни се запълва от нула, а самият сървър не е част от SKS. Затова ще отнеме време, преди да може да се използва.

/ Unsplash /
Що се отнася до бъга в оригиналната система, неговото поправяне е затруднено от сложния механизъм на синхронизация. Мрежата от сървъри на ключове първоначално е написана като proof of concept за защита на докторската дисертация на Ярон Мински (Yaron Minsky). За работа е избран доста специфичен език OCaml. Според умейкъра Робърт Хансен, разбирането на кода е трудно, затова в него се внасят само малки поправки. За да се модифицира архитектурата на SKS, тя ще трябва да бъде презаписана от нула.
Каквото и да е, в GnuPG не вярват, че мрежата някога ще може да бъде поправена. В пост на GitHub разработчиците дори написаха, че не препоръчват работа с SKS Keyserver. Всъщност, това е една от главните причини, поради които те инициираха прехода към новата услуга keys.openpgp.org. Остава само да наблюдаваме развитието на събитията.
Няколко материала от нашия корпоративен блог:
Източник: habr.com
