У вас вопросы?
У нас ответы:) SamZan.net

Тема 6. Управление доступом в ИВС

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 30.12.2024

PAGE  2

Тема 6.  

Управление доступом в ИВС. Электронная цифровая подпись.

6.1.Управление доступом в ИВС

Система защиты доступа в ИВС, в общем случае, должна включать три пояса защиты [1]:

1) пояс, охватывающий территорию, на которой расположены элементы ИВС;

2) пояс, который охватывает сооружения и помещения с аппаратурой ИВС;

    3) пояс, охватывающий ресурсы ИВС.

Защита доступа в первых двух поясах обеспечивается применением физических средств защиты, в третьем поясе - аппаратных, программных (программно-аппаратных) и криптографических средств защиты.

Под управлением доступом понимается процесс регулирования использования ресурсов ИВС.

Управление доступом включает решение следующих задач:

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

Рассматриваемые в этом разделе методы решения задач управления доступом могут успешно применяться не только в ИВС, но и в отдельной ЭВМ или вычислительной системе. Поэтому в дальнейшем будем использовать понятие "система".

6.1.1. Идентификация и установление подлинности

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

Идентификация субъекта (объекта) представляет собой присвоение этому субъекту (объекту) уникального имени (идентификатора).

Когда какой-либо субъект обращается к ресурсам системы, необходимо установить его подлинность, опознать его. Процесс установления подлинности в зарубежной литературе называется "авторизация", "аутентификация", "опознание". Далее будем использовать термин "установление подлинности".

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

В зависимости от сложности установления подлинности различают три основные группы операций: простое, усложненное и особое установление подлинности [6].

Простое установление подлинности сводится, как правило, к сравнению предъявленного кода (характеристики) с эталонным кодом, который хранится в памяти устройства, выполняющего установление подлинности.

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

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

   

Установление подлинности субъектов

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

Рис.6.1. Классификация характеристик, используемых для установления    

подлинности.

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

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

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

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

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

Акционерным обществом "ЛЭК УК" (г. Санкт-Петербург) разработана и реализована система установления подлинности на базе пластиковых карт, на которые кодовая информация записывается и считывается лазерно-голографическими методами. Такие карты могут использоваться в двух режимах: ключа и персонального идентификационного кода (ПИК). В режиме ключа карта служит для открывания специальных голографических электронно-механических замков, устанавливаемых на защищаемых объектах. В режиме ПИК карта используется для ограничения доступа к терминалам вычислительной системы и хранящимся в ней данным. Для этого на карту заносится ПИК пользователя,  занимающий от 64 до 256 бит.

Наибольшее распространение для установления подлинности в настоящее время получили методы паролирования.

Методы паролирования.

Методы паролирования требуют, чтобы пользователь ввел строку символов (пароль) для сравнения с эталонным паролем, хранящимся в памяти системы. Если пароль соответствует эталонному, то пользователь может работать с системой. При рассмотрении различных методов паролирования будем пользоваться следующими обозначениями: С - сообщение системы; П - сообщение, вводимое пользователем; ОК - сообщение системы о правильном установлении подлинности.

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

Пример1. (Паролем является слово "ПАРОЛЬ")

С: Введите пароль

П: ПАРОЛЬ

С: ОК

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

Пример 2. (Паролем является слово "ПАРОЛЬ").

С: Введите пароль: 2, 5

П: АЛ

С: ОК

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

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

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

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

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

Пример 3. (Преобразование у = х1+2х2 ).

С: Введите пароль: 4, 6

П: 16

С: OK 

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

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

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

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

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

    - пароли не должны быть простыми.

Для проверки сложности паролей обычно используют специальные контроллеры паролей.

В работе [2] представлен контроллер паролей, который позволяет проверить уязвимость паролей. Контроллер осуществляет попытки взлома пароля по следующей методике.

1. Проверка использования в качестве пароля входного имени пользователя, его инициалов и их комбинаций. Например, для пользователя Daniel V.KIein (автор контроллера) контроллер будет пробовать пароли DVK, DVKDVK, DKLEIN, LEINK, DVKLEIN, DANIELK, DVKKVD, DANIEL -KLEIN и т.д.

  1.  Проверка использования в качестве пароля слов из различных словарей (60000 слов):

-  мужские и женские имена (16000 имен);

- названия стран и городов;

- имена знаменитостей;

- имена персонажей мультфильмов, кинофильмов, научно-фантастических произведений и т.п.;

- спортивные термины (названия спортивных команд, имена спортсменов, спортивный жаргон и т.п.);

- числа (цифрами и прописью, например, 2000, TWELVE);

- строки букв и цифр (например, АА, ААА, АААА и т.д.);

- библейские имена и названия; биологические термины;

- жаргонные слова и ругательства;  

- последовательности символов в порядке их расположения на клавиатуре     (например, QWERTY, ASDF, ZXCVBN и т.д.);

- имена компьютеров (из файла /ets/hosts в ОС UNIX);

- персонажи и места действия из произведений Шекспира;

- часто употребляемые иностранные слова;

- названия астероидов.

    3. Проверка различных перестановок слов из п.2, включая:

- замену первой буквы на прописную;

- замену всех букв на прописные;

- инверсию всего слова;

- замену буквы О на цифру щ и наоборот (цифру 1 на букву 1 и т.д.);

     - превращение слов во множественное число.

Всего по п.З контроллер осуществляет проверку на совпадение приблизительно с 1 миллионом слов.

4. Проверка различных перестановок слов из п.2, не рассмотренных в п.З:

- замена одной строчной буквы на прописную (например, michel-miChel и т.п.    около 400000 слов);

- замена двух строчных букв на прописные (около 1500000 слов);

     - замена трех строчных букв на прописные и т.д.

   5. Для иностранных пользователей проверка слов на языке пользователя.

   6. Проверка пар слов.

