2015-04-24 2 views
1

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

Предположим, я хочу создать услугу, которая может подключаться к удаленному серверу (через FTP или что-то еще). Если кто-то создаст учетную запись для службы, им нужно будет сохранить свои учетные данные. Естественно, вы хотите сохранить данные в безопасности, и существует множество тем для хэширования паролей. Но что, если вам нужно будет использовать этот пароль позже? В этом случае; для подключения к удаленному хосту.

Пример реальной жизни: Я пользуюсь услугами CodeAnywhere, если у меня нет доступа к компьютеру с программным обеспечением для разработки. Эта ситуация также существует.

Соединение затем переходит от сервера A к серверу B. На сервере Управление файлами (файлами) осуществляется с использованием сервера B. На сервере B создана учетная запись для использования службы с сервера B и подключение к серверу A , сохраняя данные авторизации для сервера A.

Люди создают собственные правила «хэширования», чтобы иметь возможность хранить что-то вроде mypassword как drowsappym. В этом примере пароль вернется. Но приходят на ум другие вещи: используйте точки юникода для каждого символа или создайте схему сопоставления для каждого символа (например, a=i,b=Q,c=*, and so on..). Конечно, вы не хотите только защищать пароль, но все данные авторизации.

С нетерпением жду ответов.

+0

... вы ищете что-то вроде [enpass] (http://enpass.io)? –

+0

Я не специально ищу приложение. Я ищу методы/лучшие практики для использования, когда вы хотите достичь этой цели. – Ben

+1

Как насчет использования аутентификации RSA? Предполагая, что вы можете перенести свой секретный ключ? –

ответ

1

Я хотел бы объяснить два способа использования.

  1. Использование mcrypt_encrypt для хранения шифрования пароля, а затем использовать mcrypt_decrypt, чтобы получить простой текстовый пароль.
  2. Если вы работаете с MySQL, то вы должны также взглянуть на DES_ENCRYPT

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

+0

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

+0

Если вы используете mcrypt_encrypt, даже если ваша БД была взломана, и у вас есть хранилище ключей в файле PHP, не будет возможности расшифровать (легко). Но если ваша система взломана, тогда нет способа защитить пароль как некоторые, где в вашей логике в какой-то момент будет способ decrpyt.Вот почему мы обычно используем нереверсивный хэш для хранения паролей – Sid

+0

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