Как защитить аутентификацию, но не полезную нагрузку? - PullRequest
1 голос
/ 01 марта 2009

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

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

Отредактировано, чтобы добавить:

Это для настольного клиента, разговаривающего с веб-службой (без браузера)

Ответы [ 4 ]

4 голосов
/ 01 марта 2009

Популярная схема заключается в том, чтобы форма входа защищалась SSL, тогда как остальная часть сайта не использует SSL. См. Например, популярные сайты социальных сетей.

1 голос
/ 01 марта 2009

Можно ли как-то структурировать исходный URL-адрес запроса, чтобы указать пользователя? Затем сервер мог бы ответить с различными различными областями (действуя как «соль») для каждого пользователя в ответе дайджест-аутентификации HTTP. Например, URL-адреса запроса в форме http://user.y.com/service или http://www.y.com/user/service приведут к ответу на вызов, например:

WWW-Authenticate: Digest realm="user@y.com", nonce="oqa9hvq49krprkphtqc"

Можете ли вы объяснить, что движет мандатом "без шифрования"? Если вы подвергаетесь атакам типа «человек посередине», вам необходимо защищать целостность всего запроса. Там SSL был бы очень полезен. Если вы абсолютно не можете использовать шифрование, будет ли приемлем SSL для использования незашифрованного набора шифров?

1 голос
/ 01 марта 2009

Почему бы просто не защитить ваш механизм аутентификации с помощью SSL, а затем переслать его остальным приложениям, работающим по обычному HTTP?

1 голос
/ 01 марта 2009

Как насчет OpenID? Есть ли причина, по которой вам нужно хранить информацию для аутентификации?

Отредактировано, чтобы добавить

Извините, не понял, что это настольное приложение. Как насчет OAuth ?

...