Методические указания к практикам Информационная безопасность

Автор публикации:

Дата публикации:

Краткое описание: ...


Федеральное агентство связи

ГОУ ВПО «Сибирский государственный университет

телекоммуникаций и информатики»

Уральский технический институт связи и информатики (филиал)



[pic]



[pic]








Е.Д. Ермакова



ИНФОРМАЦИОННАЯ

БЕЗОПАСНОСТЬ


Методические указания по выполнению лабораторных работ

для студентов очной формы обучения на базе среднего (полного)

общего образования специальности

080801.65 «Прикладная информатика (в экономике)»














Екатеринбург

2009

ББК 32.881

УДК 621.391.25


Рецензент:


Сутягина Е.Д.

Информационная безопасность: Методические указания по выполнению лабораторных работ/ Е.Д. Сутягина.- Екатеринбург: УрТИСИ ГОУ ВПО «СибГУТИ»,2009-46с.

Методические указания по выполнению лабораторных работ по дисциплине «Информационная безопасность» предназначены для студентов специальности 080801.65 «Прикладная информатика (в экономике)».

Методические указания содержат перечень литературы для подготовки к работе, задания для выполнения, приложения, а также список контрольных вопросов для защиты лабораторных работ.


Рекомендовано НМС УрТИСИ ГОУ ВПО «СибГУТИ» в качестве методических указаний по выполнению лабораторных работ для студентов очной формы обучения на базе среднего (полного) общего образования специальности 080801.65 «Прикладная информатика (в экономике)».
















ББК 32.881

УДК 621.391.25



Кафедра информационных систем и технологий

©УрТИСИ ГОУ ВПО «СибГУТИ», 2009

Содержание


Пояснительная записка

3

Лабораторная работа 1,2.

Количественная оценка стойкости парольной защиты

5

Лабораторная работа 3,4.

Реализация генератора паролей с заданными требованиями

9

Лабораторная работа 5,6.

Реализация дискреционной модели политики безопасности

16

Лабораторная работа 7,8.

Реализация мандатной модели политики безопасности

22

Лабораторная работа 9, 10.

Антивирусные программы

27

Лабораторные работы 11.

Защита информации с помощью пароля

30

Лабораторная работа 12, 13.

Криптографические методы защиты информации

37

Литература

46

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА


Методические указания к выполнению лабораторных работ составлены в соответствии с рабочей программой дисциплины «Информационная безопасность» предназначены для студентов специальности 080801.65 «Прикладная информатика (в экономике).

Перед выполнением лабораторных работ студенты должны повторить материал лекций, а также изучить теоретический материал по теме лабораторной работы, изложенной в рекомендуемой учебной литературе по курсу.

Выполнение работ следует производить с необходимыми пояснениями и выводами.

Каждая лабораторная работа заканчивается отчетом, все отчеты оформляются в отдельной тетради для лабораторных работ.

Защита лабораторной работы проводиться индивидуально - в устной форме или с помощью тестовой программы по лабораторной работе.

Вопросы для защиты представлены в содержании каждой лабораторной работы. По результатам защиты выставляется зачет.

На проведение лабораторных работ в соответствии с программой отводится: 26 часов.

Количество часов на выполнение каждой работы, а также ее тема, указаны в таблице

Перечень лабораторных работ

Время (час)

1,2

Количественная оценка стойкости парольной защиты

4

3,4

Реализация генератора паролей с заданными требованиями

4

5,6

Реализация дискреционной модели политики безопасности

4

7,8

Реализация мандатной модели политики безопасности

4

9,10

Антивирусные программы

4

11

Защита информации с помощью пароля

2

12, 13

Криптографические методы защиты информации

4

Итого:

26









ЛАБОРАТОРНАЯ РАБОТА 1, 2

Количественная оценка стойкости парольной защиты


1 Цель работы: реализация простейшего генератора паролей, обладающего требуемой стойкостью к взлому.


2 Оборудование и программное обеспечение: персональный компьютер, программа С++, Delphi.


  1. Подготовка к работе:

    1. Знать языки программирования С++ и Delphi.

    2. Изучить понятия защиты информации.


  1. Порядок выполнения работы:

4.1 Выбрать язык программирования.

4.2 Изучить материал в приложении.

4.3 В таблице 1 найти для вашего варианта значения характеристик P,V,T.


Таблица 1

Вариант

P

V

T

1

10-4

15 паролей/мин

2 недели

2

10-5

3 паролей/мин

10 дней

3

10-6

10 паролей/мин

5 дней

4

10-7

11 паролей/мин

6 дней

5

10-4

100 паролей/день

12 дней

6

10-5

10 паролей/день

1 месяц

7

10-6

20 паролей/мин

3 недели

8

10-7

15 паролей/мин

20 дней

9

10-4

3 паролей/мин

15 дней

10

10-5

10 паролей/мин

1 неделя

11

10-6

11 паролей/мин

2 недели

12

10-7

100 паролей/день

10 дней

13

10-4

10 паролей/день

5 дней

14

10-5

20 паролей/мин

6 дней

15

10-6

15 паролей/мин

12 дней

16

10-7

3 паролей/мин

1 месяц

17

10-4

10 паролей/мин

3 недели

18

10-5

11 паролей/мин

20 дней

19

10-6

100 паролей/день

15 дней

20

10-7

10 паролей/день

1 неделя

21

10-4

20 паролей/мин

2 недели

22

10-5

15 паролей/мин

10 дней

23

10-6

3 паролей/мин

5 дней

24

10-7

10 паролей/мин

6 дней

25

10-4

11 паролей/мин

12 дней

26

10-5

100 паролей/день

1 месяц

27

10-6

10 паролей/день

3 недели

28

10-7

20 паролей/мин

20 дней

29

10-4

15 паролей/мин

15 дней

30

10-5

3 паролей/мин

1 неделя


4.4 Вычислить по формуле (1) нижнюю границу S* для заданных P,V,T.

4.5 Выбрать некоторый алфавит с мощностью A и получить минимальную длину пароля L, при котором выполняется условие (2).

4.6 Реализовать программу – генератор паролей пользователей. Программа должна формировать случайную последовательность символов длины L, при этом должен использоваться алфавит из A символов.

Замечания:

При реализации программы могут быть полезны следующие функции

RANDOM(N) – возвращает случайное число [pic] .

RANDOMIZE – сбрасывает начальное состояние датчика случайных чисел случайным образом.

CHR(X) – возвращает символ с ASCII кодом X. Коды различных групп символов приведены ниже.

Коды символов:

Коды английских символов : «A»=65,…,«Z»=90, «a»=97,…, «z» =122.

Коды цифр : «0» = 48, «9» = 57.

! - 33, “ – 34, # - 35, $ - 36, % - 37, & - 38, ‘ – 39, ( - 40, ) – 41, * - 42.

Коды русских символов : «А» - 128, … «Я» - 159, «а» - 160,…, «п» - 175, «р» - 224,…, «я» - 239.

4.7 Оформить в тетради отчет по лабораторной работе.


5 Ответьте на контрольные вопросы:

5.1 Чем определяется стойкость подсистемы идентификации и аутентификации?

5.2 Перечислить минимальные требования к выбору пароля.

5.3 Перечислить минимальные требования к подсистеме парольной аутентификации.

5.4 Как определить вероятность подбора пароля злоумышленником в течении срока его действия?

5.5 Выбором каким параметров можно повлиять на уменьшение вероятности подбора пароля злоумышленником при заданной скорости подбора пароля злоумышленником и заданном сроке действия пароля?


6 Содержание отчета:

6.1 Наименование и цель работы.

6.2 Описание порядка выполнения работы.

6.3 Ответы на контрольные вопросы.

6.4 Выводы по работе.

Приложение 1


Подсистемы идентификации и аутентификации пользователя играют очень важную роль в системах защиты информации.

Стойкость подсистемы идентификации и аутентификации пользователя в системе защиты информации (СЗИ) во многом определяет устойчивость к взлому самой СЗИ. Данная стойкость определяется гарантией того, что злоумышленник не сможет пройти аутентификацию, присвоив чужой идентификатор или украв его.

Парольные системы идентификации/аутентификации является одними из основных и наиболее распространенных в СЗИ методами пользовательской аутентификации. В данном случае, информацией, аутентифицирующей пользователя, является некоторый секретный пароль, известный только легальному пользователю.

Парольная аутентификация пользователя является, как правило, передним краем обороны СЗИ. В связи с этим, модуль аутентификации по паролю наиболее часто подвергается атакам со стороны злоумышленника. Цель злоумышленника в данном случае – подобрать аутентифицирующую информацию (пароль) легального пользователя.

