Прошлое, настоящее и будущее веб-аутентификации

внешний интерфейс
Прошлое, настоящее и будущее веб-аутентификации

Автор статьи: Хань Юнган, фронтенд-разработчик компании 360 Qi Dance Company.

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

традиционные методы аутентификации

Обычная практика в прошлом, возможно, была такой

регистр

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

Авторизоваться

  • Заполните форму имени пользователя и пароля на странице входа в систему и отправьте ее на внутренний сервер.
  • Бэкэнд-сервер шифрует полученные имя пользователя и пароль и сравнивает их с информацией, хранящейся в базе данных.Если пароль учетной записи совпадает, он возвращает информацию об успешном входе в систему, а если он несовместим, он возвращает информацию об ошибке. .

Есть общие проблемы с этим подходом

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

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

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

Сторонний метод входа

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

OpenID и OAuth созданы для двух разных целей. Цель OpenID — помочь веб-сайтам подтвердить личность пользователя. Цель OAuth — предоставить третьим лицам доступ к ресурсам пользователя в пределах контролируемого диапазона. Существует две версии OAuth. OAuth1.0 был в основном заменен на OAuth2.0 из-за его сложной реализации.Ниже описаны два протокола.

Открытый протокол аутентификации OpenID

определение

  • OpenID — этодецентрализациясистема онлайн-аутентификации. Для сайтов, поддерживающих OpenID, пользователям не нужно запоминать традиционные токены аутентификации, такие как имена пользователей и пароли. Вместо этого им просто нужно предварительно зарегистрироваться на веб-сайте, который выступает в качестве поставщика удостоверений OpenID (IdP), например Google. OpenID децентрализован, любой веб-сайт может использовать OpenID для входа пользователей в систему, и любой веб-сайт также может выступать в качестве поставщика удостоверений OpenID. OpenID решает проблему, не полагаясь на центральный веб-сайт для подтверждения цифровой личности.
  • OpenID предназначен для сертификации входа в систему, он прост, порог очень низкий. Веб-сайт очень прост, если вы хотите получить доступ к сертификации OpenID, не нужно создавать приложение, не нужен ключ приложения, не нужен секрет, просто направьте пользователя к записи поставщика OpenID и вызовите обратный вызов, пользователь согласится для предоставления информации, вы можете получить этот пользовательУникально идентифицирует. Для сайта до тех пор, пока кто-то авторизуется с помощью Google OpenID и возвращает этоУникально идентифицируетЭто я вхожу.

преимущество

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

недостаток

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

Открытый протокол авторизации OAuth2.0

определение

  • Когда дело доходит до OAuth, можно представить такую ​​картину: жарким и загруженным летом Сяо Мин с женой день и ночь спешат на проект в компанию, а дома есть пожилые люди, о которых нужно заботиться. поэтому Сяо Мин решил нанять няню для ухода за пожилыми людьми, но я также очень волновался, сможет ли няня ходить по дому, поэтому я уполномочил няню дать няне сертификат временного пароля, который может открывать только дверь пожилых людей и действителен только в течение 7 дней.Сяо Мин согласился входить и выходить из комнаты старика по своему желанию, но он не мог войти в комнату Сяо Мина и его жены.
  • Мы перенесли приведенный выше пример в Интернет, который является дизайном OAuth.Самая большая разница между OAuth и OpenID заключается в том, что OpenID является своего родаПротокол аутентификации, — это уникальный идентификатор, который открытая платформа предоставляет третьей стороне для представления личности пользователя, а OAuth — этоЛицензионное соглашение. Авторизация позволяет третьим лицам считывать информацию о пользователе непосредственно с открытой платформы.

преимущество

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

недостаток

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

Сводная информация о входе в систему третьей стороны

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

2FA двухфакторная аутентификация

Что такое двухфакторная аутентификация

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

Распространенные методы двухфакторной аутентификации

  • ПервыйSMS-подтверждение, который также широко используется в настоящее время. Код подтверждения SMS будет сгенерирован и отправлен на указанный мобильный телефон для каждой аутентификации. Аутентификация будет завершена, когда входной контент будет соответствовать отправленному контенту.
  • ВторойПриложение для аутентификации, на основе алгоритма шифрования TOTP с использованием начального ключа, совместно используемого приложением и приложением для аутентификации, каждые 30 секунд генерируется новый 6-значный код подтверждения.Код подтверждения между приложением и приложением согласован для завершения проверки. , обычно внутри компании. Используемый VPN аутентифицируется таким образом.
  • ТретийПодтверждение входаЭтот метод не требует ввода кода подтверждения, но завершает процесс двухфакторной аутентификации, входя в систему и подтверждая щелчок.Этот метод использует алгоритм шифрования с открытым ключом для подтверждения вашей личности, и приложение сгенерирует пару ключей, закрытый ключ хранится локально, а открытый ключ отправляется на сервер в качестве хранилища пользовательской информации. Когда пользователь входит в систему, сервер шифрует часть информации с помощью открытого ключа и отправляет ее на ваше устройство. Только устройство с правильный закрытый ключ может его расшифровать и пройти вторичную сертификацию.

преимущество

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

недостаток

  • Порог использования становится выше, а для входа остается еще один шаг, что занимает много времени и хлопот, а также не способствует широкому распространению продукта.
  • 2FA не означает абсолютную безопасность аккаунта, злоумышленники все равно могут атаковать путем клонирования SIM-карт, кражи файлов cookie или токенов и т. д.
  • Как только вы забудете свой пароль или потеряете телефон, вам придется обойти двухфакторную аутентификацию, если вы хотите восстановить свой логин, что создает брешь в безопасности. Если вы не подготовите два набора двухфакторной аутентификации, один будет использоваться для входа в систему, а другой — для восстановления учетной записи.

Будущее веб-аутентификации WebAuthn

Что такое WebAuthn?

  • WebAuthnЭто веб-стандарт, опубликованный консорциумом W3C World Wide Web. WebAuthn управляется Альянсом FIDOFIDO2основной компонент проекта. Цель WebAuthn — предоставить серию стандартизированных протоколов, чтобы пользователи могли попрощаться с громоздкими и небезопасными методами входа в учетную запись и пароль, которые применялись в прошлом, и обеспечить безопасность.Беспарольный вход в системудля цели.
  • WebAuthn полностью отказывается от традиционного метода входа в систему с использованием учетной записи и пароля, позволяя пользователям напрямую использоватьРаспознавание отпечатков пальцев,распознавание лица,распознавание радужной оболочки,распознавание голоса,ключ сущности(соединение USB, соединение Bluetooth, соединение NFC) и другие способы подтверждения входа.

Опыт WebAuthn

https://demo.yubico.com/webauthn-technical/registration
  • Пользователи Windows 10 могут приобретать модели какyubikey 5 NFCключ версии, вставьте его в USB-порт устройства и посетите указанный выше веб-сайт, чтобы испытать WebAuthn.

  • Компьютеры Macbook с функцией сенсорной панели могут напрямую перейти по указанному выше URL-адресу, чтобы воспользоваться WebAuthn.

  • Пользователи iPhone могут приобретать модели какyubikey 5 NFCключ версии, откройте вышеуказанный URL-адрес и поместите ключ на заднюю панель телефона, чтобы испытать WebAuthn с помощью функции проверки ключа NFC.

  • Пользователи Android могут перейти по указанному выше URL-адресу, чтобы испытать WebAuthn после включения службы GMS на телефоне и обновления Google Play до последней версии.

преимущество

  • Использование WebAuthn для входа в учетную запись очень безопасно
  • То есть нет необходимости вводить пароль, и нет необходимости искать стороннюю авторизацию.Напрямую используется биометрическая функция устройства.Процесс входа в систему очень прост и быстр,что способствует широкому распространению продукта.

недостаток

  • Он все еще несовершенен, и большинство отечественных сайтов не поддерживают вход в систему с помощью WebAuthn.

Учебные материалы WebAuthn

  1. Если вы хотите быстро понять WebAuthn, вы можете обратиться к моему PPT и изучить его в сочетании с исходным кодом демо.

    PPT:https://ppt.baomitu.com/d/129a784a
    Demo源码:https://github.com/hanyonggang/WebAuthnDemo
    
  2. Для получения подробной информации об использовании WebAuthn вы можете обратиться к официальным документам W3C или MDN.

Суммировать

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