Включить зашифрованный пароль в URL-адрес? Возможный?

У нас есть типичная веб-система входа в систему. Мы хотим, чтобы у клиентов была возможность создавать «ссылку для входа», которая никогда не истекает и включает их пароль. Поэтому мы хотим создать ссылку, которая включает их пароль в зашифрованном виде. ПРИМЕЧАНИЕ. Я знаю, что лучший способ - это таблица поиска, в которой каждая ссылка имеет уникальный ключ ... Я не буду вдаваться в подробности, почему это не сработает для нас; не будет.

Я не знаком с шифрованием с открытым ключом .. Может это то, что мне нужно?

Вот о чем я думаю. Этого все еще может быть недостаточно, поэтому дайте мне знать:

Определение: пароль пользователя относится к паролю пользователя, который мы хотим в зашифрованном виде в ссылке.

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

  • Используйте стандартную форму симметричного шифрования.

  • На сервере есть текстовый файл с 1000 сложными ключами шифрования.

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

  • Перед тем как зашифровать пароль пользователя, добавьте в его начало что-то вроде «s345lm34l5k342342343534432324sdfs», чтобы «засолить» его. (Пример: пароль1 становится s345lm34l5k342342343534432324sdfspassword1). «Соление» затрудняет дешифрование от атак по словарю. Эта соль хранится в тайне. Но, конечно, есть риск, что он может быть взломан, и это единственная соль для всех паролей, так что ...

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

  • Инструмент создания ссылок позволяет создавать только 15 ссылок каждые 10 минут, а затем блокирует IP-адрес.

  • Инструмент создания ссылок не генерирует ссылки, если предоставленный ему пользователь / пароль не является действующей комбинацией пользователя и пароля. Таким образом, если кто-то просто попытается сгенерировать ссылки для определения информации о шифровании, это не сработает. Тем не менее, теоретически они могут получить действующий пользователь / пароль и попытаться подобрать пароль.

Это безопасно?


person SilentSteel    schedule 14.06.2012    source источник
comment
Чтобы быть ясным, вторая соль является публичной частью ссылки. (Хотя он зашифрован.)   -  person SilentSteel    schedule 14.06.2012
comment
как определить, какой из 1000 ключей доступа использовался при анализе пароля, отправленного по URL-адресу?   -  person bkr    schedule 14.06.2012
comment
@bkr Я забыл упомянуть, что бэкэнд отслеживает использованный ключ.   -  person SilentSteel    schedule 04.06.2014


Ответы (1)


Нет, потому что зашифрованный пароль стал паролем. Вы пробовали SSL? SSL должен решить ваши проблемы, вы можете просто использовать простой URL-адрес на уровне HTTP.

person Maarten Bodewes    schedule 14.06.2012
comment
Я думаю, что это достаточно хороший аргумент, чтобы принять его как ответ. Нам нужно будет разработать систему по-другому, поскольку нам нужен способ отозвать доступ. - person SilentSteel; 04.06.2014