Иванов М.А. КМЗИ сети. Криптографические методы защиты информации
Скачать 3.04 Mb.
|
Протокол подбрасывания монеты (схема Блюма) 1. Абонент А выбирает случайное число , q A Z x вычисляет p g y A x A mod . 2. Абонент А посылает A y абоненту В. 3. Абонент В выбирает случайный бит b и случайное число , q B Z x вычисляет p g y y B x b A B mod . 4. Абонент В посылает B y абоненту А. 5. Абонент А выбирает случайный бит a и посылает его або- ненту В. 6. Абонент В посылает абоненту А бит b и число B x . 7. Абонент А проверяет равенство mod p g y y B x b A B При по- ложительном исходе результатом выполнения протокола будет бит b a c 191 Суть протокола объясняет следующая его «физическая» реа- лизация. Абонент В выбирает случайный бит b, записывает его на листе бумаги, запирает этот лист в ящик ( B y суть криптогра- фический аналог этого ящика), оставляя ключ ( B x ) у себя, и по- сылает ящик абоненту А. Получив запертый ящик, абонент А не может добраться до его содержимого. Он выбирает случайный бит a и посылает его абоненту В. В ответ В посылает А ключ от ящика, а затем определяет исход подбрасывания монеты b a c Абонент А, получив ключ, отпирает ящик, читает b и точно таким же образом узнает с [4]. Следующий протокол основан на предположении, о вычисли- тельной неразрешимости задачи дискретного логарифмирования. Протокол подбрасывания монеты 1. Абонент А выбирает случайным образом некоторое число Блюма n (см. гл. 5) число , n A Z x вычисляет n x y A A mod 2 и , mod 2 n y z A A затем сообщает числа n и А z абоненту В. 2. Абонент В сообщает абоненту А свое предположение о четности или нечетности A y . 3. Абонент А сообщает абоненту В числа А x и , A y а также дает возможность убедиться, что n является числом Блю- ма. 4. Абонент В проверяет равенства n x y A A mod 2 и mod 2 n y z A A Таким образом, абонент А передает абоненту В квадратичный вычет по модулю целого числа Блюма, а В пытается угадать, яв- ляется ли его примитивный квадратный корень четным или не- четным. Выбор в качестве n целого числа Блюма – гарантия от- сутствия у A z двух квадратных корней различной четности, оба из которых являются квадратичными вычетами. Можно предло- жить следующую «физическую» реализацию приведенного про- токола. А бросает монету в колодец. А видит исход бросания мо- неты, но не может его изменить. В находится далеко и не может 192 его увидеть. Однако А в конце концов может позволить В подой- ти поближе и заглянуть в колодец [4]. 6.4. Протоколы битовых обязательств Если из приведенной выше схемы Блюма вычленить шаги 1, 2 и 4, получим так называемый протокол битового обязательства или привязки к биту (bit commitment). Шаги 1 и 2 в этом прото- коле называются этапом привязки, а шаг 4 – этапом открытия бита. В данной схеме для значения , B y в которое «упаковывает- ся» бит b, используется термин блоб (blob), абонент А называет- ся получателем, а абонент В – отправителем. Схема привязки к биту классический пример криптографического примитива, ко- торый используется в многочисленных прикладных протоколах. Идеальная конструкция блоба должна обеспечивать одновре- менное выполнение двух требований: 1) гарантии безопасности отправителя – после выполне- ния этапа привязки получатель не может самостоятельно определить, какой бит упакован в блоб; 2) гарантии безопасности получателя – на этапе открытия бита отправитель может открыть блоб либо только как 0, либо как 1. Иными словами, цель привязки к биту – позволить абоненту А взять на себя в качестве обязательства значение некоторого бита информации таким способом, который не позволит абонен- ту В узнать это значение без помощи А, при этом сам А после привязки к биту не может его изменить. Описанный протокол привязки к биту гарантирует безуслов- ную безопасность отправителя. В то же время безопасность по- лучателя основывается на недоказанном предположении о вы- числительной неразрешимости задачи дискретного логарифми- рования. Существует другой тип протоколов привязки к биту, в которых безопасность получателя безусловна, а безопасность отправителя основывается на недоказанном предположении. Учитывая, что такая асимметрия типична для многих типов криптографических протоколов, иногда строятся двойственные протоколы такого рода [4]. 193 6.5. Протоколы разделения секрета Эффективным методом защиты является разделение доступа (не путать с разграничением доступа!), разрешающее дос- туп к секретной информации только при одновременном предъявлении своих полномочий участниками информационно- го взаимодействия, не доверяющих друг другу. Протоколы или схемы разделения секрета (СРС) (Secret Sharing Scheme) по- зволяют распределить секрет между n участниками протокола таким образом, чтобы заранее заданные разрешенные множест- ва участников могли однозначно восстановить секрет, а нераз- решенные – не получали бы никакой информации о возмож- ном значении секрета. Выделенный участник протокола, рас- пределяющий доли (share) секрета, обычно называется диле- ром. Пусть m – защищаемая информационная последователь- ность (битовая строка) длиной t . Простейшая схема разделения секрета между тремя абонентами A, B и C имеет следующий вид: 1) дилер D вырабатывает две случайные битовые строки А r и B r длиной t и вычисляет B А C r r m r ; 2) D передает абоненту A информационную последова- тельность А r , абоненту B – информационную последо- вательность B r и абоненту C – информационную после- довательность C r ; 3) чтобы прочитать информацию , m абонентам А, В и С необходимо предъявить свои доли секрета , А r B r и C r и вычислить C B А r r r m Шаги 1 и 2 – это стадия распределения долей секрета. Шаг 3 – стадия восстановления секрета. Каждая доля секрета сама по себе не имеет никакого смысла, но если их сложить смысл исходной информационной последовательности полностью восстанавливается. При правильной реализации приведенный протокол полностью безопасен, так как для закрытия информа- 194 ции применяется абсолютно стойкий шифр, описанный в гл. 1, и поэтому никакие вычисления не смогут помочь при попытке определить секрет по одной или двум его частям. Аналогичную схему можно легко реализовать для любого числа участников. Рассмотрим схему разделения доступа Шамира. Пусть n – число участников протокола, GF(p) – конечное поле из p эле- ментов, p – простое, p > n. Поставим в соответствие каждому i-му участнику ненулевой элемент поля , , 1 , n i i и положим 0 0 Схема разделения доступа Шамира Стадия распределения долей секрета . 0 s Дилер СРС выра- батывает t – 1 независимых равномерно распределенных на GF(p) случайных чисел , 1 , 1 , t j j и посылает каждому i-му участнику соответствующее ему значение i i f s многочлена , 0 1 1 1 x x x f t t где 0 0 s Стадия восстановления секрета. Учитывая, что любой многочлен степени t – 1 однозначно восстанавливаются по его значениям в произвольных t точках, то любые t участ- ников могут восстановить многочлен f(x), т.е. найти значе- ние секрета по формуле 0 0 f s По этой же причине для любых t – 1 участников, любых значений i s и любого сек- рета 0 s существует только один соответствующий им мно- гочлен, для которого справедливо i i f s и 0 0 f s Схемы подобного типа находят применение при построении пороговых структур доступа и носят название (n, t)-пороговых СРС. Такие схемы, например,позволяет владельцу некоей сек- ретной информации распределить эту информацию при хране- нии на n своеобразных ее дубликатов таким образом, что ему для восстановления секрета достаточно получить доступ к лю- бым t из них. При этом никакие t – 1 дубликатов не предостав- ляют никакой информации об этом секрете [4]. 195 6.6. Протоколы электронной подписи Основные понятия. Схемы контроля целостности, рассмот- ренные в гл. 4, могут использоваться только при взаимодейст- вии доверяющих друг другу сторон. Они принципиально не способны обеспечивать улаживание возникающих между ними противоречий и разногласий. Такая возможность появляется только при использовании односторонних функций с секретом для формирования электронной цифровой подписи. Протоколы или схемы электронной подписи – основное криптографиче- ское средство обеспечения аутентичности информации: с помощью электронной подписи получатель документа может доказать, что он принадлежит отправителю, при этом автор подписи не сможет оспорить факт отправки подписанного документа; электронную подпись невозможно подделать, только або- нент, чья подпись стоит на документе, мог подписать дан- ный документ; электронная подпись – неотъемлемая часть документа, пе- ренести ее на другой документ нельзя; ни противник, ни получатель не могут изменить документ, оставив данный факт незамеченным; любое пользователь, имеющий образец подписи, может удостовериться в подлинности документа. Для повышения надежности схемы электронной подписи (например, для противодействия атакам перехвата и повтора сообщений, фальсификации времени отправки сообщений) ее можно сделать зависимой от неповторяющегося блока данных nrb. Схема электронной подписи включает в себя: параметр безопасности n, в качестве которого может вы- ступать длина подписи, длина подписываемых сообщений и т.п.; пространство исходных сообщений; максимальное число подписей (signature bound), которые могут быть получены в данной схеме без замены секрет- ной информации; 196 алгоритм G генерации ключей – полиномиальный (от n) ве- роятностный алгоритм, формирующий по заданному пара- метру n пару , , public А secret А k k где secret А k – секретный ключ подписывающего (абонента А), public А k – соответствующий открытый ключ проверяющего (абонента В); алгоритм S формирования подписи сообщения – полино- миальный вероятностный алгоритм, вырабатывающий по заданным исходному сообщению M и секретному ключу secret А k подпись s для сообщения ; M алгоритм V проверки (verification) подписи – полиномиаль- ный вероятностный алгоритм, дающий на выходе при за- данных сообщению M, открытому ключу public А k и возмож- ной подписи s либо значение 1, когда подпись сообщения принимается, либо 0, когда подпись отвергается. Подпись M S s secret А k называется допустимой для сообще- ния M , если она принимается алгоритмом V с вероятностью, близкой к 1. Подделкой подписи сообщения M называется на- хождение противником, не имеющим секретного ключа подпи- сывающего, допустимой подписи для этого сообщения. В общем случае неинтерактивный протокол электронной подписи имеет следующий вид. Схема электронной подписи документа M 1. Отправитель А вычисляет n G k k public А secret А = , и посылает public А k получателю В, сохраняя secret А k в сек- рете. 2. Для получения подписи документа M отправитель А вы- числяет M S s secret А k и посылает M и s получателю В. 3. Получатель В вычисляет 197 public A k s M V , , и в зависимости от результата принимает или отвергает подпись s сообщения M. В классической схеме электронной подписи предполагается, что подписывающий (абонент А) знает содержание документа M, который он подписывает; проверяющий (абонент В), зная открытый ключ проверки подписи, может проверить правиль- ность подписи в любое время без какого-либо разрешения или участия претендента А. При создании электронной подписи по классической схеме (рис. 6.5) претендент А выполняет сле- дующую последовательность действий: применяет к исходному сообщению M хеш-функцию h(x) и формирует хеш-образ или дайджест (message digest) сооб- щения ; M h при необходимости дополняет хеш-образ до требуемой длины; вычисляет электронную подпись s с использованием не- симметричного криптоалгоритма и секретного ключа соз- дания подписи: M h Ext D s secret A Хеш-функция является неотъемлемой частью схем элек- тронной подписи. Применение медленных несимметричных криптоалгоритмов для преобразования всего исходного сооб- щения M нерационально, поэтому для повышения быстродей- ствия схемы перед процедурой формирования подписи исполь- зуется функция необратимого сжатия информации. Последова- тельность действий абонента В, получившего подписанное со- общение: верификатор В применяет к тексту полученного сообщения хеш-функцию; дополняет в случае необходимости хеш-образ сообщения до требуемой длины (на рис. 6.5 рассматривается случай, когда расширение M h Ext не требуется); применяет к полученной подписи s несимметричный крип- тоалгоритм с использованием открытого ключа проверки подписи и сравнивает полученное значение s E public A с найденным на предыдущем шаге ; M h Ext при положи- 198 тельном результате сравнения подпись признается, в про- тивном случае – отвергается [4]. Абонент А (претендент) Абонент В (верификатор) Сообщение M k A (secret) Хеширование h k A (public) Сравнение Подпись признается или отвергается Хеш-образ h(M) Шифрование D A M D A (h(M)) s M D A (h(M)) Хеширование h Хеш-образ h(M) Шифрование E A E A (D A (h(M))) s Рис. 6.5. Классическая схема создания и проверки электронной подписи 6.6.1. Протокол электронной подписи RSA Криптосистема с открытым ключом RSA часто используется не только для шифрования, но и для построения схемы элек- тронной подписи. Пусть n x x E e A mod – открытая функция зашифрования, а n x x D d A mod – секретная функция рас- шифрования. Схема электронной подписи RSA 1. Абонент А (претендент) вычисляет хеш-образ M h со- общения M. 2. Абонент А зашифровывает полученное значение M h на своем секретном ключе d, вычисляя подпись 199 , mod n M h s d и отправляет абоненту В пару документ-подпись , s M 3. Абонент В (верификатор) расшифровывает s на открытом ключе e отправителя, т.е. вычисляет mod n s e 4. Абонент В вычисляет хеш-образ M h полученного со- общения и проверяет равенство mod n s M h e В случае положительного результата проверки подпись принимается, в противном случае – отвергается. В качестве хеш-функции в схеме подписи RSA используются функции семейства MD. 6.6.2. Протокол электронной подписи Шнорра В протоколе аутентификации Шнорра интерактивность тре- буется только для того, чтобы получить от верификатора В слу- чайный запрос B x Если бы у претендента А был бы надежный источник случайности на замену генератору ПСЧ В, пользую- щийся доверием верификатора В, то протокол можно было бы сделать неинтерактивным. Фиат и Шамир предложили способ преобразования схемы аутентификации в протокол электронной подписи. Если M – подписываемое сообщение, а h(x) – крипто- графическая хеш-функция, вместо обращения к верификатору (получателю) претендент (отправитель) вычисляет M h и ис- пользует ее вместо запроса B x Этот прием универсален, так как применим и к другим протоколам аутентификации. Пусть p и q – такие простые числа, что q делит (p – 1). Пусть p Z g такое, что 1 , mod 1 g p g q 200 Пусть хеш-функция h(x) отображают пары значений M y A , на множество 1 - 2 , 1, , 0 t . В качестве своего секретного ключа secret А k абонент А выбирает случайное число из q Z Затем он вычисляет p g secret A k mod ) ( - и публикует найденное значение в качестве своего открытого ключа ) ( public A k Схема электронной подписи Шнорра 1. Абонент А выбирает случайное число , 1 q A Z x после че- го вычисляет mod 1 p g y A x A 2. Абонент А вычисляет , 2 M y h x A A 3. Абонент А вычисляет q x k x s A secret A A mod 2 ) ( 1 и посылает сообщение M с подписью s x A , 2 абоненту В. 4. Абонент В вычисляет p k g y A x public A s A mod 2 ) ( и проверяет, выполняется ли равенство , 2 M y h x A A Если оно выполняется, В признает подлинность подписи, в противном случае – отвергает. Стойкость приведенной схемы сильно зависит от свойств ис- пользуемой хеш-функции. Если противник может по заданной паре M y A , находить другое сообщение , , M M' M' для кото- рого , , = , M' y h M y h A A он может осуществить подделку подписи. Для этого после пере- хвата сообщения M и подписи s x A , 2 ондолжен найти указан- 201 ное выше M' , и тогда пара s x A , 2 будет также подписью и для сообщения '. M 6.6.3. Классификация атак на схемы электронной подписи Стойкость схемы электронной подписи зависит от стойкости используемых криптоалгоритмов и хеш-функций и определяется относительно пары угроза-атака. Приведем классификацию атак на схемы электронной подписи: атака на основе известного открытого ключа (key-only attack) – самая слабая из атак, практически всегда доступная противнику; атака на основе известных подписанных сообщений (known- message attack) – в распоряжении противника имеется неко- торое (полиномиальное от k) число пар , , s M где M – неко- торое сообщение, а s – допустимая подпись для него, при этом противник не может влиять на выбор M; простая атака с выбором подписанных сообщений (generic chosen-message attack) – противник имеет возможность вы- брать некоторое количество подписанных сообщений, при этом открытый ключ он получает после этого выбора; направленная атака с выбором сообщений (directed chosen- message attack) – выбирая подписанные сообщения, против- ник знает открытый ключ; адаптивная атака с выбором сообщений (adaptive chosen- message attack) – противник знает открытый ключ, выбор каждого следующего подписанного сообщения он может де- лать на основе знания допустимой подписи предыдущего выбранного сообщения. Каждая атака направлена на достижение определенной цели. Можно выделить следующие виды угроз для схем электронной подписи (в порядке возрастания силы): экзистенциальная подделка (existential forgery) – создание противником подписи для какого-нибудь, возможно бес- смысленного, сообщения , M' отличного от перехваченного; 202 селективная подделка (selective forgery) – создание подписи для заранее выбранного сообщения; универсальная подделка (universal forgery) – нахождение эффективного алгоритма формирования подписи, функцио- нально эквивалентного S; полное раскрытие (total break) – вычисление секретного ключа, возможно отличного от secret А k , соответствующего открытому ключу , public А k что дает возможность формиро- вать подписи для любых сообщений. Наиболее стойкими являются схемы, стойкие против самой слабой из угроз на основе самой сильной из атак, т.е. против эк- зистенциальной подделки на основе атаки с выбором подписан- ных сообщений. Справедливо следующее утверждение. Схемы электронной подписи, стойкие против экзистенциальной под- делки на основе атаки с выбором подписанных сообщений, су- ществуют тогда и только тогда, когда существуют односто- ронние функции [4]. 6.6.4. Процедура разрешения споров Для практического применения схем электронной подписи помимо алгоритмов формирования подписи и ее верификации требуется процедура арбитража, т.е. разрешения споров. Арбит- раж необходим, когда один из абонентов, например В, предъяв- ляет сообщение и подпись , , s M утвеждая, что эта пара сооб- щение-подпись была получена от абонента А, который отказыва- ется признавать эту подпись своей. С юридической точки зрения основанием для разрешения подобных споров в суде является подписание (обычным образом) каждым пользователем при под- ключении к системе специального документа, в котором пользо- ватель принимает все «правила игры», вплоть до судебной от- ветственности. При разборе дела в суде арбитр выступает в ка- честве эксперта, дающего заключение о подлинности электрон- ной подписи [4]. 203 Алгоритм арбитража 1. Абонент В предъявляет арбитру электронный документ и подпись. 2. Арбитр требует от абонента А предъявления своего сек- ретного ключа. Если А отказывается, арбитр дает заклю- чение, что подпись подлинная. 3. Арбитр выбирает из сертифицированного справочника открытый ключ абонента А и проверяет его соответствие секретному ключу, предъявленному А. Если они совпа- дают, арбитр переходит к шагу 5. 4. При обнаружении факта несоответствия ключей арбитр обращается в центр сертификации и требует предостав- ления заверенного абонентом А документа, содержащего его открытый ключ. Если выясняется, что открытый ключ, взятый из справочника, не совпадает с указанным в документе, арбитр признает подпись, предъявленную В, подлинной; при этом все издержки такого решения ком- пенсируются за счет центра. Если открытые ключи в справочнике и документе совпадают, т.е. абонент А предъявил некорректный секретный ключ, арбитр при- знает подлинность электронной подписи. 5. Арбитр проверяет соответствие друг другу подписи и до- кумента. При положительном результате проверки под- пись признается подлинной, в противном случае – отвер- гается. Задача арбитража значительно сложнее, чем кажется на пер- вый взгляд. Арбитраж и решение споров в суде невозможны в следующих случаях: секретный ключ сформирован не самим абонентом А, а спе- циальным центром генерации ключей; аппаратура, на которой выполняется алгоритм генерации или проверки подписи, содержит какие-либо элементы, не контролируемые пользователем («черные ящики», защи- щенные участки памяти и т.п.). Наконец, возможны безвыходные ситуации, в которых арбитр не может принять никакого обоснованного решения. Например, абонент В предъявляет s и утверждает это подпись под докумен- 204 том M. Абонент А признает, что это его подпись, но под доку- ментом , M M' при этом выясняется, что хеш-образы этих до- кументов совпадают, т.е. M' h M h Арбитр понимает, что кто-то из двоих нашел коллизию для применяемой в схеме элек- тронной подписи хеш-функции, и оказывается в патовой ситуа- ции. Выход из положения возможен только в том случае, если заранее обговорен порядок разрешения спора в такой ситуации. 6.6.5. Особые схемы электронной подписи В некоторых ситуациях могут потребоваться схемы элек- тронной подписи, отличные от рассмотренных классических схем. Известны следующие специальные схемы электронной подписи: схема слепой подписи, когда абонент А подписывает доку- мент, не зная его содержимого; схема групповой подписи, которая позволяет верификатору убедиться в принадлежности полученного сообщения неко- торой группе претендентов, но кто именно из членов группы подписал документ верификатор определить не в состоянии; схема разделяемой подписи, которая формируется только при участии определенного количества участников протоко- ла, иначе говоря, данная схема является объединением клас- сической схемы подписи и схемы разделения секрета; схема конфиденциальной (неотвергаемой) подписи, которая не может быть проверена без участия сформировавшего ее участника протокола; схема неоспоримой подписи, в которой подделка подписи может быть доказана. 6.7. Протоколы аутентификации удаленных абонентов 6.7.1. Симметричные методы аутентификации субъекта Аутентификация субъекта может осуществляться с использо- ванием как симметричных, так и несимметричных криптоалго- ритмов. В системах с большим числом пользователей примене- 205 ние симметричных методов требует введения в сеанс связи до- веренной стороны, с которой разделяют секретные ключи все пользователи системы. На рис. 6.6 показана схема процедуры взаимной аутентификации субъектов А и В с использованием доверенной третьей стороны – субъекта С, обладающего секрет- ными ключами AC k и BC k соответственно для взаимодействия с А и В. Последовательность шагов процедуры следующая: 1) субъект А, который хочет взаимодействовать с субъектом В, посылает С сообщение, содержащее идентификаторы субъ- ектов запрашиваемого взаимодействия ; , B A ID ID 2) С, получив сообщение, формирует сеансовый ключ AB k для взаимодействия субъектов А и В и посылает А зашифро- ванное сообщение , , , , AB A BC AB B AC k ID E k ID E содержащее сеансовый ключ для работы с В и шифровку, кото- рая по сути является разрешением для А на работу с В; Пользователь А Пользователь В K AC K BC Генератор ПСЧ K AC K BC Доверенный участник С 1 2 4 3 ID A , ID B E AC (ID B , k AB , E BC (ID A , k AB )) E AB (ID A , x A ), E BC (ID A , k AB )) E AB (h(x A )) Генератор ПСЧ Рис. 6.6. Схема симметричной аутентификации Нидхэма-Шредера с доверенной третьей стороной 206 3) субъект А, расшифровав полученное сообщение, опреде- ляет ключ AB k и разрешение , , AB A BC k ID E которое он расшифровать не может, так как не знает ключа ; BC k после этого А отправляет В сообщение , , , , AB A BC A A AB k ID E x ID E содержащее зашифрованный запрос A x и разрешение, полу- ченное от С; 4) В, прочитав шифровку , , AB A BC k ID E узнает идентификатор субъекта взаимодействия и сеансовый ключ AB k для работы с ним, читает запрос A x ; после этого В формирует ответ на запрос A x h и отправляет А сообщение ; , A B AB x h ID E 5) субъект А, получив сообщение, расшифровывает его и проверяет ответ В; в случае положительного результата про- верки, процесс аутентификации успешно завершается. Пользователь А Пользователь В K AC K BC Генератор ПСЧ K AC K BC Доверенный участник С 1 2 4 3 ID A , ID B E AC (ID B , k AB , E BC (ID A , k AB )) E AB (ID A , x A ), E BC (ID A , k AB )) E AB (h(x A )) Генератор ПСЧ Рис. 6.6. Схема симметричной аутентификации Нидхэма–Шредера с доверенной третьей стороной 207 6.7.2. Схема Kerberos Решение задачи аутентификации в современных информаци- онных системах, представляющих собой совокупность реализо- ванных на различных аппаратно-программных платформах тер- риториально разнесенных компонентов, в соответствии с техно- логией «клиент/сервер» заключается в использовании специаль- ного сервера аутентификации. В настоящее время роль фактиче- ского стандарта сервера аутентификации выполняет Kerberos, продукт разработанный в Массачусетском технологическом ин- ституте (MIT) в середине 1980-х гг. и претерпевший с тех пор ряд принципиальных изменений. Широкому распространению Kerberos способствовало то, что его версия, реализованная в MIT, является свободно распространяемым продуктом. Про- граммные средства, выполняющие аутентификацию по схеме Kerberos, разработаны для всех популярных ОС. Поддержка службы Kerberos предусмотрена в некоторых современных сете- вых ОС. Схема Kerberos – типичный пример реализации сим- метричных методов аутентификации. Система (рис. 6.7) предусматривает взаимодействие между тремя программными компонентами – клиентом С, сервером Kerberos и прикладным сервером S. ПО сервера Kerberos разде- лено по своим функциям на две части: сервер аутентификации AS (Authentication Server) и сервер выдачи разрешений (биле- тов) TGS (Ticket Granting Server). Клиент С – это компьютер, на котором установлено клиентское ПО, способное участвовать во взаимодействии по протоколу Kerberos, и на котором зарегист- рирован какой-либо пользователь. В некоторых случаях при- кладной сервер может являться клиентом некоторого другого сервера (например, сервер печати может пользоваться услугами файлового сервера). Сервер S – субъект, предоставляющий ре- сурсы сетевым клиентам. Клиент С, который хочет обратиться к прикладному серверу для получения его услуг, должен получить разрешение от AS. Разрешение – это зашифрованная информация, передаваемая клиентом серверу S или серверу TGS. Разрешение позволяет сер- веру убедиться в подлинности клиента. Все разрешения, кроме 208 первого, клиент получает от сервера TGS. Первое разрешение, разрешение на доступ к самому TGS, клиент получает от сервера AS. Разрешение – шифровка, полученная на секретном ключе, известном только серверу S и серверу Kerberos, поэтому первый, получив разрешение, может быть уверен, что оно поступило именно от серверу Kerberos. Разрешения – многоразовые, имеющие определенный срок жизни (несколько часов). Когда этот срок истекает, клиент должен вновь пройти процедуру ау- тентификации. При установлении каждого соединения использу- ется временная метка, поэтому в сети должна действовать служ- ба единого времени. Необходимость в сервере TGS объясняется стремлением сократить число сообщений, зашифрованных с ис- пользованием секретного ключа клиента, которому требуются услуги нескольких серверов. Именно поэтому сервер Kerberos «раздваивается» на сервер AS (с ним клиент взаимодействует при помощи секретного ключа AS C k , ) и сервер TGS, с которым клиент осуществляет дальнейшее взаимодействие при помощи только сеансовых ключей TGS C k , . Компрометация сеансового ключа, имеющего очень короткое время жизни, – вещь значи- тельно менее опасная, чем раскрытие секретного ключа. Сервер S K S, TGS 5 Клиент С K AC Генератор ПСЧ C 1 2 Генератор ПСЧ TGS Сервер AS K C, AS Генератор ПСЧ AS K TGS, AS Kerberos Сервер TGS K TGS, AS K S, TGS 3 6 4 Рис. 6.7. Схема Kerberos 209 Процесс аутентификации состоит из пяти (односторонняя ау- тентификация) или шести (взаимная аутентификация) шагов. 1. Клиент С посылает серверу аутентификации сообщение, содержащее идентификаторы клиента и требуемого сервера вы- дачи разрешений, отвечающего за представление соответствую- щей услуги, а также информацию, предназначенную для иден- тификации конкретного запроса: время, свой сетевой адрес и т.п. 2. Сервер аутентификации осуществляет поиск в базе данных Kerberos по идентификатору клиента и идентификатору услуги, находит соответствующие ключи AS C k , и , ,TGS AS k формирует се- ансовый ключ TGS C k , для взаимодействия клиента и сервера вы- дачи разрешений. После этого сервер AS посылает ответ клиен- ту. Этот ответ содержит две шифровки. Первая, полученная на секретном ключе клиента AS C k , , содержит сеансовый ключ TGS C k , для работы с сервером выдачи разрешений, идентифика- тор последнего и срок жизни разрешения клиенту на работу с сервером TGS. Вторая шифровка, полученная на ключе TGS AS k , , – это разрешение (ticket-granting ticket) клиенту на взаимодействие с сервером TGS. В состав второй шифровки, которую клиент прочесть не может, так как не знает ключа TGS AS k , , входят иден- тификаторы клиента и TGS, сеансовый ключ TGS C k , и срок жизни этого разрешения. 3. Получив сообщение, клиент расшифровывает первую его половину на ключе AS C k , проверяет идентификатор запроса, уз- нает сеансовый ключ TGS C k , и срок жизни разрешения на работу с сервером TGS. Таким образом, в результате обмена сообще- ниями с сервером AS клиент получает разрешение на работу с сервером TGS. Затем клиент посылает запрос серверу выдачи разрешений. Сообщение для сервера TGS включает в себя две шифровки. Первая, полученная на сеансовом ключе , ,TGS C k включает в себя идентификаторы клиента и сервера, идентифи- катор запроса и временную метку. Вторая – это «запечатанное» ключом TGS AS k , разрешение на работу с сервером TGS. 210 4. Сервер выдачи разрешений расшифровывает разрешение, узнает сеансовый ключ , ,TGS C k с помощью которого читает пер- вую часть пришедшего сообщения и проверяет идентификатор запроса и временную метку. Удостоверившись в подлинности клиента, сервер TGS вырабатывает сеансовый ключ S C k , для взаимодействия клиента С и сервера S. На знании этого ключа и основывается в будущем взаимная аутентификация C и S. После этого отправляет сообщение клиенту, содержащее зашифрован- ные на ключе TGS C k , сеансовый ключ и срок жизни разрешения клиенту на работу с сервером, а также само это разрешение, за- шифрованное на секретном ключе ,TGS S k 5. Клиент, получив сообщение, расшифровывает первую его часть, из которой извлекает сеансовый ключ S C k , для работы с сервером S и срок жизни разрешения на взаимодействие с серве- ром S. Само «запечатанное» ключом TGS S k , разрешение клиент прочесть не может. Таким образом, в результате обмена с серве- ром выдачи разрешений клиент получает разрешение на даль- нейшее взаимодействие уже с прикладным сервером. Наконец, клиент посылает серверу S сообщение, содержащее зашифро- ванные на сеансовом ключе S C k , свой идентификатор, иденти- фикатор запроса и временную метку, а также разрешение, полу- ченное от сервера TGS. 6. Приняв сообщение от клиента и «распечатав» разрешение, целевой сервер узнает сеансовый ключ S C k , и с его помощью проводит аутентификацию клиента, проверяя идентификатор запроса и временную метку. Ответ сервера клиенту посылается в том случае, когда требуется взаимная аутентификация. Ответ прикладного сервера в этом случае содержит зашифрованный на ключе S C k , результат хеширования метки времени. Сервер Kerberos имеет доступ к базе данных, содержащей идентификаторы и секретные ключи субъектов. Запись каждого пользователя и каждого прикладного сервера в базе данных Kerberos содержит следующие компоненты: идентификатор субъекта; 211 секретный ключ субъекта; дату истечения срока действия секретного ключа; максимальной срок жизни разрешений, выдаваемых субъ- екту; номер версии секретного ключа субъекта; дату последней модификации записи; другую служебную информацию. Секретные ключи субъектов шифруются мастер-ключом Kerberos. Если секретный ключ изменяется нормальным обра- зом (т.е. не в результате компрометации), то старый ключ сле- дует сохранять до тех пор, пока остаются годными билеты, вы- данные с его помощью, так как возможна ситуация, когда один субъект имеет несколько активных ключей. Субъекту, обла- дающему несколькими активными ключами, соответствует не- сколько записей в базе данных. При выдаче разрешений и на- чальной аутентификации в сервере AS всегда используется са- мый свежий ключ. Помимо серверов AS и TGS в системе имеется объект, отве- чающий за управление базой данных, называемый диспетчером базы данных Kerberos DBM (Database Manager), а также сервер распространения ключей Kerberos KDS (Key Distribution Server). 6.7.3. Несимметричные методы аутентификации субъекта Использование криптосистем с открытым ключом позволяет отказаться от серверов аутентификации, однако в системе дол- жен существовать сервер, выдающий сертификаты на исполь- зуемые субъектами взаимодействия открытые ключи. Сертифи- катом принято называть электронный документ, удостоверяю- щий принадлежность данного открытого ключа данному субъ- екту, иначе говоря, аутентичность ключа. Протокол Диффи – Хеллмана. Несимметричные методы ау- тентификации могут быть основаны на использовании механиз- ма электронной подписи. Классическим примером несиммет- ричной аутентификации может служить схема Диффи – Хеллмана, представляющая собой совокупность процедуры выработки об- щего секретного ключа и взаимной аутентификации субъектов 212 взаимодействия. Пусть – примитивный элемент поля Галуа , p GF где p – простое число. Абонент А владеет парой функ- ций: A E – открытой функцией зашифрования и A D – закрытой функцией расшифрования. Абонент В владеет парой функций: B E – открытой функцией зашифрования и B D – закрытой функ- цией расшифрования. Тогда последовательность взаимной ау- тентификации состоит из трех шагов. Схема аутентификации Диффи-Хеллмана 1. Абонент А вырабатывает случайное число A x и отправ- ляет абоненту В сообщение mod p A x 2. Абонент В вырабатывает случайное число , B x вычис- ляет , mod p B x на своем секретном ключе создает подпись p p D B A x x B mod , mod сообщения p p B A x x mod , mod ; затем В вычисляет сеансовый ключ , mod = p k B A x x AB зашифровывает подпись на этом ключе и отправляет А сообщение mod , mod , mod p p D E p B A B x x B AB x 3. Абонент А вычисляет сеансовый ключ , mod = p k B A x x AB с помощью своего секретного ключа создает подпись p p D B A x x A mod , mod сообщения p p B A x x mod , mod , зашифровывает ее на ключе AB k и отправляет В сообще- ние 213 mod , mod p p D E B A x x A AB 4. Если проверка подписи В абонентом А завершилась ус- пешно, т.е. А убедился в справедливости равенства , mod , mod = mod , mod p p p p D E D E B A B A x x x x B AB AB B он может быть уверен в подлинности абонента В. 5. Если проверка подписи А абонентом В завершилась ус- пешно, т.е. В убедился в справедливости равенства , mod , mod = mod , mod p p p p D E D E B A B A x x x x A AB AB A он в свою очередь может быть уверен в подлинности абонента А. Протокол Шнорра – один из наиболее эффективных прото- колов аутентификации. Пусть p и q – простые числа такие, что q делит (p – 1). Шнорр предлагал использовать p разрядностью не менее 512 бит и q разрядностью не менее 140 бит. Пусть p Z g такое, что 1 , mod 1 g p g q Протокол Шнорра основан на отсутствии эффективных ал- горитмов нахождения q Z x по заданному значению p g y x mod при известных p, q и g. Свойство нулевого разглашения знаний для схемы Шнорра пока не доказано. В качестве своего секретного ключа secret А k абонент А выби- рает случайное число из q Z Затем он вычисляет p g secret A k mod ) ( и публикует найденное значение в качестве своего открытого ключа ) ( public A k 214 Схема аутентификации Шнорра 1. Абонент А выбирает случайное число , q A Z x вычис- ляет p g y A x A mod и посылает A y абоненту В. 2. Абонент В выбирает случайное t-разрядное число B x 1) - (2 , 1, , 0 t B x и посылает его абоненту А. 3. Абонент А вычисляет q x k x s B secret A A mod ) ( и посылает s абоненту В. 4. Абонент В проверяет соотношение p k g y B x public A s A mod ) ( и, если оно выполняется, признает подлинность абонен- та А, в противном случае – отвергает. Противник, знающий только открытый ключ q p k public A , , ) ( и g, может пройти аутентификацию только с пренебрежимо ма- лой вероятностью , 2 t зависящей от параметра t. Противник может действовать следующим образом. Он выбирает случай- ным образом 1 2 ..., 1, 0, t B x и q Z s Затем он вычисляет p k g y B x public A s A mod ) ( и посылает A y абоненту В. Запрос , B x полученный от В на вто- ром шаге, совпадет с B x с вероятностью , 2 t и именно с такой вероятностью противник пройдет аутентификацию. Предлагая данную схему аутентификации, Шнорр рекомендовал исполь- зовать t разрядностью не менее 72 бит. Протокол Фейга – Фиата – Шамира. Рассмотрим схему ау- тентификации с нулевым разглашением знаний (см. раздел 6.2). Подобные протоколы используются интеллектуальными карта- 215 ми. Личность владельца карты признается подлинной, если претендент доказывает свое знание секретного ключа. Для реализации схемы необходим центр доверия, который выбирает и публикует целое число вида n = pq, где p и q – про- стые числа, которые держатся в секрете. Предположим, або- нент А является доказывающим, абонент В – проверяющим. Абонент А (или центр доверия) формирует открытый и секрет- ный ключи: выбирает m случайных чисел , , 1 , m i Z s n i и объявляет их секретным ключом ; secret A k вычисляет m чисел , i v удовлетворяющих условию , mod 2 1 - n s v i i и объявляет их открытым ключом public A k Протокол аутентификации Фейга – Фиата – Шамира состоит в t-кратном повторении следующих шагов. Схема Фейга – Фиата – Шамира 1. Абонент А выбирает случайное число , n A Z x вычис- ляет n x y A A mod 2 и посылает его В. 2. Абонент В выбирает случайную двоичную последова- тельность , , 1 , 1 , 0 , 2 1 m j b b b b j m и посылает ее А. 3. Абонент А вычисляет A A x y и посылает его В. 4. Абонент В проверяет равенство n y y j b j A A mod 1 2 ; 216 абонент В принимает доказательство, если проверка за- кончилась успешно во всех t циклах. Вероятность обма- на равна 2 1 mt Контрольные вопросы 1. Дайте определение криптографического протокола. 2. На чем основана стойкость протокола выработки общего секретного ключа? 3. Опишите процедуру разрешения споров при применении протокола ЭЦП. 4. Зачем в схеме ЭЦП применяется операция хеширования? 5. Опишите последовательность формирования и проверки ЭЦП. 6. Приведите пример формирования и проверки цифровой подписи RSA. 7. Перечислите функции генераторов ПСЧ в криптографи- ческих протоколах. 8. Какие криптографические протоколы являются стохасти- ческими? 9. Перечислите функции хеш-генераторов в криптографиче- ских протоколах. 10. Опишите последовательность взаимной аутентификации удаленных абонентов в протоколе Нидхема – Шредера. 11. Разработайте протокол разделения секрета на четыре части. |