Материал: Программирование на языке Visual Basic для приложений. Подвальный С.Л., Рог А.И

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

проверяет открываемый документ на наличие в нем макровирусов. На сервере дополнений для Office ХР, расположенный по адресу http://officeupdate.microsoft.com можно получить исчерпывающую информацию о программах.

Проекты, разработанные в приложениях Office XP и подписанные с использованием цифрового сертификата, обеспечивают:

1.доверительное отношение к разработчикам проектных решений, не предполагая умышленного внедрения вируса с их стороны,

2.позволяют осуществить проверку, был ли изменен ка- ким-либо способом проект, и автоматически не разрешить выполняться макросам, которые могли быть изменены макровирусами.

10.4. Цифровые сертификаты

Чтобы иметь возможность подписывать свои проекты, разработчик пользовательского решения должен прежде всего получить и установить на своем компьютере цифровой сертификат.

Цифровой сертификат можно рассматривать как электронный дубликат любого удостоверения личности для физического лица или зарегистрированного товарного знака фир- мы-производителя программного обеспечения.

Приходя в магазин и покупая товар, мы обращаем внимание на изготовителя товара, которого идентифицируем по товарному знаку на упаковке. Точно так же, открывая документ какого-либо приложения Office, мы можем проверить, поступил ли он из надежного источника, удостоверившись в наличии действительной цифровой подписи, основанной на выданном фирме или физическому лицу цифровому сертификату.

Для подписания программного обеспечения и проверки целостности самих цифровых сертификатов используется технология шифрования, известная под названием шифрование с открытым ключом. Эта технология применяет специальную

173

пару ключей (последовательность цифр) кодирования и декодирования, называемых соответственно открытым ключом и закрытым, или личным ключом.

Алгоритмы этой технологии выполняют одностороннее преобразование данных таким образом, что данные, закодированные с помощью одного ключа, могут быть декодированы только с использованием второго ключа из одной пары. Для каждого ключа используется достаточно большое значение,

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

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

Любая подпись, сделанная во время действия цифрово-

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

тается недействительной.

Подобная технология с успехом эксплуатируется в сообщениях электронной почты. Отправитель получает открытый ключ адресата и использует его для кодирования посылаемых ему сообщений. Когда адресат получает закодированное его собственным открытым ключом сообщение, то с помощью хранящегося в безопасном месте своего личного ключа он может декодировать его и прочитать.

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

174

кой обработки файла формируется то, что называется дайджестом сообщения, который является уникальным для каждого файла, и его можно рассматривать как "цифровые отпечатки пальцев" конкретного файла. В Microsoft Office XP используется алгоритм хэширования MD5.

Выделение дайджеста сообщения увеличивает эффективность процесса создания и последующей верификации цифровой подписи, так как в дальнейшем кодируется с помощью личного ключа разработчика не весь файл (он может оказаться достаточно большим и процесс его кодирования (декодирования) может занять достаточно большой промежуток времени), а только его уникальная небольшая часть — "отпе-

чатки пальцев". Закодированный дайджест и есть та цифро-

вая подпись, которая добавляется к исходному файлу.

Для проверки целостности и неизменности файла при-

ложение, прежде чем открыть его, использует тот же са-

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

Процесс проверки подлинности файла завершается, файл открывается, но выполнить какую-либо процедуру проекта VBA, хранящегося в файле, не представляется возможным (вне зависимости от того, каким образом был модифицирован файл в результате случайного искажения, действия макровируса или программным способом).

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

175

Если другой пользователь модифицирует проект VBA,

то приложение Office удаляет текущую подпись и просит пользователя заново подписать проект. В случае если проект подписывается с использованием другого сертификата или не подписывается вообще, то при последующем открытии файла проекта процесс верификации не будет проведен до конца и файл будет открыт приложением Office с отключенными макросами.

Цифровая подпись в Office ХР ставится не на все содер-

жимое документа, а только на содержащийся в нем код VBA.

Поэтому наличие правильной цифровой подписи не гарантирует, что содержание документа не изменялись.

Такой же процесс проверки осуществляется и для самого цифрового сертификата, чтобы удостовериться, что он был выдан уполномоченной на то организацией, и гарантировать, что он не был изменен или подделан.

Цифровой сертификат имеет определенный срок действия, который обозначен в его дате истечения срока. Обычно сертификат выдается сроком на один год. Это делается для того, чтобы уменьшить вероятность извлечения личного ключа каким-либо злонамеренным лицом. Стоит отметить, что это практически невозможно ввиду большого числа возможных комбинаций, но теоретически — это возможно. Кроме того, если личный ключ украден, это ограничивает период его применения. Дата истечения срока действия сертификата гарантирует, что все подписи с этим ключом, сделанные после этой даты, являются недействительными.

Получить цифровой сертификат можно тремя спосо-

бами:

1.Создать цифровой сертификат для собственного использования, который можно применять для подписания проектов VBA только в личных целях или в составе небольшой рабочей группы.

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

176

3. Получить цифровой сертификат от коммерческой организации, например, VeriSign Inc. или ей подобной.

Если в приложении Office установлен высокий уровень безопасности, то можно выполнять подписанные процедуры VBA и макросы только из надежных источников. Неподписанные проекты VBA автоматически отключаются при открытии документа. Это относится и к собственным макросам разработчика: они не будут выполняться при высоком уровне безопасности, если не снабжены цифровой подписью.

В этом случае следует либо получить полноценный цифровой сертификат от уполномоченной на то коммерческой организации (при этом неизбежны денежные расходы), либо выписать сертификат самому себе с помощью утилиты создания цифрового сертификата (Selfcert.EXE), поставляемой вместе с семейством приложений Office. Подобные сертификаты называются самовыписанными, а проекты VBA, подписанные с помощью такого цифрового сертификата, — самоподписанными проектами. Такие цифровые сертификаты и цифровые подписи на их основе действительны только на том компьютере, где они были "выданы". Для других компьютеров они считаются недействительными.

Самая безопасная цифровая подпись — подпись на основе цифрового сертификата, выданного коммерческой службой. Подобные организации выдают два типа сертификатов:

сертификат класса 2;

сертификат класса 3.

Сертификат класса 2 выдается индивидуальному программисту, разрабатывающему программное обеспечение и распространяющему его всевозможными способами. Для его получения он должен представить в сертификационный центр информацию о себе: имя, адрес, адрес электронной почты, дату рождения и номер карточки социального страхования. После проверки предоставленной информации ему выдается сертификат сроком на один год. Заметим, что при получении сертификата он обязан оплатить его стоимость в размере 20 долларов США.

177

Источник: https://studfile.net/preview/16565567/