Где хранить конфиденциальную информацию? - PullRequest
2 голосов
/ 21 декабря 2011

Я разработал одно настольное приложение в Java, в котором я взял учетные данные пользователя. Я разработал это приложение, чтобы оно работало на любой платформе. Теперь путаница в том, что я получаю, где хранить эту учетную информацию. Является ли файл правильным расположением для него? Или я должен хранить его в соответствии с используемой пластиной? Как и в Windows, я могу использовать реестр для хранения этой информации. Но как насчет Linux и других платформ? Есть ли какое-нибудь стандартное решение, которое может помочь мне, или использование файла - единственный способ сделать это? Сначала я думал сохранить его в файле свойств, но любой знающий человек может просмотреть содержимое банки и может иметь этот файл свойств, так что я думаю, что это также не подходящее решение. Пожалуйста, скажите мне лучший способ хранить эти учетные данные. Учетные данные зашифрованы.

Ответы [ 3 ]

4 голосов
/ 21 декабря 2011

Шифрование пароля - лучший вариант в этом случае.Таким образом, вы можете сохранить его в файл.Никогда не храните пароль в виде простого текста - в файле, базе данных или где-либо еще.Я думаю, что это довольно обширная и полезная статья на эту тему: http://www.codeproject.com/KB/recipes/StoringPasswords.aspx.

3 голосов
/ 21 декабря 2011

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

Используя его, вы получаете 3 уровня безопасности:

  1. Только пользователи с доступом к домашнему каталогу (пользовательсама и любые администраторы) имеют доступ к файлу.У вас также может быть несколько файлов - по одному на пользователя.
  2. Файл зашифрован, поэтому дешифровать могут только те, кто имеет доступ к ключу дешифрования и кто знает метод шифрования.
  3. Учетные данныезашифрованы, как правило, с использованием асинхронного алгоритма.Таким образом, обычный текст не может быть восстановлен без разумных усилий.
1 голос
/ 21 декабря 2011

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

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

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

...