Защита паролей пользователей в настольных приложениях

StackOverflow https://stackoverflow.com/questions/225475

  •  03-07-2019
  •  | 
  •  

Вопрос

Я создаю клиент Twitter и оцениваю различные способы защиты данных для входа пользователя.

  • Хеширование, видимо, этого не делает
  • Обфусцировать обратимым образом — это все равно, что пытаться спрятаться за пальцем.
  • Простой текст звучит и, возможно, является беспорядочным.
  • Требование от пользователя каждый раз вводить свой пароль сделало бы приложение утомительным.

Есть идеи ?

Это было полезно?

Решение

Вы можете сделать несколько вызовов ОС, чтобы зашифровать пароль.

В Windows:

  • Вы можете зашифровать файл (в файловой системе NTFS).
  • Использовать ДПАПИ от С
  • Используйте DPAPI в .Net, используя Защищенные данные сорт

Другие советы

CryptProtectData — это функция Windows для хранения такого рода конфиденциальных данных.

http://msdn.microsoft.com/en-us/library/aa380261.aspx

Для примера посмотрите, как Chrome его использует:
http://blog.paranoidferret.com/index.php/2008/09/10/how-google-chrome-stores-passwords/

Для Windows:зашифруйте пароль с помощью DPAPI (хранилище пользователей) и сохраните его в файле настроек или где-нибудь еще.Это будет работать для каждого пользователя, например.разные пользователи на одном компьютере будут иметь разные несвязанные ключи шифрования.

Какая платформа?

В *nix храните пароль в виде обычного текста в файле с chmoded 400 в подкаталоге домашнего каталога.См., например, ~/.subversion.Администраторы в любом случае могут делать с пользователями все, что захотят, включая замену вашей программы своей собственной взломанной версией, которая перехватывает пароли, поэтому тот факт, что они могут видеть файл, не причинит вреда.Помните, что пароль также доступен тому, кто вынимает этот жесткий диск - если это проблема, либо попросите пользователя каждый раз вводить пароль повторно, либо проверьте, имеет ли эта версия *nix шифрование файлов.

В Windows Pro храните пароль в зашифрованном файле.

В Windows любительской версии сделайте то же, что и *nix.[Редактировать:По мнению Алерис, CryptProtectData выглядит хорошо.Если он доступен во всех Windows, то он решает проблему только более дорогих версий, поддерживающих зашифрованные файлы].

В Symbian сохраните пароль в своем хранилище данных.Программы с разрешением AllFiles редки и в любом случае предположительно заслуживают доверия, что-то вроде администраторов *nix.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top