21.3. Почему ключи изнашиваются
367
падать для двух разных приложений или инфраструктур открытого ключа.
Этого легко добиться, включив в подписываемую строку данные, которые
уникальным образом идентифицируют приложение и инфраструктуру от-
крытого ключа.
21.3
Почему ключи изнашиваются
Уже не раз отмечалось, что ключи следует периодически менять, но по-
чему?
В идеальном мире один и тот же ключ мог бы использоваться на протя-
жении очень долгого времени. При отсутствии слабых мест в защите системы
злоумышленнику не остается ничего другого, как проводить поиск путем пол-
ного перебора вариантов. Теоретически это сводит нашу
проблему к задаче
выбора ключей достаточно большого размера.
К сожалению, наш мир не идеален. Секретность ключа всегда находит-
ся под угрозой. Ключ нужно где-то хранить, и злоумышленник может туда
добраться. Ключ также может находиться в использовании, а каждое при-
менение ключа несет в себе еще одну потенциальную угрозу его безопасно-
сти. Ключ должен быть передан из места своего хранения туда, где будут
проводиться вычисления. Зачастую процесс передачи ключа ограничивается
рамками одного компьютера, но и это открывает для злоумышленника оче-
редную возможность нападения. Если злоумышленник может прослушивать
канал общения, который применяется для передачи ключа, он непременно
получит копию этого ключа. И наконец, над ключом выполняются разнооб-
разные криптографические операции. Мы не знаем сколько-нибудь полезных
криптографических функций, которые бы имели доказательства своей без-
опасности. В их основе обычно лежат сомнительные аргументы наподобие:
“Пока что никому из нас не удалось обнаружить
способ нападения на эту
функцию, поэтому она выглядит вполне безопасной”
1
.
Чем дольше мы храним ключ и чем больше его используем, тем выше ве-
роятность того, что злоумышленнику удастся его взломать. Если мы хотим
ограничить вероятность того, что злоумышленник узнает ключ, следует огра-
ничить время жизни этого ключа. По сути, ключ как будто изнашивается.
Существует еще одна причина, требующая ограничить время жизни клю-
ча. Предположим, в системе произойдет что-нибудь неприятное и злоумыш-
1
То, что часто называют “доказательством безопасности” криптографических функций,
на деле таковым не является. Подобные доказательства представляют собой не более чем
простое логическое приведение: если мы можем взломать функцию A, то можем взломать
и функцию Б. Это позволяет сократить количество примитивных операций, выполнение
которых предполагается безопасным, однако это ни в коей мере не является реальным
доказательством безопасности.