CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2003 ГОД

Защити себя сам!

Сергей БОРМОТОВ dinalt@hotmail.ru

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

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

Краткий обзор современных методов защиты информации

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

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

1) ПЭМИH — собственно перехват электромагнитного излучения от РС;

2) наведенные токи в случайных антеннах — перехват наводок в проводах (телефонных, проводного радио), кабелях (TV — антеннах, например), проходящих вблизи, но не связанных гальванически с РС, вплоть до отопительных батарей (отопление изолировано от земли);

3) наводки и паразитные токи в цепях, гальванически связанных с РС (питание, телефонная линия с модемом и т.п.);

4) неравномерное потребление тока в питании — в основном для электромеханических устройств (для современных РС маловероятен — разве что у вас принтер-»ромашка»);

5) прочая экзотика (наведенные лазеры, например).

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

Какие обычно применяются меры для защиты:

экранирование корпусов (или внутренний металлический экран, или напыление изнутри на корпусе медной пленки — заземление);

установка на экран трубки монитора или сетки, или дополнительного стекла с заземленным напылением;

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

локальные экраны на платы адаптеров;

дополнительные фильтры по питанию.

Вообще-то самый радикальный метод — это экранирование комнаты медной сеткой с размером ячеек меньше 2.5 см и последующее заземление этой самой сетки. Можно еще поставить активный генератор квазибелого или гауссового шума — он «давит» все излучения. Даже полностью закрытый РС (с экранированным корпусом) в безэховой камере имеет критическую зону несколько метров (без шумовика, конечно). Обычно с корпусами никто не мучается (дорого это), делают все остальное. Кроме того, проверяют РС на наличие так называемых «закладок». Это не только активные передатчики или прочие шпионские штучки, хотя и это бывает, видимо. Самый простой случай — «лишние» проводники или провода, которые играют роль антенны. Хотя, в «больших» машинах встречалось, говорят, и посерьезнее — например, в VAX, когда их завозили в Союз кружными путями (для оборонки), были иногда в конденсаторах блока питания некие схемки, выдававшие в цепь питания миллисекундные импульсы в несколько сот вольт — возникал сбой, как минимум.

Ну а проблемой защиты информации путем ее преобразования занимается криптология (kryptos — тайный, logos — наука). Криптология разделяется на два направления —криптографию и криптоанализ. Цели этих направлений прямо противоположны: криптография занимается поиском и исследованием математических методов преобразования информации, а сфера интересов криптоанализа — исследование возможности расшифровывания информации без знания ключей.

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

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

ГОСТ №28147-89

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

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

Возможное использование ГОСТа в собственных разработках ставит ряд вопросов. Вопрос первый — нет ли юридических препятствий для этого? Ответ здесь простой — таких препятствий нет, и все могут свободно использовать ГОСТ, он не запатентован, следовательно, не у кого спрашивать разрешения. Более того, все мы имеем на это полное моральное право как наследники тех, кто оплатил разработку стандарта из своего кармана, — прежде всего я имею ввиду ваших родителей. На известный указ Президента России №334 от 03.04.95 и соответствующие постановления правительства РФ, которые ничего нового не вносят в эту картину, мы вообще можем смело забить, так как сейчас мы незалежнi і самостiйнi, та не повиннi виконувати закони, шо цiлком стосуються «клятих москалiв». Хотя они формально и запрещают разработку систем, содержащих средства криптозащиты юридическими и физическими лицами, не имеющими лицензии на этот вид деятельности, но реально указ распространяется лишь на случай государственных секретов, данных, составляющих банковскую тайну и т.п., словом, он действует только там, где нужна бумажка, что «данные защищены».

Что же касается Украинского законодательства, то здесь, в отличие от России, вообще мрак. Да и какой смысл пытаться секретить то, что уже давно ни для кого не является секретом и про что можно запросто прочитать как где-нибудь в Интернете, так и в обычной книжке, коих теперь валом…

Хорошо, с правомочностью применения ГОСТа разобрались, теперь остановимся на вопросе целесообразности — прежде всего, можем ли мы доверять этому порождению мрачной Лубянки, не встроили ли товарищи чекисты лазеек в алгоритмы шифрования? Это весьма маловероятно, так как ГОСТ создавался в те времена, когда было немыслимо его использование за пределами государственных режимных объектов. С другой стороны, стойкость криптографического алгоритма нельзя подтвердить, ее можно только опровергнуть взломом. Поэтому, чем старше алгоритм, тем больше шансов на то, что, если уж он не взломан до сих пор, он не будет взломан и в ближайшем обозримом будущем. В этом свете все разговоры о последних «оригинальных разработках» «талантливых ребят» в принципе несерьезны — каждый шифр должен выдержать проверку временем. Но ведь шифров, выдержавших подобную проверку, заведомо больше одного — кроме ГОСТа ведь есть еще и DES, его старший американский братец, есть и другие шифры. Почему тогда ГОСТ? Конечно, во многом это дело личных пристрастий, но надо помнить еще и о том, что ГОСТ по большинству параметров превосходит все эти алгоритмы, в том числе и DES. Вам интересно, о каких это параметров идет речь? Далi буде.

