- •Лабораторная работа № 2
- •Цель работы:
- •Теоретическое введение
- •1.1. Построение систем защиты от угрозы нарушения конфиденциальности информации
- •Общие подходы к построению парольных систем
- •Выбор паролей
- •Передача пароля по сети
- •Криптографические методы защиты
- •Способы и особенности реализации криптографических подсистем
- •Криптографическая защита на прикладном уровне ас
- •2. Построение систем защиты от угрозы нарушения целостности информации
- •Целостность данных в ас
- •Барьерные адреса
- •Динамические области памяти
- •Адресные регистры
- •3. Построение систем защиты от угрозы отказа доступа к информации
- •Предотвращение неисправностей в по ас
- •4. Построение систем защиты от угрозы раскрытия параметров информационной системы
- •5. Методология построения защищенных ас
- •Исследование корректности реализации и верификация ас
- •Список литературы
- •2. Порядок выполнения работы
- •3. Практические задания
- •4. Контрольные вопросы
Динамические области памяти
Физические адреса программных данных могут вычисляться не только, как описывалось выше, в момент компиляции или загрузки программы, но и непосредственно в процессе ее выполнения. При этом логические адреса данных, как и раньше, начинаются с нулевого, а при обращении к ячейке памяти ее физический адрес вычисляется сложением логического со значением барьерного адреса. Таким образом обеспечивается возможность изменения последнего в ходе выполнения программы, а программы АС и приложение занимают динамические области памяти.
Рассмотренные выше способы защиты реализуют только разграничение доступа к памяти АС и приложений. Однако в многозадачной системе необходимо также отдельно защитить данные каждого приложения. Такие механизмы рассматриваются ниже.
Адресные регистры
Доступная пользовательской программе область памяти может быть ограничена парой хранящихся в регистрах значений: начальным и конечным адресом области. При этом каждой программе отводится отдельная область памяти и отдельная пара адресных регистров.
Один из вариантов использования адресных регистров т это хранение в них начального и конечного физических адресов - области памяти приложения. В этом случае при каждом обращении программы к памяти проверяется принадлежность адреса заданному содержимым этих регистров промежутку.
Другой способ применения адресных регистров - задание в них базового и предельного адресов области памяти приложения, причем первый является физическим, а второй - логическим. Адрес, по которому происходит обращение к памяти, сначала сравнивается с содержимым регистра, задающего предельно допустимый логический адрес (напоминание: адресация в логическом пространстве начинается с нуля). Если указанный в программе адрес меньше предельного, для получения физического адреса к нему прибавляется значение базового. В противном случае программа аварийно завершается. Такой способ в отличие от предыдущего допускает динамическое перемещение программы в памяти.
Более надежные способы защиты памяти на основе адресных регистров предполагают использование двух пар регистров для каждой программы; отдельно для фрагмента кода и данных. При этом запись в первый фрагмент может быть запрещена для защиты кода от изменения (как предполагается, непреднамеренного).
Все уже рассмотренные способы защиты памяти обладают одной общей особенностью, а именно, обеспечивают защиту выделенной области памяти, состоящей из последовательно расположенных ячеек. Однако нередко возникает необходимость более тонко разграничивать доступ к памяти, что можно реализовать с помощью ключей доступа. Ключ доступа - это устанавливаемый операционной системой атрибут отдельной ячейки памяти, на основе которого затем осуществляется проверка допустимости каждого обращения, например:
-
Адрес ячейки
Чтение
Запись
Исполнение
000000315
Да
Да
Нет
000000316
Да
Нет
Нет
000000317
Да
Нет
Да
Другая особенность механизма защиты с применением адресных регистров связана с организацией совместного использования областей памяти. Две пары регистров (для кода и данных, как говорилось выше) позволяют эффективно организовать совместное использование только фрагментов кода (запись в которые запрещена). Для защиты фрагмента данных от непреднамеренного искажения в результате операций записи необходимы дополнительные средства (адресные регистры позволяют контролировать только сам факт доступа к области памяти, но не конкретный способ осуществления доступа: чтение или запись).
Более совершенные средства защиты памяти обеспечиваются механизмами страничной организации памяти и сегментации.
Страницы и сегменты памяти
При страничной организации памяти все адресное пространство разделяется на блоки фиксированного размера (страницы). Проверка допустимости адресов и преобразование логических адресов в физические при обращениях к памяти осуществляется с помощью таблицы страниц, каждая запись которой содержит начальный адрес расположения страницы в памяти. Логический адрес имеет формат <номер страницы, смещение>. По номеру страницы определяется физический адрес ее первой ячейки, к которому затем прибавляется смещение. С каждой страницей ассоциирован ключ доступа, определяющий набор допустимых операций (чтение, запись, исполнение).
Такая схема организации памяти поддерживает совместное использование страниц: в таблицах страниц отдельных приложений могут быть описаны одни и те же страницы физической памяти. Однако более изощренное управление доступом в страничной модели затруднено из-за того, что на одной странице могут находиться различные по своей природе объекты (например, код и данные некоторой программы).
Смысл сегментной организации памяти заключается в том, чтобы предоставить индивидуальные (возможно, неодинаковые по размеру) области памяти логически различным частям программы. Например, в отдельные сегменты могут быть помещены данные с различным типом доступа или код основной части программы и вызываемых ею подпрограмм. Преобразование логических адресов в физические происходит на основе содержимого таблицы сегментов, куда заносятся базовый и предельный адреса каждого сегмента (они обсуждались при описании функционирования адресных регистров). Логический адрес имеет формат <номер сегмента, смещение>, похожий на формат, применяемый в страничной адресации. Однако теперь каждый сегмент содержит однородные объекты, которым необходим одинаковый уровень защиты, так же как и выше, обеспечиваемый ключом доступа. Возможно совместное использование сегментов данных и кода, отдельные участки которого (например, процедуры и функции) могут быть предоставлены в совместное использование независимо от основной программы.
Цифровая подпись
Средства контроля целостности программ и файлов данных, хранимых в АС, должны обеспечивать защиту от несанкционированного изменения этой информации нарушителем, особенно при ее передаче по каналам связи. Цифровая (электронная) подпись, основные характеристики которой рассмотрены в целом ряде источников, в частности [2], является одним из часто используемых для решения данной задачи механизмов.
Кроме того, информация в вычислительных сетях нередко нуждается в аутентификации, т.е. в обеспечении заданной степени уверенности получателя или арбитра в том, что она была передана отправителем и при этом не была заменена или искажена. Если целью шифрования является защита от угрозы нарушения конфиденциальности, то целью аутентификации является защита участников информационного обмена не только от действий посторонних лиц, но и от взаимного обмана.
В чем состоит проблема аутентификации данных или цифровой подписи?
В конце обычного письма или документа исполнитель или ответственное лицо обычно ставит свою подпись. Подобное действие преследует две цели. Во-первых, получатель имеет возможность убедиться в истинности письма, сличив подпись с имеющимся у него образцом. Во-вторых, личная подпись является юридическим гарантом авторства документа. Последний аспект особенно важен при заключении разного рода торговых сделок, составлении доверенностей, обязательств и т.д.
Если подделать подпись человека на бумаге весьма непросто, а установить авторство подписи современными криминалистическими методами - техническая деталь, то с цифровой подписью дело обстоит иначе. Подделать цепочку битов, просто ее скопировав, или незаметно внести нелегальные исправления в документ сможет любой пользователь.
В самой общей модели аутентификации сообщений представлено пять участников. Это отправитель А, получатель В, злоумышленник С, доверенная сторона Д и независимый арбитр Е. Задача отправителя А заключается в формировании и отправке сообщения Т получателю В. Задача получателя В заключается в получении сообщения Т и в установлении его подлинности. Задача доверенной стороны Д является документированная рассылка необходимой служебной информации абонентам вычислительной сети, чтобы в случае возникновения спора между А и В относительно подлинности сообщения представить необходимые документы в арбитраж. Задача независимого арбитра Е заключается в разрешении спора между абонентами А и В относительно подлинности сообщения Т.
Перечислим возможные способы обмана (нарушения подлинности сообщения) при условии, что между участниками модели А, В, С отсутствует кооперация.
Способ А: отправитель А заявляет, что он не посылал сообщение Т получателю В, хотя в действительности его посылал (подмена отправленного сообщения или отказ от авторства).
Способ В1: получатель В изменяет полученное от отправителя А сообщение Т и заявляет, что данное измененное сообщение он получил от отправителя А (подмена принятого сообщения).
Способ В2: получатель В сам формирует сообщение и заявляет, что получил его от отправителя А (имитация принятого сообщения).
Способ С1: злоумышленник С искажает сообщение, которое отправитель А передает получателю В {подмена передаваемого сообщения).
Способ С2: злоумышленник С формирует и посылает получателю В сообщение Т от имени отправителя А (имитация передаваемого сообщения).
Способ СЗ: злоумышленник С повторяет ранее переданное сообщение, которое отправитель А посылал получателю В (повтор ранее переданного сообщения).
Аутентификация (цифровая подпись) при условии взаимного доверия между участниками информационного обмена обеспечивается имитозащитой информации с помощью криптостойких преобразований.
Приведем сравнительный анализ обычной и цифровой подписи.
При обычной подписи:
• каждая личность использует индивидуальные, только ей присущие характеристики - почерк, давление на ручку и т. д.;
• попытка подделки подписи обнаруживается с помощью графологического анализа;
• подпись и подписываемый документ передаются только вместе на одном листе бумаги; передавать подпись отдельно от документа нельзя; подпись не зависит от содержания документа, на котором она поставлена;
• копии подписанных документов недействительны, если каждая из этих копий не имеет своей настоящей (а не скопированной) подписи.
При цифровой подписи:
• каждая личность использует для подписи документов свой уникальный
секретный ключ;
• Любая попытка подписать документ без знания соответствующего секретного ключа практически не имеет успеха;
• цифровая подпись документа есть функция от содержания этого документа и секретного ключа; цифровая подпись может передаваться отдельно от документа;
• копия документа с цифровой подписью не отличается от его оригинала
(нет проблем каждой копии).
Для аутентификации информации Диффи и Хеллман в 1976 г. предложили концепцию "цифровой подписи". Она заключается в том, что каждый абонент сети имеет личный секретный ключ, на котором он формирует подпись и известную всем другим абонентам сети проверочную комбинацию, необходимую для проверки подписи (эту проверочную комбинацию иногда называют открытым ключом). Цифровая подпись вычисляется на основе сообщения и секретного ключа отправителя. Любой получатель, имеющий соответствующую проверочную комбинацию, может аутентифицировать сообщение по подписи. При этом знание лишь проверочной комбинации не позволяет подделать подпись. Такие схемы называются асимметричными схемами аутентификации.
Термин "цифровая подпись" используется для методов, позволяющих устанавливать подлинность автора сообщения при возникновении спора относительно авторства этого сообщения. Цифровая подпись применяется в информационных системах, в которых отсутствует взаимное доверие сторон (финансовые системы, системы контроля за соблюдением международных договоров и др.).
Известны два класса формирования цифровой подписи.
• Первый класс способов использует труднообратимые функции типа возведения в степень в конечных полях большой размерности (сотни и даже тысячи битов). К этому классу относится Российский ГОСТ на цифровую подпись (ГОСТР 34.10-94 и ГОСТ Р 34.11-94). Он является усложнением алгоритмов цифровой подписи RSA и Эль-Гамаля.
• Второй класс способов использует криптостойкие преобразования, зависящие от секретного ключа.
В обоих случаях требуется предварительная заготовка и рассылка возможным получателям информации контрольных комбинаций. Общедоступные контрольные комбинации должны быть нотариально заверены, чтобы ни отправитель, ни получатель не смогли впоследствии от них отказаться. Оба класса способов не нуждаются в закрытых каналах. Контрольные комбинации и подписи пересылаются открыто. Единственным секретным элементом во всех способах является личный секретный ключ отправителя.
Необходимо отметить, что в настоящее время контроль целостности данных, хранимых в АС, осуществляется методами теории помехоустойчивого кодирования. Наибольшее применение получили циклические контрольные коды, описанные в п. "Организационно-технологические меры защиты целостности информации на машинных носителях", которые можно применять для контроля целостности не только секторов (блоков) на машинных носителях, но и файлов. Однако эти методы, дающие хорошие результаты при защите от воздействия случайных факторов (помех, сбоев и отказов), совсем не обладают имитостойксстыо, т.е. не обеспечивают защиту от целенаправленных воздействий нарушителя, приводящих к навязыванию ложных данных. Методы имитозащиты, основанные на криптографических преобразованиях, обеспечивают надежный контроль данных, хранящихся в АС, но в то же время реализуются в виде больших и сложных программ и требуют значительных вычислительных ресурсов.
Защита от угрозы нарушения целостности информации на уровне содержания
Защита от угрозы нарушения целостности информации на уровне содержания в обычной практике рассматривается как защита от дезинформации. Пусть у злоумышленника нет возможности воздействовать на отдельные компоненты АС, находящиеся в пределах контролируемой зоны, но если источники поступающей в нее информации находятся вовне системы, всегда остается возможность взять их под контроль противоборствующей стороной. В соответствии с [18] при намеренной дезинформации применяют как заведомую ложь, так и полуправду, исподволь подталкивающую воспринимающих ее к ложным суждениям. Наиболее распространенными приемами здесь являются:
• прямое сокрытие фактов;
• тенденциозный подбор данных;
• нарушение логических и временных связей между событиями;
• подача правды в таком контексте (добавлением ложного факта или намека), чтобы она воспринималась как ложь;
• изложение важнейших данных на ярком фоне отвлекающих внимание сведений;
• смешивание разнородных мнений и фактов;
• изложение данных словами, которые можно истолковывать по-разному;
• отсутствие упоминания ключевых деталей факта.
Кроме того, в процессе сбора и получения информации возникают искажения, которые чаще всего происходят из-за:
• передачи только части сообщения;
• интерпретации услышанного в соответствии со своими знаниями и представлениями;
• пропуска фактуры через призму субъективно-личностных отношений.
Для успешности борьбы с вероятной дезинформацией следует:
• различать факты и мнения;
• применять дублирующие каналы информации;
• исключать все лишние промежуточные звенья и т. п.
Проблема защиты информации в АС от угрозы нарушения целостности на уровне содержания информации до сих пор не ставилась, по-видимому, в силу того, что в качестве автоматизированных систем рассматривались, как правило, системы типа складского и бухгалтерского учета, в которых изменение содержания одной записи практически не вызывало противоречий в содержаниях остальных записей. По мере усложнения алгоритмов обработки информации, расширения применения в повседневной, практике экспертных и самообучающихся систем и т.п. качество вводимой информации начинает играть все более важную роль. Простейшим примером здесь может служить программирование на языках типа Пролог, когда задание неверного правила, т.е. информации, целостность которой нарушена, может привести к неверному результату (в том числе зацикливанию и зависанию) программы.
Вместе с тем, даже в обычных учетных АС необходимо предусматривать наличие подсистем, проводящих первичный смысловой анализ и в определенной степени контролирующих работу оператора. Примером простейшей легко реализуемой смысловой проверки является контроль соблюдения диапазона дат. Так, персональный компьютер, хранящийся на складе, не может быть выпущен раньше 1980 г. Более сложные алгоритмы контроля связаны со спецификой обрабатываемой информации и технологии ее обработки. Наличие подобных подсистем позволяет защитить информацию в АС не только от случайных, но и преднамеренных ошибок.