09/12/94 10:46am
zashita.lek
В.В.Голубев,П.А.Дубров,Г.А.Павлов
"Компьютерные преступления и
защита информации" серия
"Вычислительная техника и ее
применение" М. "Знание" 1990
Защита информации.
Задачу защиты информации приходится решать в нескольких случаях, например может понадобиться:
Защита от естественных явлений, воздействующих на носитель информации при хранении, линию связи при передаче, процессор при обработке;
Защита от несанкционированного получения и изменения;
Защита от незаконного использования.
В ПЕРВОМ случае с потерей борются совершенствованием носителей, линий связи и внесением ИЗБЫТОЧНОСТИ в информацию и в оборудование ЭВМ.
Во ВТОРОМ случае используют различные способы кодирования.
В ТРЕТЬЕМ - применяют нестандартные системы размещения и обработки информации.
КОДИРОВАНИЕ ИНФОРМАЦИИ
КРИПТОЛОГИЯ -
наука о защите информации
КРИПТОГРАФ - разработчик шифров
КРИПТОАНАЛИТИК - взломщик шифров
В зависимости от назначения информации и ее сущности применяются различные методы кодирования.
КОДИРОВАНИЕ ТЕКСТОВОЙ КОНФИДЕНЦИАЛЬНОЙ ИНФОРМАЦИИ осуществляется с применением систем с "закрытым ключом".
Требования к алгоритму шифрования:
Зашифрованный текст должен поддаваться чтению только при наличии ключа дешифрования;
Число операций, необходимых для определения использованного ключа шифрования по фрагменту шифрованного текста и соответствующего ему открытого текста, должно быть не меньше обшего числа возможных ключей;
Знание алгоритма шифрования не должно влиять на надежность защиты;
Незначительные изменения ключа шифрования должны приводить к существенному изменению вида зашифрованного текста;
Незначительные изменения шифруемого текста должны приводить к существенному изменению вида зашифрованного текста даже при использовании одного и того же ключа;
Структурные элементы алгоритма шифрования должны быть неизменными;
В процессе щифрования должен осуществляться постоянный контроль за шифруемыми данными и ключом шифрования;
Дополнительные биты, вводимые в текст в процессе шифрования, должны быть скрыты в шифрованном тексте;
Длина шифрованного текста должна быть равна длине исходного текста;
Не должно быть легкоустанавливаемых зависимостей между ключами, последовательно используемых в процессе шифрования;
Любой ключ из множества возможных должен обеспечивать надежную защиту информации;
Алгоритм должен допускать программную и аппаратную реализацию;
Изменение длины ключа не должно приводить к качественному ухудшению алгоритма шифрования.
Стандарт шифрования "DES"
"Data Encryption Standart" разработан Национальным бюро стандартов при министерстве торговли США; опубликован 17 марта 1975 году в издании "Federal Register". Длина ключа 56 бит; в основу работы положены принципы, выдвинутые Шенноном в 1949 году:
Рассеивание - влияние каждого знака открытого текста на множество знаков шифротекста для скрытия статистических свойств текста;
Перемешивание - использование преобразований, усложняющих восстановление взаимосвязи статистических свойств открытого и шифрованного текстов.
В стандарте DES использован дополнительный принцип последовательного применения простых шифров, увеличивающих суммарное рассеивание и перемешивание.
При кодировании текст разбивается на фрагменты по 64 бита. Преобразование осуществляется за 16 проходов в каждом из которых простые ПЕРЕСТАНОВКИ (перемены местами участков) сочетаются с ПОДСТАНОВКАМИ (замены одного кода другим). Размер фрагмента подстановки 4 бита. В каждом проходе используется только часть ключа (48 бит), выбранная внешне случайным образом.
Режимы работы DES алгоритма:
Электронной кодовой книги (ECB) - используется для шифрования ключей доступа в систему;
Обратной связи по шифротексту (CFB) - шифрование отдельных символов;
Сцепление блоков шифра (CBC) - определение подлинности данных;
Обратной связи по выходу (OFB) - шифрование в спутниковых системах связи.
ПРИМЕЧАНИЕ: Для взлома шифра необходимо перебрать все 10^17 ключей; по некоторым оценкам для этого необходимо построить машину, стоимостью около 20 млн.долл.
Стандарт шифрования "RSA"
Назван в честь
его изобретателей R.Rivest, A.Shamir,
L.Adlman.
Является стандартом с
"открытым ключом" и
используется в системах
электронной подписи.
Особенностью системы является возможность кодирования и декодирования сообщения при помощи ОДНОГО И ТОГО ЖЕ алгоритма, но с разными ключами; причем ключи прямого и обратного преобразования НЕ СОВПАДАЮТ.
Ключ дешифрования публикуется в открытой литературе, а ключ кодирования держится в секрете. Так как ключи не совпадают получатель может прочитать сообщение, но не может его изменить. Такие сообщения (в их закодированной форме) считаются документом (в США) и принимаются судами к рассмотрению.
В стандарте RSA информация преобразуется путем возведения кодов символов в некоторую (целую) степень с последующим нахождением остатка от деления на некоторое (целое) число. Ключем является показатель степени и делитель.
Сообщение закодированное открытым ключом может быть раскодировано с применением закрытого ключа. В качестве ключа используются простые многозначные числа.
ЗАЩИТА ОТ НЕЗАКОННОГО ИСПОЛЬЗОВАНИЯ ПО.
Меры по защите ПО можно поделить на две группы:
Защита от незаконных инсталяций (копирований) фирменного продукта
Защита от воспроизведения алгоритма закрытых разработок.
ПЕРВАЯ группа мероприятий осуществляется если фирма производитель желает ограничить число копий своего программного продукта. Подобная защита состоит двух урововней.
На первом уровне защищается носитель информации (обычно ПО поставляется на гибких дисках) от копирования. Самый распространенный и эффективный способ для этого - нестандартное форматирование. Дискета при этом логически состоит из двух частей: стандартной - содержащей программу инсталяции и нестандартной - содержащей распространяемый продукт. При потытке копирования такой дискеты операционная система ведет себя так как если пытаются читать неформатированную дискету. Программа инсталяции "знает" особенности форматирования и ей не составляет труда осуществить копирование ПО на жесткий диск; при копировании осуществляется подсчет числа установок с последующим уничтожением информации.
На втором уровне производится защита инсталированной системы от переноса на другой компьютер. Для этого на этапе установки программа "знакомится" с ЭВМ, т.е. программе сообщаются некоторые особенности вычислительной системы. В простейшем случае осуществляется подсчет контрольной суммы ПЗУ компьютера, что дает возможность (при наличии серийного номера BIOS) однозначно идентифицировать машину. В процессе работы такая система осуществляет контроль установленного кода и при несоответствии осуществляет специальные действия.
ЗАЩИТА ОТ РАСКРЫТИЯ АЛГОРИТМА обеспечивается кодированием исполняемого кода. Самым трудным здесь является преодаление противоречия: программа должна быть закодирована для непонимания взломщиком, программа должна быть понятна процессору без дополнотельного оборудования. Для разрешения этого противоречия наиболее часто применяется метод фрагментационного кодирования:
Исполняемый код разбивается на участки произвольного размера (размер выбирается исходя из допустимых потерь времени на преобразование);
Каждый участок состоит из декодирующей, полезной и кодирующей частей;
При получении управления декодирующая часть производит раскрытие кода полезного (выполняющего обработку по алгоритму) участка, используя в качестве ключа некоторый другой фрагмент кода;
После выполнения действий по алгоритму производится обратное кодирование. Наиболее популярная кодирующая операция "исключающее или", позволяющая декодировать текст повторным применением с тем же кодом. Кодирующий о декодирующий участки должны иметь минимальную длительность и понятность; обычно используются операции со стеком.
Для защиты от "упорного хакера", способного произвести трассировку с ручным переписыванием текста программы участки закодированного текста используются в качестве констант при выполнении некоторых операций.
Описанная выше система позволяет осуществлять трассировку ПО, что может привести к разрушению системы защиты. Возможна более надежная система кодирования но и более опасная с точки зрения сохранности исходного кода.
Иногда в качестве ключа используется времязависимая величана, например содержимое системных часов или интервального таймера. Идея очень проста:
Весь фрагмент закодирован с одним ключом;
Декодирующая часть загружает значение в таймер и задает некоторую скорость счета;
Участок декодируется с постоянным обращением к содержимому счетчика;
Если происходит трассировка, то значение успевает измениться и декодирование получается ошибочным, а фрагмент программы неработоспособным.
ЗАЩИТА ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ.
Мероприятия по кодированию конфиденциальной информации могут оказаться бесполезными, если не осуществляется защита ВС как единого целого. Опытному специалисту достаточно один раз войти в систему и рано или позно он сможет получить интересующую его информацию одним из перечисленных методов:
Если таблица паролей не закодирована, то ее можно легко прочитать;
Если время присутствия не ограничено, то можно подсмотреть пароль;
Если количество попыток входа не ограничено, то можно подобрать пароль;
Если есть возможность под любым предлогом войти в систему, то можно установить программу перехватыватывающую набираемые данные или сканирования системной памяти в поисках таблицы паролей.
Меры безопасности:
Ввод пароля и его кодирование при помощи отдельного аппаратного блока;
Одноразовые пароли - каждый пользователь имеет список паролей по одному на каждый сеанс работы, после использования пароль уничтожается;
Метод физического ключа - каждый пользователь имеет некий ключ (обычно магнитную карточку), который в совокупности с паролем дает возможность доступа;
Система пароль отзыв - компьютер сообщает пользователю некоторое значение человек осуществляет над этим числом определенную операцию и вводит в ЭВМ результат, по правильности ответа принимается решение о возможности доступа;
В качестве пароля могут быть использованы некоторые данные самого человека (рост, отпечатки пальцев, рисунок сетчатки глаза...), но такие системы дороги и ненадежны.