Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лаба 5

.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
493.1 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное образовательное

учреждение высшего образования

«Юго-Западный государственный университет»

Лабораторная работа №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, обеспечивающих безопасное хранение и передачу данных, что важно для защиты конфиденциальной информации в современных базах данных.

Соседние файлы в предмете Безопасность систем баз данных