ШИФРОВАНИЕ ДАННЫХ ПРИ ПОМОЩИ МЕТОДА CRYPT()
1 2 Рубашенков А.М. , Бобров А.В.
Email: [email protected]
1 Рубашенков Антон Михайлович - студент; 2Бобров Андрей Виорелович - студент, кафедра защиты информации, Институт комплексной безопасности и специального приборостроения, Российский технологический университет, г. Москва
Аннотация: шифрование базы данных — использование технологии шифрования для преобразования информации, хранящейся в базе данных (БД), в шифротекст, что делает ее прочтение невозможным для лиц, не обладающих ключами шифрования. Существует два основных способа шифрования информации: симметричный и асимметричный. Главным принципом в них является то, что передатчик и приемник заранее знают алгоритм шифрования и ключ к сообщению, без знания которых информация представляет собой бессмысленный набор символов.
Хеширование используется в качестве метода защиты информации. Алгоритм хеширования генерирует строку определенной длины, называемую хешем, на основе введенных данных или сообщения. Хеширование отличается от шифрования тем, что алгоритм необратим, то есть не существует преобразования, позволяющего получить сообщение из его хеша.
Ключевые слова: шифрование, база данных, информация, ключи шифрования, шифротекст.
DATA ENCRYPTION USING THE METHOD CRYPT () Rubashenkov A.M.1, Bobrov A.V.2
1Rubashenkov Anton Mikhailovich - Student; 2Bobrov Andrey Viorelovich - Student, DEPARTMENT OF INFORMATION SECURITY, INSTITUTE OF INTEGRATED SECURITY AND SPECIAL INSTRUMENT ENGINEERING, RUSSIAN TECHNOLOGICAL UNIVERSITY, MOSCOW
Abstract: database encryption - the use of encryption technology to convert information stored in a database (DB) into a ciphertext, which makes its reading impossible for persons who do not have encryption keys.
There are two main ways to encrypt information: symmetric and asymmetric. The main principle in them is that the transmitter and receiver know in advance the encryption algorithm and the key to the message, without knowing which information is a meaningless set of characters. Hashing is used as a method of protecting information. The hashing algorithm generates a string of a certain length, called a hash, based on the entered data or message. Hashing differs from encryption in that the algorithm is irreversible, that is, there is no transformation that allows you to receive a message from its hash.
Keywords: encryption, database, information, encryption keys, ciphertext.
УДК 004.031.2
Шифрование с помощью функции crypt()
Создадим базу данных password_encryption. Как представлено на рисунке 1.
Рис. 1. Создание базы данных
Создадим таблицу users со столбцами id, username, cryptpwd и md5pwd. В username будет храниться имя пользователя, в cryptpwd зашифрованный пароль, в md5pwd md5-хеш код. [1] Столбец md5pwd используем для демонстрации преимущества функции crypt(). Как представлено на рисунках 2, 3.
с Отмена | | О Сбросить j |
Рис. 2. Создание таблицы
В Создание Таблица
Общие Столбцы Ограничения Дополнительно Параметры Безопасность SQL
Наследуется из таблиц(ы)
Выберите источник нас
Столбцы +
Имя " Тип данных Длина Точность He NULL? Первичный ключ?
от fi) username character varying 100 пая па
or fil id serial ▼ EX EX
[У fil cryptpwd text EX [ЕВ
& fil md5pwd text EX па
X Отмена О Сбросить
Рис. 3. Создание столбцов в таблице
Преимущество функции crypt в том, что она используют случайное значение, называемое солью, чтобы у пользователей с одинаковыми паролями зашифрованные пароли оказывались разными. [2]
1-й аргумент данной функции - это информация, которую требуется зашифровать, а 2-й аргумент - это метод шифрования, с помощью которого вычисляется функция gen_salt(). Как показано на рисунке 4.
У функции gen_salt 1 аргумент, который задаёт алгоритм хеширования. Добавим в таблицу users двух пользователей с Anton и Andrey с зашифрованными паролями.
Рис. 4. Создание зашифрованной ячейки с помощью gen_salt()
При запросе всех значений из таблицы users видим, что столбцы cryptpwd и md5pwd зашифрованы. [3] Хоть пароли пользователей одинаковы и md5 хеш код тоже, но зашифрованные пароли у них разные. Здесь демонстрируется преимущество функции crypt(). Как показано на рисунке 5.
Query Editor История запросов 1 SELECT - FROM public..Bers
Результат План выполнения Сообщения Notifications
username j character varying (100) 1 Anion 2 Andrey id cryptpwd [PKl integer text 1 S1 S72juau3s$Ler./Gk1dlHe77K4EGZGU/ 2 $lSAaoOJseK$OJah/Sd7u6yJKHmqpJonOO mdSpwd text 098f6bcd4621d373cade4e832627b4f6 098f6bcd4621d373cade4e832627b4f 6
Рис. 5. Вывод информации из таблицыpublic.users Проверка подлинности пароля. Как показано на рисунке 6.
Qjery Editor История запросов
1 SELECT username
2 FROM users
3 WHERE usernatne = 'Anton' AND сryptpwd = crypt test", c^yptpwd)
Результат План выполнения Сообщения Notifications unman»
j character varying (100) 1 Anton
Рис. 6. Выбор информации из таблицы
Получаем правильный ответ, т.к. указан верный пароль.
Список литературы /References
1. [Электронный ресурс]. Режим доступа: https://postgrespro.ru/docs/postgrespro/9.5/manage-ag-createdb/ (дата обращения 10.05.2019).
2. [Электронный ресурс]. Режим доступа: https://www.postgresql.org/docs/8.3/pgcrypto.htmI/ (дата обращения 15.05.2019).
3. [Электронный ресурс]. Режим доступа: https://www.postgresql.org/docs/9.1/functions-string.html/ (дата обращения 18.05.2019).