Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Основные защитные механизмы ОС семейства Unix

Содержание:

Введение

Защита операционных систем имеет несколько аспектов. Можно рассмотреть несколько из них. Понятие разграничения прав пользователей и возможности шифрования данных в ОС Unix.

Файловая система (ФС) - это часть операционной системы, включающая:

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

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

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

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

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

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

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

Ещё одна задача данной работы рассмотреть шифрование тома в операционной системе семейства Unix.

В качестве конкретного примера для изучения выступала MacOS.

Цель работы – изучить методы защиты в операционной системе семейства Unix.

Задачи работы:

  • изучить файловые системы;
  • изучить механизм разрешений;
  • изучить список контроля доступа;
  • изучить алгоритмы шифрования;
  • изучить методы шифрования тома.

Реализация механизма разграничения доступа к файлам

Описание некоторых существующих файловых систем

Unix File System - это объединённое понятие. Классическая UFS отводит на файл 16 байт - 14-буквенное имя файла и двухбайтный номер inode.

Современные UFS позволяют создавать длинные имена (до 255 символов), а имена файлов хранят не подряд, а более разумно - в двоичном дереве или hash-таблице, а номер inode может быть любым - четырехбайтным или восьмибайтным.

Сам блок inode содержит:

  • количество ссылок на файл, место освобождается, когда количество ссылок становится равным 0;
  • размер файла;
  • дату и время создания/доступа/изменения файла;
  • тип файла: обычный, директория, файл блочного устройства, поименный пайп.
  • идентификатор хозяина файла и идентификатор группы;
  • атрибуты доступа: атрибуты 'Read', 'Write' и 'eXecute' для хозяина файла (owner), для одногрупника (group) и для остальных (other). Данные атрибуты для каталога распространяют права на все файлы в каталоге;
  • расширение ACL (список управления доступом) или ссылку на ACL;
  • несколько ссылок на кластеры файловой системы.

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

Часть систем UFS реализованы как отказоустойчивые с журналированием.

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

Элемент каталога состоит из двух полей:

  • номер i-узла (порядковый номер в массиве i-узлов);
  • имя файла.

Каждый каталог содержит два специальных имени: ‘.’ - сам каталог; ‘..’ – родительский каталог.

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

Файлы существуют независимо от элементов каталогов, а связи в каталогах указывают действительно на физические файлы. Файл «исчезает» когда удаляется последняя связь, указывающая на него.

Чтобы получить доступ к файлу по имени, операционная система следует следующему алгоритму:

  • находит это имя в каталоге, содержащем файл;
  • получает номер i-узла файла;
  • по номеру находит i- узел в области i-узлов;
  • из i-узла получает адреса блоков, в которых расположены данные файла;
  • по адресам блоков считывает блоки из области данных.

Теперь рассмотрим конкретнее файловые системы MAC.

HFS или иерархическая файловая система. Появилась в 1985 году. Каждый файл в ней состоит из двух частей: ветвь ресурсов, ветвь данных. В ресурсах содержится служебная информация о файле: дата создания, иконка, исполняемый код.

Так как HFS имела много ограничений, то в 1998 году была выпущена обновленная версия HFS+. Количество символов в имени файла было также расширено до 255. А максимальный размер файла вырос до 8 эксабайт.

Далее будет более подробна рассмотрена файловая система HFS+, так как именно она является на данный момент основной для компьютеров Apple.

HFS+ используется в Mac OS, начиная с версии 8.1. Структура тома очень близка к HFS, но содержит отличия – таблица 1.

Таблица 1

Сравнение основных характеристик HFS и HFS+

Параметр

HFS

HFS+

Длина имени файла

31

255

Кодировка имен файлов

Mac Roman

Unicod

Нода каталога

512 байт

4 Кбайт

Максимальный размер файла

231

263

Все изменения в HFS+ были внесены для максимального использования дискового пространства для больших томов и фрагментированных файлов.

Дисковое пространство делится на блоки одинакового размера. Для идентификации блока используется 32 бита.

На диске помимо самих данных хранится служебная информация - метаданные. Например, такие:

  • заголовок тома – общая информация: размер блока, расположение других метаданных на диске. Заголовок любого тома всегда находится по фиксированному смещению 1024 байта.;
  • карта тома, в ней отмечен статус каждого блока на диске;
  • файл каталог - хранит информацию о размещении файлов и папок на диске;
  • extents overflow file - метаданные, которые не разместились в каталоге;
  • файл атрибутов - используется для контроля доступа;
  • журнал - данные о транзакциях операций, выполненных для тома.

Файл каталог, extents overflow file, файл атрибутов - представлены в виде B-деревьев.

Структура заголовки тома HFS+:

struct HFSPlusVolumeHeader

{

UInt16 signature;

UInt16 version;

UInt32 attributes;

UInt32 lastMountedVersion;

UInt32 journalInfoBlock;

UInt32 createDate;

UInt32 modifyDate;

UInt32 backupDate;

UInt32 checkedDate;

UInt32 fi leCount;

UInt32 folderCount;

UInt32 blockSize;

UInt32 totalBlocks;

UInt32 freeBlocks;

UInt32 nextAllocation;

UInt32 rsrcClumpSize;

UInt32 dataClumpSize;

HFSCatalogNodeID nextCatalogID;

UInt32 writeCount;

UInt64 encodingsBitmap;

UInt32 fi nderInfo[8];

HFSPlusForkData allocationFile;

HFSPlusForkData extentsFile;

HFSPlusForkData catalogFile;

HFSPlusForkData attributesFile;

HFSPlusForkData startupFile;

};

Файл каталог содержит в виде отдельных записей метаданные файлов и папок. В данном файле содержится информация о размещении файла. Это 8 записей из стартового блока и длины блоков непрерывной части фрагмента файла. Если места не хватает, то остальные данные о фрагментах файла размещаются в Extent overflow file.

Журнал HFS+ - хранит данные об операциях на диске. Именно поэтому, система является журналируемой. Это непрерывный набор блоков транзакций. Он никогда не перемещается и остаётся постоянного размера. На одну транзакцию выделяется один или несколько списков блоков. Список состоит из заголовка и данных.

Журналирование можно запретить или разрешить.

Начиная с Mac OS X 10.3 журналирование разрешено по умолчанию. Данный журнал был добавлен в HFS+ для поддержки целостности файловой системы в случае сбоя.

Таким образом, простое действие пользователя вызывает целый ряд изменений в файловой системе.

Например, создание файла:

  • добавление Node ID нового файла – это уникальный номер;
  • карта тома изменяется, отображая информацию о занятых блоках;
  • если файл фрагментирован, то данные добавляются и в Extent overflow;
  • обновляется файл атрибутов;
  • обновляется заголовок тома.

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

Транзакция в журналируемой HFS+ включает следующие шаги:

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

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

Traditional unix permissions

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

В Mac OS X каждая учётная запись принадлежит какой-то группе. Владельцем файла считается его создатель. Владелец имеет право определить, какие пользователи и группы могут читать, изменять и выполнять файлы.

В Mac по умолчанию все пользователи без права администратора попадают в группу staff. Если пользователь получает права администратора, то они также попадают в группу admin, но при этом, из группы staff не выходят.

Пользователи группы staff имеют право на чтение, изменение только своих файлов. Члены группы admin имеют право изменять параметры системы, записывать файлы в папку Applications. Но также серьёзно ограничены в правах.

Пользователь root может читать, выполнить и записать в любой файл или каталог. По умолчанию, данная учётная запись скрыта. В современных системах для выполнения команд от имени суперпользователя используется команда «sudo», что позволяет оставлять эту учётную запись скрытой, а систему, соответственно, менее уязвимой. Но не все пользователи имеют право использовать эту команду. Чтобы пользователь имел право воспользоваться командой «sudo», он должен быть членом ещё одной группы, которая называется wheel. Все члены группы admin автоматически добавляются в состав wheel.

Для создания пользователей и групп требуется войти в настройки и выбрать пункт «пользователи и группы» (рисунок 1).

\\Mac\Home\Desktop\Снимок экрана 2017-11-10 в 6.38.33.png

Рисунок 1. Панель настройки «пользователи и группы»

Для создания группы или пользователя нужно нажать на «+». Для зачисления пользователя в группу требуется её выбрать и появится окно выбора пользователей для группы – рисунок 2.

\\Mac\Home\Desktop\Снимок экрана 2017-11-10 в 6.38.47.png

Рисунок 2. Настройка группы

Разрешения файловой системы HFS+ имеют две категории: традиционные разрешения для файлов и списков управления доступом.

Рассмотрим традиционные разрешения для файлов.

Итак, в Mac OS X используется трехуровневая иерархия пользователей:

  • все пользователи;
  • группы пользователей;
  • конкретный пользователь.

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

  • владелец файла;
  • защита доступа к файлу: права владельца, группы, остальных пользователей.

По этим трем категориям регламентируются три действия: чтение из файла (R), запись в файл (W) и исполнение файла (X). В каждом файле по этим трем категориям определено – какой пользователь может читать, какой писать, а кто может запускать его в качестве процесса.

Требуется рассмотреть три режима более подробно:

  • чтение(R): если пользователю предоставляется доступ на чтение файла или каталога, то пользователь может просматривать содержимое файла или файлов каталога.
  • запись(W): пользователь может читать и записывать в файл, если разрешена только запись для каталога, то пользователь может добавлять и удалять файлы в каталог, но не сможет их просматривать.
  • выполнение(x): выполнять файл как программу(исполняемый), если доступ дан на каталог, то пользователь может, читать/писать файлы в каталоге, менять атрибуты этих файлов.

На рисунке 3 представлен пример редактирования прав доступа к файлу.

Рисунок 3. Пример редактирования прав доступа файла

Как видно на примере, в списке присутствует группа everyone, для которой возможно выбрать значение «Нет доступа». Everyone — это все пользователи, кроме владельца папки. Этот вариант полезен если требуется скрыть конфиденциальную информацию.

Традиционные разрешения файла или каталога состоит из 10 байт.

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

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

В Mac OS X можно выполнять манипуляции с группами и пользователями не только путём графического интерфейса, но и используя терминал.

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

dscl . search /Groups GroupMembership USERNAME

, где USERNAME - имя пользователя.

На рисунке 4 представлен пример выполнения данной команды.

\\Mac\Home\Desktop\Снимок экрана 2017-11-10 в 8.41.00.png

Рисунок 4. Пример поиска групп, в которые входит пользователь

Для проверки прав пользователя через терминал, можно воспользоваться командой:

ls -la filename

, где filename - полный путь к файлу или каталогу.

На рисунке 8 представлен пример выполнения такой команды.

\\Mac\Home\Desktop\Снимок экрана 2017-11-10 в 8.53.31.png

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

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

Списки контроля доступа

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

Для преодоления таких сложностей были созданы списки контроля доступа. Они позволяют задавать более детальные правила доступа. ACL были реализованы на уровне ядра в Mac OS 10.4.

ACL состоит из записей типа пользователь или группа и разрешённое/запрещённое действие для конкретного объекта файловой системы - access control entries (ACE). Т.е., например, для решения задачи с доступом к файлу двух разных групп пользователей в рамках ACL не возникает проблем с реализацией, в отличии от POSIX.

Детализация контроля доступа к файлам с помощью ACL гораздо больше.

Управление ACL происходит через терминал, к сожалению, Apple решило не реализовывать графический интерфейс для данной задачи. Скорее всего по соображениям безопасности, так как обычному пользователю знания ACL обычно не нужны, а системному администратору требуется знать и владеть терминалом Mac OS, тем более, что для Mac OS Server создан минимальный графический интерфейс.

Итак, например, для создадим файл на рабочем столе с названием 1.txt. После чего, добавив в ACL запись о запрещении чтения данного файла. Для этого воспользуемся командой «chmod» с флагом «+a». Перед этим проверим права доступа к файлу командой «ls –le». Также, сделаем проверку после добавления записи в ACL. Но для начала просто откроем файл - рисунок 5.

\\Mac\Home\Desktop\Снимок экрана 2017-11-18 в 20.39.05.png

Рисунок 5. Пример открытия файла 1.txt

Теперь, в терминале задаём нужные права, вернее, ограничивается чтение командой: «chmod +a "username deny read" filename»

Пример выполнения представлен на рисунке 6.

Рисунок 6. Пример добавления запрета на чтение файла для пользователя

Как видно, добавился запрет в ACL. Попытка прочесть файл приводит к появлению такого сообщения – рисунок 7.

\\Mac\Home\Desktop\Снимок экрана 2017-11-18 в 20.41.54.png

Рисунок 7. Сообщение об отсутствии прав чтения файла

Проведём ещё проверку - добавим ограничение на поиск в каталоге. Для этого требуется добавить правила username deny search на требуемый каталог. Для примера создан каталог 1 на рабочем столе. В нём создан файл с уникальным именем e1k1.txt. Ищем данный файл командой mdfind. Первый раз файл найден, затем, добавляем запрет на поиск. Теперь, снова проверим поиск файла e2l2.txt - результатов нет. Пример выполнения данных команд представлен на рисунке 8.

\\Mac\Home\Desktop\Снимок экрана 2017-11-18 в 21.15.12.png

Рисунок 8. Пример запрета поиска в каталоге

Как видно из представленных примеров ядро Mac OS X первоначально обращается к ACL. Если правило для объекта найдено, то исполняется требование записи ACL. Если правил нет, то проверяется POSIX.

Итак, общий вид команды для редактирования ACL выглядит так:

«chmod (+|-|=)a#? '<имя_пользователя|имя_группы> (разрешить|запретить) <список-разрешения>’ объект»

(+|-|=) - указывает, добавить/удалить запись в ACL или уровнять права двух файлов.

#? - определяет порядок списков.

Выводы по первой главе

Перечислены некоторые разновидности популярных файловых систем. В работе рассмотрена как основная файловая система для Mac OS X - HFS+.

В Mac OS X разработаны несколько методов защиты информации. В том числе файловая система HFS+ предоставляет такие методы как traditions unix permissions и ACLs.

Шифрование тома

Современные алгоритмы шифрования

Сегодня все шире используются два современных криптостойких алгоритма шифрования: отечественный стандарт ГОСТ 28147-89 и новый криптостандарт США – AES (Advanced Encryption Standard).

Алгоритм, определяемый ГОСТ 28147-89, имеет длину ключа шифрования 256 бит. Он шифрует информацию блоками по 64 бит (такие алгоритмы называются блочными), которые затем разбиваются на два субблока по 32 бит (N1 и N2). Субблок N1 обрабатывается определенным образом, после чего его значение складывается со значением субблока N2 (сложение выполняется по модулю 2, т. е. применяется логическая операция XOR), а затем субблоки меняются местами. Данное преобразование выполняется определенное число раз: 16 или 32 в зависимости от режима работы алгоритма. В каждом раунде выполняются две операции.

Первая – наложение ключа. Содержимое субблока N1 складывается по модулю 2[32] с 32-бит частью ключа Kx. Полный ключ шифрования представляется в виде конкатенации 32-бит подключей: K0, K1, K2, K3, K4, K5, K6, K7. В процессе шифрования используется один из этих подключей – в зависимости от номера раунда и режима работы алгоритма.

Вторая операция – табличная замена. После наложения ключа субблок N1 разбивается на 8 частей по 4 бит, значение каждой из которых заменяется в соответствии с таблицей замены для данной части субблока. Затем выполняется побитовый циклический сдвиг субблока влево на 11 бит.

В отличие от алгоритма ГОСТ 28147-89, который долгое время оставался секретным, американский стандарт шифрования AES, призванный заменить DES, выбирался на открытом конкурсе, где все заинтересованные организации и частные лица могли изучать и комментировать алгоритмы-претенденты.

AES (расширенный стандарт шифрования, Advanced Encryption Standard) – это блочное шифрование, шифрующее блоки данных в 128 бит. Для шифрования данных более 128 бит AES использует режим блочного шифрования. Существует множество различных режимов блочного шифрования AES, являющихся частью спецификации AES. Самым простым режимом блочного шифрования является Electronic Code Book (электронная кодовая книга, ECB). Cipher Block Chaining (сцепление блоков шифротекста, CBC) устраняет слабость защиты ECB. XTS - это один из самых современных режимов, обеспечивающий более сильную защиту данных, чем ECB и CBC.

Electronic Code Book (ECB) – этот режим шифрования просто повторяет процесс шифрования AES для каждого 128-битного блока данных. Этот режим шифрования не является идеальным решением, поскольку он плохо скрывает шаблоны данных. Одинаковые блоки данных не должны шифроваться способом, преобразующим их в одинаковый шифрованный текст. Поэтому режим блочного шифрования ECB считается слабой защитой и не рекомендуется к использованию.

Для устранения минусов ECB был разработан Cipher Block Chaining (CBC). Вектор инициализации (initialization vector, IV) из 128-бит генерируется и комбинируется с обычным текстом первого блока в секторе. Эти данные объединяются с помощью функции XOR. Полученные 128 бит данных затем шифруются с помощью алгоритма шифрования AES и сохраняются на носителе. Готовый шифрованный текст передается в следующий блок, где объединяется с обычным текстом в этом блоке, шифруется и сохраняется. Этот цепной процесс повторяется для каждого блока сектора. Процесс обеспечивает шифрование блоков одинаковых данных в полностью различный шифрованный текст. Поэтому CBC гораздо более защищенный, чем ECB, и считается подходящим для большинства областей применения. CBC широко используется во множестве флеш-накопителей с шифрованием.

XTS – это самый современный режим блочного шифрования. Он был добавлен NIST в список режимов блочного шифрования AES в 2010 году. XTS использует два ключа AES. Один ключ используется для выполнения блочного шифрования AES; другой используется для шифрования «Tweak Value» (значения поправки). Эта зашифрованная поправка затем изменяется с помощью полиномиальной функции Галуа (GF) и XOR с обычным и зашифрованным текстом каждого блока. Функция GF обеспечивает дополнительное размытие и обеспечивает отсутствие превращения блоков одинаковых данных в одинаковый шифрованный текст. Это позволяет превращать каждый блок в уникальный шифрованный текст при одинаковом обычном тексте без использования векторов инициализации и сцепления блоков. Фактически текст почти (но не полностью) дважды шифруется с помощью двух независимых ключей. Дешифровка данных выполняется обратным процессом. Поскольку каждый блок независим и сцепление отсутствует, при повреждении хранимых шифрованных данных невосстановимыми будут только данные в поврежденном блоке. Для режимов сцепления блоков при дешифровании такие ошибки распространяются на другие блоки.

Шифрование в Windows

BitLocker (точное название BitLocker Drive Encryption) — это технология шифрования содержимого дисков компьютера, разработанная компанией Microsoft. Она впервые появилась в Windows Vista.

С помощью BitLocker можно было шифровать тома жестких дисков, но позже, уже в Windows 7 появилась похожая технология BitLocker To Go, которая предназначена для шифрования съемных дисков и флешек.

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

Эта технология основывается на полном шифровании тома, выполняемом с использованием алгоритма AES (Advanced Encryption Standard). Ключи шифрования должны храниться безопасно и для этого в BitLocker есть несколько механизмов.

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

Чтобы не хранить ключ в открытом виде, его можно шифровать либо в TPM (Trusted Platform Module), либо на криптографическом токене или смарт-карте, поддерживающей алгоритм RSA.

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

Модуль TPM, как правило, установлен на материнской плате компьютера, однако, приобрести в России компьютер со встроенным модулем TPM весьма затруднительно, так как ввоз устройств без нотификации ФСБ в нашу страну запрещен.

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

Схема работы BitLocker:

При активации BitLocker с помощью генератора псевдослучайных чисел создается главная битовая последовательность. Это ключ шифрования тома — FVEK (full volume encryption key). Им шифруется содержимое каждого сектора. Ключ FVEK хранится в строжайшей секретности.

FVEK шифруется при помощи ключа VMK (volume master key). Ключ FVEK (зашифрованный ключом VMK) хранится на диске среди метаданных тома. При этом он никогда не должен попадать на диск в расшифрованном виде.

Сам VMK тоже шифруется. Способ его шифрования выбирает пользователь.

Ключ VMK по умолчанию шифруется с помощью ключа SRK (storage root key), который хранится на криптографической смарт-карте или токене. Аналогичным образом это происходит и с TPM.

К слову, ключ шифрования системного диска в BitLocker нельзя защитить с помощью смарт-карты или токена. Это связано с тем, что для доступа к смарт-картам и токенам используются библиотеки от вендора, а до загрузки ОС, они, понятное дело, не доступны.

Если нет TPM, то BitLocker предлагает сохранить ключ системного раздела на USB-флешке, а это, конечно, не самая лучшая идея. Если в вашей системе нет TPM, то мы не рекомендуем шифровать системные диски.

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

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

Если ни модуля TPM ни смарт-карты нет, то вместо SRK для шифрования ключа VMK используется ключ, сгенерированный на основе введенного вами пароля.

При запуске с зашифрованного загрузочного диска система опрашивает все возможные хранилища ключей — проверяет наличие TPM, проверяет USB-порты или, если необходимо, запрашивает пользователя (что называется восстановлением). Обнаружение хранилища ключа позволяет Windows расшифровать ключ VMK, которым расшифровывается ключ FVEK, уже которым расшифровываются данные на диске.

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

Помимо FVEK, VMK и SRK, в BitLocker используется еще один тип ключей, создаваемый «на всякий случай». Это ключи восстановления.

Для аварийных случаев (пользователь потерял токен, забыл его PIN-код и т.д.) BitLocker на последнем шаге предлагает создать ключ восстановления. Отказ от его создания в системе не предусмотрен.

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

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

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

Шифрование тома в Mac OS

В Mac OS для шифрования используется встроенная утилита FileVault.

FileVault – это система шифрования данных, которая использует алгоритм XTS-AES-128 с длиной ключа 256 бит, что обеспечивает крайне высокий уровень безопасности. Сам ключ шифрования вырабатывается на основе пароля пользователя при помощи алгоритма PBKDF2. Вся информация в дальнейшем будет храниться фрагментами по 8 МБ.

Функция работает достаточно просто – все данные копируются на зашифрованный образ диска, а затем удаляются из незащищенного пространства. После того как первичная обработка данных завершена, далее новые файлы будут шифроваться «на лету» в фоновом режиме. Есть поддержка Instant Wipe, которая позволяет безопасно затереть всю информацию на диске без возможности восстановления. Кроме того, этот инструмент предоставляет возможность шифрования резервных копий Time Machine.

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

После того как мы активировали FileVault, процесс загрузки компьютера меняется для обеспечения безопасности. Если раньше пароль нужно было вводить после загрузки учетной записи, то теперь это происходит до, что исключает даже потенциальную возможность сброса пароля пользователя любым из известных способов (Single User Mode, загрузка с внешнего носителя и другие методы).

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

Еще плюсом можно отметить то, что объём данных до и после шифрования не меняется.

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

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

FileVault заметно испортит быстродействие даже самого мощного Mac. Шифрование создаёт дополнительную постоянную нагрузку на процессор и жёсткий диск.

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

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

После включения FileVault возможности TimeMachine сильно поредеют. Например, нельзя восстановить через интерфейс Time Machine отдельный файл.

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

Существуют уязвимости в FileVault. В том числе то, что ключи шифрования хранятся в ОЗУ во время работы системы и могут быть получены сторонним ПО, физической атакой Cold boot attack, либо при помощи специального оборудования (например, устройство FireWire может скопировать пароль при помощи DMA). Также пароли и ключи могут попадать в swap-файл (если отключена опция Use secure virtual memory) или дамп памяти в случае Safe Sleep.

Работа с FileVault

Функция FileVault 2 доступна в ОС OS X Lion или более поздней версии. Когда включена функция FileVault, компьютер Mac всегда запрашивает пароль учетной записи при входе.

Перейдите в меню «Системные настройки» и открыть вкладку «Защита и безопасность». Выберите вкладку FileVault. – рисунок 9.

\\Mac\Home\Desktop\Снимок экрана 2018-04-20 в 5.04.54.png

Рисунок 9. Вкладка FileVault

Функция недоступна, следует разблокировать введя пароль. Нажмите «Включить FileVault». Появиться окно, представленное на рисунке 10.

Выберите способ снятия защиты с диска и сброса пароля на тот случай, если вы забудете свой пароль:

В OS X Yosemite или более поздней версии для снятия защиты с диска и сброса пароля можно использовать учетную запись iCloud.

Можно создать локальный ключ восстановления, чтобы не использовать iCloud для восстановления FileVault. Храните комбинацию цифр и символов ключа в безопасном месте (но не на зашифрованном загрузочном диске).

Рисунок 10. Выбор способа снятия защиты

Для лучшего сохранения ключа следует его распечатать и хранить вне компьютера.

На рисунке 11 представлено окно с примером ключа восстановления.

Рисунок 11. Пример ключа восстановления

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

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

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

В окне терминала введите следующую команду и нажмите Enter: sudo fdesetup validaterecovery.

