Использование SSL и двухфакторной аутентификации в системах автоматизации документооборота

15 Июля 2014 12:33
0

Многие знают про возможность использования SSL (Secure Sockets Layer), но не все задумываются какие именно задачи он решает.

Собственно, SSL - это криптфографический протокол, обеспечивающий безопасную связь. Он является достаточно распространенным, и более подробную информацию о его составляющих можно получить, например, в Википедии. Для доступа к интернет-ресурсам SSL используется в протоколе HTTPS (HyperText Transfer Protocol Secure). От классического HTTP его отличает использование шифрования и передача данных с использованием SSL. Использование HTTPS позволит шифровать трафик, в отличие от классического HTTP, где информация, в том числе логины и пароли передаются в текстовом виде (и при помощи, например, ngrep/tshark или чего-то подобного - мы всегда можем их получить, находясь на пути следования пакета).

Использование SSL и двухфакторной аутентификации в системах автоматизации документооборота

Использование SSL и двухфакторной аутентификации в системах автоматизации документооборота

При использовании интернета для систем автоматизации документооборота возникает еще и другая проблема: когда сотрудники хранят свой пароль на стикере, прилепленном на монитор. В этом случае введение дополнительных требований к сложности пароля и регулярному его изменению не влияют на безопасность системы в целом. Чтобы максимально исключить влияние человеческого фактора можно использовать двухфакторную аутентификацию для веб-доступа.

Первым фактором аутентификации является логин и пароль пользователя. В качестве второго фактора аутентификации можно использовать одноразовые пароли, передаваемые в виде SMS-сообщений на телефон зарегистрированного пользователя. Использование SMS в качестве транспорта - удобное, простое и распространенное решение. Разумеется, наряду с SMS существуют варианты использования токенов и получения пароля по электронной почте. Токены - не самое удобно решение, так как придется покупать отдельный токен для каждого пользователя и ставить на компьютеры пользователей дополнительное ПО. Вариант получения паролей по электронной почте, обычно, не используется из-за того, что не у всех пользователей есть доступ к электронной почте в тот момент времени, когда они хотят авторизоваться в системе.


Схематично двухфакторная аутентификация выглядит так:

клиент -> [https transport] -> unified access gateway -> [radius transport] -> swivel -> [smpp] -> sms gate -> [sms] -> клиент клиент -> [https transport] -> unified access gateway -> [radius transport] -> swivel -> [ldap] -> ad клиент -> [https transport] -> unified access gateway -> [https] -> apache/nginx/iis -> [firebird data] -> firebird server


Простая реализация схемы выглядит так:

  1. Пользователь подключается по полученной ссылке к прокси серверу, вводит свой логин и пароль.
  2. UAG передает логин/пароль серверу Swivel по RADIUS протоколу.
  3. Swivel проверяет наличие такого пользователя, правильность пароля и сообщает UAG об успехе/неуспехе первого этапа аутентификации.
  4. При успешном первом этапе Swivel отправляет одноразовый код через SMS шлюз.
  5. Пользователь получает код на свой телефон и вводит его на прокси сервере.
  6. UAG передает код серверу Swivel и получает ответ об успехе/неуспехе второго этапа аутентификации.
  7. При успешном вводе кода пользователь получает доступ к серверу.
Наряду со Swivel можно использовать RSA или Aladdin. RSA - дорогой продукт с широким спектром возможностей, что для описанной задачи "как из пушки по воробьям палить". Aladdin и Swivel похожи по функционалу и находятся в одном ценовом диапазоне. Основное отличие Swivel в том, что у Swivel лицензия постоянная, а у Aladdin - годовая или двухгодичная.