Pull to refresh

Comments 67

Steam поддерживает 2FA по почте, Blizzard поддерживал летом, сейчас не знаю. В списке остаются в основном только сервисы, где по-любому пользователь будет использовать приложение. Ну и Яндекс, который во всех поганых списках на первое место лезет, нагло отпихивая mail.ru. Так что тенденции не вижу.

Яндекс хоть и предлагает вендор-лок, но в отличие от некоторых других из списка, их аутентификатор умеет в обычный TOTP и к счастью, не встроен в приложение-комбайн


При этом Google, которые обозначены в "толерантном" списке, агрессивно продвигают свой аутентификатор через смартфоны. Раньше его можно было не включать, сейчас выключить нельзя (для безопасности, конечно же) если к аккаунту привязан смартфон.
А чтобы войти через TOTP, надо специально выбрать его в списке "альтернативных методов", но при этом пингануть телефон они не забудут прямо сразу.

Яндекс хоть и предлагает вендор-лок, но в отличие от некоторых других из списка, их аутентификатор умеет в обычный TOTP и к счастью, не встроен в приложение-комбайн

Это терпимо ровно до тех пор, пока у вас не появится второй/третий/десятый такой «Яндекс» :D

В списке остаются в основном только сервисы, где по-любому пользователь будет использовать приложение.

Discord, использую только в браузере, сегодня без проблем включил 2FA через TOTP в KeePassXC.

steam 2fa по почте?
И восстановление пароля по почте?
Тогда какой это 2fa, если залогинится можно имея только почту?

Согласен. Это скорее не "Two-factor authentication", а "Two-step authentication"

У стима по почте не 2ФА. А сам 2ФА можно привязать к битвардену, например, но с небольшими танцами и бубном.

Стим ввел 2ФА в 2015 году, если не раньше, и он используется не только для входа в аккаунт, но и для подтверждения действий, вроде трейдов и выставление лотов на маркет.

И у стима процесс аутентификации встроен в основное приложение.

ЕМНИП, для Blizzard ранее можно было выцарапать секрет OTP с помощью https://github.com/jleclanche/python-bna и добавить его в тот же Keepass. Давно проверял это дело, пару лет назад, тогда оно точно работало.

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

Для Steam тоже можно, используя SDA, и добавить в Bitwarden.

Я добавлял еще и в keepass. Но там какой-то невероятный квест был с офф приложением, SDA и гуглом

Поставил Authenticator Pro

https://github.com/jamie-mh/AuthenticatorPro

Сейчас у меня в одном месте

Gmail.com

Yandex.ru

Mail.ru

LinkedIn.com

GitHub.com

Пару раз пытался включить 2FA у Яндекса и каждый раз он отказывался работать с кодами от своего же приложения. С Гугл и МС я проблем не испытываю, непонятно почему так.

П.С. за 2FA к госуслугам - спасибо!

Нет, давайте лучше вместо TOTP обязательным пусть будет U2F, чтобы было проще с помощью аппаратных ключей заходить.

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

Заменять все эти OTP на Webauthn/Passkeys - это да, уже пора.

Но идея аппаратных ключей почему-то не приживается. Хотя оно вполне соответствует привычкам из реального мира (ключ от квартиры, где деньги лежат)

И они до сих пор почему-то дорогие. Хотя такие же по смыслу чипы в виде банковских и SIM карт - бесплатно выдают и гугломикрософты+банки могли бы просто сделать так, чтобы в каждом супермаркете лежали USB токены доступа.

Такое ощущение, что их внедрению активно противодействуют.

Квартиру легко открыть при потере ключа взывав мастера. Как дела обстоят с хардварными электронными ключами?

Точно так же, как случайно булькнуть что-то нужное в океан или реку. Потерял, значит, потерял. Да и вообще полно физических объектов теряются и портятся безвозвратно. (Квартира, скажем, сгореть может). Так что с этой стороны никаких дополнительных привычек не надо.

И никто не мешает (если сервис адекватный) иметь несколько ключей и разные средства восстановления вроде бумажки с резервным кодом в сейфе/на полке.

вот да. по стандарту, когда создается 2фа с отп или с ключом, во время процедуры создается пачка кодов для резкрвного входа, на случай если надо будет зайти без отп/ключа или для его сброса.

это обязанность на стороне пользователя. не сберег/потерял коды - ссзб.

как бы, по аналогии, если потерял ключи от квартиры - тебе надо доказать на ее вскрытии что ей владеешь (договор на квартиру/дарения/етс).

А что не так с 2FA у дискорда? У них вполне себе есть возможность добавить внешнее TOTP приложение.

подтверждаю, дискорд давно в authy живет

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

Но totp сам по себе не требует номера телефона, хотя некоторые упоротые не дают возможность установки 2fa без привязки номера

Не обязательно упоротые, а заботящиеся о наличии ДВУХ методов 2FA. Если телефон с приложением потеряется, то человек восстановит симку на тот же номер и получит SMS-ку с кодом. По e-mail такой код высылать нельзя, поскольку этот способ доставки уже, как правило, занят для сброса пароля - т.е. получится 1FA.

"добавьте телефон, чтобы защитить ваши данные"

- А можно я не буду вам отправлять свои персональные данные, тогда и зищать ничего не нужно будет?
- Нет

Да уж, мало кто об этом говорит, но необходимость везде указывать свой номер — проблема бОльшая, чем описанная автором

Не понимаю, что в списке провинившихся делает Authy, который сам - TOTP-совместимый authenticator, и я ровно им для всех сервисов и пользуюсь. Очень удобно, настроил на нескольких устройствах, и не переживаешь, что с утратой единственного смартфона 2FA накроется...

Так что у меня в списке нарушителей только Яндекс (Steam, Blizzard и Контур не использую). Ну и шут с ним, переживу. Гораздо больше хотелось бы, чтобы банки научились не только СМСками / пушами подтверждение входа / операций делать, а и с помощью TOTP тоже. Но это уже мечты совершенно неисполнимые.

Так что у меня в списке нарушителей только Яндекс

Так-то яндекс ключ — это тоже "TOTP-совместимый authenticator"

Не понимаю, что в списке провинившихся делает Authy, который сам - TOTP-совместимый authenticator, и я ровно им для всех сервисов и пользуюсь.

Там же чтобы подключиться на новом устройстве, нужно подтверждение на старом в приложении. Ну, или смс. Хотя по мне так в данном случае нормальное схема, не держать же ради такого еще один аутентификатор.

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

Вообще давайте будем откровенны TOTP (RFC 6238 - май 2011) само по себе является расширением HOTP (RFC 4226 - декабрь 2005), которое просто заменяет инкрементируемый счётчик на временные интервалы (тот же счётчик, только автоматически инкрементируемый в соответствии с временем).

Сама суть HOTP/TOTP в том, что мы просто на просто хешируем счетчик с применением секрета, причём да изначально речь ведётся относительно HMAC-SHA1 и базово библиотеки/приложения HOTP/TOTP реализуют именно его (ну может +SHA256, если повезёт), однако допустимо использование HMAC-SHA256/HMAC-SHA512 да в целом любых HMAC-* хоть HMAC-SHA3-256. Т.е. уже один TOTP другому TOTP рознь как минимум из-за того, что можно менять алгоритм хеширования при сохранении общих принципов.

Далее у нас во всей этой теме с генерацией одноразового кода присутствует секрет, а им нужно обменяться! В простом случае этот секрет просто закодирован в base64 в uri в QR коде. А что если можно поделиться секретом более безопасно, даже явно не раскрывая секрета? Например, можно использовать ECDH с эфемерными ключами - всего две временные пары ключей, в открытую передаются только открытые части, но по результату у обеих сторон есть секрет.

А ещё можно сам одноразовый код отправлять, либо как уже упомянуто по клику на PUSH уведомление (на соответствующую сессионную ссылку из метаданных пуша) или эту ссылку можно ещё показать пользователю в виде QR кода (кстати, а вот и подход Яндекса).

А ещё самое банальное при всей совместимости и базовой реализации - не все приложения базово поддерживающие TOTP умеют в отличные от 6 значений коды, или даже в буквенные коды. (Ладно буквенные коды будем считать расширением, но возможность генерить коды более 6 знаков заложена ещё в HOTP, главное влезть динамическим окном в размерность хеша).

Так вот это к чему я, своё приложение это возможность поменять алгоритм хеширования (даже на экзотический) и/или поменять/обезопасить обмен секретом, а может даже облегчить жизнь пользователю, самостоятельно отправляя одноразовый код на сессионную ссылку из QR. И в определённых случаях это имеет достаточный смысл (сделать явно не как у всех - HMAC-SHA1/256 + QR с секретом).

А на счёт Whatsapp, Telegram - там OTP, но не TOTP/HOTP. У Google Messenger кстати тоже QR код с временным одноразовым значением, но он не для авторизации в аккаунте, а для пеиринга устройств во внутреннем pubsub.

Кстати на счёт Google, да TOTP на доп. факторе у них вполне стандартный, но Google точно так же как Яндекс экспериментирует с собственными транспортами для уже Passkeys (раньше Secure key). TOTP в данном случае уже не так интересен, особенно когда есть по свежее и по интереснее подход полностью на ключах.

