d9e5a92d

Глава 3. Введение в криптографию. Общие понятия


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

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

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

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

• нотаризация информации (невозможность отказаться от авторства сообщения).

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

Все алгоритмы шифрования делятся на два класса:

• симметричные алгоритмы шифрования;

• асимметричные алгоритмы шифрования.

Симметричные алгоритмы шифрования основаны на использовании обеими сторонами информационного обмена общего секрета, называемого ключом. Знание ключа X полностью определяет криптографическое преобразование Z=EX(Y), которое еще иначе называют засекречиванием сообщения Y. Это преобразование является взаимно однозначным, то есть существует такая функция EX'(Z), что для любых Z и Y, связанных равенством Z=Ex(Y), верно Y=Ex‘(Z). Обратное преобразование часто называют расшифрованием или дешифрованием сообщения Z.

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

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

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

Далее будет подробнее рассказано о других симметричных алгоритмах. В основе таких алгоритмов лежит принцип использования одного ключа относительно небольшого размера. Такие алгоритмы позволяют преобразовывать различные сообщения Y,, Y2, ...,Yn таким образом, что, даже зная значения функции Z=Ex(Y) (i=l, ...,n) для достаточно большого числа п, невозможно определить значение ключа X (отметим, что при использовании схемы Вернама для определения ключа достаточно знать единственную пару значений функции Z и сообщения Y).

Суть асимметричных алгоритмов (иначе схемы, основанные на таких алгоритмах, называют криптосистемами с общественными или открытыми ключами) состоит в следующем. В математике известны такие функции Е, для которых обратная функция D вычисляется достаточно сложно, если не известен некоторый параметр (в криптографических схемах этот параметр становится секретным ключом). Функция Е предоставляется в распоряжение любому желающему отправить сообщение обладателю параметра. Для шифрования информации, предназначенной обладателю параметра, достаточно применить к передаваемому сообщению преобразование Е. Тогда обладатель параметра, используя обратное преобразование D, легко расшифровывает полученное сообщение. Наоборот, лицо, не обладающее заветным параметром, не сумеет вычислить обратное преобразование и, следовательно, восстановить передаваемое сообщение. Понятие «не сумеет» имеет достаточно специфический смысл, который будет разъяснен далее.

Асимметричные алгоритмы являются идеальным механизмом для решения задач обеспечения целостности передаваемой информации и аутентификации ее источника. Решаются эти задачи с помощью схем с открытыми ключами следующим образом. В первую очередь к передаваемому сообщению Y (далее без ограничения общности предполагается, что сообщение Y имеет двоичное представление) применяется преобразование H(Y), называемое хэш-функцией, или дайджестом сообщения, отображающее сообщение Y в двоичную последовательность фиксированной длины (как правило, меньшей длины). Множество значений хэш-функции будет обозначаться М. Таким образом, преобразование H(Y) не является взаимно однозначным (зная значение H(Y) почти всегда невозможно однозначно определить значение Y), и потому его относят к классу односторонних функций. К преобразованию H(Y) предъявляют несколько плохо формализуемых требований, на качественном уровне состоящих в следующем:

• мощность множества М должна быть достаточно большой (на практике используются значения H(Y) длиной от 128 до 256 битов, хотя длина значения хэш-функции определяется конкретной задачей);

Q сообщения Y «равномерно» отображаются с помощью H(Y) в элементы множества М, то есть каждому элементу множества М соответствует примерно одинаковое количество сообщений Y, отображаемых в этот элемент (примерно |А|/|М|, где |А|, |М| — мощности, соответственно, множества всех возможных сообщений Y и множества значений хэш-функции);

• функция H(Y) не должна быть непрерывной, то есть из «близости» значений Y и Y2 не следует «близость» значений H(Yt) и H(Y2).

Для практических целей, очевидно, достаточно, чтобы выполнялось неравенство |М| < |А|. Легко показать, что в этом случае вероятность того, что для любых случайно выбранных сообщений Y, и Y2 выполняется H(Yj)=H(Y2), равна |М|"'. В случае, когда функция H(Y) отображает сообщения в множество всех двоичных последовательностей длины т, вероятность события H(Y,)=H(Y2) равна 2 т. Длина значения хэш-функции на практике определяется вероятностью того, что значения хэш-функции от двух случайно выбранных сообщений не равны друг другу. Например, при т=160 такая вероятность приблизительно равна 0,68* 10148, что делает событие H(Y,)=H(Y2) фактически невероятным.

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

Для проверки (верификации) цифровой подписи принимающая сторона применяет к s обратное преобразование Е и полученное значение hj=E(s) сравнивает со значением h2=H(Yr), где Yr — полученное сообщение, которое в общем случае может отличаться от переданного сообщения (например, из-за попытки исказить переданное сообщение).

Если hj=h2, то ЭЦП верна, что, во-первых, аутентифицирует источник информации (передающую сторону), а во-вторых, подтверждает целостность полученного сообщения (Y=Yr). Напомним читателю, что целостность сообщения подтверждается с вероятностью того, что значения хэш-функции от двух различных аргументов совпадают.

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

Для решения задачи обеспечения конфиденциальности передаваемой информации обычно применяются симметричные алгоритмы. Если открытое и закрытое преобразования в асимметричном алгоритме определены на одном множестве сообщений и являются коммутативными, то есть выполняется равенство E(D(Y))=D(E(Y)), то асимметричный алгоритм может использоваться и для шифрования сообщений. Действительно, передающая сторона преобразует сообщение Y в сообщение E(Y) с помощью открытого преобразования адресата сообщения. Тогда обратное преобразование сможет выполнить только получатель сообщения, а значит, содержание Y будет известно только адресату, что и требовалось получить.

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

Комбинирование симметричных и асимметричных алгоритмов мастерски реализовано в протоколе SET с целью оптимизации времени выполнения транзакции ЭК.

Краткий обзор симметричных алгоритмов шифрования

Обзор начнем с самого популярного в мире симметричного алгоритма шифрования — алгоритма DES (Data Encryption Standard).

Алгоритм DES был разработан фирмой IBM и в 1977 г. принят Национальным институтом стандартов и технологий (National Institute of Standards and Technology) в качестве стандарта Правительства США для шифрования информации категории «less-than-top-secret» (ниже, чем высшей категории секретности). С тех пор он повторно сертифицировался в качестве такого стандарта каждые 5 лет вплоть до 1993 г. В 1998 г. Национальный институт стандартов и технологий США отказался сертифицировать DES, что было связано с тем, что уровень развития вычислительной техники сделал возможным вскрытие DES относительно дешевыми средствами.

DES является так называемым «блочным шифром» (когда шифруемая информация обрабатывается блоками фиксированной длины, в случае DES длина блока составляет 64 бита) и имеет ключ длиной 56 битов (ключ представляется двоичной последовательностью длиной 64 бита, которая получается из последовательности битов ключа добавлением после каждых 7 битов ключа бита проверки на нечетность; таким образом, в двоичном представлении ключа в позициях 8, 16, 24,..., 64 стоят биты проверки на нечетность).

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

Очень схематично опишем работу алгоритма DES. Сначала 64-битовый блок шифруемой информации W подвергается начальной фиксированной перестановке (каждый бит w занимает положение, задаваемое специальной таблицей, определенной DES). Получившийся в результате блок w представляется в виде W=L(0)R(0), где L(0),R(0) соответственно первые и последние 32 бита W.

Алгоритм DES является циклическим. Если вычислены значения L(и-1), R(n-1)OT4 I <г< Пі,то L(n), R(n), определяются следующимиравенствами:

L(n)=R(n-l);

R(n)“L(n-l)®(R(n-l),K(n));

где Ф означает побитовое сложение, функция / определенадалее, а К(п) — 48-битовые последовательности, получаемые из ключа DES с помощью фиксированного набора определенных в стандарте DES перестановок, сдвигов и подстановок. Криптотекст оригинального блока W представляет собой блок L(16)R(16).

Очевидно, что расшифрование криптотекста осуществляется с помощью следующего набора равенств:

R(n-1)-L(n);

L(n-l)=R(n)®(L(n),K(n))

для 1 < и < !f.i, После вычисления с помощью этих равенств значений L(0), R(0) расшифрование начального блока очевидно.

Функция /(х,у), где х — двоичная переменная длиной 32 бита, а у — переменная длиной 48 битов, имеет областью допустимых значений множество всевозможных последовательностей длиной 32 бита и строится следующим образом. Переменная х «расширяется» до блока xt длиной 48 битов с помощью определенной в стандарте DES следующей таблицы:

32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
После такого «расширения» блок х, побитно складывается по модулю 2 с блоком у. Результирующий блок В, состоящий из 48 битов, делится на 8 шестибитовых блоков В=В1В2В3В4В5В6В7В8. В свою очередь, каждый из этих восьми блоков преобразуется в четырехбитовые блоки А1А2А3А4А5А6А7А8 с помощью специальных нелинейных преобразований S,,..., S8. Каждое S-преобразование задается определенной в алгоритме DES таблицей, состоящей из 4 строк и 16 столбцов. Элементами таблицы являются целые десятичные числа, принимающие значения от 0 до 15.

Рассмотрим таблицу для преобразования S7. В соответствии с DES таблица имеет следующий вид:

4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6
1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12
Строки таблицы пронумерованы сверху вниз от 0 до 3, а столбцы — слева направо от 1 до 16.

Тогда преобразование S7, отображающее В7 (последовательность из 6 битов Z,,Z2, Z„ Z4, Z5, Z6) в Ay, строится следующим образом. Определяются два числа 0<St<3h1<C,< 1 б, двоичные представления которых соответственно равны ST= (Z,Z6), CL=(Z2Z3Z4Z5). Далее из таблицы выбирается элемент, расположенный на пересечении строки ST и столбца CL. Вспомним, что элементами таблицы являются числа от 0 до 15. Поэтому для двоичного представления любого числа таблицы достаточно 4 битов. Двоичное представление выбранного элемента таблицы и есть последовательность А7.

Завершается определение функции / применением к 32-битному блоку А,А2А3А4А5А6А7А8 определенной в стандарте DES перестановки.

Алгоритм DES обладает рядом интересных свойств. Первое свойство, касающееся симметрии, почти очевидно и состоит в том, что если в шифруемом блоке и ключе DES все 0 заменить на 1 и наоборот, то в результате шифрования получится блок, который образуется из первоначального криптотекста инверсией 0 и 1. Действительно, в DES используются только операции перестановки, подстановки, сдвиги и сложение по модулю 2, которые не зависят от того, как «называются» цифры 0 и 1. Второе свойство носит название лавинообразного эффекта и является весьма желательным с точки зрения секретности: незначительное изменение исходного сообщения или ключа приводит к большим изменениям в криптотексте.

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

Сегодня известны два метода вскрытия DES. Первый метод состоит в полном переборе всех возможных вариантов ключа и их проверки на правильность расшифрования до получения истинного значения. В случае DES необходимо перебрать 256 (или примерно 7,2x1016) возможных вариантов ключа.

Конечно, прогресс вычислительной техники за последние годы был настолько большим, что перебор всех возможных вариантов ключа DES уже не кажется сейчас столь же невероятной задачей, какой он представлялся еще в 1993 г. Известны две успешные атаки на алгоритм DES, совершенные в 1999 г. с привлечением компьютеров, подключенных к Интернету (open project). В первом случае ключ был скомпрометирован примерно за 3 месяца, и для его поиска было проанализировано 85 % всех возможных значений ключа. Во втором случае ключ был вскрыт за 6 недель, и для этого потребовалось перебрать около 25 % всех значений ключа. Кроме того, известен случай, когда компьютер, построенный за деньги организации Electronic Privacy Information Center и состоящий из 1728 процессоров, обеспечивающих перебор 88 млрд вариантов ключа в секунду, вскрыл DES за 56 часов работы.

В результате сегодня алгоритм DES уже не считается надежным, и в качестве наиболее простой альтернативы ему предлагается алгоритм Triple DES (другое обозначение — 3DES), использующий ключ длиной 112 битов.

Другой метод вскрытия DES называется дифференциальным криптоанализом. Он позволяет уменьшить число проверяемых ключей, но требует наличия криптотекстов для 247 выбранных значений шифруемых блоков. Трудно представить ситуацию, когда дифференциальный криптоанализ мог бы использоваться на практике. Поэтому этот метод имеет больше теоретическое, чем прикладное значение.

Важным достоинством DES является его высокая производительность. Так, DES быстрее алгоритма RSA (см. далее) той же криптостойкости, что и DES (для этого длина ключа в RS А должна быть равна 384 бита), в 100 раз, если используется программная реализация обоих криптоалгоритмов, и в 1000—10 000 раз, если применяется реализация алгоритмов в специализированных вычислительных устройствах, называемых Hardware Security Module.

Даже программная реализация DES на 486 PC позволяет шифровать данные со скоростью 400 Кбит/с.

Экспорт программного обеспечения, использующего DES, до последнего времени контролировался Агентством национальной безопасности США. В результате в экспортируемом программном обеспечении использовался DES с ограниченной длиной ключа, равной 40 бит.

Как уже отмечалось, в 1998 г. Национальный институт стандартов и технологий отказался сертифицировать DES в качестве стандарта Правительства США.

После нескольких лет обсуждений американский Национальный институт стандартов и технологий 2 октября 2000 г. утвердил вместо DES новый стандарт блочного симметричного алгоритма шифрования AES (Advanced Encryption Standard).

Новый стандарт имеет очень хорошие шансы стать международным, если не де-юре, то, по крайней мере, де-факто. Во-первых, он был принят на основе открытого конкурса, в котором участвовали алгоритмы, предложенные математиками из многих стран (США, Канады, Австралии, Бельгии, Германии, Норвегии, Франции, Южной Кореи, Японии и даже Коста-Рики). Во-вторых, победителем стал алгоритм Rijndael, разработанный бельгийскими криптографами Винсентом Рэменом и Ионом Даменом. Название этого алгоритма образовано из первых букв фамилий его авторов, поэтому в транскрипции с фламандского оно произносится примерно как «рэндал». Бельгийское, а не американское происхождение Rijndael наверняка поможет AES получить признание в Европе, долгое время с подозрением относившейся к DES. Алгоритм Rijndael был подвергнут скрупулезному анализу не только специалистами Национального института стандартов и технологий и Агентства национальной безопасности США, но и их конкурентами, среди которых были самые блестящие криптографы и криптоаналитики мира. Однако никому не удалось выявить уязвимые места этого алгоритма.

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

Большое распространение в последние годы получил симметричный алгоритм Triple DES. Этот алгоритм использует ключ, состоящий из двух ключей DES, и состоит из трех шагов. На первом шаге с помощью первого ключа и алгоритма DES 64-битный блок шифруется. На втором шаге с помощью второго ключа и в соответствии с алгоритмом DES полученный на первом шаге криптотекст дешифруется. На последнем, третьем шаге результат дешифрования, полученный на втором шаге, вновь шифруется с помощью первого ключа и алгоритма DES. Полученный 64-битный блок является криптотекстом Triple DES. Таким образом, алгоритм Triple DES требует трехкратного использования DES, откуда и происходит его название.

Очевидно, что для вскрытия алгоритма Triple DES методом полного перебора потребуется проверить 2112(или примерно 5,2х1033) различных ключей.

Скорость шифрования алгоритма Triple DES примерно в 3 раза ниже производительности DES и в случае программной реализации алгоритма на компьютере 486 PC составляет около 150 Кбит/с.

Следуя примеру США в разработке открытого национального стандарта шифрования, в 1989 г. государственный стандарт шифрования данных для сетей ЭВМ приняли в СССР. Он получил обозначение ГОСТ 28147-89 и имел гриф «Для служебного пользования» до конца существования самого СССР. В России он был принят официально с 1992 г. как стандарт шифрования данных наряду с другими бывшими стандартами СССР. Стандарт был формально объявлен полностью открытым в мае 1994 г. Стандарт ГОСТ 28147-89 так же, как и DES, является блочным шифром. Длина блока информации составляет также 64 бита. Длина ключа равняется 256 битам, и ни о какой практической возможности перебора всех допустимых вариантов ключа не только сегодня, но и в XXI веке не может быть и речи.

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

В 1990 г. К. Лэй и Дж. Мэсси (Швейцария) предложили проект международного стандарта шифрования данных, получивший обозначение IDEA (International Data Encryption Algorithm), который в международном криптографическом сообществе оценивается весьма высоко и за последние годы усилиями международных организаций по стандартизации (прежде всего европейских) активно выдвигался на роль официального общеевропейского стандарта шифрования данных. Длина ключа алгоритма IDEA равна 128 битов для шифрования блока длиной 64 бита. Как будет показано далее, алгоритм будет оставаться стойким к взлому на протяжении нескольких ближайших десятилетий.

Алгоритм IDEA использует три группы операций — побитовое сложение по модулю 2, сложение по модулю 216, умножение по модулю 216+1. Операции производятся над блоками длиной 16 битов, получающимися в результате деления шифруемого блока на 4 подблока. Алгоритм является циклическим — используется 8 циклов преобразований.

Сегодня алгоритм IDEA запатентован в США и большинстве европейских стран. Держателем патента является компания Ascom-Tech. Некоммерческое применение стандарта является бесплатным.

Алгоритм IDEA быстрее Triple DES, но медленнее DES. Скорость шифрования алгоритма в случае его программной реализации на компьютере 486 PC составляет около 200 Кбит/с.

Алгоритм Skipjack был разработан Агентством национальной безопасности США для проектов Клиппер-чип (Clipper Chip) и Кэпстоун-чип (Capstone chip). Алгоритм использует ключ длиной 80 битов и использует 32 цикла на каждую операцию шифрования/дешифрования. Проект Клиппер-чип был объявлен администрацией президента США в 1994 г. и должен был положить начало внедрению в США «Стандарта шифрования с депонированием ключа». Главный замысел проекта состоял в том, чтобы по решению суда предоставить правоохранительным органам беспрепятственный доступ к шифруемой с помощью Клиппер-чипа информации. Для этого в чипе используется алгоритм Skipjack с двумя ключами. Знание одного из ключей (мастер-ключа) достаточно для того, чтобы было возможно дешифровать любое сообщение, зашифрованное с помощью Клиппер-чипа. При изготовлении микросхемы этот мастер-ключ разделялся на две половины, подлежащих хранению в государственных организациях. Если правоохранительные органы получают необходимую санкцию в суде, они могут получить обе половины ключа и читать любую информацию, шифруемую с помощью соответствующей микросхемы. Сегодня можно утверждать, что идея проекта Клиппер-чипа провалилась. В то же время, известно, что Агентство национальной безопасности использует алгоритм Skipjack для шифрования собственных сообщений. Это подтверждает высокий уровень криптостойкости этого алгоритма.

Алгоритмы RC2 и RC4 — шифры с переменной длиной ключа для очень быстрого шифрования больших объемов информации (были разработаны Роном Райвестом). Эти два алгоритма быстрее, чем DES, и способны повышать степень защиты за счет выбора более длинного ключа. RC2 — блочный алгоритм, и его можно применять как альтернативу DES. RC4 представляет собой потоковый шифр и работает почти в десять раз быстрее DES.

Результаты сравнительного анализа рассмотренных алгоритмов приведены в табл. 3.1.

Таблица 3.1. Результаты сравнительного анализа симметричных алгоритмов шифрования
Алгоритм Криптостойкость Производительность (для 486 PC, Кбит/с) Длина ключа (бит)
DES Низкая 400 56
3DES Хорошая 150 112
IDEA Хорошая 200 128
3IDEA Очень хорошая -100 256
Таблица3.1.
Алгоритм Криптостойкость Производительность (для 486 PC, Кбит/с) Длина ключа (бит)
Skipjack Хорошая -400 80
CUPPER chip Хорошая 80

Краткий обзор асимметричных алгоритмов шифрования

Большинство современных асимметричных алгоритмов базируется на сложности решения следующих математических задач:

• Задача факторизации (разложения на множители) большого числа: умножение двух больших чисел является полиномиальной от размеров сомножителей по сложности задачей. При этом обратная задача — разложения на сомножители — является чрезвычайно трудоемкой, так, для разложения на множители числа длиной 200 цифр требуется не менее 1024 арифметических операций, что с вычислительной точки зрения является нереализуемой задачей. На сложности решения задачи факторизации основан алгоритм RSA.

• Задача нахождения дискретного логарифма. С точки зрения вычислительной сложности достаточно легко выполнить операцию возведения в степень в конечном поле, но для решения обратной задачи — поиска дискретного логарифма — потребуется практически полный перебор элементов поля; на сложности решения задачи логарифмирования основаны алгоритмы DSA, EGSA, Diffie-Hellman.

• Сложность декодирования в некоторых кодах, исправляющих ошибки, велика: достаточно легко получить кодовое слово (перемножить матрицы), но по кодовому слову найти базовое — задача вычислительно трудная. Этот метод редко используется на практике (известна криптосистема МсЕНесе, использующая коды Гоппа).

Первой и наиболее известной в мире системой цифровой подписи стала система RSA, математическая схема которой была разработана в 1977 г. в Массачусетском технологическом институте (США) и запатентована в США в 1982 г. Она называется так по первым буквам фамилий авторов: R. Rivest, A. Shamir, L. Adleman.

В самых общих чертах система RSA состоит в следующем. Пусть р и q — два различных больших случайно выбранных простых числа (имеющих обычно не менее 100 разрядов в своем десятичном представлении).

Обозначим

Глава 3. Введение в криптографию. Общие понятия


Случайно выберем большое целое d, взаимно простое с ф(п), и определим 1<е<ф(п), удовлетворяющее сравнению:

e*ds 1 (mod <p(n)).

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

Числа n, e и d называются, соответственно, модулем, экспонентой зашифрования и экспонентой расшифрования. Числа п и е образуют открытый ключ, тогда как оставшиеся числа р, q, ф(п) и d являются секретными. На практике следует оставить в качестве секретного ключа только экспоненту расшифрования d, а числа р, q, ф(п) могут быть уничтожены.

Процедура шифрования в схеме RSA определяется равенством

D(Y)-YC (mod n)°Z,

а процедура расшифрования — равенством

E(Z)-Zd (mod n)-Y

Докажем, что E(D(Y))=Y. Поскольку e*d-C*(p(n)+l, при некотором

В соответствии с хорошо известной в теории чисел теоремой Эйлера

у"-*<">-|> = у (moj п); что и доказывает равенство E(D(Y))=Y.

Для определения двух больших простых чисел р и q произвольно выбирается нечетное целое число г подходящего размера (скажем, 100-разрядное) и проверяется на простоту с помощью тестов Соловея-Штрас-сена В случае если г не проходит тест на простоту, процедуре проверки подвергается число г+2 и т. д.

По теореме Чебышева о функции распределения числа простых чисел существует примерно (10|ОО)/1п(10|ОО)-(10Э9)/1п(1099) 100-разрядных простых чисел (здесь In означает натуральный логарифм). Если это число сравнить с числом С! - Ш ¦ 2 всех 100-разрядных нечетных чисел, видно, что вероятность успеха для конкретного теста приблизительно равна 0,00868.

Как следует из определения схемы RSA, секретное и обратное преобразования являются коммутативными, что означает, что алгоритм RSA может использоваться для шифрования информации. Это свойство является чрезвычайно важным и широко используемым на практике. Операцией, необходимой для зашифрования и расшифрования, является возведение в степень ar (mod n). Для ее реализации на практике используется метод последовательного возведения в квадрат (а2, а4, а8,...). Если k=[log2r]+l, то можно показать, что для получения аг (mod n) методом последовательного возведения в квадрат потребуется не более 2*к+1 произведений.

Обычно на практике экспонента расшифрования выбирается небольшой по размеру (иногда экспонента расшифрования одна и та же для целых групп пользователей). Это делает процедуру шифрования быстрее процедуры расшифрования, а процедуру верификации подписи быстрее процедуры подписывания. Алгоритмически процедуры с открытым ключом требуют О(К2) операций, с закрытым ключом — О(К3) операций, а процедура генерации ключей — О(К4) операций, где К — число битов в двоичном представлении модуля п.

Известны аппаратно-программные реализации алгоритма RSA, имеющие производительность более 600 Кбит/с при п=512 бит. Существуют два подхода к вскрытию алгоритма RSA. Первый состоит в попытке разложения п на простые множители (задача факторизации). Старейший и самый медленный метод разложения, решето Эратосфена, гарантирует решение задачи за проверок. Асимптотически самые быстрые алгоритмы факторизации требуют времени работы порядка для произвольно малого .

Другой метод вскрытия RSA состоит в нахождении е-го корня по модулю п.

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

Сегодня криптосистемы RSА с модулем 384 бита считаются легко вскрываемыми, с модулем 512 битов — вскрываемыми правительственными службами, 784 бита — достаточно надежными, 1024 бита — надежными на ближайшие десятилетия.

В последние годы специалистам по компьютерной теории чисел с помощью весьма изощренных методов и мощных вычислительных систем (использовались самые быстрые суперкомпьютеры типа CRAY-3 или распределенные сети из нескольких сотен VAX-станций) удается иногда разлагать на множители целые числа из 150 десятичных знаков.

Алгоритм RSA де-факто является международным стандартом ЭЦП. Однако при рассмотрении вопроса о возможности практического использования метода RSA существуют следующие аргументы против:

• метод RSA защищен патентом США, и для его использования в коммерческих продуктах необходимо лицензионное соглашение с держателем патента — корпорацией RSA Data Security (США);

• для обеспечения стойкости подписи на уровне 1018 необходимо использовать целые числа длиной не менее 360 битов (или 108 десятичных знаков) каждое, что требует достаточно больших вычислительных затрат;

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

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

Другой распространенный асимметричный алгоритм шифрования EGS А был разработан в 1984 г. американцем Т. Эль-Гамалем. Этот алгоритм не защищен патентом, что стало одним из доводов, использованных в августе 1991 г. Национальным институтом стандартов и технологий США для обоснования выбора алгоритма EGSА в качестве основы для национального стандарта DSA (Digital Signature Algorithm) перед комиссией Конгресса США.

Протокол подписи EGSA строится следующим образом. Рассматривается конечное поле GF(p), где р — большое простое число. Секретным ключом создания подписи служит целое число х, 0<x<q. Открытым ключом проверки подписи — порядок поля р, образующая а подгруппы простого порядка q мультипликативной группы поля GF(p) и экспонента b — a* (mod р)

Для создания подписи сообщения m, 0<m<q, выполняются следующие действия:

1. Генерируется случайное число k, 0<k<q.

2. Находится г, 0<г<р, такое, что r = ak(mod р)

3. Находится число s, являющееся решением сравнения ю s хг ;¦^ко-ккі

Подписью для сообщения m является пара (г, s).

Для проверки подписи выполняются следующие действия:

1. Проверяется неравенство г<р. Если оно не выполняется, подпись неверна.

2. Проверяется сравнение ;?" = Ь'г(mod р). Если сравнение выполняется, то подпись подлинная, в противном случае — нет.

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

неотрицательном с. Поскольку а — образующая подгруппы простого порядка q мультипликативной группы, = :1 {mod р) и потому выполняется am = bT(mod р)

По сравнению с методом RSA алгоритм EGSA имеет целый ряд преимуществ:

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

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

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

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

Схема цифровой подписи К. Шнорра напоминает алгоритм EGSA. Рассматривается конечное поле GF(p), где р — большое простое число. Секретным ключом создания подписи служит целое число х, 0<x<q.

Открытым ключом проверки подписи служат порядок поля р, образующая а подгруппы простого порядка q мультипликативной группы поія GF(p) и ІІЛ'І іоі іеі I іа 1» на'(т«кІ р)

Для создания подписи сообщения m выполняются следующие действия:

1. Генерируется случайное число k, 0<k<q.

2. Находится г, 0<г<р, такое, что г s а k(mod р).

3. Находится e=h(m||r), где h — хэш-функция, т||г — конкатенация сообщения m и г.

4. Находится число s, 0<s<q, такое, что выполняется сравнение

s = Іх-жеСтжИ q|]i •

Подписью для сообщения m является пара (e,s).

Для проверки подписи выполняются следующие действия:

1. Вычисляетсяг„0<г,<р,такое,чтовьтолняетсясравнение: =а b (пкхір)

2. Нахо іи іся е^ИиСтЦгц)

3. Проверяется равенство е=е,. Если оно выполняется, то подпись подлинная, в противном случае — нет.

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

г, = а<,+и,(пкх1 р). Поскольку, как следует из схемы Шнорра, выполняются равенства

s+xe=Aq+b,

k-Bq+b

при некоторых целых А,В, b, то ivj .? ; в і. ¦< і j. Отсюда следует условие проверки подписи.

Как и в схеме Эль-Гамаля, повторение одного и того же случайного числа к в течение срока действия ключа х приводит к его раскрытию. Обзор не был бы полным без упоминания о первом асимметричном алгоритме шифрования — алгоритме Diffie-Hellman. Алгоритм Diffie-Hellman сегодня активно применяется для решения задачи организации обмена ключами в системах со многими пользователями.

Суть алгоритма состоит в следующем. Все операции производятся в некотором конечном поле GF(q) с примитивным элементом g. Порядок поля q представляет собой большое число (в алгебре доказывается, что порядок любого конечного поля представляет собой степень некоторого простого числа; на практике в качестве q используется простое число). Теперь рассмотрим двух участников криптосистемы — А и В. Каждый из них генерирует для себя секретное число (соответственно, а и b), которое хранится в секрете. Кроме того, каждый участник системы вычисляет в поле GF(q) величину ga и gb, соответственно. Вычисленные экспоненты являются публичными открытыми ключами, известными всем участникам криптосистемы.

Тогда, если А хочет организовать защищенное соединение с В, А генерирует сессионный ключ для некоторого симметричного алгоритма

шифрования следующим образом: А берет публичный ключ стороны В — gb — и возводит его в степень своего секретного ключа а. В результате получается ключ g(a*b). Очевидно, что этот же ключ может быть получен и стороной В на основании знания собственного секретного ключа b и открытого ключа А — ga.

Вскрытие алгоритма Diffie-Hellman близко к решению задачи нахождения логарифма в дискретном конечном поле, являющейся NP-полной задачей.

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

В последнее время большое внимание уделяется алгоритмам ЕСС (Elliptic Curve Cryptography), основанным на применении конструкций, называемых эллиптическими кривыми. В основе этих алгоритмов лежит тот факт, что для уравнения ахх-Ь относительно х при известных а и b и при условии, что a, b, x принадлежат эллиптической кривой Е, не известно другого алгоритма решения, кроме перебора всех возможных значений х. Более того, в силу сложности самой конструкции эллиптических кривых даже такой простой способ ее решения, как полный перебор, трудно оценить с вычислительной точки зрения. Поэтому оценки надежности систем цифровой подписи ЕСС до последнего времени считались специалистами существенно менее обоснованными, чем аналогичные оценки для задачи разложения на множители и дискретного логарифмирования. Лишь за последние 4-5 лет доверие аналитиков к конструкциям эллиптических кривых существенно возросло. По современным оценкам сложности при уровне надежности алгоритмов ЕСС, соответствующим криптостойкости алгоритмов, основанным на задаче дискретного логарифмирования с длиной ключа 512 битов, можно ограничиться эллиптической кривой, точки которой описываются парами целых чисел, каждое из которых имеет длину 160 битов. Это позволяет сократить общую длину записи секретного ключа с 512 битов до 320, что, в свою очередь, уменьшает сложность вычислений (а значит, и время) в 2,4 раза. При этом в случае ЕСС сложность верификации ЭЦП в 36-480 раз больше, чем при использовании RSA

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

В России приняты стандарты: ГОСТ Р 34.10-94 «Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма» и ГОСТ Р 34.11-94 «Функция хэширования». В основу российского стандарта положены схемы Эль-Гама-ля и Шнорра.

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

MD2, MD4 и MD5 — алгоритмы дайджеста, разработанные Роном Рай-вестом. Каждый из них вырабатывает 128-битный хэш-код. Алгоритм MD2 — самый медленный, MD4 — самый быстрый. Алгоритм MD5 можно считать модификацией MD4, в котором скоростью пожертвовали ради увеличения надежности.

SHA-1 (Secure Hash Algorithm) — это алгоритм вычисления дайджеста сообщения, вырабатывающий хэш-код длиной 160 битов. Алгоритм SHA одобрен правительством США (как часть проекта Capstone). Он надежнее алгоритмов MDx, так как вырабатывает более длинный хэш-код, что снижает вероятность того, что разные входные последовательности будут преобразованы в одно значение хэш-кода.

В российском стандарте ГОСТ Р 34.11-94 длина дайджеста определена равной 256 битам.

Методы оценки криптостойкости

Остановимся теперь на оценке криптостойкости сегодняшних криптографических алгоритмов. Начнем с описания модели вскрытия секретного ключа.

Закон Мура, в соответствии с которым вычислительная производительность микропроцессоров увеличивается в 2 раза каждые 18 месяцев или, что то же самое, в 100 раз каждые 10 лет. Сегодня типовой компьютер (Pentium based PC), подключенный к Интернету, имеет производительность около 100 MIPS (под 1 MIPS понимается производительность старого компьютера DEC VAX 11/780). Следовательно, средняя производительность PC в 2010 г. будет составлять 10 000 MIPS.

Оценки общего количества компьютеров в мире показывают, что сегодня их число составляет 100 миллионов. Число компьютеров за 10 лет увеличивается в 10 раз. Другими словами, в 2010 г. число компьютеров станет равно 1 миллиарду. По оценкам специалистов, 0,3 % всех компьютеров, подключенных к Интернету, могут быть вовлечены в криптоатаку (такие атаки относятся к классу Open Project и больше рассчитаны на общественное мнение, чем действительно направлены на компрометацию секретного ключа). Предполагается, что в будущем доля компьютеров, которые могут быть вовлечены в криптоатаку, составит 0,1 %.

Кроме атак, относящихся к классу Open Project, существуют атаки, принадлежащие классу Covert Project, суть которых состоит в том, что используются недоиспользованные циклы корпоративных вычислительных систем. Например, вычислительная мощность системы только одной компании Sun Microsystems составляет 100 000 MIPS. Таким образом, уже в 2010 г. вычислительная мощность, доступная для атаки класса Covert Attack, будет составлять 100 млн MIPS.

Предполагается, что разумная оценка для времени, затрачиваемого на криптоатаку, — 1 год.

В таблице приведены доступные вычислительные мощности, выраженные в MY (1MY=MIPS*1 год).

Таблица 3.2. Сравнительные оценки доступной вычислительной мощности
Год Covert Attack Open Project
2000 10s 10'
2010 10" 10“
2020 10й 10“
Из этой модели, в частности, следует, что сегодня надежными могут считаться симметричные алгоритмы с длиной ключа не менее 80 битов. На вскрытие алгоритма DES, о котором говорилось выше, было потрачено 0,5 MY, что находится в хорошем соответствии с данными приведенной таблицы.

Другой подход к оценке криптостойкости сегодняшних алгоритмов шифрования приведен в книге Брюса Шнайера «Applied Cryptography». В книге приведены данные по затратам на создание компьютера (цены 1995 г.), необходимого для взлома симметричного алгоритма с различной длиной ключа. Некоторые из этих данных приведены в таблице 3.3.

Таблица 3.3. Затраты на взлом симметричного алгоритма в зависимости от длины ключа
Стоимость в тыс. $ 40 битов 56 битов 64 бита 80 битов 128 битов
100 2 сек 35 час 1 год 70000 лет 10“ лет
1000 0.2 сек 3.5 час 37 дней 7000 лет 10“ лет
100 000 2 мс 2 мин 9 час 70 лет 10“ лет „ &
Таблица 3.3. (продолжение)
Стоимость в тыс.$ 40 битов 56 битов 64 бита 80 битов 128 битов
1 000 000 0,2 мс 13 сек 1 час 7 лет 10“ лет
ТОО 000 000 2 мкс 0,1 сек 32 сек 24 дня 10й лет
Наконец, представляет несомненный интерес соответствие длин ключей симметричного алгоритма шифрования и алгоритма RSA при одинаковой криптостойкости алгоритмов (табл. 3.4).

Таблица 3.4. Сравнение длин ключей симметричного алгоритма и RSA
Длина секретного ключа (симметричный алгоритм), бит Длина открытого ключа (RSA), бит
56 384
64 512
80 768
112 1792
128 2304
Тот факт, что вычислительная мощность, которая может быть привлечена к криптографической атаке, за 10 лет выросла в 1000 раз, означает необходимость увеличения за тот же промежуток времени минимального размера симметричного ключа и асимметричного ключа, соответственно, примерно на 10 и 20 битов.

Системы управления ключами

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

Эта проблема становится тем более сложной, чем больше удаленных друг от друга пользователей желают обмениваться между собою зашифрованными сообщениями. Так, для сети из N пользователей необходимо иметь одновременно в действии Nx(N 1 )/2 различных ключей. Тогда уже при N=1000 количество необходимых ключей будет близко к полумиллиону. Поскольку из соображений безопасности секретные ключи для шифрования должны меняться как можно чаще, то изготовление, упаковка и рассылка их с надежными курьерами из некоего абсолютно надежного центра (как это привычно делают в действующих системах «закрытой связи») становится задачей совершенно нереальной.

Решение проблемы было предложено в виде технологии открытого распределения ключей (Public Key Infrastructure). Суть этой технологии состоит в том, что пользователи самостоятельно и независимо с помощью датчиков случайных чисел генерируют свои индивидуальные ключи, которые хранят в секрете от всех на своем индивидуальном носителе: дискете, специальной магнитной или процессорной карточке, таблетке энергонезависимой памяти Touch Memory (фирмы Dallas Semiconductor) и т. п. Затем каждый пользователь из своего индивидуального ключа вычисляет с помощью известной процедуры свой так называемый «открытый ключ», то есть блок информации, который он делает общедоступным для всех, с кем хотел бы обмениваться конфиденциальными сообщениями.

Открытыми ключами пользователи могут обмениваться между собой непосредственно перед передачей зашифрованных сообщений. Другая, более простая с организационной точки зрения альтернатива — поручить третьей стороне сбор всех открытых ключей пользователей в единый каталог. Администратор каталога должен заверить открытые ключи пользователей своей подписью и разослать этот каталог всем остальным участникам обмена. Сегодня службы администрирования открытых ключей принято называть центрами сертификации (ЦС).

В качестве стандарта для единого каталога ключей может использоваться протокол Х.500.

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

Обычно сертификаты хранятся как объекты службы каталогов или на специально выделенных для этого серверах. В случае компрометации ключа или изменения данных самого сертификата сертификаты должны отзываться. Для этого их заносят в список отозванных сертификатов (Certificate Revocation List, CRL), поддерживаемый ЦС.

Х.509 — это стандарт, описывающий формат и синтаксис сертификатов. Различные протоколы, использующие защиту данных и аутентификацию, например SET, SSL, S-HTTP и другие, применяют сертификаты Х.509. Первая версия стандарта Х.509 была опубликована в 1988 г. Текущая версия — третья.

7-2103

Главная задача сертификата — установить соответствие между пользователем и его открытым ключом. В состав полей сертификата стандарта Х.509, в частности, входят:

• номер версии стандарта Х.509;

• номер сертификата;

• идентификатор алгоритма ЭЦП;

• идентификатор сертификационной службы, выдавшей сертификат;

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

• срок действия сертификата;

• сертифицируемый открытый ключ.

Наибольшее распространение в мире технология открытого распределения ключей для шифрования конфиденциальных сообщений получила в корпоративных телекоммуникационных сетях и общедоступных сетях обмена электронными данными, прежде всего, в сети Интернет. Американский программист Филипп Циммерман (Zimmerman) даже написал общедоступный пакет программ для обмена сообщениями по электронной почте, получивший название PGP (Pretty Good Privacy). Основная идея Циммермана состояла в создании качественной, надежной программы шифрования для электронной почты, базирующейся на использовании наиболее сильных криптоалгоритмов, опубликованных в то время (на рубеже 80-90-х годов) в открытой литературе. Пакет PGP в первых его версиях вместе с исходными текстами программ был распространен в 1991 г. по сетям электронной почты практически во всем мире и был использован многими программистами в разработках средств защиты информации как неплохой, а главное, бесплатный материал.

Пакет PGP удачно совместил в себе возможности шифрования сообщений симметричными блочными алгоритмами, распределения симметричных ключей с помощью асимметричного алгоритма шифрования RSA, а также создания электронных подписей сообщений. Предполагая возможное вмешательство правительства США в процесс развития подобных технологий в будущем, Циммерман вместе с программой версии 1.0 распространял и исходные тексты программы, положив начало традиции, поддерживаемой вплоть до настоящего времени. Это быстро привело к тому, что за улучшение программы взялись многочисленные добровольцы, и через несколько лет, по признанию самого Циммермана, в пакете PGP практически не осталось строк кода, написанных им самим.

Поскольку вплоть до последнего времени (до 17 декабря 1999 г.) по американским законам криптографическое программное обеспечение не разрешалось экспортировать без разрешения госдепартамента, а к 1993 г. пакет уже был распространен по всей планете, правительство США определило, что имело место нарушение закона. Было начато расследование, и только благодаря действиям группы юридической защиты программиста, созданной правозащитным движением, а также компании, развернутой в прессе в его поддержку, следствие по делу PGP было закрыто.

После этого Циммерман основал собственную компанию PGP для коммерческой раскрутки ставшего столь популярным продукта. К лету 1997 г. был готов самостоятельный продукт PGP Personal Privacy 5.0. В этой версии программа приобрела графический интерфейс и могла работать в операционных средах систем DOS, UNIX, Windows 95, Windows NT и Apple Macintosh.

В декабре 1997 г. компания была куплена Network Associates. Изменила свой статус и программа. Начиная с шестой версии, появившейся в сентябре 1998 г., PGP в качестве клиента входит в состав большого криптографического пакета PGP Enterprise Security, разработанного специально для защиты корпораций. При этом компания Network Associates сохранила распространяемую бесплатно версию PGPfreeware, хотя и лишенную множества дополнительных функций, но по-прежнему свободно доступную в Интернете.

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

Известен также протокол SKIP (Simple Key Management for Internet Protocols). Это протокол управления ключами, разработанный компанией SUN Microsystems. SKIP легко реализуется. В нем описан способ вычисления ключа на основе сертификатов открытых ключей. Однако использование SKIP налагает определенные ограничения на выбор алгоритмов шифрования и хэширования. Протокол SKIP заявлен как необязательный компонент спецификации IPSec (Internet Protocol Security).

Кроме перечисленных протоколов для управления ключами используются алгоритмы Diffie-Hellman и KEA (Key Exchange Algorithm).

Протоколы и методы защиты информации в Интернете

На основе перечисленных выше симметричных и асимметричных криптоалгоритмов строятся различные протоколы защиты информации в Интернете.

Самый известный протокол Интернета — SSL (Secure Socket Layer). Этот протокол был разработан компанией Netscape и является составной частью всех известных Интернет-браузеров и Web-серверов (сегодня используется версия 3.0 протокола SSL). Протокол реализуется между транспортным и сеансовым уровнями Эталонной модели взаимодействия открытых систем (ЭМВОС). Это, с одной стороны, означает возможность использования протокола для организации защищенной сессии между программами, работающими по различным протоколам прикладного уровня ЭМВОС (FTP, SMTP, Telnet, HTTP и т. п.), а с другой — закрытие любых данных, передаваемых в SSL-сессии, что приводит к снижению производительности протокола.

Последняя версия протокола SSL поддерживает три режима аутентификации:

• взаимную аутентификацию сторон;

• одностороннюю аутентификацию сервера (без аутентификации клиента);

• полную анонимность.

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

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

Этап установления SSL-сессии (-«рукопожатие»).

1. КЛИЕНТ посылает СЕРВЕРУ запрос (Client hello) на установление защищенного соединения, в котором передает некоторые формальные параметры этого соединения:

• текущее время и дату;

• случайную последовательность (RAND_CL) длиной 28 байтов;

• набор поддерживаемых клиентом симметричных криптографических алгоритмов (например, RC4_128, RC440, RC2128, RC2_40, DES40, DES56 и других) и хэш-алгоритмов (MD5, SHA-1), используемых при формировании кода для проверки целостности передаваемого сообщения (MAC — Message Authentication Code);

• набор поддерживаемых алгоритмов сжатия (все реализации протокола SSL должны поддерживать-метод CompressionMe-thod.null) и других.

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

Кроме того, полезно отметить, что инициировать SSL-сессию может и Web-CEPBEP. Для этого СЕРВЕР может в любой момент времени направить КЛИЕНТУ сообщение Hello request, которое информирует КЛИЕНТА о том, чтобы он направил СЕРВЕРУ сообщение Client Hello.

2. СЕРВЕР обрабатывает запрос от КЛИЕНТА и в ответном сообщении (Server hello) передает ему следующий согласованный набор параметров:

• идентификатор SSL-сессии;

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

• сертификат сервера, заверенный цифровой подписью ЦС (в формате Х.509 v.3);

• случайную последовательность (RAND_SERV);

• цифровую подпись для перечисленных выше данных.

3. КЛИЕНТ проверяет полученный сертификат СЕРВЕРА с помощью открытого ключа ЦС, который ему известен; при положительном результате проверки КЛИЕНТ выполняет следующие действия (при отрицательном результате проверки сессия закрывается):

• генерирует случайную 48-байтную последовательность Pre_Mas-terSecret (часть совместного секрета, известного только СЕРВЕРУ

и КЛИЕНТУ); шифрует ее на открытом ключе сервера, полученном в сертификате сервера, и посылает СЕРВЕРУ;

• с помощью согласованных хэш-алгоритмов формирует главный совместный секрет (MasterSecret), используя в качестве параметров часть совместного секрета Pre_MasterSecret, посланную СЕРВЕРУ на предыдущем шаге случайную последовательность RANDCL и полученную от него случайную последовательность RAND_SERV;

• используя MasterSecret, вычисляет криптографические параметры SSL-сессиии: формирует общие с сервером сеансовые секретные ключи симметричного алгоритма шифрования (для приема и для передачи) и секреты для вычисления MAC;

• переходит в режим защищенного взаимодействия.

4. СЕРВЕР расшифровывает полученный Pre_MasterSecret с помощью своего секретного ключа и выполняет над ним те же операции, что и КЛИЕНТ:

• с помощью согласованных хэш-алгоритмов формирует главный совместный секрет (MasterSecret), используя в качестве параметров PreMasterSecret посланную КЛИЕНТУ на предыдущем шаге случайную последовательность RANDSERV и полученную от него случайную последовательность RANDCL;

• используя MasterSecret, вычисляет криптографические параметры SSL-сессиии: формирует общие с клиентом сеансовые секретные ключи одноключевого алгоритма шифрования и секрет для вычисления MAC;

• переходит в режим защищенного взаимодействия.

5. Поскольку при формировании параметров SSL-сессии КЛИЕНТ и СЕРВЕР пользовались одними и теми же исходными данными (согласованными алгоритмами, общим секретом Pre_MasterSecret и случайными последовательностями RAND_CL и RAND_SERV), то очевидно, что в результате описанных выше действий они выработали одинаковые сеансовые секретные ключи шифрования и секреты, используемые для защиты целостности передаваемых сообщений. Для проверки идентичности параметров SSL-сессии КЛИЕНТ и СЕРВЕР посылают друг другу тестовые сообщения, содержание которых известно каждой из сторон:

• КЛИЕНТ формирует сообщение из собственных посылок в адрес СЕРВЕРА на этапе 1 (а) и посылок, полученных от СЕРВЕРА

на этапе 1 (б), внося элемент случайности в виде последовательности MasterSecret, уникальной для данной сессии; формирует код для проверки целостности сообщения (MAC), шифрует сообщение на общем сеансовом секретном ключе и отправляет СЕРВЕРУ;

• СЕРВЕР, в свою очередь, формирует сообщение из собственных посылок в адрес СЕРВЕРА на этапе 1 (б), посылок, полученных от КЛИЕНТА на этапе 1 (а), и последовательности MasterSecret; формирует код для проверки целостности сообщения (MAC), шифрует сообщение на общем сеансовом секретном ключе и отправляет КЛИЕНТУ;

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

Этап защищенного взаимодействия с установленными криптографическими параметрами SSL-сессии.

1. Каждая сторона при передаче сообщения формирует код для последующей проверки целостности сообщения на приемной стороне (MAC) и исходное сообщение вместе с кодом шифрует на своем секретном сеансовом ключе.

2. Каждая сторона при приеме сообщения расшифровывает его и проверяет на целостность (вычисляется MAC и сверяется с кодом проверки целостности, полученным вместе с сообщением); в случае обнаружения нарушения целостности сообщения SSL-сессия закрывается.

Описанная процедура установления SSL-сессии, безусловно, не обладает полнотой изложения, однако дает представление о возможностях протокола SSL.

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

Для защиты трафика в Интернете помимо протокола SSL используется протокол S-HTTP (Secure HTTP). Этот протокол обеспечивает целостность и защиту документов, передаваемых по протоколу HTTP. В отличие от протокола SSL, расположенного между транспортным

1 04 Глава 3. Введение в криптографию уровнем (TCP) и протоколами сеансового уровня, протокол S-HTTP находится на прикладном уровне ЭМВОС, что позволяет с его помощью защищать не транспортное соединение, а данные, передаваемые по соединению. Это повышает производительность протокола защиты информации, но ценой ограничения применимости механизма защиты только приложением HTTP.

Протокол РСТ (Private Communication Technology) обеспечивает защиту для клиент-серверных приложений. Функционально РСТ похож на SSL Так же как в SSL, при установлении сеанса связи РСТ согласует секретный ключ и симметричный алгоритм шифрования. Основное отличие от SSL в том, что РСТ отделяет аутентификацию от шифрования. Кроме того, РСТ более эффективен, поскольку использует меньшее множество сообщений и они более короткие по сравнению с SSL. РСТ поддерживает алгоритмы RSA, Diffie-Hellman, Fortezza для управления ключами; DES, RC2 и RC4 — для шифрования данных; DSA и RSA — для цифровой подписи.

РСТ реализован в Microsoft Internet Explorer версии 3 и выше, а также в Microsoft Internet Information Server версии 2 и выше.

В Интернете применяются и другие протоколы защиты информации: S/MIME — для защиты электронной почты, S/WAN — для защиты соединений (как правило, между маршрутизаторами), PGP — для защиты электронной почты, Secure Shell — для защиты сеансов telnet и передачи файлов. На этих протоколах ввиду их специального назначения, не связанного с ЭК, мы останавливаться не будем.

Упомянем лишь протокол IPSec, предназначенный для шифрования данных на сетевом уровне (данный протокол в отличие от всех перечисленных ранее является независимым не только от приложения, но и от транспортного уровня, что, в частности, позволяет применять его для защиты данных приложений, использующих в качестве транспортного протокола UDP). IPSec состоит из трех протоколов: Authentication Header, Encapsulating Secure Payload (ESP) и Internet Key Exchange (IKE). Первый протокол обеспечивает аутентификацию источника данных, их целостность и защиту от навязывания повторных сообщений. С помощью протокола АН аутентифицируется каждый пакет, что делает программы, пытающиеся перехватить управление сеансом, неэффективными.

Протокол ESP обеспечивает шифрование потоков данных. Протокол IKE решает задачу распределения ключей на базе протокола Diffie-Hellman. В используемых протоколах в качестве алгоритма шифрования чаще всего используются DES или Triple DES, а в качестве алго-

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

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

Вторая конфигурация — закрытие данных внутри самой локальной сети, для чего все рабочие места и сервера сети обязаны поддерживать протокол IPSec. Сегодня большинство современных операционных систем (Windows 2000, OpenBSD, Linux, Solaris) поддерживают протокол IPSec.

Обзор методов защиты данных в Интернете не будет полным, если в нем не упомянуть о технологии межсетевых экранов (Firewall), широко используемой для защиты информации в Интернете. В ЭК межсетевые экраны, в частности, широко применяются для защиты от хакеров таких компонентов электронной коммерции, как Internet Payment Gateway, Server Based Wallet, Payment Server. Подробнее об этих компонентах будет рассказано в главе, посвященной решениям на базе протокола SET.

В основном межсетевые экраны можно разделить на три категории:

• пакетные фильтры (фильтры без памяти);

• фильтры сеансового уровня;

• фильтры прикладного уровня.

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

Другой пример успешного прохождения через пакетный фильтр — address spoofing (имитация адресов). Хакер может использовать в качестве адреса отправителя адрес авторизованного клиента, и тогда пакетный фильтр пропустит пакет хакера.

8-2103

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

Фильтр сеансового уровня следит за подтверждением связи (квитированием) между авторизованным клиентом и внешним хостом, определяя, является ли запрашиваемый сеанс связи допустимым. Чтобы определить, является ли запрос на сеанс связи допустимым, шлюз сеансового уровня выполняет примерно следующую процедуру. Когда авторизованный клиент запрашивает некоторую услугу, шлюз принимает этот запрос, проверяя, удовлетворяет ли данный клиент базовым критериям фильтрации (например, может ли DNS-сервер определить IP-адрес клиента и ассоциированное с ним имя). Затем, действуя от имени клиента, шлюз устанавливает соединение с внешним хостом и следит за процедурой квитирования связи по протоколу TCP. Эта процедура состоит из обмена TCP-пакетами, которые помечаются флагами SYN (синхронизировать) и АСК (подтвердить).

Первый пакет сеанса TCP, помеченный флагом SYN и содержащий произвольное число, например 1000, является запросом клиента на открытие сеанса. Внешний хост, получивший этот пакет, посылает в ответ пакет, помеченный флагом АСК и содержащий число, на единицу большее, чем в принятом пакете (в нашем случае 1001), подтверждая таким образом прием пакета SYN от клиента. После этого осуществляется обратная процедура: хост посылает клиенту пакет SYN с исход-нвм числом (например, 2000), а клиент подтверждает его получение передачей пакета АСК, содержащего число 2001. На этом процесс квитирования связи завершается.

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

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

Для копирования и перенаправления пакетов в шлюзах сеансового уровня используются специальные приложения, которые иногда называют канальными посредниками (pipe-proxy). Большинство шлюзов сеансового уровня не являются самостоятельными продуктами и поставляются в комплекте со шлюзами прикладного уровня. Примерами таких шлюзов являются Gauntlet Internet Firewall компании Trusted Information Systems, AltaVista Firewall компании DEC и ANS Interlock компании ANS.

Шлюз сеансового уровня выполняет еще одну важную функцию защиты — трансляцию адресов (Network Address Translation), при которой производится преобразование внутренних IP-адресов в один «надежный» IP-адрес. Этот адрес ассоциируется с фильтром, из которого передаются все исходящие пакеты. В результате в сети со шлюзом сеансового уровня все исходящие пакеты оказываются отправленными из этого шлюза, что исключает прямой контакт между внутренней авторизованной сетью и внешней сетью, а также скрывает от внешних пользователей архитектуру внутренней защищаемой сети. Таким образом, фильтры сеансового уровня защищают внутренние сети от нападений типа address spoofing (имитация адресов).

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

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

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

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

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

Такие продукты, как Eagle компании Raptor Systems, ANS Interlock компании ANS, Sidewinder Security Server компании Secure Computing Corporation, Firewall-1 компании Checkpoint, включают в себя программы-посредники прикладного уровня для служб FTP, Telnet, HTTP. Утилиты этих шлюзов позволяют фильтровать определенные команды, используемые этими службами. Например, можно сконфигурировать шлюз таким образом, чтобы он предотвращал использование клиентами команды FTP Put, которая дает возможность пользователю, подключенному к FTP-серверу, записывать на него информацию.

В дополнение к фильтрации многие фильтры прикладного уровня регистрируют все выполняемые сервером действия и, что особенно важно, предупреждают администраторов о возможных нарушениях защиты (Intrusion Detection System). Например, при попытках проникновения в систему извне BorderWare Firewall Server компании Secure Computing позволяет фиксировать адреса отправителя и получателя пакетов, время, в которое эти попытки были предприняты, и используемый протокол. Продукт Black Hole компании Milkyway Networks также фиксирует все попытки проникновения в систему и предупреждает о них администратора, посылая ему сообщения по электронной почте или на пейджер.

Юридические аспекты защиты информации в России

Остановимся теперь на правовых аспектах применения средств защиты информации от несанкционированного доступа в России.

В настоящее время правовая база отношений субъектов в области защиты информации основывается на следующих основных нормативных актах:

• Конституции РФ,

• Гражданском Кодексе РФ,

• Федеральных законах РФ «Об информации, информатизации и защите информации», «О государственной тайне».

Федеральный закон «Об информации, информатизации и защите информации» принят Государственной Думой 25 января 1995 г., подписан Президентом РФ 20 февраля 1995 г. и с тех пор остается единственным на сегодняшний день Федеральным законом, трактующим общие вопросы регулирования отношений в области защиты информации. В сферу его действия включена защита информации, прав субъектов, участвующих в информационных процессах и информатизации (ст. 1, разд. 1).

В статье 5 закона, в частности, говорится о юридической силе электронного документа с цифровой (электронной) подписью:

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

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

В статье 21 «Защита информации» говорится следующее:

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

3 апреля 1995 г. Президентом РФ был подписан указ № 334 «О мерах по соблюдению законности в области разработки, производства, реализации и эксплуатации шифровальных средств, а также предоставления услуг в области шифрования информации».

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

«Запретить использование государственными организациями... шифровальных средств, включая криптографические средства обеспечения подлинности информации (электронная подпись), и защищенных технических средств хранения, обработки и передачи информации, не имеющих сертификата ФАПСИ...»

«Предложить ЦБ РФ и ФАПСИ принять необходимые меры в отношении коммерческих банков, уклоняющихся от обязательного использования имеющих сертификат ФАПСИ защищенных технических средств хранения, обработки и передачи информации при их взаимодействии с подразделениями ЦБ РФ».

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

Ситуация несколько либерализовалось весной 1998 г., когда появились новые положения Банка России о работе с электронными документами. Положение «О порядке приема к исполнению поручений владельцев счетов, подписанных аналогами собственноручной подписи, при проведении безналичных расчетов кредитными организациями» Ы17-П (далее — Положение 17-П) наконец-то делает полностью законной в рамках банковской системы России широко распространенную практику проведения коммерческими банками расчетов без обязательного предоставления клиентами платежных поручений на бумажных носителях.

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

Положение 17-П, принятое Банком России 10 февраля 1998 г., введено им в действие с момента официального опубликования 18 февраля 1998 г. в «Вестнике Банка России». В качестве его законодательной основы был взят новый Гражданский кодекс Российской Федерации, а именно ст. 160 (п. 1.1 Положения 17-П), которая трактует все возможные легальные способы оформления сделок в Российской Федерации.

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

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

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

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

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

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

Его роль в работе системы электронного документооборота и взаимоотношения с другими участниками определяются отдельным договором (п. 3.2).

Более того, создание специальной Администрации обязательно только при организации документооборота между более чем двумя участии -ками (п. 1.8). Это означает, что работа с электронными документами в системах типа «клиент-банк», где обмен электронными документами происходит непосредственно только между двумя участниками — конкретным клиентом и конкретным банком, не требует обязательного создания специального юридического лица — Администрации. Эти функции вполне могут выполнять сотрудники банка.

Развернутое определение такого варианта АСП, как ЭЦП, дано в Положении 20-П, принятом ЦБ РФ 12 марта 1998 г. В нем ЭЦП определяется как «вид АСП, являющийся средством защиты информации и обеспечивающий возможность контроля целостности и подтверждения подлинности электронных документов. ЭЦП позволяет подтвердить ее принадлежность зарегистрированному владельцу».

Таким образом, в принятых руководящих документах по работе кредитных организаций и их клиентов с электронными документами Банк России пошел по ясному и четко определенному пути, полностью отвечающему логике и требованиям действующего законодательства РФ: от Конституции и Гражданского кодекса до постановлений Правительства РФ.

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

Так, констатируется, что юридическая основа работы — договор между сторонами: «Для создания и проверки АСП могут использоваться программно-технические и иные средства в порядке, устаиавливаемом договором между участниками документооборота или с Администрацией» (п. 2.2 Положения 17-П). Далее в нем указывается, что «платежные документы, подписанные АСП, признаются имеющими равную юридическую силу с другими формами поручений владельцев счетов, подписанных ими собственноручно» (п. 2.3). А п. 2.3 Положения 20-П констатирует, что «ответственность за содержание реквизитов электронного документа несет владелец ЭЦП, подписавший данный электронный документ, если иное не предусмотрено договором».

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

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

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

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

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

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

Такой механизм существует в мировой практике — это технология ЭЦП с сертификатами. Она специфицирована Международным телекоммуникационным союзом в его рекомендации Х.509 и нашла свое развитие в различных приложениях, включая системы электронной коммерции, системы обработки микропроцессорных карт и т. п. Суть технологии cot гоит в том, что некоторая организация, называемая сертификационным или регистрационным центром, заверяет своей подписью образцы всех обратившихся к ней лиц. Именно для того, чтобы придать технологии ЭЦП с сертификатами юридическую силу, и необходим «Закон об электронно-цифровой подписи».

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

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

Содержание раздела