Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2283.pdf
Скачиваний:
23
Добавлен:
07.01.2021
Размер:
4.89 Mб
Скачать

УДК 004.056

ВОЗМОЖНОСТИ СУБД MS SQL SERVER И ЯЗЫКА ПРОГРАММИРОВАНИЯ C# ПО ШИФРОВАНИЮ ДАННЫХ В ИНФОРМАЦИОННОЙ СИСТЕМЕ «АВТОСТОЯНКА»

Гайкова П.Д.

студентка группы БИб16-И1 «Сибирского государственного автомобильно-дорожного университета (СибАДИ)», г. Омск

Семенова З.В.

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

СибАДИ

безопасность» «Сибирского государственного автомобильно-дорожного университета (СибАДИ)», г. Омск

Аннотац я. В настоящей статье представлено обоснование повышения эффективности деятельности автостоянки в условиях автоматизации основных и вспомогательных б знес-процессов. Представлен анализ возможностей СУБД MS SQL Server и фреймворка Entity Framework для повышения защищенности персональных данных в информац онной с стеме «АвтоПро». Показано, как реализуется в приложении защита персональных данных с помощью шифрования в условиях использования для разработки приложения так х средств, как СУБД MS SQL Server и фреймворка Entity Framework..

Ключевые слова: защ та данных, персональные данные, валидация данных, хеширование, схема базы данных, ш фрован е, Always Encrypted, фреймворк Entity Framework, СУБД MS SQL Server, язык C#.

Введение

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

Очевидно, что в приложении будет храниться большое количество персональных данных о клиентах. Аналитические материалы международной компании Positive Technologies, которая наряду с другими видами деятельности, выполняет тестирование на проникновение, свидетельствуют, что 91% исследуемых данной компанией web-приложений ориентированы на обработку хранение персональных данных клиентов. При этом, по данным компании, 18% web-приложений имеют такие уязвимости, которые позволяют злоумышленникам похитить персональные данные пользователей. Поэтому здесь необходимо обеспечить безопасность доступа к данным, так как на сегодняшний день взлом приложений приобретает обширный характер [1].

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

Схема базы данных информационной системы «Автостоянка»

При разработке схемы БД было учтено, что в рамках приложения должны быть реализованы следующие возможности:

добавление данных о сотруднике;

добавление данных о клиенте;

добавление данных о машине;

добавление данных о тарифе;

28

оформление заказа (с возможностью выбора места стоянки на каком-либо этаже автостоянки);

просмотр информации о регистрации автомобиля и клиента в системе;

расчет стоимости заказа;

расчет выручки.

Это предопределило разработку интерфейса системы (рис. 1) и схемы БД (рис. 2)

Таблица AutorizationnSet, содержит поля Login,Password, типа nvarchar(MAX), так как

С

 

данный тип используется для хранения строк переменной длины, состоящих из символов в

кодировке Unicode, данные в этих полях хешируются, эти поля содержат как буквы так и

цифры.

 

 

Таблица Cars содерж

т так е поля как: Car_brand, Car_color, Car_number, используют тип

nvarchar(MAX), данные в эт х полях могут содержать как буквы, так и цифры. Так же поля

IdCar, Client IdClient

меют

int, так как IdCar, является первичным ключом, а

тип

Client IdClient втор чным ключом.

 

бА

 

 

Д

Рисунок 1 – Главное окно, отображающее информацию

 

о занятых и свободных местах на 1 этаже

 

 

И

Рисунок 2– Схема БД

29

Таблица Clients содержит следующие поля типа nvarchar(MAX): Full_name, Addres_client, E_mail, данные в этих полях могут содержать как буквы, так и цифры. Поле IdClient является первичным ключом и имеет тип int, поле Birthday хранит дату и имеет тип datetime. Поля Phone и Passport_details имеют тип bigint, так как содержание значений в этих полях выходит за диапазон типа int, так же в этом поле могут использоваться только цифры.

Таблица Emloyee имеет первичный ключ IdEmploee типа int, также два поля типа bigint Стаких как-Phone employee, Data_passport данные в этих полях могут записываться только цифрами, Date received и Date_of_dismissal хранят дату и имеют тип datetime, поля Full name employee и Address_employee имеют тип nvarchar(MAX) содержать буквенные и

числовые значен я.

Таблица Registration содержит ключевое поле IdEmployee типа int, так же имеет вторичные ключи т па int такие как: Parking_place, Car_IdCar, Employee_IdEmployee, TariffтипIdTariff, поля Arrival date, Date of_departure, Actual_departure хранят значения даты и имеют тип datetime. Так же есть поле Cost имеет float, так как стоимость может иметь не целочисленное значен е.

В таблице Registration ольше всего в заимствованных данных из других таблиц, поэтому

Вописанном бАприложении шифрование реализуется на основе использования функции

Always Encrypted в MS SQL 2017, а также за счет установки пакета Entity Framework в Visual Studio 2017.