Методы парольной аутентификации пользователя являются наиболее простыми методами аутентификации и при несоблюдении определенных требований к выбору пароля являются достаточно уязвимыми.

Основными минимальными требованиями к выбору пароля и к подсистеме парольной аутентификации пользователя являются следующие.

К паролю:

  1. Минимальная длина пароля должна быть не менее 6 символов.

  2. Пароль должен состоять из различных групп символов (малые и большие латинские буквы, цифры, специальные символы ‘(’, ‘)’, ‘#’ и т.д.).

  3. В качестве пароля не должны использоваться реальные слова, имена, фамилии и т.д.

К подсистеме парольной аутентификации:

1. Администратор СЗИ должен устанавливать максимальный срок действия пароля, после чего, он должен быть сменен.

  1. В подсистеме парольной аутентификации должно быть установлено ограничение числа попыток ввода пароля (как правило, не более 3).

  2. В подсистеме парольной аутентификации должна быть установлена временная задержка при вводе неправильного пароля.

Как правило, для генерирования паролей в СЗИ, удовлетворяющих перечисленным требованиям к паролям, используются программы - автоматические генераторы паролей пользователей.

При выполнении перечисленных требований к паролям и к подсистеме парольной аутентификации, единственно возможным методом взлома данной подсистемы злоумышленником является прямой перебор паролей (brute forcing). В данном случае, оценка стойкости парольной защиты осуществляется следующим образом.


Количественная оценка стойкости парольной защиты

Пусть A – мощность алфавита паролей (количество символов, которые могут быть использованы при составлении пароля. Например, если пароль состоит только из малых английских букв, то A=26).

L – длина пароля.

[pic] - число всевозможных паролей длины L, которые можно составить из символов алфавита A.

V – скорость перебора паролей злоумышленником.

T – максимальный срок действия пароля.

Тогда, вероятность P подбора пароля злоумышленником в течении срока его действия V определяется по следующей формуле.

[pic]

Эту формулу можно использовать в обратную сторону для решения следующей задачи:

ЗАДАЧА. Определить минимальные мощность алфавита паролей A и длину паролей L, обеспечивающих вероятность подбора пароля злоумышленником не более заданной P, при скорости подбора паролей V, максимальном сроке действия пароля T.

Данная задача имеет неоднозначное решение. При исходных данных V,T,P однозначно можно определить лишь нижнюю границу S* числа всевозможных паролей. Целочисленное значение нижней границы вычисляется по формуле

[pic] (1)

где [pic] - целая часть числа, взятая с округлением вверх.

После нахождения нижней границы S* необходимо выбрать такие A и L для формирования S=AL, чтобы выполнялось неравенство (2).

[pic] (2)

При выборе S, удовлетворяющего неравенству (2), вероятность подбора пароля злоумышленника (при заданных V и T) будет меньше, чем заданная P.

Необходимо отметить, что при осуществлении вычислений по формулам (1) и (2), величины должны быть приведены к одним размерностям.

Пример

Исходные данные – P=10-6, T=7 дней = 1 неделя, V=10 паролей / минуту = 10*60*24*7=100800 паролей в неделю.

Тогда, [pic] .

Условию [pic] удовлетворяют, например, такие комбинации A и L, как A=26, L=8 (пароль состоит из 8 малых символов английского алфавита), A=36, L=6 (пароль состоит из 6 символов, среди которых могут быть малые латинские буквы и произвольные цифры).

ЛАБОРАТОРНАЯ РАБОТА 3, 4


Реализация генератора паролей с заданными требованиями


1 Цель работы: реализация простейшего генератора паролей, обладающего требуемой стойкостью к взлому.


2 Оборудование и программное обеспечение: персональный компьютер, программа С++, Delphi.


3 Подготовка к работе:

3.1 Знать языки программирования С++ и Delphi.

3.2 Изучить понятия защиты информации.


4 Порядок выполнения работы:

4.1 Выбрать язык программирования.

4.2 Изучить материал в приложении.

4.3 В таблице 2 найти требования, которым должен удовлетворять генератор паролей, соответствующий Вашему варианту.

4.4 Написать программу-генератор паролей, в соответствие с требованиями Вашего варианта. Программа должна выполнять следующие действия:

4.4.1 Ввод идентификатора пользователя с клавиатуры. Данный идентификатор представляет собой последовательность символов [pic] , где N – количество символов идентификатора (может быть любым), [pic] - i – ый символ идентификатора пользователя.

4.4.2 Формирование пароля пользователя [pic] для данного идентификатора, где M – количество символов пароля, соответствующее Вашему варианту, и вывод его на экран. Алгоритм получения символов пароля [pic] указан в перечне требований Таблицы 2 для Вашего варианта.


Таблица 2

Вариант

Количество символов пароля

Перечень требований

1

6

1. [pic] - случайные заглавные буквы английского алфавита.

2. [pic] (где mod 10 – остаток от деления числа на 10).

3. [pic] - случайная цифра.

4. [pic] - случайный символ из множества {!,”,#,$,%,&,’,(,),*}.

5. [pic] - случайная малая буква английского алфавита.

Продолжение таблицы 2

2

7

1. [pic] - случайные малые буквы английского алфавита.

2. [pic] - случайные заглавные буквы английского алфавита.

3. [pic] - двузначное число, равное [pic] . (Если остаток – однозначное число, то [pic] ).

3

8

1. [pic] - случайные цифры.

2. [pic] - случайные символы из множества {!,”,#,$,%,&,’,(,),*}.

3. [pic] - случайная заглавная буква английского алфавита.

4. [pic] - P –ая по счету малая буква английского алфавита, где [pic] .

4

9

1. [pic] - случайные символы из множества {!,”,#,$,%,&,’,(,),*}, где [pic] .

2. Оставшиеся символы пароля, кроме [pic] , - случайные малые буквы английского алфавита.

3. [pic] - случайная цифра.

5

10

1. [pic] - случайные цифры, где [pic] .

2. [pic] - случайные большие буквы английского алфавита.

3. [pic] - случайные малые буквы английского алфавита.

6

11

1. [pic] - случайные цифры.

2. [pic] - случайные большие буквы английского алфавита, где [pic] .

3. [pic] - случайные символы из множества {!,”,#,$,%,&,’,(,),*}.

7

11

1. [pic] - случайные цифры.

2. [pic] - случайные малые буквы русского алфавита, где [pic] .

3. [pic] - случайные символы из множества {!,”,#,$,%,&,’,(,),*}.

8

12

1. [pic] - случайные малые буквы английского алфавита, где [pic] .

2. [pic] - случайные заглавные буквы английского алфавита, где [pic] .

3. Оставшиеся символы пароля – случайные цифры.

Продолжение таблицы 2

9

12

1. [pic] - случайные малые буквы русского алфавита, где [pic] .

2. [pic] - случайные заглавные буквы русского алфавита, где [pic] .

3. Оставшиеся символы пароля – случайные цифры.

10

10

1. [pic] - случайные цифры, где [pic] .

2. [pic] - случайные большие буквы русского алфавита.

3. [pic] - случайные малые буквы русского алфавита.

11

9

1. [pic] - случайные символы из множества {!,”,#,$,%,&,’,(,),*}, где [pic] .

2. Оставшиеся символы пароля, кроме [pic] , - случайные малые буквы русские алфавита.

3. [pic] - случайная цифра.

12

8

1. [pic] - случайные цифры.

2. [pic] - случайные символы из множества {!,”,#,$,%,&,’,(,),*}.

3. [pic] - случайная заглавная буква русского алфавита.

4. [pic] - P –ая по счету малая буква русского алфавита, где [pic] .

13

7

1. [pic] - случайные малые буквы русского алфавита.

2. [pic] - случайные заглавные буквы русского алфавита.

3. [pic] - двузначное число, равное [pic] . (Если остаток – однозначное число, то [pic] ).

14

6

1. [pic] - случайные заглавные буквы русского алфавита.

2. [pic] (где mod 10 – остаток от деления числа на 10).

3. [pic] - случайная цифра.

4. [pic] - случайный символ из множества {!,”,#,$,%,&,’,(,),*}.

5. [pic] - случайная малая буква русского алфавита.

Продолжение таблицы 2

15

6

1. [pic] - случайные заглавные буквы английского алфавита.

2. [pic] (где mod 10 – остаток от деления числа на 10).

3. [pic] - случайная цифра.

4. [pic] - случайный символ из множества {!,”,#,$,%,&,’,(,),*}.

5. [pic] - случайная малая буква русского алфавита.

16

7

1. [pic] - случайные малые буквы русского алфавита.

2. [pic] - случайные заглавные буквы английского алфавита.

3. [pic] - двузначное число, равное [pic] . (Если остаток – однозначное число, то [pic] ).

17

8

1. [pic] - случайные цифры.

2. [pic] - случайные символы из множества {!,”,#,$,%,&,’,(,),*}.

3. [pic] - случайная заглавная буква английского алфавита.

4. [pic] - P –ая по счету малая буква русского алфавита, где [pic] .

18

9

1. [pic] - случайные цифры, где [pic] .

2. Оставшиеся символы пароля, кроме [pic] , - случайные малые буквы английского алфавита.

3. [pic] - случайная цифра.

19

10

1. [pic] - случайные цифры, где [pic] .

2. [pic] - случайные большие буквы английского алфавита.

3. [pic] - случайные малые буквы русского алфавита.

20

11

1. [pic] - случайные символы из множества {!,”,#,$,%,&,’,(,),*}.

2. [pic] - случайные большие буквы английского алфавита, где [pic] .

3. [pic] - случайные цифры.

Продолжение таблицы 2

21

11

1. [pic] - случайные символы из множества {!,”,#,$,%,&,’,(,),*}.

2. [pic] - случайные малые буквы русского алфавита, где [pic] .

3. [pic] - случайные цифры.

22

12

1. [pic] - случайные малые буквы русского алфавита, где [pic] .

2. [pic] - случайные заглавные буквы английского алфавита, где [pic] .

3. Оставшиеся символы пароля – случайные цифры.

23

12

1. [pic] - случайные малые буквы английского алфавита, где [pic] .

2. [pic] - случайные заглавные буквы русского алфавита, где [pic] .

3. Оставшиеся символы пароля – случайные цифры.

24

10

1. [pic] - случайные цифры, где [pic] .

2. [pic] - случайные большие буквы английского алфавита.

3. [pic] - случайные малые буквы русского алфавита.

25

9

1. [pic] - случайная цифра..

2. Оставшиеся символы пароля, кроме [pic] , - случайные малые буквы русские алфавита.

3. [pic] - случайные символы из множества {!,”,#,$,%,&,’,(,),*}, где [pic] .

26

8

1. [pic] - случайные цифры.

2. [pic] - случайные символы из множества {!,”,#,$,%,&,’,(,),*}.

3. [pic] - случайная заглавная буква английского алфавита.

4. [pic] - P –ая по счету малая буква русского алфавита, где [pic] .

27

7

1. [pic] - случайные малые буквы русского алфавита.

2. [pic] - случайные заглавные буквы английского алфавита.

3. [pic] - двузначное число, равное [pic] . (Если остаток – однозначное число, то [pic] ).

Продолжение таблицы 2

28

6

1. [pic] - случайные заглавные буквы английского алфавита.

2. [pic] (где mod 10 – остаток от деления числа на 10).

3. [pic] - случайная цифра.

4. [pic] - случайный символ из множества {!,”,#,$,%,&,’,(,),*}.

5. [pic] - случайная малая буква русского алфавита.



ЗАМЕЧАНИЯ

  1. Коды английских символов - «A»=65,…,«Z»=90, «a»=97,…, «z» =122.

  2. Коды цифр – «0» = 48, «9» = 57.

  3. Коды спец. символов ! – 33, “ – 34, # - 35, $ - 36, % - 37, & - 38, ‘ – 39, ( - 40, ) – 41, * - 42.

  4. Коды русских символов – «А» - 128, … «Я» - 159, «а» - 160,…, «п» - 175, «р» - 224,…, «я» - 239.

4.5 Составить отчет по работе.


5 Ответьте на контрольные вопросы:

5.1 В чем преимущество программных генераторов паролей по сравнению с выбором паролей человеком (пользователем либо администратором)?

5.2 Желательно либо нежелательно, по Вашему мнению, генерирование пароля пользователя на основании некоторого алгоритма из его идентификатора? Повысится либо понизится стойкость защиты при использовании такого алгоритма?


6 Содержание отчета:

6.1 Наименование и цель работы.

6.2. Описание порядка выполнения работы.

6.3. Ответы на контрольные вопросы.

6.4. Выводы по работе.

Приложение 1


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

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

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

Минимальная длина пароля должна быть не менее 6 символов. Сокращение длины пароля во многом повышает вероятность успешной атаки полным их перебором.

Пароль должен состоять из различных групп символов (малые и большие латинские буквы, цифры, специальные символы ‘(’, ‘)’, ‘#’ и т.д.). Использование одной конкретной группы символов при формировании пароля в значительной степени повышает вероятность успешной атаки по маске.

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

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

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

Например,

Идентификатор пользователя Vasilyev

Пароль 1Op(0Qp+

При этом, при формировании пароля 1Op(0Qp+ могут использоваться отдельные символы, входящие в идентификатор Vasilyev.

ЛАБОРАТОРНАЯ РАБОТА 5, 6


Реализация дискреционной модели политики безопасности


1 Цель работы: познакомиться с проблемами реализации политик безопасности в компьютерных системах на примере дискреционной модели


2 Оборудование и программное обеспечение: персональный компьютер, программа С++, Delphi.


3 Подготовка к работе:

3.1 Знать языки программирования С++ и Delphi.

3.2 Изучить понятия защиты информации.


4 Порядок выполнения работы:

4.1 Выбрать язык программирования.

4.2 Изучить материал в приложении.

4.3 Пусть множество S возможных операций над объектами компьютерной системы задано следующим образом: S={«Доступ на чтение», «Доступ на запись», «Передача прав»}. Получить данные о количестве пользователей и объектов компьютерной системы из таблицы 3, соответственно Вашему варианту.


Таблица 3

4.4 Реализовать программный модуль, создающий матрицу доступа пользователей к объектам компьютерной системы. Реализация данного модуля подразумевает следующее:

4.4.1 Выбрать идентификаторы пользователей, которые будут использоваться при их входе в компьютерную систему (по одному идентификатору для каждого пользователя, количество пользователей задано для Вашего варианта). Например, множество из 3 идентификаторов пользователей {Ivan, Sergey, Boris}. Один из данных идентификаторов должен соответствовать администратору компьютерной системы (пользователю, обладающему полными правами ко всем объектам).

4.4.2 Реализовать программное заполнение матрицы доступа, содержащей количество пользователей и объектов, соответственно Вашему варианту.

При заполнении матрицы доступа необходимо учесть, что один из пользователей должен являться администратором системы (допустим, пользователь Ivan). Для него права доступа ко всем объектам должны быть выставлены как полные.

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

4.5 Реализовать программный модуль, демонстрирующий работу в дискреционной модели политики безопасности. Данный модуль должен выполнять следующие функции:

4.5.1 При запуске модуля должен запрашиваться идентификатор пользователя (должна проводиться идентификация пользователя). При успешной идентификации пользователя должен осуществляться вход в систему. При неуспешной – выводиться соответствующее сообщение.

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


User: Boris

Идентификация прошла успешно, добро пожаловать в систему

Перечень Ваших прав:

Объект1: Чтение

Объект2: Запрет

Объект3: Чтение, Запись

Объект4: Полные права

Жду ваших указаний >


4.5.3 После вывода на экран перечня прав доступа пользователя к объектам компьютерной системы, программа должна ждать указаний пользователя на осуществление действий над объектами в компьютерной системе. После получения команды от пользователя, на экран должно выводиться сообщение об успешности либо не успешности операции. При выполнении операции передачи прав (grant), должна модифицироваться матрица доступов. Должна поддерживаться операция выхода из системы (quit), после которой должен запрашиваться другой идентификатор пользователя. Диалог можно организовать, например, следующим образом:


Жду ваших указаний > read

Над каким объектом производится операция? 1

Операция прошла успешно

Жду ваших указаний > write

Над каким объектом производится операция? 2

Отказ в выполнении операции. У Вас нет прав для ее осуществления

Жду ваших указаний > grant

Право на какой объект передается? 3

Отказ в выполнении операции. У Вас нет прав для ее осуществления

Жду ваших указаний > grant

Право на какой объект передается? 4

Какое право передается? read

Какому пользователю передается право? Ivan

Операция прошла успешно

Жду ваших указаний > quit

Работа пользователя Boris завершена. До свидания.

User:


4.6 Прогнать реализованную программу, продемонстрировав реализованную модель дискреционной политики безопасности преподавателю.

4.7 Оформить в тетради отчет по лабораторной работе.


5 Ответьте на контрольные вопросы:

5.1 Что понимается под политикой безопасности в компьютерной системе?

5.2 В чем заключается модель дискреционной политики безопасности в компьютерной системе?

5.3 Что понимается под матрицей доступа в дискреционной политике безопасности? Что хранится в данной матрице?

5.4 Какие действия производятся над матрицей доступа в том случае, когда один субъект передает другому субъекту свои права доступа к объекту компьютерной системы?


6 Содержание отчета:

    1. Заголовок лабораторной работы (название и цель работы).

    2. Задание к лабораторной работе.

6.3 Постановка задачи Вашего варианта.


Приложение 1


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

При выборе и реализации политики безопасности в компьютерной системе, как правило, работают следующие шаги:

  1. В информационную структуру вносится структура ценностей (определяется ценность информации) и проводится анализ угроз и рисков для информации и информационного обмена.

  2. Определяются правила использования для любого информационного процесса, права доступа к элементам информации с учетом данной оценки ценностей.

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

Существует ряд моделей политик безопасности, отличающихся по возможностям защиты, по качеству защиты, по особенностям реализации. Одной из самых простых и распространенных моделей политик безопасности является дискреционная политика.

Дискреционная политика безопасности

Пусть О – множество объектов, U – множество пользователей. S – множество действий пользователей над объектами. Дискреционная политика определяет отображение [pic] (объектов на пользователей-субъектов). В соответствии с данным отображением, каждый объект [pic] объявляется собственностью соответствующего пользователя [pic] , который может выполнять над ними определенную совокупность действий [pic] , в которую могут входить несколько элементарных действий (чтение, запись, модификация и т.д.). Пользователь, являющийся собственником объекта, иногда имеет право передавать часть или все права другим пользователям (обладание администраторскими правами).

Указанные права доступа пользователей-субъектов к объектам компьютерной системы записываются в виде так называемой МАТРИЦЫ ДОСТУПА. На пересечении i-ой строки и j-ого столбца данной матрицы располагается элемент Sij – множество разрешенных действий j-ого пользователя над i-ым объектом.

Пример

Пусть имеем множество из 3 пользователей {Администратор, Гость, Пользователь_1} и множество из 4 объектов {Файл_1, Файл_2, CD-RW, Дисковод}. Множество возможных действий включает следующие: {Чтение, Запись, Передача прав другому пользователю}. Действие «Полные права» разрешает выполнение всех перечисленных 3 действий, Действие «Полный запрет» запрещает выполнение всех из вышеперечисленных действий. В данном случае, матрица доступа, описывающая дискреционную политику безопасности, может выглядеть следующим образом.


Таблица 4

Например, Пользователь_1 имеет права на чтение и запись в Файл_2. Передавать же свои права другому пользователю он не может.

Пользователь, обладающий правами передачи своих прав доступа к объекту другому пользователю, может сделать это. При этом, пользователь, передающий права, может указать непосредственно, какие из своих прав он передает другому.

Например, если Пользователь_1 передает право доступа к Файлу_1 на чтение пользователю Гость, то у пользователя Гость появляется право чтения из Файла_1.

ЛАБОРАТОРНАЯ РАБОТА 7,8


Реализация мандатной модели политики безопасности


1 Цель работы: познакомиться с проблемами реализации политик безопасности в компьютерных системах на примере мандатной модели


2 Оборудование и программное обеспечение: персональный компьютер, программа С++, Delphi.


3 Подготовка к работе:

3.1 Знать языки программирования С++ и Delphi.

3.2 Изучить понятия защиты информации.


4 Порядок выполнения работы:

4.1 Выбрать язык программирования.

4.2 Изучить материал в приложении.

4.3 Пусть задано множество атрибутов безопасности A={«Совершенно секретно», «Секретно», «Открытые данные»}. Получить информацию о количестве объектов и субъектов компьютерной системы из таблицы 5, соответственно Вашему варианту.


Таблица 5

ЗАМЕЧАНИЕ

Атрибуты безопасности объектов и уровни доступа субъектов могут быть закодированы цифрами для удобства хранения и сравнения.


4.4 Реализовать программный модуль, создающий мандатную модель политики безопасности. Реализация данного модуля подразумевает следующее:

4.4.1 Выбрать идентификаторы пользователей-субъектов, которые будут использоваться при их входе в компьютерную систему (по одному идентификатору для каждого пользователя, количество пользователей-субъектов задано для Вашего варианта). Например, множество из 3 идентификаторов пользователей {Ivan, Sergey, Boris}.

4.4.2 Заполнить вектор OV, задающий уровни конфиденциальности объектов, случайным образом. Множество атрибутов безопасности A представлено выше.

4.4.3 Заполнить вектор UV, задающий уровни допуска пользователей, случайным образом. Множество атрибутов безопасности A представлено выше.

4.4.4 Распечатать на экране вектора OV и UV, определяющие уровни конфиденциальности объектов и уровни допуска пользователей. Вывод можно осуществить, например, следующим образом:


Уровни конфиденциальности объектов (OV):

Объект_1: Открытые данные

Объект_2: Секретно

Объект_3: Совершенно секретно

Объект_4: Открытые данные

Уровни допуска пользователей (UV)

Ivan: Совершенно секретно

Sergey: Секретно

Boris: Открытые данные


4.5 Реализовать программный модуль, демонстрирующий работу системы в мандатной модели политики безопасности. Данный модуль должен выполнять следующие функции:

4.5.1 Выполнять идентификацию пользователя при входе в систему. При успешной идентификации пользователя должен осуществляться вход в систему. При неуспешной – выводиться соответствующее сообщение.

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


User: Boris

Идентификация прошла успешно, добро пожаловать в систему

Перечень доступных объектов: Объект_1, Объект_4.

Жду ваших указаний >


4.5.3 После вывода на экран перечня доступных объектов, программа должна ждать указаний пользователя на осуществление действий над объектами в компьютерной системе (команда request). После получения команды request от пользователя, на экран должно выводиться сообщение об успешности либо не успешности операции. Должна поддерживаться операция выхода из системы (quit), после которой должен запрашиваться другой идентификатор пользователя. Диалог можно организовать, например, следующим образом:


Жду ваших указаний > request

К какому объекту хотите осуществить доступ? 1

Операция прошла успешно

Жду ваших указаний > request

К какому объекту хотите осуществить доступ? 2

Отказ в выполнении операции. Недостаточно прав.

Жду ваших указаний > quit

Работа пользователя Boris завершена. До свидания.

User:


4.6 Прогнать реализованную программу, продемонстрировав реализованную модель мандатной политики безопасности преподавателю.

4.7 Оформить в тетради отчет по лабораторной работе.


5 Ответьте на контрольные вопросы:

5.1 В чем заключается модель мандатной политики безопасности в компьютерной системе?

5.2 Перечислить группу аксиом, определяющих мандатную модель политики безопасности.

5.3 Какой уровень допуска должен иметь администратор компьютерной системы?


6 Содержание отчета:

    1. Заголовок лабораторной работы (название и цель работы).

    2. Задание к лабораторной работе.

    3. Постановка задачи Вашего варианта.


Приложение 1


Мандатная модель политики безопасности предполагает нормативное управление доступом субъектов к объектам с использованием меток безопасности.

В данной модели каждому субъекту приписывается уровень допуска (форма допуска), а каждому объекту – уровень конфиденциальности (гриф секретности).

Мандатную модель можно определить следующей группой аксиом:

  1. Имеется множество атрибутов безопасности. В качестве таких атрибутов достаточно часто используется следующее множество: {«Совершенно секретно», «Секретно», «Открытые данные»}.

  2. Каждому объекту компьютерной системы присваивается определенный атрибут безопасности, который соответствует его ценности.

  3. Каждому субъекту присваивается определенный атрибут безопасности, который определяет уровень его допуска. Он равен максимальному из атрибутов безопасности объектов, к которому субъект будет иметь доступ.

Если субъект UiU имеет атрибут Ai, то он будет иметь доступ ко всем объектам, у которых уровень секретности (атрибут безопасности) будет меньше, либо равен Ai.

При реализации мандатной модели политики безопасности, как правило, существует два вектора

  1. Вектор [pic] , задающий уровни конфиденциальности для всех объектов компьютерной системы (n – количество объектов).

  2. Вектор [pic] , задающий уровни допуска для всех субъектов в компьютерной системе (m – число субъектов).

Модуль защиты при осуществлении доступа субъекта к объекту сравнивает уровень допуска субъекта с уровнем конфиденциальности объекта и по результатам сравнения разрешает либо запрещает данный доступ. Доступ разрешается, если уровень допуска субъекта больше либо равен уровня конфиденциальности объекта. В ином случае, доступ запрещается.


ЛАБОРАТОРНАЯ РАБОТА 9,10


Антивирусные программы


1 Цель работы: целью лабораторной работы является освоение программных продуктов AVP( «Антивирус Касперского »), Dr. Web, ADinf, а так же пополнение информации о существующих вирусах.


2 Оборудование и программное обеспечение: персональный компьютер, программа AVP( «Антивирус Касперского »), Dr. Web, ADinf.


3 Подготовка к работе:

3.1 Изучить виды антивирусных программ.


4 Порядок выполнения работы:

4.1 Основной практической части является ознакомление с программными продуктами AVP, Dr. Web, ADinf.

4.2 Попытка обнаружения вируса BackDoor.Rain.1 являющийся вирусом типа «Worm», в том числе и иных вирусов.Для запуска программ требуется зайти в меню «Пуск» - > «Программы» - > а далее запустить одну из нескольких описанных выше программ и проверить терминал на присутствие вируса.

4.3. Составить отчет. 


5 Ответьте на контрольные вопросы:

5.1 Какие антивирусные программы на ваш взгляд являются самыми эффективными? (Обоснуйте свой ответ).

6 Содержание отчета:

6.1 Заголовок лабораторной работы (название и цель работы).

6.2 Задание к лабораторной работе.

Приложение 1


Компьютерным вирусом называется программа (некоторая совокупность выполняемого кода/инструкций), которая способна создавать свои копии (не обязательно полностью совпадающие с оригиналом) и внедрять их в различные объекты/ресурсы компьютерных систем, сетей и т.д. без ведома пользователя. При этом копии сохраняют способность дальнейшего распространения.

Вирусы можно разделить на классы по следующим признакам:

а) по среде обитания вируса;

б) по способу заражения среды обитания;

в) по деструктивным возможностям;

г) по особенностям алгоритма вируса.

а) по среде обитания вирусы можно разделить на сетевые, файловые и загрузочные. Сетевые вирусы распространяются по компьютерной сети, файловые внедряются в выполняемые файлы, загрузочные - в загрузочный сектор диска (Boot-сектор) или в сектор, содержащий системный загрузчик винчестера (Master Boot Record). Существуют сочетания - например, файлово-загрузочные вирусы, заражающие как файлы, так и загрузочные сектора дисков.

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

в) По деструктивным возможностям вирусы можно разделить на:

1)безвредные, т.е. никак не влияющие на работу компьютера (кроме уменьшения свободной памяти на диске в результате своего распространения);

2)неопасные, влияние которых ограничивается уменьшением свободной памяти на диске и графическими, звуковыми и пр. эффектами;

3)опасные вирусы, которые могут привести к серьезным сбоям в работе

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

г) По особенностям алгоритма можно выделить следующие группы вирусов:

- компаньон-вирусы (companion) - это вирусы, не изменяющие файлы. Алгоритм работы этих вирусов состоит в том, что они создают для EXE-файлов файлы-спутники, имеющие то же самое имя, но с расширением .COM, например, для файла XCOPY.EXE создается файл XCOPY.COM. Вирус записывается в COM-файл и никак не изменяет EXE-файл. При запуске такого файла DOS первым обнаружит и выполнит COM-файл, т.е. вирус, который затем запустит и EXE-файл.

- вирусы-“черви” (worm) - вирусы, которые распространяются в компьютерной сети и, так же как и компаньон-вирусы, не изменяют файлы или сектора на дисках. Они проникают в память компьютера из компьютерной сети, вычисляют сетевые адреса других компьютеров и рассылают по этим адресам свои копии. Такие вирусы иногда создают рабочие файлы на дисках системы, но могут вообще не обращаться к ресурсам компьютера (за исключением оперативной памяти). К счастью, в вычислительных сетях IBM-компьютеров такие вирусы пока не завелись.

- “паразитические” - все вирусы, которые при распространении своих копий обязательно изменяют содержимое дисковых секторов или файлов. В эту группу относятся все вирусы, которые не являются “червями” или “компаньон”.

- “студенческие” - крайне примитивные вирусы, часто нерезидентные и содержащие большое число ошибок;

- “стелс”-вирусы (вирусы-невидимки, stealth), представляющие собой весьма совершенные программы, которые перехватывают обращения DOS к пораженным файлам или секторам дисков и “подставляют” вместо себя незараженные участки информации. Кроме этого, такие вирусы при обращении к файлам используют достаточно оригинальные алгоритмы, позволяющие “обманывать” резидентные антивирусные мониторы.

- “полиморфик”-вирусы (самошифрующиеся или вирусы-призраки, polymorphic) - достаточно труднообнаруживаемые вирусы, не имеющие сигнатур, т.е. не содержащие ни одного постоянного участка кода. В большинстве случаев два образца одного и того же полиморфик-вируса не будут иметь ни одного совпадения. Это достигается шифрованием основного тела вируса и модификациями программы-расшифровщика.

- “макро-вирусы” - вирусы этого семейства используют возможности макро-языков, встроенных в системы обработки данных (текстовые редакторы, электронные таблицы и т.д.). В настоящее время наиболее распространены макро-вирусы заражающие текстовые документы редактора Microsoft Word.

Возможные симптомы вирусного поражения

Основные симптомы вирусного поражения следующие:

Замедление работы некоторых программ.

Увеличение размеров файлов (особенно выполняемых).

Появление не существовавших ранее “странных” файлов.

Уменьшение объема доступной оперативной памяти (по сравнению с обычным режимом работы).

Внезапно возникающие разнообразные видео и звуковые эффекты.

При всех перечисленных выше симптомах, а также при других “странных” проявлениях в работе системы (неустойчивая работа, частые “самостоятельные” перезагрузки и прочее) мы настоятельно рекомендуем Вам, немедленно произвести проверку Вашей системы на наличие вирусов с помощью Антивируса Касперского. При этом лучше, если программа будет самой последней версии и с самыми свежими обновлениями антивирусных баз.

ЛАБОРАТОРНАЯ РАБОТА 11


Защита информации с помощью пароля


1 Цель работы: Целью работы является исследование защиты с применением пароля, а также исследование методов противодействия атакам на пароль.

2 Оборудование и программное обеспечение: персональный компьютер, программа Advanced ZIP Password Recovery.


3 Подготовка к работе:

3.1. Знать понятия пароля и последствия атак на него.


4 Порядок выполнения работы:

4.1.Проведение атаки перебором (bruteforce attack):

4.1.1 Используя программу для вскрытия паролей произвести атаку на зашифрованный файл try_me.rar (try_me.arj, try_me.zip – в зависимости от варианта). Область перебора – все печатаемые символы, длина пароля от 1 до 4 символов. Время выполнения на компьютере класса Pentium примерно 3-4 минуты. На компьютере класса Pentium II – 50 секунд. Проверить правильность определенного пароля, распаковав файл и ознакомившись с его содержимым.

4.1.2 Выполнив пункт 1, сократить область перебора до фактически используемого (например если пароль 6D1A – то выбрать прописные английские буквы и цифры). Провести повторное вскрытие. Сравнить затраченное время.

4.2.Проведение атаки по словарю (dictionary attack)

4.2.1 Сжать какой-либо небольшой файл, выбрав в качестве пароля английское слово длиной до 5 символов (например love, god, table, admin и т.д.). Провести атаку по словарю. Для этого выбрать вид атаки и в закладке Словарь выбрать файл English.dic. Он содержит набор английских слов и наборы символов, наиболее часто использующиеся в качестве паролей.

4.2.2 Попытаться определить пароль методом прямого перебора. Сравнить затраченное время.


5 Ответьте на контрольные вопросы:

5.1 Какие виды атак на пароль Вы знаете?

5.2 Что такое плохой пароль?

5.3 Как можно противостоять атаке полным перебором?

5.4 Как длина пароля влияет на вероятность раскрытия пароля?

5.5 Какие рекомендации по составлению паролей Вы можете дать?


6 Содержание отчета:

6.1 Наименование и цель работы.

6.2 Описание порядка выполнения работы.

6.3 Ответы на контрольные вопросы.

6.4 Выводы по работе.

Приложение 1


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

В любой критической системе ошибки человека-оператора являются чуть ли не самыми дорогостоящими и распространенными. В случае криптосистем, непрофессиональные действия пользователя сводят на нет самый стойкий криптоалгоритм и самую корректную его реализацию и применение.

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

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

В связи с резким ростом вычислительных мощностей атаки полным перебором имеют гораздо больше шансов на успех, чем раньше. Кроме того, активно используются распределенные вычисления, т.е. равномерное распределение задачи на большое количество машин, работающих параллельно. Это позволяет многократно сократить время взлома.

Однако вернемся на несколько лет назад, когда вычислительной мощности для полного перебора всех паролей не хватало. Тем не менее, хакерами был придуман остроумный метод, основанный на том, что в качестве пароля человеком выбирается существующее слово или какая-либо информация о себе или своих знакомых (имя, дата рождения и т.п.). Ну, а поскольку в любом языке не более 100000 слов, то их перебор займет весьма небольшое время, и от 40 до 80% существующих паролей может быть угадано с помощью простой схемы, называемой “атакой по словарю”. Кстати, до 80% этих паролей может быть угадано с использованием словаря размером всего 1000 слов!

Пусть сегодня пользователи уже понимают, что выбирать такие пароли нельзя, но, видимо, никогда эксперты по компьютерной безопасности не дождутся использования таких простых и радующих душу паролей, как 34jХs5U@bТа!6;). Поэтому даже искушенный пользователь хитрит и выбирает такие пароли, как hоре1, user1997, рАsSwOrD, toor, roottoor, раго1, gfhjkm, asхz. Видно, что все они, как правило, базируются на осмысленном слове и некотором простом правиле его преобразования: прибавить цифру, прибавить год, перевести через букву в другой регистр, записать слово наоборот, прибавить записанное наоборот слово, записать русское слово латинскими буквами, набрать русское слово на клавиатуре с латинской раскладкой, составить пароль из рядом расположенных на клавиатуре клавиш и т.п.

Поэтому не надо удивляться, если такой “хитрый” пароль будет вскрыт хакерами — они не глупее самих пользователей, и уже вставили в свои программы те правила, по которым может идти преобразование слов. В самых "продвинутых" программах (John The Ripper, Password Cracking library) эти правила могут быть программируемыми и задаваться с помощью специального языка самим хакером.

Приведем пример эффективности такой стратегии перебора. Во многих книгах по безопасности предлагается выбирать в качестве надежного пароля два осмысленных слова, разделенных некоторым знаком (например, good!password). Подсчитаем, за сколько времени в среднем будут сломаны такие пароли, если такое правило включено в набор программы-взломщика (пусть словарь 10000 слов, разделительными знаками могут быть 10 цифр и 32 знака препинания и специальных символа, машина класса Pentium со скоростью 15000 паролей/сек):

10000*(32+10)*10000/15000*2=140000 секунд или менее 1.5 дня!

Чем больше длина пароля, тем большую безопасность будет обеспечивать система, так как потребуются большие усилия для его отгадывания. Это обстоятельство можно представить в терминах ожидаемого времени раскрытия пароля или ожидаемого безопасного времени. Ожидаемое безопасное время (Тб) — половина произведения числа возможных паролей и времени, требуемого для того, чтобы попробовать каждый пароль из последовательности запросов. Представим это в виде формулы:

[pic] (1)


где t— время, требуемое на попытку введения пароля, равное E/R;

E — число символов в передаваемом сообщении при попытке получить доступ (включая пароль и служебные символы);

R — скорость передачи (символы/мин) в линии связи;

S — длина пароля;

А — число символов в алфавите, из которых составляется пароль. Если после каждой неудачной попытки подбора автоматически предусматривается десятисекундная задержка, то безопасное время резко увеличивается.

Поэтому при использовании аутентификации на основе паролей защищенной системой должны соблюдаться следующие правила:

а) не позволяются пароли меньше 6–8 символов;

б) пароли должны проверяться соответствующими контроллерами;

в) символы пароля при их вводе не должны появляться в явном виде;

г) после ввода правильного пароля выдается информация о последнем входе в систему;

д) ограничивается количество попыток ввода пароля;

е) вводится задержка времени при неправильном пароле;

ж) при передаче по каналам связи пароли должны шифроваться;

з) пароли должны храниться в памяти только в зашифрованном виде в файлах, недоступных пользователям;

