Двухфакторная аутентификация
2FA — вход по двум разным факторам вместо одного пароля: знание плюс владение устройством или биометрия.
Что такое Двухфакторная аутентификация
2FA (two-factor authentication, «2фа», «два фактора») — способ аутентификации, при котором для входа нужно предъявить два фактора разных типов. Пароль плюс код из приложения — это 2FA. Пароль плюс секретный вопрос — нет: оба фактора относятся к одному типу «знание», и оба утекают вместе.
Факторов всего три:
| Тип | Формулировка | Примеры |
|---|---|---|
| Знание | Что вы знаете | Пароль, PIN, кодовое слово |
| Владение | Что у вас есть | Телефон с TOTP, YubiKey, смарт-карта |
| Неотъемлемость | Кем вы являетесь | Отпечаток, лицо, голос |
Смысл в том, что атака на разные факторы требует разных возможностей. Пароль можно украсть фишингом или подобрать брутфорсом удалённо и массово — см. социальную инженерию. Чтобы дополнительно получить телефон или ключ, нужно физически добраться до жертвы. Это и обрубает поточные атаки. MFA (multi-factor) — то же самое, но факторов может быть больше двух.
Виды второго фактора
| Метод | Как работает | Стойкость к фишингу |
|---|---|---|
| SMS-код | Код приходит сообщением | Низкая: SIM swap, перехват |
| TOTP | Приложение считает код из общего секрета и времени | Средняя: код можно выманить |
| Push-подтверждение | «Разрешить вход?» в приложении | Средняя: MFA fatigue |
| Аппаратный ключ (FIDO2) | Криптоподпись челленджа, привязка к домену | Высокая |
| Passkey | Тот же FIDO2, ключ в телефоне или менеджере | Высокая |
TOTP (Time-based One-Time Password, RFC 6238) — тот самый шестизначный код, обновляющийся раз в 30 секунд. Сервер и приложение (Google Authenticator, Aegis, Bitwarden) хранят общий секрет и независимо считают от него хеш текущего интервала времени. Ничего никуда не передаётся — поэтому TOTP работает офлайн.
Что такое passkey
Passkey — это пара ключей по стандарту FIDO2/WebAuthn, заменяющая пароль целиком, а не дополняющая его. Приватный ключ не покидает устройство (телефон, ноутбук, аппаратный токен), сервер хранит только публичный. При входе сервер присылает случайный челлендж, устройство подписывает его после локального подтверждения отпечатком или PIN.
Ключевое свойство — привязка к домену. Passkey, выданный для example.com, физически не подпишет челлендж от examp1e.com, потому что браузер сверяет origin. Поэтому фишинг на passkey не работает в принципе, а не «плохо работает». Утечка базы сервера тоже безобидна: публичные ключи бесполезны без приватных.
Формально passkey — однофакторный вход, но фактор «владение устройством» усилен локальной биометрией, что на практике даёт защиту сильнее классической связки «пароль + SMS».
Что выбрать на практике
- SMS — только если нет альтернатив. SIM-карту перевыпускают по поддельной доверенности, и второй фактор оказывается у атакующего. Всё равно лучше, чем один пароль.
- TOTP — разумный минимум для панели хостинга, GitHub, VPN и почты.
- FIDO2/passkey — для админов. Учётка с root-доступом к облачному серверу не должна защищаться тем, что выманивается по телефону.
- Сохраните резервные коды отдельно от телефона. Потерянный TOTP-секрет без них означает потерю аккаунта.
- Не считайте 2FA заменой SSH-ключам — на серверах ключи и так сильнее пароля, 2FA добавляют поверх для бастиона.
Связанные термины
- Аутентификация — процесс, частью которого является 2FA
- Атаки и социальная инженерия — то, от чего защищает второй фактор
- Менеджеры паролей — где хранят пароли, TOTP и passkey
- SSO — единый вход, куда 2FA встраивается один раз для всех сервисов
- IAM / IdP — где централизованно задаётся политика 2FA
Готовы запустить GPU-задачу?
Запустить GPU-сервер