Журналист не мог зарегистрироваться в швейцарской госсистеме AGOV — и потратил кучу времени, чтобы понять, в чём дело. AGOV запустили в 2024 году, сейчас у него 1,6 млн аккаунтов. Через систему подают налоги, оформляют пособия по безработице и даже заявление на гражданство в кантоне Цюрих. Автору пришлось завести аккаунт, и тут началось.
Первый шаг — ввести email и код из письма в шесть ячеек. Но фокус не перескакивал между ячейками, цифры накапливались в одной и подсвечивались красным. Ручное заполнение не помогало — форма выдавала ошибку «field required». Автор проверил Firefox, Chromium и Chrome на Linux, Firefox, Safari и Chrome на macOS — везде одно и то же. Он заподозрил, что дело в CAPTCHA от Friendly Captcha, но нет.
Поддержка AGOV оказалась доступна только через веб-форму, которая тоже требует верификации по email. Телефона или почты нет. Замкнутый круг. Отзывы приложения AGOV Access в Google Play получили 1,4 звезды — но никто не жаловался на эту проблему. Упоминалась несовместимость с GrapheneOS, но не это.
Случайно форма заработала на рабочем ноутбуке с английской раскладкой. Автор решил копать JavaScript. Основной файл весил 2,4 МБ и содержал больше 100 тысяч строк обфусцированного кода. Но после поиска по строкам «required» и «onEmailVerification» он нашёл функцию verificationCodeEntered. Она перехватывает нажатия клавиш и блокирует модификаторы: Shift, Control, Meta. Проблема в том, что автор использует французскую раскладку AZERTY, где цифры вводятся только с зажатым Shift. Блокировка Shift — блокировка цифр. Никто из знакомых с QWERTY этого не замечал.
После переключения раскладки регистрация прошла успешно. Выяснилось ещё, что AGOV не верифицирует личность: автор просто ввёл имя и дату рождения, их никто не проверил. Система лишь удостоверилась, что email существует, а второй фактор — разрешённая модель security key или AGOV Access на iOS/Android. Исходный код AGOV по закону EMBAG опубликуют только в конце 2026 года, хотя систему уже сделали обязательной для ряда услуг. Баг автор отправил через ту самую форму, но ответа пока нет.