Загрузка данных
Полная выжимка по Raspberry Pi Pico / FIDO2 / OpenAI Advanced Account Security / Daybreak
Дата: 7 октября 2026
1. Цель
Нужно пройти OpenAI Advanced Account Security / Daybreak.
На странице auth.openai.com/advanced-account-security/secure-methods OpenAI требует минимум один подходящий аппаратный FIDO2 security key плюс второй способ входа.
Были успешно добавлены программные passkey через:
- Apple Passwords
- 1Password
Но они не закрывали требование hardware key.
2. Попытка с телефоном
QR-сценарий «использовать смартфон или планшет» успешно создавал обычные passkeys.
NFC в iPhone не является заменой физическому NFC FIDO2 key в сценарии «аппаратный ключ».
3. Решение сделать собственный FIDO2 key
Используется обычный Raspberry Pi Pico на RP2040.
Не Pico 2 / RP2350.
4. Резервная копия и PicoSafe
Перед прошивкой была сделана утилита PicoSafe для macOS.
Она умеет через picotool:
- считать полный flash Pico в .uf2;
- сохранить SHA-256 и информацию;
- скачать официальный Pico-FIDO;
- прошить Pico;
- восстановить прежнюю прошивку.
Резервная копия текущей прошивки Pico была сохранена до эксперимента.
5. Установленная прошивка
На Pico установлена официальная прошивка:
Pico FIDO 7.6
Файл:
pico_fido_pico-7.6.uf2
Использовался проект:
polhenarejos/pico-fido
Никакие идентификаторы Yubico на этом этапе не подменялись.
6. Определение устройства в macOS
После прошивки macOS увидел устройство примерно как:
Pol Henarejos / Pico Key
Chrome также показывал уведомление:
«Обнаружено устройство \"Pico Key\"»
macOS запускал «Ассистент настройки клавиатуры».
Это связано с дополнительным HID/OTP-интерфейсом прошивки.
Окно можно просто закрыть через «Завершить».
7. Обычный WebAuthn-тест
На webauthn.io:
- Register прошёл;
- ключ реагировал миганием;
- Pico был выбран именно как USB/security key;
- затем Authenticate прошёл;
- сайт показал: You're logged in!
Вывод:
Pico реально работает как WebAuthn/FIDO2 authenticator.
8. Строгий WebAuthn-тест
На WebAuthn.io были выставлены параметры:
User Verification = Required
Attachment = Cross-Platform
Discoverable Credential = Required
Attestation = Direct
Chrome запросил FIDO2 PIN электронного ключа.
PIN был введён успешно.
Регистрация завершилась Success.
Затем Authenticate тоже завершился успешно:
You're logged in!
Таким образом проверены:
CTAP2 / FIDO2 — OK
PIN / User Verification — OK
Cross-platform authenticator — OK
Resident / discoverable credential — OK
Direct attestation request — OK
Registration — OK
Authentication — OK
9. Проверка в OpenAI
На странице Advanced Account Security выбирался аппаратный USB security key.
Первые попытки иногда заканчивались сообщением:
«Нам не удалось выполнить запрос ключа доступа из-за непредвиденной ошибки»
После чистой попытки через Safari Pico всё-таки зарегистрировался в аккаунте OpenAI.
10. Как OpenAI зарегистрировал Pico
В списке OpenAI он появился отдельной записью примерно как:
Passkey — Привязан к устройству
То есть OpenAI успешно принял WebAuthn credential от Pico.
11. Главный результат
Кнопка «Продолжить» осталась неактивной.
OpenAI продолжал показывать сообщение:
«Чтобы продолжить, добавьте аппаратный ключ»
Следовательно:
OpenAI видит Pico как рабочий device-bound passkey,
но не классифицирует его как qualifying hardware security key,
необходимый для этой конкретной проверки Daybreak / Advanced Security.
12. Что это означает технически
Pico уже прошёл строгий WebAuthn/FIDO2 тест.
Следовательно, проблема практически наверняка:
- не в USB;
- не в PIN;
- не в CTAP2;
- не в User Verification;
- не в resident credentials;
- не в обычной регистрации credential;
- не в обычной WebAuthn-аутентификации.
Проблема, вероятнее всего, в дополнительной политике классификации / доверия OpenAI к конкретному authenticator.
13. Что имеет смысл исследовать дальше
Для лабораторного анализа можно изучить, что именно Pico отдаёт браузеру:
- текущий USB VID/PID;
- AAGUID authenticator;
- формат и содержимое attestation object;
- тип attestation: none / packed / self-attestation и т. п.;
- наличие или отсутствие attestation certificate;
- CTAP2 getInfo;
- список capabilities и options;
- discoverable credentials и UV;
- отличие ответов Pico от ответов коммерческого FIDO2 key.
Также можно безопасно собирать Pico-FIDO с собственным тестовым VID/PID или идентификаторами, которые принадлежат пользователю, для исследования USB enumeration.
14. Важная граница
Не следует маскировать Pico под YubiKey или копировать VID/PID/AAGUID/attestation Yubico ради обхода OpenAI security gate.
Это уже было бы не обычным тестированием собственного FIDO2-ключа, а подменой доверенного аппаратного аутентификатора для прохождения security-проверки сервиса.
Кроме того, одного VID всё равно, скорее всего, недостаточно:
сервис может учитывать AAGUID, attestation certificate chain и metadata конкретного authenticator.
15. Самое полезное следующее направление
Самое интересное техническое направление — не VID.
Нужно сначала сравнить:
- attestation;
- AAGUID;
- CTAP2 getInfo;
- hardware / software classification;
- metadata;
- device-bound / hardware-key classification
между Pico-FIDO и настоящим коммерческим FIDO2 security key.
Это с высокой вероятностью объяснит, почему OpenAI:
- принимает Pico как Passkey — привязан к устройству,
но
- не засчитывает его как hardware-key eligibility для Daybreak.
Итог:
Pico-FIDO на обычном Raspberry Pi Pico RP2040 успешно работает как полноценный WebAuthn/FIDO2 authenticator и проходит строгие тесты с PIN, User Verification Required, Cross-Platform, Discoverable Credential Required и Direct Attestation.
OpenAI также принимает его credential, но классифицирует только как device-bound passkey, а не как qualifying hardware security key для Daybreak.