Поддержка входа без пароля с помощью Passkeys

Привет,

Я предлагаю добавить поддержку системы ключей доступа (Passkeys) от Apple.

5 лайков

В чём заключается большой шаг в теме Discourse Apple Authentication?

2 лайка

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

Полагаю, это просто усовершенствованный протокол. Уверен, мы узнаем об этом ближе к выпуску новой версии iOS.

4 лайка

Я не осознавал, что CDCK должна реализовать это самостоятельно. Я думал, что это зависит от веб-браузера или операционной системы?

И для ясности: Passkeys — это не стандарт, созданный Apple. Они были разработаны альянсом FIDO Alliance. Apple — лишь одна из многих компаний, внедряющих этот стандарт.

Passkeys — это не форма единого входа (SSO).

Мне показалось, что реализация Apple значительно отличается и выглядит интереснее, но, возможно, я что-то неправильно понял во время презентации… :thinking:

С нетерпением жду, как это будет развиваться после выхода новых версий операционной системы от Apple.

1 лайк

Используется ли какая-либо симметричная или асимметричная криптография с открытым и закрытым ключами?

Я всегда настороже, когда дело касается Apple, потому что они любят создавать проприетарные схемы, чтобы удерживать вас в своей экосистеме…

2 лайка

Ожидается, что он будет основан на открытом стандарте альянса FIDO. Google, Microsoft и другие крупные платформы также поддерживают эту инициативу.

На своём сайте Apple заявляет, что технология будет работать с устройствами не от Apple, но не объясняет, как именно это будет реализовано.

2 лайка

Предполагается, что это будет работать только на ваших устройствах.

К счастью, здесь всё иначе. Это открытый стандарт. :grin:

Apple не узнает, как Microsoft и Google реализуют это, пока они сами этого не сделают.

1 лайк

Как обсуждалось, ключи доступа не являются собственной системой Apple. Они даже не являются именем собственным.

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


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

Для реализации полной поддержки ключей доступа (далее именуемых «зарегистрированными ключами безопасности») в Discourse необходимо внести следующие изменения:

  1. Изменить модальное окно входа так, чтобы поле пароля отображалось только в том случае, если пользователь вводит адрес электронной почты учётной записи без зарегистрированных ключей безопасности. Ключи доступа должны быть предложены по умолчанию, а не пароли. Если у пользователя есть и то, и другое, пароль следует рассматривать как резервный вариант: поскольку ключи доступа имеют систему аутентификации других устройств, единственная причина использовать пароль — это если браузер слишком старый и вообще не поддерживает ключи доступа. Это будет становиться всё менее распространённым.
  2. Принимать зарегистрированный ключ безопасности как единственный источник аутентификации: не запрашивать пароль и не использовать никакие методы многофакторной аутентификации. Нет смысла требовать код TOTP, так как любой, у кого есть приватный ключ WebAuthn, также будет иметь общий секрет TOTP, используемый для генерации одноразовых кодов. Последний на самом деле гораздо легче украсть, так как он генерируется экземпляром Discourse изначально: это общий секрет.
  3. Разрешить пользователям с зарегистрированными ключами безопасности удалять свои пароли.
  4. Использовать методы двухфакторной аутентификации только в том случае, если пользователь использует пароль.

Это было учтено в нашей исходной спецификации для WebAuthN.

Однако мы реализовали только первый и наиболее распространённый метод WebAuthN.

Ну, во-первых, WebAuthn теперь называется «парольными ключами» (passkeys), и пора начать это учитывать.

Чтобы показать, что это одно и то же, вот как выглядит вход в экземпляр Discourse проекта Tor через Safari в iOS 16 после ввода адреса электронной почты и пароля:

1 лайк

А в Safari на macOS Monterey (которая на год старше) при использовании того же ключа:

Я предполагаю, что macOS Ventura изменит язык, чтобы он соответствовал iOS 16.

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

3 лайка

Уже прошло более 3–4 месяцев, не так ли? Значит, поддержка первого фактора аутентификации уже возможна?

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

1 лайк

Кто-нибудь готов профинансировать это в Marketplace?

Также для Android

3 лайка

Готов поспорить, что реализация Microsoft появится в Windows до конца года.

1 лайк

Как только появится поддержка Android и iOS, я считаю, что это станет ясным мандатом на реализацию этой функции для Discourse. Поскольку она уже выпущена на стороне Apple, мы сейчас ждём Android.

Сегодня объявляются две функции для ранних последователей, которые зарегистрируются в бета-версии Google Play Services и будут использовать Chrome Canary. Стабильный релиз ожидается «в конце этого года»:

Статья была написана в этом месяце, поэтому, возможно, функция появится к концу 2022 года?

7 лайков

Обновление

  • Ключи доступа теперь стабильны в Chromium. (Примечание: Firefox пока не поддерживает ключи доступа)
  • Менеджеры паролей, такие как Dashlane и 1Password, объявили о поддержке ключей доступа

Так выглядит поддержка ключей доступа по состоянию на 11 декабря.

источник: Passkey support on Android and Chrome  |  Passkeys  |  Google for Developers

2 лайка

Также на сайте https://www.passwordless.dev/ есть классное демонстрационное видео

4 лайка

Кажется, что Android теперь поддерживает passkeys.