В сервисе аутентификации Mozilla Persona выявлены проблемы с безопасностью

В развиваемом проектом Mozilla распределённом сервисе идентификации пользователей Persona выявлена уязвимость, позволяющая злоумышленнику подделать факт верификации email и выполнить вход от имени любого адреса сервисов Gmail и Yahoo Mail, для которых поддерживается использование OpenID для подтверждения валидности пользователя. Уязвимость была выявлена в рамках программы «Bug Bounty Program» и не была публично оглашена до устранения проблемы. Persona позволяет пользователям авторизоваться на любом веб-сайте, используя email, который должн быть предварительно подтверждён владельцем, для чего в том числе поддерживается использование протокола OpenID.

Причина уязвимости кроется в особенностях верификации с использованием OpenID и проявляется только для сервисов, для которых поддерживается подтверждение по данному протоколу (на данным момент только Gmail и Yahoo Mail). В частности, для проверки корректности привязки email к заявленному аккаунту используется цифровая подпись. Подразумевается, что цифровая подпись охватывает поле с email, но упускается, что допустимо указание произвольных полей для проверки по цифровой подписи.

Таким образом, атакующий может сформировать цифровую подпись, не охватывающую email, после чего подменить указанный в параметрах верификации адрес. После смены адреса цифровая подпись останется корректной и многие популярные OpenID-библиотеки, явным образом не проверяющие наличие поля с email в числе охватываемых цифровой подписью полей, будут считать запрос с фиктивным email прошедшим верификацию.

Второй вектор атаки связан с особенностью извлечения значений полей OpenID. Например, атакующий может путём спуфинга подставить в начало корректно верифицированного запроса дополнительное поле «openid.foo.value.email: victim@gmail.com». Несмотря на то, что цифровая подпись будет корректно сформирована для изначально указанного поля «openid.ext1.value.email: example@gmail.com», многие OpenID-библиотеки извлекут email из поля, указанного первым, несмотря на то, что оно не охватывается цифровой подписью.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.