Двухфакторная аутентификация — предоставление информации для входа в систему от двух различных типов аутентификации, в большинстве случаев первым источником является имя пользователя и пароль, которые являются неизменными и могут быть скомпрометированы (троянами, кейлоггерами и.т.д.). Для этого и применяется второй тип аутентификации, какое либо устройство, которое генерирует уникальный временный пароль/код, действующий в течении короткого периода (5-30 секунд), что обеспечивает безопасность даже если временный пароль перехвачен.
Кроме того, временный пароль генерируется устройствами, не подверженными рискам перехвата, обычно аппаратными ключами, например такими:
Citrix Web Interface «из коробки» поддерживает двухфакторную аутентификацию с использованием аппаратных ключей Aladdin SafeWord и RSA SecurID, стоимость которых колеблется в пределах 25-50USD, а также двухфакторную аутентификацию с использованием RADIUS сервера, с помощью которой можно подключать ключи подешевле (около 5USD)
В целях еще большей экономии для этой же цели можно воспользоваться софт-токенами на мобильных телефонах. Кстати, целью внедрения софт-токенов может быть также удобство для конечного пользователя — аппаратный ключ это дополнительное устройство, которое нужно всегда иметь при себе, а телефон у большинства юзеров и так все время под рукой.
Бесплатных софт-токенов для телефонов на рынке достаточно много, например Google Authenticator, но наш выбор пал на проект Mobile-OTP по следующим причинам:
- наличие клиентов для всех телефонов (а не только для ios/android/blackberry) — J2ME,WP7,PalmOS,webOS,Maemo,Openmoko
- дополнительная защита пинкодом (чего нет в Google Authenticator), то есть даже при утере устройства временный пароль без пина не сгенерится
- Наличие исходников для всех клиентов — можно пересобрать со своим брендингом, если очень надо