Добавление цифровой подписи в проект макроса – Хитрости работы с Excel – таблицы, функции, формулы, списки, рабочие книги, макросы

Добавление цифровой подписи в проект макроса - Хитрости работы с  Excel – таблицы, функции, формулы, списки, рабочие книги, макросы Сертификаты

Второй вид защиты — project is unviewable

Время на снятие:  от 10 до 15 мин (в ручную)

Недостаток: доступ к исходному коду модуля VBA

Один из самых распространённых видов защит.  Встречается в 95% файлах с защитой модуля VBA. При попытке открыть проект, открывается диалоговое окно, с  сообщением:  Project is Unviewable.

Большинство пользователей Excel, не могут снять данную защиту, так как она имеет множество вариации и нюансов, для ее снятие нужно иметь представление о внутренней структуре файла Excel.

Основан, данный вид защиты, на изменение ключей:

CMG=«4A488FCC54D054D054D054D0»

DPB=«0B09CE0F8E108E108E»

GC=«CCCE09520B120C120CED»

в файле vbaProject.bin. 

Добавление цифровой подписи в проект макроса – хитрости работы с excel – таблицы, функции, формулы, списки, рабочие книги, макросы

Чтобы добавить цифровую подпись в рабочую книгу, содержащую макрос, необходимо использовать редактор Visual Basic. Если вы откроете рабочую книгу, которая содержит некорректно работающий подписанный проект макроса, макрос будет отключен по умолчанию и программа выведет на экран предупреждение о потенциальной опасности. Нажмите

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

Добавление цифровой подписи в проект макроса - Хитрости работы с  Excel – таблицы, функции, формулы, списки, рабочие книги, макросы

Чтобы подписать проект макроса:

Откройте документ, содержащий проект макроса, а затем нажмите вкладку Разработчик.

Нажмите кнопку Visual Basic, чтобы открыть окно Visual Basic.

Вызовите меню Сервис, а затем выберите Цифровая подпись.

Нажмите Выбрать.

Выберите сертификат из списка.

Чтобы отобразить сертификат, нажмите Просмотр сертификата, а затем нажмите ОК.

Нажмите ОК

Снова нажмите ОК.

По окончании нажмите кнопку Сохранить, щелкните меню Файл, а затем выберите Закрыть и вернуться в Microsoft Excel

Кратко, как создается данная защита

Для создания данной защиты нужно, разархивировать файл Excel. Перейти в архиве в папку

xl

, открыть файл

vbaProject.bin

,  в конце файла находятся наши ключи, редактируем значения ключей на пусто, сохраняем файл. Переводим наш архив, обратно в файл Excel. Готово! 

Это самый простой вариант данной защиты, но существует множество модификаций.

Алгоритм снятия защиты Project is Unviewable.

1)  Разархивируем подопытный файл, переходим в файл  …xl_relsworkbook.xml.rels

2)      В файле workbook.xml.rels  ищем строку, содержащую слово  vbaProject, обычно имеет следующий вид:  />. В этой строке нас интересует ключ Target,иего значение. Значение является название файла, в котором находится проект VBA.

3)      Открываем на редактирование файл, указанный в  ключе Target, ищем в файле ключи  CMG, DPB, GC. И меняем в их названиях любую букву на любую другую, например: CMC, DPC, CC. При поиске нужно быть аккуратным, так как защищающий может поместить  в проект форму,  подписью повторяющую один из ключей, например такую:

4)      Переводим архив обратно в файл Excel.

5)      Запускаем приложение Excel, выполняем следующее: в Центре управления безопасностью -> Параметры макросов  -> Отключить все макросы без уведомления. Перезапускаем Excel. Данная операция нужна, для блокировки защиты, которую иногда ставят авторы макросов.

6)      Открываем файл. Если все правильно сделано то, Excel, будет ругаться на не правильные ключи, которые мы отредактировали, в пункте 3. Жмем, да, пока данные сообщения не закончатся и диалоговое окно закроется. 

      Если данное сообщение не появляется то, вы отредактировали не файл который содержит проект VBA.

7)      Открываем проект VBA. После всего, проект VBA должен быть доступен.

8)      Но иногда защита не снимается, тогда нужно сохранить файл, проверить, что он действительно сохранился! И проделать повторно операции с 1 по 7. Обычно так происходит когда в файле workbook.xml.rels в ключе Target  установлено printerSettings.bin.При сохранение,  Excel  исправляет это на значение на vbaProject.bin

Данную защиту можно установить и снять следующим инструментом:

Третий вид защиты — Hidden  Module, скрытые модули VBA

