Научная статья на тему 'ОСНОВНЫЕ ПОДХОДЫ К ПРОЦЕССУ ШИФРОВАНИЯ БАЗ ДАННЫХ НА ОСНОВЕ ПРОЦЕДУРЫ ГЕНЕРИРОВАНИЯ ОДНОРАЗОВЫХ КЛЮЧЕЙ'

ОСНОВНЫЕ ПОДХОДЫ К ПРОЦЕССУ ШИФРОВАНИЯ БАЗ ДАННЫХ НА ОСНОВЕ ПРОЦЕДУРЫ ГЕНЕРИРОВАНИЯ ОДНОРАЗОВЫХ КЛЮЧЕЙ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
232
39
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Лукманов Ильнар Ильгизович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ОСНОВНЫЕ ПОДХОДЫ К ПРОЦЕССУ ШИФРОВАНИЯ БАЗ ДАННЫХ НА ОСНОВЕ ПРОЦЕДУРЫ ГЕНЕРИРОВАНИЯ ОДНОРАЗОВЫХ КЛЮЧЕЙ»

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

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

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

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

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

Список литературы:

1. Beale M.H. Matlab Neural Network Toolbox: User's Guide/ Beale M.H., Hagan M.T., Demuth H.B. [Электронный ресурс] URL: ftp://itp.mathworks.com (дата обращения 05.04.2019).

2. Weintek labs., Inc. MT8070iE1_DataSheet_ENG_20180705 [Электронный ресурс] URL: http://www.rusavtomatika.com/upload_files/manuals/ MT8070iE.pdf (дата обращения 05.06.2019);

3. Weintek labs., Inc. Руководство к EasyBuilderPro [Электронный ресурс] URL: http://www.rusavtomatika.com/upload_files/manuals/EBPro_Manual _All_In_One.pdf (дата обращения 05.06.2019);

4. АО «Нефтемаш», информация о компании [Электронный ресурс] URL: http://dznm.ru/about/ (дата обращения 06.06.2019);

5. О промышленной безопасности опасных производственных объектов. - М.: ДЕАН, 2015. - 719 c.

6. Шаймарданов В.Х. Процессы и аппараты технологий сбора и подготовки нефти, и газа на промыслах. Научно-издательский центр «Регулярная и хаотическая динамика», 2013. - 508 c.

ОСНОВНЫЕ ПОДХОДЫ К ПРОЦЕССУ ШИФРОВАНИЯ БАЗ ДАННЫХ НА ОСНОВЕ ПРОЦЕДУРЫ ГЕНЕРИРОВАНИЯ ОДНОРАЗОВЫХ КЛЮЧЕЙ

Лукманов Ильнар Ильгизович

ИСПОЛЬЗУЕМЫЕ СОКРАЩЕНИЯ И ОПРЕДЕЛЕНИЯ

SHA - Secure Hashing Algorithm

ГОК - Генератор одноразовых ключей

eToken - electronic token

ajax - асинхронная передача данных

jQuery - вспомогательная библиотека над java script

Соль1 - уникальное слово, гарантирующее уникальность данных при шифровании Основные подходы к процессу шифрования баз данных на основе процедуры генерирования

одноразовых ключей

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

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

1 Методы шифрования

1.1 Симметричное шифрование

При симметричном шифровании обычного текста, он кодируется (шифруется), таким образом, что становится нечитаемым. Это скремблирование данных производится с помощью ключа. Как только данные будут зашифрованы, их можно безопасно передавать на ресивер. У получателя, зашифрованные данные декодируются с помощью того же ключа, который использовался для кодирования. Таким образом ясно что ключ является наиболее важной частью симметричного шифрования. Он должен быть скрыт от посторонних, так как каждый у кого есть к нему доступ может расшифровать его. Вот почему этот тип шифрования также известен как "секретный ключ". В современных системах, ключ обычно представляет собой строку данных, которые получены в виде «надежного пароля», или из совершенно случайного источника. Он используется в процессе симметричного шифрования программного обеспечения, которое применяет его, чтобы засекретить входные данные. Скремблирование данных достигается с помощью симметричного алгоритма шифрования, такого как: стандарт шифрования данных (DES), расширенный стандарт шифрования (AES), или международный алгоритм шифрования данных (IDEA).

1. 1.2 Ассиметричное шифрование

Асимметричный ключ шифрования работает аналогично симметричному ключу, данный вид шифрования использует ключ для кодирования передаваемых сообщений. Однако, вместо того, чтобы использовать тот же ключ, для расшифровки этого сообщения он использует другой. Ключ, используемый для кодирования доступен любому и всем пользователям сети. Как таковой он известен как «общественный» ключ. С другой стороны, ключ, используемый для расшифровки, хранится в тайне, и предназначен для использования в частном порядке самим пользователем. Следовательно, он известен как «частный» ключ. Асимметричное шифрование также известно, как шифрование с открытым ключом. Поскольку, при таком способе, секретный ключ, необходимый для расшифровки сообщения не должен передаваться каждый раз, и он обычно известен только пользователю (приемнику), вероятность того, что злоумышленник сможет расшифровать сообщение значительно ниже. Diífie-Hellman и RSA являются примерами алгоритмов, использующих шифрование с открытым ключом.

2. 1.3 Хэширование

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

• одни и те же данные всегда производит тот же самый хэш.

• невозможно, генерировать исходные данные из хэша в одиночку.

• Нецелесообразно пробовать разные комбинации входных данных, чтобы попытаться генерировать тот же самый хэш.

Таким образом, основное различие между хэшированием и двумя другими формами шифрования данных заключается в том, что, как только данные зашифрованы (хешированы), они не могут быть получены обратно в первозданном виде (расшифрованы). Этот факт гарантирует, что даже если хакер получает на руки хэш, это будет бесполезно для него, так как он не сможет расшифровать содержимое сообщения. Message Digest 5 (MD5) и Secure Hashing Algorithm (SHA) являются двумя широко используемыми алгоритмами хеширования.

2 Выбор метода шифрования и пример его работы, для шифрования данных полученных от

ГОК

2.1 Выбора метода шифрования

Проанализировав существующие методы шифрования данных, для шифрования полученной от устройства генератора одноразовых ключей информаций на стороне сервера (backend) было принято использовать SHA (а именно SHA-256) шифрования с добавлением "соли"1, к первоначальному паролю.

Метод шифрования SHA 256 был выбран по следующим достоинствам:

• высокая скорость шифрования и практически невозможная расшифровка без ключей;

• минимальный риск появления коллизий (одинаковых образов).

Но, тем не менее, не смотря на высокую степень безопасности использования SHA 256 и добавления уникального слова к первоначальному паролю ("соль") все же остается риск непосредственного взлома базы данных злоумышленником и перебора возможных комбинаций с hash суммой. Для решения этой проблемы было принято в момент шифрования вместе со словом "соль" использовать дополнительный локальный параметр.

Дополнительный локальный параметр это еще одно слово "соль" в комбинаций "пароль + соль", только данный параметр будет храниться не в базе данных, а непосредственно в памяти приложения локальной машины - константа системы. В константы системы локальный параметр попадает из конфигурационного файла (только не из базы данных).

2.2 Примеры реализаций методов шифрования

Для демонстраций основных методов шифрования рассмотренных в главе 1 создадим web сервис реализующий алгоритмы шифрования принимающий запросы по принципу REST api. После создадим front обертку с небольшим UI интерфейсом на стороне клиента для отправки наших данный на сервер и вывод полученных шифров на экран клиенту.

В качестве конечной точки (end point) куда будут отправляться запросы, используем тестовый домен ilnarlx5.bget.ru/service/hash/ находящийся на хостинг провайдере компаний Beget. Серверная часть осуществляющая шифрование данных и принимающая запросы с фронта будет написана интерпретируемом языке гипертекстовой разметки - PHP. В качестве системы управления базами данных будет использоваться MySQL. Фронт будет написан с применением технологий html, css, javaScript + jQuery, а для отправки данных на сервер используем технологию Ajax (асинхронная передача данных на сервер), что позволит передавать и получать данные из backend без перезагрузки страницы.

Определим основные REST api запросы и сведем их в таблицу 1.

ТАБЛИЦА 1.

ОСНОВНЫЕ REST API ЗАПРОСЫ

Название метода Метод передачи Конечная точка (URL) ilnarlx5.bget.ru/service/hash/ Входные параметры Выходные параметры

Симметричное шифрование POST symmetric_encryption.php {password: value} String: зашифрованный пароль

Ассиметричное шифрование POST asymmetric_encryption.php {password: value} String: зашифрованный пароль

Хеширование POST hash_function.php {password: value} String: зашифрованный пароль

