Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
31
Добавлен:
16.04.2015
Размер:
778.78 Кб
Скачать

 

Таблица 4

 

Алгоритмы электронной цифровой подписи

 

 

Тип

Комментарии

 

 

DSA (Digital

Алгоритм с использованием открытого ключа для создания

Signature

электронной подписи, но не для шифрования. Секретное

Authorization)

создание хэш-значения и публичная проверка ее - только один

 

человек может создать хэш-значение сообщения, но любой

 

может проверить ее корректность. Основан на вычислительной

 

сложности взятия логарифмов в конечных полях.

 

 

RSA

Запатентованная RSA электронная подпись, которая позволяет

 

проверить целостность сообщения и личность лица, создавшего

 

электронную подпись. Отправитель создает хэш-функцию

 

сообщения, а затем шифрует ее с использованием своего

 

секретного ключа. Получатель использует открытый ключ

 

отправителя для расшифровки хэша, сам рассчитывает хэш для

 

сообщения, и сравнивает эти два хэша.

 

 

MAC (код

Электронная подпись, использующая схемы хэширования,

аутентификации

аналогичные MD или SHA, но хэш-значение вычисляется с

сообщения)

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

 

ключа.

 

 

DTS (служба

Выдает пользователям временные метки, связанные с данными

электронных

документа, криптографически стойким образом.

временных меток)

 

 

 

Итак, пусть имеются два пользователя П1 и П2. От каких нарушений и действий злоумышленника должна защищать система аутентификации.

Отказ (ренегатство). - П1 заявляет, что он не посылал сообщение П2, хотя на самом деле он все-таки посылал.

Модификация (переделка). -П2 изменяет сообщение и утверждает, что данное (измененное) сообщение послал ему П1.

Подделка. -П2 формирует сообщение и утверждает, что данное (измененное) сообщение послал ему П1.

71

Активный перехват. -П3 перехватывает сообщения между П1 и П2 с целью их скрытой модификации.

Маскировка (имитация). - П3 посылает П2 сообщение от имени П1.

Повтор. -П3 повторяет ранее переданное сообщение, которое П1 посылал ранее П2. Наиболее простым и распространенным инструментом электронной подписи

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

Предположим, что

d,р,q - секретные, а е, n=рq - открытые.

2. Из e и d можно найти кратность (n); кратность (n) позволяет определить делители n.

Пусть DATA - передаваемое П1 для А2 сообщение. П1 подписывает DATA для П2 при передаче : EeB,nB { EdA,nA {DATA}}.

При этом он использует:

*закрытый ключ EdA,nA П1,

*открытый ключ EeB,nB П2.

П2 может читать это подписанное сообщение сначала при помощи закрытого ключа E,П2 с целью получения

EdA,nA {DATA} = EdB,nB {EeB,nB {EdA,nA {DATA}}}

и затем - открытого ключа EeA,nA П1 для получения

DATA = EeA,nA { EdA,nA {DATA}}.

Таким образом, у П2 появляется сообщение DATA, посланное ему П1.

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

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

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

72

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

В 1991 г. Национальный институт стандартов и технологии (NIST) предложил для появившегося тогда алгоритма цифровой подписи DSA (Digital Signature Algorithm) стандарт DSS (Digital Signature Standard), в основу которого положены алгоритмы ЭльГамаля и RSA.

2.5.5. УПРАВЛЕНИЕ КЛЮЧАМИ

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

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

Управление ключами - информационный процесс, включающий в себя три элемента:

генерацию ключей;

накопление ключей;

распределение ключей.

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

2.5.5.1.Генерация ключей

Всерьезных ИС используются специальные аппаратные и программные методы генерации случайных ключей. Как правило, используют датчики ПСЧ. Однако степень случайности их генерации должна быть достаточно высоким. Идеальным генераторами являются устройства на основе "натуральных" случайных процессов. Например, появились серийные образцы генерации ключей на основе белого радиошума. Другим случайным математическим объектом являются десятичные знаки иррациональных

73

чисел, например π или е, которые вычисляются с помощью стандартных математических методов.

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

2.5.5.2.Накопление ключей

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

ключей следует уделять особое внимание.

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

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

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

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

Вопрос обновления ключевой информации связан и с третьим элементом управления ключами - распределением ключей.

2.5.5.3.Распределение ключей

Распределение ключей - самый ответственный процесс в управлении ключами. К нему предъявляются два требования:

1.Оперативность и точность распределения

2.Скрытность распределяемых ключей.

74

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

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

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

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

Вэтом случае проблема состоит в том, чтобы надежно удостоверить подлинность субъектов.

Вобоих случаях должна быть гарантирована подлинность сеанса связи. Это можно обеспечить двумя способами:

1.Механизм запроса-ответа, который состоит в следующем. Если пользователь А желает быть уверенным, что сообщения который он получает от В, не являются ложными, он включает в посылаемое для В сообщение непредсказуемый элемент (запрос). При ответе пользователь В должен выполнить некоторую операцию над этим элементом (например, добавить 1). Это невозможно осуществить заранее, так как не известно, какое случайное число придет в запросе. После получения ответа с результатами действий пользователь А может быть уверен, что сеанс является подлинным. Недостатком этого метода является возможность установления хотя и сложной закономерности между запросом и ответом.

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

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

При использовании отметок времени встает проблема допустимого временного интервала задержки для подтверждения подлинности сеанса. Ведь сообщение с "временным штемпелем" в принципе не может быть передано мгновенно. Кроме этого

75

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

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

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

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

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

Идея метода достаточно проста. После того, как ключ использован в одном сеансе по некоторому правилу он сменяется другим.

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

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

76

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

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

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

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

77

3. ОБЕСПЕЧЕНИЕ ОТКАЗОУСТОЙЧИВОСТИ

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

Согласно результатам исследований, на втором месте среди причин потери данных после ошибок пользователей стоят сбои дисков или контроллеров (до 14%). Наиболее распространенные средства защиты от таких проблем - дисковые массивы недорогих дисков (RAID), дуплексирование и зеркальное отображение.

3.1. ЗЕРКАЛЬНОЕ ОТОБРАЖЕНИЕ ДИСКОВ

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

Зеркальное отображение может выполняться на тот же диск, но применение двух разных дисков с точки зрения отказоустойчивости более надежно, чем зеркальное отображение на одном диске. Недостатки:

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

ОС вынуждена дважды выполнять операции чтения и записи, что увеличивает вдвое время, необходимое для записи на диск. Этот недостаток можно компенсировать с помощью некоторых средств интеллектуального использования диска (например, Fault Freedom 2.4 для систем Unix, SFT NetWare) ;

78

зеркальное отображение не защищает от сбоев контроллера.

3.2. ДУПЛЕКСИРОВАНИЕ ДИСКОВ

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

3.3. ДИСКОВЫЕ МАССИВЫ (RAID - СИСТЕМЫ)

RAID-системы (Redundant Arrays of Inexpensive Disk) - это метод управления жесткими дисками, при котором набор из десяти или более недорогих винчестеров работает как одно целое, т.е. на разных физических дисках размещается один логический диск. При этом файлы могут храниться так, чтобы обеспечить конкурентный независимый доступ с нескольких дисков. Однако управление такими системами достаточно сильно загружает процессор.

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

Технология RAID предоставляет 6 уровней сложности:

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

79

RAID-1 - подобен зеркальному отражению дисков, при котором используются две копии каждого файла. Однако в данном случае выполняется дублирование на уровне секторов, а не файлов. С применением техники распределения данных RAID-система предоставляет файл быстрее, чем любой из дисков, входящих в ее состав. Но, поскольку файл дублируется на разных дисках, скорость доступа несколько снижается из-за выполнения двух операций чтения или записи. При использовании подхода уровня 1 для размещения данных используется только 50% общей емкости накопителей. При хорошей реализации обеспечивается вполне приемлемая скорость. В отличие от RAID-0 гарантирует сохранность данных при сбое любого из дисков, при этом стоимость дискового пространства увеличивается вдвое из-за всегда сохраняющейся 100% избыточности. Один из недостатков RAID 1 в том, что, по сути, массив состоит из одного диска (и его копии). Емкости одного диска часто оказывается недостаточно. Поэтому в современных системах RAID зеркалирование часто сочетается с чередованием. Иными словами, данные из массива RAID 0 в точности дублируются на другой массив RAID 0. Данный уровень RAID называют RAID 0+1 или RAID 10. Алгоритм применяется в системах, где уже необходима надежность хранения данных, но объем дисковой матрицы все еще незначителен, чтобы всерьез задумываться о стоимости избыточных физических накопителей. Изза простоты реализации многие продвинутые ОС способны организовать RAID-0 программными средствами.

RAID-2 - повышает производительность уровня 1 путем разделения функциональности дисков, входящих в состав RAID-системы. В данном случае одни диски используются для хранения данных (рабочие диски), а другие - для выявления сбоев и коррекции ошибок. Поскольку головки на всех дисках работают одинаково и управляются интеллектуальным контроллером, метод раздельного хранения данных и управляющей информации работает быстрее, чем устаревший подход, при котором данные и информация, необходимая для исправления ошибок, записывались на одном и том же диске. По этой схеме 4 диска типичной RAID-системы используются для исправления ошибок, а 10 - для хранения данных. При передаче небольших файлов этот метод несколько медлительно, поскольку все диски должны выполнить запись или считывание всего нескольких байтов. Для хранения данных используется не более 70% дискового пространства. Применение кода Хэмминга обеспечивает

80

Соседние файлы в папке Тестирование