Как стать автором
Обновить

Карты, шлейфы, два чипа, или Аппаратный менеджер паролей для особых случаев

Время на прочтение8 мин
Количество просмотров4K
Всего голосов 15: ↑14 и ↓1+20
Комментарии15

Комментарии 15

Перезаписываемые Mifare-карты не так и сложно купить...

Погуглил - тут на хабре минимум два проекта подобных были, все так и осталось достоянием недр гитхаба. Еще несколько проектов у буржуев, но тоже все так себе, максимум на 3+...

Первая проблема, и она же диллема - что делать, если я потерял железку? Если бекапить, то автоматом обеспечить извлекаемость ключа, а значит потерял равно передал злоумышленнику. Если не бекапить - то потеря устройства либо пароля доступа к нему даст потерю доступа ко всему, что оно защищает... Упс. Решения не видел нигде.

Вторая проблема в юзабилити. Либо вязать догл с телефоном, но это небезопасно и неудобно. Либо мельчить кнопочки на устройстве, что опять неудобно... Про большое устройство я вообще молчу, нафиг-нафиг, еще одну дуру таскать. Тут нужен крутой спец по UI/UX, чтобы ответить на вопрос :)

что делать, если я потерял железку?
Если бекапить, то автоматом обеспечить извлекаемость ключа, а значит
потерял равно передал злоумышленнику. Если не бекапить - то потеря
устройства либо пароля доступа к нему даст потерю доступа ко всему, что
оно защищает... Упс. Решения не видел нигде.

Надо железку на основе Trezor Wallet. Криптокошелек с открытой реализацией. Если потеряли, то просто покупаете/сами паяете новый и вводите seed фразу от потерянного. Кстати, Trezor умеет выполнять функцию U2F ключа из коробки. FIDO2, к сожалению, не умеет. Так как все там опенсорсное, есть надежда, что кто-то забабахает поддержку всего вышеописанного в этой статье. Может даже сам автор. Ув. Андрей Захаров, обратите пожалуйста внимание, на мою идею.

Ключ не хранится в памяти устройства, а восстанавливается каждый раз при прикладывании карты и ввода пин-кода. Так что бэкапить вполне безопасно.

Что касается юзабилити, то действительно возможно сделать USB-донгл, которому телефон по Bluetooth будет отправлять пароль. Придется поколдовать с профилями, но это реализуемо. Ключ для расшифровки паролей может быть единым и храниться в условном Android Keystore. Будет ли это безопаснее? Это вопрос.

Вот, кстати, про юзабилити.

Периодически, сильно возниксет желание купить и использовать вместо пароля физический ключ. Забыл, как называется точно, в виде флешки. Программы его поддерживают. Вроде, в чем вопрос? А их у меня два.

Первый - насколько эти ключи надежные? Какова вероятность, что он, как нонейм флешка навернется? Что тогда делать? Бэкапов у них, насколько я знаю, не предусмотрено. Мне банк выдал такую штуку. Сказал заходить через него. Через пол года "что-то пошло не так, заходите через сайт с логином и паролем". Ок, так даже проще. Но показательно.

Второй вопрос - что на счет телефона? Если я пропишу в системе вход с ключом, то как быть при входе не с десктопа, а с телефона? Разъем есть, и есть переходник с usb a на usb c. Но что-то мне подсказывает, что ключик не сработает.

Не подскажите ответы на эти два вопроса?

Весь поддерживающий софт умеет работать с массивом открытых ключей, потому можно купить сразу хоть десяток донглов, все добавить, и положить в резерв. Потерял/сломал - отзови ключ, и всё.

Надежность высокая, у большинства что наших, что забугорных решений есть сертификации - их активно гоняют крупные компании, жалоб нет. Есть ключи с nfc - можно юзать на телефоне в том числе.

Использую рутокен для ssh и веба, очень удобно.

Спасибо. Посмотрю насчет nfc. Это, конечно, вариант.

рутокен mfa или какой-то другой? для ssh используете как второй фактор (или как-то ещё)?

Для ssh используется авторизация по ключам. Закрытый сидит в рутокене, открытый устанавливается на сервер. На лайте ключи извлекаемые, на более дорогих моделях - нет.

Для веба тоже клиентский серт и ключ, стандартная шняга, умеет любой браузер.

вот-вот, поэтому и спрашивал.
У меня MFA, там извлекаемый (и только ecdsa-sk, ed25519-sk не поддерживается).
подскажите, на какой модели можно неизвлекаемые держать?

Лучше всего S брать, они неизвлекаемые и их полно на озоне. Ну и их на предприятиях выдают на важные доступы. Отлично работает в линуксе и макоси, все пакеты и либы есть.

Вы, наверное, говорите про USB-токены FIDO U2F, которые горстями продают на AliExpress? Они позволяют входить на веб-сайты с использованием протокола Webauthn. Его много кто сейчас поддерживает. Но с этими токенами существует две проблемы. Если потеряете, то кто угодно сможет воспользоваться сохраненным в памяти ключом, поскольку верификации пользователя в большинстве случаев не предусмотрено. Второй момент — если девайс навернется, то придется покупать новый и генерить новую ключевую пару, а до этого понадобится как-то подтвердить подлинность. Хотя вряд ли вы столкнетесь со второй проблемой.


Чтобы не связываться с носимыми устройствами, придумали технологию Passkey, которая позволяет хранить и синхронизировать ключи между несколькими вашими устройствами (в основном — внутри одной экосистемы). То есть можно входить на один и тот же ресурс хоть с ноутбука, хоть с телефона.

То есть можно входить на один и тот же ресурс хоть с ноутбука, хоть с телефона.

Хоть прямо из ближайшего к вам офиса Гугла. Очень удобно и безопасно. Вдруг, вы в плохое место ходите, тут сотрудник вам подставит плечо

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

Честно говоря, если уже надо запоминать пин-код, то проще взять какой-нибудь KDF и создавать пароль из него каждый раз. Нужной длины можно добиться обрезанием, а нужного набора символов умелым преобразованием base32/64.

Идея заполнить пустые пароли мусором не сильно увеличивает безопасность. Пароли состоят из определённого набора символов. Отличить удачный подбор от неудачного — легко.

Лучший подход, из тех что я видел — паролькарты. Комбинирует сразу два фактора, поддерживает хорошие бекапы, бесконечное количество паролей и ничего не хранится в интернете. Пасует лишь перед терморектальным криптоанализом, но перед ним пасуют и все остальные методы.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий