Закрепление навыков администрирования операционных систем семейства UNIX

Содержание

     
    Введение  ………………………………………………………………………….

    1. Задание к курсовой работе …………………………………………………..

    1. Описание операционной системы …………………………………………..
    2. Выбор способа шифрования …………………………………………………
    3. Описание методов шифрования ………………………………………..……
      1. Цифровые подписи ………………………………………………………
      2. Криптографические хэш-функции …………………………..………….
      3. Криптографические генераторы случайных чисел ……………………
    4. Исполняемый файл для выполнения задачи шифрования ………………..
      1. Текст файла ………………………………………………………………
      2. Описание работы исполняемого файла…………………………………
      3. Руководство пользователя……………………………………………….

    Заключение……………………………………………………………………….

    Список  использованной литературы…………………………………………… 
     
     

     
    2

    3

    4

    7

    10

    12

    14

    15

    17

    17

    19

    21

    27

    28

 

 

Введение 

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

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

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

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

 

  1. Задание к курсовой работе
 

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

    Заданием  курсовой работы является реализация шифрованной файловой системы для  конкретной директории в операционной системе ALT Linux 4.0 Desktop.

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

 

  1. Описание  операционной системы
 

    Почему  стоит использовать Linux вместо хорошо известных, хорошо оттестированных, хорошо документированных коммерческих операционных систем? Мы можем привести тысячи причин. Одна из наиболее важных - то что Linux - отличный выбор для персональных вычислений в среде UNIX. Если вы разработчик программ в UNIX, зачем дома использовать MS-DOS? Linux позволит вам создавать и тестировать программы для UNIX на вашем персональном компьютере, включая базы данных и приложения для X Window. Если вы студент, то высока вероятность, что университетская компьютерная система работает под UNIX. Linux позволяет вам иметь свой собственный UNIX и перекраивать его по своему вкусу. Инсталляция и использование Linux - также прекрасный путь изучения UNIX, если у вас нет доступа к другим UNIX-машинам.

    Но не будем зарываться. Linux не для отдельных скромных любителей UNIX на персоналках. Это большая и достаточно сложная система для решения сложных задач и организации распределенных вычислений. Многие фирмы, особенно небольшие, двигаются в сторону Linux, предпочитая его другим UNIX. Университеты считают Linux отлично подходящим для обучения операционным системам. Крупные поставщики программ начинают понимать, какие выгоды сулит свободное распространение операционных систем. ALT Linux 4.0 Personal Desktop – операционная система, предназначенная для офисного и домашнего применения, дающая пользователю возможность решать обычные задачи в удобном окружении. Система снабжена дружественной программой установки и приложением ALTerator – интуитивно понятным инструментом настройки и управления.

       В состав ALT Linux 4.0 Personal Desktop входит офисный пакет OpenOffice.org, позволяющий работать с файлами ODF (стандарт ISO), а также с другими популярными форматами офисных документов. В поставку включена среда WINE, дающая возможность запускать приложения Windows. ALT Linux 4.0 Personal Desktop включает средства работы в Интернете, программы для работы с векторной и растровой графикой, мультимедиа, словари и обучающие программы.

       Традиционной особенностью продуктов ALT Linux является высокая безопасность и надёжность в работе. Сильной стороной ALT Linux 4.0 Personal Desktop является поддержка новейшего оборудования ведущих мировых производителей и современных технологий передачи данных, в том числе беспроводных сетей связи.

       В новом продукте удалось сохранить приемлемые системные  требования к персональному компьютеру, что позволяет использовать большинство  новейших программ на существующем парке  компьютеров. ALT Linux 4.0 Personal Desktop может быть легко установлен на компьютер в качестве второй операционной системы, что позволит пользователю освоиться в новой среде, имея под рукой привычное окружение.

       ALT Linux 4.0 Personal Desktop свободно доступен для скачивания на сервере FTP компании в виде бинарных и исходных пакетов, а также образа ISO DVD-5. Коробочная версия ALT Linux 4.0 Personal Desktop поступит в продажу с 30 августа 2007 года. Поставка включает в себя: диск DVD-5, печатное руководство по установке, уведомление о правах и купон технической поддержки на один компьютер.

       Основные характеристики ALT Linux 4.0 Desktop

  • ядро Linux 2.6.18;

графическая система  XOrg;

  • графическая пользовательская среда KDE 3.5, включающая веб-браузер Konqueror, почтовый клиент KMail, средства для работы с мультимедиа, игры и множество других приложений;
  • интегрированный менеджер информации Kontact, совмещающий функциональность почтового клиента, электронной адресной книги, средства чтения новостных лент, ведения заметок, и планировки задач. Kontact также позволяет синхронизировать данные с карманными компьютерами на основе операционной системы Palm OS;
  • Интернет-пейджер Kopete, поддерживающий множество протоколов передечи сообщений: jabber, msn, yahoo, aim, gadu-gadu, icq;
  • веб-браузер Mozilla Firefox и почтовый клиент Mozilla Thunderbird;
  • офисный пакет OpenOffice.org 2.2 c полной поддержкой русского языка, позволяющий создавать и редактировать текстовые документы, электронные таблицы, презентации, векторные изображения и даже базы данных;
  • Графический редактор GIMP 2.2 — профессиональная программа для обработки растровой графики и для создания графических элементов при оформлении веб-сайтов;
  • Приложения для проигрывания мультимедийных файлов: Kaffeine, Amarok, Xine, Mplayer;
  • K3B: средство записи CD и DVD.

 

  • Выбор способа шифрования

     При изучении различных источников информации и консультаций со специалистами  по администрированию Linux-систем было установленно, что для создания шифрованных разделов наиболее оптимально подходят такие утилиты как cryptoloop и cryptsetup. Особенностями этих программных продуктов являются:

     Cryptoloop – уже оправдавшая себя и имеющая много поклонников утилита, которая использовалась для шифрования данных в ОС Linux с версией ядра 2.4. Является довольно удобной и наиболее используемой до недавнего времени программой шифрования данных. Поддержка CryptoLoop(крипрографического loopback-устройства) появилась в Linux впервые в ядрах серии 2.4, причём для ранних версий должена была устанавливаться в виде отдельного патча в связи с действующими в то время ограничениями на экспорт криптографических систем в США. Работа с устройствами зашифрованными CryptoLoop в Windows возможна с помощью программ FreeOTFE и TrueCrypt.

     Cryptsetup – довольно новая утилита для шифрования данных в ОС Linux. На сегодняшний день рекомендуется использовать именно систему cryptsetup для ядер версии 2.6 вместо Cryptoloop.

     Для того, чтобы определится с выбором утилиты, был произведен их сравнительный анализ при чтении-записи на дисковое устройство и при передачи по сети. Результаты представленны в виде диаграмм:

    Итог  достаточно понятен. Нетрудно заметить, что cryptsetup продемонстрировала хорошие показатели, максимально приблизившись к показателям партиции без шифрования для случая записи и отстала от последней для случая чтения всего лишь на четверть (25%).

    А значить, так как ALT Linux 4.0 Desktop имеет версию ядра 2.6 и cryptsetup продемонстрировала более качественные показатели именно ее мы будем использовать для решения поставленной задачи.

 

  1. Описание  методов шифрования

   Метод шифровки/дешифровки называют шифром. Некоторые алгоритмы шифрования основаны на том, что сам метод  шифрования (алгоритм) является секретным. Ныне такие методы представляют лишь исторический интерес и не имеют  практического значения. Все современные  алгоритмы используют ключ для управления шифровкой и дешифровкой; сообщение  может быть успешно дешифровано, только если известен ключ. Ключ, используемый для дешифровки может не совпадать с ключом, используемым для шифрования, однако в большинстве алгоритмов ключи совпадают.

   Алгоритмы с использованием ключа делятся  на два класса: симметричные (или  алгоритмы секретным ключом) и  асимметричные (или алгоритмы с  открытым ключом). Разница в том, что симметричные алгоритмы используют один и тот же ключ для шифрования и для дешифрования (или же ключ для дешифровки просто вычисляется  по ключу шифровки). В то время  как асимметричные алгоритмы  используют разные ключи, и ключ для  дешифровки не может быть вычислен по ключу шифровки.

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

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

    Многие  качественные криптографические алгоритмы  доступны широко - в книжном магазине, библиотеке, патентном бюро или в  Интернет. К широко известным симметричным алгоритмам относятся DES и IDEA, Наверное самым лучшим асимметричным алгоритмом является RSA.

 

    1. Цифровые  подписи

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

    Цифровые  подписи также можно использовать для удостоверения (сертификации −  to certify) того, что документ принадлежит определенному лицу. Это делается так: открытый ключ и информация о том, кому он принадлежит подписываются стороной, которой доверяем. При этом доверять подписывающей стороне мы можем на основании того, что ее ключ был подписан третьей стороной. Таким образом, возникает иерархия доверия. Очевидно, что некоторый ключ должен быть корнем иерархии (то есть ему мы доверяем не потому, что он кем-то подписан, а потому, что мы верим a-priori, что ему можно доверять). В централизованной инфраструктуре ключей имеется очень небольшое количество корневых ключей сети (например, облеченные полномочиями государственные агенства; их также называют сертификационными агентствами). В распределенной инфраструктуре нет необходимости иметь универсальные для всех корневые ключи, и каждая из сторон может доверять своему набору корневых ключей (скажем своему собственному ключу и ключам, ею подписанным). Эта концепция носит название сети доверия (web of trust) и реализована, например, в PGP.

Цифровая  подпись документа обычно создается  так: из документа генерируется так  называемый дайджест (message digest) и к нему добавляется информация о том, кто подписывает документ, штамп времени и прочее. Получившаяся строка далее зашифровывается секретным ключом подписывающего с использованием того или иного алгоритма. Получившийся зашифрованный набор бит и представляет собой подпись. К подписи обычно прикладывается открытый ключ подписывающего. Получатель сначала решает для себя доверяет ли он тому, что открытый ключ принадлежит именно тому, кому должен принадлежать (с помощью сети доверия или априорного знания), и затем дешифрует подпись с помощью открытого ключа. Если подпись нормально дешифровалась, и ее содержимое соответствует документу (дайджест и др.), то сообщение считается подтвержденным.

    Свободно  доступны несколько методов создания и проверки цифровых подписей. Наиболее известным является алгоритм RSA.

 

    1. Криптографические хэш-функции

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

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

    Много хороших криптографических хэш-функций  доступно бесплатно. Широко известные  включают MD5 и SHA.

 

    1. Криптографические генераторы случайных  чисел

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

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

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

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

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

 

  1. Исполняемый файл для выполнения задачи шифрования
    1. Текст файла
 

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

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

   Текст файла dtcrypt.sh для создания шифрованной файловой системы:

   #!/bin/sh

   echo -n "Please write down user name : "

   read user

   echo -n "Please write down file name : "

   read fileName

   touch /home/$user/$fileName

   shred -n1 -s100M /home/$user/$fileName

   modprobe dm-crypt

   modprobe aes

   losetup /dev/loop0 /home/$user/$fileName

   echo -n "Please write down crypt disk name : "

   read diskName

   cryptsetup -c aes -y create $diskName /dev/loop0

   mkreiserfs /dev/mapper/$diskName

   mkdir /mnt/crdisk

   mount /dev/mapper/$diskName /mnt/crdisk

   echo -n "Crypt disk is created and mounted. Mounting point : /mnt/crdisk.

            For mounting and unmounting this disk use dtm.sh and dtum.sh" 

   Текст файла dtm.sh для монтирования шифрованного раздела:

   #!/bin/sh

   echo -n "Please write down user name : "

   read user

   echo -n "Please write down file name : "

   read fileName

   echo -n "Please write down crypt disk name : "

   read diskName

   losetup /dev/loop0 /home/$user/$fileName

   cryptsetup create $diskName /dev/loop0

   mount /dev/mapper/$diskName /mnt/crdisk

   echo -n "Crypt disk is mounted. For unmounting use dtum.sh" 

   Текст файла dtum.sh для размонтирования шифрованного раздела:

   #!/bin/sh

   echo -n "Please write down crypt disk name : "

   read diskName

   umount /dev/mapper/$diskName /mnt/crdisk

   cryptsetup remove $diskName

   losetup -d /dev/loop0

   echo -n "Crypt disk is unmounted. For mounting use dtm.sh" 

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

 

    1. Описание  работы исполняемого файла

    Переменные, используемые при описании работы файлов:

    $user – имя пользователя, для которого создается шифрованная директория

    $fileName – имя файла, в котором будет храниться зашифрованные данные

    $diskName – имя создаваемого шифрованного диска

    Шаг 1. Создаем сам файл, на котором будет храниться шифрованная файловая система   touch /home/$user/$fileName

    Шаг 2. Заполняем его случайными данными, чтобы сложнее было дешифровать shred -n1 -s100M /home/$user/$fileName в данном случаи мы указали размер в 500Мб.

    Шаг 3. Подгружаем нужные модули: modprobe dm-crypt modprobe aes (aes - быстрый алгоритм шифрования, можно было использовать blowfish, des)

Закрепление навыков администрирования операционных систем семейства UNIX