Статья:

Шифрование данных с явным заданием ключа в СУБД Oracle

Конференция: XLVII Студенческая международная научно-практическая конференция «Молодежный научный форум: технические и математические науки»

Секция: Технические науки

Выходные данные
Акимова А.В. Шифрование данных с явным заданием ключа в СУБД Oracle // Молодежный научный форум: Технические и математические науки: электр. сб. ст. по мат. XLVII междунар. студ. науч.-практ. конф. № 4(47). URL: https://nauchforum.ru/archive/MNF_tech/7(47).pdf (дата обращения: 25.09.2018)
Лауреаты определены. Конференция завершена
Эта статья набрала 0 голосов
Мне нравится
Дипломы
лауреатов
Сертификаты
участников
Дипломы
лауреатов
Сертификаты
участников
на печатьскачать .pdfподелиться

Шифрование данных с явным заданием ключа в СУБД Oracle

Акимова Анастасия Витальевна
студент 4 курса, кафедра Геоинформатики и Информационной Безопасности, Самарский университет, РФ, г. Самара
Додонов Михаил Витальевич
научный руководитель, доц., Самарский университет, РФ, г. Самара

 

Введение

Традиционным способом обеспечения конфиденциальности данных является их шифрование. В течение длительного времени оно мало применялось.

Почему шифрование данных не применялось?

•    Сложно организовывать эффективный поиск.

•    Процедуры шифрования являются достаточно ресурсоемкими.

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

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

Шифрование в СУБД Oracle

СУБД Oracle, так же как и другие промышленные системы, построена по принципу суперпользователя, который всегда способен прочитать все данные любого пользователя. Суперпользователем в Oracle является SYS. У него есть привилегия «SELECT ANY TABLE», а значит он может прочитать данные всех таблиц в БД. У него есть привилегия «ALTER USER», а значит он может временно подменить любому пользователю пароль, войти в систему под чужим именем и работать неотличимо от оригинала, так что никакой аудит не обнаружит несанкционированный доступ. Тем самым сотрудник, которому предоставлено право работать под именем SYS, должен быть крайне доверенным лицом в организации, где используется БД под Oracle.

Возникает вопрос, можно ли снизить риск утечки собственных данных через суперпользователя?

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

Для использования методов шифрования и работы с зашифрованными данными в СУБД Oracle существуют два пакета:

•    DBMS_OBFUSCATION_TOOLKIT

•    DBMS_CRYPTO

Начиная с версии 8.1.6 с Oracle поставляется пакет для шифрования и расшифровки методом DES под названием «DBMS_OBFUSCATION_TOOLKIT».

В данной статье все внимание уделяется второму пакету – «DBMS_CRYPTO». В версии 10 в состав системных пакетов включен (в перспективе - на замену DBMS_OBFUSCATION_TOOLKIT) более функциональный пакет DBMS_CRYPTO, позволяющий шифровать данные других и другими алгоритмами (не только DES, 3DES, но еще и AES, и RC4, и 3DES_2KEY плюс алгоритмы хеширования).

Средства шифрования.

 

Процедуры шифрования и дешифрования реализованы средствами встроенного пакета DBMS_CRYPTO. Для шифрования данных используется процедура ENCRYPT, для дешифрования – DECRYPT. Конкретный алгоритм шифрования и особенности технологии шифрования указываются параметром процедуры (рис.2). Особенность реализации процедур состоит в том, что тип данных для ключа – RAW, а для преобразуемой строки RAW, CLOB или BLOB.

Тип данных RAW предназначены для хранения данных, которые не подлежат интерпретации средствами Oracle (т. е. не требуют преобразования при переносе из одной системы в другую). Этот тип данных используется для двоичных данных и байтовых строк. Тип данных RAW предназначен для хранения данных переменной длины и аналогичен символьному типу данных VARCHAR2. Когда Oracle автоматически преобразует данные типа RAW или LONG RAW в данные типа CHAR и обратно, двоичные данные представляются в шестнадцатеричном виде, где один шестнадцатеричный символ соответствует четырем последовательным битам данных типа RAW.

11001011 → СВ

Типы данных CLOB позволяет хранить в базе данных до четырех гигабайтов символьных данных. Объекты типа CLOB содержат данные в кодировке базы данных. Если кодировка базы данных содержит символы переменной длины, значение объекта типа CLOB хранится в базе данных с помощью двухбайтной кодировки Unicode с фиксированной длиной символов. Oracle переводит хранимые данные из кодировки Unicode в кодировку, запрашиваемую клиентом или сервером. Эта кодировка может иметь как фиксированную, так и переменную длину. Если в столбец типа CLOB вставляются данные в кодах переменной длины, Oracle преобразует их в Unicode прежде, чем сохранить в базе данных.

BLOB - как столбец типа VARCHAR BINARY. Если длина значения превосходит максимально допустимую длину столбца, то это значение соответствующим образом усекается

В процедурах шифрования и дешифрования могут использоваться криптографические алгоритмы блочного шифрования DES, 3DES, AES и алгоритм потокового шифрования RC4. Алгоритмы блочного шифрования могут использоваться в 4 режимах: ЕСВ, СВС, CFB, OFB.

Режимы шифрования.

·     режим электронной кодовой книги (ЕСВ — Electronic Code Book, рис. а);

·     режим сцепления блоков (СВС — Cipher Block Chaining, рис. б);

·     режим обратной связи по шифртексту (CFB — Cipher Feed Back, рис. в);

·     режим обратной связи по выходу (OFB – Output Feed Back, рис. г).

 

Заключение.

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