Задания на лабораторные работы дисциплины
"Защита информации в компьютерных системах"
Выберите для каждой лабораторной работы наиболее понравившийся вам вариант.
Выполните программу на любом языке программирования. Не забудьте в начале
программы указать автора и краткую характеристику программы. Особо интересные
части программы обязательно должны содержать комментарии. При сдаче лабораторной
работы необходимо понимание алгоритма и возможность сдающего внести изменения
в текст программы по просьбе преподавателя. Отчет не нужен. Лабораторные работы
нельзя сдать вне занятий без направления из деканата. Не сдавшие лабораторные
работы к экзамену не допускаются.
- Шифрование и расшифровка текста комбинацией двух разных из нижеуказанных методов. (6 часов, до 2 человек)
- Шифрование простой подстановкой.
- Шифрование монофонической подстановкой.
- Шифрование простой полиалфавитной подстановкой.
- Шифрование методом простой перестановки.
- Шифрование перестановкой по маршрутам Гамильтона.
- Шифрование методом гаммирования.
- Шифрование аналитическими преобразованиями.
Программа должна для каждого символа(или блока) исходного файла произвольной
структуры(exe,txt) применить первый метод, затем второй и только затем
записать в выходной файл. Для методов, требующих ключа определенного вида,
например для перестановок, ключ должен формироваться на основании
одного произвольного ключа, задаваемого пользователем.
Пример ключа: фф12К52. Зашифрованный и дешифрованный файлы по возможности
должны иметь размер исходного файла.
- Защита от несанкционированного доступа к файлам, каталогам, разделам
жесткого диска. (6 часов, до 2 человек)
Варианты заданий:
- зашифровать дискету и осуществлять доступ через резидентную программу,
задавая пароль(ключ шифрации). Различать зашифрованную и незашифрованную
дискеты. Использовать Int 13 или Int 40 или VxD.
- помечать файлы в каталоге и осуществлять доступ
по паролю. Файл не шифруется, - только блокируется доступ. При каждом
открытии спрашивать пароль. Две программы: менеджер файлов и резидент.
- помечать каталоги и при попытке прочитать содержимое или перейти в него
спрашивать пароль. Пароли записывать в свободное место в элементе каталога.
- написать резидентную программу, запрещающую запускать файлы:
a) работающие в графическом режиме кроме содержащих маску
б) по маске содержимого файла
Список масок хранить в теле программы или во внешнем файле, но так, чтобы
можно было внести изменения, добавления этого списка и программа учитывала
произведенные изменения.
- написать функцию "прозрачной" шифрации DBF, FPT, DBT файлов, в виде
библиотеки к вашей любимой СУБД: FoxPro, Clipper, Paradox, CodeBase, Access...
- программа эквивалент WipeFile. Очистка содержимого файла, усечение длины
и удаление его из каталога без возможности восстановить содержимое и название.
Обрабатывать удаление по шаблону и подкаталоги.
- написать резидентную программу, отслеживающую удаление файла стандартными средствами
(Int 21h, ah=41h,13h). Которая сначала очищает содержимое файла,
затем очищает каталоговый вход.
- написать программу криптозащиты документов Word, Exel. Связать
doc, xls файлы с собой, если файл зашифрован, спросить ключ,
расшифровывать во временный файл, запустить Word, Exel, дождаться
завершения и зашифровывать в исходный.
- написать программу криптозащиты документов Word, Exel.
Написать макрос, вызывающий dll при открытии/закрытии файла.
В Dll при открытии, если файл зашифрован, спросить ключ,
расшифровывать во временный файл. При закрытии спросить о
необходимости шифрации, ключ и зашифровывать в исходный.
- написать Boot-менеджер, который при загрузке будет спрашивать пароль.
Пароль не сохранять и использовать как ключ для дешифровки.
На корректность ввода пароля проверять только контрольную сумму.
Таблицу разделов и корневую запись хранить в зашифрованном виде.
- ............................(предложите вашу идею для разработки)
(Программа претендует на оценку отлично, если не позволяет прохождение
под отладчиком)
- Защита от копирования. (6 часов, до 2 человек)
Варианты заданий:
- "заразить" Exe файл так, чтобы он работал только на этой машине.
Необходимо "повредить" таблицу настройки адресов и части программы для
невозможности "выкусить" приписанную часть. Учесть оверлеи.
Программа должна устойчиво работать на "своей" машине и не работать
на соседней.
В качестве идентифицирующей информации использовать:
- BIOS (осторожно с Shadow)
- информацию IDE диска(не работает в Win NT)
- N сетевой карты(MAC адрес)
- быстродействие процессора
- N видео карты
- N процессора(через сброс)
- приписку за концом файла
- ..........
(Программа претендует на оценку отлично, если не позволяет прохождение под отладчиком)
- "заразить" Exe файл так, чтобы он работал только на машине, в дисководе
которой установлена ключевая дискета.
Необходимо "повредить" таблицу настройки адресов и части программы для
невозможности "выкусить" приписанную часть. Учесть оверлеи.
В качестве идентифицирующей информации использовать:
- инженерный цилиндр
- чередование секторов
- размер межсекторного промежутка
- сектора с одинаковым номером на одной дорожке
- размер сектора
- введение логических дефектов в заданный сектор
- ..........
(Программа претендует на оценку отлично, если не копируется с помощью
COPYFD, COPYMAST, FDA и им подобным без дополнительного анализа дискеты.
Желательно использовать ПДП(DMA) и программирование контроллера НГМД.
- RSA. (2 часа)
С помощью программы pgp.exe создать открытый и секретный ключи. Вспомнить лекцию по RSA.
Зашифровать сообщение своим закрытым, чужим открытым. Посмотреть, что получилось. Расшифровать сообщение своим открытым, чужим закрытым. Посмотреть, что получилось.
Кто желает "на дипломе" работать со мной, рекомендую обратиться заранее. Не более 2 человек.
Кто не знает, куда пойти работать после университета, рекомендую заранее переговорить со мной.
Вниманию особо одаренных. Вы можете разработать функционально законченную систему
за несколько лабораторных работ, предварительно обсудив работу с преподавателем.