Комментарии 47
Ни стыда ни совести ни ссылки на git где можно следить за ходом разработки.
В тексте ссылка - https://github.com/polhenarejos/pico-fido
на алишке давно вроде лежали и платки с USB, и уже готовые в корпусе, к ним гугл вместе с крупнным китайским разработчиком лючей Rust-прошивку делали
главное было найти и купить правильную дев-борду, потому что кнопочку распивали отнюдь не все, без нее дешевле и для многих целей достаточно, но не для FIDO
На том же озоне эти dev-платы вроде тоже представлены, интересно, подойдут? Цена совсем прямо терпимая )
Модуль Платы Разработки RP2350 Для Raspberry Pi PICO2 RP2350
Такое, прошилось пошивкой https://github.com/polhenarejos/pico-fido/releases/download/v7.6/pico_fido_pico2-7.6.uf2
В системе определяется:

Пересоберу прошивку, проверю как работает с YubiKey Personalization Tools.
И правда. Даже с экранчиком есть.
Наверное, удобно выбирать (листать) кнопочками [страницы с десятками TOTP]


В контексте OTP проблема в том, что у этих плат часов нет. А если прикрутить - уже далеко не так дешево получается.
Упс, не подумал, что там так все плохо.
Хотя да - для часов же еще и батарейка нужна, пусть и микроскопическая. Не так все просто.
В контексте OTP проблема в том, что у этих плат часов нет. А если прикрутить - уже далеко не так дешево получается.
В качестве бреда. А если ничего не прикручивать, а просто при подключении, первым делом, подтягивать время по ntp ?
На ESP32 (не уверен, что в этих RP3250 есть WiFi/BT) для дома-офиса еще можно было бы несколько сеток прописать. А во всяких поездках, кафешках, где нужна авторизация через номер телефона/Госуслуги и т.п. совсем тяжко будет.
Только если делать через приложение простенькое на Win/MacOS/Linux которое с ключика такого будет подтягивать исходный verification code.
Работоспособность этого ключа очень сильно зависит от того, какие политики выставит владелец ресурса. Например, если пытаться применить свой кастомный ключ для Windows Hello (даже выставив PID/VID Юбикея - он не пройдет аттестацию в системе, потому что там нужен не PID/VID а правильный подписанный манифест)... :-(
он не пройдет аттестацию в системе, потому что там нужен не PID/VID а правильный подписанный манифест)... :-(
Справедливости ради - вроде бы FIDO Alliance не одобряет использование этого механизма просто для Web. А сам механизм вставлен на случай 'организация выдает своим сотрудникам ключик для доступа к внутренним системам, а остальные модели нельзя по бюрократическим причинам'.
Немножко не понял, проблемы с ТОТР ? Вы для каждого ресурса отдельную железку используете ? Ведь без проблем можно наговнокодить так, чтобы на такой же платке но с экраном показывалось столько ТОТРов, сколько на экран влезет + листалось.
Если авторизация по FIDO2 и U2F проходит то они не используют TOTP, там вообще ничего вводить не надо, только кнопкой подтвердить операцию.
Да не дай то бог :). Ну т.е. если, конечно ты подтверждаешь по схеме "вставил нужный ключ, подтвердил" - это ок, но так физических ключей не напастись.
Ещё нужно ввести ПИН и только в будущей прошивке 5.8 для новых партий Yubikey (она не обновляется) обещают один ввод кода без повторных запросов до извлечения.
А единственное известное мне место, где дают зарегистрировать FIDO2 без PIN - это 2FA к Google Account и то надо делать это из Линукса, так как в Windows невозможно обойти запрос от Windows Hello.
Проблема с TOTP, что такого функционала в PicoKeys по умолчанию нет. Через OpenSC не получится управлять. Только через свою платную утилиту.
Система видит, что ваш аппаратный ключ привязан еще и к другим, и вполне может расценить это, как попытку обойти ограничения. Так что они тоже могут быть забанены — настоящая катастрофа, потеря денег и репутации.
Не совсем понятно как сайт может банить по идентификаторам, если аттестация проверяет только модель по AAGUID, а не конкретное устройство.
Одна неназываемая рекламная площадка не то, что прям вот банит по идентификаторам - она считает сразу множество сигналов - от разрешения экрана, сборки браузера и часового пояса до пользовательских паттернов поведения. Так вот наличие одного и того же аппаратного ключа может являться одним из сигналов. Точных данных вам разумеется никто не сообщит, но если у вас на разных рекламных кабинетах аппаратные ключи разных моделей - это снижает шанс того, что их система "свяжет" друг с другом.
о если у вас на разных рекламных кабинетах аппаратные ключи разных моделей - это снижает шанс того, что их система "свяжет" друг с другом.
Как я уже ниже написал - непонятно, зачем вам тогда вообще аппаратность. Это, все же, не очень распространенный способ использования. Кроме парольных менеджеров, их можно завести там, где стандартно предлагают - в телефоне. Уж 'модель' ключа, которая c 'телефон' - вроде бы ну очень популярной будет, чтобы можно было хоть с кем-то связать.
EDIT: Только что проверил на https://tools.token2.com/fido2/info/, сайт отрыл не десктопе, passkeys создавал через QR на телефоне. Так при таком способе аттестация - вообще none получилась.
Хорошо бы металлический корпус и разъём не просто печатный, а нормальный с металлическим корпусом. Иначе: взяли в руку, втыкаем в разъём, прошёл разряд статики на линию данных... не все железки переживут. Да и разъём выламывается. А так разряд между корпусом и корпусом, вся электроника жива.
Попробую себе сделать - идея правильная.
Зачем использовать YubiKey для TOTP кодов? Можно, конечно, но зачем? Это безопасно с точки зрения хранения секретов в защищённой памяти, но по той же причине очень неудобно для обычного повседневного использования. Нужна резервная копия, а лучше несколько (несколько железок), ведь секреты извлечь невозможно. YubiKey в первую очередь нужен для FIDO2/passkeys. И не нужны никакие OTP коды вообще в этом случае. Ладно, вам в любом случае нужны несколько железок (3 и более), которые желательно хранить в разных надежных местах.
Это принципиально другой тип памяти, где играет роль не себестоимость каждого байта, а иная архитектура с жесткими требованиями к безопасности.
Если уж так упарываться по “безопасности” и что ключи могут “вытащить”. То можно взять обычную java карту (для банковских приложений) и апплет на java карте будет совсем не сложный для хранения TOTP ключа. Но это из серии “можно, а зачем”.
Плохо себе представлю ситуацию, когда кому то (после ареста например) вообще понадобится именно ключ, а разовый TOTP. Да и вообще криптоанализ ректально-термальным методом никто не отменял.
Авторы mooltipass так и сделали. Закриптовали все ключом. Сам ключ положили на смарт карту. Насколько я понимаю функционал "3 неверных ввода пина - удалить ключ" там вшит аппаратно (надеюсь).
Профит:
Базу паролей можно как угодно бэкапить без ключа бесполезно.
Ключ можно бжкапить физически, т.е. три карты скажем.
Термальный метод при определенной стойкости подозреваемого не поможет.
“3 неверных ввода пина - удалить ключ” там вшит аппаратно (надеюсь)
Поскольку активно занимался разработкой java апплетов (в том числе и EMV co платежного приложения) для javacard, то могу сказать, что нет. Все доступы к API работы с ключами на прикладном уровне апплета. В самом API работы с ключами нет понятия “предъявить PIN” (javacard.security.* и javacardx.crypto.*)
Для контроля PIN - расширения класса типа javacard.framework.OwnerPIN и прикладной код, олределяющий логику. При желании разработчика, можно и превышению предъявления PIN и ключи удалять конечно. Если так захочется.
Поскольку активно занимался разработкой java апплетов (в том числе и EMV co платежного приложения)
Воспользуюсь случаем и спрошу - а распространенные банковские карты - они Java или нет? В смысле - банки не добавляют туда приложение-авторизатор потому что не могут (чип не позволяет), или потому что им просто не хочется?
распространенные банковские карты - они Java или нет?
Практически все java карты. Так проще и дешевле (на массовом выпуске)
Native карты фактически умерли еще в 200x годах. Маску ПЗУ поменять дорого. Универсальные чипы все одно дешевле, а технологии уже не давят ограничениями на кристалл
MULTOS “умер” приблизительно в те же годы. Приватный. Лицензия как паровоз и не всех пускали.
Windows for SmartCard умерла толком не родившись в 2000году. Попытка MS влезть на рынок.
банки не добавляют туда приложение-авторизатор потому что не могут (чип не позволяет), или потому что им просто не хочется?
“можно, а зачем”? Действительно. А зачем им это? 2007-2010 - тема одноразового OTP кода на основе EMV 3DES ключа, продвигаемого MasterCard Ридер - похож на калькулятор с экранчиком и клавиатурой для off-line PIN. Питание типично от литиевой “таблетки”.
Почему то умерла. Не знаю почему. Могу только предположить
Патент МС (в Visa получается незя)
Доп лицензия на HSM и проблемы интеграции ДБО с процессингом или просто отдельная подсистема (+ еще один HSM)
Просто не понятно кто платить будет. пусть $20 за железку…
массовое появление смартфонов и SMS и push в ДБО приложения
Предполагаю, что п4. главный
а так то ничего сложно нет и специализированный апплет сделать. Но
На вашу банковскую карту его не загрузить (чаще всего это физически делают не возможно после персонализации. Да к то бы ключ персонализации отдал бы)
Купить java карту наверное можно. Не интересовался этим вопросом (штук сто семплов у меня валяется без дела).
есть карточки в продаже с клавиатурой и без (где TOTP секрет програмируется через NFC) https://www.token2.com/shop/category/classic-tokens https://www.token2.com/shop/category/multi-profile-programmable-tokens
Система видит, что ваш аппаратный ключ привязан еще и к другим, и вполне может расценить это, как попытку обойти ограничения. Так что они тоже могут быть забанены — настоящая катастрофа, потеря денег и репутации.
Так в FIDO специально заморочились чтобы сервер не мог сопоставить две регистрации друг с другом. Единственное, что он может сравнить – это сертификаты аттестации, но по официальным рекомендациям ключ для этих сертификатов должен шариться между партией в минимум 100000 устройств. Так что куда больше вероятность, что именно ваши аппаратные ключи вызовут больше подозрений. Впрочем, автор pico-fido тоже об этом не в курсе, видимо: https://github.com/polhenarejos/pico-fido/blob/f88784569c258a9f9aa8f0b6b5b7d8466a6419c2/src/fido/fido.c#L199-L201
Автор, а чем не понравился picoforge для управления ключом?
Автор, пост неплохой, хоть и забыл ссылку на гитхаб pico-keys, но автор пико уже "забросил" опен-сорс под сомнительной эгидой "enterprise".
Относительно недавно вышел open-souce форк pico-keys, который исправляет большинство косяков исходного проекта, и также переписан на rust (нормально переписан, с тестами, проверками защиты и нормальной документацией) https://github.com/TheMaxMur/RS-Key/
Я сам делал несколько пико-ключей, думаю этот проект взять погонять
А с atecc подобного нет?
Если эта прошивка сама не включает защищённую загрузку и не шьет фьюзы rp2350 при первом старте, то ваш "аппаратный ключ" клонируется за секунду простым picotool и удержанием кнопки boot.
Пускай клонируется. Ключи дома не покидают, а рекламные кабинеты клиентов меняются как перчатки. Речь не о том, чтобы достичь такого уровня "невскрываемости", а просто чтобы дёшево получить гору ключей для временного подключения 2FA.
Кнопка "запомнить пароль" помогает запомнить пароль кому угодно кроме того, кто её нажимает.
Ну вот, раньше у проекта было бесплатное веб приложение для конфигурации, а теперь его нет

Passkey без Apple, Google и облаков: делаем собственный аппаратный ключ за 4 евро