Х/ф "Пираты Карибского моря"
Х/ф "Пираты Карибского моря"

Скорую «смерть» паролей предрекают уже больше 10 лет, их не любил даже Билл Гейтс. Однако мы и сейчас продолжаем использовать пароли настолько часто, что быстро отказаться от них не получится. Несмотря на это, впереди уже проглядывается будущее, в котором заходить в любой сервис можно будет, например, с помощью отпечатка пальца или скана лица. А пароли навсегда уйдут в прошлое. О том, насколько мы уже приблизились к этому времени, читайте ниже.

Меня зовут Андрей Говоровский, я лидирую группы продуктовой разработки VK ID в департаменте экосистемных сервисов VK. Мы активно внедряем решения в сфере беспарольной авторизации с 2022 года, сейчас работаем над интеграцией технологии Passkey в VK ID. Мы готовы поделиться своим опытом, но для начала расскажем о главном — зачем беспарольный вход вообще нужен как пользователю, так и бизнесу.

Чтобы ваш пароль был надёжным, он должен быть сложным. В марте 2023 года ИБ-компания Hive Systems подсчитала, сколько времени потребуется хакеру, чтобы брутфорсом подобрать пароль от аккаунта в зависимости от его сложности. Аналитики выяснили, что относительно высокий уровень безопасности обеспечивает пароль из 11 букв и чисел различного регистра — на его взлом потребуются три года. А если в нём будут ещё и спецсимволы, то 34 года.

Однако запоминать такие сложные пароли пользователю неудобно. Человек начинает записывать особо ценные пароли у себя в заметках или на бумаге, после чего теряет их. Или же пользователь использует одни и те же пароли на разных сервисах. По данным совместного исследования VK и GeekBrains, треть опрошенных россиян используют для защиты учётных записей один пароль, состоящий из памятных дат и имён. И это несмотря на то, что большинство из них знает, что использование одного и того же пароля может быть опасно. Чем чаще они так делают, тем выше вероятность, что с одного из ресурсов пароль утечёт.

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

Как появился беспарольный вход

Первая версия беспарольной аутентификации появилась еще в 1980-е — это были one-time passwords (OTP), одноразовые пароли, которые хранятся на физических носителях. В конце 1990-х была представлена технология единого входа — single sign-on (SSO). Этот метод позволяет безопасно аутентифицироваться сразу в нескольких приложениях и сайтах, используя один набор учётных данных. В начале 2000-х популярность получили смарт-карты — пластиковые карты со встроенной микросхемой, которые иногда используют в качестве беспарольных безопасных токенов.

В начале нового века ко всем этим методам добавилась многофакторная аутентификация (MFA), которая требует от пользователей подтверждения личности с использованием как минимум двух различных факторов проверки. Она получила известность, когда такие компании как Google начали использовать эту технологию в своих продуктах. Как правило, MFA включает в себя факторы знания (пароли и кодовые фразы) и владения личным устройством (одноразовые коды по SMS). Беспарольная авторизация исходит именно из фактора владения персональным устройством, тем самым нивелируя риски компрометации пароля.

Альянс FIDO против паролей

В 2007 году компания PayPal попыталась внедрить 2FA с отправкой OTP через SMS, однако ей не удалось сделать эту технологию популярной среди пользователей. Через несколько лет PayPal совместно с Validity Sensors объявили о планах создать стандарт, который поддерживал бы все аппаратные средства аутентификации. Для решения этой задачи в 2012 году был основан Альянс FIDO (Fast IDentity Online, «быстрая онлайн-идентификация»). В Альянс вошли Lenovo, Nok Nok Labs и Infineon, позже к нему присоединились Google, Samsung, Microsoft, Intel, Visa, Master Card и Amazon, а в 2020 году — Apple. Сейчас этот концерн объединяет уже сотни компаний. Все вместе они стремятся защитить пользователей от фишинга и сократить (а в перспективе совсем исключить) использование паролей в мире.