Время на снятие:  от 15 до 20 мин (нужен редактор OLE — объектов, Structured Storage Viewer, например.

Недостаток: доступ к коду модуля VBA

Менее распространенный вид  защиты обычно встречается в комбинации с защитой Project is Unviewable. При установке данной защиты модуль VBA не отображается в проекте книги Excel. О его существовании можно узнать, проанализировав код VBA (что требует время!) или открыть файл Excel в программе  OpenOffice  или  LibreOffice (так же можно смотреть код при защите Project is Unviewable, но данный способ не дает возможность получить рабочий файл, без пароля).

Просмотр кода VBA в 

LibreOffice

Первый вид защиты — обычный пароль


Время на снятие: мгновенно

Недостаток: быстрый доступ к запароленному модулю VBA

Про сертификаты:  Игроки нашли способ для быстрой прокачки в Fallout 76, но лавочку могут скоро прикрыть | Пикабу

Стандартный инструмент (В среде VBE: панель Tools -> VBAProject Properties -> Protection). 

Самая легко снимающаяся защита. В интернете легко находится код, для снятия данной защиты. 

Данную защиту можно снять следующим инструментом:

Пятый вид защиты — перенос кода в dll

Время на снятие:  неизвестно, зависит от языка программирования и квалификации

Недостаток:  необходимости в дополнительном  файле dll

Один из самых редких видов защиты. Основная идея перенос основного кода в отдельную библиотеку dll, написанную на любом другом языке программирования. Не распространённость данный вид защиты получил по следующей причине,  необходимости за файлом Excel, «таскать» дополнительный файл, dll.

Для получения доступа к коду dll, нужно обладать специальными знаниями.

Создание цифровых сертификатов и подпись макросов в книгах ms excel

12. Создать собственный цифровой сертификат:

· Создать цифровой сертификат с помощью средства Добавление цифровой подписи в проект макроса - Хитрости работы с  Excel – таблицы, функции, формулы, списки, рабочие книги, макросыЦифровой сертификат для проектов VBA(Digital Certificate for VBA Projects), находящегося в группе Средства Microsoft Office (Microsoft Office Tools) в меню Microsoft Office, или использовать свой сертификат, созданный в одной из предыдущих лабораторных работ.

· Создать еще один цифровой сертификат с фиктивным именем Михайла Ломоносов.

13. Открыть в MS Excel книгу Книга с макросом1.

14. Добавить к проекту VBA, содержащему код макроса Граница_и_заливка, цифровую подпись:

· На панели инструментов Разработчик в группе Код выполнить команду Visual BasicДобавление цифровой подписи в проект макроса - Хитрости работы с  Excel – таблицы, функции, формулы, списки, рабочие книги, макросы .

· Выполнить команду Tools/Digital Signature. В окне Цифровая подпись нажать кнопку Выбрать, выделить мышью сертификат, названный своим именем и нажать ОК. Проверить, что имя сертификата высветилось в группе Текущая подпись проекта VBA окна Цифровая подпись.

· Щелкнуть на кнопке Подробности, перейти на вкладку Состав окна Сертификат и просмотреть параметры сертификата. Перейти на вкладку Путь сертификации и удостовериться, что источник, выдавший сертификат не считается надежным – помечен красным крестиком. Закрыть окно Сертификат, нажав ОК.

· Подтвердить подпись проекта, нажав ОК в окне Цифровая подпись.

· Сохранить изменения и закрыть окно редактора VBA.

· Установить уровень безопасности для макросов Отключить все макросы, кроме макросов с цифровой подписью.

· Сохранить изменения и закрыть книгу Книга с макросом1.

15. Занести цифровую подпись со своим именем в список надежных источников:

· Открыть книгу Книга с макросом1. Удостовериться, что строка предупреждения выдается, так как нет доверия к сертификату.

· Перейти на вкладку Файл/Сведения или щелкнуть на ссылке Запуск макросов отключен строки предупреждения. Выбрать пункт Дополнительные параметры из выпадающего списка Включить содержимое.

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

16. Закрыть и вновь открыть книгу. Проверить, что уведомление системы безопасности не выдается, макросы при этом активны (выполняются).

17. Удостовериться, что сертификат занесен в список надежных источников, открыв вкладку Надежные издатели в окне команды Добавление цифровой подписи в проект макроса - Хитрости работы с  Excel – таблицы, функции, формулы, списки, рабочие книги, макросыРазработчик/Безопасность макросов.

18. Заверить макрос из книги Книга с макросом2 цифровой подписью Михайла Ломоносов.

19. Установить уровень безопасности для макросов Отключить все макросы, кроме макросов с цифровой подписью (Разработчик, Добавление цифровой подписи в проект макроса - Хитрости работы с  Excel – таблицы, функции, формулы, списки, рабочие книги, макросыБезопасность макросов, вкладка Параметры макросов).

20. Проверить, что при открытии книги с подписью из ненадежного источника Книга с макросом2 по-прежнему выдается уведомление системы безопасности.

Задание 3. С помощью оснастки для управления цифровыми сертификатами осуществить экспорт своего сертификата для проверки подписи на другом компьютере.

§

21. Открыть оснастку Сертификаты, для этого:

· Открыть командную строку Windows командой Пуск/Выполнить. Ввести в командной строке mmc и нажать ОК. Будет создана новая консоль Windows.

· В окне консоли выполнить команду Консоль/Добавить или удалить оснастку, в окне добавления оснастки щелкнуть кнопку Добавить и выбрать тип оснастки – Сертификаты. Нажать кнопку Добавить, (если вы работаете в сеансе пользователя-администратора будет открыто окно Оснастка диспетчера сертификатов, в этом окне следует установить переключатель с позицию моей учетной записи пользователя и нажать кнопку Готово). Затем нажать Закрыть. Выйти из окна добавления оснастки, нажав ОК.

· Сохранить параметры консоли, выполнив команду Консоль/Сохранить. В окне команды должна быть выбрана папка Администрирование, в строку Имя файла ввести имя Сертификаты и нажать кнопку Сохранить.

· Закрыть окно консоли.

22. Отобразить группу Администрирование в главном меню Windows:

· Щелкнуть правой кнопкой мыши на кнопке Пуск главного меню или в любом месте панели задач Windows и выбрать команду Свойства.

· В окне свойств перейти на вкладку Меню «Пуск» и нажать кнопку Настроить. Если было выбрано Классическое меню «Пуск», то установить флажок Отображать меню «Администрирование» и нажать ОК. Если было выбрано Меню «Пуск», то перейти на вкладку Дополнительно, в группе Администрирование установить переключатель в позицию Отображать в меню «Все программы» и нажать ОК. Для выхода из окна настройки меню нажать ОК.

23. В группе Программы главного меню Windows выбрать группу Администрирование и открыть созданную ранее оснастку Сертификаты.

24. Просмотреть с помощью оснастки список доверенных издателей: в окне оснастки Сертификаты раскрыть группу Сертификаты – текущий пользователь, выбрать группу Доверенные издатели, а затем Сертификаты. Проверить, что в этой группе имеется ваш сертификат.

25. Экспортировать цифровой сертификат:

· В окне оснастки Сертификаты раскрыть группу Сертификаты – текущий пользователь, выбрать группу Личные, а затем Сертификаты.

· Выбрать сертификат Михайла Ломоносов, щелкнуть на нем правой кнопкой мыши и выбрать команду Все задачи/Экспорт – будет открыт мастер экспорта.

Про сертификаты:  Заказать сертификат на пиломатериалы – услуги сертификации

· В мастере экспорта сертификата нажимать кнопку Далее, не меняя настроек, на этапе задания файла экспорта с помощью кнопки Обзор выбрать свою рабочую папку, задать имя файла сертификат и нажать ОК, затем нажать Далее и Готово.

· Закрыть оснастку Сертификаты, проверить, что в рабочей папке появился файл сертификат Добавление цифровой подписи в проект макроса - Хитрости работы с  Excel – таблицы, функции, формулы, списки, рабочие книги, макросы.

26. Скопировать рабочую папку на другой компьютер (либо создать нового локального пользователя Windows и зайти в Windows под именем нового пользователя).

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

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

29. Импортировать сохраненный в файле цифровой сертификат для обеспечения возможности проверки подписи:

· Запустить мастер установки сертификата, для этого открыть свойства браузера MS Internet Explorer (Сервис/Свойства обозревателя), перейти на вкладку Содержание, нажать кнопку Сертификаты, затем в окне Сертификаты нажать кнопку Импорт. Запустить мастер установки сертификата можно также двойным щелчком мыши на файле сертификата.

· В окне мастера нажать Далее, с помощью кнопки Обзор выбрать рабочую папку, в которой сохранен файл с сертификатом, выбрать файл сертификат и нажать Открыть. Нажать кнопку Далее.

· В следующем окне мастера установить переключатель в положение Автоматически выбрать хранилище на основе типа сертификата, нажать кнопку Далее, а затем кнопку Готово.

· Изучить предупреждение системы о том, что готовится установка корневого сертификата и нажать Да.

· Закрыть окно свойств обозревателя.

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

31. Проверить, что при внесении изменений в код макроса, цифровая подпись снимается:

· Создать копию книги Книга с макросом2 (сохранить ее под новым именем Книга с макросом3). Открыть книгу Книга с макросом3 в MS Excel.

· Перейти в редактор VBA, открыть код макроса.

· Изменить значение какого-либо свойства форматирования, устанавливаемого макросом. Например, найти в коде макроса текст With Selection.Font, а затем – строку .Size = 12 и заменить размер шрифта (12) на больший (14).

· В редакторе VBA нажать значок сохранения, проверить, что будет выдано уведомление об удалении подписи, нажать кнопку Сохранить изменения и удалить подпись.

· Проверить, что невозможно подписать макрос заново с помощью сертификата Михайла Ломоносов (сертификат недоступен в списке Выбрать команды Tools/Digital Signature).

32. Ответить на контрольные вопросы.

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

Контрольные вопросы:

1. Почему не на всех компьютерах с ОС Windows XP в главном меню имеется пункт Администрирование?

(Для отображения пункта Администрирование требуется задать соответствующие настройки главного меню Windows).

2. Какие средства ОС и офисных приложений Windows позволяют работать с цифровыми сертификатами?

(Работу с сертификатами можно осуществлять с помощью встроенных команд приложений MS Office – команда Файл/Сведения/Защитить документ/Добавить цифровую подпись, в настройках браузера MS Internet Explorer (Сервис/ Свойства обозревателя/Содержание/Сертификаты), а также через оснастку ОС Windows Сертификаты.

3. Почему при переносе подписанного документа (проекта VBA – макроса) на другой компьютер невозможно проверить подлинность подписи?

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

4. Почему даже после импорта сертификата на другом компьютере невозможно заново подписать той же подписью измененный документ (либо проект VBA – макрос)?

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

ТЕМА 4. ЭЛЕМЕНТЫ СТЕГАНОГРАФИИ

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

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

Слово «стеганография» происходит от греческих слов steganos (секрет, тайна) и graphy (запись) и означает буквально «тайнопись». Исторически это направление защиты секретных сообщений появилось первым, но затем во многом было вытеснено криптографией.

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

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

Про сертификаты:  Поможем получить сертификат ИСО 13485-2017 (ISO 13485:2016) - Москва

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

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

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

Кроме того, при сокрытии двоичных последовательностей одинарный пробел может соответствовать значению 0, а двойной – 1.

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

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

Лабораторная работа № 6. Сокрытие сообщения методом знаков одинакового начертания

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

К таким символам относятся: «а», «А», «В», «е», «Е», «К», «М», «Н», «о», «О», «р», «Р», «с», «С», «Т», «у», «х», «Х». Так, например, буква «А» в русском написании имеет ASCII-код 192, а в латинском – 65.

Пусть скрываемое сообщение содержит только символы, которые могут быть закодированы таблицей ASCII (русский/ латинский текст, цифры, знаки препинания). Таблицу ASCII (правда не для русской, а для западноевропейской раскладки клавиатуры можно посмотреть в окне команды MS Word Вставка/Символ/Обычный текст). Каждый символ в этом случае кодируется числом от 0 до 255 или в двоичном виде – одним байтом (8 двоичных знаков).

Пусть в качестве контейнера используется русский текст, не содержащий отдельных символов латиницы. Если текст содержит отдельные латинские слова, при стеганографическом кодировании/декодировании они игнорируются (пропускаются). Далее следует просматривать подряд символы одинакового начертания в тексте, и если требуется закодировать значение 0, то символ не менять, а если следует закодировать 1 – изменить символ на символ того же начертания латинского алфавита.

Пример: Пусть следует скрытно передать число 7, используя в качестве контейнера текст «Хорошо в деревне летом!».

Числу 7 соответствует ASCII-код 55 и двоичная последовательность 00110111.

Выделим в тексте знаки одинакового начертания (жирным шрифтом):

Хорошо в деревне летом!

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

В примере для кодирования сообщения потребуется всего 8 знаков одинакового начертания, будем перебирать эти знаки один за другим подряд с начала сообщения, заменяя латиницей те из них, которые соответствуют единицам двоичной последовательности (рис.27). На рис.27 замененные символы выделены подчеркиванием.

Контейнер Х о р о ш о   в   д е р е в н е   л е т о м !
Стеганограмма                           
Контейнер со стего Х оpo ш о   в   дepe в н е   л е т о м !

Рис.27. Пример применения метода символов одинакового начертания

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

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

Кроме того, замененные символы могут быть выделены при изменении форматирования. Например, если выделить в MS Word весь текст заполненного стего-контейнера шрифтом, не поддерживающим русский алфавит, будут переформатированы только замененные символы (латиница), например:

· шрифт Algerian: Хоpoшо в дepeвне летом!

· шрифт Blackadder ITC: Хоpoшо в дepeвне летом!

· шрифт Brush Script MT: Хоpoшо в дepeвне летом!

Таким образом, метод не отличается стойкостью.

Задание

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

Четвертый вид защиты — обфускация кода

Время на снятие:  неизвестно, зависит от объема кода и пере использования частей кода

Обфусцированный код VBA

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

Заключение


В заключении хочу выделить бесполезность защит: 

Project is Unviewable и Hidden  Module

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

OpenOffice 

или

  LibreOffice.

Так и снимаются без особых проблем.

Оцените статью
Мой сертификат
Добавить комментарий