Проведенные эксперименты показали, что данный контроллер позволил определить 100 паролей из пяти символов, 350 паролей из [нести символов, 250 паролей из семи символов и 230 паролей из восьми символов. Такие высокие результаты вызваны тем, что большинство пользователей используют простые пароли. Этим обстоятельством воспользовался Роберт Моррис - автор "сетевого червя", заразившего сеть INTERNET в 1988 году. Модуль захвата вируса Морриса осуществлял опробование r качестве паролей учетные имена пользователей, учетные имена пользователей в обратном порядке, а также пароли из шаблона, состоящего из 432 общеизвестных слов, которые приведены в [3]. В отдельных случаях Моррис сумел получить до 100 паролей, в том числе и ряд системных паролей.

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

- не использовать в качестве пароля слова, проверяемые контроллером  Кляйна;

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

- часто менять пароли;

- при формировании пароля использовать знаки препинания и различные регистры;

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

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

Для случая, когда пользователь вводит пароль через удаленный терминал, можно применить формулу Андерсена [6]:                                              

                                                             V х Т

                                           

                                          4,32 х 104      АS ,              (1)

                                          

                                                              N х Р

где V - скорость передачи данных через линию связи (в символах/мин);

     Т - период времени, в течение которого могут быть предприняты попытки отгадывания пароля (в месяцах при работе 24 ч/сутки);

     N - число символов в каждом передаваемом сообщении при  попытке получить доступ к системе;

      Р - вероятность того, что правильный пароль может быть подобран нарушителем;

     А - число символов в алфавите, из которого составляется пароль;

     S - длина пароля (в символах).

Задаваясь вероятностью Р, можно получить (для известных характеристик сети и заданных условий) значения длины пароля S, удовлетворяющие (1).

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

Пусть быстродействие ЭВМ нарушителя, генерирующей пароли, составляет g операций/с. Программа генерации и сравнения паролей имеет длину l операций. Тогда количество паролей G, генерируемое нарушителем в одну секунду, будет

                                                               G = g / l 

Будем исходить из того, что                Р  n1 / n2 ,            (2)

где Р - вероятность подбора пароля нарушителем;

     n1- число возможных попыток раскрытия пароля за Т месяцев;

 n2 -число возможных паролей в системе.

Промежуток времени (в секундах), затрачиваемый ЭВМ нарушителя на формирование одного пароля и получение доступа к системе установления подлинности, составит                         t + 1 / G,

       где t - время задержки, применяемое системой установления подлинности для уменьшения уязвимости парольной системы (в секундах).

Тогда                                                            Т

                                                 n1 =               (3)

                                                               t + 1 / G

а общее                               а общее число возможных паролей             

                                                                                                      S 

n2 = Аi,

  i = 1 

где    А - число символов в алфавите;         S - длина пароля.

При рассмотрении наихудшего случая, когда нарушителю известно S, имеем:                                           

                                             n2min  = AS .                  (4)

Подставляя (3) и (4) в (2), получим:                      

                                               

                                               24 х 60 х 60 х 30 х Т

                                      Р   

                                                        АS (t + 1 / G)

или иначе:                                                 

                                                                 T

                              2,592 х 106      АS .      (5)

                                                        Р (t + 1 / G)

Полученная формула (5) дает возможность учесть наихудший случай при подборе нарушителем пароля.

Результаты определения длин паролей, вычисленных по формуле Андерсена и формуле (5) для значений t = 0, А = 50, 1 =10, Т= 1, приведены в таблице 6.1. В этой таблице для удобства вместо величин Р используются величины –1gР.

Анализ результатов, представленных в таблице 6.1, показывает, что, во-первых, формула (5) действительно учитывает наихудший случай при попытке вскрытия пароля, и, во-вторых, редко используемые на практике значения S соответствуют малым значениям вероятности Р. Уменьшить длину пароля S позволяет выбор соответствующих значений параметра t.                                      

                                                                Таблица 6.1.

  -1g P

Формула            Андерсена

      Формула (5)

    G=106

   G=107

  G=106

  G=107

1

12

13

14

15

2

13

14

15

16

3

14

15

16

17

4

15

16

17

18

5

16

17

18

19

6

17

18

19

20

7

18

19

20

21

8

19

20

21

22

9

20

21

22

23

10

21

22

23

24

На рис.6.2. представлены зависимости S (-1gР) для различных значений параметра t. Приведенные на рис.6.2. зависимости показывают, что                                                                                  

Рис. 6.2.

приемлемые длины паролей достигаются при использовании временной задержки t порядка 2 секунд. Это удобно и с точки зрения пользователя

(возможность повторного ввода пароля будет предоставляться пользователю с интервалом в 2 секунды). Изменение скорости генерации паролей нарушителем в интервале от G = 105 до G = 108 практически не влияют на изменение длины пароля при t = 2.                     

На практике обычно значение длины пароля S является заданной величиной. Тогда формулу (5) можно использовать для получения значения времени жизни пароля Т заданной длины S. Зависимости Т (-1gР) при t = 2, А = 50, G = 106 приведены на рис.6.3. Выбор периода жизни пароля заданной длины позволяет обеспечить задаваемую вероятность подбора пароля нарушителем.

Установление подлинности объектов

Одной из возможных стратегий действий нарушителя в ИВС является подключение к каналу связи. В этом случае нарушитель может имитировать механизм установления подлинности, что позволит ему получить пароль пользователя и доступ к его данным. Для предупреждения подобных действий нарушителя пользователь должен убедиться в подлинности системы, с которой он начинает работать. Одним из методов решения этой задачи является так называемая процедура "рукопожатия" [6]. Для осуществления процедуры "рукопожатия" выбирается нетривиальное преобразование вида  y =  f (х, k),

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

                                                  Рис.6.3.

идентификатором пользователя, система вычисляет у = f (х, k) и посылает его пользователю вместе с запросом о вводе пароля. Пользователь вычисляет или имеет вычисленное заранее значение у. Если значения у пользователя и системы совпадают, то режим опознания системы заканчивается и пользователь может вводить пароль. После подтверждения правильности пароля пользователя считается, что "рукопожатие" состоялось.

   Аналогичным образом осуществляется установление подлинности ЭВМ ИВС при необходимости обмена данных между ними.

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

Другие методы установления подлинности будут рассмотрены во второй части учебного пособия.

6.1.2. Проверка полномочий субъектов на доступ к ресурсам.

После положительного установления подлинности пользователя (и системы со стороны пользователя) система должна осуществлять постоянную проверку полномочий поступающих от субъектов запросов. Проверка полномочий заключается в определении соответствия запроса субъекта предоставленным ему правам доступа к ресурсам. Такую процедуру часто называют "контроль полномочий" или "контроль доступа". Проверка полномочий основывается на различных методах разграничения доступа. Один из них -  матричное разграничение доступа  рассмотрен в лекции 7. Матричная модель доступа широко используется в различных механизмах разграничения доступа.

Разделение доступа по профилям (уровням) полномочий [7]. Для каждого защищаемого ресурса в сети создается список пользователей, которые имеют право доступа к нему. В общем случае для каждого ресурса г будет существовать n списков (по одному для каждого вида доступа)

                                                rij = {s1, s2,…., sM}

где sk - субъект с номером k, имеющий право j-го вида доступа (чтение, запись, выполнение и т.п.) к ресурсу гi .                 

                                                                

                                                      j = 1, n.

Такие списки называются списками доступа (access list). Аналогично можно использовать списки для каждого субъектa, которые определяют его права доступа к ресурсам- Указанные списки называются списками возможностей (capability list).

Пример 4.

Пусть в системе зарегистрированы ресурс г1 и субъекты s1 и s2 . Субъекты могут осуществлять следующие виды доступа к ресурсам: а - чтение; w - запись. Тогда списки доcтупа

                                      r 1a  = < S1 , S2 >;   r 1 = < Si >

определяют, что оба субъекта могут читать ресурс г1, а запись в него может осуществлять только субъект s1 .

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

S1 = < r1a , r > ;  S2 = < r1a >.

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

Кольца секретности (защитные кольца) [8]. Рассмотрим простейшую модель доступа на основе колец секретности. Пусть в системе определено множество ресурсов (объектов) О = {о1, о2 ,..., оM}, доступ к которым должен контролироваться. Будем рассматривать множество {d1, d2,...,dL} доменов защиты, которые определяют различные пути осуществления доступа к объектам. Домен защиты d представляет собой множество пар < оJ, ( оI ) >, где оj - объект, j)-множество прав доступа к объекту оj. Любой процесс Р может оперировать с определенным доменом di , если он может иметь доступ к объектам, определенным доменом di . 

Процессу Р можно сопоставить множество объектов О*(Р), О*О, к которым Р имеет доступ, и атрибут доступа j) для каждого оj  О* (Р).

Будем рассматривать два вида объектов: объект оj есть программный объект у, если его атрибут доступа включает право выполнения, и объект оj есть объект данных z, если его атрибут доступа включает права чтения и записи.

Таким образом, процесс Р ассоциируется со множеством по крайней мере  К доменов d0 , d1 , ... , dk-1 , идентифицированных целыми числами и называемых кольцами защиты. Такие домены упорядочены так, что di dj для i >j, то есть d0 наиболее привилегированный домен, а dk-1 - наименее привилегированный.

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

1) каждый объект оj  О* (Р) ассоциируется с целым j = г(оj), 0  j  К-1, представляющим кольцо защиты;

2) процесс Р, когда он выполняет программный объект уi в кольце г (уi), 

может иметь доступ в O*(Р) к любому объекту данных zj, для которого  Рис.6.4. Пример колец защиты.

 r(zj) г (уi), совпадающего с (zj), и может выполнять в O*(Р) любой программный объект уk , для которого г (уk) = г (уi).

Пример 5. Пусть процесс Р выполняет у3 в кольце 1 (рис.6.4.). Тогда процесс Р может иметь доступ к любому объекту данных z2 , z3 , z4 , z5 , если его права доступа совпадают с правами доступа к этим объектам, и может выполнять программные объекты у2 и y3 .

Таким образом, по записи и чтению процесс Р имеет доступ из своего кольца в наружные кольца, а по выполнению - только в пределах своего кольца.

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

Метод защитных колец был реализован аппаратно в системах VAX11, 1АРХ286, MULTICS и других.

Недостатком метода защитных колец является то, что права доступа всех субъектов внутри одного кольца считаются одинаковым и-

Мандатная организация доступа [7]. Мандат представляет собой пару <о, g>, определяющую уникальное имя (или логический адрес) объекта о и подмножество прав доступа   g G = {g1 , g2, ..., gN} к объекту о. Владение мандатом дает право на д доступ к объекту о. При использовании мандатной организации доступа каждый процесс выполняется в домене, называемом сферой защиты. Каждая сфера защиты определяется списком мандатов С (Capability List). С - список мандатов для процесса Р есть список из L мандатов объектов, к которым допущен Р:

                                         

                                L =  < (о1, g1,) (о2, g2), ..., (оL , gL ,) > ,  gG.

Если gi = Ent (от слова Enter - вход), то процесс Р имеет возможность вызова другого процесса со своим  С - списком. Такой механизм предоставления каждой процедуре своего собственного множества мандатов поддерживает принцип наименьших привилегий. Каждый список мандатов содержит входы только для объектов, требуемых для вызова из данного процесса. При возврате из вызванной процедуры ее С - список заменяется на С - список вызывавшего процедуру процесса.

Пример 6.

Пусть процесс Р имеет доступ по чтению ) и выполнению (е) объекта А, только по чтению данных - объектов В и С, только по записи (w) - в данные объекта D и право вызова процесса Р со своим С – списком.  С - список процесса Р представлен на pиc. 6.5.

Рис. 6.5.  Пример списка мандатов процесса

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

Мандаты были положены в основу таких систем, как HYDRA, UCLA Secure UNIX, iMAX for INTEL, iAPX и других.

Метод замков и ключей [7]. Метод замков и ключей объединяет достоинства списковых и мандатных механизмов. Сопоставим с каждым объектом о. список замков Li и прав доступа gi: < (L1, g1,) (L2, g2),…,(LN,  gN) >. Субъекту si выдается ключ Ki к замку Li, если si имеет gi доступ к объекту оi . Список замков, следовательно, представляет собой столбец матрицы доступа. Доступ разрешается, только если ключ субъекта "отпирает" один из замков в списке замков объекта. Собственник объекта может отменить права доступа всем субъектам, совместно использующим ключ Кi , удалением  элемента из списка замков. Обычно объект содержит только один замок.

Примером использования механизма замков и ключей является шифрование данных. Зашифрованные данные могут быть использованы только по предъявлении ключа шифрования.  В монографии [3] приводится схема возможного использования замков для отношений между шестью видами объектов в сети: пользователями, терминалами или устройствами ввода-вывода, сетевыми узлами (хост-компьютерами, программными контроллерами и т.д.), прикладными программами, наборами данных или элементами данных и томами, на которые записаны данные (диски, ленты).

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

замки.

Рис.6.6. Схема возможного применения замков для различных объектов ИВС.

Буквами на рис.6.6.  обозначены ограничения:

L - на уровень секретности,

1 - на элемент данных, пользователя или их сочетание,

Т - на время суток;

        > - означает возможность закрытия соответствующим замком.

Метод замков и ключей реализован в некоторых сетях (в том числе, соответствующих стандарту Х.25 [5]) для замкнутых групп пользователей. Каждая замкнутая группа представляет множество машин и процессов, которые могут взаимодействовать друг с другом, но не могут взаимодействовать с машинами и процессами вне этого множества.

6.1.3. Регистрация обращений к защищенным ресурсам

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

В регистрационный журнал обычно заносятся следующие данные:

- обращения (доступы) к защищаемым ресурсам;

- отказы в доступе;

- изменения полномочий;

- случаи неиспользования пользователями разрешенных системой запросов;

- изменения содержания памяти ЭВМ, производимые пользователями;

- любые подозрительные действия.

Типовая форма записи регистрационного журнала представлена на рис.6.7.

Тип записи

  Дата

 Время

Терминал

Пользователь

Событие

Рис.6.7.  Типовая форма записи регистрационного журнала.

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

Следует отметить, что регистрационный журнал может быть также использован для решения следующих задач [6]:

1) настройка системы (по частоте обращений к различным ресурсам);

2) помощь пользователям в случае их непреднамеренных ошибок;

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

4) возврат системы в исходное состояние для восстановления;

5) психологическое воздействие на потенциальных нарушителей.

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

6.1.4. Реагирование на несанкционированные действия.                

      Реагирование на несанкционированные действия включает в себя:                   

        - сигнализацию о НСД;

- блокировку (отключение терминала, группы терминалов, элементов ИВС и т.п.);

  - задержку в работе;

  - отказ в запросе;

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

Реагирование на НСД может осуществляться как автоматически, так и с участием должностного лица, ответственного за информационную безопасность

6.2. Электронная цифровая подпись.

6.2.1. Проблема аутентификации данных и электронная цифровая подпись.

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

Целью аутентификации электронных документов является их
защита от возможных видов злоумышленных действий, к которым
относятся.

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

• маскарад-абонент С посылает документ абоненту В от имени
абонента А;

• ренегатство - абонент А заявляет, что не посылал сообщения
абоненту В, хотя на самом деле послал;

• подмена - абонент В изменяет или формирует новый документ и
заявляет, что получил его от абонента А;

• повтор - абонент С повторяет ранее переданный документ, кото-
рый абонент А посылал абоненту В.

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

При обработке документов в электронной форме совершенно
непригодны традиционные способы установления подлинности по
рукописной подписи и оттиску печати на бумажном документе.
Принципиально новым решением является электронная цифровая
подпись (ЭЦП).

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

• удостоверяет, что подписанный текст исходит от лица, поставив-
шего подпись;

• не дает самому этому лицу возможности отказаться от обяза-
тельств, связанных с подписанным текстом;

• гарантирует целостность подписанного текста.

Цифровая подпись представляет собой относительно небольшое количество дополнительной цифровой информации, передаваемой вместе с подписываемым текстом.

Система ЭЦП включает две процедуры: 1) процедуру постановки подписи; 2) процедуру проверки подписи. В процедуре постановки подписи используется секретный ключ отправителя сообщения, в процедуре проверки подписи-открытый ключ отправителя.

При формировании ЭЦП отправитель прежде всего вычисляет хэш-функцию h(М) подписываемого текста М. Вычисленное значение хэш-функции h(М) представляет собой один короткий блок информации m, характеризующий весь текст М в целом Затем число
m шифруется секретным ключом отправителя. Получаемая при этом пара чисел представляет собой ЭЦП для данного текста М. При проверке ЭЦП получатель сообщения снова вычисляет хэш-функцию m = h(M) принятого по каналу текста М, после чего при помощи открытого ключа отправителя проверяет, соответствует ли полученная подпись вычисленному значению m хэш-функции.

Принципиальным моментом в системе ЭЦП является невозможность подделки ЭЦП пользователя без знания его секретного ключа подписывания.

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

Каждая подпись содержит следующую информацию:

• дату подписи,

• срок окончания действия ключа данной подписи;

• информацию о лице, подписавшем файл (Ф.И.О.. должность, краткое наименование фирмы);

• идентификатор подписавшего (имя открытого ключа);

• собственно цифровую подпись.

6.2.2. Однонаправленные хэш-функции.

Хэш-функция предназначена для сжатия подписываемого до'
кумента М до нескольких десятков или сотен бит Хэш-функция
h(-)
принимает в качестве аргумента сообщение (документ) М произ-
вольной длины и возвращает хэш-значение
h(M) = H фиксирован-
ной длины. Обычно хэшированная информация является сжатым
двоичным представлением основного сообщения произвольной
длины. Следует отметить, что значение хэш-функции
h(М) слож-
ным образом зависит от документа М и не позволяет восстановить
сам документ М.

      Хэш-функция должна удовлетворять целому ряду условий:

• хэш-функция должна быть чувствительна к всевозможным изме-
нениям в тексте М, таким как вставки, выбросы, перестановки и
т.п.;

• хэш-функция должна обладать свойством необратимости, то есть
задача подбора документа М', который обладал бы требуемым
значением хэш-функции, должна быть вычислительно неразре-
шима;

• вероятность того, что значения хэш-функции двух различных до-
кументов (вне зависимости от их длин) совпадут, должна быть
ничтожно мала [9].

Большинство хэш-функции строится на основе однонаправ-
ленной функции
f(-), которая образует выходное значение длиной п
при задании двух входных значений длиной п. Этими входами яв-
ляются блок исходного текста
mi и хэш-значение Hi-1 предыдущего
блока текста (рис. 6.8):

Н, = f (Mi , Нi-1).

Хэш-значение, вычисляемое при вводе последнего блока тек-
ста, становится хэш-значением всего сообщения М.

Рис. 6.8. Построение однонаправленной хэш-функции

В результате однонаправленная хэш-функция всегда форми-
рует выход фиксированной длины п (независимо от длины входно-
го текста).

Однонаправленные хэш-функции на основе симметричных блочных  алгоритмов.

Однонаправленную хэш-функцию можно построить, используя
симметричный блочный алгоритм. Наиболее очевидный подход
состоит а тем, чтобы шифровать сообщение М посредством блоч-
ного алгоритма в режиме СВС или
CFB с помощью фиксированного
ключа и некоторого вектора инициализации IV. Последний блок
шифртекста можно рассматривать в качестве хэш-значения сообщения М При таком подходе не всегда возможно построить безо-
пасную однонаправленную хэш-функцию, но всегда можно полу-
чить код аутентификации сообщения
MAC (Message Authentication

Code).

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

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

Если принять, что получаемая хэш-функция корректна, безо-
пасность схемы хэширования базируется на безопасности лежаще-
го в ее основе блочного алгоритма Схема хэширования, у которой
длина хэш-значения равна длине блока, показана на рис. 6.9. Ее
работа описывается выражениями;

Н0 = IH ,
Н
i = ЕA(В) С,

где 1н - некоторое случайное начальное значение; А, В и С могут
принимать значения М
i Hi-1, (mi  Hi-1) или быть константами.

Рис. 6.9. Обобщенная схема формирования хэш-функции

Сообщение М разбивается на блоки М, принятой длины, кото-
рые обрабатываются поочередно.

Три различные переменные А, В и С могут принимать одно из
четырех возможных значений, поэтому в принципе можно получить
64 варианта общей схемы этого типа Из них 52 варианта являются
либо тривиально слабыми, либо небезопасными. Остальные 12
безопасных схем хэширования перечислены в табл. 6.2 [10].

                   Таблица 6.2

Схемы безопасного хэширования, у которых длина

хэш-значения равна длине блока

Номер схемы

Функция хэширования

1

Нi = Енi-1 i)  Мi ,

2

Hi = Ehi-1 (Mi  Hi-1) Mi  Нi-1 ,

3

Hi = Eнi-1 (Mi) Hi-1  Mi ,

4

Нi = Енi-1  i  Нi-1) Мi

5

Нi = Емi i-1)  Нi-1

6

Нi = Емi i  Нi-1i Нi-1

7

Нi = Емi i-1i  Нi-1

8

Hi = Eмi (Mi Hi-1) Hi-1

9

Нi = Емi нi-1i)  Мi

10

Нi = Емi нi-1i-1) Нi-1

11

Нi = Емi нi-1i) Нi-1

12

Нi = Емi нi-1 i-1)  Мi

Первые четыре схемы хэширования, являющиеся безопасны-
ми при всех атаках, приведены на рис. 6.10.

Рис. 6.10. Четыре схемы безопасного хэширования

Отечественный стандарт хэш-функции.

Российский стандарт ГОСТ Р34.11-94 определяет алгоритм и
процедуру вычисления хэш-функции для любых последовательно-
стей двоичных символов, применяемых в криптографических мето-
дах обработки и защиты информации Этот стандарт базируется на
блочном алгоритме шифрования ГОСТ 28147-89. хотя в принципе
можно было бы использовать и другой блочный алгоритм шифро-
вания с 64-битовым блоком и 256-битовым ключом.

Данная хэш-функция формирует 256-битовое хэш-значение. Функция сжатия Hi = f (Mi,Hi-1) (оба операнда mi и Hi-1 являются 256-битовыми величинами) определяется следующим образом:

      1. Генерируются 4 ключа шифрования Кj ,  j =1 4, путем линейного смешивания Мi , hi-1 и некоторых констант С;

2 Каждый ключ Кj используют для шифрования 64-битовых подслов hi слова Hi-1 в режиме простой замены:  Sj = Екj (hj) Результирующая последовательность S4, S3, S2, S1 длиной 256 бит запоминается во временной переменной S.

3 Значение Нi является сложной, хотя и линейной функцией смешивания S, mi и Hi-1.

При вычислении окончательного хэш-значения сообщения М учитываются значения трех связанных между собой переменных:

Нn- хэш-значение последнего блока сообщения,

Z-значение контрольной суммы, получаемой при сложении по модулю 2 всех блоков сообщения,

L-длина сообщения.

Эти три переменные и дополненный последний блок М' сооб-
щения объединяются в окончательное хэш-значение следующим
образом

Н = f(Z  М', f(L, f(M', Нn)))

Данная хэш-функция определена стандартом ГОСТ Р 3411-94
для использования совместно с российским стандартом электрон-
ной цифровой подписи [11,12].

6.2.3. Алгоритмы электронной цифровой подписи.

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

Для генерации пары ключей (секретного и открытого) в алго-
ритмах ЭЦП, как и в асимметричных системах шифрования, ис-
пользуются разные математические схемы, основанные на приме-
нении однонаправленных функций. Эти схемы разделяются на две
группы. В основе такого разделения лежат известные сложные вы-
числительные задачи:

• задача факторизации (разложения на множители) больших целых чисел,

• задача дискретного логарифмирования.

Алгоритм цифровой подписи RSA.

Первой и наиболее известной во всем мире конкретной сис-
темой ЭЦП стала система RSA, математическая схема которой
была разработана в 1977 г в Массачуссетском технологическом
институте США.

Сначала необходимо вычислить пару ключей (секретный ключ
и открытый ключ) Для этого отправитель (автор) электронных документов вычисляет два больших простых числа Р и
Q, затем находит их произведение

               N=P*Q
и значение функции

(N)=(P-1)(Q-1).

Далее отправитель вычисляет число Е из условий:

                Е  (N), НОД(Е, (N))=1
и число
D из условий

                  D<N, E*D1(mod (N))

Пара чисел (Е,N) является открытым ключом Эту пару чисел автор передает партнерам по переписке для проверки его цифровых подписей. Число D сохраняется автором как секретный ключ для подписывания

Обобщенная схема формирования и проверки цифровой подписи RSA показана на рис. 6.11

Допустим, что отправитель хочет подписать сообщение М перед его отправкой. Сначала сообщение М (блок информации, файл, таблица) сжимают с помощью хэш-функции h(-) в целое число m:

M = h(М)

Затем вычисляют цифровую подпись S под электронным документом М, используя хэш-значение m и секретный ключ D:

S = mD (mod N)

Пара (М, S) передается партнеру-получателю как электронный документ М, подписанный цифровой подписью S, причем подпись S сформирована обладателем секретного ключа D.

После приема пары (М, S) получатель вычисляет хэш-значение сообщений М двумя разными способами.  Прежде всего он

Рис. 6.11. Обобщенная схема цифровой подписи RSA

восстанавливает хэш-значение m’, применяя криптографическое преобразование подписи S с использованием открытого ключа Е:

m’ = S(mod N).

Кроме того, он находит результат хэширования принятого со-
общения М с помощью такой же хэш-функции
h(-):

                                                         m=h(M).

Если соблюдается равенство вычисленных значений, т.е.
                                                   
S (mod N) = h(M),

то получатель признает пару (М, S) подлинной. Доказано, что толь-
ко обладатель секретного ключа
D может сформировать цифро-
вую подпись S по документу М, а определить секретное число D
по открытому числу Е не легче, чем разложить модуль N на мно-
жители.

Кроме того, можно строго математически доказать, что" ре-
зультат проверки цифровой подписи S будет положительным толь-
ко в том случае, если при вычислении S был использован секрет-
ный ключ D, соответствующий открытому ключу
Е: Поэтому откры-
тый ключ Е иногда называют "идентификатором" подписавшего.

Недостатки алгоритма цифровой подписи RSA.

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

2. Для обеспечения криптостойкости цифровой подписи RSA.
по отношению к попыткам фальсификации на уровне, например,
национального стандарта США на шифрование информации (ал-
горитм
DES), т.е. 1018, необходимо использовать при вычислениях
N, D и Е целые числа не менее 2
512 (или около 10154) каждое, что
требует больших вычислительных затрат, превышающих на
20... 30% вычислительные затраты других алгоритмов цифровой
подписи при сохранении того же уровня криптостойкости.

3. Цифровая подпись RSA уязвима к так называемой мульти-
пликативной атаке. Иначе говоря, алгоритм цифровой подписи
RSA позволяет злоумышленнику без знания секретного ключа D
сформировать подписи под теми документами, у которых резуль-
тат хэширования можно вычислить как произведение результатов
хэширования уже подписанных документов.

Пример. Допустим, что злоумышленник может сконструировать три сообщения M1, M2 и М3, у которых хэш-значения

m1=h(Mi), m2=h(M2), m3=h(М3),

причем                                   m3 = m1 * m2 (mod N).
Допустим также, что для двух сообщений
Mi и М; получены законные подписи

S1 = m1D(mod N) и S2=m2D(mod N).

Тогда злоумышленник может легко вычислить подпись Sз для документа Мз, даже не зная секретного ключа D:

S3 = S1 * S2 (mod N).

Действительно,

S1 * S2 (mod N) = m1D * m2D (mod N) = (m1 m2)D (mod N) = m3D (mod N) = S3.

Более надежный и удобный для реализации на персональных
компьютерах алгоритм цифровой подписи был разработан в
1984г. американцем арабского происхождения Тахером Эль Гама-
лем. В 1991г. НИСТ США обосновал перед комиссией Конгресса
США выбор алгоритма цифровой подписи Эль Гамаля в качестве
основы для национального стандарта.

Алгоритм цифровой подписи Эль Гамаля (EGSA).

Название EGSA происходит от слов El Gamai Signature
Algorithm (алгоритм цифровой подписи Эль Гамаля). Идея EGSA
основана на том, что для обоснования практической невозможно-
сти фальсификации цифровой подписи может быть использована более сложная вычислительная задача, чем разложение на мно-
жители большого целого числа, - задача дискретного логарифми-
рования. Кроме того, Эль Гамалю удалось избежать явной слабо-
сти алгоритма цифровой подписи
RSA, связанной с возможностью
подделки цифровой подписи под некоторыми сообщениями без
определения секретного ключа.

Рассмотрим подробнее алгоритм цифровой подписи Эль Га-
маля Для того чтобы генерировать пару ключей (открытый ключ-
секретный ключ), сначала выбирают некоторое большое простое
целое число Р и большое целое число
G, причем G<P. Отправи-
тель и получатель подписанного документа используют при вы-
числениях одинаковые большие целые числа Р(~10
308 или ~21024) и
G(~10154 или ~2512), которые не являются секретными.

Отправитель выбирает случайное целое число Х, 1<Х<(Р-1), и
вычисляет

Y= Gх mod P.

Число Y является открытым ключом, используемым для про-
верки подписи отправителя. Число Y открыто передается всем по-
тенциальным получателям документов.

Число Х является секретным ключом отправителя для подпи-
сывания документов и должно храниться в секрете

Для того чтобы подписать сообщение М, сначала отправитель
хэширует его с помощью хэш-функции
h() в целое число m:

m=h(М), 1<m<(Р-1),

и генерирует случайное целое число К, 1<К<(Р-1), такое, что К
и (Р-1) являются взаимно простыми Затем отправитель вычисля-
ет целое число а.

a = GK mod Р

и, применяя расширенный алгоритм Евклида, вычисляет с помощью секретного ключа Х целое число b из уравнения

                                                     m=X*a + K*b (mod (P-1)).
Пара чисел (а,
b) образует цифровую подпись S:

S=(а, b),

проставляемую под документом М

Тройка чисел (М,а,b) передается получателю, в то время как
пара чисел (Х,К) держится в секрете.

После приема подписанного сообщения (М,а,b) получатель
должен проверить, соответствует ли подпись
S=(a,b) сообще-
нию М Для этого получатель сначала вычисляет по принятому
сообщению М число

m=h(M),

т. е. хэширует принятое сообщение М

Затем получатель вычисляет значение

A =Ya ab ( mod P)

и признает сообщение М подлинным, если, и только если
                       А = G
m (mod Р)

Иначе говоря, получатель проверяет справедливость соот-
ношения

Yaab (mod P) = Gm (mod P}.

Можно строго математически доказать, что последнее равен-
ство будет выполняться тогда, и только тогда, когда подпись
S=(a,b) под документом М получена с помощью именно того сек-
ретного ключа X, из которого был получен открытый ключ Y Таким
образом, можно надежно удостовериться, что отправителем сооб-
щения М был обладатель именно данного секретного ключа X, не
раскрывая при этом сам ключ, и что отправитель подписал именно
этот конкретный документ М

Следует отметить, что выполнение каждой подписи по методу
Эль Гамаля требует нового значения К, причем это значение дол-
жно выбираться случайным образом. Если нарушитель раскроет
когда-либо значение К, повторно используемое отправителем, то
он сможет раскрыть секретный ключ Х отправителя

Пример. Выберем, числа Р=11, G=2 и секретный ключ Х=8 Вычисляем
значение открытого ключа

Y= Gх mod P =Y= 28 mod 11=3

Предположим, что исходное сообщение М характеризуется хэш-значением
т=5

Для того чтобы вычислить цифровую подпись для сообщения М, имеющего
хэш-значение т= 5, сначала выберем случайное целое число К =9. Убедимся что
числа К и (Р-1) являются взаимно простыми Действительно,

НОД(9,10)=1,
Далее вычисляем элементы а и Ь подписи

а = GK mod Р = 29 mod11 = 6,
элемент Ь определяем, используя расширенный алгоритм Евклида:

                                 m=X*a + K*b (mod (P-1)).
При т=5, а=6, Х=8, К=9, Р=11 получаем

5= (б* 8+9 *b)(mod 10)
или                       9 * b   - 43( mod 10)

Решение: b=3 Цифровая подпись представляет собой пару а=6, b=3.
Далее отправитель передает подписанное сообщение Приняв подписанное
сообщение и открытый ключ
Y=3, получатель вычисляет хэш-значение для сооб-
щения М т=5. а затем вычисляет два числа

1) Yaab (mod Р) = З6б3 (mod 11) = 10 (mod 11),

2) Gm (mod P) = 2s (mod 11) = 10 (mod 11)

Так как эти два целых числа равны, принятое получателем сообщение признается подлинным.

Следует отметить, что схема Эль Гамаля является характер-
ным примером подхода, который допускает пересылку сообще-
ния М в открытой форме вместе с присоединенным аутентифика-
тором (а,
b). В таких случаях процедура установления подлинности
принятого сообщения состоит в проверке соответствия аутен-
тификатора сообщению.

Схема цифровой подписи Эль Гамаля имеет ряд преимуществ
по сравнению со схемой цифровой подписи
RSA:

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

2. При выборе модуля Р достаточно проверить, что это число
является простым и что у числа (Р-1) имеется большой простой
множитель (т.е. всего два достаточно просто проверяемых условия).

3. Процедура формирования подписи по схеме Эль Гамаля не
позволяет вычислять цифровые подписи под новыми сообщения-
ми без знания секретного ключа (как в RSA).

Однако алгоритм цифровой подписи Эль Гамаля имеет и не-
которые недостатки по сравнению со схемой подписи RSA. В
частности, длина цифровой подписи получается в 1,5 раза больше,
что, в свою очередь, увеличивает время ее вычисления.

Алгоритм цифровой подписи DSA.

Алгоритм цифровой подписи DSA (Digital Signature Algorithm)
предложен в 1991г. в НИСТ США для использования в стандарте
цифровой подписи
DSS (Digital Signature Standard). Алгоритм DSA
является развитием алгоритмов цифровой подписи Эль Гамаля и
К. Шнорра [10].

Отправитель и получатель электронного документа использу-
ют при вычислении большие целые числа:
G и Р - простые числа,
L бит каждое (512  L  1024); q - простое число длиной 160 бит (де-
литель числа (Р-1)). Числа
G, P, q являются открытыми и могут
быть общими для всех пользователей сети.

Отправитель выбирает случайное целое число X, 1<X<q. Чис-
ло Х является секретным ключом отправителя для формирования
электронной цифровой подписи.

Затем отправитель вычисляет значение

Y= Gх mod P.

Число Y является открытым ключом для проверки подписи отпра-
вителя. Число Y передается всем получателям документов.

Этот алгоритм также предусматривает использование одно-
сторонней функции хэширования
h(-). В стандарте DSS определен
алгоритм безопасного хэширования
SHA (Secure Hash Algontnm).

Для того чтобы подписать документ М, отправитель хэширует
-его в целое хэш-значение т:

m=h(M), 1<m<q,

затем генерирует случайное целое число K,  1<K<q, и вычисляет число г:

г = (GK mod Р) mod q.

Затем отправитель вычисляет с помощью секретного ключа Х це-
лое число
s:                                              

                                                                 m  +  r * X             

                                                      S =  mod q .

                                                                        K

Пара чисел г и s образует цифровую подпись

S = (г, s)

под документом М

Таким образом, подписанное сообщение представляет собой
тройку чисел [М, г, s].

Получатель подписанного сообщения [M,r,s] проверяет вы-
полнение условий

0<r<q, 0<s<q

и отвергает подпись, если хотя бы одно из этих условий не вы-
полнено.

Затем получатель вычисляет значение

  1

 W =    —   mod q,
s

хэш-значение

m = h(M)

и числа

U1 = ( m * w) mod q,
U2= ( r  * w) mod q.

Далее получатель с помощью открытого ключа Y вычисляет
значение

v =  (( GU1  YU2  )  mod P) mod q

и проверяет выполнение условия

v = г.

Если условие v = г выполняется, тогда подпись S = (r, s) под до-
кументом М признается получателем подлинной.

Можно строго математически доказать, что последнее равен-
ство будет выполняться тогда, и только тогда, когда подпись
S=
= (
r, s) под документом М получена с помощью именно того секретного ключа X, из которого был получен открытый ключ Y. Таким
образом, можно надежно удостовериться, что отправитель сооб-
щения владеет именно данным секретным ключом Х (не раскры-
вая при этом значения ключа X) и что отправитель подписал
именно данный документ М.

По сравнению с алгоритмом цифровой подписи Эль Гамаля
алгоритм
DSA имеет следующие основные преимущества:

1. При любом допустимом уровне стойкости, т.е. при любой
паре чисел
G и Р (от 512 до 1024 бит), числа q, X, г, s имеют длину
по 160 бит, сокращая длину подписи до 320 бит.

2. Большинство операций с числами К, г, s, Х при вычислении
подписи производится по модулю числа q длиной 160 бит, что со-
кращает время вычисления подписи.

  1.  При проверке подписи большинство операций с числами U1,
    U2, v, w также производится по модулю числа q длиной 160 бит, что
    сокращает объем памяти и время вычисления.

Недостатком алгоритма DSA является то, что при подписыва-
нии и при проверке подписи приходится выполнять сложные опе-
рации деления по модулю q:

                                            m + rX                                 1        

                                  S =   (mod q),      W = (mod q),

                     К                                     S

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

Следует отметить, что реальное исполнение алгоритма DSA
может быть ускорено с помощью выполнения предварительных
вычислений. Заметим, что значение г не зависит от сообще-
ния М и его хэш-значения т. Можно заранее создать строку слу-
чайных значений К и затем для каждого из этих значений вычис-
лить значения г. Можно также заранее вычислить обратные значе-
ния К~
1 для каждого из значений К. Затем, при поступлении сооб-
щения М, можно вычислить значение s для данных значений г и
К"
1. Эти предварительные вычисления значительно ускоряют ра-
боту алгоритма DSA

Отечественный стандарт цифровой подписи.

Отечественный стандарт цифровой подписи обозначается как
ГОСТ Р 34.10-94 [11]. Алгоритм цифровой подписи, определяемый
этим стандартом, концептуально близок к алгоритму DSA. В нем
используются следующие параметры:

р-большое простое число длиной от 509 до 512 бит либо от
1020 до 1024 бит;

q-простой сомножитель числа (p-1), имеющий длину
254...256бит.

а-любое число, меньшее (р-1). причем такое, что aq mod p=1;

х - некоторое число, меньшее q;

  у = ax mod p.

Кроме того, этот алгоритм использует однонаправленную хэш-
функцию Н(х). Стандарт ГOCTP34.11-94 определяет хэш-функцию,
основанную на использовании стандартного симметричного алго-
ритма ГОСТ 28147-89.

Первые три параметра p, q и а являются открытыми и могут
быть общими для всех пользователей сети. Число
х является сек-
ретным ключом. Число
у является открытым ключом.

Чтобы подписать некоторое сообщение m, а затем проверить
подпись, выполняются следующие шаги.

1. Пользователь А генерирует случайное число k, причем k<q.

2. Пользователь А вычисляет значения

г = (ak mod р) mod q,
s=(x* r + k (H (m))) mod q.

Если H(m) mod q=0, то значение H(m) mod q принимают равным единице. Если г=0, то выбирают другое значение k и начинают снова.

Цифровая подпись представляет собой два числа:

rmod2256 и smod2256.

Пользователь А отправляет эти числа пользователю В.

3. Пользователь В проверяет полученную подпись, вычисляя

v = Н(m) q-2 mod q,
z
1 = (s * v) mod q,
z
2 = ((q - r) * v) mod q,
u = ((a
Z1 * y Z2) mod р) mod q.

Если u = r, то подпись считается верной.

Различие между этим алгоритмом и алгоритмом DSA заклю-
чается в том, что в DSA

S = (k-1 (х*г + (Н(m)))) mod q,

что приводит к другому уравнению верификации.

Следует также отметить, что в отечественном стандарте ЭЦП параметр q имеет длину 256 бит. Западных криптографов вполне устраивает q длиной примерно 160 бит. Различие в значениях параметра q является отражением стремления разработчиков отечественного стандарта к получению более безопасной подписи.

Этот стандарт вступил в действие с начала 1995 г.

6.2.4. Цифровые подписи с дополнительными функциональными  свойствами.

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

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

К схемам цифровой подписи с дополнительными функцио-
нальными свойствами относятся.                           

• схемы слепой (blind) подписи,

• схемы неоспоримой (undeniable) подписи.                      

Схемы слепой подписи.

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

Основная идея этих схем заключается в следующем. Отпра-
витель А посылает порцию информации стороне В, которую В
подписывает и возвращает А. Используя полученную подпись,
сторона А может вычислить подпись стороны В на более важном
для себя сообщении
m. По завершении этого протокола сторона В
ничего не знает ни о сообщении
m, ни о подписи под этим сооб-
щением [14]

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

Приведем пример применения слепой подписи Схема слепой
подписи может найти применение в тех случаях, когда отправи-
тель А (клиент банка) не хочет, чтобы подписывающая сторона В
(банк) имела возможность в дальнейшем связать сообщение
m и
подпись
SB(m) с определенным шагом выполненного ранее про-
токола

В частности, это может быть важно при организации анонимных безналичных расчетов, когда сообщение m могло бы представлять денежную сумму, которую А хочет потратить Когда сообщение m с подписью SB(m) предъявляется банку В для оплаты банк В не может проследить, кто именно из клиентов предъявляет подписанный документ Это позволяет пользователю А остаться анонимным Принципы организации системы анонимных безналичных расчетов с использованием так называемой "электронной наличности" ("цифровых денег") на базе протоколов слепой подписи рассмотрены в [15,16].  Для построения протокола слепой подписи необходимы следующие компоненты [13,14].

1 Механизм обычной цифровой подписи для подписывающей стороны В Пусть SB(X) обозначает подпись стороны В на документе Х

2 Функции f() и q() (известные только отправителю) такие, что
                                               
q(SB(f(m)))=Sm(m),

где f()-маскирующая (blinding) функция; q(-)-демаскирующая (unblinding) функция; f(m)- замаскированное (blinded) сообщение m.

При выборе SB ,   f  и q существует ряд ограничений.
Выберем в качестве алгоритма подписи
sb для стороны В схему цифровой подписи RSA с открытым ключом (N,Е) и секретным ключом D, причем N=P*Q-произведение двух больших случайных простых чисел.

Пусть k - некоторое фиксированное целое число, взаимно про-
стое с
N, т. е. HOД(N, k) = 1

Маскирующая функция f : Zn   Zn определяется как f(m)=mkE mod N, а демаскирующая функция q: Zn  Zn  - как q(m) = k-1 m mod N. При таком выборе f, q и s получаем

q(SB(f(m))) = q(SB (mkE mod N)) = q(mDk mod N) = mD mod N = SB (m),

что соответствует требованию 2

Согласно протоколу слепой подписи, который предложил Д. Чом [10], отправитель А сначала получает подпись стороны В на замаскированном сообщении m' Используя эту подпись, сторона А вычисляет подпись В на заранее выбранном сообщении m, где 0  m  N –1.   При этом, стороне В ничего неизвестно ни о значении m, ни о подписи, связанной с m.

Пусть сторона В имеет для подписи по схеме RSA открытый ключ (N,E) и секретный ключ D. Пусть k-случайное секретное целое число, выбранное стороной А и удовлетворяющее условиям 0<k<N-1 и НОД(N,k).

Протокол слепой подписи Д. Чома включает следующие шаги.

1 Отправитель А вычисляет замаскированное сообщение
m
= mkE mod N и посылает его стороне В

2. Подписывающая сторона В вычисляет подпись s= (m )D mod N и отправляет эту подпись стороне А

3 Сторона А вычисляет подпись s = k-1 s mod N, которая является подписью В на сообщении m.

Нетрудно видеть, что

(m)D  (mkE)D  mDk (mod N),
поэтому

                               k-1 s mDkk-1  mD (mod N).               

Д. Чом разработал несколько алгоритмов слепой подписи для
создания системы анонимных безналичных электронных расчетов
eCash [14,15]

Схемы неоспоримой подписи.

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

Рассмотрим два возможных сценария применения неоспори-
мой подписи [13,17].

Сценарий 1. Сторона А (клиент) хочет получить доступ в за-
щищенную зону, контролируемую стороной В (банком). Этой за-
щищенной зоной может быть, например, депозитарий (хранилище
ценностей клиентов). Сторона В требует от А поставить до пре-
доставления клиенту доступа на заявке о допуске в защищенную
зону подпись, время и дату. Если А применит неоспоримую под-
пись, тогда сторона В не сможет впоследствии доказать кому-ли-
бо, что А получил допуск без непосредственного участия А в про-
цессе верификации подписи.

Сценарий 2. Предположим, что известная корпорация А раз-
работала пакет программного обеспечения Чтобы гарантировать
подлинность пакета и отсутствие в нем вирусов, сторона А подпи-
сывает этот пакет неоспоримой подписью и продает его стороне В.
Сторона В решает сделать копии этого пакета программного обес-
печения и перепродать его третьей стороне С. При использовании
стороной А неоспоримой подписи сторона С не сможет убедиться
в подлинности этого пакета программного обеспечения и отсутст-
вии в нем вирусов без участия стороны А.

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

Рассмотрим алгоритм неоспоримой цифровой подписи, раз-
работанный Д. Чомом [17]. Сначала опишем алгоритм генерации
ключей, с помощью которого каждая сторона А, подписывающая
документ, выбирает секретный ключ и соответствующий открытый
ключ.

Каждая сторона А должна выполнить следующее

1. Выбрать случайное простое число p=2q+1. где q-также
простое число

2. Выбрать генераторное число а для подгруппы порядка q в
циклической группе
Zp:

2.1. Выбрать случайный элемент Zp и вычислить =(p-1)/q mod p.

2.2. Если =1, тогда возвратиться к шагу 2.1.

3. Выбрать случайное целое x  {1,2,...,q-1} и вычислить у== xmod p.

4. Для стороны А открытый ключ равен (р,,у), секретный ключ равен х.

Согласно алгоритму неоспоримой подписи Д. Чома, сторона А подписывает сообщение m, принадлежащее подгруппе порядка q в Zp. Любая сторона В может проверить эту подпись при участии А.

В работе алгоритма неоспоримой подписи можно выделить два этапа:

• генерация подписи;

• верификация подписи.

На этапе генерации подписи сторона А вычисляет s=mxmodp, где s-подпись стороны А на сообщении т. Сообщение т с подписью s отсылается стороне В.

Этап верификации подписи выполняется стороной В с участием стороны А и включает следующие шаги:

1. В получает подлинный открытый ключ (р, ,у) стороны А.

2. В выбирает два случайных секретных целых числа а,
b {1,2,...,q-1}.

3. В вычисляет z = sa yb mod p и отправляет значение z стороне А.

4. А вычисляет w = (z) 1/x mod p, где xx -1  1(mod q), и отправляет значение w стороне В.

5. В вычисляет w = ma b mod p и признает подпись s подлинной, если и только если w = w'.

Убедимся, что проверка подписи s работает:

w (z)1/x (sa уb) 1/x  (mxa xb )1/x  ma b  w' mod p.

Можно показать, что с высокой степенью вероятности зло-
умышленник не сможет заставить В принять фальшивую подпись.
    Предположим, что s представляет собой подделку подписи стороны А на сообщении
m, т.е. s  mx mod р. Тогда вероятность принятия стороной этой подписи в данном алгоритме составляет только 1/q, причем эта вероятность не зависит от вычислительных ресурсов злоумышленника.

Подписавшая сторона А при некоторых обстоятельствах мог-
ла бы попытаться отказаться от своей подлинной подписи одним
из трех способов:

(а) отказаться от участия в протоколе верификации;

(б) некорректно выполнить протокол верификации;

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

Отречение от подписи способом (а) рассматривалось бы как
очевидная попытка неправомерного отказа. Против способов (б) и
(в) бороться труднее, здесь требуется специальный протокол де-
завуирования. Этот протокол определяет, пытается ли подписав-
шая сторона А дезавуировать правильную подпись
s или эта под-
пись является фальшивой. В этом протоколе по существу дважды
применяется протокол верификации и затем производится провер-
ка с целью убедиться, что со сторона А выполняет этот протокол
корректно [13,17].

Протокол дезавуирования для схемы неоспоримой подписи
Д. Чома включает следующие шаги'

1. В принимает от стороны А сообщение m с подписью s и
получает подлинный открытый ключ (р,
,у) стороны А.

2. В выбирает случайные секретные целые числа a, b  {1,2,...,q-1}, вычисляет z = sa yb mod p и отправляет значение z стороне А.

3. А вычисляет w = z1/x mod p, где xx-1  1(mod q), и отправляет
значение
w стороне В.

4. Если w = ma b mod р, тогда В признает подпись s подлинной
и выполнение протокола прекращается.

5. В выбирает случайные секретные целые числа а, b  {1,2. ...,q-1}, вычисляет z= sa уb mod p и отправляет значение z стороне А

6. А вычисляет w = (z)1/x mod p и отправляет значение w стороне В.

7. Если w= ma b mod р, тогда В принимает подпись s и выполнение протокола останавливается.

8. В вычисляет c = (w-b)a mod p,  c' = (w'-b)a mod p. Если с = с, тогда В заключает, что подпись s фальшивая; в противном случае В делает вывод, что подпись s подлинная, а сторона А пытается дезавуировать подпись s.

Нетрудно убедиться в том, что этот протокол достигает поставленной цели. Пусть m-сообщение и предположим, что s-подпись стороны А под сообщением m Если подпись s фальшивая, т.е. s  mx mod р, и если стороны А и В следуют протоколу должным образом, тогда w = w (и поэтому справедливо заключение В, что подпись s фальшивая) Пусть s на самом деле является подписью стороны А под сообщением m, т.е s = mx mod p. Предположим, что В точно следует протоколу, а А не следует. Тогда вероятность того, что w = w (и А преуспевает в дезавуировании подписи), составляет только 1/q.

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

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

Разработан также алгоритм для обратимой неоспоримой подписи [18], которая может быть верифицирована, дезавуирована, а также преобразована в обычную цифровую подпись. Этот алгоритм основан на использовании алгоритма цифровой подписи Эль Гамаля.

Упражнение к лекции 6.

1. Перечислите пояса защиты доступа в ИВС. Какие методы и средства защиты в них используются?

2. Предложите характеристики, которые можно использовать для установления подлинности.

3. Предложите методы пародирования, которые обеспечивают надежное установление подлинности.

4. Определите, на сколько должны измениться величины V, Т, N и Р, чтобы величина S в формуле (1) увеличилась в 2 раза.

5. Модифицируйте формулу (5) для случая, когда система установления подлинности разрешает только К попыток ввода пароля.

6. Предложите конкретные виды преобразования для реализации схемы "рукопожатия".

7. Сравните метод матричного доступа с остальными. В чем заключаются его преимущества и недостатки?

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

9. Приведите примеры, когда необходима мандатная организация доступа для вызываемых процедур.

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

11. Назовите состав информации, содержащейся в электронной цифровой подписи.

12. Сформулируйте назначение хэш-функции.

13. Приведите схемы безопасного хэширования.

14. Сформировать для отправки и проверить при получении цифровую подпись по алгоритму RSA при исходных данных P = 113,  Q = 257  для хэш-функции по схеме 4 таблицы 6.1. и  сообщении размером М = 1 стандартный лист текста (1024 байта).   

15. Сформировать для отправки и проверить при получении цифровую подпись по алгоритму EGSA при исходных данных: P = 17,  G = 6, секретный ключ Х = 14  для хэш-функции по схеме 2 таблицы 6.1. и  сообщении размером М = 1 стандартный лист текста (1024 байта).   

16. Назовите основные преимущества алгоритма DSA цифровой подписи по сравнению с алгоритмом Эль Гамаля.

17. В чем особенность схемы слепой подписи?

18. В чем особенность схемы неоспоримой подписи?

Литература

1. Давыдовский А.И., Дорошкевич П-В. Защита информации в вычислительных сетях// Зарубежная радиоэлектроника, 14H4.N12.- С. 60-70.

2. Кляйн Д. Как защититься от "взломщика". Обзор методов парольной защиты и набор рекомендаций по ее улучшению// Программирование, 1991.- N3.- С. 59-63.

3. Мартин Дж- Вычислительные сети и распределенная обработка данных.- М-: Финансы и статистика, 1986.- 269 с.

4- Моисеенков И.И. Суета вокруг Роберта или Моррис-сын и все все, все...// Компьютер-Пресс, 1991.- N8.- С-45-62; N9.C. 7-20.

5. Протоколы информационно-вычислигельных сетей. Справочник/ Под ред. И.А.Мизина, А.П.Кулешова.- М.: Радио и связь, 1990.- 504 с.

6. Хоффман Л.Дж. Современные методы защиты информации-- М-: Советское радио, 1980.- 264 с.

7. Denning D.E. Cryptography and Data Security- Addison W-esley Publishing Company, 1982-- 400 p.

8. Frosini G., Lazzerini B. Ring-protection mechanisms: general properties and significant implemenations// IEE Proc. C-omputers & Digital Techniques, July 1985.- v- 132, N4.- P. 203-210.

9. SeberryJ., PieprzykJ. Cryptography. An Introduction to Computer Security. Advances in Computer Science Series.-Prentice Hall of Australia Pty Ltd., 1989.-375 p.

      10. SchneierB. Applied Cryptography.-John Wiley & Sons, Inc., 1996.-758 p.

      11. ГОСТ Р 34.10-94. Информационная технология. Криптографическая защита информации. Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма.                                

      12. ГОСТ Р 34.11-94. Информационная технология. Криптографическая защита информации. Функция хэширования.

      13. Menezes A.J., van Oorschot P.C., Vanstone S.A. Handbook of Applied Cryptography. CRC Press, 1999.-816 p.

      14. ChaumD. Blind Signature Systems // U.S.Patent # 4.759063, 19

Jul1998.

      15. Лебедев А. Платежные карточки. Новые возможности, проблемы

и тенденции // Банки и технологии.-1997.-№6.-С. 36-41.

      16. Отставнов М.Е. Электронная наличность в сетях Internet // Банковские технологии. -1996. -Февраль-март.-С. 46-50.

      17. ChaumD., van Antwerpen H. Undeniable Signatures // Advances in Cryptology-CRYPTO'89 Proceedings. - Springer-Verlag. - 1990.-P. 212-216.

18. BoyarJ., Chaum D., Damgard I. Convertible Undeniable Signature //

Advances in Cryptology - CRYPTO'90 Proceedings. Springer-Verlag.-1991.-P.189205.




1. i igi i ii1 i1 элемент памятиблок умножения
2. участниками. Преемница в политическом организационном и юридическом отношениях Организации европейского э
3. Семья в иудаизме
4. Тема12- Страховой рынок Вопросы- Экономическое содержание особенности функции страхования Страхо
5. Коэволюция человека и окружающей сред
6. Threding СОДЕРЖАНИЕ Вступление.html
7. _____ _______________ 200_ г
8. темах с образованием неустойчивых кристаллогидратов
9. Происхождение славян
10. реферату- Фактори що сприяють забрудненню біосфери України
11. аграрное капиталистическое государство
12. тематика ИЗО папка Блокнот для записи домашнего
13. Економіка і підприємництво
14. тематика I семестр Исследовать на сходимость ряд.html
15. Гістарычнае вымярэнне навукі дзяржаўнага кіравання
16. Терминологическое различие базовых категорий финансовой науки
17. Тема 1 Основные понятия концепции маркетинга Термин маркети
18. Тема 1 Предмет и система экологического права 4 ч
19. 1количество брачных партнёров амоногамиясоюз между 1 мужч
20. Социологическое общество