
лаба 5
.docxМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное образовательное
учреждение высшего образования
«Юго-Западный государственный университет»
Лабораторная работа №5
По дисциплине: «Безопасность систем баз данных»
Тема: «Шифрование SQL Server.»
Выполнил: Рохтин Я.А.
студент группы ИБ-21б
Проверил: Посканный М.В.
Ассистент
Курск, 2024
Цель работы
Изучить теоретическую часть. Рассмотреть основные методы шифрования. Зашифровать базу данных в среде Microsoft SQL Server 2008 R2 любым из представленных способом.
Ход работы
Приступаем к выполнению лабораторной работы по шифрованию в SQL Server. Сначала создадим асимметричный ключ для базы данных. Войдём в базу данных и с помощью команды CREATE ASYMMETRIC KEY сформируем пару ключей. (Рис. 1). Далее перейдём к объявлению переменных, зашифруем текст с помощью функции ENCRYPTBYASYMKEY и проверим результат расшифровки через DECRYPTBYASYMKEY. (Рис. 2). Теперь удалим созданный асимметричный ключ командой DROP ASYMMETRIC KEY. (Рис. 3)
Рисунок 1 – создание асимметричного ключа.
Рисунок 2 – работа кода по шифровке и расшифровки текста.
Рисунок 3 – удаление ассиметричного ключа.
Теперь создадим сертификат. Создадим папку Cerf куда поместим и будем хранить сертификаты. Далее с помощью CREATE CERTIFICATE, зададим тему и срок действия сертификата. Экспортируем сертификат в файловую систему, укажем путь к файлу и приватный ключ. (Рис. 4). Если сертификат больше не нужен, удалим его командой DROP CERTIFICATE. (Рис. 5). Чтобы воссоздать из файла введем запрос. (Рис. 6)
Рисунок 4 – создание и экспорт сертификата.
Рисунок 5 – код удаления сертификата.
Рисунок 6 – воссоздание файла сертификата.
Переходим к созданию симметричных ключей. Сначала создаём второй ключ, а потом создаём ключ, который шифрует данные, используя CREATE SYMMETRIC KEY. (Рис. 7). После этого откроем ключ командой OPEN SYMMETRIC KEY. (Рис. 8). Создаём и открываем ключ, который шифрует данные. (Рис. 9).
Рисунок 7 – создание ключа шифрования.
Рисунок 8 – код открытия ключа.
Рисунок 9 – создание и открытие ключа шифрования.
Инициализируем текст для шифрования, шифруем его и сразу же расшифровываем при помощи предложенного кода. (Рис. 10). После чего закрываем ключ шифрования данных и ключ шифрования ключа. (Рис. 11)
Рисунок 10 – шифровка и расшифровка текста.
Рисунок 11 – код закрытия ключа шифрования.
Теперь реализуем шифрование с помощью ключевой фразы. С помощью ENCRYPTBYPASSPHRASE зашифруем текст, а затем расшифруем его с помощью DECRYPTBYPASSPHRASE. (Рис. 12)
Рисунок 12 – шифровка и расшифровка текста.
Переходим к следующему этапу изучения шифрования БД. Создадим базу данных (Рис. 13) с использованием симметричного ключа, который будет зашифрован асимметричным ключом. Запустим код T-SQL для создания таблицы с именем TelephonNumber в базе данных DB. (Рис. 14). Используем предложенный код для создания главного ключа DMK базы данных DB, шифруемого с помощью парольной фразы $tr0nGPa$$w0rd. (Рис. 15).
Рисунок 13 – создание новой БД.
Рисунок 14 – создание таблицы TelephonNumber.
Рисунок 15 – создание главного ключа шифрования.
Необходимо создать асимметричный ключ, зашифровать его парольной фразой $tr0nGPa$$w0rd, создать симметричный ключ и зашифровать симметричный ключ с помощью созданного асимметричного ключа. (Рис. 16).
Рисунок 16 – шифрование асимметричного ключа симметричным.
После проделанного вышеописанного этапа, приступим к шифрованию данных. Для этого необходимо открыть симметричный ключ, с помощью команды OPEN SYMMETRIC KEY, за которой следует имя симметричного ключа. Затем указываем, что нужно расшифровать его с использованием заданного ключа. (Рис. 17).
Рисунок 17 – код открытия симметричного ключа.
После выполнения кода направим запрос в представление sys.openkeys, чтобы убедиться, что ключ открыт (Рис.18)
Рисунок 18 – запрос на проверку открытия ключа.
Введем несколько телефонных номеров в таблицу TelephoneNumber, запустив предложенный код. (Рис. 19). После этого выведем получившуюся таблицу на экран. (Рис. 20).
Рисунок 19 – инициализация номеров телефонов в таблице БД.
Рисунок 20 – вывод зашифрованных телефонных номеров.
Все данные в TelephoneNumber представлены в двоичном формате. С помощью DECRYPTBYKEY просмотрим зашифрованные данные (Рис. 21)
Рисунок 21 – вывод расшифрованных телефонных номеров.
Для будущего этапа лабораторной работы создадим сертификат с помощью инструкции CREATE CERTIFICATE. Затем создадим симметричный ключ, шифруемый сертификатом. Наконец, открыв симметричный ключ, код вставляет три строки в таблицу. (Рис. 22). После этого просмотрим зашифрованные данные. (Рис. 23). Наконец после просмотра - расшифруем их. (Рис. 24).
Рисунок 22 – результат работы кода по созданию сертификата и строк.
Рисунок 23 – вывод созданных зашифрованных данных.
Рисунок 24 – расшифровка данных.
Заключительный этап — приступим к созданию ключа шифрования в базе данных Laba1 с использование нашего сертификата. (Рис. 25). После этого включим шифрование для нашей базы данных. (Рис. 26).
Рисунок 25 – ключ шифрования с сертификатом.
Рисунок 26 – код включения шифрования БД.
Конечным этапом просмотрим зашифрованные базы данных, введя предложенный программный код (Рис. 27).
Рисунок 27 – вывод зашифрованных БД.
В итоге реализовали основные методы шифрования данных с использованием SQL-запросов. Все этапы шифрования и расшифровки были тщательно проработаны и проверены на корректность выполнения.
Вывод
В ходе лабораторной работы была реализована и поверхностно исследована система защиты данных в SQL Server, охватывающая ключевые методы шифрования и криптографические приемы для обеспечения безопасности информации. Проведено создание асимметричных и симметричных ключей, которые использовались для шифрования и последующей расшифровки данных, что дало представление о принципах работы с асимметричным и симметричным шифрованием в рамках базы данных. Также были разработаны и использованы сертификаты, служащие для дополнительного уровня защиты, что позволяет управлять доступом к информации и подтверждать ее подлинность.
Одним из важных этапов работы было создание и применение ключевых фраз для шифрования текстовой информации, что расширило понимание возможностей SQL Server по защите данных. Каждая операция — от создания ключей и сертификатов до шифрования базы данных и проверки правильности расшифровки данных — была проведена с тщательной проверкой на корректность. Таким образом, работа не только продемонстрировала теоретические аспекты шифрования, но и позволила практически освоить надежные методы криптографической защиты данных. Итогом стало глубокое изучение механизмов SQL Server, обеспечивающих безопасное хранение и передачу данных, что важно для защиты конфиденциальной информации в современных базах данных.