Известно о проблемах безопасности и удобства, связанных с паролями. Пароли — это то, что вы знаете, поэтому они уязвимы к забыванию, что случается нередко. Именно поэтому электронная почта широко используется как резервный механизм для сброса паролей.
У электронной почты тоже много проблем. Подобно паролям, люди обычно используют один и тот же адрес электронной почты во множестве сервисов, что создаёт риск для конфиденциальности, если адрес будет раскрыт через какой-либо сервис. Всё сложнее получить адрес электронной почты, не предоставляя персонально идентифицируемую информацию серверу электронной почты. В качестве меры против спама (и, вероятно, также для упрощения таргетированной рекламы) бесплатные сервисы электронной почты обычно требуют указывать номер телефона, который легко связать с конкретным человеком. Платные сервисы могут не требовать номер телефона, но оплатить услугу, не раскрывая персонально идентифицируемую информацию, тоже непросто, а зависимость от платной подписки на сервис электронной почты уязвима к изменениям в финансовом положении. Кроме того, сегодня надёжно самостоятельно развернуть сервер электронной почты сложно. Помимо проблем с конфиденциальностью, централизация, возникающая при повторном использовании одного аккаунта электронной почты во многих сервисах, создаёт также риск безопасности: компрометация аккаунта электронной почты приведёт к компрометации множества других аккаунтов.
В наши дни для регистрации или аутентификации в сервисе пароли и электронная почта уже не обязательны. Discourse уже поддерживает FIDO и TOTP, но для регистрации и аутентификации всё ещё требует пароль и адрес электронной почты. Было бы замечательно, если бы Discourse сделал пароли и электронную почту опциональными, отдав предпочтение FIDO и TOTP.
Однофакторная аутентификация с помощью FIDO может быть очень удобной, но она уязвима к потере или уничтожению единственного токена FIDO, аналогично проблеме регистрации с паролем, но без адреса электронной почты. Чтобы решить это, я предлагаю требовать от пользователей предоставления как минимум двух факторов при регистрации — любой комбинации из FIDO, TOTP и/или пароля. Пользователи, желающие аутентификацию без электронной почты и пароля, могут просто зарегистрировать два переносных аутентификатора FIDO, например YubiKey. Пользователям можно рекомендовать (или даже требовать, особенно для администраторов) регистрировать больше двух факторов, чтобы избежать потери доступа к своим аккаунтам.
Поскольку платформенные аутентификаторы FIDO всё чаще встраиваются в устройства благодаря Windows Hello, Apple Touch ID и Face ID, а также Android, система регистрации без электронной почты может стать доступной для нетехнических пользователей, не обладающих специализированным переносным оборудованием для аутентификации, например YubiKey. Пользователи могут зарегистрироваться с помощью платформенного аутентификатора FIDO и пароля. Однофакторная аутентификация с использованием платформенного аутентификатора FIDO в такой конфигурации может работать бесшовно. Однако это создаст проблему удобства при аутентификации на новых устройствах, поскольку у пользователя не будет доступа к платформенному аутентификатору FIDO на новом устройстве, а полагаться исключительно на пароль для настройки нового устройства небезопасно. Чтобы решить это, я предлагаю рабочий процесс, аналогичный тому, как Matrix аутентифицирует новых клиентов. Пользователь может попытаться войти на новом устройстве с помощью его платформенного аутентификатора FIDO (новый фактор) и своего пароля (уже зарегистрированный фактор). Это не приведёт к входу в систему, но создаст запрос на одобрение нового аутентификатора FIDO в аккаунте. Интерфейс на новом устройстве затем перенаправит пользователя на вход с уже зарегистрированного устройства для одобрения нового устройства. Благодаря встроенным в мобильные устройства платформенным аутентификаторам FIDO это может стать практически применимым для безопасной аутентификации без специализированного переносного оборудования и без потери возможности использовать любые устройства по требованию, например общественные киоски.
Я придумал эту систему анонимной регистрации и аутентификации вчера после получения своих YubiKey. Мне неизвестно ни об одной системе, которая реализует такой подход. Мне бы очень хотелось увидеть, как зрелое и широко развёрнутое веб-приложение, такое как Discourse, станет пионером будущего, где для использования Интернета не требуются электронная почта или другая персонально идентифицируемая информация.