Криптографическая стойкость ГОСТа

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

можно ли вообще раскрыть данный шифр;

если да, то насколько это трудно сделать практически.

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

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

В шифре ГОСТ используется 256-битовый ключ, объем ключевого пространства составляет 2256. Ни на одной из существующих в настоящее время или предполагаемых к реализации в недалеком будущем ЭВМ общего применения нельзя подобрать такой ключ за время, меньшее многих сотен лет. Российский стандарт проектировался с большим запасом и по стойкости на много порядков превосходит американский стандарт DES с его реальным размером ключа в 56 бит и объемом ключевого пространства всего 256. В свете прогресса современных вычислительных средств этого явно недостаточно. В этой связи DES может представлять скорее исследовательский или научный, чем практический интерес. В 1998 году он перестал быть стандартом США на шифрование.

Замечания по архитектуре ГОСТа

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

Алгоритмы «основных шагов криптопреобразования» для шифров, подобных ГОСТу, построены идентичным образом. На вход основного шага подается блок четного размера, старшая и младшая половины которого обрабатываются отдельно друг от друга. В ходе преобразования младшая половина блока помещается на место старшей, а старшая, скомбинированная с помощью операции побитного исключающего или с результатом вычисления некоторой функции, — на место младшей. Эта функция, принимающая в качестве аргумента младшую половину блока и некоторый элемент ключевой информации (X), является содержательной частью шифра и называется его функцией шифрования. Соображения стойкости шифра требуют, чтобы размеры всех перечисленных элементов блоков были равны: |N1|=|N2|=|X|, в ГОСТе и DESе они равны 32 битам.

Если применить сказанное к схеме основного шага алгоритма ГОСТ, станет очевидным, что блоки 1, 2, 3 алгоритма определяют вычисление его функции шифрования, а блоки 4 и 5 задают формирование выходного блока основного шага исходя из содержимого входного блока и значения функции шифрования.

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

Надежность реализации

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

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

К счастью, из этой ситуации есть достаточно легкий выход — использовать модификацию алгоритма ГОСТ с меньшим количеством основных шагов в базовых циклах. Этого можно достигнуть двумя путями — уменьшением длины ключа и уменьшением числа циклов использования элементов ключа — вспомните, что число основных шагов в базовых циклах шифрования равно N=nm, где n — число 32-битных элементов в ключе, m — число циклов использования ключевых элементов; в стандарте n=8, m=4. Во сколько раз уменьшается число основных шагов в циклах, примерно во столько же раз увеличивается быстродействие кода.

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

При выборе размера «редуцированного цикла» надо принимать во внимание, что ГОСТ проектировался с учетом возможного прогресса вычислительной техники на несколько десятилетий вперед и в нем заложен огромный запас криптостойкости. По моему мнению (глубоко личному), в большинстве практических случаев представляется разумным использование редуцированных вариантов ГОСТа без изменения схемы использования ключа (m=4=3+1), но с уменьшенным вчетверо размером ключа (n=2) — это позволит увеличить скорость шифрования примерно вчетверо. По стойкости к статистическим методам криптоанализа данная модификация с ее 64-битным ключом будет надежнее, чем DES с размером ключа в 56 бит.

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

С паролями дело обстоит несколько сложнее. Прежде всего возникает вопрос, зачем вообще нужно их генерировать, не проще ли по мере надобности брать их из головы. Несостоятельность такого подхода была наглядно продемонстрирована серией инцидентов в компьютерных сетях, самым крупным из которых был суточный паралич сети Интернет в ноябре 1988 г (вирус Морриса). Одним из способов доступа злоумышленной программы в систему был подбор паролей: программа пыталась войти в систему, последовательно пробуя пароли из своего внутреннего списка в несколько сотен штук, причем в значительной доле случаев ей это удавалось сделать — фантазия человека по выдумыванию паролей оказалась очень бедной. Именно поэтому в тех организациях, где безопасности уделяется должное внимание, пароли генерирует и раздает пользователям системный администратор по безопасности. Выработка паролей чуть сложнее, чем выработка ключей, так как при этом «сырую» двоичную гамму необходимо преобразовать к символьному виду, а не просто «нарезать» на куски. Основное, на что необходимо обратить внимание при этом — обеспечение равной вероятности появления каждого из символов алфавита.

Как бы то ни было, старичок ГОСТ еще немало послужит — все-таки он был создан серьезной конторой, при разработке в него был заложен огромный запас надежности и устойчивости, но в то же время он имеет хорошую производительность. Этот алгоритм выдержал самую жесткую проверку — проверку временем. Множество реализаций алгоритма позволяют получать требуемое отношение производительности и криптостойкости, он законен для использования. Недаром именно ГОСТ используют при защите своих секретов все госслужбы СНГ. Поддерживайте отечественного производителя!

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov