logo
Шпоры Ивлиев МСЗКИ

24 Стандарт шифрования данных des

Основу криптографического алгоритма, используемого при проектировании большинства устройств шифрования, составля­ет стандарт шифрования данных DES. Соответствующий ал­горитм принят в качестве стандарта США. Он также по­ддержан Американским национальным институтом стандартов ANSI (American National Standards Institute) и рекомендован для применения Американской ассоциацией банков ABA.

Приведем анализ DES-алгоритма для выявления общего подхода к проектированию алгоритмов шифрования. Для изучения характеристик алгоритма используется программная реализа­ция [VARA86]. В частности, программный подход позволяет анализировать промежуточные результаты в рамках каждого цикла, в то время как реализация в виде интегральной схе­мы дает только окончательный шифрованный текст. Програм­мная реализация удобна также для проведения статистическо­го анализа результатов шифрования. DES-алгоритм предназ­начен для шифрования и дешифрования блоков данных по 64 бит под управлением ключей защиты, имеющих также 64

Дешифрирование должно выполняться с использованием того же ключа, который использовался для шифрования, но с измененным способом адресации битов ключа и так, чтобы процедура дешифрования была обратная процедуре шифрования. Блок, который должен быть зашифрован, подвергается тщательной перестановке IP (Initial Permutation), сложным преобразованиям, зависящим от ключа защиты, и перестановке, которая является обратной по отношению к начальной IP. Преобразования, зависящие от значения ключа, могут быть описаны в виде функции f, называемой функцией шифрования и функцией KS, называемой таблицей ключей

(Key Schedule).

Обозначим через input входную 64-битовую строку, ко­торую следует зашифровать (исходный текст), и output - соответствующую 64-битовую выходную строку (шифрованный текст), L и R - 32-битовые строки и LR - их конкатенацию (объединение) в 64-битовую строку. Пусть KS - функция, которая в зависимости от целого числа п из диапазона 1-16 и 64-битового входного блока KEY формирует 48-битовый блок К. Последний является результатом перестановки битов с блока KEY, поэтому

Алгоритм шифрования может быть представлен в виде схемы CRYPTO 1.

Некоторые характеристики DES-алгоритма

Эффект "обвала"

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

Свойство операции дополнения

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

где Ек - операция шифрования с ключом К;

X - исходный текст;

Е, К, X - операции дополнения (побитовой инверсии).

Недостатки DES-алгоритма

К недостаткам DES-алгоритма относятся:

DES-(Data Encryption Standard) опубликован в 1977 году и предназначен

для защиты несекретной информации в государственных и коммерческих

организациях (банкоматах). Разработчик DES фирма IBM. Первоначально эта

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

"Люцифер".

Характеристики DES.

1. Обработка (шифрование) исходного текста производится блоками по

64 бит каждый.

2. Шифрование сочетает перестановку, замену и гаммирование в

определенной последовательности 16- кратными повторяющимися циклами.

25 В нашей стране в качестве стандарта используется технология, описанная в ГОСТе 28147-89 «Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования». Как видно из названия, этот ГОСТ был принят в 1989 году и с тех пор не изменялся. Но мало кто знает, что этот алгоритм шифрования разработали в КГБ еще в конце 70-х годов. Но стоит ли доверять такому старому алгоритму? Не подведет ли он? И не лучше ли обратить свое внимание на более современные разработки? Что ж, давайте попробуем разобраться в этом вопросе.

Во-первых, нужно учитывать, что алгоритм, описанный в ГОСТе 28147-89, создавался с достаточно большим «запасом прочности». По этому параметру он на порядок превосходил американский DES, который сначала заменили на тройной DES (то есть одну и ту же информацию «прогоняли» три раза), а потом на AES. Таким образом, и на сегодняшний день криптостойкость российского стандарта вполне удовлетворяет всем современным требованиям. Вторая причина большого распространения ГОСТа 28147-89 - наше законодательство. Так, например, государственные организации и многие коммерческие структуры обязаны использовать для защиты данных сертифицированные средства защиты. Однако получение сертификата возможно только в том случае, если «в указанных криптосредствах реализованы криптографические алгоритмы, объявленные государственными или отраслевыми стандартами Российской Федерации». Таким образом, у многих компаний просто-напросто нет выбора. Однако, как мы уже говорили, ГОСТ 28147-89 удовлетворяет всем современным требованиям, а поэтому вряд ли кто-то будет расстраиваться из-за необходимости его использования.

Алгоритм, описанный в ГОСТе 28147-89, является типичным представителем класса симметричных. В его основе лежит так называемая сеть Фейстеля. Принцип ее работы заключается в следующем. Первоначальный блок данных (в ГОСТе 28147-89 это 64 бита) разбивается на несколько подблоков. Часть этих подблоков преобразовывается по определенным законам, а потом накладывается на необработанные подблоки. Затем они меняются местами и снова обрабатываются. И все эти действия повторяются определенное число раз.

На основе сети Фейстеля построен целый ряд различных алгоритмов. Вот только, несмотря на внешнее сходство, их криптостойкость и скорость работы очень сильно различаются. Все зависит от действий, которые выполняются над подблоками. Именно поэтому они и называются «основным криптографическим преобразованием». В ГОСТе 28147-89 используются относительно простые для реализации, быстрые для исполнения и устойчивые к взлому операции. Таким образом, этот алгоритм отличается в лучшую сторону от большинства своих «собратьев».

Алгоритм, описанный в ГОСТе 28147-89, может работать в трех различных режимах. Первый из них - простая замена. В этом случае блоки шифруются независимо друг от друга и от положения в массиве исходной информации. То есть две одинаковые последовательности размером в 64 бита и после обработки останутся одинаковыми. Нужно ли говорить, что это недопустимо для качественного и надежного алгоритма шифрования. Кроме того, в режиме простой замены очень желательно, чтобы объем исходного массива данных был кратен 64 битам. В противном случае наблюдается снижение криптоустойчивости алгоритма к некоторым видам атак.

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

Вторым режимом работы алгоритма, описанного в ГОСТе 28147-89, является гаммирование. Этим словом обозначают «наложение (снятие) на открытые (зашифрованные) данные криптографической гаммы, то есть последовательности элементов данных, вырабатываемых с помощью некоторого криптографического алгоритма, для получения зашифрованных (открытых) данных». В рассматриваемом алгоритме для этой цели используется операция побитового сложения по модулю 2, поскольку она является обратной самой себе и к тому же наиболее просто реализуется аппаратно.

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

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

В ГОСТе 28147-89 описана еще одна очень полезная функция алгоритма шифрования. Речь идет о возможности создания имитовставки. Что это? Имитовставка - контрольная комбинация, зависящая от открытых данных и секретной ключевой информации. Она нужна для того, чтобы обнаружить все случайные или преднамеренные изменения в зашифрованных данных. На первый взгляд кажется, что имитовставка не нужна. Однако на самом деле это не так. Конечно, обнаружить внесенные в текст изменения несложно. Тем более что полноценно заменить одни слова другими без знания ключа нельзя. Но если злоумышленник внесет изменения в файл, полученный путем шифрования бинарной, звуковой, графической или видеоинформации, то при декодировании искажения перейдут и на исходные данныеИтак, как мы видим, алгоритм, принятый в качестве государственного стандарта РФ и описанный в ГОСТе 28147-89, сохраняет свою актуальность и сегодня. Он обеспечивает надежную защиту любых данных и не может быть взломан с помощью известных типов криптографических атак. Хотя, конечно, очень многое зависит от конкретной реализации. Часто бывает так, что на базе надежного алгоритма из-за ошибок при разработке создаются системы шифрования, не удовлетворяющие современным требованиям. А поэтому лучше всегда отдавать предпочтение хорошо зарекомендовавшим себя сертифицированным продуктам.

26 Основной шаг криптопреобразования.

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

Ниже даны пояснения к алгоритму основного шага:

Шаг 0

Определяет исходные данные для основного шага криптопреобразования:

N – преобразуемый 64-битовый блок данных, в ходе выполнения шага его младшая (N 1) и старшая (N 2) части обрабатываются как отдельные 32-битовые целые числа без знака. Таким образом, можно записать N=(N 1,N 2).

X – 32-битовый элемент ключа;

Шаг 1

Сложение с ключом. Младшая половина преобразуемого блока складывается по модулю 232 с используемым на шаге элементом ключа, результат передается на следующий шаг;

Шаг 2

Поблочная замена. 32-битовое значение, полученное на предыдущем шаге, интерпретируется как массив из восьми 4-битовых блоков кода: S=(S 0, S 1, S 2, S 3, S 4, S 5, S 6, S 7), причем S 0 содержит 4 самых младших, а S 7 – 4 самых старших бита S.

Далее значение каждого из восьми блоков заменяется новым, которое выбирается по таблице замен следующим образом: значение блока Si меняется на Si -тый по порядку элемент (нумерация с нуля) i-того узла замены (т.е. i-той строки таблицы замен, нумерация также с нуля). Другими словами, в качестве замены для значения блока выбирается элемент из таблицы замен с номером строки, равным номеру заменяемого блока, и номером столбца, равным значению заменяемого блока как 4-битового целого неотрицательного числа. Отсюда становится понятным размер таблицы замен: число строк в ней равно числу 4-битовых элементов в 32-битовом блоке данных, то есть восьми, а число столбцов равно числу различных значений 4-битового блока данных, равному как известно 24, шестнадцати.

Шаг 3

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

Шаг 4

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

Шаг 5

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

Шаг 6

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

27 Базовые циклы криптографических преобразований.

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

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

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

Цикл зашифрования 32-З:

K 0,K 1,K 2,K 3,K 4,K 5,K 6,K 7,K 0,K 1,K 2,K 3,K 4,K 5,K 6,K 7,K 0,K 1,K 2,K 3,K 4,K 5,K 6,K 7,K 7,K 6,K 5,K 4,K 3,K 2,K 1,K 0

Цикл расшифрования 32-Р:

K 0,K 1,K 2,K 3,K 4,K 5,K 6,K 7,K 7,K 6,K 5,K 4,K 3,K 2,K 1,K 0,K 7,K 6,K 5,K 4,K 3,K 2,K 1,K 0,K 7,K 6,K 5,K 4,K 3,K 2,K 1,K 0.

Каждый из циклов имеет собственное буквенно-цифровое обозначение, соответствующее шаблону «n-X», где первый элемент обозначения (n), задает число повторений основного шага в цикле, а второй элемент обозначения (X), буква, задает порядок зашифрования («З») или расшифрования («Р») в использовании ключевых элементов. Этот порядок нуждается в дополнительном пояснении:

Цикл расшифрования должен быть обратным циклу зашифрования, то есть последовательное применение этих двух циклов к произвольному блоку должно дать в итоге исходный блок, что отражается следующим соотношением: Ц 32-Р(Ц 32-З(T))=T, где T – произвольный 64-битовый блок данных, Ц X(T) – результат выполнения цикла X над блоком данных

Схемы базовых циклов приведены на рисунках 2а-в. Каждый из них принимает в качестве аргумента и возвращает в качестве результата 64-битовый блок данных, обозначенный на схемах N. Символ Шаг(N,X) обозначает выполнение основного шага криптопреобразования для блока данных N с использованием ключевого элемента X.

28 Концепция криптосистемы с открытым ключом

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

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

Обобщенная схема асимметричной криптосистемы с открытым ключом показана на рис.17. В этой криптосистеме применяют два различных ключа: КB - открытый ключ получателя В, которым будет шифровать отправитель A; kВ - секретный ключ получателя В. Генератор ключей целесообразно располагать на стороне получателя В (чтобы не пересылать секретный ключ КВ по незащищенному каналу). Значения ключей КВ и kВ зависят от начального состояния генератора ключей.

Раскрытие секретного ключа kВ по известному открытому ключу КВ должно быть вычислительно неразрешимой задачей.

Характерные особенности асимметричных криптосистем:

1 Открытый ключ КВ и криптограмма С могут быть отправлены по незащищенным каналам, т.е. противнику известны КВ и С.

2 Алгоритмы шифрования и расшифрования

ЕВ: М → С,

DВ: C → M,

являются открытыми.

Рисунок17 - Обобщенная схема асимметричной криптосистемы с открытым ключом

Зщита информации в асимметричной криптосистеме основана на секретности ключа КВ.

У.Диффи и М.Хеллман сформулировали требования, выполнение которых обеспечивает безопасность асимметричной криптосистемы:

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

2 Отправитель А, зная открытый ключ КВ и сообщение М, может легко вычислить криптограмму

С=ЕКB (М)=ЕВ(М). (19)

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

М=DkВ(С)=DB(C)=DB[EB(M)]. (20)

4 Противник, зная открытый ключ КВ, при попытке вычислить секретный ключ kВ наталкивается на непреодолимую вычислительную проблему.

5 Противник, зная пару (КВ, С), при попытке вычислить исходное сообщение М наталкивается на непреодолимую вычислительную проблему.

29 Процедуры шифрования и расшифрования

в криптосистеме RSA

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

1. Пользователь В выбирает два произвольных больших простых числа Р и Q.

2. Пользователь В вычисляет значение модуля N=Р*Q.

3. Пользователь В вычисляет функцию Эйлера

и выбирает случайным образом значение открытого ключа КB с учетом выполнения условий:

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

5. Пользователь В пересылает пользователю А пару чисел (N, КB) по незащищенному каналу.

Если пользователь А хочет передать пользователю В сообщение М, он выполняет следующие шаги.

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

Мi=0,1,2,...,N-1.

7. Пользователь А шифрует текст, представленный в виде последовательности чисел М, по формуле

и отправляет криптограмму

C1, С2, С3,...,Ci, ...

пользователю В.

8. Пользователь В расшифровывает принятую криптограмму

C1, С2, С3,...,Ci, ...,

используя секретный ключ kB, по формуле

.

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

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

Действия пользователя В.

1. Выбирает Р=3 и Q=11.

2. Вычисляет модуль N=P*Q=3*11=33.

3. Вычисляет значение функции Эйлера для N=33:

Выбирает в качестве открытого ключа КB произвольное число с учетом выполнения условий:

Пусть КB=7.

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

КB є T1(mod20).

Решение дает kB=3.

5. Пересылает пользователю А пару чисел (N= 3, kB=7).

Действия пользователя А.

6. Представляет шифруемое сообщение как последовательность целых чисел в диапазоне 0 ... 32. Пусть буква А представляется как число 1, буква В - как число 2, буква С - как число 3. Тогда сообщение CAB можно представить как последовательность чисел 312, т.е. M1 = 3, M2 = 1, M3 = 2. 7. Шифрует текст, представленный в виде последовательности чисел M1, M2 и M3, используя ключ КB = 7 и N = 33, по формуле ,

получает

Отправляет пользователю В криптограмму C1,C2,C3 =9, 1, 29.

Действия пользователя В.

8. Расшифровывает принятую криптограмму C1,C2,C3, используя секретный ключ kB=3, по формуле

Получает Таким образом, восстановлено исходное сообщение: CAB - 3 1 2.

30 С каждым объектом компьютерной системы (КС) связана некоторая информация, однозначно идентифицирующая его. Это может быть число, строка символов, алгоритм, определяющий данный

объект. Эту информацию называют идентификатором объекта. Если объект имеет некоторый идентификатор, зарегистрированный в сети, он называется законным (легальным) объектом; остальные

объекты относятся к незаконным (нелегальным).

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

Следующий шаг-аутентификация объекта (проверка подлинности объекта). Эта процедура устанавливает, является ли данный объект именно таким, каким он себя объявляет.

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

полномочий (авторизацией).

Перечисленные три процедуры инициализации являются процедурами защиты и относятся к одному объекту КС [55].

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

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

(а) получатель должен быть уверен в подлинности источника данных;

(б) получатель должен быть уверен в подлинности передаваемых данных;

(в) отправитель должен быть уверен в доставке данных получателю;

(г) отправитель должен быть уверен в подлинности доставленных данных.

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

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

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

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

• идентификацию - пользователь сообщает системе по ее запросу свое имя (идентификатор);

• аутентификацию - пользователь подтверждает идентификацию, вводя в систему уникальную, не известную другим пользователям информацию о себе (например, пароль).

Для проведения процедур идентификации и аутентификации пользователя необходимы:

• наличие соответствующего субъекта (модуля) аутентификации

• наличие аутентифицирующего объекта, хранящего уникальную информацию для аутентификации пользователя.

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

• внешний аутентифицирующий объект, не принадлежащий системе;

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

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

Протокол идентификации и аутентификации (для схемы 1).

1. Пользователь предъявляет свой идентификатор ID.

2. Если ID не совпадает ни с одним IDi, зарегистрированным в компьютерной системе, то идентификация отвергается - пользователь не допускается к работе, иначе (существует IDi-ID) устанавливается, что пользователь, назвавшийся пользователем i, прошел идентификацию.

3. Субъект аутентификации запрашивает у пользователя его аутентификатор К.

4. Субъект аутентификации вычисляет значение Y=F(IDi, К).

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

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

Простейший метод подтверждения подлинности с использованием пароля основан на сравнении представляемого пользователем пароля РA' с исходным значением РА', хранящимся в компьютерном центре (рис. 5.1). Поскольку пароль должен храниться в тайне, он должен шифроваться перед пересылкой по незащищенному каналу. Если значения РА и РA’ совпадают, то пароль РА считается подлинным, а пользователь - законным [123].

 

 

Рис. 5.1. Схема простой аутентификации с помощью пароля

 

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

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

Например, функция a(×) может быть определена следующим образом:

 

a(P) = EP(ID)

 

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

33 Цифровые сертификаты

Одна из проблем криптосистем с открытым ключом состоит в том, что пользователи должны постоянно оставаться бдительными, чтобы шифровать данные только истинным ключом конкретного человека. В среде свободного обмена ключами через общественные серверы сертификатов, атаки по принципу «man-in-the-middle» («человек в середине») представляют серьёзную потенциальную угрозу. В этом виде атаки некто подсовывает пользователю поддельный ключ с именем фактического реципиента; данные, зашифрованные подставным ключом и перехваченные его обладателем, попадают в чужие руки.

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

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

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

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

Цифровой сертификат состоит из трёх компонентов:

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

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

Рис. 1-8. «Анатомия» сертификата PGP

34 Распространение сертификатов

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

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

Такая система может вылиться в форму простого хранилища-депозитария, называемого общественным сервером сертификатов, или иметь более сложную и комплексную структуру, предполагающую дополнительные возможности администрирования ключей, и называемую Инфраструктурой открытых ключей (Public Key Infrastructure, PKI).

Серверы-депозитарии

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

Инфраструктуры открытых ключей (PKIs)

PKI, как и серверы-депозитарии, имеет системы хранения сертификатов, но, в то же время, предоставляет сервисы и протоколы по управлению открытыми ключами. В них входят возможности выпуска, отзыва и системы доверия сертификатов. Главной же возможностью PKI является введение компонентов, известных как Центр сертификации 4 (Certification Authority, CA) и Центр регистрации (Registration Authority, RA).

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

Как правило, Центром регистрации (ЦР) называется общность лиц, процессов и устройств, служащих целям регистрации новых пользователей в структуре PKI (зачислению) и дальнейшему администрированию постоянных пользователей системы. Также, ЦР может производить «веттинг» -- процесс проверки того, принадлежит ли конкретный открытый ключ своему «законному» обладателю.

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

Роль ЦР-ЦС аналогична той, что выполняет государственный паспортный отдел.

36 Особенности функционирования МЭ на различных уровнях модели OSI

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

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

Проблемы недостаточной информационной безопасности являются "врожденными" практически для всех протоколов и служб Internet. Большая часть этих проблем связана с исторической зависимостью Internet от операционной системы UNIX. Известно, что сеть Arpanet (прародитель Internet) строилась как сеть, связывающая исследовательские центры, научные, военные и правительственные учреждения, крупные университеты США. Эти структуры использовали операционную систему UNIX в качестве платформы для коммуникаций и решения собственных задач. Поэтому особенности методологии программирования в среде UNIX и ее архитектуры наложили отпечаток на реализацию протоколов обмена и политики безопасности в сети. Из-за открытости и распространенности система UNIX стала любимой добычей хакеров. Поэтому совсем не удивительно, что набор протоколов TCP/IP, который обеспечивает коммуникации в глобальной сети Internet и в получающих все большую популярность интрасетях, имеет "врожденные" недостатки защиты. То же самое можно сказать и о ряде служб Internet.

Набор протоколов управления передачей сообщений в Internet (Transmission Control Protocol/Internet Protocol-TCP/IP) используется для организации коммуникаций в неоднородной сетевой среде, обеспечивая совместимость между компьютерами разных типов. Созместимость - одно из основных преимуществ TCP/IP, поэтому большинство локальных компьютерных сетей поддерживает эти протоколы. Кроме того, протоколы TCP/IP предоставляют доступ к ресурсам глобальной сети Internet. Поскольку TCP/IP поддерживает маршрутизацию пакетов, он обычно используется в качестве межсетевого протокола. Благодаря своей популярности TCP/IP стал стандартом де-факто для межсетевого взаимодействия.

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

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

Политика сетевой безопасности каждой организации должна включать две составляющие [20]:

• политику доступа к сетевым сервисам;

• политику реализации межсетевых экранов.

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

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

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

Функциональные требования к межсетевым экранам включают:

• требования к фильтрации на сетевом уровне;

• требования к фильтрации на прикладном уровне;

• требования по настройке правил фильтрации и администрированию;

• требования к средствам сетевой аутентификации;

• требования по внедрению журналов и учету.

37 8.2. Основные компоненты межсетевых экранов

 

Большинство компонентов межсетевых экранов можно отнести к одной из трех категорий:

• фильтрующие маршрутизаторы;

• шлюзы сетевого уровня;

• шлюзы прикладного уровня.

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

 

Фильтрующие маршрутизаторы

 

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

Фильтрующий маршрутизатор обычно может фильтровать IP-пакеты на основе группы следующих полей заголовка пакета [20]:

• IP-адрес отправителя (адрес системы, которая послала пакет);

• IP-адрес получателя (адрес системы, которая принимает пакет);

• порт отправителя (порт соединения в системе-отправителе);

• порт получателя (порт соединения в системе-получателе).

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

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

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

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

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

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

Рис. 8.3. Схема фильтрации трафика SMTP и TELNET

может быть  реализована  фильтрующим  маршрутизатором  или хост-компьютером с возможностью фильтрации пакетов (рис. 8.3).

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

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

• сравнительно невысокую стоимость;

• гибкость в определении правил фильтрации;

• небольшую задержку при прохождении пакетов.

Недостатками фильтрующих маршрутизаторов являются:

• внутренняя сеть видна (маршрутизируется) из сети Internet;

• правила фильтрации пакетов трудны в описании и требуют очень хороших знаний технологий TCP и UDP;

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

• аутентификацию с использованием IP-адреса можно обмануть путем подмены IP-адреса (атакующая система выдает себя за другую, используя ее IP-адрес);

• отсутствует аутентификация на пользовательском уровне.