Секреты и ложь. Безопасность данных в цифровом мире

ОглавлениеДобавить в закладки К обложке

Глава 7Криптография в контексте

Если криптография так надежна, то почему же происходят сбои в системах защиты? Почему существуют электронные кражи, мошенничество, нарушения конфиденциальности и все прочие проблемы безопасности, которые обсуждались в предыдущих главах? Почему криптография не соответствует всем без исключения требованиям безопасности? Зачем я докучаю вам такой толстой книгой?

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

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

Корни проблем безопасности следует искать в физическом мире. Материальный мир во многом нелогичен. Он неупорядочен. В нем не существует единственного пути. В нем есть теории и выводы, но для того чтобы согласиться с выводами, вам необходимо принять предпосылки, модели и взаимосвязи между теориями и реальным миром. А это непросто. Люди не играют по правилам. Они делают то, чего от них не ожидают; они не укладываются в жесткие рамки. То же самое касается технических средств: время от времени все начинает плохо работать, а то и вовсе ломается. Это же можно сказать о программном обеспечении. Оно должно быть логичным и упорядоченным, как-никак это – просто комбинация нулей и единиц, но иногда оно настолько сложно, что становится больше похожим на организм, а не на творение математики. Неважно, насколько хороша криптографическая теория: когда она используется в системе, она сталкивается с практикой.

Я часто говорю о программах, что они – лишь дань моде. Когда реклама утверждает, что используется RSA, тройной DES или любой другой модный алгоритм криптографии, это равносильно заявлению о том, что дом полностью безопасен только потому, что у него надежный дверной замок. Этого недостаточно.

Длина ключа и безопасность

Несмотря на то что я сказал в предыдущей главе, длина ключа почти ничего не определяет в безопасности.

Внутри замка на входной двери вашего дома есть множество штырьков. Для каждого из них существуют различные возможные положения. Когда кто-то вставляет ключ в замочную скважину, все штырьки перемещаются в определенные позиции. Если положение, в которое ключ ставит штырьки, как раз то, которое необходимо, чтобы замок открылся, то он открывается. Если нет – не открывается.

У замков, наиболее часто используемых в жилых домах, пять штырьков, каждый из которых может располагаться в одном из десяти различных положений. Это означает, что существует 100 000 возможных ключей. Взломщик с огромной связкой ключей может перебрать все ключи один за другим и в конце концов попасть внутрь. Ему лучше набраться терпения, поскольку если даже он тратит на один ключ 5 секунд, ему потребуется примерно 69 часов, чтобы найти подходящий ключ (и это без перерывов на сон, еду и душ).

Однажды в вашу дверь звонит торговый агент и предлагает вам купить новый замок. У его замка семь штырьков по двенадцать положений у каждого. Агент скажет, что взломщику придется три года непрерывно перебирать ключи, прежде чем он сможет открыть дверь. Почувствуете ли вы себя в большей безопасности с таким замком?

Наверное, нет. Все равно ни один взломщик не стал бы стоять перед вашей дверью 69 часов. Он, скорее всего, откроет замок отмычкой, просверлит его, вышибет дверь, разобьет окно или просто спрячется в кустах до тех пор, пока вы не отправитесь на прогулку. Замок с большим количеством штырьков и положений не обеспечит вашему дому большую безопасность, поскольку атака, которая таким образом затрудняется – перебором еще большего количества ключей – не та атака, о которой стоит задумываться особо. До тех пор пока количества штырьков достаточно, чтобы сделать недопустимой такую атаку, вам не следует о ней беспокоиться.

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


Логин
Пароль
Запомнить меня