SHA + слово соль + локальный параметр POST custom_hash.php {password: value} String: зашифрованный пароль

2.2.1 Реализация симметричного шифрования

Реализуем симметричное шифрование инструментами и технологией описанной в параграфе 2.2, в качестве библиотеки шифрования воспользуемся строенным модулем в php - HASH, для этого:

1) Создадим файл symmetric_encryption.php в каталоге сервера /service/hash/ для этого воспользуемся встроенной панелью управления sprutio, предоставленной провайдером Beget, Рисунок 1:

«- Я С i sprutio.beget.com File Manager - Beget

уроки рисования * дизайн, рисование, art * учеба * U websalamat-andr V Vi i Cebjçger В Act

Файл » Навигация » Инструменты •

± Ш Локальный сервер Удалённый сервер Список Ca 0 5 m йтов Обновить Новая гагка Загрузить Файлы С<

^ Локальный сервер - jS, А ..Л In arlx5.bgei.ru/public_html/servke/hash

Имя ~ Тип Размер Владелец Атри... Изменён

— [DIR]

Q symmeirk_encrypcion php 0 byL.. ¡Inarlx5 600 17,№,2019 04:24.

Рисунок 1. Создание файла symmetric encryption.php

2) В данном файле напишем программный код на языке php, листинг которого представлен ниже Рисунок 2

Editor symmetric_encryption,php

Кодировка »

Синтаксис: *

<?php

* Класс реализугаций логику симметричного шифрования

* (Sauthor LuknarovII

* ^version 1.0 */

class 5ymmetriEncnyption{

// закрытые переменные не доступны за классом private ^password; private $key_t; private $algos;

function _con5truct(){

$this->password = $_POST['password1]; // данные для шифрования

$this->key_t = $_P05T["keyt"]; // ключ no которому данные будут шифроваться

$this->algos = hashhmacalgos(); // список доступных алгоритмов шифрования try{

echo hashhmac(algosfEjj $this-spasswordj $this->key_t); }catch(Exception

echo "ошибка при шифрований e - " -$e;|

}

new SymmetriEncryptionQ;

Класс на языке php реализующий логику симметричного шифрования Рисунок 2. Листинг класса SymmetricEncrypting на языке php

Как видно из листинга при написаний исходного код был применен подход Обьектно ориентировочного программирования. На строчках 7-13 создается класс SymmetricEncrypting и задаются закрытые переменны: password - переменная будет служить для хранения переданного пароля с фронта, key_t - переменная для хранения ключа по которому будет шифроваться пароль, algos - ассоциативный массив для хранения доступных методов шифрования библиотеки HASH. Строчка 14 (далее - Стр. [номер строчки]) создается конструктор класса внутри, которого будет происходить получения данных с фронта, шифрование данных и отправка полученного значения обратно. Стр. [16-17] инициализация переменных путем записи в них значений из глобального массива POST, стр 18 получение доступных методов шифрования библиотеки HASH путем вызова функций hash_hmac_algos(). Стр.[20] путем вызова функций hash_hmac() производиться шифрование данных и одновременная отправка полученного результат на фронт с помощью функций echo(). Более подробно о встроенных функциях HASH можно узнать из официальной документации: https://www.php.net/manual/ru/book.hash.php

3) Для проверки работоспособности функций напишем клиентскую часть сервиса (front). Для создания UI интерфейса воспользуемся библиотекой bootstrap.

3.1) Создадим файл index.php. Данный файл будет являться точкой работы с сервисом.

А Локальным сервер - ™ ^ ,./¡lnarlx5, bget.ru/public. .him l/se п.ч ce/hash

Имя ~ Тиг Размер Владелец Атри... Изменён

^ „ [DIR]

Г"*] index php 0 Ьут... ilnarlx5 600 17.06.2019 04:49...

Рисунок 3. Создание файла index.php

3.2) Напишем каркас нашего сервиса на стороне фронта:

< J DOCTYPE html>

<fitml lang="ru"> <head>

<meta charset="utf-8" /> <title оцифрование flaHHUx</title>

<meta name="viewport" content="width=device-width, initial-scale=l, shrink-to-fit=ro">

<lirk rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.rain.ess" integrity="sha384-ggOyR0i <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfR <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.mir.js" integrity="sha384-UO2eT0CpHqdSJQ6h3ty5KV <script src="https://stackpath.bootstrapcdn,com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-]jSmVgyd0p3pXBlrRibZUAYoI </head> <body>

<div class="container"> <div class="row"> <div class="col">

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

<blockquote class="blockquote">

<p clas5="mb-0 h4">Web сервис шифрования данных</р> <p clas5="h6">flaHHbfi сервис носит ознакомительный характер, <br>

не рекомендуется использовать его в практических целях </р> <br>

<р class = "h6"> <em>

Авторы сервиса:

<ul>

<li class = "h6">Лукманов Ильнар Ильгизовин - студент УГАТУ</И>

<li class = "Ьб">Жернаков Сергей Владимирович - преподаватель высшей школы, ученый. Доктор технических наук (2006),

</ul> </em>

Рисунок 4. Html каркас сервиса

Рисунок 6. UI внешний вид сервиса

3.3) Напишем программу на языке java script с использованием вспомогательной библиотеки обертки над java script - jQuery.

Editor: main.js

Файл - Кодировка - Синтаксис »

1 2 jQuery(document).ready(function(i) {

3 $('ttgetSymmEncBut').or('click1, function(){

4 $.ajax({

5 url: "symmetricencryption.php".,

6 type: "POST"j

7 data: {password: $('flsycEnctPass').val()j keyt: i('ffsycEnctKey1).val()},

8 success: function(data){

9 $( "ffresultSyncEnc").text(data);

10 }

11 })J

12 }>;

13

Рисунок 7. Исходный код java script файлы main.js

Основная задача данного программного кода оправить ajax запрос на сервер когда клиент нажимает кнопку "отправить" в блоке симметричное шифрование. Для отправки используется технология асинхронного запроса Ajax. Стр.[3] привязка к событию нажатия кнопки. Стр. [4-10] Отправка запроса на сервер с помощью обьекта $.ajax библиотеки jQuery, и вывод полученного результат в консоль браузера.

3.4) Протестируем наш REST, отправив запрос на сервер

1Я Симметричное шифрование (SHA 256)

Данный блок выполняет запрос REST api симметричного шифрования

Введите данные и нажмите кнопку "Отправить"

Придумайте пароль qwertyl 234

Придумайте ключ для шифрования и sat и

REST запрос http://ilnarlx5. bget. ru/service/hash/symmetric_encryption.php Рисунок 8. Значение, полученное от сервера при запросе шифрования.

2.2.2 Реализация шифрования SHA с применением слова соль и локального параметра

Данная логика шифрования данных была озвучена в главе 2.1 принцип ее реализаций как сервиса, схож с тем, что написано в главе 2.2.1, единственным отличием является программный код шифрования на стороне сервера, рассмотрим его более подробно. На рисунке 9 представлен листинг файла custom_hash.php

7 class CustomEncryption{

8

9 // закрытые переменные не доступны за классом

19 private $passwopd;

11 private $sol;

12 private $localSol = "SpRiNg";

13 private $resultEnc;

14 private Jkeyjtj

15 private Jalgos = array();

16

17 function _construct(){

IS

19 $this>password = $_POST["password"]; // данные для шифрования

20 $this->sol = $_POST['sol'];

21

22 $this >resultEnc = $this >password.$this->sol.ithis->local5ol;|

23 $this->key_t = $this->resultEnc.$this->sol;

24

25 $this->algos = hash_hmac_algos(); // список доступных алгоритмов шифрования

26 try{

27 echo hash_hmac('sha256", $this->resultEnc, $this->key_t)."<br><br> Локальный параметр: '.$this->localSol;

28 }catch(Exception $e){

29 echo "ошибка при шифрований e - " .$e;

30 >

31 }

32 }

34 new CustomEncryption{);

35 ?>

шифрования данных SHA 256 + соль + локальный параметр Рисунок 9. Листинг программы

Для шифрования используется все та же функция hash_hmacO, с единственным отличием, теперь в качестве входного значения используется конкатенированное поле пароля сл словом соль и локальным параметром стр.[22] и в качестве ключа шифрования выступает соль + локальный параметр стр.[23] В итоге на фронт мы получаем значение следующего вида:

c8f71649cO20aa5da622bfcf3ce6e2f5cüa41d7c6c10ed7904380183с6979082

Локальный параметре SpRiNg

Рисунок 10. Результат REST запроса: http://ilnarlx5.bget.ru/service/hash/custom_hash.php

Заключение

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

i Надоели баннеры? Вы всегда можете отключить рекламу.