В 2014 году результатом работы Альянса стали два стандарта: U2F (Universal Second Factor для аутентификации с помощью специальных устройств) и UAF (Universal Authentication Framework для биометрической аутентификации). FIDO продолжил совершенствовать технологии и в 2018 году совместно с консорциумом W3C опубликовал стандарты для беспарольной аутентификации на сайтах, в мобильных приложениях и веб-сервисах — WebAuthn и CTAP. Тогда же Microsoft в своём блоге объявил «конец эры паролей». Однако поспешно. Многие компании, например, Twitter или Dropbox, стали использовать стандарт WebAuthn в качестве второго фактора аутентификации, то есть в дополнение к паролю.

Чтобы изменить такое положение вещей, в марте 2022 года FIDO и W3C представили новую версию WebAuthn. Специалисты предложили использовать в качестве инструмента авторизации смартфон и биометрию. После этого о планах внедрить новый стандарт объявили Apple, Google и Microsoft. В FIDO заявили, что возможность беспарольной авторизации должна появиться в Windows, macOS, iOS, а также в браузерах Chrome и Safari до конца 2023 года. Сейчас WebAuthn считается оптимальным с точки зрения удобства и безопасности вариантом беспарольного входа, однако далеко не единственным. По данным CanIUse, на сегодня WebAuthn поддерживается у более чем 95 % пользователей.

Как работает беспарольная аутентификация

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

  • на основе владения: аппаратным токеном, смартфоном, USB-устройством, брелком или смарт-картой;

  • на основе биометрии: отпечатка пальца, скана сетчатка глаза или лица, распознавания голоса.

Как правило, аутентификация без пароля происходит по такой схеме:

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

  2. После этого нужно подтвердить свою личность: вставить флешку, использовать токен, смарт-карту, брелок, открыть ссылку, отправленную на смартфон. Или отсканировать отпечаток пальца, просканировать лицо, сетчатку глаза.

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

Виды беспарольной аутентификации

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

OTP-код

OTP-код (one-time password) это одноразовый пароль, который генерируют защищённые аппаратные устройства или программы. Чаще всего это числовые коды длиной 4-12 цифр. Пользователь может получать их в SMS, push-уведомлении, письме на электронную почту, в качестве части номера телефона, с которого ему поступает звонок. Также генерировать OTP-код могут специальные приложения на смартфоне (например, Google Authenticator). Ещё один вариант: такие коды могут генерировать сами сервисы уже после авторизации. У них длительный срок хранения, поэтому пользователь может сохранить их на будущее и авторизоваться с их помощью, например, в случае, когда нет доступа к смартфону или SIM-карте.

Аппаратный токен 

Аппаратный токен — это небольшое электронное устройство, напоминающее брелок или флешку. Им может быть токен, который необходимо физически подключать к компьютеру или смартфону — ключи шифрования хранятся на самих токенах. Также есть бесконтактные токены, они не требуют физического соединения с устройством. Кроме того, существуют аппаратные токены, которые могут генерировать OTP-код для входа каждый раз при включении, их работа может быть основана на счётчике событий (HOTP) или счётчике времени (TOTP):

  • HOTP (HMAC-based One-Time Password) генерирует одноразовый пароль на основе секретного ключа и счётчика. Каждый раз, когда пользователь нажимает кнопку на устройстве, счётчик увеличивается, и следующий пароль генерируется уже с использованием увеличенного значения. HOTP-токены требуют синхронизации между сервером и устройством пользователя.

  • TOTP (Time-based One-Time Password) — это тип OTP, который генерирует одноразовый пароль на основе секретного ключа и текущего времени. Сервер и токен настроены на одинаковый интервал времени, обычно это 30 секунд — при использовании TOTP пароль меняется каждые полминуты. TOTP считается менее уязвимым для взлома, так как ограниченное время его действия уменьшает возможность перехвата пароля.

Passkey

Passkey — это уникальный криптографический токен, который передаётся между веб-сайтом и устройствами пользователя. Такой ключ доступа позволяет использовать для аутентификации биометрические системы на смартфоне или компьютере, например, сканер отпечатков пальцев или лица. Чтобы войти в учётную запись, достаточно отсканировать генерируемый браузером QR-код и подтвердить личность на смартфоне. Этот способ защиты основан на стандарте WebAuthn. 

