Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 1568

.pdf
Скачиваний:
6
Добавлен:
30.04.2022
Размер:
1.4 Mб
Скачать

проверяет открываемый документ на наличие в нем макровирусов. На сервере дополнений для 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

Сертификат класса 3 выдается фирмам-производителям программного обеспечения, и его стоимость составляет 400 долларов США в год. Для его получения необходимо представить название фирмы, место регистрации, контактные адреса и телефоны, а также рейтинг фирмы в соответствии с методикой

Dun-and-Bradstreet.

178

ЗАКЛЮЧЕНИЕ

Настоящее электронное учебное пособие содержит сведения об основных компонентах среды офисного программи-

рования Visual Basic for Application пакета Microsoft Office и

способах их использования при разработке собственных расширений.

Последовательное изложение учебного материала от описания базовых понятий и элементарных конструкций языка до операторов, структур и объектов способствует глубокому усвоению студентами дисциплин ―Программирование в среде MS Office‖ и ―Технологии программирования‖. Примеры использования рассмотренных конструкций языка VBA и справочных таблиц позволяет изучить большинство используемых в практике офисного программирования приемов реализации конкретных действий с документами в целом и их отдельными фрагментами.

Настоящее электронное учебное пособие существенно восполнит имеющиеся пробелы в учебной литературе по программированию в среде Microsoft Office. Оно окажет помощь студентам специальности 230101 ―Вычислительные машины, комплексы, систем и сети‖ при изучении лекционного материала, выполнении лабораторных работ, курсовом и дипломном проектировании. Также оно может быть полезно студентам специальности 230201 ―Информационные системы и технологии‖, аспирантам, преподавателям и инженернотехническим работникам, занятых созданием и обработкой документов различного назначения и стремящихся повысить функциональность своих разработок.

179

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1.Кузьменко В.Г. VBA 2003. – М.: ООО «Бином-Пресс»,

2004. – 432 с.

2.Матросов А.В. и др. MS Office XP: разработка приложений / Матросов А.В., Новиков Ф.А., Усаров Г.Е., Харитонова И.А. / Под ред. Ф.А. Новикова. – СПб.: БХВ-Петербург,

2003. – 944 с.

3.Кузьменко В.Г. Программирование на VBA 2002. – М.: ООО «Бином-Пресс», 2003. – 880 с.

4.К. Гетц, М. Джилберт. Программирование в Microsoft Office. Для пользователя: Пер. с англ. – Киев: Издательская группа BHV, 2000. – 384 с.

5.Король В. Н. Visual Basic 6.0, Visual Basic for Applications 6.0. Язык программирования: Справочник с примерами. 2-е изд., испр. М.: КУДИЦ-ОБРАЗ, 2000. - 448 с.

6.Борланд Р. Эффективная работа с Word 7.0 для Windows 95: Перев. с англ. – СПб: Питер, 1996. – 1104 с.

180

СОДЕРЖАНИЕ

 

Введение ………………………………………………….

3

1. Макросы………………………………………………..

5

1.1. Классификация офисных приложений ……..

5

1.1.1. Текстовые процессоры …………….

6

1.1.2. Системы управления базами дан-

 

ных…………………………………………

7

1.1.3. Электронные таблицы…………….

9

1.1.4. Деловая графика……………………

12

1.1.5. Электронные коммуникации………

14

1.2. Из истории VBA………………………………

15

1.3. Для чего нужен язык программирования

 

VBA………………………………………………..

16

1.4. Создание макроса в Word……………………

18

1.5. Запись новых макросов………………………

19

2. Среда редактора VBA…………………………………

20

2.1. Модули………………………………………..

20

2.1.1. Модули в Word……………………..

21

2.1.2. Модули в Excel……………………..

21

2.2. Редактор Visual Basic…………………………

22

2.2.1. Запуск Редактора VB……………….

22

2.2.2. Окна Редактора VB…………………

22

2.2.3. Меню Редактора VB………………..

24

3. Типы данных…………………………………………..

37

3.1. Встроенные типы данных……………………

38

3.2. Операции………………………………………

41

3.3. Объявление переменных……………………..

45

3.4.Константы…………………………………….. 47

3.5.Массивы………………………………………. 47

3.6.Перечисляемый тип………………………….. 51

3.7. Тип, определяемый пользователем …………

52

3.8. Преобразование данных VBA……………….

53

4. Операторы……………………………………………..

58

4.1. Операторы присваивания……………………

58

4.2. Условные операторы…………………………

59

181

4.3. Операторы цикла……………………………..

65

5. Структура программы…………………………………

72

5.1. Модульное программирование………………

72

5.2. Составляющие программы…………………..

74

5.3. Объявление процедур и функций……………

76

5.4. Вызов процедур и функций………………….

81

6. Встроенные процедуры и функции…………………..

83

6.1. Функции ввода и вывода…………………….

83

6.2. Процедуры и функции работы с файлами….

87

6.3. Функции проверки типов…………………….

94

6.4. Процедуры и функции работы со строками...

95

6.5. Математические функции……………………

97

6.6. Процедуры и функции работы со временем и

 

датами……………………………………………

98

7. Классы и объекты……………………………………..

101

7.1. Введение в объектно-ориентированное про-

 

граммирование …………………………………..

101

 

 

 

 

7.2. Свойства объекта…………………………….

103

7.3. Методы объекта ………………………………

104

 

 

 

 

7.4.Классы объекта……………………………….. 105

7.5.Использование объектов…………………….. 106

7.6. Использование свойств объектов……………

108

7.7. Использование методов объекта…………….

114

8.Графический интерфейс………………………………. 120

8.1.Формы пользователя…………………………. 120

8.2. Свойства объекта UserForm………………….

121

8.3. Методы объекта UserForm…………………...

122

8.4. События и событийные процедуры…………

124

8.5. Элементы управления………………………..

127

8.6. Использование Toolbox (панели элементов)..

137

8.6.1.Выделение, перемещение и изменение размера элементов управления на фор-

ме………………………………………. 138

8.6.2.Копирование, вставка и удаление эле-

ментов управления…………………….

139

8.6.3. Редактирование или форматирование

 

182