Почему криптосистемы ненадежны
В настоящее время криптография успешно используется почти во всех информационных системах – от Internet до баз данных. Без нее обеспечить требуемую степень конфиденциальности в современном, до предела компьютеризированном мире уже не представляется возможным. Кроме того, с помощью криптографии предотвращаются попытки мошенничества в системах электронной коммерции и обеспечивается законность финансовых сделок. Со временем значение криптографии, по всей вероятности, возрастет. Для этого предположения имеются веские основания.
Однако с огорчением приходится признать, что подавляющее большинство криптографических систем не обеспечивает того высокого уровня защиты, о котором с восторгом обычно говорится в их рекламе. Многие из них до сих пор не были взломаны по той простой причине, что пока не нашли широкого распространения. Как только эти системы начнут повсеместно применяться на практике, они, словно магнит, станут привлекать пристальное внимание злоумышленников, которых сегодня развелось великое множество. При этом удача и везение будут явно на стороне последних. Ведь для достижения своих целей им достаточно найти в защитных механизмах всего лишь одну брешь, а обороняющимся придется укреплять все без исключения уязвимые места.
Реализация
Понятно, что никто не в состоянии предоставить стопроцентную гарантию безопасности. Тем не менее, криптографическую защиту без особых усилий можно спроектировать так, чтобы она противостояла атакам злоумышленников вплоть до того момента, когда им станет проще добыть желаемую информацию другим путем (например, с помощью подкупа персонала или внедрения программ-шпионов). Ведь криптография действительно хороша именно тем, что для нее уже давно придуманы эффективные алгоритмы и протоколы, которые необходимы, чтобы надежно защитить компьютеры и компьютерные сети от электронного взлома и проявлений вандализма.
Вот почему в реальной жизни криптографические системы редко взламываются чисто математическими методами. Ведь криптографический алгоритм или протокол от его практической реализации в виде работающей программы, как правило, отделяет зияющая пропасть. Даже доказанный по всем правилам формальной логики факт, что криптографическая защита совершенна с математической точки зрения, совсем не означает, что она останется таковой после того, как над ее внедрением поработают программисты.
Известно, что под давлением бюджетных ограничений, дефицита времени и личных неурядиц программисты неизбежно допускают весьма серьезные ошибки при реализации алгоритмов – используют плохие датчики случайных чисел для генерации криптографических ключей, не учитывают специфику аппаратной среды, в которой предстоит эксплуатировать созданные ими программные средства, а также регулярно забывают удалять ключевую и другую секретную информацию из оперативной памяти компьютера или с магнитного носителя после того, как надобность в ее хранении там отпала. Единственный способ научиться избегать этих и им подобных ошибок состоит в том, чтобы вновь и вновь стараться создать совершенные системы криптографической защиты данных, а потом не менее упорно пытаться их взломать.
Конечно, после того как брешь в системе криптографической защиты найдена, ее довольно легко можно залатать. Но сам поиск подобного рода дефектов является невероятно сложной задачей. Никакое предварительное тестирование не поможет обнаружить в криптографической системе все дефекты, поскольку ни один тест в отдельности не может дать полной гарантии их отсутствия. Ведь если программа шифрования правильно зашифровывает и расшифровывает файлы, это еще совсем не значит, что она надежно защищает их содержимое.
Учет реальных потребностей пользователей
Немало проблем, связанных с использованием криптографических средств, создают сами пользователи. Безопасность заботит их меньше всего. В первую очередь им требуются простота, удобство и совместимость с уже существующими (как правило, недостаточно защищенными) программными продуктами. Они выбирают легко запоминающиеся криптографические ключи, записывают их где попало, запросто делятся ими с друзьями и знакомыми. Поэтому грамотно спроектированная криптографическая система обязательно должна принимать во внимание специфические особенности поведения людей.
Еще труднее оказывается убедить людей в необходимости строго и неукоснительно применять криптографическую защиту данных. Пользователи с готовностью приносят в жертву собственную безопасность, если средства ее обеспечения мешают им поскорее сделать свою работу. Поэтому только в случае, если при проектировании криптографической системы были учтены реальные потребности пользователей, она действительно в состоянии защитить их компьютеры и компьютерные сети.