Сбой при отправке в Amazon AppStore: «конфиденциальная информация, такая как пароль, отображается в виде открытого текста без шифрования» - PullRequest
4 голосов
/ 03 августа 2011

Я отправил заявку в магазин приложений amazon, и она была отклонена со следующими данными:

конфиденциальная информация, такая как пароль, отображается в виде открытого текста без Шифрование

Очевидно, что это не очень хорошая вещь ... однако я рассмотрел код приложения. Пароль пользователя хранится в личных настройках в виде хеша MD5 (он переходит прямо из текстового поля в хеш md5 в префы и не регистрируется и нигде не записывается в виде открытого текста.

Когда мы отправляем запросы в наш веб-API (через http), мы публикуем заголовок с именем пользователя и хэшем следующей объединенной строки (nonce + timestamp + passwordHash) (вместе с некоторыми другими битами).

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

Будем весьма благодарны за любые мысли или идеи о том, как можно устранить эту конкретную ошибку: -)

Спасибо!

Ответы [ 2 ]

5 голосов
/ 18 октября 2011

Просто чтобы замкнуть цикл на этом. Я отправил электронное письмо амазонке, и они дали мне больше деталей ... оказалось, что я отправлял пароль в виде открытого текста на странице регистрации. все остальное было в порядке.

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

0 голосов
/ 22 октября 2011

Ваша схема хеширования нарушена. Хешируя пароль и затем используя этот хэш, как вы делаете, вы просто переопределяете, что такое пароль в виде открытого текста.

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

Я бы тоже:

1) Сохраните хеш (используя bcrypt или аналогичный) на сервере. Затем отправьте простой текстовый пароль на сервер и используйте SSL для обеспечения безопасности транспорта.

2) Используйте SRP . Но НЕ реализуйте это сами. Это печально известно тем, что трудно правильно реализовать. Очень легко ошибиться и получить небезопасный логин.

Оба они более безопасны, чем ваша текущая система.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...