Проверка подлинности / контроль доступа приложений к приложениям без HTTPS

В текущем проекте, над которым я работаю, у нас есть следующая проблема.

Наше программное обеспечение является платформой служб на основе определения местоположения, и приложения могут подключаться и использовать наши службы через открытые веб-службы с использованием протокола SOAP. До сих пор наша платформа использовалась только внутренними приложениями, но теперь мы хотели бы открыть ее для сторонних приложений. Для этого нам понадобится механизм аутентификации.

Из-за инфраструктуры и решения для балансировки нагрузки наших клиентов мы не можем использовать HTTPS. Первоначальная идея заключалась в том, что приложения могут просто использовать HTTPS и отправлять пароль, который мы проверяем.

Решение может быть следующим: У приложения есть пароль. Приложение генерирует случайную строку (соль) и создает хеш. Затем приложение создает HTTP-запрос, отправляя хэш, соль и временную метку. Этих трех достаточно для аутентификации, так как мы можем сгенерировать один и тот же хэш и сравнить.

Моя проблема в том, что для этого нам нужно сохранить пароль в нашей базе данных в виде открытого текста, потому что нам нужно проделать тот же процесс, используя заданную соль, чтобы мы могли сравнить результат и аутентифицировать приложение. Хранение паролей в открытом виде недопустимо.

Знаете ли вы о каком-либо механизме аутентификации / контроля доступа, который подошел бы к этой ситуации? Как правило, знаете ли вы о каких-либо хороших книгах / источниках о механизмах аутентификации / контроля доступа приложений?

Любая помощь приветствуется. Заранее спасибо!

5
задан TMS 12 October 2011 в 15:36
поделиться