Сравнение хэша SHA1 для входа в учетную запись WordPress - PullRequest
0 голосов
/ 11 февраля 2011

Я полностью потерян на этом. У меня есть клиент, который попросил меня создать xml api для использования с приложением iphone на его веб-сайте. Разработчик приложения для iphone отправляет значения аутентификации с зашифрованным паролем SHA1.

Как я могу проверить правильность имени пользователя (простой текст) и пароля (Sha1) ??

Я читаю class.phpass.php и plugable.php, но не могу понять.

1 Ответ

1 голос
/ 11 февраля 2011

Это займет немного работы. Пароль WP хранится как соленый хеш MD5, который не может совпадать с SHA1, который вы отправляете. Кроме того, поскольку «открытый текст» пароля не сохраняется, у вас нет его для автоматической генерации дополнительного значения SHA1.

Вот несколько советов о том, как решить эту проблему:

  1. Подключите приложение по протоколу HTTPS, а затем отправьте открытый текст пароля. Это наиболее безопасный и требует наименьшей переработки кода WP, но он может быть вам недоступен.
  2. Пусть приложение отправит пароль, зашифрованный симметричным шифром, причем и приложение, и WP знают секретный ключ. Управление секретным ключом в нескольких местах рискованно. Вы в значительной степени должны предположить, что это в конечном счете протечет, и тогда любая безопасность выходит из окна.
  3. Когда пользователь успешно входит в WP (или когда он создается, или когда он меняет свой пароль), создайте мета-значение пользователя, которое является SHA1 пароля. Затем он доступен для будущей аутентификации с приложением.

В зависимости от особенностей сайта, пункты № 2 и № 3 на самом деле не защищены. № 2 просто ожидает взлома, и если № 3 не происходит по зашифрованному соединению, он эффективно отправляет пароль открытого текста (в форме SHA1) по сети.

Если вы не можете заставить разработчика приложения сделать # 1, тогда я предлагаю вам воспользоваться # 3 и надеяться, что никто не будет заинтересован в информации, которой управляет сайт.

...