Аутентификация по ключам
Аутентификация по ключам — это метод проверки подлинности субъекта (пользователя, устройства или программы), основанный на предъявлении и проверке секретного ключа, который может быть симметричным (один и тот же ключ для шифрования и проверки) или асимметричным (пара «закрытый — открытый ключ»). В отличие от парольной аутентификации, где секрет передаётся по каналу связи, ключевая аутентификация обычно использует криптографические протоколы, что делает её более устойчивой к перехвату, подбору и фишингу. Метод широко применяется в системах информационной безопасности, электронной подписи, VPN, SSH, а также в аппаратных токенах и смарт-картах.
История
Первые теоретические основы аутентификации по ключам были заложены в 1976 году Уитфилдом Диффи и Мартином Хеллманом, которые предложили концепцию криптосистемы с открытым ключом. В 1977 году Рон Ривест, Ади Шамир и Леонард Адлеман разработали алгоритм RSA, который стал основой для многих современных схем аутентификации. В 1980-х годах появились первые реализации протоколов аутентификации на основе асимметричных ключей, такие как протоколы Needham-Schroeder и Kerberos (последний использует симметричные ключи). С развитием интернета в 1990-х годах ключевая аутентификация стала стандартом для защищённого доступа к серверам (SSH, TLS/SSL). В 2010-х годах, в связи с ростом кибератак, началось активное внедрение аппаратных ключей (например, YubiKey) и стандарта FIDO (Fast IDentity Online), который позволяет использовать криптографические ключи для веб-аутентификации без передачи паролей.
Основные принципы
Симметричная аутентификация
При симметричной аутентификации обе стороны (проверяющая и проверяемая) владеют одним и тем же секретным ключом. Процесс обычно включает:
- Запрос от проверяющей стороны (например, случайное число — nonce).
- Шифрование запроса или его хэша с использованием общего ключа.
- Отправка зашифрованного ответа проверяющей стороне.
- Расшифровка и сравнение с исходным запросом. Если результат совпадает, подлинность считается подтверждённой.
Недостаток — необходимость безопасного распространения ключей между сторонами. Применяется в локальных системах, протоколах Kerberos, некоторых VPN.
Асимметричная аутентификация
Асимметричная аутентификация использует пару ключей: закрытый (секретный) и открытый (публичный). Открытый ключ может быть известен всем, а закрытый хранится только у владельца. Протокол обычно выглядит так:
- Проверяющая сторона отправляет случайное число.
- Владелец подписывает это число своим закрытым ключом.
- Проверяющая сторона проверяет подпись с помощью открытого ключа владельца.
Этот метод лежит в основе цифровых подписей, TLS/SSL, SSH и стандарта FIDO2. Его преимущество — отсутствие необходимости передавать секрет по каналу связи.
Типы ключей и носителей
Программные ключи
- Файлы ключей — текстовые или бинарные файлы, содержащие закрытый ключ (например, в формате PEM, PKCS#12). Используются в SSH, OpenPGP, TLS.
- Ключи в оперативной памяти — генерируются и хранятся только во время сессии, например, при использовании TPM (Trusted Platform Module) или программных криптопровайдеров.
Аппаратные ключи
- USB-токены (например, YubiKey, Trezor) — устройства, генерирующие и хранящие ключи внутри защищённого чипа. Ключ никогда не покидает устройство, а подпись или расшифровка выполняется на самом токене.
- Смарт-карты — пластиковые карты с микросхемой, поддерживающие криптографические операции. Широко применяются в корпоративных системах и государственных проектах (например, электронные паспорта, SIM-карты).
- TPM (Trusted Platform Module) — встроенный в материнскую плату чип, используемый для аутентификации устройств и защиты ключей на уровне ОС (например, BitLocker в Windows).
Биометрические ключи
Современные системы (например, FIDO2) могут привязывать ключи к биометрическим данным (отпечаток пальца, лицо), что объединяет фактор владения (ключ) и фактор наследия (биометрия). При этом биометрический шаблон не хранится на сервере, а используется только для локального доступа к закрытому ключу.
Протоколы и стандарты
SSH (Secure Shell)
SSH использует асимметричную аутентификацию для входа на удалённые серверы. Пользователь генерирует пару ключей (обычно RSA, ECDSA или Ed25519), открытый ключ помещается на сервер, а закрытый остаётся у пользователя. При подключении сервер проверяет подпись, созданную закрытым ключом. Это стандартный метод для администрирования Linux-серверов.
TLS/SSL (Transport Layer Security)
TLS использует аутентификацию по ключам для установления защищённого соединения между клиентом и сервером. Сервер предъявляет сертификат, содержащий открытый ключ, подписанный удостоверяющим центром (CA). Клиент проверяет подпись и цепочку сертификатов. Также возможна взаимная аутентификация (mutual TLS), когда клиент также предъявляет сертификат.
FIDO2/WebAuthn
Стандарт FIDO2, разработанный консорциумом FIDO Alliance, позволяет аутентифицировать пользователей на веб-сайтах с помощью криптографических ключей без передачи пароля. Пользователь регистрирует устройство (например, USB-токен или встроенный в смартфон модуль), которое генерирует пару ключей. При входе сайт отправляет вызов, устройство подписывает его закрытым ключом. Поддержка FIDO2 реализована в браузерах Chrome, Firefox, Edge и в операционных системах Windows, macOS, Android.
Kerberos
Kerberos использует симметричные ключи и центр распределения ключей (KDC). Пользователь получает билет, зашифрованный ключом сервера, и предъявляет его для доступа к ресурсам. Kerberos широко применяется в корпоративных сетях Windows (Active Directory) и Unix-системах.
Преимущества и недостатки
Преимущества
- Устойчивость к фишингу — ключ не передаётся по сети, поэтому его нельзя перехватить или подделать через подложный сайт.
- Отсутствие необходимости запоминать сложные пароли — пользователь использует физическое устройство или биометрию.
- Высокая криптостойкость — современные алгоритмы (RSA-4096, ECDSA, Ed25519) обеспечивают практическую невозможность взлома при правильной реализации.
- Возможность многофакторной аутентификации — ключ можно комбинировать с PIN-кодом или биометрией.
Недостатки
- Потеря ключа — если закрытый ключ утерян или повреждён, доступ к системе может быть утерян навсегда (требуется резервное копирование или процедура восстановления).
- Сложность управления — в крупных организациях требуется инфраструктура для генерации, распространения, отзыва и хранения ключей (PKI).
- Зависимость от аппаратного обеспечения — для аппаратных ключей требуется наличие USB-порта или NFC, а также совместимость с ОС и браузерами.
- Уязвимости реализации — при неправильной реализации протоколов возможны атаки (например, атака по времени, атака на генератор случайных чисел).
Применение
Корпоративные системы
Аутентификация по ключам используется для входа в VPN, управления серверами (SSH), доступа к базам данных и облачным сервисам. В России ключевая аутентификация применяется в государственных информационных системах, таких как ЕСИА (Единая система идентификации и аутентификации), где используются сертификаты электронной подписи.
Финансовый сектор
Банки используют аппаратные токены и смарт-карты для аутентификации клиентов при проведении операций. Например, система «СберБизнес» требует использования USB-токенов или смарт-карт для подписания документов.
Интернет вещей (IoT)
В устройствах IoT аутентификация по ключам обеспечивает защиту от несанкционированного доступа к датчикам, контроллерам и шлюзам. Используются лёгкие криптографические алгоритмы (например, на основе эллиптических кривых).
Персональное использование
Пользователи могут применять аппаратные ключи для защиты аккаунтов в социальных сетях, почтовых сервисах и облачных хранилищах. Например, Google, Facebook (продукт Meta, признанной экстремистской и запрещённой в РФ), Twitter и Microsoft поддерживают FIDO2-аутентификацию.
Интересные факты
- В 2019 году компания Google объявила, что в её внутренней сети аутентификация по паролям полностью заменена на аппаратные ключи FIDO2, что позволило снизить количество фишинговых атак до нуля.
- Стандарт FIDO2 поддерживается в операционной системе Windows 10 и выше, а также в macOS и Android.
- В России разработкой аппаратных ключей занимаются компании «Актив» (токены «Рутокен») и «Аладдин Р.Д.» (токены «JaCarta»), которые сертифицированы ФСБ России для использования в государственных информационных системах.
Критика и ограничения
- Зависимость от производителя — аппаратные ключи могут содержать закрытые проприетарные компоненты, что затрудняет аудит безопасности.
- Уязвимость к физическому доступу — если злоумышленник получит физический доступ к ключу (например, украдёт его), он сможет использовать его для аутентификации, если не установлен дополнительный PIN-код.
- Проблемы с совместимостью — некоторые старые системы и браузеры не поддерживают FIDO2 или требуют установки дополнительного ПО.
- Правовые аспекты — в некоторых юрисдикциях (включая Россию) использование криптографических средств может требовать уведомления или лицензирования ФСБ России, особенно при использовании в государственных системах.
Источники
- Шнайер Б. «Прикладная криптография». — 1996.
- Menezes A., van Oorschot P., Vanstone S. «Handbook of Applied Cryptography». — 1996.
- FIDO Alliance. «FIDO2 Technical Specifications». — 2018.
- RFC 4252 — «The Secure Shell (SSH) Authentication Protocol». — 2006.
- RFC 8446 — «The Transport Layer Security (TLS) Protocol Version 1.3». — 2018.
- Материалы компании «Актив» по продукции «Рутокен». — 2021.
- Указ Президента РФ № 1119 «Об утверждении требований к защите персональных данных». — 2012.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →