Пояснительная записка (1195493), страница 3
Текст из файла (страница 3)
Алгоритм использует следующие битовые операции:
-
ǁ — конкатенация;
-
+ — сложение;
-
and — побитовое «И»;
-
or — побитовое «ИЛИ»;
-
xor — исключающее «ИЛИ»;
-
shr (shift right) — логический сдвиг вправо;
-
rotr (rotate right) — циклический сдвиг вправо.
Таблица 2.1 – Алгоритмы семейства SHA-2
| Хеш-функция | Длина дайджеста сообщения (бит) | Длина внутреннего состояния (бит) | Длина блока (бит) | Максимальная | Длина слова (бит) | Количество итераций в цикле |
| SHA‑256, SHA‑224 | 256/224 | 256 | 512 | 264 − 1 | 32 | 64 |
| SHA‑512, SHA‑384, SHA‑512/256, SHA‑512/224 | 512/384/256/224 | 512 | 1024 | 2128 − 1 | 64 | 80 |
SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/256 и SHA-512/224 законом США допускаются к использованию в некоторых правительственных приложениях, включая использование в рамках других криптографических алгоритмов и протоколов, для защиты информации, не имеющей грифа секретности. Стандарт также допускает использование SHA-2 частными и коммерческими организациями.
Хеш-функции SHA-2 используются для проверки целостности данных и в различных криптографических схемах. На 2008 год семейство хеш-функций SHA-2 не имеет такого широкого распространения, как MD5 и SHA-1, несмотря на обнаруженные у последних недостатки.
Некоторые примеры применения SHA-2 указаны в таблице 2.2.
Таблица 2.2 – Области применения алгоритмов семейства SHA-2
| Область применения | Детали |
| S/MIME | SHA-224, SHA-256, SHA-384 или SHA-512 дайджесты сообщений |
| OpenLDAP | SHA-256, SHA-384 или SHA-512 хеши паролей |
| DNSSEC | SHA-256 дайджесты DNSKEY в протоколе DNSSEC |
| X.509 | SHA-224, SHA-256, SHA-384 и SHA-512 используются для создания электронной цифровой подписи сертификата |
| PGP | SHA-256, SHA-384, SHA-512 используются для создания электронной цифровой подписи |
| IPSec | Некоторые реализации поддерживают SHA-256 в протоколах ESP и IKE |
| DSA | Семейство SHA-2 используется для создания электронной цифровой подписи |
| Bitcoin | Эмиссия криптовалюты Bitcoin осуществляется посредством поиска строк, SHA-256-хеш которых имеет заданную структуру |
Как показали исследования, алгоритмы SHA-2 работают от 2 до 3 раз медленнее других популярных хеш-алгоритмов MD5, SHA-1, Tiger и RIPEMD-160, но более надежны.
Данная криптографическая функция также используется для хеширования файлов, находящихся на flash-накопителях, с целью дальнейшей проверки изменения файлов и разграничению прав.
3 Проектирование системы
Для проектирования системы автоматического обновления был выбран объектно-ориентированный подход по следующим причинам:
-
возможность быстрого создания реального прототипа системы с помощью объектно-ориентированного языка программирования по существующей модели;
-
система хорошо разделяется на объекты (например, служба и клиент, система и пользователь, система и база данных);
-
система в целом выполняет только одну функцию.
Стандартными средством описания моделей при использовании объектно-ориентированного подхода в настоящее время является унифицированный язык моделирования (Unified Modeling Language, UML).
В ходе проектирования были разработаны функциональная модель в виде диаграмм вариантов использования, диаграмма классов, поведенческая модель в виде диаграмм последовательностей, а также диаграммы компонентов и развертывания. Прототип программы имеет возможность практического использования.
3.1 Диаграммы вариантов использования
Проектирование системы всегда начинается с определения задач, для решения которых она создается. Для наглядного отображения функций системы обычно используются диаграммы вариантов использования.
Диаграмма вариантов использования, как следует из ее названия, должна отражать все возможные варианты использования информационной системы. С ее помощью можно определить операции, которые будут поддерживаться системой.
Исходя из функционала работы продукта, описанного ранее в разделе 1.2, можно выделить два класса актеров, взаимодействующих с системой: администратор и пользователь. Задачей пользователя является авторизация в системе, для получения прав на использование flash-накопителей. Администратор же работает с базой данных системы. Кроме того, администратор также является пользователем и может выполнять его функции.
Стоит отметить, что работу, связанную получением прав и выставлением ограничений, берет на себя клиентское приложение, устанавливаемое на АРМ пользователя. Приложение запрашивает допускаемые разрешения у базы данных.
Редактирование списка пользователей, flash-накопителей и разрешений производится администратором с помощью административного клиента.
На рисунке 3.1.1 представлена соответствующая диаграмма вариантов использования.
Рисунок 3.1.1 – Контекстная диаграмма вариантов использования
При авторизации пользователя осуществляется проверка логина и пароля. Пароль проверяется путем вычисления криптографической хэш-функции SHA-512. Далее создается запись в базе данных об авторизации данного пользователя на компьютере, для дальнейшего просмотра истории авторизаций администратором. Затем по запросу к базе данных получаются общие права, заданные для пользователя и его должности. Происходит активация USB-портов в зависимости от полученных прав и подсоединенных flash-накопителей.
На рисунке 3.1.2 представлена соответствующая диаграмма использования.
Рисунок 3.1.2 – Диаграмма вариантов использования – Авторизация (для пользователя)
При авторизации в приложении администратора также осуществляется проверка логина и пароля. Пароль проверяется путем вычисления криптографической хэш-функции SHA-512. Также по запросу к базе данных проверяется наличие роли «admin». При успешной проверке загружаются списки пользователей, зарегистрированных устройств, должностей, прав и подключенных flash-накопителей. Далее загружается интерфейс панели администратора с отображением всех загруженных данных.
На рисунке 3.1.3 представлена соответствующая диаграмма использования.
Рисунок 3.1.3 – Диаграмма вариантов использования – Авторизация (для администратора)
Для редактирования списка пользователей определены три операции: добавление, изменение и удаление. При добавлении пользователя проверяются все введенные данные и хэшируется пароль. При изменении также проверяются все данные, а пароль хэшируется в зависимости от того, ввели ли новый или нет. Если новый пароль не будет введен, то старый пароль останется без изменений. Остальные данные будут изменены в соответствии с введенными пользователем. При удалении полностью удаляются данные о пользователе, его права и связанные права с flash-накопителями информации.
На рисунке 3.1.4 представлена соответствующая диаграмма использования.
Рисунок 3.1.4 – Диаграмма вариантов использования – Редактирование списка пользователей
Для редактирования списка зарегистрированных в системе flash-накопителей информации определены две операции: добавление и удаление. При добавлении, данные о выбранном подключенном flash-накопителе добавляются в базу данных. При удалении данные о зарегистрированном flash-накопителей удаляются из базы данных.
На рисунке 3.1.5 представлена соответствующая диаграмма использования.
Рисунок 3.1.5 – Диаграмма вариантов использования – Редактирование списка зарегистрированных в системе flash-накопителей информации
Для назначения прав на использование flash-накопителей информации определены 5 вариантов операций: назначение общих прав для пользователей, назначение общих прав для flash-накопителей информации, назначение общих прав для должностей, назначение права конкретному пользователю на конкретный flash-накопитель информации, назначение права конкретной должности на конкретный flash-накопитель информации. При назначении общих прав для пользователей, права действуют на все накопители этих пользователей. При назначении общих прав для flash-накопителей информации, права действуют на всех пользователей, работающих с этим накопителем. При назначении общих прав для должностей, права действуют на все накопители пользователей с этими должностями. При назначении права конкретному пользователю на конкретный flash-накопитель информации, права действуют только на выбранный накопитель и только для выбранного пользователя. При назначении права конкретной должности на конкретный flash-накопитель информации, права действуют только на выбранный накопитель и только для выбранной должности.
На рисунке 3.1.6 представлена соответствующая диаграмма использования.
Рисунок 3.1.6 – Диаграмма вариантов использования – Назначение прав на использование flash-накопителей информации
3.2 Диаграммы классов
Для уточнения внутренней архитектуры проектируемой системы создается модель анализа, одним из компонентов которой является диаграмма классов анализа.
Классы и объекты являются основой объектно-ориентированного подхода в проектировании систем. Класс обычно описывает какую-либо часть предметной области, а объект является ее конкретным экземпляром.
Диаграмма классов анализа отражает общий вид структуры классов и отношений между ними. Класс анализа – это абстракция, описывающая некоторый фрагмент системы. Классы анализа не содержат определений атрибутов или методов.
На рисунке 3.2.1 представлена общая диаграмма классов анализа для разрабатываемой системы, показывающая связь между графическим интерфейсом пользователя, администратора, библиотекой классов и базой данных.
Интерфейс пользователь содержит минимальное количество элементов. Пользователь может просмотреть список подключенных устройств и текущий доступ. Интерфейс администратора более интерактивен. Каждое окно и вкладка административной панели, представляет собой список элементов (накопителей, пользователей, прав) и набор кнопок для управления этими элементами. Для редактирования записи необходимо выбрать элемент из списка. Библиотека классов представляет собой набор классов для взаимодействия с базой данных, класс для использования криптографической хэш-функции и генерации соли, а также класс с расширениями для удобной работы с WMI. Для получения полного представления о структуре разрабатываемого программного продукта были созданы диаграммы классов, отражающие структуру приложения администратора, пользовательского приложения и библиотеки классов, а также общие принципы их взаимодействия без привязки к конкретным технологиям и средствам разработки.
Рисунок 3.2.1 – Диаграмма классов приложения администратора
Приложение администратора состоит из классов, определяющих интерфейс и методы взаимодействия пользователя с системой. Функционал для взаимодействия с базой данных и выставления прав находится в подключаемой библиотеке классов, классы и методы которой используются в приложении администратора. Данная диаграмма представлена на рисунке 3.2.2.















