Еще в 2010 году в Германии ввели систему электронных удостоверений личности (electronic ID, eID). Эти документы имеют RFID-чип и содержат такие данные владельца, как имя, дату рождения, биометрические параметры (включая отпечатки пальцев, по желанию). eID может использоваться для авторизации на различных государственных порталах, для подтверждения возраста, а также принимается почти во всех странах Европы в качестве выездных документов.

Специалисты компании SEC Consult обнаружили проблему, благодаря которой можно было подделать данные eID в онлайне и, по сути, выдать себя за другого человека. Уязвимость была найдена не в самих RFID-чипах удостоверений, но в софтверной составляющей этой системы, Governikus Autent SDK. Данный SDK применяется на различных немецких сайтах, включая правительственные порталы, для авторизации и регистрации посредством eID.

Исследователи объясняют, что корень проблемы заключался в том, как сайты обрабатывают полученные от пользователей ответы, когда те пытаются пройти аутентификацию с использованием eID.  В нормальных обстоятельствах данная процедура должна выглядеть так:

  • сайт обнаруживает, что пользователь инициирует процесс аутентификации посредством eID, и запрашивает у него специальный ответ;
  • пользователь использует кардридер или специальное приложение для чтения eID, и вводит PIN-код в специальном приложении на ПК или мобильном устройстве;
  • клиентское приложение eID соединяется с одним из множества авторизованных eID-серверов и верифицирует этот запрос на вход, присваивает операции криптографическую верификационную подпись, которая вместе с запросом пользователя направляется целевому сайту;
  • клиентское приложение eID передает eID-запрос сайту (запрос содержит упомянутую подпись и данные пользователя), тем самым завершая процедуру eID-индентификации;
  • сайт создает новую учетную запись или авторизует пользователя.

По данным SEC Consult, сайты, работавшие со старыми версиями Governikus Autent SDK, могли принимать ответы, содержащие одну криптографическую подпись, но несколько параметров SAML (Security Assertion Markup Language), содержащих данные пользователя. В итоге систему валидации можно было обмануть, а ответ пользователя модифицировать.

Для эксплуатации проблемы атакующему требовалась действительная строка запроса, подписанная аутентификационным сервером, в которую можно было внести изменения. Манипуляции позволяли теоретическому злоумышленнику выдать себя за другого человека, или аккуратно «подправить» в ответе имя, возраст и так далее. Исследователи подчеркивают, что осуществить подобную атаку было не так уж сложно. Дело в том, что многие eID-серверы «светят» своими логами в интернет (12), и атакующий мог с легкостью почерпнуть все необходимые для атаки данные отсюда.

Демонстрацию атаки можно увидеть в ролике ниже.

Специалисты уведомили Governikus о проблеме еще летом текущего года, и в августе была выпущена исправленная версия Autent SDK (3.8.1.2). Теперь немецкий CERT и разработчики Governikus предупреждают, что все версии Autent SDK от 3.8.1 и ниже уязвимы перед обнаруженной проблемой и требуют немедленного обновления.

Оставить мнение