Опасно хранить хорошо хэшированный пароль и метод, используемый для его хеширования, на виду?

Я разрабатываю клиентское приложение на C #, которое будет взаимодействовать с сервером (php-страницей) для получения учетных данных и некоторых важных служб. Мне интересно, опасно ли хранить хорошо хешированный пароль на машине клиента? Под «хорошо хешированным» я подразумеваю случайное начальное число с использованием хорошо известной функции безопасного хеширования. Для целей этого обсуждения предположим, что исходный код находится в свободном доступе (поскольку все двоичные файлы могут быть реконструированы).

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

  1. Сможет ли злоумышленник сделать что-нибудь с хешированным паролем и кодом, используемым для создания хеша? (кроме входа в систему в качестве другого пользователя, если они получили эту информацию)
  2. Что делают другие клиентские приложения, чтобы предотвратить вход одного пользователя в систему в качестве другого пользователя, если хакер не имеет доступа к исходному паролю? (например, Steam)
  3. Есть ли простой, дешевый (как по стоимости, так и по времени) более безопасный способ справиться с этим?

Пример того, как хакер может подделать чужие учетные данные, используя мою текущую логику:

  1. Законный пользователь входит в систему впервые, учетные данные сохраняются
  2. Хакер получает доступ к файловой системе, находит имя пользователя и хешированный пароль
  3. Хакер модифицирует исходный код (или использует инъекцию кода), чтобы отправить полученное имя пользователя и хешированный пароль вместо того, что обычно делает программа

Продукт, который я производю, не будет следующим ebay , facebook или stackexchange и имеет небольшой бюджет. Мне не нужно что-то первоклассное, и я не забочусь о кражах, так как планирую использовать модель «Плати сколько хочешь». Я публикую это в основном из любопытства.

6
задан John McDonald 25 January 2011 в 23:09
поделиться