Я новичок в теме криптографии и изучаю PKI, PKCS и т. д. Я понимаю основную концепцию PKI и то, как она используется для шифрования/дешифрования. Однако я смущен тем, как аппаратный токен, такой как USB-токен или смарт-карта, используется для безопасного входа в систему на вашем компьютере. Вот шаги, как я их понимаю, и часть, которая меня смущает (заранее извините за длину вопроса):
Сценарий: Компьютер xyz в сети содержит данные, доступ к которым имеют только пользователи, принадлежащие к группе SECRET. Пользователи Bob и Joe входят в эту группу, и им были выданы USB-токены, которые они могут использовать для предоставления учетных данных, которые позволят им получить доступ к этим ресурсам. USB-токен использует двухфакторную аутентификацию и требует ввода PIN-кода. Токен соответствует стандарту PKCS11.
- Боб вставляет USB-токен в машину с Linux.
- Модуль PAM-PKCS11 распознает это событие и предлагает Бобу ввести свой пин-код.
- Once Bob correctly enters his 4-digit PIN, the module checks for the validity of the certificate on Bob's token by (this varies, but what is minimum?):
- Locating the root certificate to check for a trusted CA
- Проверка сроков действия сертификатов и списков отзыва
- Сопоставление идентификатора токена с пользовательским файлом (где?, пропущен шаг) или каталогом (LDAP и т. д.)
- Если все выглядит хорошо, модуль информирует PAM об успешном результате.
- Эта строка помечена как достаточная, поэтому PAM принимает аутентификацию, а Боб входит в систему и может просматривать информацию, доступ к которой разрешен только пользователям из группы SECRET.
Мне не хватает информации о том, где хранится информация о том, может ли Боб получить доступ к этой машине и как именно он привязан к Бобу, сетевому (или даже настольному) пользователю. Я понимаю, что другие идентифицирующие данные о Бобе будут храниться на USB-накопителе, включая идентификатор (например, адрес электронной почты). Однако, как эта сильная безопасность? Где используется криптография во время процесса входа в систему, если вообще используется (или это не настоящая цель этих токенов)? Если кто-то получит USB и знает 4-значный пин-код, это все, что нужно, верно? Более того, действительно ли доверие к ЦС позволяет полагать, что другой пользователь не может получить новый USB-токен и использовать доверенный ЦС для получения нового сертификата, но указать, что все идентифицирующие данные должны быть такими же, как у Боба? Я знаю, что есть какая-то важная часть, которую я упускаю... но после прочтения десятков статей объяснение этой области кажется приукрашенным. Стоит ли использовать аппаратный токен в качестве достаточного средства аутентификации для входа на машину, содержащую конфиденциальные данные? Или назначение таких токенов в первую очередь для безопасного хранения пар ключей, которые используются в других приложениях? Спасибо за помощь!