и) пользователь должен иметь возможность самому менять пароль;

к) администратор не должен знать пароли пользователей, хотя может их менять;

л) пароли должны периодически меняться;

м) устанавливаются сроки действия паролей, по истечении которых надо связаться с администратором.

Проблема выбора пароля

Выбор длины пароля в значительной степени определяется развитием технических средств, их элементной базы и ее быстродействием. В настоящее время широко применяются многосимвольные пароли, где S>10. В связи с этим возникают вопросы: как и где его хранить и как связать его с аутентификацией личности пользователя? На эти вопросы отвечает комбинированная система паролей, в которой код пароля состоит из двух частей. Первая часть состоит из 3–4-х десятичных знаков, если код цифровой, и более 3–4-х, если код буквенный, которые легко запомнить человеку. Вторая часть содержит количество знаков, определяемое требованиями к защите и возможностями технической реализации системы, она помещается на физическом носителе и определяет ключ-пароль, расчет длины кода которого ведется по указанной выше методике. В этом случае часть пароля будет недоступна для нарушителя.

Однако при расчете длины кода пароля не следует забывать о том, что при увеличении длины пароля нельзя увеличивать периодичность его смены. Коды паролей необходимо менять обязательно, так как за большой период времени увеличивается вероятность их перехвата путем прямого хищения носителя, снятия его копии, принуждения человека. Выбор периодичности необходимо определять из конкретных условий работы системы, но не реже одного раза в год. Причем желательно, чтобы дата замены и периодичность должны носить случайный характер.

