Auth History
От htpasswd до Passkeys
Интерактивный справочник методов аутентификации и авторизации в Сети. Каждый метод — со своим живым демо: запросы идут на Rust-бэкенд, ответы и заголовки видны в правой панели как в DevTools.
Хронология
1990s
NTLM
1993
Windows challenge-response (3 сообщения). Уязвим к pass-the-hash.
LDAP bind
1993
Каталог-сервер проверяет пароль по DN. Бэкенд множества enterprise-логинов.
Cookie Sessions
1994
Сервер выдаёт непрозрачный session id в HttpOnly cookie. Классика веба.
htpasswd / .htaccess
1995
Apache хранил пары user:hash в плоском файле. Первый массовый «логин» в вебе.
SSH public-key
1995
Клиент подписывает challenge приватным ключом, сервер проверяет открытым.
HTTP Basic Auth
1996
`Authorization: Basic base64(user:pass)` — пароль уезжает на каждом запросе. Без TLS — катастрофа.
mTLS (Mutual TLS)
1996
Сервер требует клиентский сертификат в handshake. Долгоиграющая B2B-классика.
HTTP Digest Auth
1997
Challenge-response c MD5. Пароль не передаётся, но MD5 устарел.
2000s
SMS OTP
2003
Код по SMS. Слабый второй фактор: SIM-swap, SS7, фишинг.
SAML 2.0
2005
XML-подписанные assertion-ы. Дефолт для enterprise SSO.
API Keys
2005
Длинная строка как «логин и пароль в одном». Простота против безопасности.
HOTP
2005
OTP на основе счётчика. Прародитель Google Authenticator.
OpenID 2.0
2007
Децентрализованный SSO через XRDS-discovery. Заменён OIDC.
2010s
OAuth 1.0a
2010
Каждый запрос подписан HMAC-SHA1. Twitter долго не отпускал.
HMAC-signed (AWS SigV4)
2010
Подписываем каждый запрос: канонизация + HMAC-SHA256(secret).
TOTP (Authenticator)
2011
OTP по времени, 30 секунд. Google/Microsoft Authenticator.
OAuth 2.0 (+PKCE)
2012
Делегированный доступ. Auth Code + PKCE — стандарт для SPA и mobile.
Push 2FA
2013
Сервер пушит approval на устройство. Часто с number-matching.
OpenID Connect
2014
Тонкий слой identity поверх OAuth 2.0. id_token (JWT) + userinfo + discovery.
Magic Links
2014
Одноразовая ссылка на email — passwordless без устройства.
JWT (Bearer)
2015
`header.payload.signature`. Stateless, читаемый сервером без БД.
WebAuthn / FIDO2
2019
Криптография на устройстве, привязка к origin → unphishable.