В среду Европейская комиссия представила мобильное приложение(новое окно), разработанное, чтобы вы могли подтверждать свой возраст онлайн, не делясь персональными данными с платформами. Официальные лица ЕС заявили, что приложение готово, соответствует самым высоким стандартам конфиденциальности, и указали на его открытый исходный код как доказательство прозрачности.

Однако уже через несколько часов исследователи безопасности начали изучать открытый исходный код. К четвергу консультант по безопасности Пол Мур обошел защиту приложения менее чем за две минуты(новое окно).

Снимок экрана приложения ЕС для проверки возраста

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

Комиссия преуменьшила значение находок, назвав этот релиз демо-версией. И Мур, и французский криптограф Оливье Блази возразили, сообщив Politico(новое окно), что они тестировали последнюю версию кода, когда обнаружили уязвимости.

Позже Комиссия заявила, что проблема решена, но инцидент все равно показывает, насколько уязвимы такие системы проверки возраста.

Для чего нужно приложение ЕС для проверки возраста и что пошло не так

Приложение ЕС для проверки возраста позволяет людям подтвердить свой возраст с помощью паспорта, национального удостоверения личности или через доверенного поставщика услуг, например банк. Затем платформы могут запрашивать у приложения проверку того, достиг ли человек определенного возраста, не получая доступа к базовым персональным данным (это также известно как доказательство с нулевым разглашением).

Реализация проекта нарушила этот принцип. Приложение ЕС для проверки возраста хранило зашифрованный PIN в редактируемом файле конфигурации на устройстве отдельно от хранилища личных данных, в котором содержатся конфиденциальные сведения. Удалив несколько значений и перезапустив приложение, злоумышленник может установить новый PIN, повторно используя учетные данные из предыдущего профиля.

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

Создано для проверки возраста, но не для безопасности

После того как исследователи использовали код, чтобы вскрыть недостатки, официальные лица представили приложение как демо-версию.

Некоторые разработчики отметили, что конфиденциальные данные должны были быть сохранены в защищенном анклаве (Secure Enclave) — аппаратной защите, доступной на современных смартфонах, которая значительно усложняет подобные атаки.

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

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