Passkey уже поддерживает Apple, а в начале мая и Google внедрил эту технологию во все свои сервисы и платформы. Недавно VK также объявил об интеграции Passkey в сервисы VK и партнёрские сайты и приложения, где есть VK ID. Одно из главных достоинств Passkey в том, что ключи доступа можно синхронизировать на разных устройствах, всё зависит от используемого приложения и операционной системы. 

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

OAuth и OpenID — технология единого входа

Этот способ позволяет проходить аутентификацию в различных веб-сервисах с помощью единой учётной записи без ввода пароля. Фактически пользователь использует для авторизации, например, учётную запись в социальной сети. Такой подход используют многие интернет-компании, в том числе Facebook (принадлежит компании Meta, деятельность которой запрещена в России), Google и Twitter. Благодаря этому сайты, поддерживающие OAuth, получают данные о пользователе от онлайн-сервисов при согласии человека на передачу данных. При этом для авторизации используется не логин и пароль, а токен доступа, который предоставляют провайдеры OAuth и OpenID.

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

Авторизация по QR-коду

Этот способ подразумевает предоставление доступа к сессии между компьютером и мобильным устройством, на котором пользователь уже прошёл авторизацию. При аутентификации сайт генерирует специальный QR-код, и после сканирования на устройстве пользователь подтверждает операцию в мобильном приложении. При входе в аккаунт сервис генерирует временный одноразовый токен — уникальную комбинацию, которую, в отличие от пароля, не получится использовать ещё раз на другом устройстве. Кстати, по нашим наблюдениям (и это немного удивительно), пользователи очень любят такой способ авторизации, потому что они полностью контролируют весь процесс входа на сайт: им не нужно ждать OTP-код в сообщении, всё необходимое уже буквально у них в руках.

Аутентификация через push-уведомления

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

Одноразовые ссылки на почту

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

Жизнь без паролей: преимущества и недостатки

Повышенная безопасность аккаунта

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

По оценкам IBM, в 2022 году финансовые потери компаний из-за утечек данных в среднем по миру достигли $4,35 млн, при этом дороже всего такие взломы обходятся медицинским ($10,10 млн) и финансовым ($5,97 млн) организациям.

Без паролей жить удобнее

Многие вздохнут с облегчением от того, что больше не надо придумывать пароли и заучивать их наизусть. Фактически у пользователя появляется единая «учётка» во всех сервисах с беспарольной авторизацией, где логин — это номер  телефона, а пароль — это одноразовый код. При подключённом Passkey авторизация становится ещё проще.

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

Экономия времени

С беспарольной аутентификацией больше не придётся каждый раз тратить время на регистрацию, по нескольку раз вводить длинный пароль, в котором очень легко сделать ошибку. Современные способы авторизации (например, по Face ID) даже быстрее, чем авторизация с помощью менеджера паролей.

Защита данных в бизнесе

В бизнесе беспарольная аутентификация помогает значительно улучшить защиту информации: мошенникам становится гораздо сложнее украсть конфиденциальные данные клиентов. Это повышает репутацию компании как надёжного и ответственного партнёра. Ещё один плюс для бизнеса — он получает аудиторию с подтверждёнными факторами владения. Клиенты, которые используют простые пароли, легко могут оказаться ботами, а с биометрией такая вероятность значительно снижается.

Отказ от паролей также делает жизнь клиентов более удобной: им не надо тратить время на запоминание сложный паролей и поиск потерянных «учёток». Вместе этого достаточно подтвердить личность с помощью уникальной биометрической информации или другого способа беспарольной аутентификации.

Без пароля, но не без проблем

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

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

Почему компании не переходят на беспарольную аутентификацию?

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

Также переход на новый способ аутентификации потребует значительных инвестиций  Внедрение новой системы не произойдёт по щелчку, это долгий и сложный процесс, который сопряжён с большими расходами на покупку необходимого аппаратного и программного обеспечения. Особенно дорого обойдутся нововведения для крупных компаний, клиенты которых разбросаны по всему миру. В случае с SMS им придётся поддерживать работу с сотней разных мобильных операторов и рассылать сообщения пользователям в самых разных странах.

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

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

Однако беспарольная аутентификация — не панацея. В случае целенаправленной атаки на пользователя (например, администратора крупного сообщества в соцсети или знаменитости) SMS могут перехватить, а смартфон можно потерять и на время лишиться доступа к аккаунту. Часть этих проблем снимается реализацией входа через WebAuthn, однако этот стандарт всё равно не закрывает все возможные уязвимости.

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


  1. vis_inet
    15.06.2023 09:13
    +2

    пароль из 11 букв и чисел различного регистра — на его взлом потребуются три года. А если в нём будут ещё и спецсимволы

    Извините, если я глупость спрошу, но чем пароль из "символы+цифры+спецсимволы" надёжнее пароля только из символов такой же длины как "символы+цифры+спецсимволы"?


    1. 0mogol0
      15.06.2023 09:13
      +1

      ну как минимум большим числом вариантов на каждый символ в пароле. Это если мы говорим про случайные пароли.

      Если там какая-то осмысленная фраза, то разбавив её спецсимволами мы усложняем атаку по словарю


    1. Tsimur_S
      15.06.2023 09:13

      Если взять пароль из 11 символов английского алфавита то количество разных вариаций для перебора составит 26^11, каждый символ из 11 может быть выбран 26-ю разными способами. С учетом регистра это будет уже 52^11, с добавлением цифр это будет 62^11, ну и со спецсимволами еще больше.

      Если взять количество спецсимволов за 26 то это уже будет 88^11. Что сильно больше чем 26^11.


      1. ihouser
        15.06.2023 09:13
        +1

        Но, достаточно всего одного спецсимвола (желательно редкого) и весь перебор по словарю станет бесполезным, не понадобится никакая роза в зад.


        1. polearnik
          15.06.2023 09:13

          против этого придуманы атаки по словарю с перестановками. пароль bestpassword получается по сложности примерно как bestpassword#


          1. ihouser
            15.06.2023 09:13

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


            1. polearnik
              15.06.2023 09:13

              Нет.

              например в этой первой попавшейся программе для брутфорса паролей можно задать правило

              которое означает создать из слова pаssword ~password p~assword итд


              1. ihouser
                15.06.2023 09:13
                +2

                Правило то простое, но каждый вариант надо будет проверить и не факт что это будет "~". Т.е. брутфорс усложняется многократно больше по сравнению с дополнительной буквой.

                Ладно, можно просто удлинить пароль, как ниже K0styan пишет. Как кому удобней.


      1. K0styan
        15.06.2023 09:13

        В то же время по порядку величины 52^11 примерно равен 26^13. То есть рандомная заглавная экономит пару букв длины пароля.

        88^11 соответствуют 26^15, то есть цена вопроса - ещё пара букв.

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


    1. kunavin
      15.06.2023 09:13

      Если коротко, то для взлома нужно перебрать больше комбинаций
      Если не коротко, то как пример можно взять брутфорс
      В латинском алфавите 26 букв. Если пароль из 11 символов будет содержать только буквы, то взломщику в худшем случае потребуется перебрать 26^11 комбинаций символов (считаем, что на месте каждого символа может быть любая буква), то есть, 3670344486987776 комбинаций
      Если добавляем цифры (ещё 10 символов) и спецсимволы (ещё +-30), то нужно перебрать уже 66^11 комбинаций, то есть 103510234140112521216 комбинаций
      Теперь делим одно на другое и получаем, что для взлома пароля только из букв нам потребуется в 28201 раз меньше операций, чем для пароля из букв+цифр+спецсимволов, соответственно, времени тоже сильно меньше уйдёт


      1. vis_inet
        15.06.2023 09:13

        Вам не кажется, что для человека проще добавить несколько букв, чем цифры и спецсимволы?


        1. K0styan
          15.06.2023 09:13

          Главное - не свалиться при этом в цепочку из готовых слов


  1. HappyGroundhog
    15.06.2023 09:13
    +16

    Во всех беспарольных технологиях есть один большой минус, их защита базируется на самом слабом звене, чаще всего это возможность восстановления доступа к аккаунту. Если человек потерял резервные коды и устройство, то часто ему достаточно просто "получить смс на номер" и перепривязать всё что угодно обратно. Такие проблемы были у Сбера, например, когда клон симки по сути сбрасывал все настройки безопасности в ноль. Идеал это "поход с паспортом в центры Госуслуг", но мы же говорим о массовом продукте, там приходится идти на компромисс между безопасностью/удобством.

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


  1. zojl
    15.06.2023 09:13
    +15

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

    Есть два нюанса.
    1. Нельзя пошарить доступ к сервису. Нельзя завести учётку для всей семьи, не сканируя биометрию каждого члена семьи. Нельзя завести общую корпоративную readonly-учётку на весь отдел. При авторизации по паролю я могу дать доверенному лицу логин и пароль. А при авторизации по биометрии что делать? Палец отсылать почтой? А что будет с моими данными после моей смерти? При авторизации по паролю доверенные люди могут получить список моих критичных логинов и паролей.
    2. Пароль в случае утечки можно сменить. Биометрию сменить не получится. Если какой-то сервис сольёт информацию, из которой можно будет слепить правдоподобный запрос на аутентификацию, пользователи окажутся беззащитными на множестве других сервисов, использующих такой же метод аутентификации.


    1. zzzzzzzzzzzz
      15.06.2023 09:13
      +7

      1. Из чувства брезгливости не хочется сливать биометрию кому попало.


      1. inkelyad
        15.06.2023 09:13

        В данной технологии биометрия, по идее, дальше устройства с ключами не уходит. Сам сервис про нее ничего не знает.


        1. zojl
          15.06.2023 09:13
          +3

          Если устройство хранит у себя ключ, доступ к которому есть только по биометрии — это один сценарий. Утеря устройства в таком случае приведёт к утере доступа, как уже писали в соседнем комменте.

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


          1. inkelyad
            15.06.2023 09:13

             Утеря устройства в таком случае приведёт к утере доступа, как уже писали в соседнем комменте.

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

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

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

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


            1. zojl
              15.06.2023 09:13

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

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


              1. select26
                15.06.2023 09:13

                В приличном сервисе данные в открытом виде не хранятся. Только хэш. Ещё и с солью.
                Т.е. для проверки его использовать можно, а для генерации - нет.
                Это касается не только паролей, но и всего.


                1. zojl
                  15.06.2023 09:13

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

                  В случае компрометации пароля, в т.ч. при выявлении подозрительной попытки входа, пользователь меняет пароль. Иногда и сервис может сделать это принудительно. Поэтому нехэшированный пароль можно смело слать, доверяя только https. Ибо одно из главных правил: один сервис — один пароль. Даже если пароль утечёт, он будет критичен для одного сервиса (если пользователь молодец)

                  А что делать, если внезапно обнаружится утечка логов, в которых оказались нехэшированные биометрические клиентские данные? Мы ведь в таком случае вынуждены слать строку без хэша. Или сервис сообщит, что стал жертвой атаки, в ходе которой запросы перехватывались и отправлялись злоумышленникам? Или клиент станет жертвой атаки MitM-атаки с подменой сертификата (Минсвязи Казахстана и Минцифры РФ передают приветы и напоминают о своих корневых сертах), и биометрия будет сохранена на стороне посредника? Что в таком случае делать?

                  Альтернатива — хэшированные на клиенте данные вида "биометрия+timestamp", дабы запрос нельзя было повторить. Но в таком случае придётся хранить сырые данные на стороне сервиса.


        1. K0styan
          15.06.2023 09:13

          И тут появляется второй вопрос. Чтобы ключи попали на устройство с биометрией, надо на нём пройти аутентификацию хотя бы раз. Сейчас это решается логином с паролем и/или теми же SMS-кодами. То есть либо один фактор, либо старые-добрые пароли.


          1. inkelyad
            15.06.2023 09:13

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

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

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


  1. kasiopei
    15.06.2023 09:13
    +3

    Сделайте пожалуйста поддержку U2F. И чтоб несколько ключей можно было добавить.


  1. K0styan
    15.06.2023 09:13
    +5

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

    Пока ни один более модный способ такого теста не прошёл бы. И да, 2FA я стараюсь везде перевести с SMS на TOTP (с оффлайн бэкапом базы опять же) с готовым набором запасных одноразовых кодов на бумажке.


  1. AntoineLarine
    15.06.2023 09:13
    +4

    Почему компании не переходят на беспарольную аутентификацию?

    А это в реальности кому-то настолько жизненно необходимо кроме как производителям устройств для био/2F-аутентификации?


    1. Lopar
      15.06.2023 09:13

      Ещё как! Возможность дать сотруднику доступ к данным по отпечатку пальца, а не по какому-то 24-символьному паролю, который в идеале нужно вводить от руки и каждые 30 дней менять (а в реальности листочек с паролем под клавиатурой и пароль не меняется годами).


      1. AntoineLarine
        15.06.2023 09:13

        Это работает в замкнутом офисе. Как только появляются удалёнщики, мобильные устройства и зоопарк личных компьютеров/планшетов, вся стройная система рушится.


        1. Lopar
          15.06.2023 09:13

          Почему же? Хардварный токен -- он как флешка, инапример. Есть и продвинутые, со сканерами пальцев. Куда вставил оттуда зашёл.

          Сейчас такие есть, но оно на уровне развития "сложно-дорого-богато".


  1. anonym0use
    15.06.2023 09:13
    +8

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

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


  1. VBKesha
    15.06.2023 09:13
    +3

    Аналитики выяснили, что относительно высокий уровень безопасности обеспечивает пароль из 11 букв и чисел различного регистра — на его взлом потребуются три года.

    А если добавить блокировку аккаунта на 1-2 часа в случае 5 неправильно введеных паролей?


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


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


    1. nixtonixto
      15.06.2023 09:13
      +1

      Достаточно ограничить частоту попыток авторизации на уровне 1...5 попыток в секунду. Человек это не заметит — за секунду новый вариант пароля не набрать, а программы брутфорса даже PIN из 4 цифр будут подбирать больше часа, а пароль из 7...8 цифр станет невзламываемым.


      1. K0styan
        15.06.2023 09:13

        Я работал над авторизацией в одной торговой сети. Брутфорсить начали через неделю после запуска личного кабинета. И долбились настолько интенсивно, что брутфорс превращался в DDoS.

        Так что ограничения сделали действительно жёсткими, примерно как выше @VBKesha предлагает, в том числе и чтобы мамкиных дудосеров отвадить.


  1. inkelyad
    15.06.2023 09:13
    +2

    (прочитав возражения против биометрии выше) Товарищи авторы. Вы бы написали, как именно и где тут биометрия работает и что сервис совершенно не знает, как именно ключики защищаются. А то у народа рефлекс уже сделали попытками ее использовать на стороне сервиса.


  1. Str5Uts
    15.06.2023 09:13
    +1

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

    Мне кажется был бы интересен сервис двойного oauth, т.е. например google и ms или okta.
    При регистрации запоминаем два емайла, для разных сервисов и сначала делаем аутентификацию на google потом, на ms. Чтобы небыло возможности одному из сервисов подделать токен и зайти на сервис под моим аккаунтом.

    Ещё был бы интересен сервис «анонимного oauth» от гугла, при желании на каждый новый сервис генерируется новый аккаунт, с уникальным емайлом, фековыми именами и т.п., всё автоматом, чтобы на мусорных сервисах не париться с прявязкой к основному аккаунту.


  1. andreishe
    15.06.2023 09:13
    +2

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


  1. stalinets
    15.06.2023 09:13
    +5

    Давно придумана такая вещь, как кодовые таблицы. При регистрации система выдаёт пользователю несколько таблиц, где по вертикали a-b-c-d-e-..., по горизонтали 1-2-3-4-5-... и в ячейках - 2-3 символа. При логине эти таблицы могут быть вторым фактором авторизации вместо фундаментально ненадёжных SMS. После ввода пароля система спрашивает: "Таблица №4, d2", "Таблица №2, a7" и "Таблица №1, c3", и три текстбокса. Ввёл правильно - пустили. Таблицы могут быть с ограниченным сроком жизни.

    Когда-то давно такой способ авторизации немного использовали Яндекс.деньги, но видимо из-за каких-то лицензионных причин перестали. А зря. Это - надёжно и оставляет безопасность пользователя в его руках (в отличие от дырявого SMS с кучей векторов атаки - MITM, перевыпуск SIM и пр). Я вот не хочу никаких SMS и вообще привязку номера, это фундаментально ненадёжно, и тем не менее это по недомыслию сделали стандартом аутентификации. Дайте мне кодовые таблицы!


    1. lxsmkv
      15.06.2023 09:13
      +2

      То что вы описали, это по смыслу старый добрый ОТP = one time password. Такие бумажки с кодами, они называются iTAN до 2019 еще можно было повстречать в банковских системах. На смену им пришел ChipTAN, где нужно вставлять банковскую карту в устройство для генерации TAN-ов. А потом и PhotoTAN и QR-TAN. Особенность в банковском секторе, это то что там необходим не только вход в систему, но и заверение каждой транзакции. И для этого используется дополнительная система авторизации. Отличная от той что используется для входа в учетную запись.

      Вне банковского сектора уже все перешли на TOTP (time based one time password) и вариации. Такие системы вам знакомы. Это например Google Authenticator, Microsoft Authenticator и иже с ними. Причем стандарт открытый. И не надо никаких SMS. Смена телефона тоже перестала быть большой проблемой, потому что большинство таких приложений научились создавать бэкапы настроек. Перезашел в учетку с нового телефона, восстановил приложения-аутнтификаторы из бэкапа и они работают как раньше.

      Если конечно нет смартфона, то тут уже да, посложнее будет.


      1. stalinets
        15.06.2023 09:13
        +3

        В том и прелесть бумажек, что я не обязан иметь ни смартфон, ни номер телефона вообще. Я могу банально не доверять сервису, чтобы ставить от него какое-то приложение на свой смартфон: откуда я знаю, что оно там делает? А бумажка есть бумажка, вложил между страниц паспорта - и в карман.


        1. K0styan
          15.06.2023 09:13

          Так прелесть стандартизованного TOTP как раз в том, что не надо ставить приложение именно от сервиса. У меня вот установлен опенсорсный Aegis, с локальной базой, генерирует коды для десятка сервисов.


  1. Wakeonlan
    15.06.2023 09:13

    В 2023 заметная часть набранного текста это пароли. Это уже вымораживает


  1. Levitanus
    15.06.2023 09:13
    +5

    Какой страшный хоррор вы написали… Нет ничего лучше хорошего пароля в менеджере паролей. Разграничение зон ответственности одних аутентификационных данных, возможность поделиться аутентификацией на одном сервисе, не трогая все остальные. Сложно атаковать пачку критических сервисов фишингом и легко поменять пароль в случае успешной атаки.

    Единственный кейс, когда «войдите с помощью ВК» работает ‒ когда приложение взаимодействует с аккаунтом сервиса, выдавшего ID. Допустим, GitHub и GitKraken. А в остальных случаях ‒ лишние данные, отданные корпорации, и лишняя дырка в безопасности.


  1. toxicdream
    15.06.2023 09:13
    +2

    Опять идёт подмена понятий.

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

    Я бы ещё согласился использовать биометрию для идентификации - когда подставляется логин.

    Но никак не пароль. Пароль должен знать только я. Я должен иметь возможность легко его поменять в любой момент времени. И много ещё разных требований.

    А что делать если "утечет" биометрия? Как мне сменить пальцы, лицо, сетчатку? Тем более что их относительно несложно украсть и подделать!

    Видел ролик как по нескольким фото слепили манекена и разблокировали им телефон. Аутентификации по биометрии это вообще никакая не безопасность. Это профанация, дилетантство и вредительство