У нас есть типичная веб-система входа в систему. Мы хотим, чтобы у клиентов была возможность создавать «ссылку для входа», которая никогда не истекает и включает их пароль. Поэтому мы хотим создать ссылку, которая включает их пароль в зашифрованном виде. ПРИМЕЧАНИЕ. Я знаю, что лучший способ - это таблица поиска, в которой каждая ссылка имеет уникальный ключ ... Я не буду вдаваться в подробности, почему это не сработает для нас; не будет.
Я не знаком с шифрованием с открытым ключом .. Может это то, что мне нужно?
Вот о чем я думаю. Этого все еще может быть недостаточно, поэтому дайте мне знать:
Определение: пароль пользователя относится к паролю пользователя, который мы хотим в зашифрованном виде в ссылке.
Мы не можем использовать один ключ шифрования для всех паролей пользователей, потому что можно получить ключ шифрования, генерируя множество ссылок, поэтому ...
Используйте стандартную форму симметричного шифрования.
На сервере есть текстовый файл с 1000 сложными ключами шифрования.
Когда создается ссылка (с использованием сценария PHP, который имеет этот список), один из 1000 ключей шифрования выбирается для шифрования их пароля в виде открытого текста (выбирается последовательно, а не случайным образом, чтобы предотвратить выбор того же самого близко к тому же времени) .
Перед тем как зашифровать пароль пользователя, добавьте в его начало что-то вроде «s345lm34l5k342342343534432324sdfs», чтобы «засолить» его. (Пример: пароль1 становится s345lm34l5k342342343534432324sdfspassword1). «Соление» затрудняет дешифрование от атак по словарю. Эта соль хранится в тайне. Но, конечно, есть риск, что он может быть взломан, и это единственная соль для всех паролей, так что ...
Вдобавок к паролю добавляется вторая случайно сгенерированная соль. Эта соль зашифрована одним надежным паролем. Поскольку и соль, и пароль, шифрующий ее, представляют собой случайный набор байтов, становится сложнее определить соль.
Инструмент создания ссылок позволяет создавать только 15 ссылок каждые 10 минут, а затем блокирует IP-адрес.
- Инструмент создания ссылок не генерирует ссылки, если предоставленный ему пользователь / пароль не является действующей комбинацией пользователя и пароля. Таким образом, если кто-то просто попытается сгенерировать ссылки для определения информации о шифровании, это не сработает. Тем не менее, теоретически они могут получить действующий пользователь / пароль и попытаться подобрать пароль.
Это безопасно?