Главная страница
Навигация по странице:

  • 2. Теоретические сведения

  • 3. Оборудование

  • 4. Задание на работу

  • 5. Оформление отчета

  • 6 Контрольные вопросы

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

  • МУ_ЛР_БОС. А. С. Новиковым и обсуждены на заседании кафедры


    Скачать 1.1 Mb.
    НазваниеА. С. Новиковым и обсуждены на заседании кафедры
    Дата15.03.2022
    Размер1.1 Mb.
    Формат файлаdoc
    Имя файлаМУ_ЛР_БОС.doc
    ТипЛабораторная работа
    #396953
    страница6 из 17
    1   2   3   4   5   6   7   8   9   ...   17

    Лабораторная работа № 6.
    Базовые технологии безопасности операционных систем



    1. Цель работы

    Изучение принципов построения подсистем безопасности и защиты в операционных системах. Рассмотрение их составных частей и принципов взаимодействия. Изучение методов контроля целостности, идентификации и аутентификации на основе процедур хэширования. Изучение назначения и принципа работы электронной цифровой подписи (ЭЦП) и электронной сертификации.
    2. Теоретические сведения

    I. Хэш-функции

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



    Рис. 1. Контроль целостности через хэширование

    Во многих базовых технологиях безопасности используется — шифрование с помощью односторонней функции (one-way function), называемой также хэш-функцией (hash function), или дайджест-функцией (di­gest function). Хэш-функция — это преобразование, получающее из данных произвольной длины некое значение (свертку) фиксированной длины. Простейшими примерами являются контрольные суммы (например, crc32).

    Хэш-функция, примененная к шифруемым данным, дает в результате значение (дайджест), состоящее из фиксированного небольшого числа байт (рис. 1). Хэш передается вместе с исходным сообщением. Получатель сообщения, зная, какая односторонняя функция шифрования (ОФШ) была применена для получения хэша, заново вычисляет его, используя незашифрованную часть сообщения. Если значения полученного и вычисленного хэшей совпадают, то значит, содержимое сообщения не было подвергнуто никаким изменениям. Знание хэша не дает возможности восстановить исходное сообщение, но зато позволяет проверить целостность данных.

    Существуют криптографические и программистские хэши. Криптографический хэш отличается от программистского следующими двумя свойствами: необратимостью и свободностью от коллизий.

    Обозначим m — исходные данные, h(m) — хэш от них. Необратимость означает, что если известно число h0, то трудно подобрать m такое, что h(m)=h0. Свободность от коллизий означает, что трудно подобрать такие m1 и m2, что m1 != m2, но h(m1) = h(m2).

    Криптографические хэш-функции разделяются на два класса:

    • хэш-функции без ключа (MDC (Modification (Manipulation) Detect Code) -коды),

    • хэш-функции c ключом (MАC (Message Authentication Code) - коды).

    Хэш-функции без ключа разделяются на два подкласса:

    • слабые хэш-функции,

    • сильные хэш-функции.

    Слабой хэш-функцией называется односторонняя функция H(x), удовлетворяющая следующим условиям:

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

    2. значение H(x) должно быть строкой бит фиксированной длины;

    3. значение H(x) легко вычислить;

    4. для любого фиксированного x вычислительно невозможно найти другой x' != x, такой что H(x')=H(x).

    Пара x' != x, когда H(x')=H(x) называется коллизией хэш-функции.

    Сильной хэш-функцией называется односторонняя функция H(x), удовлетворяющая условиям 1-3 для слабой хэш-функции и свойству 4':

    4': вычислительно невозможно найти любую пару x' != x, такой что H(x')=H(x).

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

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

    Для повышения стойкости дайджеста применяются секрет­ные ключи. Хэш-функцией с ключом (MAC) называется функция H(k,x) удовлетворяющая следующим свойствам:

    1. аргумент х функции H(k,x) может быть строкой бит произвольной длины;

    2. значение H(k,x) должно быть строкой бит фиксированной длины;

    3. при любых k и x легко вычислить H(k,x);

    4. для любого х должно быть трудно вычислить H(k,x) не зная k;

    5. должно быть трудно определить k даже при большом числе неизвестных пар {x, H(k,x)} при выбранном наборе х или вычислить по этой информации H(k,x') для x' != x.

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

    Примером реализации такого алгоритма служит стандарт HMAC (hash message authentication codes). Он описан в RFC 2104. HMAC используется с любыми хэш функциями, такими как MD5, SHA-1 и т.д., совместно с секретным ключом. Длина подписи, вычисленной по этому алгоритму, определяется длиной дайджеста используемой хэш-функции.

    Для реализации алгоритма необходима хэш-функция (H) и секретный ключ (K). В стандарте введены некоторые обозначения:

    B – длина входного блока данных (В=64 для всех описанных выше хэш функций)

    L – длина выходного блока хэш функции (L=16 для MD5 и L=20 для SHA-1)

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

    Также определены две константы ipad и opad:

    • ipad = байт 0x36 повторяющийся В раз

    • opad = байт 0x5C повторяющийся В раз.

    Для вычисления хэша HMAC над данными “text” производятся следующие действия:

    H(K XOR opad, H(K XOR ipad, text)).

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

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

    Наиболее популярной в системах безопасности в настоящее время является се­рия хэш-функций MD2, MD4, MD5. Все они генерируют дайджесты фиксиро­ванной длины 16 байт. Адаптированным вариантом MD4 является американским стандарт SHA, длина дайджеста в котором составляет 20 байт. Компания IBM поддерживает односторонние функции MDC2 и MDC4, основанные на алгорит­ме шифрования DES.
    II. Электронная цифровая подпись

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

    Алгоритм работы ЭЦП можно представить следующим образом: вначале автор документа (файла и т.п.) должен сгенерировать пару ключей, один секретный, один открытый. Секретный ключ он оставляет при себе, открытый — передает всем потенциальным читателям (под роспись, или по другому доверенному каналу). Теперь при необходимости послать документ автор вычисляет некоторое число (ЭЦП), которое зависит от самого файла и от секретного ключа. Без знания секретного ключа это число подобрать крайне сложно. Получатель вычисляет другое число на основе полученного файла, полученной ЭЦП и открытого ключа. Если получилась 1 — значит, документ не был искажен, и автор соответствует предполагаемому. Если получился 0 — значит, это подделка.

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

    На практике процесс электронной подписи документа осуществляется следующим образом:

    Создается цифровая подпись.

    • Вычисляется дайджест сообщения.

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

    Производится верификация цифровой подписи.

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

    • Значение дайджеста сообщения сравнивается со значением дайджеста сообщения вычисленного из исходного сообщения.

    • Если оба значения дайджеста сообщения совпадают, то подпись подлин­на. В противном случае или подпись, или сообщение были изменены.

    Примером алгоритма цифровой подписи является DSA (Digital Signature Algo­rithm), разработанный Национальным институтом стандартов и технологий (NIST). Защищенность алгоритма DSA, как и алгоритма с открытым ключом Еl-Gamal, определяется сложностью вычисления дискретных логарифмов

    Алгоритмы цифровой подписи получили широкое распространение не только в задачах проверки целостности данных, но и в области цифровой сертификации.
    III. Цифровые сертификаты

    Для защиты открытого ключа, т.е. для того, чтобы однозначно удостоверить его принадлежность, используются не просто открытые ключи, а их сертификаты, формируемые Центром Сертификации Ключей (Центром Распределения Ключей, Certificate Authority). В качестве центра сертификации выбирается организация, которой доверяют все участники обмена и которой они лично предъявляют свои открытые ключи. Центр формирует из собранных ключей сертификаты путем подписания их своей электронной подписью. После этого каждый участник получает сертификат (собственный открытый ключ, подписанный центром) и открытый ключ центра. При установлении связи корреспонденты обмениваются не просто открытыми ключами, а сертификатами, что дает возможность однозначно идентифицировать второго участника обмена путем проведения процедуры проверки электронной подписи центра под его сертификатом.

    Чтобы получить сертификат полномочного органа сертификации, обыч­но нужно представить в него документы, подтверждающие личность заявителя (частного лица или организации). Технология сертификации помогает, например, предотвратить возможность ведения неправомочными лицами деловых операций в Web под видом компании Microsoft или банка Bank of America. Рис. 2 иллю­стрирует процедуру получения сертификатов.



    Рис. 2. Процедура получения сертификатов
    3. Оборудование

    Персональный компьютер с установленной операционной системой MSWindows 2000 SP4, XPSP2, Vista или 7 и средами разработки ПО BorlandC++ Builder или MSVisualStudio 2005/2008/2010.
    4. Задание на работу

    1. Изучить теоретические положения по данной лабораторной работе.

    2. Разработать программное обеспечение согласно заданию преподавателя. Вариантами заданий могут быть следующие:




    Задание

    1

    Вычисление дайджеста по алгоритму MD5

    2

    Вычисление дайджеста по алгоритму SHA-1

    3

    Вычисление дайджеста по алгоритму HMAC-MD5

    4

    Вычисление дайджеста по алгоритму HMAC- SHA-1

    5

    Проверка подлинности хэша MD5

    6

    Проверка подлинности хэша SHA-1

    7

    Проверка подлинности хэша HMAC-MD5

    8

    Проверка подлинности хэша HMAC- SHA-1



    5. Оформление отчета

    Отчет должен содержать:

    • название и цель работы;

    • вариант задания;

    • краткие теоретические положения и алгоритм работы программы

    • результаты работы созданного программного обеспечения;

    • листинг программы, реализующей задание.


    6 Контрольные вопросы

    6.1. Что такое хэш-функция?

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

    6.3. Чем отличается алгоритм SHA-1 от алгоритма SHA?

    6.4. В чем отличие алгоритмов MD2, MD4 и MD5?

    6.5. В чем заключается принцип алгоритма HMAC?

    6.6. В чем заключается принцип электронной сертификации?

    6.7. Где в операционных системах применяются электронные сертификаты?
    7. Библиографический список

    1. Олифер В.Г. Сетевые операционные системы: Учеб. пособие для вузов / В.Г. Олифер, Н.А. Олифер .— М.: Питер, 2003. — 544с.

    2. Таненбаум Э. Современные операционные системы / Э. Таненбаум.— 2-е изд. — М.: Питер, 2006 .— 1038с.

    3. Монадьеми П. Защита от хакеров в Windows XP/ П. Монадьеми, Б. Мюллер; пер. с нем. под ред. С.Н. Банникова.— М.: БИНОМ, 2005 .— 320с.

    4. Немет Э. UNIX: Руководство системного администратора/ Э. Немет, Г. Снайдер, С. Сибасс, Т.Р. Хейн. 3-е изд. — М.: Питер, 2003 .— 925с.
    1   2   3   4   5   6   7   8   9   ...   17


    написать администратору сайта