Исследователи обнаружили ошибку в протоколе аутентификации, которая затрагивает ОС Microsoft, Linux и Apple. Ошибка в протоколе криптографической аутентификации Kerberos, позволявшая его обойти (bypass bug) и просуществовавшая 21 год, устранена в исправлениях, выпущенных Microsoft, Samba, Fedora, FreeBSD и Debian.

Обнаружившие возможность обхода Kerberos назвали эту давнюю ошибку «Лира Орфея» (Orpheus Lyre). В древнегреческом мифе музыкант Орфей сумел пройти мимо Цербера (Cerberos), трехглавого пса, охранявшей вход в Аид, усыпив его игрой на лире.

Протокол Kerberos, названный так по созвучию с именем Цербера, используется для криптографической аутентификации в таких продуктах, как Microsoft Active Directory. Недавно Microsoft исправила ошибку в рассылаемых по вторникам обновлениях.

Samba, Debian и FreeBSD тоже затронуты ошибкой благодаря Heimdal — варианту Kerberos V5 с открытым исходным кодом. Heimdal уязвим до версии 7.4. Похоже, что реализация Kerberos в Apple macOS также подвержена Orpheus Lyre, а реализация MIT — нет.

Orpheus Lyre обнаружили Джеффри Альтман, Виктор Духовны и Нико Вильямс. Они поясняют, что эта ошибка может быть использована при атаке типа «человек посередине» для удаленного хищения полномочий и повышения с их помощью привилегии для преодоления шифрования Kerberos.

Вместо используемых в криптографии с публичным ключом цифровых сертификатов, выданных удостоверяющими центрами, протокол Kerberos полагается на заслуживающий доверие орган под названием Центр распределения ключей (key distribution center, KDC).

KDC выдает «короткоживущие сертификаты (tickets)», применяемые для аутентификации клиента конкретного сервиса. Зашифрованная часть сертификата содержит имя пользователя, для которого он предназначен, метаданные и ключ сессии. KDC также предоставляет пользователю ключ сессии, который создает аутентификатор, подтверждающий, что пользователь знает ключ сессии.

«Изначальным криптографическим пороком» Kerberos было обилие в протоколе не аутентифицированного открытого текста. Хотя Kerberos может быть надежен, его трудно реализовать так, чтобы аутентифицировать открытый текст.

«В данном случае две ошибочные строки в нескольких независимо разработанных имплементациях Kerberos привели к тому, что метаданные должны были извлекаться не из аутентифицированного и зашифрованного отклика KDC, из сертификата, а из неаутентифицированного открытого текста», — пояснили исследователи. Они не раскрыли деталей всех методов использования ошибки Orpheus Lyre, но отметили, что атакующий, находящийся между клиентом и сервером, способен выдавать себя за некие сервисы для клиента.

«Если клиент представляет сертификат и аутентификатор, и если сервис способен расшифровать сертификат, выделить из него ключ сессии и посредством этого ключа расшифровать аутентификатор, то клиент станет тем, о ком говорится в сертификате, поскольку он обладал криптографическим ключом, с помощью которого изготавливался аутентификатор», — сообщили исследователи.

Ошибка может быть устранена только путем исправления систем конечных пользователей, а не серверов.