Подписывание кода (Codesigning). Представьте себе закрытую частную вечеринку, попасть на которую реально, только предъявив какой-нибудь солидный документ (например, водительские права). При таком подходе в дом смогут пройти только друзья хозяина. Такой же смысл имеет подписывание кода. Программист подписывает отдельные компоненты. На основании этих подписей пользователь принимает решение, какие компоненты допустить на свой компьютер, а какие – нет. (В случае ActiveX подписывание кода – основной способ защиты от злонамеренного кода.) В своем сегодняшнем виде подписывание кода имеет массу проблем. Во-первых, непонятно, исходя из каких соображений пользователь должен решать, заслуживает ли доверия автор подписи. Во-вторых, сам факт существования подписи у компонента не означает, что он безопасен. В-третьих, то, что каждый из двух компонентов имеет подписи, не означает, что их можно использовать вместе: совместная работа чревата множеством непредвиденных опасных ситуаций. В-четвертых, к проблеме безопасности не следует подходить с позиции «все или ничего»: существуют разные степени безопасности. И в-пятых, фиксирование компьютером нападения (сохранение подписи кода) практически бесполезно с точки зрения атаки: при ее осуществлении злоумышленник может удалить или изменить подпись или просто переформатировать диск, на котором она была сохранена. Чем больше приходится размышлять о подписывании кода, тем меньше смысла видится в этой процедуре.
Новые технологии, зарождающиеся в университетских лабораториях, помогут когда-нибудь найти лучшее решение, но это произойдет не ранее, чем через несколько лет. Тем временем модульная программа, вероятно, станет еще большей проблемой безопасности. Все больше и больше программных пакетов обладают способностью к самоусовершенствованию, то есть регулярно загружают новые модули. Например, Internet Explorer 4.0 и последующие версии дают возможность подписаться на обновление программного обеспечения. Если вы этим пользуетесь, то программа автоматически обновляется, загружая новые модули с веб-страницы корпорации Microsoft. Это очень полезное свойство, если не пускать дело на самотек. В противном случае вы можете обнаружить, что среди ночи ваш компьютер автоматически подсоединяется к Интернету. Как может на это отреагировать пользователь, видно по следующему отрывку из программы новостей:
«Ранним утром я полез в холодильник, и вдруг услышал, что компьютер сам подключился к Интернету, – рассказал один пользователь, занимающийся бета-тестированием