Ослабляет ли это хеширование и шифрование одного и того же поля? - PullRequest
5 голосов
/ 07 декабря 2010

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

Некоторые люди сказали «да», потому что теперь у них есть 2 способа его взломать.Я знаю это.Я спрашиваю о том, можно ли использовать один для облегчения взлома другого?Может ли тот факт, что поле имеет 2 варианта, как-то облегчить атакующему одно, чтобы облегчить взлом другого?Посмотрите на это так: если злоумышленнику дается только вариант А, это займет у них день.Если дан только вариант B, это займет у них 3 дня.Если атакующий выполняет оба взлома независимо, он взломает вариант A быстрее (это займет всего один день).Но если атакующему дают оба, они могут взломать один всего за 6 часов.Это то, что я спрашиваю.

Ответы [ 8 ]

4 голосов
/ 07 декабря 2010

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

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

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

2 голосов
/ 07 декабря 2010

Теоретически было бы легче получить данные;на практике стоимость атаки одного или обоих должна быть слишком велика, чтобы быть осуществимой.У большинства алгоритмов шифрования время взлома грубой силы составляет миллионы лет.То же самое для хороших алгоритмов хеширования.На самом деле вы часто можете думать о хэше как о шифровании, где вы выбрасываете ключ.Поэтому, если у вас нет миллиардов различных хэшей / зашифрованных значений, вы не сможете предоставить достаточно информации, чтобы сократить время перебора до значения.

[update]

Прежде чем кто-либо прокомментирует мой ответ (или проголосует за него), пожалуйста, прочитайте http://en.wikipedia.org/wiki/Cryptographic_hash_function. Хешированное значение и зашифрованное значение имеют одинаковую относительную силу, "сильный".Поэтому, если вы не можете связать хеш и алгоритм шифрования, хеш не предоставляет больше информации о данных, чем зашифрованная версия.

1 голос
/ 09 декабря 2010

Это явно ослабляет безопасность.Один из примеров:

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

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

1 голос
/ 09 декабря 2010

Это зависит от нескольких деталей, опущенных в вопросе. В основном это зависит от:

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

Рассмотрим сценарий, в котором хэш не засолен и каждое поле зашифровано с использованием режима AES-CTR с тем же ключом и IV.

  1. Затем атакующий выбирает значение, которое может появиться в этом поле.
  2. Затем он / она хеширует его и находит запись, в которой появляется хеш.
  3. Затем атакующий просматривает соответствующее шифрование, для которого открыт обычный текст.
  4. С помощью XOR зашифрованного текста и открытого текста злоумышленник восстанавливает поток ключей.
  5. Атакующий может расшифровать все остальное.
0 голосов
/ 08 декабря 2010

Может ли тот факт, что поле имеет 2 варианта, каким-то образом облегчить атакующему один способ облегчить взлом другого?

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

0 голосов
/ 08 декабря 2010

Если я могу вас правильно понять, вы говорите, что если хакер получит оба значения, сможет ли он расшифровать его быстрее?или, как А занимает 6 часов, В - 9 часов, если мы объединимся, сможет ли он взломать его за 4 часа?право?Ну, теоретически я верю, что он сможет взломать его быстрее, даже если это произойдет, в течение миллиарда лет.SHA512 трудно взломать (может быть практически невозможно на данный момент), и, учитывая, что шифрование ур так же трудно взломать.Тогда будет только один способ взломать это, грубой силой.Так что здесь применима простая теория вероятностей, ему повезло вдвое.Циклы процессора, время - это другая сторона медали.Но все же мы не можем сказать, что он был счастливчиком и ему повезло на его 500-й попытке, в противном случае он может получить еще один шанс стать счастливчиком.Так что теоретически это может быть проще и практически так же хорошо, но опять же он должен быть достаточно удачлив, чтобы прожить так же долго.В действительности это невозможно, так как должно быть некоторое сходство в алгоритме хеширования и шифрования, что здесь не так.

0 голосов
/ 07 декабря 2010

Да, может быть.Если строка очень короткая и кто-то ее взломает, он имеет исходное значение без необходимости знать ключ.Это особенно относится к паролям.

0 голосов
/ 07 декабря 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...