Для проверки уязвимости паролей используются специальные контроллеры паролей. Например, известный контроллер Кляйна, осуществляет попытки взлома пароля путем проверки использования в качестве пароля входного имени пользователя, его инициалов и их комбинаций, проверки использования в качестве пароля слов из различных словарей, начиная от наиболее употребительных в качестве пароля, проверки различных перестановок слов, а также проверки слов на языке пользователя–иностранца. Проверка паролей в вычислительных сетях с помощью контроллера Кляйна показала довольно высокие результаты — большинство пользователей используют простые пароли. Показателен пример, когда контроллер Кляйна позволил определить 100 паролей из 5 символов, 350 паролей из 6 символов, 250 паролей из 7 символов и 230 паролей из 8 символов.

Приведенный анализ позволяет сформулировать следующие правила снижения уязвимости паролей и направленные на противодействие известным атакам на них:

расширяйте применяемый в пароле алфавит — используйте прописные и строчные буквы латинского и русского алфавитов, цифры и знаки;

не используйте в пароле осмысленные слова;

не используйте повторяющиеся группы символов;

не применяйте пароли длиной менее 6–8 символов, так как запомнить их не представляет большого труда, а пароль именно нужно запоминать, а не записывать. По той же причине не имеет смысла требовать длину неосмысленного пароля более 15 символов, так как запомнить его нормальному человеку практически невозможно;