Появится запрос на ввод административного пароля. Во время ввода символы пароля не будут видны. После ввода нажмите Enter.

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

Если ключ корректный, шелл вернет значение true.

Выключение FileVault.

Если больше не требуется шифровать загрузочный диск, можно выключить FileVault:

  1. Перейти в меню «Системные настройки» и открыть вкладку «Защита и безопасность».
  2. Выбрать вкладку FileVault.
  3. Нажать значок блокировки, затем ввести имя и пароль администратора.
  4. Нажать «Выключить FileVault».

Расшифровка выполняется в фоновом режиме, и только когда компьютер Mac не находится в режиме сна и подключен к источнику питания переменного тока. Проверить ход его выполнения можно в разделе FileVault на вкладке «Защита и безопасность» окна настроек.

Выводы по второй главе

В ходе проделанной работы были рассмотрены существующие алгоритмы шифрования данных:

  • отечественный стандарт ГОСТ 28147-89;
  • AES.

Рассмотрено шифрование тома в Mac OS встроенными средствами, а именно утилитой FileVault.

Приведён пример работы с FileVault.

Заключение

Недавно, компанией Apple была представлена новая файловая система APFS. Выход данной системы приурочен к выходу macOS High Sierra.

Преимущества APFS:

  • Наносекундная точность меток времени - это очень важно для протоколирования и кластеризации.
  • Поддержка TRIM - TRIM помогает управлять устаревшими блоками. APFS выполняет операции TRIM асинхронно после сохранения метаданных на стабильных носителях.
  • Схема метаданных copy-on-write - позволяет защитить данные в случае аварийного завершения работы системы.
  • Гибкое нативное шифрование - выбирайте различные схемы шифрования для каждого тома APFS, в том числе шифрование с несколькими ключами, когда используются отдельные ключи для шифрования файла и метаданных.
  • Нативная поддержка SMB: технология SMB вне экосистемы Apple используется для обмена данными в сетях.
  • 64-битные индексные дескрипторы - APFS поддерживает более 9 квинтиллионов файлов на каждом томе.

Таким образом, новая система APFS будет более безопасной по сравнению с HFS+ благодаря встроенной технологией шифрования.

Использование FileVault позволяет отлично защитить данные от несанкционированного доступа. Но также, использование шифрование тома в Mac имеет недостатки:

  • шифрование с помощью FileVault достаточно серьезно влияет на производительность Mac;
  • нельзя восстановить данные, если забыты пароль и ключ восстановления;
  • в случае поломки накопителя данные также будут утеряны навсегда;
  • зашифрованные копии Time Machine не позволяют восстановить конкретный файл, а только копию целиком.

Большая часть минусов не зависит от платформы и вызваны тем, что данные должны шифроваться «на лету». Но также, следует помнить, что данные защищены только до тех пор, пока не произошла авторизация в учётной записи пользователя. После авторизации для пользователя все данные доступны.

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

  1. Марков А.А., Смирнова М.Е. Основы работы с терминалом MAC OS X. – М.: МИФИ, 2018. – 268 с.
  2. Пог Д. MAC OS X - СПб.: Вильямс, 2016. – 726 с.
  3. Потемкин А. MAC OS X или то, что должен знать каждый про Macintosh, Apple и операционные системы // Системный администратор. - 2016. - № 7 (8). - С. 68-77.
  4. Бутов С.В., Малышева Е.Н. Преимущества и недостатки MAC OS X по сравнению с WINDOWS // Современные наукоемкие технологии.  - 2017. - № 5-1. - С. 200.
  5. Бережной А. О классификации файловых систем // Системный администратор. - 2016. - № 1-2 (158-159).  - С. 62-67.
  6. Таненбаум Э., Бос Х. Современные операционные системы. - СПб: Питер, 2017. - 1120 с.
  7. Жданов О.Н. Методика выбора ключевой информации для алгоритма блочного шифрования - М.: Инфра-М, 2015. - 109 с.
  8. Марков А.А., Смирнова М.Е. Основы работы с терминалом MAC OS X. – М.: МИФИ, 2016. – 268 с.
  9. Панасенко С.А. Алгоритмы шифрования. Специальный справочник - СПб.: БХВ-Петербург, 2016. - 301 с.
  10. Пог Д. MAC OS X - СПб.: Вильямс, 2015. – 726 с.