Программные подписи
Программные подписи: проблема или решение
Программные подписи (code signing) служат подтверждением принадлежности программного кода его производителю. Подписи нужны для того, чтобы пользователь мог доверять скачиваемым из Internet и запускаемым программам. Ведь в конце концов, если не знать, кто написал программу и была ли она впоследствии изменена, легко можно допустить, что в нее был добавлен зловредный код, который приведет к компрометации пользовательского компьютера.
'» Для подписи программного кода могут использоваться цифровые серти-f фикаты, подтверждающие подлинность и целостность приложения. Для проверки подлинности в сертификат вложен набор удостоверяющих параметров (credentials). Сертификат выпускается центром авторизации (СА) и идентифицируется именем, серийным номером, датой окончания действия, копией открытого ключа владельца сертификата и цифровой подписью центра авторизации. Все эти элементы служат в качестве гарантии подлинности соответствующего файла.
Как и любой другой процесс, основанный на доверии, технология программных подписей имеет свои достоинства и недостатки. В следующих разделах этой главы мы рассмотрим основные проблемы программных подписей и проследим за тем, как эта технология работает.
Коротко о программных подписях
Цифровые сертификаты распространяются центрами авторизации (СА). СА - организация, ставящая сертифицированное лицо в соответствие его открытому (публичному) ключу. Одна из самых известных таких организаций - VenSign (www.vensign.com), предоставляющая своим клиентам, кроме прочих, Authenticode-сертификаты (АСС). Такие сертификаты используются в распространении программного обеспечения и в работе служб точного времени и могут быть приложены к файлу, распространяемому производителем ПО. Пользователи, со своей стороны, с помощью сертификата могут убедиться в подлинности и целостности этого файла.
Цифровые сертификаты могут прилагаться к файлам различных типов. Например, с помощью VenSign АСС можно подписать следующие файловые форматы:
■ ЕХЕ - исполняемые файлы.
■ CAB - пакетные файлы, используемые в инсталляционных архивах.
САВ-пакеты могут содержать любые файлы.
Рекомендуемые материалы
■ CAT - файл, содержащий «отпечатки» других файлов. Эти отпечатки
используются для проверки целостности данных.
■ OCX - ActiveX-элементы.
■ DLL - динамические библиотеки функций.
■ STL - файл, содержащий «доверительный» список сертификата.
Когда пользователь скачивает файл, защищенный сертификатом, состояние этого сертификата проверяется центром авторизации. В случае, если сертификат по той или иной причине недействителен, пользователь получает соответствующее сообщение от СА. В этом сообщении будет представлена некоторая информация о сертификате, в том числе ссылка на его владельца. Если же сертификат действителен и пользователь с ним согласен, может производиться установка программы, чтение файла и т.п.
Преимущества программных подписей
В лекции "5.2 Модели дискретных процессов" также много полезной информации.
Подпись, передаваемая вместе с файлом, подтверждает его принадлежность производителю и гарантирует, что этот файл не был изменен третьими лицами. Таким образом, подпись или сертификат предотвращает одну из ин формационных атак, при которой хакер выдает себя за лицо, которому вы доверяете.
Это основное преимущество программных подписей, предоставляющее пользователю право доверять или не доверять производителю или поставщику информации, основываясь на данных сертификата.
Проблемы, связанные с технологией программных подписей
Основной недостаток рассматриваемой технологии заключается в том, что процесс установления подлинности зависит от стороннего лица - центра авторизации. Дело в том, что если злоумышленник предоставил в СА ложную информацию или украл идентификационные данные уважаемой компании, то у него появляется возможность распространять в Internet вредоносную программу. В этом вопросе решающую роль играют возможности СА при проверке данных будущего владельца сертификата.
Еще одна трудность связана с тем, что даже если СА зарегистрировал сертификат производителя, основываясь на проверенной информации, ничто не мешает этому производителю распространять вредоносные программы, заверенные полученным сертификатом. Показательной иллюстрацией этой проблемы может служить сертифицированный центром VenSign ActiveX-компонент (владелец сертификата - Fred McLain) под названием Internet Exploder. Пользователи, работающие в ОС Windows 95 с поддержкой АРМ (Advanced Power Managent) и имеющие Internet Exploder, сталкивались с тем, что операционная система перезагружалась сразу после запуска компонента. Впоследствии сертификат был отозван.
Списки отозванных сертификатов (Certificate Revocation List - CRL) представляют собой еще одну проблему. Браузеры и другие Internet-приложения довольно редко проверяют ACL-списки, так что вы можете пользоваться зловредной программой, сертификат которой уже был отозван центром авторизации.