Как известно, Always Encrypted – это технология шифрования на стороне клиента, благодаря которой важные данные (и связанныеДс ними ключи шифрования) никогда не становятся доступны базе данных SQL Server или Azure SQL. При использовании Always Encrypted драйвер клиента прозрачно шифрует важные данные перед их передачей компоненту Database Engine, а также прозрачно расшифровывает данные, получаемые из зашифрованных столбцов базы данных [2].

Вдокументации по Entity Framework отмечается, что данный фреймворк «представляет специальную объектно-ориентированную технологию на базеИфреймворка .NET для работы с данными» [3]. Также указывается, что «если традиционные средства ADO.NET позволяют создавать подключения, команды и прочие объекты для взаимодействия с базами данных, то Entity Framework представляет собой более высокий уровень абстракции, который позволяет абстрагироваться от самой базы данных и работать с данными независимо от типа хранилища. Если на физическом уровне мы оперируем таблицами, индексами, первичными и внешними ключами, но на концептуальном уровне, который нам предлагает Entity Framework, мы работает с объектами» [3].

Важным этапом здесь является создание главного ключа столбца базы данных, ключа

шифрования столбца с SQL Server Management Studio (для разрабатываемой системы «АвтоПро» – рис. 3, 4).она содерж больше втор чных ключей.

30

СибАДИР сунок 3 – Создание главного ключа столбца БД

Рисунок 4 – Создание ключа шифрования столбца

В процессе создания таблиц (рассмотрим на примере таблицы Clients) необходимо

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

ENCRYPTED WITH (ENCRYPTION_TYPE = DETERMINISTIC,

ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256',

COLUMN_ENCRYPTION_KEY = CEK1)

31

СР сунок 5 – Выбор полей для шифрования в таблице Clients

выбираем-Randomized.

Есливставкиполе меет т п int мы выбираем шифрованиеDeterministic, для полей nvarchar

Также для того что ы разрешить запрос, строка подключения, которая используется,

должна быть зменена путем до авления:

дополнительнойбАнастройки. Entity Framework автоматически параметризует все запросы вставки/обновлен я / удален я [4].

Column Encryption Setting=Enabled

Операц , о новления и удаления работают должным образом без

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

Возможности выборки данных средствами LINQ и C#

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

Как отмечают многие специалисты: «Запрос представляет собой выражение, извлекающее данные из источника данных. Запросы обычно выражаются на специализированном языке запросов» [6].

Реализация запроса к БД осуществляется из Microsoft Visual Studio посредством языка

LINQ.

Все операции запросов LINQ состоят из трех отдельных действий:

1.получение источника данных;

2.создание запроса;

3.выполнение запроса.

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

32

С

 

направлений

Р сунок 6 – Запрос сохраняется в переменный запрос

 

н ц ализируется выражением запроса

Тем самым в нашей та л це DataGrid ото разятся только те данные, которые мы указали,

и только те, которые удовлетворяют условию.

 

Заключен е

бА

 

 

 

 

Кроме оп санных выше

обеспечения защиты данных

в приложении

«Автостоянка» в с стеме,

езусловно, реализована идентификация и

аутентификация.

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

Кроме того, в системе реализована валидация данных. Прежде чем использовать полученные от пользователя данные, нам надо убедиться, что они введены правильно и представляют корректные значения. Один из встроенных способов проверки введенных данных в WPF представлен классом ExceptionValidationRule. Этот класс обозначает введенные данные как некорректные, если в процессе ввода возникает какое-либо исключение, например, исключение преобразования типов [7]. Все это существенным

образом повышает уровень безопасности системы.

 

 

 

 

 

 

 

Библиографический список

 

 

1.

Статистика уязвимостей веб-приложений в 2018 году [Электронный ресурс] //URL:

https://www.ptsecurity.com/ru-ru/research/analytics/web-application-vulnerabilities-statistics-2019/

2.

Постоянное шифрование (разработкаДклиентских приложений) [Электронный ресурс]

//URL: https://msdn.microsoft.com/ru-ru/windows/desktop/mt147923

 

 

3.

Entity

Framework

[Электронный

 

ресурс]

//URL:

https://metanit.com/sharp/entityframework/1.1.php

 

 

 

 

4.

SQL

Server

Security

Blog

 

[Электронныйресурс]

//URL

https://blogs.msdn.microsoft.com/sqlsecurity/2015/08/27/using-always-encrypted-with-entity-

framework-6/

 

 

 

 

И

5.

Хеширование [Электронныйресурс] //URL

https://www.kaspersky.ru/blog/the-wonders-

of-hashing/3633/

 

 

 

 

 

 

 

6.

Запросы

LINQ (C#) [Электронныйресурс] //URL

https://docs.microsoft.com/ru-

ru/dotnet/csharp/programming-guide/concepts/linq/introduction-to-linq-queries

 

7.Валидация данных [Электронныйресурс] //URL https://metanit.com/sharp/wpf/14.php

33

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]