А вообще конечно с развитием FIDO/WebAuthn и формированием Passkeys вот этот TOTP может стать просто на просто резервным способом (как одноразовые коды на бумажке) на случай потери доступа к материалам ключей (хотя они ведь будут синхронизироваться).

Не понимаю, почему до сих пор не ввели OTP в браузерах, как это сделали в Safari.

Никакие приложение не нужны от слова "совсем".

На мобильном все-таки удобнее отдельное приложение

позвольте спросить: чем? браузер все делает сам, что в мобильном, что в настольном

Не всегда OTP используется на вебсайтах. Еще в отдельных приложениях (тот же дискорд, стим и т.п.)

Мне кажется, подавляющему количеству сервисов ТОТР в принципе не нужен. Я могу понять, когда какой-то продукт связан с деньгами или чем-то критично важным, в остальных случаях - нет.

Ага. Ещё на Google, потому что через него вход во многие штуки у людей. На Github/Gitlab/NPM/PyPi/other, потому что защита исходного кода от добавления уяззвимостей. В Microsoft, чтобы человек с твоей привязанной карты не списал деньги за аренду k8s хостинга.

Чуть подумать -- и защита может понадобиться везде. Но, конечно же, можно клеить пост с паролем q1w2e3r4t5 в закреп вк

В продуктах, связанных с деньгами, люди чаще страдают не от взлома, а от действий компаний, которым доверили эти деньги. Вот лишь несколько примеров:
- киви увели со счёта себе половину депозита за отсутствие операций в течении года
- тинёк не напомнил об окончании периода овердрафта и "заработал" штраф в свою пользу
- пионер занизил курс конвертации валюты и оставил себе лишних процентов 10
В общем, всё это лишь театр безопасности

Можно было бы применять схему аутентификации, когда клиент посылает смс и сам проверяет совпадение. Почему так ещё не делают?

Это решает проблему стоимости развития сервиса - клиент сам несёт расходы.

Это интересный вопрос. Надо бы вам запатентовала его.

Не иначе.

Программа генерирует код (число) а пользователь отсылает его по смс. На сервере и происходит проверка.

через любой аунттефикатор

Некоторые нероссийские банки тоже грешат своими нестандартными аутентикаторами. Но причина проста: развелось много "небезопасных" или даже "вредоносных" TOTP-приложений, которые работают, но разрешают себя заскриншотить (и соответственно слить код налево, если на телефоне троян, который эти скриншоты делает), забекапить (с последующей утечкой), или другим образом потерять гарантию, что единственный человек, который может ввести код - это законный владелец.

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

Кто пользуется днищем под названием яндекс ? У них единственное нормальное приложение такси - было (сценарий: живу в беларуси на работу Яндекс стабильно заламывает больше 10 рублей, хотя местный Maxim фиксированно за 5.5 возит), про перегруженный всяким хламом браузер молчу, как и реклама этого браузера из всех щелей.

Google - наше всё (300 паролей в 1 браузере), удобно четко и лаконично.

Наполовину согласен, но с Яндексом приходится иметь дело не только как физлицо, но и потому, что:

  • У вас есть корпоративная почта Яндекса

  • Ваш(ы) веб-сайт(ы) в ру-сегменте обязательно используют Яндекс.Метрику, Яндекс.Рекламу, Яндекс.Карты, Яндекс.Яндекс и еще какие-нибудь их сервисы. И от них не избавиться, с ними придется жить.

Google - наше всё (300 паролей в 1 браузере), удобно четко и лаконично.

У меня аналогично, но с Microsoft - 2000+ паролей в аккаунте. Душа не нарадуется. А уж как ни нарадуются мои личные АНБшники...

Лучшее что я прочитал за последние n дней, автор спасибо. Во многом согласен.
НО хочется внести и свои 5 копеек:

  1. keepassxc умеет в steam totp (пруф на скрине ниже) вот только не понятно как без рутовых прав на смартфоне вытащить нужный ключик..

  2. госуслуги умеют конечно в totp, но что в этом толку если рекавери кейс они не дают, а без них рекавери через смс или email (ну я так полагаю) это очередная дыра в безопасности (ну хоть что-то у них в безопасности) и претензия кстати эта не только к госуслугам.

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

Меня тоже достал Яндекс своей моделью один-девайс-для-авторизации. Написал либу https://github.com/WhiteApfel/pyYaOTP и запилил несколько точек получения доступа к генератору

Согласен. Меня лично бесят IBKR и RSA SecurId, который используют многие компании. Ну и локальная эстонская какашка SmartID