не используйте один и тот же пароль в различных системах, так как при компрометации одного пароля пострадают все системы;

проверяйте пароли перед их использованием контроллерами паролей.

Для составления пароля можно дать рекомендации, которыми пользоваться надо очень осторожно:

выберите несколько строк из песни или поэмы (только не те, которые Вы повторяете первому встречному) и используйте первую (или вторую) букву каждого слова — при этом пароль должен иметь большую длину (более 15 символов), иначе нужно менять регистры букв, применять латинские буквы вместо русских или наоборот, можно вставлять цифры и знаки;

замените в слове из семи–восьми букв одну согласную и одну или две гласных на знаки или цифры. Это даст вам слово-абракадабру, которое обычно произносимо и поэтому легко запоминается. Подведем итог:

Что такое плохой пароль:

  • Собственное имя;

  • Слово, которое есть в словаре;

  • Идентификатор, присвоенный Вам какой-нибудь системой, или любые его вариации;

  • Дата рождения;

  • Повторенный символ (например: AAA);

  • Пароль меньше 6 символов;

  • Пароль, установленный Вам чужим человеком;

  • Пароль, состоящий из символов соседствующих на клавиатуре (например: QWERTY или ЙЦУКЕ);

  • Пароль состоящий из паспортных данных: персональный номер, номер водительских прав и т.д.

