Серия Disclaimer'ов
Общий дисклеймер

- Публикация предназначена для просмотра с устройства под управлением клавиатуры. Настоятельно рекомендуется подключить мышь или использовать тачпад;
- Это одна из первых статей автора на подобных площадках, хотя он конкретно с Хабром официально связан с 2014 года, по факту - с 2012 г.;
- Стиль изложения автора состоит из:
    - Академический, ввиду 10+ лет стажа в образовательно-научной академическо-РАНимой среде педагогическо-студенческих отношений;
    - Двачёво-лурко-постиронично-стёбный, ввиду 10+ лет обитания в нижнем сегменте Рунета;
    - Адекватный (редко, почти никогда).
- Официально подтвержденным уровнем интеллекта автора является IQ 38. Просьба учесть данный аспект при реакции на материал, прежде чем перейти к обвинениям или оскорблениям;
- Статья скорее всего является для вас бесполезной, так как по факту это результат графоманства автора.

О личности автора

- Ввиду крайней степени инфантильности автор отказывается от ответственности за содержимое статьи, вашу реакцию на неё, её отдельные части и словообразования, а также не является аффилированным лицом ни в какой степени к упоминаемым в статье терминам;

- Автор вежливо предлагает перестать читать статью при появлении первых признаков жжения в районе пятой точки у читателя;