В расстрельном списке есть Authy, но я что-то не понимаю, где они заставляют кого-либо что-то юзать.

У STEAM алгоритм вроде отличается. По крайней мере так говорят разработчики открытого(принят в f-droid) andOTP.

Есть у меня Микрософт аутентификатор. Хотел зайти в профиль на новом устройстве, пароль, само собой, не помню. Выбираю вариант через аутентификатор, а он разлогинился! Надо восстанавливать/сбрасывать пароль. Вот и зачем оно такое, чуднОе?

Так правильно же, если речь идет о 2FA? Два фактора. Первый - ключ в аутентификаторе И пароль, чтобы его расшифровать.

Пароль там через фэйсайди или ещё как-то. Ситуация такая, что он ключ потерял.

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

Так это и есть способ восстановления вместо кода из СМС. Он должен был на втором устройстве отобразить этот код. Но вместо этого он сказал "введи логин/пароль и можно начать работу!"

Вопрос: есть стандарты 2FA с открытым ключом?

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

Зашифрованный -- более-менее да. Особенно если лежит внутри токена и его оттуда вытащить нельзя. Потому что непригоден для авторизации без пина/пароля расшифровки.

Если шифрование удалось снять и ключ утащить - то уже нет.

Это вас еще не заставили на работе 3FA использовать, с аппаратным ключом который нужно не просто вставить в комп, но и приложить к нему палец во время аутентификации.

Я не понял смысла статьи.

Автор хочет иметь одно приложение для 2FA, но при этом не пользоваться (не ставить себе на смартфон) теми многими сервисами (приложениями), для которых он очень иметь одно приложение для 2FA.

Это как?

Типа хочу НЕ устанавливать приложение telegram, но хочу для этого НЕ установленного приложения иметь стороннее (одно) приложение для 2FA?

Это зачем?

Может потому что существуют настольные компьютеры и ноутбуки

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

Благо у банка есть отдельное приложение для аутентификации, которое собственно ничего другого не делает, благодаря чему весит не так много, как полноценное банковское приложение.

Но если бы вместо этого отдельного приложения я мог бы просто загрузить секретный ключ в KeePass / 1Password, это было бы ещё лучше.

Your mileage may vary.

Согласен. С вашим примером. Такое может быть. Раз или два. Или три.

Хотя я пользуюсь приложением от банка, потому что им можно пользоватеться в любой точке мира независимо от наличия ноутбука.

Но таких приложений раз два и обчёлся, что вы привели. Даже не наберётся больше чем пальцев на одной руки. Наверное.

Насколько я понял посыл автора статьи, его опыт состоял в том, что их было больше, чем пальцев на двух руках.

Кроме того, опять же, у каждого свои привычки касательно смартфонов. Я сейчас пользуюсь телефоном 5-летней свежести, и поставить на него ещё одно очередное приложение — это нет-нет. И я не готов покупать новый телефон только потому, что где-то кто-то в своём дорогом офисе решил, что я стану к их компании лояльнее, если вместо токена в менеджере паролей у меня на телефоне будет очередная копия электрона.

Если же для кого-то поставить ещё одно очередное не составляет проблемы... Что ж, может, люди в дорогом офисе не зря получают свои зарплаты. Наверное.

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

Но скажите мне - почему он использует столько разных программ вообще? - разве не лучше было бы совместить все мессенджеры в один, все банковские приложения от разных банков в одно, а ещё лучше и мессенджеры и банки и что там ещё? - всё в одно место, в одно приложение? - и назвать его суперпупершвейцарскийнож? Или более кратко - WeChat?

Вспомнил как лет так 20 назад в Беларуси внедрили пластиковые карточки системы "Белкарт". Карточки были умные, имели чип на карте, в котором было аж 4 "кошелька" (для разных валют, счетов) и позволяли работать в оффлайн, а также использоваться как пропуск на работу и для открывания дверей.

В те времена на Западе нашёлся один эксперты который очень рекомендовал иметь одну карту для всего, чем много карт для всего. Он писал статьи об этом. Писал до тех пор пока не потерял эту карту. И вмиг лишился доступа и к банковским счетам и в офис и в квартиру. И только тогда он переменил своё мнение. О пластиковые картах.

А как же Белкарт? Они перешли на обычные пластиковые карточки с магнитной полосой. Почему? - Стоимость смарт-карт с 4 "кошельками" составляла 5$, а пластиковых карт с магнитной полосой 0,5$ - то есть 50 центов. Победила экономика.

Про adobe. При отключении 2FA и для новых аккаунтов видимо тоже, только фирменное приложение.

Sign up to leave a comment.

Articles