Методичка МОИБ.. Методические разработки к лабораторным работам по дисциплине средства обеспечения информационной безопасности в сетях передачи данных для студентов специальностей 200900, 201000, 201800
Скачать 0.98 Mb.
|
Л |
Номер пользователя | Информация для идентификации | Информация для аутентификации |
1 | ID1 | E1 |
2 | ID2 | E2 |
... | ... | ... |
N | IDn | En |
Здесь Ei = F (IDi, Ki),
где F - функция, которая обладает свойством “невосстановимости” значения Ki по Ei и IDi. “Невосстановимость” Ki оценивается некоторой пороговой трудоемкостью Т решения задачи восстановления аутентифицирующей информации Ki по Еi и IDi. Кроме того, для пары Ki и Kj возможно совпадение соответствующих значений Е. В связи с этим вероятность ложной аутентификации пользователя не должна быть больше некоторого порогового значения Р. На практике задают Т = 1020 ... 1030, Р = 10-7 ... 10-9 .
Протокол идентификации и аутентификации (для схемы 1).
Пользователь предъявляет свой идентификатор ID.
Если ID не совпадает ни с одним IDi , зарегистрированным в компьютерной системе, то идентификация отвергается - пользователь не допускается к работе, иначе (существует IDi = ID) устанавливается, что пользователь, назвавшийся пользователем i, прошел идентификацию.
Субъект аутентификации запрашивает у пользователя его аутентификатор К.
Субъект аутентификации вычисляет значение
Y
94
= F (IDi, K).
Субъект аутентификации производит сравнение значений Y и Ei. При совпадении этих значений устанавливается, что данный пользователь успешно аутентифицирован в системе. Информация об этом пользователе передается в программные модули, использующие ключи пользователей (т.е. в систему шифрования, разграничения доступа и т. д.). В противном случае аутентификация отвергается - пользователь не допускается к работе.
Данная схема идентификации и аутентификации пользователя может быть модифицирована. Модифицированная схема 2 обладает лучшими характеристиками по сравнению со схемой 1.
Схема 2. В компьютерной системе выделяется модифицированный объект-эталон, структура которого показана в таблице 5.2.
Таблица 5.2-Структура объекта-эталона для схемы 2
Номер пользователя | Информация для идентификации | Информация для аутентификации |
1 | ID1, S1 | E1 |
2 | ID2, S2. | E2 |
... | ... | ... |
N | IDn, Sn | En |
В отличие от схемы 1, в схеме 2 значение
Ei = F (Si, Ki),
где Si - случайный вектор, задаваемый при создании идентификатора пользователя, т.е. при создании строки, необходимой для идентификации и аутентификации пользователя;
F - функция, которая обладает свойством “невосстановимости” значения Ki по Ei и Si.
95
Протокол идентификации и аутентификации (для схемы 2).
Пользователь предъявляет свой идентификатор ID.
Если ID не совпадает ни с одним IDi, зарегистрированным в компьютерной системе, то идентификация отвергается - пользователь не допускается к работе, иначе (существует IDi = ID) устанавливается, что пользователь, называвшийся пользователем i, прошел идентификацию.
По идентификатору IDi выделяется вектор Si.
Субъект аутентификации запрашивает у пользователя аутентификатор К.
Субъект аутентификации вычисляет значение
Y = F (Si, К).
Субъект аутентификации производит сравнение значений Y и Еi. При совпадении этих значений устанавливается, что данный пользователь успешно аутентифицирован в системе. В противном случае аутентификация отвергается - пользователь не допускается к работе.
Вторая схема аутентификации применяется в ОС UNIX. В качестве идентификатора ID используется имя пользователя (запрошенное по Loqin), в качестве аутентификатора Ki - пароль пользователя (запрошенный по Password), функция F представляет собой алгоритм шифрования DES. Эталоны для идентификации и аутентификации содержатся в файле Etc/passwd.
Следует отметить, что необходимым требованием устойчивости схем аутентификации к восстановлению информации Кi является случайный равновероятный выбор Кi из множества возможных значений.
С
96
истемы парольной аутентификации имеют пониженную стойкость, поскольку в них выбор аутентифицирующей информации происходит из относительно небольшого множества осмысленных слов. Мощность этого множества определяется энтропией соответствующего языка.
9.2.2. Особенности применения пароля для
аутентификации пользователя.
Традиционно каждый законный пользователь компьютерной системы получает идентификатор и/или пароль. В начале сеанса работы пользователь предъявляет свой идентификатор системе, которая затем запрашивает у пользователя пароль.
Простейший метод подтверждения подлинности с использованием пароля основан на сравнении представляемого пользователем пароля PA с исходным значением PA' , хранящимся в компьютерном центре (рис. 5.1). Поскольку пароль должен храниться в тайне, он должен шифроваться перед пересылкой по незащищенному каналу. Если значения PA и PA' совпадают, то пароль PA считается подлинным, а пользователь - законным .
Рисунок 5.1- Схема простой аутентификации с помощью пароля
97
Если кто-нибудь, не имеющий полномочий для входа в систему, узнает каким-либо образом пароль и идентификационный номер законного пользователя, он получает доступ в систему.
Иногда получатель не должен раскрывать исходную открытую форму пароля. В этом случае отправитель должен пересылать вместо открытой формы пароля отображение пароля, получаемое с использованием односторонней функции () пароля. Это преобразование должно гарантировать невозможность раскрытия противником пароля по его отображению, так как противник наталкивается на неразрешимую числовую задачу.
Например, функция () может быть определена следующим образом:
(Р) = EР (ID),
где Р - пароль отправителя,
ID - идентификатор отправителя,
EР - процедура шифрования, выполняемая с использованием пароля Р в качестве ключа.
Такие функции особенно удобны, если длина пароля и ключа одинаковы. В этом случае подтверждение подлинности с помощью пароля состоит из пересылки получателю отображения (Р) и сравнения его с предварительно вычисленным и хранимым эквивалентом ' (Р).
На практике пароли состоят только из нескольких букв, чтобы дать возможность пользователям запомнить их. Короткие пароли уязвимы к атаке полного перебора всех вариантов. Для того, чтобы предотвратить такую атаку, функцию (Р) определяют иначе, а именно:
(Р) = E Р К (ID),
г
98
де K и ID - соответственно ключ и идентификатор отправителя.
Очевидно, значение (Р) вычисляется заранее и хранится в виде ' (Р) в идентификационной таблице у получателя (рис. 5.2). Подтверждение подлинности состоит из сравнения двух отображений пароля (РА) и ' (РА) и признания пароля РА , если эти отображения равны. Конечно, любой, кто получит доступ к идентификационной таблице, может незаконно изменить ее содержимое, не опасаясь, что эти действия будут обнаружены.
Рисунок 5.2- Аутентификация с помощью пароля с использованием идентификационной таблицы.
9.2.3. Биометрическая идентификация и
аутентификация пользователя.
П
99
роцедуры идентификации и аутентификации пользователя могут базироваться не только на секретной информации которой обладает пользователь (пароль, секретный ключ, персональный идентификатор и т.п.).
В последнее время все большее распространение получает биометрическая идентификация и аутентификация пользователя, позволяющая уверенно идентифицировать потенциального пользователя путем измерения физиологических параметров и характеристик человека, особенностей его поведения.
Отметим основные достоинства биометрических методов идентификации и аутентификации пользователя по сравнению с традиционными:
высокая степень достоверности идентификации по биометрическим признакам из-за их уникальности;
неотделимость биометрических признаков от дееспособной личности;
трудность фальсификации биометрических признаков.
В качестве биометрических признаков, которые могут быть использованы при идентификации потенциального пользователя, можно выделить следующие:
узор радужной оболочки и сетчатки глаз;
отпечатки пальцев;
геометрическая форма руки;
форма и размеры лица;
особенности голоса;
биомеханические характеристики рукописной подписи;
биомеханические характеристики “клавиатурного почерка”.
П
100
ри регистрации пользователь должен продемонстрировать один или несколько раз свои характерные биометрические признаки. Эти признаки (известные как подлинные) регистрируются системой как контрольный “образ” законного пользователя. Этот образ пользователя хранится в электронной форме и используется для проверки идентичности каждого, кто выдает себя за соответствующего законного пользователя. В зависимости от совпадения или несовпадения совокупности предъявленных признаков с зарегистрированными в контрольном образе их предъявивший признается законным пользователем (при совпадении) или нет (при несовпадении).
Системы идентификации по узору радужной оболочки и сетчатки глаз могут быть разделены на два класса:
использующие рисунок радужной оболочки глаза;
использующие рисунок кровеносных сосудов сетчатки глаза.
Поскольку вероятность повторения данных параметров равна 10-78, такие системы являются наиболее надежными среди всех биометрических систем. Такие средства идентификации применяются там, где требуется высокий уровень безопасности (например, в США в зонах военных и оборонных объектов).
Системы идентификации по отпечаткам пальцев являются самыми распространенными. Одной из основных причин широкого распространения таких систем является наличие больших банков данных по отпечаткам пальцев. Основными пользователями подобных систем во всем мире являются полиция, различные государственные и некоторые банковские организации.
Системы идентификации по геометрической форме руки используют сканеры формы руки, обычно устанавливаемые на стенах. Следует отметить, что подавляющее большинство пользователей предпочитают системы именно этого типа, а не описанные выше.
С
101
истемы идентификации по лицу и голосу являются наиболее доступными из-за их дешевизны, поскольку большинство современных компьютеров имеют видео- и аудиосредства. Системы данного класса широко применяются при удаленной идентификации субъекта доступа в телекоммуникационных сетях.
Системы идентификации личностей по динамике рукописной подписи учитывают интенсивность каждого усилия подписывающего, частотные характеристики написания каждого элемента подписи и начертание подписи в целом.
Системы идентификации по биомеханическим характеристикам “клавиатурного почерка” основываются на том, что моменты нажатия и отпускания клавиш при наборе текста на клавиатуре существенно отличаются у различных пользователей. Этот динамический ритм набора (“клавиатурный почерк”) позволяет построить достаточно надежные средства идентификации. В случае обнаружения изменения клавиатурного почерка пользователя ему автоматически запрещается работа на ЭВМ.
Следует отметить, что применение биометрических параметров при идентификации субъектов доступа автоматизированных систем пока не получило надлежащего нормативно-правового обеспечения, в частности, в виде стандартов. Поэтому применение систем биометрической идентификации допускается только в автоматизированных системах, обрабатывающих и хранящих персональные данные, составляющие коммерческую и служебную тайну .
9.3. Взаимная проверка подлинности пользователей
Обычно стороны, вступающие в информационный обмен, нуждаются во взаимной проверке подлинности (аутентификации) друг друга. Этот процесс взаимной аутентификации выполняют в начале сеанса связи.
Д
102
ля проверки подлинности применяют следующие способы:
механизм запроса-ответа;
механизм отметки времени ("временной штемпель").
Механизм запроса-ответа состоит в следующем. Если пользователь А хочет быть уверенным, что сообщения, получаемые им от пользователя В, не являются ложными, он включает в посылаемое для В сообщение непредсказуемый элемент – запрос X (например, некоторое случайное число). При ответе пользователь В должен выполнить над этим элементом некоторую операцию (например, вычислить некоторую функцию f (X)). Это невозможно осуществить заранее, так как пользователю В неизвестно, какое случайное число X придет в запросе. Получив ответ с результатом действий В, пользователь А может быть уверен, что В – подлинный. Недостаток этого метода – возможность установления закономерности между запросом и ответом.
Механизм отметки времени подразумевает регистрацию времени для каждого сообщения. В этом случае каждый пользователь сети может определить, насколько "устарело" пришедшее сообщение, и решить не принимать его, поскольку оно может быть ложным.
В обоих случаях для защиты механизма контроля следует применять шифрование, чтобы быть уверенным, что ответ послан не злоумышленником.
При использовании отметок времени возникает проблема допустимого временного интервала задержки для подтверждения подлинности сеанса. Ведь сообщение с "временным штемпелем" в принципе не может быть передано мгновенно. Кроме того, компьютерные часы получателя и отправителя не могут быть абсолютно синхронизированы. Какое запаздывание "штемпеля" является подозрительным?
Д
103
ля взаимной проверки подлинности обычно используют процедуру "рукопожатия". Эта процедура базируется на указанных выше механизмах контроля и заключается во взаимной проверке ключей, используемых сторонами. Иначе говоря, стороны признают друг друга законными партнерами, если докажут друг другу, что обладают правильными ключами. Процедуру рукопожатия обычно применяют в компьютерных сетях при организации сеанса связи между пользователями, пользователем и хост-компьютером, между хост-компьютерами и т.д.
Рассмотрим в качестве примера процедуру рукопожатия для двух пользователей А и В. (Это допущение не влияет на общность рассмотрения. Такая же процедура используется, когда вступающие в связь стороны не являются пользователями). Пусть применяется симметричная криптосистема. Пользователи А и В разделяют один и тот же секретный ключ КАВ. Вся процедура показана на рис. 5.3.
Р
104
исунок 5.3.Схема процедуры рукопожатия (пользователь А проверяет подлинность пользователя В)
Пусть пользовательА инициирует процедуру рукопожатия, отправляя пользователюВ свой идентификатор IDА в открытой форме.
ПользовательВ, получив идентификатор IDА, находит в базе данных секретный ключ КАВ и вводит его в свою криптосистему.
Тем временем пользователь А генерирует случайную последовательность S с помощью псевдослучайного генератора PG и отправляет ее пользователю В в виде криптограммы
(S).
ПользовательB расшифровывает эту криптограмму и раскрывает исходный вид последовательности S.
Затем оба пользователя А и В преобразуют последователь-ность S, используя открытую одностороннюю функцию (·).
ПользовательB шифрует сообщение (S) и отправляет эту криптограмму пользователю А.
Наконец, пользовательA расшифровывает эту криптограмму и сравнивает полученное сообщение ´(S) с исходным (S). Если эти сообщения равны, пользователь А признает подлинность пользователя В.
Очевидно, пользовательB проверяет подлинность пользователяA таким же способом. Обе эти процедуры образуют процедуру рукопожатия, которая обычно выполняется в самом начале любого сеанса связи между любыми двумя сторонами в компьютерных сетях.
Достоинством модели рукопожатия является то, что ни один из участников сеанса связи не получает никакой секретной информации во время процедуры подтверждения подлинности.
И
105
ногда пользователи хотят иметь непрерывную проверку подлинности отправителей в течение всего сеанса связи. Один из простейших способов непрерывной проверки подлинности показан на рис. 5.4 . Передаваемая криптограмма имеет вид
ЕК (IDА, M),
где IDА – идентификатор отправителя А; М – сообщение.
ПолучательB, принявший эту криптограмму, расшифровывает ее и раскрывает пару (IDА, M). Если принятый идентификатор IDА совпадает с хранимым значением IDА´, получатель В признает эту криптограмму.
Рисунок 5.4- Схема непрерывной проверки подлинности отправителя
Другой вариант непрерывной проверки подлинности использует вместо идентификатора отправителя его секретный пароль. Заранее подготовленные пароли известны обеим сторонам. Пусть РА и РВ – пароли пользователей А и В соответственно. Тогда пользователь А создает криптограмму
С = ЕК (РА, М).
П
106
олучатель криптограммы расшифровывает ее и сравнивает пароль, извлеченный из этой криптограммы, с исходным значением. Если они равны, получатель признает эту криптограмму.
Процедура рукопожатия была рассмотрена в предположении, что пользователи А и В уже имеют общий секретный сеансовый ключ. Реальные процедуры предназначены для распределения ключей между подлинными партнерами и включает как этап распределения ключей, так и этап собственно подтверждения подлинности партнеров по информационному обмену.
9.4. Протоколы идентификации с нулевой
передачей знаний
Широкое распространение интеллектуальных карт (смарт-карт) для разнообразных коммерческих, гражданских и военных применений (кредитные карты, карты социального страхования, карты доступа в охраняемое помещение, компьютерные пароли и ключи, и т.п.) потребовало обеспечения безопасной идентификации таких карт и их владельцев. Во многих приложениях главная проблема заключается в том, чтобы при предъявлении интеллектуальной карты оперативно обнаружить обман и отказать обманщику в допуске, ответе или обслуживании.
Для безопасного использования интеллектуальных карт разработаны протоколы идентификации с нулевой передачей знаний. Секретный ключ владельца карты становится неотъемлемым признаком его личности. Доказательство знания этого секретного ключа с нулевой передачей этого знания служит доказательством подлинности личности владельца карты.
107
9.4.1. Упрощенная схема идентификации с нулевой передачей знаний
Схему идентификации с нулевой передачей знаний предложили в 1986 г. У.Фейге, А.Фиат и А.Шамир. Она является наиболее известным доказательством идентичности с нулевой передачей конфиденциальной информации.
Рассмотрим сначала упрощенный вариант схемы идентификации с нулевой передачей знаний для более четкого выявления ее основной концепции. Прежде всего выбирают случайное значение модуля n, который является произведением двух больших простых чисел. Модуль n должен иметь длину 512…1024 бит. Это значение n может быть представлено группе пользователей, которым придется доказывать свою подлинность. В процессе идентификации участвуют две стороны:
сторона А, доказывающая свою подлинность,
сторона В, проверяющая представляемое стороной А доказательство.
Для того чтобы сгенерировать открытый и секретный ключи для стороны А, доверенный арбитр (Центр) выбирает некоторое число V, которое является квадратичным вычетом по модулю n. Иначе говоря, выбирается такое число V, что сравнение
x2 V (mod n)
имеет решение и существует целое число
V –1 mod n.
Выбранное значение V является открытым ключом для А. Затем вычисляют наименьшее значение S, для которого
S sqrt (V –1) (mod n).
Это значение S является секретным ключом для А.
Т
108
еперь можно приступить к выполнению протокола идентификации.
1. Сторона А выбирает некоторое случайное число r, r < n. Затем она вычисляет
x = r 2 mod n
и отправляет x стороне В.
2. Сторона В посылает А случайный бит b.
3. Если b=0, тогда А отправляет r стороне В. Если b=1, то А отправляет стороне В
y = r S mod n.
4. Если b = 0, сторона В проверяет, что
x = r2 mod n,
чтобы убедиться, что А знает sqrt (x). Если b=1, сторона В проверяет, что
x = y2 V mod n,
чтобы быть уверенной, что А знает sqrt (V –1).
Эти шаги образуют один цикл протокола, называемый аккредитацией. Стороны А и В повторяют этот цикл t раз при разных случайных значениях r и b до тех пор, пока В не убедится, что А знает значение S.
Если сторона А не знает значения S, она может выбрать такое значение r, которое позволит ей обмануть сторону В, если В отправит ей b=0, либо А может выбрать такое r, которое позволит обмануть В, если В отправит ей b=1. Но этого невозможно сделать в обоих случаях. Вероятность того, что А обманет В в одном цикле, составляет 1/2. Вероятность обмануть В в t циклах равна (1/2)t.
Для того чтобы этот протокол работал, сторона А никогда не должна повторно использовать значение r. Если А поступила бы таким образом, а сторона В отправила бы стороне А на шаге 2 другой случайный бит b, то В имела бы оба ответа А. После этого В может вычислить значение S, и для А все закончено.
109
9.4.2. Параллельная схема идентификации с нулевой передачей знаний
Параллельная схема идентификации позволяет увеличить число аккредитаций, выполняемых за один цикл, и тем самым уменьшить длительность процесса идентификации.
Как и в предыдущем случае, сначала генерируется число n как произведение двух больших чисел. Для того, чтобы сгенерировать открытый и секретный ключи для стороны А, сначала выбирают К различных чисел V1, V2, ..., VК, где каждое Vi является квадратичным вычетом по модулю n. Иначе говоря, выбирают значение Vi таким, что сравнение
x2 Vi mod n
имеет решение и существует Vi–1 mod n. Полученная строка V1, V2, ..., VК является открытым ключом.
Затем вычисляют такие наименьшие значения Si, что
Si = sqrt (Vi–1) mod n.
Эта строка S1, S2, ..., SK является секретным ключом стороны А.
Протокол процесса идентификации имеет следующий вид:
1. Сторона А выбирает некоторое случайное число r, r
2. Сторона В отправляет стороне А некоторую случайную двоичную строку из K бит: b1, b2, ..., bK.
3. Сторона А вычисляет
y = r (S1b1 S2b2 ... SKbK) mod n.
П
110
еремножаются только те значения Si, для которых bi=1. Например, если b1=1, то сомножитель S1 входит в произведение, если же b1=0, то S1 не входит в произведение, и т.д. Вычисленное значение y отправляется стороне В.
4. Сторона В проверяет, что
x = y2 (V1b1 V2b2 ... VKbK) mod n.
Фактически сторона В перемножает только те значения Vi, для которых bi=1. Стороны А и В повторяют этот протокол t раз, пока В не убедится, что А знает
S1, S2, ..., SK.
Вероятность того, что А может обмануть В, равна (1/2)Кt. Авторы рекомендуют в качестве контрольного значения брать вероятность обмана В равной (1/2)20 при К=5 и t=4.
Стороны А и В повторяют этот протокол t раз, каждый раз с разным случайным числом r, пока сторона В не будет удовлетворена.
При малых значениях величин, как в данном примере, не достигается настоящей безопасности. Но если n представляет собой число длиной 512 бит и более, сторона В не сможет узнать ничего о секретном ключе стороны А, кроме того факта, что сторона А знает этот ключ.
В этот протокол можно включить идентификационную информацию .
Пусть I – некоторая двоичная строка, представляющая идентификационную информацию о владельце карты (имя, адрес, персональный идентификационный номер, физическое описание) и о карте (дата окончания действия и т.п.). Эту информацию I формируют в Центре выдачи интеллектуальных карт по заявке пользователя А.
Далее используют одностороннюю функцию f (·) для вычисления f (I, j), где j – некоторое двоичное число, сцепляемое со строкой I. Вычисляют значения
Vj = f (I, j)
д
111
ля небольших значений j, отбирают К разных значений j, для которых Vj являются квадратичными вычетами по модулю n. Затем для отобранных квадратичных вычетов Vj вычисляют наименьшие квадратные корни из Vj–1(mod n). Совокупность из К значений Vj образует открытый ключ, а совокупность из К значений Sj – секретный ключ пользователя А.