Глава 9. Проблемы реализации. Часть I
программного обеспечения, которое реализует криптографическую систему,
а другие — с помощью самого аппаратного обеспечения.
Попытки предотвратить атаки с использованием побочных каналов на-
поминают мышиную возню. Мы пытаемся защитить систему от известных
побочных каналов, а в это время какой-нибудь хитроумный злоумышленник
находит новый побочный канал, после чего нам приходится вернуться назад
и учесть еще один тип атаки. В реальной жизни, к счастью, все обстоит не так
плохо, поскольку в большинстве случаев атаки с использованием побочных
каналов выполнить весьма сложно. Побочные каналы представляют огром-
ную опасность для смарт-карт, потому что последние находятся под полным
контролем злоумышленника, однако большинство других компьютерных си-
стем гораздо меньше страдают от подобных нападений. На практике наи-
более важными побочными каналами являются время выполнения операции
и радиоизлучение. (Смарт-карты, в свою очередь, особенно чувствительны
к измерению энергопотребления.)
9.6
Заключение
Надеемся, что эта глава донесла до вас одну важную вещь: безопасность
системы не начинается с криптографии и не заканчивается ею. В обеспече-
нии безопасности должны принимать участие все компоненты системы. Вот
почему все так не любят людей, занимающихся безопасностью: они суют свой
нос абсолютно во все дела, советуют всем и каждому, как нужно работать,
да еще и запрещают использовать кучу полезных вещей только потому, что
они, видите ли, небезопасны.
Реализация криптографических систем уже сама по себе является искус-
ством. Наиболее важным аспектом этого процесса служит качество кода.
Низкое качество кода — одна из наиболее распространенных причин осу-
ществления атак на реальные системы, а ведь избежать этого очень легко.
По своему опыту мы знаем, что написание высококачественного кода занима-
ет практически столько же времени, как и написание кода плохого качества
(разумеется, если считать от начала работы до получения законченного про-
дукта, а не первой версии программы с кучей ошибок). Будьте безжалостны
по отношению к качеству своего кода. Оно может и должно быть достигнуто!
В идеале мы бы переделали все окружение, с которым приходится рабо-
тать, включая язык программирования и операционную систему. Основной
целью нашей грандиозной переделки стала бы безопасность, безопасность
и еще раз безопасность. Мы бы с удовольствием поработали над этим проек-
том, поэтому свяжитесь с нами, если захотите потратить несколько миллио-
нов долларов на компьютер, которому
действительно можно доверять.