Как мы можем сохранить пароль кроме простого текста?

Я нашел многочисленные сообщения на stackoverflow о том, как сохранить пароли пользователя. Однако я должен знать то, что лучший способ состоит в том, чтобы сохранить пароль, что мое приложение должно общаться с другим приложением через сеть? В настоящее время наше веб-приложение должно передать данные к удаленному веб-сайту. Для загрузки данных наше веб-приложение читает пароль из текстового файла и создает заголовок с полезными нагрузками и отправляет через https.

Этот пароль в простом тексте в файловой системе является проблемой. Там какой-либо путь состоит в том, чтобы сохранить пароль более надежно?

Это - OS Linux, и приложение записано в Python и не компилируется.

Спасибо!

Дальнейшее разъяснение: нет никаких пользователей, вовлеченных в этот процесс вообще. Пароль, сохраненный в файловой системе, используется другим веб-приложением для аутентификации веб-приложения, которое выполняет запрос. Помещать его в слова комментатора ниже: "В этом случае приложение является клиентом к другому удаленному приложению". (Благодарен за то, что Joe помогает мне разъясниться.)

19
задан 18 April 2010 в 22:26
поделиться

7 ответов

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

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

5
ответ дан 30 November 2019 в 05:25
поделиться

Вы можете сохранить его как результат хэш-алгоритма, это односторонний алгоритм (например, MD5 или SHA). При аутентификации вы вычисляете MD5 пароля, введенного пользователем, и проверяете совпадение с вашим сохраненным хешем пароля MD5 для этого пользователя. Если он равен, пароль в порядке.

Для получения дополнительной информации об алгоритмах хеширования посетите:

-1
ответ дан 30 November 2019 в 05:25
поделиться

Не думаю, что вы найдете надежный способ сделать это. Я бы предложил комбинацию вещей для достижения «безопасности посредством неизвестности»:

  • сохранить файл паролей на другом компьютере, чем тот, который будет его использовать
  • сохранить путь к файлу в отдельном файле конфигурации в приложении nachine
  • ​​используйте разрешения, чтобы ограничить доступ к файлам конфигурации и паролей для вашего процесса только
  • доступ к файлам аудита, если ваша система позволяет это (ведите журнал, кто коснулся файлов)
  • дайте папкам и файлам безобидные имена (/ usr / joe / котята.txt?)
  • заблокировать физический доступ к компьютеру (компьютерам) (внешний хостинг, запертый шкаф или что-то в этом роде)
4
ответ дан 30 November 2019 в 05:25
поделиться

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

0
ответ дан 30 November 2019 в 05:25
поделиться

Я не думаю, что вы понимаете предоставленные ответы. Вы никогда нигде не храните пароль в виде простого текста и не передаете его на другое устройство.

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

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

  1. получить пароль P от пользователя
  2. сохранить зашифрованный (например, соленый хеш) пароль Q где-нибудь относительно безопасно
  3. забыть P (даже очистить буфер, который вы использовали для его чтения)
  4. отправить Q на удаленный хост H
  5. H получает пароль P 'от пользователя, когда {{ 1}} required
  6. H вычисляет Q 'из P', сравнивает Q ' с Q на равенство
-3
ответ дан 30 November 2019 в 05:25
поделиться

Размещено ли ваше веб-приложение на ферме? В противном случае такая технология, как DPAPI , позволит вам зашифровать пароль, чтобы его можно было расшифровать только на той машине, на которой он был зашифрован.

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

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

РЕДАКТИРОВАТЬ: DPAPI хорош, только если вы, конечно, размещаете на Windows ...

-1
ответ дан 30 November 2019 в 05:25
поделиться

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

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

0
ответ дан 30 November 2019 в 05:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: