ЭЦП и аутентификация: сделано в России | Журнал сетевых решений/LAN | Издательство «Открытые системы»

Аутентификация при помощи сертификатов

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

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

Помимо него применяются протоколы Transport LayerSecurity (TLS) [142], InternetKey Exchange (IKE)

[147], S/MIME[169], PGP и OpenPGP[149]. Каждый из них немного по-своему использует сертификаты, но основные принципы — одни и те же.

Рис. 2.5 иллюстрирует типичный обмен сообщениями при аутентификации на базе сертификатов, использующий цифровые подписи [70]. Обмен соответствует стандарту аутентификации субъектов на основе криптографии с открытыми ключами[117].

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

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

Хотя этот идентификатор не обязателен, он намного упрощает процедуру и поэтому обычно используется. ПользовательА ожидает сообщение Token ВА1 от сервера В. Идентификатор протокола в Token ID позволяет пользователю А удостовериться, что серверВ отправляет ожидаемое сообщение. Token ВА1 состоит только из случайного числа ran B, это — своего рода запрос, корректным ответом должна быть цифровая подпись числа ran B.
ПользовательА подписывает ответ и отправляет свой сертификат ключа подписи, для того чтобы серверВ при помощи открытого ключа мог выполнить валидацию подписи.

ПользовательА подписывает последовательность из трех элементов: свой запросran A, запрос сервера ran B и имя сервера name B. Ran A — это запросА к серверу В, гарантирующий, что пользовательА подписывает не произвольное сообщение сервера В или другого субъекта, выдающего себя за серверВ.

Получив ответ Token АВ от пользователя А, серверВ проверяет, совпадает ли значениеran B с соответствующим значением в сообщении Token ВА1, а по значению name В устанавливает, действительно ли пользовательА желает пройти аутентификацию сервера В.

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

Ответ сервера Token ВА2 состоит из заверенной цифровой подписью последовательности трех элементов: ran A, ran B и name A, где ran A — запрос, сгенерированный А, ran B — исходный запрос сервера В, а name A — имя пользователяА.

Получив ответ сервера, пользовательА убеждается, что ran A имеет то же самое значение, что и в сообщении Token АВ, а проверяя значениеname A — что серверВ намерен аутентифицировать именно его (пользователя А ).

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

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

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

Протоколы аутентификации

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

Протокол аутентификации — криптографический протокол, в ходе которого одна сторона удостоверяется в идентичности другой стороны, вовлеченной в протокол, а также убеждается в том, что вторая сторона активна во время или непосредственно перед моментом выполнения протокола. В протоколе аутентификации участвуют две стороны: претендент(claimant) Р и проверяющий {verifier) V. Последний уже предполагает некоторую ожидаемую идентичность претендента, т.е. Р не является для V совсем незнакомым лицом — его только нужно правильно выбрать из списка известных лиц. Цель V заключается в том, чтобы подтвердить предполагаемую идентичность претендента, т.е. что он в самом деле является Р, а не кем-то иным. Проверяющий на выходе протокола аутентификации должен либо принять претендента как аутентичного, либо отвергнуть его как не соответствующего заявленной идентичности. Более строго, требования к протоколу аутентификации состоят в следующем:

  • 1) если Р и V являются честными, V завершит протокол, приняв идентичность Р;
  • 2) V не может повторно использовать протокол, совершенный с Р, для того, чтобы успешно имиерсонифицировать Р в протоколе с третьей стороной М;
  • 3) вероятность того, что любая сторона М, отличная от Р, проведя протокол и играя роль Р, может заставить V завершить протокол с принятием идентичности Р, пренебрежимо мала;
  • 4) предыдущие свойства остаются справедливыми, даже если между Р и V совершено большое, но полиномиально ограниченное число сеансов протокола аутентификации, противник М участвовал в предыдущих сеансах выполнения протокола, и несколько сеансов могли выполняться одновременно.

Из теории и практики защиты информации известны три принципиально разных способа аутентификации:

  • 1) «субъект знает» — претендент обладает некоторой информацией, которой нет у других субъектов компьютерной системы (паролями, цифровыми кодами, секретными ключами), и знание которой он демонстрирует в протоколах аутентификации;
  • 2) «субъект обладает» — претендент имеет некоторый физический предмет (токен, интеллектуальную карту, генератор паролей), который необходим для его участия в протоколе аутентификации и который выполняет для него криптографические преобразования информации;
  • 3) «субъект существует» — в протоколе проверяются некоторые признаки, характеризующие человеческую индивидуальность субъекта (иными словами биометрические признаки: отпечатки пальцев, голос, рисунок радужной оболочки глаза и др.).

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

Далее рассмотрим три типа криптографических протоколов аутентификации: протоколы парольной аутентификации, протоколы «запрос — ответ» и протоколы, основанные на доказательствах с нулевым разглашением знания.

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

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

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

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

  • • хранение в компьютерной системе файлов паролей в защищенном режиме (с защитой от чтения/записи);
  • • хранение в системе не самих паролей, а их образов, полученных как результат вычисления однонаправленной функции от пароля, взятого в качестве аргумента;
  • • задание правил выбора паролей (минимальное количество символов, недопущение использования осмысленных слов, необходимость сочетания букв и цифр и т.п.), имеющих целью максимизировать энтропию пароля;
  • • искусственное замедление процесса ввода пароля в систему с целью резкого увеличения времени на перебор паролей;
  • • выбор в качестве пароля осмысленного предложения (фразы) с последующим преобразованием посредством хэш-функции в короткое сообщение, которое обычно обладает большей энтропией, чем пароль такой же длины, выбираемый человеком;
  • • добавление системой случайной величины к паролю перед обработкой его однонаправленной функцией — так называемый «метод подсаливания».
Читайте также:  Джакарта ЕГАИС обзор ключа jacarta SE 2.0

Все перечисленные методы лишь затрудняют или замедляют процесс доступа к паролю, его перебора или случайного угадывания. Ни один из них не решает проблемы защиты парольного протокола радикально. Они обеспечивали вполне приемлемый уровень защиты в 1970—1980-е гг. с учетом тогдашнего уровня развития вычислительной техники и операционных систем. Сегодня перечисленные приемы простой аутентификации с фиксированными паролями используется, как правило, в не очень ответственных случаях или когда процесс доступа субъекта к системе необходимо максимально упростить (например, для входа пользователя в систему в массовых тиражируемых операционных системах семейств Windows или Linux).

Разновидностью фиксированных паролей являются PIN-коды (от английских слов personal identification number). Как правило, это числовые пароли длиной от четырех до восьми десятичных цифр. Чаще всего они используются в соединении с методом «обладания чем-либо»: микропроцессорной пластиковой картой, картой с магнитной полосой или токеном. PIN-коя обеспечивает второй уровень защиты на случай, если физическое устройство потеряно или украдено. Для защиты от полного перебора такого маленького ключевого пространства необходимы дополнительные меры: организационная и физическая защита. Например, банкомат может забрать у пользователя пластиковую карту или блокировать ее после нескольких подряд неудачных попыток ввода пароля. Токен может быть заблокирован после неоднократного неправильного ввода PIN-кода администратора, после чего его останется только отформатировать и записать на него ключи заново.

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

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

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

2. Последовательно обновляемые одноразовые пароли. Первоначально пользователь и система имеют только один пароль, условно с номером i. Затем пользователь создает и передает системе пароль под номером i — 1, зашифрованный на ключе, вычисленном из i-го пароля. Такой метод затруднительно реализовать при ненадежном канале связи (при возможности обрыва связи).

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

Протокол смены пароля для метода последовательно обновляемых одноразовых паролей

ЭЦП и аутентификация: сделано в России | Журнал сетевых решений/LAN | Издательство «Открытые системы»

выбирает сам пользователь (он же претендент в протоколе) и пересылает их проверяющему. pwditpwd?_v pwdi_2 и т.д. — это и есть последовательность общих секретов, т.е. одноразовых паролей или паролей, каждый из которых используется в течение условленного промежутка времени, а потом заменяется новым. Здесь/— однонаправленная функция (ОНФ), с помощью которой из текущего пароля генерируется ключ шифрования. Этим ключом защищается следующий выбранный претендентом пароль.

3. Последовательности одноразовых паролей, основанные на однонаправленных функциях. Этот метод наиболее эффективен но отношению к объему передаваемых данных. Примером является протокол Лампорта (табл. 4.2).

Предварительный этап выполняется однократно, перед началом использования протокола. Первоначально пользователь имеет секрет w. Однонаправленная функция используется для выработки последовательности паролей а>, H(w), H(H(w)),…, Hw).

Рабочий этап (сеанс аутентификации) выполняется не более t раз для заранее выбранного параметра t. Пароль для i-го сеанса протокола wt= Hr~'(w)> 1 < i < t. P идентифицирует себя для V, используя одноразовые пароли из этой последовательности.

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

Протокол Лампорта аутентификации но одноразовым паролям

р

V

Предварительный этап

  • 1. Выбираются: w — секрет пользователя Р, Я — однонаправленная хэш-функция, t — фиксированная константа, определяющая число разрешенных сеансов аутентификации, после чего Р меняет свой секрет.
  • 2. Вычисляет w = H'(w) и передает ее V по секретному аутентичному каналу.
  • 3. Вычисляет H'(w) =

= Я(Я(…Я(»’))…))

1р = 1 — счетчик для Р

Рабочий этап

Для i=l,…, t:

1

Вычисляет Wj = H‘ ‘(w) либо из w, либо из промежуточной величины, сохраненной во время вычисления H‘(w). Направляет V сообщение [Р, i, го], где i — номер сеанса аутентификации

2

? .

l=,i” р ,,, . ?> Если да, то

ip := ip 1 (увеличивает счетчик) и сохраняет wi для следующего сеанса

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

Первым рыночным продуктом, в котором использовался протокол Лампорта, было средство аутентификации S/KEY — разработка американской компании Bellcore (конец 1980-х гг.). Впоследствии этот метод был закреплен в качестве рекомендации RFC 1760 — The S/KEY One-Time Password System, опубликованной IETF. Сейчас аутентификация на основе метода Лампорта широко используется, например для подтверждения операций клиентов, совершаемых в системах дистанционного банковского обслуживания. Цепочка цифровых паролей, сгенерированных при помощи ОНФ, записывается на выдаваемую клиенту пластиковую карту, каждому паролю присваивается порядковый номер. Далее каждый записанный на карте пароль покрывается специальным непрозрачным защитным слоем, предотвращающим разглашение пароля. Клиент должен последовательно стирать защитный слой с паролей и вво-

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

Другой тип протоколов аутентификации — это протоколы типа «запрос — ответ» (challenge — response). В них претендент доказывает свою идентичность проверяющему путем демонстрации знания некоторого секрета. В некоторых протоколах секрет известен проверяющему и используется для проверки ответа, в других — вообще нет необходимости, чтобы секрет был известен проверяющему. При выполнении протокола претендент должен ответить на запрос, меняющийся от сеанса к сеансу, причем ответ должен зависеть и от запроса, и от известного ему секрета. Запрос — это обычно некоторая переменная величина, выбираемая проверяющим в начале протокола. Если линия связи между участниками протокола прослушивается противником, то ответ претендента не должен снабжать противника какой-либо полезной для него информацией, которая может быть использована в последующих сеансах протокола. Для этого все запросы проверяющего обязательно должны отличаться друг от друга. Изменяющиеся запросы проверяющего используются для противодействия атакам на протокол методами повтора сеанса и включения в канал. Они обеспечивают гарантии уникальности и актуальности каждого сеанса протокола. В криптографических протоколах широко используется такое понятие как свежесть {freshness) гой или иной величины. Оно подразумевает, что значение этой величины было сгенерировано в начале или в ходе выполнения текущего сеанса протокола.

