Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Распределение механизмов защиты




Зависимости между службами, требующими доверия, приводят к понятию доверенной вычислительной базы (Trusted Computing Base, TSB). TSB — это набор всех механизмов защиты (распределенной) компьютерной системы, необходимых для осуществления правил защиты. Чем меньше TSB, тем лучше. Если распределенная система построена на базе промежуточного уровня (надстройки над существующей сетевой операционной системой), ее защита может зависеть от защиты базовых локальных операционных систем. Другими словами, TSB в распределенной системе может включать в себя локальные операционные системы различных хостов.

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

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

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

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

 

Рис. 8.5. Применение принципов RISSC к защищенным распределенным системам

 

Подобное разделение эффективно уменьшает размер ТСВ до относительно небольшого числа аппаратных и программных компонентов. В ходе последующей защиты этих машин от внешних атак общее доверие к защите распределенной системы может быть еще увеличено. Предотвращение прямого доступа клиентов и их приложений к критически важным службам производится путем предоставления ограниченного интерфейса к защищенным системным компонентам (Reduced Interfaces for Secure System Components, RISSC). Согласно этому подходу, любой критичный к уровню защиты сервер помещается на отдельную машину, изолированную от систем конечных пользователей, и использует низкоуровневые защищенные сетевые интерфейсы, как показано на рис. 8.5. Клиенты и их приложения работают на различных машинах и могут взаимодействовать с защищенным сервером только через эти сетевые интерфейсы.

Простота

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

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

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

Библиографический список

1. Таненбаум Э., ван Стеен М. Распределенные системы. Принципы и парадигмы. СПб.: Питер, 2003. — 877 с.



Лекция №27-28

Криптография

В защите распределенных систем очень важную роль играют приемы криптографии. Основная идея этих приемов проста. Рассмотрим отправителя S, который хочет переслать сообщение т получателю R. Чтобы обезопасить сообщение от угроз защите, отправитель сначала шифрует его, превращая в непонятное сообщение т', после чего посылает это т' получателю R. R, в свою очередь, должен расшифровать полученное сообщение и получить оригинал, то есть сообщение т.

Шифрование и расшифровка осуществляются путем применения криптографических методов с использованием ключей, как показано на рис. 8.6. Исходная форма посылаемого сообщения, называемая простым текстом (plaintext), обозначена на рисунке как Р, его зашифрованный вариант, известный как шифрованный текст (ciphertext), обозначен как С.

Чтобы описать различные протоколы, используемые для построения служб защиты распределенных систем, полезно будет ввести обозначения для обычного текста, шифрованного текста и ключей. В соответствии с общими соглашениями мы будем использовать выражение С = ЕK(Р) для описания того факта, что шифрованный текст С был получен путем шифрования простого текста Р с использованием ключа K, Точно так же Р = DK(C) обозначает операцию расшифровки шифрованного текста С с использованием ключа K, приводящую к получению простого текста Р.

 

Рис. 8.6. Проникновение и подслушивание при взаимодействии

 

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

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

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

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

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

P = DK(EK(P)).

Симметричные криптосистемы также именуются системами с секретным, или общим, ключом, поскольку отправитель и получатель должны совместно использовать один и тот же ключ, и, чтобы гарантировать защиту, этот общий ключ должен быть секретным. Никто другой этот ключ видеть не должен. Мы будем использовать для такого ключа, разделяемого A и В, обозначение KА,В.

В асимметричной криптосистеме (asymmetric cryptosystem) ключи шифрования и расшифровки различны, но вместе образуют уникальную пару. Другими словами, существует отдельный ключ шифрования KЕ. И отдельный ключ расшифровки, KD, так что:

.

Один из ключей асимметричной криптосистемы является закрытым, другой — открытым. По этой причине асимметричные криптосистемы также называют системами с открытым ключом (public-key systems). Поэтому мы будем использовать обозначение  для обозначения открытого ключа, принадлежащего A, а  — для соответствующего ему закрытого ключа.

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

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

Еще одно применение криптографии в распределенных системах — это хэш-функции (hash functions). Хэш-функция H принимает на входе сообщение т произвольной длины и создает строку битов h фиксированной длины:

h = Н(т).

Хэш h можно сравнить с дополнительными битами, добавляемыми к сообщению в коммуникационной системе для обнаружения ошибок, например, при циклическом избыточном кодировании (CRC).

Хэш-функции, используемые в криптографических системах, имеют определенные свойства. Во-первых, это односторонние функции (one-way functions). То есть вычисление входного сообщения т по известному результату их работы h невозможно. С другой стороны, вычислить h по т достаточно несложно. Во-вторых, они обладают свойством слабой устойчивости к коллизиям (weak collision resistance), означающим, что если заданы исходное сообщение т и соответствующий ему результат h = Н(т), невозможно вычислить другое сообщение т', такое, что Н(т) = Н(т'). И наконец, криптографическая хэш-функция также обладает свойством сильной устойчивости к коллизиям (strong collision resistance). Это значит, что если дана только хэш-функция Н, невозможно вычислить любые два различных входных значения т и т'такие что Н(т) = Н(т').

Подобные свойства приложимы к любой функции шифрования Е и используемым ключам. Кроме того, для любой функции шифрования Е не должно быть возможности вычислить используемый ключ K, имея простой текст Р и соответствующий ему шифрованный текст С = EK(Р). Также аналогично устойчивости к коллизиям, при наличии простого текста Р и ключа K невозможно вычислить другой подходящий ключ K'такой, что .

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

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

Таблица 8 . 1 .

Нотация, используемая в этой главе

Нотация Описание
KA,B Секретный ключ, совместно используемый А и В
Открытый ключ А
Закрытый ключ А

 

 

Рис. 8.7. Алгоритм DES (а). Схема одного цикла шифрования (б)

 










Последнее изменение этой страницы: 2018-04-12; просмотров: 315.

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