Что такое хороший пароль:

  • Бессмысленная фраза;

  • Случайный набор символов вперемешку с буквами.

Работа с программами взлома на примере AZPR

Программа AZPR используется для восстановления забытых паролей ZIP-архивов. На сегодняшний день существует два способа вскрытия паролей: перебор (brute force) и атака по словарю (dictionary-based attack).

Панель управления (рисунок 1):

  • кнопки Открыть и Сохранить позволяют работать с проектом, в котором указан вскрываемый файл, набор символов, последний протестированный пароль. Это позволяет приостанавливать и возобновлять вскрытие.

  • кнопки Старт и Стоп ­позволяют соответственно начинать и заканчивать подбор пароля.

  • кнопка Набор позволяет задать свое множество символов, если известны символы, из которых состоит пароль.

  • кнопка Справка выводит помощь по программе.

  • кнопка O AZPR выводит информацию о программе.

  • кнопка Выход позволяет выйти из программы


. [pic]

Рисунок 1 – Внешний вид программы


Рассмотрим возможности программы:

Выбирается архив для вскрытия и тип атаки ( рисунок 2).


[pic]

Рисунок 2 – Выбор архива


Выбираются параметры работы:

  • Закладка Набор

Программа позволяет выбрать область перебора (набор символов). Это значительно сокращает время перебора. Можно использовать набор пользователя, заданный с помощью кнопки Набор. Можно ограничить количество тестируемых паролей, задав начальный пароль. В случае если известна часть пароля, очень эффективна атака по маске. Нужно выбрать соответствующий тип атаки, после этого станет доступным поле маска. В нем нужно ввести известную часть пароля в виде P?s?W?r? , где на месте неизвестных символов нужно поставить знак вопроса. Можно использовать любой другой символ, введя его в поле символ маски.

  • Закладка Длина (рисунок 3)


[pic]

Рисунок 3 – Закладка «Длина»


Позволяет выбрать длину пароля.

  • Закладка Словарь

Позволяет выбрать файл-словарь. Выбирайте файл English.dic, он содержит набор английских слов и наборы символов, наиболее часто использующиеся в качестве паролей.

  • Закладка Автосохранение

Можно выбрать имя файла для сохранения результатов работы и интервал автосохранения.

  • Закладка Опции

Выбирается приоритет работы (фоновый или высокий), интервал обновления информации о тестируемом в данный момент пароле. Увеличение интервала повышает быстродействие, но снижает информативность. Также можно установить режим ведения протокола работы и возможность минимизации программы в tray (маленькая иконка рядом с часами).

ЛАБОРАТОРНАЯ РАБОТА 12, 13


Криптографические методы защиты информации


1 Цель работы: Ознакомиться с теорией методов современной криптографии на примере программирования одного из предложенных алгоритмов

2 Оборудование и программное обеспечение: персональный компьютер, программа С++, Delphi.


3 Подготовка к работе:

3.1 Знать языки программирования С++ и Delphi.

3.2 Изучить понятия защиты информации


4 Порядок выполнения работы:

4.1 Выбрать язык программирования.

4.2 Изучить материал в приложении.

4.3 Запрограммировать один из предложенных алгоритмов:

4.3.1 Волновой метод;

4.3.2 RSA;

4.3.3 TEA.


5 Ответьте на контрольные вопросы:

5.1 Что представляет собой волновой метод?

5.2 Что представляет собой RSA?

5.3 Что представляет собой TEA?


6 Содержание отчета:

6.1 Наименование и цель работы.

6.2. Описание порядка выполнения работы.

6.3. Ответы на контрольные вопросы.

6.4. Выводы по работе.

Приложение 1

Волновой метод криптографии

Поставленная цель достигается тем, что изменяем стандартный способ шифрования на новый. Рисунок 4. Путем использования периодических функций типа у =cos(х) и уравнения «волны» типа yos(x+dx).

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

Ha криптостойкость так же не влияет объем исходного текста и его содержание (он может состоять из одной буквы). Также на криптостойкость не влияет знание алгоритма зашифрования, так как нельзя имея на руках исходный текст и шифровку поставить перед машинными средствами задачу по расшифрованию.Сущность способа пояснена ниже :

Существует огромное количество периодических функций, имеющих постоянную амплитуду, которые определены и непрерывны на всем промежутке

x (“-“ бесконечность; “+” бесконечность).

[pic]

Рисунок 4 – Волновой метод

На графике представлена функция y=cos(x). Особенность периодической функции в том, что, к максимальному значению у = 0,5 соответствует бесконечное количество значений х.

Применяя уравнение волны y=cos( х+N*dx), где N - любое целое число, a dx->0, получаем, что при у=0,5х может принимать любые значения от ”- бесконечности до ”+”бесконечности. (рисунок 5).




[pic]



Рисунок 5

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

Пример реализации способа:

По координатньм осям X и Y расставляются компьютерные символы в любом порядке. Всего используется в компьютере 256 символов. Они все расставляются по оси X в любом порядке, по оси Y расставляем те же самые символы в любом порядке. Три линейные функции 1,2,3 описываются как: Yl, Y2, Y3,

Y1=X + 256*[cos(z + N*dx)] + 256

Y2 =Х + 256 * [cos (z + N* dx ) ]

Y3 -X + 256 * [ cos ( z + N * dx ) ] -256

Где: X - тот байт (знак), который нужно зашифровать;

Z - любое число.

N-номер по счету шифруемого знака в исходном тексте;

dx- любое число.

Для гримера зашифруем исходный текст состоящий из пяти букв А.

АААА А - исходный текст (рисунок 6).



[pic]


' У


Рисунок 6


Для примера порядок расстановки знаков по осям X и Y одинаковый. Например, знак А занимает промежуток (0-1) по оси X, знак Б-(1-2); В-(2-3)…Я-(255-256). То же самое по оси Y, Имея три формулы, подставляем значение 0,5 - середину промежутка (0-1) - буква А.

Пусть: Z = 0 (для удобства);

N = 1 (т.к. шифруется первый по счету знак из исходного текста, потом 2,3,4,5);

dx = 32.

Подставляем эти цифры в формулу

Yl=0,5 + 256*[cos(z + 1 * 32)] + 256=437,6

Y2 =0,5 + 256 *[ cos(z + 1 * 32)] =217,6

Y3=0,5 + 256*[cos(z+ 1*32)] -256 = -38,39

Из трех значений Y I, Y2 , Y3 выбираем Y2, так как оно попало в промежуток то 0 до 256 и округляем значение Y2 до большего целого Y2=218.

Шифруем второй знак исходного текста:

Y1 =0,5 + 256 *[ cos ( Z + 2 * 32) ] + 256 = 368,7

Y2 = 0,5 + 256 *[ cos (Z + 2 * 32) ] =112,7

Y3 =0,5 + 256*[ cos (Z + 2 * 32) ] - 256 = -143,28

В шифровку, соответственно, записываем Y2=113.

Соответственно получаем третий, четвертый и пятый знаки шифровки:

Третий знак - 230

Четвертый знак- 99

Пятый знак- 16

В итоге из числового ряда 0,5; 0,5; О,5; 0,5; 0,5 - исходный текст А А А А А получили числовой ряд 218; 113; 230; 99; 16 -шифровка.

Для расиифровки применяют те же самые формулы.

XI = Y - 256 *[ cos (z + N *dx)]- 256

X2=Y-256*[cos(z + N*dx)]

X3=Y-256*[cos(z + N*dx)]+256

Подставляя уже известные значения получаем:

XI = 217,5 - 256 * [COS ( 0 + 1 * 32 ) ] - 256 = -255,6

Х2 = 217,5 - 256 * [COS (0 + 1 * 32 ) ] =0,4

ХЗ = 217,5 - 256* [COS (0 + 1 * 32 ) ] + 256 = 265,4

X=0,4

Подставляя следующие значения получаем остальные значения: 0,3;0,7; O,6; 0,56; все эти значения попали в промежуток (0-1), соответственно получили текст

А А А А А.

В данном частном случае использовалась всего одна переменная dx, а их можно использовать неограниченное количество. Кроме того, исходный текст можно зашифровать не один раз , а несколоко. Теоретически возможно зашифровать стихи Пучкина стихами Лермонтова или наоборот.

Криптосистема RSA

Несмотря на довольно большое число различных СОК, наиболее популярна -криптосистема RSA, разработанная в 1977 году и получившая название в честь ее создателей: Рона Ривеста [pic] , Ади Шамира и Леонарда Эйдельмана.Они воспользовались тем фактом, что нахождение больших простых чисел в вычислительном отношении осуществляется легко, но разложение на множители

произведения двух таких чисел практически невыполнимо. Доказано (теорема Ра-бина), что раскрытие шифра RSA эквивалентно такому разложению. Поэтому для любой длины ключа «южно дать нижнюю оценку числа операций для раскрытия шифра, а с учетом производительности современных компьютеров оценить, и не-ииХодимис на зто время.

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

В настоящее время алгоритм RSA используется во многих стандартах, среди которых SSL, S-HHT.P, S-MME, SWAN, STT и РСТ.

Рассмотрим математические результаты, положенные в основу этого алгорит­ма.

Теорема 1. (Малая теорема Ферма)

Еcли p - простое число, то

x [pic] =1(mod p) (1)

для любого x, простого относительно p, и

x [pic] =x(mod p) (2)

для любого х.

Доказательство. Достаточно доказать справедливость уравнений (1) и (2) лля X [pic] . Проведем доказательство методом индукции.

Очевидно, что уравнение (8.2.2) выполняется при х=0 и 1. Далее:

x [pic] =(x-1+1) [pic] = [pic]

0<=j<=p

так как C(p,j)=0(mod p) при 0<j<p. С учетом этого неравенства и предложений метода доказательства по индукции теорема доказана.

Определение. Функцией Эйлера [pic] (n) называется число положительных целых, меньших п и простых относительно п.



n

2

3

4

5

6

7

8

9

10

11

12

[pic] (n)

1

2

2

3

2

6

4

6

4

10

4


Теорема 2. Если n=pq, (p и q- отличные друг от друга простые числа), то

(n)=(p-1)(q-1).

Теорема 3. Если n=pq, (p и q - отличные друг от друга простые числа) их- простое относительно р и q, то [pic] =l (mod n).

Следствие . Если n=pq, (р и q - отличные друг от друга простые числа) и E простое относительно [pic] (n), то отображение E [pic] [pic] : X>x [pic] (mod n)

является взаимно однозначным на Z [pic] .

Очевиден и тот факт, что если е - простое относительно [pic] (n), то существует целое d, такое, что

ed = 1 (mod (n)) (3)

На этих математических фактах и основан популярный алгоритм RSА.

Пусть n=pq, где р и q - различные простые числа. Если cud удовлетворяют уравнению (8.2.3), то отображения E [pic] [pic] и E [pic] являются инверсиями на Zn. Как E [pic] [pic] так и E [pic] легко рассчитываются, когда известны е, d,p, q. Если известны е и n, но р и q неизвестны, то E [pic] представляет собой одностороннюю функцию; нахождение E [pic] по заданному n равносильно разложению n. Если р и q -достаточно большие простые, то разложение n практически не осуществимо. Это и заложено в основу системы шифрования RSA.

Пользователь i выбирает пару различных простых p [pic] и q [pic] и рассчитывает пару целых (e [pic] ,d [pic] ), которые являются простыми относительно [pic] (n [pic] ), где

n=p [pic] q [pic] .Справочная таблица содержит публичные ключи {(e [pic] ,d [pic] )}.

X=(x [pic] , x [pic] ,…,x [pic] ),

x [pic] Z [pic] ,0<=i<n

сначала представлен по основанию n [pic] :

n=c [pic] +c [pic] n [pic] +…

Пользователь i зашифровывает текст при передаче его пользователю j, применяя к n отображение E [pic] , [pic] :

N [pic] E [pic] , [pic] n=n’.

Пользователь j производит дешифрование n’, применяя Ee [pic] ,n [pic] :

N’ [pic] Ee [pic] ,n [pic] n’ = Ee [pic] ,n [pic] E [pic] , [pic] n=n.

Очевидно, для того чтобы найти инверсию E [pic] , [pic] по отношению к Ee [pic] ,n [pic] ,требуется знание множителей n=p [pic] q [pic] . Время выполнения наилучших из известных алгоритмов разложения при n=10 [pic] на сегодняшний день выходит за пределы современных технологических возможностей.

Рассмотрим небольшой пример, иллюстрирующий применение алгоритма RSA.

Пример. Зашифруем сообщение "CAB". Для простоты будем использовать маленькие числа (на практике применяются гораздо большие).

  1. Выберем p=3 и q=11.

  2. Определим n=3*11=33.

  3. Найдем (р-1)(q-1)=20. Следовательно, в качестве d, взаимно простое с 20, например, d=3.

  4. Выберем число e. В качестве такого числа может быть взято любое число, для которого выполняется соотношение (е*3) mod 20 = 1, например 7.


Lg n

Число операций

Примечания

50

1.4*1010

Раскрываем на суперкомпьютерах

100

2.3*1015

На пределе современных технологий

200

1.2*1023

За пределами современных технологий

400

2.7*1034 ,

Требует существенных изменений в технологии

800

1.3*1051

Не раскрываем

В конце 1995 года удалось практически реализовать раскрытие Шифра RSA для 500-значного ключа. Для этого с помощью сети Интернет было задействовано 1600 компьютеров.

Сами авторы RSА рекомендуют использовать следующие размеры модуля n:

- 768 бит – для частных лиц;

- 1024 бит - для коммерческой информации;

- 2048 бит - для особо секретной информации.5

Третий немаловажный аспект реализании RSA - вычислительный. Ведь приходится использовать аппарат длинной арифметики. Если используется ключ длиной k бит, то для операций по отбытому ключу требуется О(k [pic] ) операций, по закрытому ключу - O(k3) операций, а для генерации новых ключей требуется O(k4) операций.

Криптофафический пакет BSAFE 3.0 (RSA D.S.) на компьютере Pentium-90 осуществляет шифрование со скоростью 21. 6 Кбит/с для 512-битного ключа и со скоростью 7.4 Кбит/с для 1024 битного. Самая «быстрая» аппаратная реализация обеспечивает скорости в 60 раз больше.

По сравнению с тем же алгоритмом DES, RSA требует в тысячи и десятки

тысяч раз большее время.

Блочные шрифты (TEA)

Блочные шифры шифруют целые блоки инфоршции (от 4 до 32 байт) как единое целое - это значительно увеличивает стойкость преобразований к атаке персборм и позволяет использовать различные математические и

алгоритмические преобразования.

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

Характерной особенностью блочных криптоалгоритмов является тот факт, что б ходе своей работы они производят преобразование блока входной информации фиксированной длины и получают результирующий блок того же объема, но недоступный для прочтения сторонним лицам, не владеющим ключом. Таким образом, схему работы блочного шифра можно описать функциями Z=EnCrypt(X,Key) и X=DeCrypt(Z,Key)

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

Блочные шифры являются основой, на которой реализованы практически все криптосистемы.

Блочный шифр TEA

TEA (Tiny Encryption Algorithm) был разработан в Кембриджском университете, выдержал многолетние испытания на прочность, и до сих пор считается одним из самых простых в реализации стойких блочных шифров. Параметры шифра: длина блока - 64 бита, длина ключа - 128 бит, оптимизирован под 32-разрядные.процессоры.

В алгоритме использована сеть Фейштеля с двумя ветвями в 32 бита каждая.

Образующая функция F обратима, т.е. декодирование производится в Обратном направлении. Сеть Фейштеля несиммитрична из-за использования в качестве операции наложения не исключающего "ИЛИ", а арифметического сложения.

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

Схема работы алгоритма приведена на рисунке 6.

Шифруемый 64-разрядный блок помещается в х и z, 128-разрядный ключ в kO, kl, k2, k3, результат возвращается в переменных у и z. Немаловажная деталь: материал ключа используется в процедуре шифрования множество раз - это общее правило блочных шифров, именно с помощью него и достигается невосстановимость ключа по известным открытому и зашифрованному блокам.

Отличительной чертой криптоалгоритма TEA является его размер. Простота операций, отсутствие табличных подстановок и оптимизация под 32-разрядную архитектуру процессоров позволяет реализовать его на языке ASSEBLER в предельно малом объеме кода. Недостатком алгоритма является некоторая медлительность, вызванная необходимистью повторять цикл Фейштеля 32 tраза (это необходимо для тщательного "перемешивания данных" из-за отсутствия

табличных подстановок).

[pic]

+



С [pic] [pic] ложение X’=X+V

[pic]

И [pic]

+

[pic] [pic] сключающее ИЛИ X’=Х XOR V

Арифметический сдвиг влево X'=X SHL V

[pic]

<<

>>

[pic] [pic] [pic] [pic] [pic] Арифметический сдвиг вправо Х’=Х SHR V


[pic] [pic] [pic] [pic]





















Рисунок 6







Литература


Основная:


1. Ярочкин В. И. Информационная безопасность: учеб. для вузов / В. И. Ярочкин .- М. : Академический проект, 2005

2. Губенков А. А. Информационная безопасность : [учеб. пособие} / А. А. Губенков, В. Б. Байбурин .- М. : Новый издательский дом, 2005


Дополнительная:

3.Хорев П. Б. Методы и средства защиты информации в компьютерных системах: учеб. пособие для вузов , 2006

4.Степанов Е. А. Иформационная безопасность и защита информации : учеб. пособие : ИНФРА-М, 2001

5.Партыка Т. Л. Иформационная безопасность : учеб. пособие для студентов сред. Проф. Образования , Инфра-М, 2004

6 Низамутдинов М. Ф. Тактика защиты и нападения на Web-приложения/- СПб. : БХВ - Петербург, 2005- 4 экз

7. Мельников В. П. Информационная безопасность и защита информации : учеб. пособие для вузов / В. П. Мельников, С. А. Клейменов, А. М. Петраков .- 3-е изд., стереотип.- М. : Академия, 2008

8.Платонов В. В. Программно-аппаратные средства обеспечения информационной безопасности вычислительных сете: учеб. пособие для вузов / В. В. Платонов .- М. : Академия, 2006