Читайте также:  Как получить эцп ульяновск

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

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

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

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

  • 1) разница между метками времени отправителя и получателя должна укладываться в определенный интервал времени фиксированного размера — окно принятия {acceptance window)-,
  • 2) ранее не должно было быть получено сообщений с идентичной меткой времени от того же отправителя. Это подтверждается проверкой по списку всех меток времени, полученных от каждого источника за период текущего окна принятия;
  • 3) часы должны быть синхронизированы и защищены от модификации.

Основным международным стандартом по криптографическим протоколам аутентификации является стандарт Международной организации по стандартизации и Международной электротехнической комиссии ISO/IEC 9798 — Information technologySecurity techniques — Entity authentication.

Далее рассмотрим некоторые из протоколов, рекомендуемых этим стандартом.

Протоколы «запрос — ответ» с использованием симметричных криптосхем. В этих протоколах претендент и проверяющий имеют общий секретный ключ либо ключи парно-выборочной связи. Для их получения может использоваться доверенный сервер в режиме реального времени. Стандартом ISO/IEC 9798-2 предусмотрены три способа аутентификации:

  • 1. Односторонняя аутентификация, основанная на метке времени (табл. 4.3). Если у претендента и проверяющего есть синхронизированные (в пределах погрешности) системные часы, нет необходимости посылать запрос. Претендент сразу может направить сообщение с включенной в него меткой времени, а проверяющий — сверить метку с показаниями своих часов. Включение в сообщение идентификатора проверяющего V предотвращает использование сообщения для аутентификации участника Р в протоколе с каким- либо другим проверяющим.
  • 2. Односторонняя аутентификация с использованием случайных чисел (табл. 4.4). В качестве запроса проверяющим используется случайное число, поэтому он должен иметь генератор псевдослу-

Протокол односторонней аутентификации с меткой времени

р

К — общий секретный ключ

V

C = EK(t,„V)

—[с]-

М = DK(C). М = (ф Р’); если {V = Panel ),tv | < w, где w — окно принятия}, то (претендент принимается как аутентичный}

Таблица 4.4

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

Р

К — общий секретный ключ

V

С = EK(iу, Р)

*-ы-

rv — случайное

-IС]-

М = DK(C); М = (гV); если {r, = rvand V = Р}, то (Р принимается как аутентичный}

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

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

Таблица 43

Протокол взаимной аутентификации с использованием случайных чисел

Р

К — общий секретный ключ

V

гр случайное

rv случайное

-ct]-

М, = 0,(ф), М, = (г’р, г[, Р’); если {/•(, = rv и V» = Р}, то (Р принимается как аутентичный}

М., = DK(C.,), М2 = (г», г»)’, если {г’р = гР и г» = rv), то (V принимается как аутентичный}

*~ic2]-

С*

с*

«Ч

II

О»

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

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

Таблица 4.6

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

р

К — общий секретный ключ

V

гр — случайное, Я, = hK(r,„ rv, V)

rv случайное

-К»’/,]-

я; = hK(rp, Гу, V); если {Я’ = Н), то {Р принимается как аутентичный}

Щ = hK(r%„ rp, P); если {#2 = H2), то {V принимается как аутентичный}

II, = hK(rv r,„ Р)

  • 4. Протоколы «запрос — ответ» с использованием асимметричных криптосхем. Можно выделить две группы таких протоколов: протоколы с использованием схем электронной подписи и протоколы с использованием схем открытого шифрования.
  • 4а. Протоколы с использованием электронной подписи:
  • 1) односторонняя аутентификация с метками времени (табл. 4.7);
  • 2) односторонняя аутентификация со случайными числами (табл. 4.8);
  • 3) взаимная аутентификация со случайными числами (табл. 4.9).

Относительно приведенных в табл. 47—4.9 протоколов необходимо сделать ряд замечаний.

Таблица 4.7

Протокол односторонней аутентификации с использованием схемы электронной подписи (метка времени)

ЭЦП и аутентификация: сделано в России | Журнал сетевых решений/LAN | Издательство «Открытые системы»

Протокол односторонней аутентификации с использованием схемы электронной подписи (случайные числа)

ЭЦП и аутентификация: сделано в России | Журнал сетевых решений/LAN | Издательство «Открытые системы»

Таблица 4.9

Протокол взаимной аутентификации с использованием схем электронной подписи

ЭЦП и аутентификация: сделано в России | Журнал сетевых решений/LAN | Издательство «Открытые системы»

Во всех таблицах в треугольную рамку обведены личные секретные ключи участников протокола, в овальную рамку — открытые ключи, а символом, напоминающим контуры раскрытой книги, обозначены справочники открытых ключей, которые в большинстве случаев в современных криптосистемах реализуются с помощью механизмов инфраструктуры открытых ключей. Формулой Signyk(…) обозначено соответственно подписание сообщения с помощью алгоритма генерации подписи sign с секретным ключом подписи skx участника X, а формулой Verpkx(…) = {0/1} — проверка подписи с помощью алгоритма проверки подписи Ver с открытым ключом pkx участника X, считая, что результат проверки подписи «0» условно соответствует отклонению подписи, а «1» — принятию подписи.

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

  • 46. Протоколы с использованием схем открытого шифрования:
  • 1) односторонняя аутентификация (табл. 4.10) — использование хэш-функции позволяет проверяющему демонстрировать знание г, не разглашая его, тем самым предотвращая атаку с выбранным открытым текстом;
  • 2) взаимная аутентификация (табл. 4.11).
Читайте также:  НОУ ИНТУИТ | Лекция | Хэш-функции и электронная подпись

Формулой обозначено зашифрование сообщения с помощью

алгоритма Е некоторой схемы открытого шифрования на открытом ключе pkx участника X, а формулой (…) — расшифрование сообщения с помощью алгоритма D на секретном ключе skxучастника X.

Таблица 4.10

Протокол односторонней аутентификации с использованием схем открытого шифрования

ЭЦП и аутентификация: сделано в России | Журнал сетевых решений/LAN | Издательство «Открытые системы»

Протокол взаимной аутентификации с использованием схем открытого шифрования

ЭЦП и аутентификация: сделано в России | Журнал сетевых решений/LAN | Издательство «Открытые системы»

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

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

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

В качестве примера рассмотрим протокол Файге — Фиата — Шамира. Это первый из предложенных протоколов аутентификации, основанный на доказательствах с нулевым разглашением знания. Основой для него послужила схема аутентификации и электронной подписи Фиата — Шамира[1].

Первоначально авторами был предложен протокол, показанный в табл. 4.12. На предварительном этапе центр доверия выбирает два больших простых числар, q (которые он держит в секрете) и публикует большое число п = pq длиной порядка 1024 или 2048 бит. Далее сторона, которая будет выполнять в протоколе аутентификации роль претендента, выбирает свой секретный ключ s, причем такой, что выполнены следующие условия: (s, я) = 1,1<$v = s2 (mod п). В конце предварительного этапа всем сторонам становятся известны величины п — модуль схемы ии — открытый ключ Р.

Таблица 4.12

Протокол аутентификации Фиата — Шамира

р

Центр доверия

V

Предварительный этап

s: (s, п) = 1, v = s2(modtf)

р, q — большие простые числа, п = pq

пу V

Рабочий этап

1*

reR{ 1,2,…, п — 1}, х = г2 (mod/?)

>

2

е ек <0, 1}

3

у = rse(modn)

4

Если у = 0, отклоняет доказательство, так как г = 0. В противном случае у2 ^ xve(modn)

* Этаны 1—4 выполняются последовательно. Каждая сторона дожидается окончания действий другой стороны, поступления от нее сообщения и только после этого выполняет свои действия.

Рабочий этап протокола состоит в следующем. В цикле выполняются следующие действия (смысл цикла будет пояснен ниже; в табл. 4.12 показано содержание одного цикла):

  • 1) Р выбирает случайное число г, г п, вычисляет х = г2 (mod я) и отправляет его проверяющему V;
  • 2) V вырабатывает случайный бит е € {0, 1} и посылает его Р;
  • 3) если е = 0, Р отправляет V число г, в противном случае (е = 1) он отправляет число у = rs (mod п)
  • 4) V проверяет, что у ^ 0 (если у = 0, доказательство должно быть недействительно из-за того, что г = 0). Если это условие вы2 — е

полнено, то проверяется равенство у = XVе, и в случае его выполнения доказательство проверяющим принимается.

Действия (1)—(4) повторяются в цикле t раз. Вероятность обмана претендентом проверяющего (т.е. вероятность принятия проверяющим ошибочного решения) при однократном выполнении действий (1)—(4) равна 1/2, соответственно при выполнении цикла t раз вероятность равна 1/2′. Число t называют параметром безопасности протокола, его рекомендуется выбирать равным от 20 до 40. Считается, что Р прошел аутентификацию, если проверка сравнения на шаге (4) во всех t циклах завершилась с положительным результатом.

Рассмотрим подробнее структуру этого протокола. Запрос е на шаге (2) требует, чтобы Р был способен ответить на два вопроса; один из них нужен для того, чтобы продемонстрировать знание s, другой — чтобы предотвратить обман честного претендента нечестным проверяющим. Соответственно запросу претендент отвечает на шаге (3) либо у = г, либо х = rs (mod п). Ни тот ни другой ответ не несет никакой информации об s в первом случае он от s вообще не зависит, во втором — замаскирован случайной величиной г, которая известна только Р, так как на шаге (1) тоже была замаскирована при помощи ОНФ.

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

Г2

х =— (mod я) и ответив у = / при е= 1, но не сможет ответить при

v

в = 0, так как это требует знания Vx(mod п).

Противник, выступающий в роли проверяющего, может смоделировать пары сообщений (х, у) самостоятельно. Действительно, можно выбирать случайные у, задаваться случайными битами е = = {0/1} и вычислять в зависимости от этого х = г/2 (mod и) либо

у2

х =—(mod«). Распределение вероятностей пар (х, у) не будет от-

v

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

Позднее те же авторы усовершенствовали протокол (табл. 4.13), показав, что параллельная конструкция протокола уменьшает число раундов обмена между Р и V при сохранении свойства нулевого разглашения знания. Число п выбирается, как и в предыдущем случае. Далее Р выбирает свой секретный ключ в виде набора к различных чисел (Sj, s2, …, sk), где каждое sf. (s,, ri) = 1, 1 < s < n — 1.

Протокол аутентификации Файте — Фиата — Шамира

р

Центр доверия

V

Предварительный этап

s,: (у, п) = 1,1 < s < п — 1; и,- = s,2(mod п);

(v,,u2,…. vk); s = (s,, s2,…. sk)

p, q — большие простые числа, n = pq

n, vv v2,…, vk

Рабочий этап

1*

r eR { !> 2, n — 1}, x- = r?( mod/?)

2

ei2…..eik)6R ^

3

yi = Г;СФ‘52Й… 5^* ( mod n)

—*?

4

xi— yf(p’nvla… ^“(mod n)

* Этапы 1—4 выполняются последовательно.

Строка (г;,, vv …, vk), где vt= s,2(mod п), принимается в качестве открытого ключа Р.

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

  • 1) Р выбирает случайное число г, г< п, вычисляет* = г2(mod п) и отправляет его проверяющему V;
  • 2) V вырабатывает случайную двоичную строку {ei}kj.v е, е {0; 1} и посылает ее Р;

к

  • 3) Р вычисляет у = г- Плр, перемножая только те sjt которые соот-
  • 1-1

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

к

4) V проверяет, что х = у2 ? Пгф.

i-1

В данном протоколе вероятность ошибки проверяющего в t проходах цикла равна 1 /2кг. Авторы протокола рекомендовали выбирать параметры не ниже следующих: k = 5, t = 4.

Стойкость протокола Фиата — Шамира основана на сложности извлечения квадратного корня по модулю п, когда неизвестно разложение п на множители.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector