Статья:

Прозрачное шифрование данных в СУБД Oracle

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

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

Выходные данные
Химач Р.А., Филипенко А.А. Прозрачное шифрование данных в СУБД Oracle // Молодежный научный форум: Технические и математические науки: электр. сб. ст. по мат. XLV междунар. студ. науч.-практ. конф. № 5(45). URL: https://nauchforum.ru/archive/MNF_tech/5(45).pdf (дата обращения: 24.01.2019)
Лауреаты определены. Конференция завершена
Эта статья набрала 135 голосов
Мне нравится
Дипломы
лауреатов
Сертификаты
участников
Дипломы
лауреатов
Сертификаты
участников
на печатьскачать .pdfподелиться

Прозрачное шифрование данных в СУБД Oracle

Химач Роман Андреевич
студент 4 курса, факультет информатики, Самарский Университет им.С.П. Королёва, РФ, г. Самара
Филипенко Анастасия Андреевна
студент 4 курса, факультет информатики, Самарский Университет им.С.П. Королёва, РФ, г. Самара
Додонов Михаил Витальевич
научный руководитель, доц., кафедра прикладной математики, Самарский Университет им.С.П. Королёва, РФ, г. Самара

 

Введение

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

Основная часть

Самым простым вариантом для пользователя является «прозрачное шифрование данных». Эта технология базируется на управлении ключами системными средствами. Ключевая информация, используемая для шифрования данных, хранится в специальном файле «бумажнике». Пользователь может определить место хранения бумажника, задав значение параметра ENCRYPTION_WALLET_LOCATION в файле SQLNET.ORA. В Oracle предусмотрено значение по умолчанию параметра место хранения бумажника, равное $ORACLE_BASE/admin/$ORACLE_SID/wallet. Для использования этого места хранения бумажника соответствующий каталог должен быть создан вручную. Также ключевую информацию можно хранить на внешнем носителе.

Следующий этап – генерация ключевой информации. Пусть пользователь отображен на предопределенные роли CONNECT и RESOURCE и ему дополнительно предоставлена привилегия ALTER SYSTEM. После выполнения пользователем команды: ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY «walletpsw» на устройстве появляется файл «ewallet» с ключевой информацией.

Бумажник создан, для доступа к нему определен пароль «walletpsw», и можно приступить к прозрачному шифрованию файлов. Для демонстрации возможностей, реализованных в СУБД Oracle, создадим и заполним таблицу. Изменим статус столбца, объявив его зашифрованным, для этого необходимо наличие открытого бумажника. Для того чтобы открыть бумажник, необходимо предъявить файл и указать правильный пароль. Бумажник открывается только один раз любым из пользователей, имеющих право на выполнение операции. Естественно, что после выполнения операций с закрытыми столбцами бумажник рекомендуется закрыть (ALTER SYSTEM). Попытка другим пользователем прочитать информацию из закрытого столбца, а также попытка открыть бумажник, предъявляя неправильный пароль, отвергается системой.

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

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

Важно отметить, что после того, как законный пользователь открыл бумажник, содержимое таблицы становится доступным всем пользователям, имеющим право доступа к данным таблицы. Отмеченный факт существенно ограничивает область применения технологии прозрачного шифрования для систем с высокими требованиями к информационной безопасности. Кроме того, могут возникнуть проблемы с доступностью данных таблицы, если злоумышленник или неквалифицированный пользователь выполнит команду, для которой не требуется знание пароля, закрытия бумажника ALTER SYSTEM SET ENCRYPTION WALLET CLOSE.

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

Рассмотрим данный вид шифрования на примере:

1.  Определим место хранения бумажника на устройстве C:/ (рисунок 1)

 

Рисунок 1. Расположение бумажника

 

2.  Создадим бумажник с возможностью доступа к нему по паролю walletpsw:

ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "walletpsw"; Убедимся, что бумажник создан (на устройстве появится новый файл с именем «ewallet) (рисунок 2):

 

Рисунок 2. Созданный бумажник

 

3.  Создадим таблицу с именем ТТТ:

CREATE TABLE TTT(

num1 NUMBER,

num2 NUMBER,

str VARCHAR2(10)

);

Заполним ее:

INSERT INTO TTT VALUES(1,2,'USER');

INSERT INTO TTT VALUES(3,4,'Alex');

INSERT INTO TTT VALUES(5,6,'Lara');

Затем изменим спецификацию одного столбца на шифрованный:

ALTER TABLE TTT MODIFY(str ENCRYPT);

4.  Откроем бумажник и проверим возможность чтения открытой информации (вывод таблицы ТТТ рисунок 3):

SELECT * FROM TTT;

 

Рисунок 3. Вывод таблицы ТТТ

 

Закроем бумажник командой:

ALTER SYSTEM SET ENCRYPTION WALLET CLOSE AUTHENTICATED BY "walletpsw";

Убедимся, что зашифрованная информация не доступна (см.рисунок 4):

SELECT * FROM TTT;

 

Рисунок 4. Вывод сообщения об ошибке ORA-28365

 

Попытаемся открыть бумажник с неверным паролем:

ALTER SYSTEM SET ENCRYPTION WALLET OPEN AUTHENTICATED BY "walletpsw123";

Рисунок 5 демонстрирует нам то, что нельзя открыть бумажник с неверным паролем.

 

Рисунок 5. Вывод сообщения об ошибке ORA-28353

 

5.  Попытаемся создать «логическую копию» бумажника.

ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "walletpsw123";
Рисунок 6 демонстрирует, что данное действие не приводит к возможности получить доступ к данным:

 

Рисунок 6. Вывод сообщения об ошибке отказа в доступе

 

Заключение

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

 

Список литературы:
1. Нанда А., Фейерштейн С., Oracle PL/SQL для администраторов баз данных, 2008.
2. Марлен Терьо, Рэчел Кармайкл, Джеймс Вискузи, 101 Oracle8i. Организация работы в сети, 2001.