- В случае с полным прочтением статьи и вызванными эффектами из пункта выше, автор чуть менее вежливо предлагает съездить по заданным координатам (https://goo.gl/maps/Q6PudQ3aBTfV9PuL7).

Соглашения по статье

Отказ от ответственности

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

С уважением, мнимым или настоящим,
Кеня

Дисклеймер, применяемый к данному материалу

Автор гарантирует, что основной текст работы, равно как и его части, не написан ChatGPT или иными продуктами на основе машинного обучения. Гарантия не распространяется на обложки, исходный код, примеры генерации текста, заголовки, спойлеры, сноски, подписи, надписи, вписи, табличные, графические, звуковые и иные материалы, включенные в состав, или являющиеся ссылками в тексте работы.

TL;DR

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

Аннотация

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

Ведение

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

"Двухфакторка" ныне доступна почти повсеместно. Она покрывает, по субъективным ощущениям, более 0.0001% веб-сервисов в мире, а среди популярных (юзербаза которых, судя по последним сливам, считается от 10-100 млн. учетных записей) веб-сайтов её доля доходит до 99%. В любой (около)айтишной веб-системе 2FA является стандартом, а MFA - желанной фичёй, которая явно присутствует и обозначена  - сужу по себе - лишь в провайдерах авторизации Microsoft и Amazon.

Абсолютное большинство сервисов поддерживает двухфакторную аутентификацию на основе различных вариаций метода OTP (One-Time-Passcode). Его суть в следующем:
После ввода пароля вы вводите также одноразовый код, который генерируется по какой-либо функции (заранее обговорённой между сервисом и производителем токена-фактора), и возможно, синхронизируемый с сервисом по времени. Или отсчитывающий секунды от 1970 года (TOTP вроде так работает, см. RFC 6238). Грубо говоря, в банду OTP можно вписать и SMS, и телефонный звонок с кодом, и хардварные токены (коим может быть и знаменитый Flipper Zero), и маятник Фуко, и фаза Луны, если вы считаете гелиоцентрическую солнечную систему за нечто надёжное... до первого пролёта Нибиру.

Но мы имеем в виду именно классический TOTP, реализованный программно в виде приложения. Да, те самые шесть циферок, которые мы вводим в форму аутентификации или, упаси Б-же, авторизации. Наверняка у некоторых людей стоит приложение, в котором собраны токены к нескольким (сотням) сервисов. Таким приложением может быть KeePass (туториал), Microsoft Authenticator или Authy.

Проблема

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

Вы подумаете, что: "Ну, вот, в данном приложении есть какие то эксклюзивные функции, которых нет в открытых аналогах? Круто же!", - и будете неправы. Ну, почти. Вы, возможно, перейдете на страницу документации и посмотрите возможности этого приложения, в частности, на каком особенном таком алгоритме оно работает. Под простыней текста, рекламирующего преимущества и функциоанал этого приложения, в кратком FAQ серым шрифтом 8pt на дисплее с 1488ppi и кастомным 146% масштабом вы найдёте... всё тот же TOTP. Вы начнёте вопрошать: "Но как же?! Наверняка это приложение должно быть каким то особенным, ведь не зря какой-нибудь русский Яндекс славится своей математической школой, ведь так? Они должны были придумать особый алгоритм для особого приложения! Не зря ведь в Контур сделал своё приложение - может, в нём действительно используются какие-то особые ФСБ-approved bottle-алгоритмы, устойчивые к атакам ребят с американским светлокожим геномом?".

И будете неправы. Нет в этом особенном эксклюзивном приложении ни фига. Оно реализует простейший TOTP. Разрабы тупо юзнули библиотеку, реализующую данную методику и RFC, и импортировали в приложение. Опять же, сужу по себе, никого не обвиняя.

Казалось бы, ничего страшного. "Раз практически любое 2FA-приложение из магазина поддерживает TOTP, то я могу подцепить двухфакторку к этому строптивому сервису, сующему своё фирменное приложение!" - и, опять же, будете неправы как минимум в половине случаев. Дело в том, что 2FA можно включить... лишь установив их фирменное приложение и залогинившись в их аккаунт. Я смотрю на тебя, Яндекс! Как так было позволено менджменту дорваться до вендор-лока открытого и весьма недевственного стандарта?

Кого казнить?

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

- Яндекс
- Контур
- Authy
- Blizzard
- Steam
- Binance*
- Whatsapp*
- Telegram*
- Discord*
* процесс аутентификации встроен в основное приложение

И список сервисов, которые живут в XXI веке и толерантно относятся к TOTP, который можно привязать к стороннему приложению:

- Госуслуги (вот вам смешно, но так и есть... простите за ссылку на ТГ)
- VK.com
- Экстремисты из ФБ*
- Террористы из Messenger*
- Просто не очень натуралы из Google
- Нормальные индийские ребята из Microsoft
- Dungeon main'ы из их же дочернего GitHub
- PayPal, Interkassa и т. д.
- Adobe (и Figma)
- Amazon
- Angel list
- Atlassian
- Autodesk
- Reddit
- DigitalOcean
- Dropbox
- Docker Hub
- EA, Ubisoft, EGS и прочие игровые платформы
- Практически любой VDS/VPS-провайдер
* заблокированы по решению Роскомнадзора

И так далее, и тому подобное. В общем, список выйдет очень длинный, мне лень писать весь, лучше смотрите актуальный здесь.

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

Не всё так плохо (спойлер: нет)?

Справедливости ради, есть некоторый смысл ограничивать пользователя в способе аутентификации. Обычно подобные инициативы инициализируются, собственно, ради пресловутого "всеобщего блага на благо всего общего":

 - Почти всегда добавляется поддержка Push-уведомлений в приложение-ключ. В процессе аутентификации пользователю достаточно приложить палец на кнопку "Утвердить вход", и затем, как правило, приложить какой-либо из 21 пальца в сканер отпечатков. Или посветить лицом в камеру;

- Вытекает из предыдущего пункта: упрощение процесса входа в сервис. Юзеру не придется переключаться на отдельное приложение и переписывать 6-7-8-значный код, ему надо лишь разблокировать свое мобильное устройство и приложить пресловутый 8-сантиметровый палец;

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

А теперь перейдем к минусам, которые касаются нас всех (говорю за себя):

- Невозможность включить и эксплуатировать 2FA, не используя стороннее приложение. Например, я хочу внести коды TOTP всех сервисов в приложение Authy. Ребята из "расстрельного списка" не дадут мне это сделать. Пусть даже их фирменное приложение совместимо вплоть бинарного уровня с любым стандартом TOTP - сервис тупо не позволит его подключить на стороннем приложении;

- Этот пункт косвенно происходит из первого. Если кратко: ПК за бортом. Как правило, их фирменные эксклюзивные приложения-ключи выходят всего лишь на двух платформах. А если я использую сервис ключей Authy или аунтентификатор на PWA, которые имеют в том числе клиент на ПК? Шиш мне, скажет Яндекс. У меня не всегда есть смартфон в кармане, и я могу обходиться без него даже более двух часов! В таком случае мне намного удобнее логиниться в сервис на ПК и на ПК же посмотреть сгенерированный токен. Принцип "двухфакторки" при этом не нарушается;

- Более утилитарный минус - фирменные приложения-ключи из "расстрельного списка" кушают. Они потребляют заряд аккумулятора устройства на работу в фоне и крадут какой-то процент процессорного времени, не говоря уже о занятом адресном пространстве в постоянной памяти. Этот довод может быть ключевым, если вы будете выбирать между фирменным приложением и каким-то своим вариантом.

Что предлагаем?

Всем командам разработчиков "расстрельного списка"! Предлагаю компромисс на условиях анонимного раскаяния и последовательного выполнения следующих предложений моего ультиматума:

1. Разрешить пользователям подключать сторонние 2FA-клиенты;

2. Реализовать TOTP, если его нет в методах входа в ваш сервис;

3. В качестве компромисса разрешаю продвигать своё фирменное приложение как основной метод аутентификации по TOTP, но позволять использовать коды на сторонних приложениях.

Просьба рассматривать данный компромисс как открытое письмо. Это всё, что я хотел. Несбыточная ли это мечта?

Ведь получится ровно, как реализовано, например, в Microsoft, Google или у цукерберговских экстремистов. У них есть собственные решения для 2FA, но они не ограничивают пользователя в выборе способа. У них не обвалился бизнес, не ухудшилась аналитика. Почему же нельзя сделать, как у них?

Что будет?

Если же тенденция переноса методов аутентификации на фирменные приложение продолжится, то получится примерно так, только количество приложений на экране будет в десять раз больше:

Мопед не мой, но как пример скриншот со смартфона среднего ИПшника

Сейчас всего лишь десяток приложений, но дальше ком начнёт расти, и, возможно, минимум 50% приложений в смартфоне и на ПК будут эти самые фирменные "ключи". Пугает, правда?

Выводы и заключение

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

Мем

Комментарии (65)


  1. MountainGoat
    00.00.0000 00:00
    +5

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


    1. gudvinr
      00.00.0000 00:00
      +1

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


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


      1. morijndael
        00.00.0000 00:00

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

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


    1. getmancar
      00.00.0000 00:00
      +2

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

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


    1. Tarakanator
      00.00.0000 00:00
      +2

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


      1. Kenya-West Автор
        00.00.0000 00:00
        +1

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


    1. BoberMod
      00.00.0000 00:00

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

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

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


  1. truthseeker
    00.00.0000 00:00

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

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


    1. up40k
      00.00.0000 00:00

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


      1. Heggi
        00.00.0000 00:00

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


  1. LeshaRB
    00.00.0000 00:00
    +2

    Поставил Authenticator Pro

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

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

    Gmail.com

    Yandex.ru

    Mail.ru

    LinkedIn.com

    GitHub.com


  1. Vaitek
    00.00.0000 00:00
    +9

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

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


  1. zartdinov
    00.00.0000 00:00
    +2

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

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


    1. inkelyad
      00.00.0000 00:00

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

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

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

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


      1. aigoncharov
        00.00.0000 00:00
        -1

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


        1. inkelyad
          00.00.0000 00:00

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

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


          1. Stam_emg
            00.00.0000 00:00

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

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

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


  1. psi_lion
    00.00.0000 00:00
    +4

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


    1. Stam_emg
      00.00.0000 00:00

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


  1. biff_33
    00.00.0000 00:00
    +11

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


    1. Aelliari
      00.00.0000 00:00
      +3

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


      1. AEP
        00.00.0000 00:00

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


    1. DivoTech
      00.00.0000 00:00
      +2

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

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


    1. DivoTech
      00.00.0000 00:00

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


  1. aborouhin
    00.00.0000 00:00
    +5

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

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


    1. gudvinr
      00.00.0000 00:00
      +2

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

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


    1. Dhowti
      00.00.0000 00:00

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

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


    1. Kenya-West Автор
      00.00.0000 00:00

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


  1. Myateznik
    00.00.0000 00:00
    +5

    Вообще давайте будем откровенны 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 может стать просто на просто резервным способом (как одноразовые коды на бумажке) на случай потери доступа к материалам ключей (хотя они ведь будут синхронизироваться).


  1. modelair
    00.00.0000 00:00

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

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


    1. acsent1
      00.00.0000 00:00

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


      1. modelair
        00.00.0000 00:00

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


    1. Heggi
      00.00.0000 00:00

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


  1. lgorSL
    00.00.0000 00:00
    +6

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


    1. WhiteApfel
      00.00.0000 00:00

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

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


    1. DivoTech
      00.00.0000 00:00
      +1

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


  1. 2er6e1
    00.00.0000 00:00

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

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


    1. taujavarob
      00.00.0000 00:00

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

      Не иначе.

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


  1. AndreyYu
    00.00.0000 00:00
    +1

    Discord, binance работают через гугловый ауфеетикатор


  1. AEP
    00.00.0000 00:00

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


    1. Heggi
      00.00.0000 00:00
      +2

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


  1. Vlad_BY23
    00.00.0000 00:00

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

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


    1. Kenya-West Автор
      00.00.0000 00:00
      +1

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

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

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

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

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


  1. 13werwolf13
    00.00.0000 00:00

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

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

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


  1. ulovka22
    00.00.0000 00:00

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


  1. WhiteApfel
    00.00.0000 00:00

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


  1. Vladekk
    00.00.0000 00:00

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


  1. BoberMod
    00.00.0000 00:00

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


  1. uis246
    00.00.0000 00:00

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


  1. Didimus
    00.00.0000 00:00

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


    1. inkelyad
      00.00.0000 00:00

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


      1. Didimus
        00.00.0000 00:00

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


        1. inkelyad
          00.00.0000 00:00

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


          1. Didimus
            00.00.0000 00:00

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


  1. uis246
    00.00.0000 00:00

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


    1. inkelyad
      00.00.0000 00:00

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


      1. uis246
        00.00.0000 00:00

        Если что, это другой FIDO)


        1. inkelyad
          00.00.0000 00:00

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

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


  1. vsantonov
    00.00.0000 00:00

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


  1. taujavarob
    00.00.0000 00:00

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

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

    Это как?

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

    Это зачем?


    1. uis246
      00.00.0000 00:00
      +1

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


    1. ivegner
      00.00.0000 00:00

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

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

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

      Your mileage may vary.


      1. taujavarob
        00.00.0000 00:00

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

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

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


        1. ivegner
          00.00.0000 00:00

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

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

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


          1. taujavarob
            00.00.0000 00:00

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

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

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

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

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