Рейтинг:1

Можно ли получить соль на основе других компонентов зашифрованных данных?

флаг at

Я использую Fernet python.cryptography с хешированием парольной фразы PBKDF2 для шифрования части данных (значения), которая хранится в зашифрованном виде в базе данных. Хэшированная парольная фраза нет хранится в базе данных, и по этой причине ни соль. Вместо этого соль поступает из хранилища паролей в среде выполнения приложения, а затем модифицируется, чтобы сделать ее уникальной для каждого значения.

У меня есть один вопрос по этому поводу: если у злоумышленника есть парольная фраза и зашифрованные данные для одного значения, могут ли они перепроектировать соль (что помогло бы им взломать оставшиеся данные)? Что, если у них также есть копия незашифрованной версии данных для этого значения?

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

По запросу, вот как обрабатывается соль:

  1. Соль генерируется администратором (мы рекомендуем 32-байтовое случайное значение).
  2. Соль хранится в хранилище паролей (сетевая услуга)
  3. Когда приложение развернуто, соль вводится во время выполнения.
  4. Когда новые значения сохраняются, секретная соль объединяется с уникальным идентификатором значения для формирования соли для каждого значения.
  5. Эта соль затем используется с введенной пользователем парольной фразой для генерации ключа с использованием PBKDF2 (с 500 000 итераций).
  6. Затем значения пользователя шифруются своими индивидуальными ключами.

Я считаю, что вышеизложенное известно как шаблон «соль и перец».

kelalaka avatar
флаг in
Если у злоумышленника есть парольная фраза, не могут ли они использовать ее для доступа к соли? Это скорее вопрос информационной безопасности...
FuzzyChef avatar
флаг at
@kelalaka вот в чем мой вопрос: если у злоумышленника есть кодовая фраза, могут ли они использовать ее для определения соли?
kelalaka avatar
флаг in
Нет, я спрашиваю, что интерфейс не позволяет им использовать систему как обычно, когда злоумышленники получили кодовую фразу? Что еще нужно пользователю для доступа к своим данным, кроме информации об имени для входа?
FuzzyChef avatar
флаг at
Здесь мы предполагаем, что злоумышленник пытается получить пароли других людей (и, следовательно, их данные). У них его уже нет.
FuzzyChef avatar
флаг at
Соль не является частью данных.
флаг kr
@FuzzyChef: вы используете неправильную формулировку. Соль — это **общеизвестное** дополнение к паролю для предотвращения его предварительного вычисления. Если вы считаете какие-то данные секретными, то это **пароль**. Значит, то, что вы называете *солью*, не соль, а второй пароль. Таким образом, у вас есть схема с двумя паролями. Пожалуйста, перепишите свой вопрос, используя слова *"1-й пароль"* и *"2-й пароль"*.
kelalaka avatar
флаг in
Первое правило; соль не считается тайной! Мы не настраиваем безопасность на секретность соли, а скорее заставляем/учим пользователей выбирать хорошие пароли для использования. Не могли бы вы уточнить, как соль создается, модифицируется и воссоздается/доступна? Что, если ваше хранилище рухнет, и вся ваша соль исчезнет навсегда? Есть ли у вас план по смягчению такого катастрофического риска?
Swashbuckler avatar
флаг mc
Как изначально создавалась соль, прежде чем положить ее в какое-то хранилище?
FuzzyChef avatar
флаг at
@kelalaka, если соль потеряна, доступ к данным может быть потерян. Данные актуальны только в течение короткого времени (около 1 месяца), поэтому считается более приемлемым потерять их, чем рисковать их компрометацией.
FuzzyChef avatar
флаг at
Но... вы хотите сказать, что хранение соли в секрете не дает никаких преимуществ в плане безопасности? Потому что, если это так, мне действительно не нужен ответ на поставленный выше вопрос.

Ответить или комментировать

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