Несколько факторов просто означают более одного способа проверки личности пользователя. Идентификатор имени пользователя / логина является идентификатором, поэтому мы должны убедиться, что идентификатор действительно исходит от того, кому он назначен.
Наиболее распространенным (и самым разочаровывающим) методом проверки является пароль. Это секрет, который, предположительно, знает только пользователь.
Другие формы проверки включают в себя:
- MAC-адрес / идентификатор машины (если он получен из известного источника, вероятно, это они, к сожалению, также легко подделываются).
- PKI - единственное, что делает управление ключами более безопасным, чем пароль. По сути, вы должны убедиться, что запрос сертификата, который они отправляют со своего устройства, действительно принадлежит им. Как только вы это сделаете, вы выдадите сертификат, который они используют с этого момента. ПРИМЕЧАНИЕ: не все браузеры поддерживают PKI (в данный момент это явный недостаток в Google Chrome).
- Вторичный общий секрет. Это может быть GUID, которым обмениваются через зашифрованное соединение, или что-то в этом роде.
- биометрия. Требуется внешнее оборудование, но копирование отпечатков пальцев и сетчатки может быть затруднено.
- Мутирующий ключ от внешнего сервиса. Что-то вроде брелка RSA, который каждую минуту отображает новый шестизначный ключ. Комбинация серийного номера брелка и отображаемого ключа гарантирует, что у вас есть правильный парень.
ПРИМЕЧАНИЕ: брелок RSA - это внешнее устройство, которое вы выпускаете и не требует подключения к клиентскому компьютеру. После того, как вы связали серийный номер брелка с учетной записью, вы используете предоставленный пользователем шестизначный ключ в сервисе аутентификации RSA. Конечно, время вашего сервера должно быть синхронизировано с RSA. Многие корпоративные VPN используют этот метод в качестве дополнительного (или иногда основного) метода проверки пользователя.
Я уверен, что есть много других вариантов. Хитрость заключается в том, чтобы найти правильный баланс между требуемой безопасностью и головной болью при обслуживании, если какой-либо из методов проверки завершается неудачно и пользователь обращается за поддержкой.