Что является альтернативой PasswordDigest, когда открытый текстовый пароль не хранится у производителя веб-службы? - PullRequest
1 голос
/ 24 июня 2010

Сценарий:

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


Безопасность веб-служб UsernameToken Profile позволяет нам добавлять заголовки мыла для этой цели.:

Элемент представлен в документах WSS: SOAP Message Security как способ предоставления имени пользователя.

Внутри элемента может быть указан элемент.Пароли типа PasswordText и PasswordDigest не ограничиваются действительными паролями, хотя это распространенный случай. (146-151)

Тип пароля PasswordText означает, что пароль передается по сети в виде простого текста, что является проблемой безопасности, если мы не используем механизмы безопасности транспортного уровня.PasswordDigest избегает отправки простых текстовых паролей и отправляет хэш.Но чтобы избежать атаки повторного воспроизведения (т. Е. Злоумышленник, использующий прослушивание для захвата хешированного пароля и повторной отправки его с другим запросом), PasswordDigest добавляет временную метку и случайное число к паролю перед вычислением хэша.Это добавление приводит к следующему ограничению:

Обратите внимание, что PasswordDigest может использоваться только в том случае, если простой текстовый пароль (или эквивалентный пароль) доступен как запрашивающей стороне, так и получателю. (196-197)


Но в нашем случае у нас нет простого текстового пароля.У меня вопрос: какие у нас есть альтернативы, чтобы сделать пароли в виде простого текста доступными на сервере?

1 Ответ

2 голосов
/ 24 июня 2010

SHA-1 может идеально использоваться в качестве "открытого текста" пароля.

  • Спросите пользователя пароль
  • преобразовать его в SHA-1
  • запустите его с помощью PasswordDigest
  • сервер будет делать то же самое с SHA-1 в базе данных
  • сервер обнаружит, что они совпадают и разрешат доступ
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...