
Министерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра комплексной информационной безопасности электронно-вычислительных систем (КИБЭВС)
ОБЪЕКТЫ ETOKEN
Отчет по лабораторной работе №5
по дисциплине «Программно-аппаратные средства защиты информации»
-
Студент гр. 731-2
__________
Руководитель
Преподаватель каф. КИБЭВС
__________
Введение
Цель работы: ознакомиться с типами объектов, которые позволяет хранить и использовать eToken, научиться осуществлять операции, связанные с чтением, записью, удалением и поиском объектов на eToken.
1 Ход работы
Первоочередно был экспортирован закрытый ключ ранее созданного сертификата, а также извлечем закрытый ключ в DER-кодировке с помощью программы OpenSSL, что представлено на рисунках 1.1 – 1.2.
Рисунок 1.1 – Процесс экспорта закрытого ключа через certmgr.msc
Рисунок 1.2 – Процесс извлечения ключа через OpenSSL
Далее была добавлена функция, которая извлекает и декодирует base64-данные из файла с приватным ключом, что представлено на рисунке 1.3.
Рисунок 1.3 – Функция GetPFBlop
Далее была добавлена функция, которая «парсит» значения закрытого ключа в приемлемые для работы данные, что представлено на рисунке 1.4
Рисунок 1.4 – Функция преобразования закрытого ключа
Далее был добавлен метод, который, загружает данные файла PEM-файл с приватным ключом в память, что представлено на рисунке 1.5.
Рисунок 1.5 – Функция ReadPKFromFile
Далее были добавленные функции CreatePKFromBlob и ImportPrivateKey, которые создает приватный ключ на токене из бинарных данных, полученных из файла, и импортирует на токен. Для этого открывается сессия с токеном, выполняет логин, а затем создает объект на токене с помощью функции C_CreateObject, что представлено на рисунках 1.6 – 1.7.
Рисунок 1.6 – Функция CreatePKFromBlob
Рисунок 1.7 – Функция ImportPrivateKey
Далее была добавлена функция CreateFileFromBlob, которая используется для создания объекта данных на токене eToken из двоичных данных, что представлено на рисунке 1.8.
Рисунок 1.8 – Функция CreateFileFromBlob
Для импорта файла на токен необходимо сначала открыть сессию с токеном, выполнить логин и затем создать объект данных на токене, что и выполняет функция ImportFile, представленная на рисунке 1.9.
Рисунок 1.9 – Функция ImportFile
Для экспорта файла были написаны функции ReadLabel, ExportFileFromBlob и ExportFile, которые ищут файл по метке «label», переводят из двоичных значений и экспортируют файл на токен, что представлено на рисунках 1.10 – 1.11.
Рисунок 1.10 – Функции ReadLabel и ExportFileFromBlob
Рисунок 1.11 – Функция ExportFile
Далее была добавлена функция DeleteData, которая позволяет удалить данные с токена. Она находит объекты, спрашивает пользователя, хочет ли он их удалить, и в случае согласия — уничтожает эти объекты с помощью C_DestroyObject, что представлено на рисунке 1.12.
Рисунок 1.12 – Функция DeleteData
Все вышеописанные функции были реализованы через функцию main, что представлено на рисунке 1.13.
Рисунок 1.13 – Функция main
Далее была проверена работоспособность составленных методов и функций, что представлено на рисунках 1.14 – 1.17.
Рисунок 1.14 – Проверка возможности импорта сертификата
Рисунок 1.15 – Проверка возможности добавления файла на токен
Рисунок 1.16 – Проверка работоспособности возможности экспорта файла
Рисунок 1.17 – Проверка работоспособности возможности удаления файла