Найдена замена ПИН-кодам и паролям

Найдена замена ПИН-кодам и паролям

Британская фирма PinPlus представила еще одну любопытную технологию проверки подлинности с помощью графического кода. Создатели технологии надеются, что их методика будет настолько надежной, что полностью заменит двухфакторную авторизацию.

Кратко технологию PinPlus можно описать как ввод контрольного кода из четырех цифр из четырех разноцветных квадратов – по одному символу на каждый квадрат, содержащий 3x3 клетки с числами от 1 до 0. Итоговая матрица для ввода контрольного кода имеет размер 6x6 клеток.

Одним из примечательных фактов в связи с анонсом технологии PinPlus является то, что основателем новой компании стал тот же Джонатан Креймер (Jonathan Craymer), что несколько лет назад запустил компанию GrIDsure, которая разрабатывала близкую по форме технологию графической авторизации. Его новая компания PinPlus уходит от традиционной технологии с паролями и ПИН-кодами. Вместо этого предлагается уникальный подход с безопасной доставкой одноразового кода к пользователю, а постоянный секретный код хранится на отдельном сервере в облаке, передает soft.mail.ru.

Если в обычной ситуации пользователям надо запоминать уязвимый пароль, в технологии PinPlus нужно запомнить расположение выделенных ячеек на небольшой (6 X 6) матрице из цифр. Это расположение (создаваемое однократно при первой регистрации) помогает пользователю считывать постоянно изменяемый набор чисел в матрице. Каждое следующее считывание создает уникальный код для каждого конкретного входа. Сохраненное сочетание ячеек («узор») кодируется, делится на части, а потом записывается во множество отдельных структур данных, которые потом проходят окончательное шифрование.

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

Технологию хранения исходного кода защищают целых три патентных заявки. Отдельные сегменты кода индексируются с помощью ссылок на данные, которые лишь указывают на правильные данные, если введен правильный одноразовый код. Шифрование сегментов выполняется с помощью алгоритмов необратимого хэширования SHA-256 со стойкой «солью» (затравкой шифра).

Технология PinPlus (или «pin+») позиционируется, как альтернатива все более популярным системам двухфакторной авторизации, которые обычно состоят из текстовых сообщений, отправляемых на зарегистрированный номер мобильного телефона, либо из более традиционных ключей, генерирующих одноразовые пароли, от компаний вроде RSA Security. В системе PinPlus пользователю не нужно носить с собой ни телефон, ни жетон, ни какую-либо карточку с одноразовыми паролями. Кроме того, новый подход делает невозможным массовое похищение паролей или хэшей, как это недавно происходило, например, с сайтами LinkedIn (социальная сеть для поиска работы, единомышленников в профессиональной сфере и специалистов на вакантные должности) и eHarmony (служба знакомств). 

Расширения Chrome могут слить секреты URL через атаку по стороннему каналу

Как оказалось, расширения Chrome можно использовать для слива кодов авторизации, сеансовых ID и других секретов из URL любой открытой вкладки. Никаких специальных разрешений для этого не понадобится, только доступ к declarativeNetRequest API.

Этот механизм, пришедший на смену webRequest API, позволяет расширениям сообщать браузеру, что следует изменить или заблокировать на загружаемой странице (заголовки, реклама, трекеры).

Правила обработки запросов при этом добавляются динамически, а фильтрация осуществляется по регулярным выражениям, соответствующим подмножествам знаков, которые могут присутствовать на определенных позициях в URL.

Исследователь Луан Эррера (Luan Herrera) обнаружил, что блокировку, диктуемую правилами, Chrome производит почти мгновенно, за 10-30 мс, а остальные запросы выполняются дольше (~50-100ms) — из-за сетевых подключений. Эту разницу во времени расширение может использовать для бинарного поиска с целью посимвольного слива URL.

// extensions/browser/api/web_request/extension_web_request_event_router.cc:1117-1127
case DNRRequestAction::Type::BLOCK:
  ClearPendingCallbacks(browser_context, *request);
  DCHECK_EQ(1u, actions.size());
  OnDNRActionMatched(browser_context, *request, action);
  return net::ERR_BLOCKED_BY_CLIENT;

Оракул для подобной тайминг-атаки строится с использованием chrome.tabs.reload для перезагрузки страницы и перехватчика chrome.tabs.onUpdated, помогающего отследить событие status === "complete". Замер времени между reload и завершением загрузки покажет, заблокирован запрос или успешно обработан.

Повторение проверок и бинарного поиска позволяет получить полный URL (с довеском после «?»), затратив на каждый знак строки несколько прогонов. Таким образом, можно незаметно для пользователя украсть включенные приложением в адрес секреты — токены OAuth и сброса пароля, API-ключи, ссылки на контент, закрытый для поисковых систем.

Проверка PoC проводилась на Windows 11 24H2 с использованием Chrome разных версий:

  • 144.0.7559.97 (Stable)
  • 145.0.7632.18 (Beta)
  • 146.0.7647.4 (Dev)
  • 146.0.7653.0 (Canary)

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

RSS: Новости на портале Anti-Malware.ru