Ключевые слова:truecrypt, crypt, (найти похожие документы)
From: Александр Емельянов
Date: Mon, 13 Aug 2009 17:02:14 +0000 (UTC)
Subject: Шифруемся на лету при помощи TrueCrypt
Материал предоставлен редакцией журнала Системный администратор.
Опубликовано в журнале "Системный администратор" N 7 2009
Нередко мы владеем информацией, важность которой очень велика.
TrueCrypt - инструмент, позволяющий частично решить задачу защиты
данных.
Почему частично? Разберемся в вопросе по порядку. Предположим, у фирмы
есть некоторая информация, вызывающая "живой" интерес у конкурентов.
Первостепенная задача - не допустить попадание этих данных в руки
интересующихся. Не секрет, что в массе своей такими вопросами
занимается бдительная служба безопасности. Более того, поскольку
значительная часть секретной информации хранится на электронных
носителях, а доступ к ней осуществляется посредством компьютеров, СБ в
своей работе зачастую плотно взаимодействует с отделом информационных
технологий. Однако, как бы четко ни был выстроен комплекс мероприятий
по защите от утечек данных, практика показывает, что почти любая
система имеет уязвимые места. Попросту говоря, рано или поздно
информация может попасть в руки злоумышленников, и, если она хранилась
в открытом виде, они без труда смогут ею воспользоваться. Предположение
бредовое с той точки зрения, что вероятность возникновения такой
ситуации минимальна. Так или иначе оно объясняет причину использования
систем шифрования данных уровня предприятия.
Мы немного сузим область рассмотрения, а именно до единичного
пользователя компьютера, который также вполне может располагать
некоторой конфиденциальной информацией. Тем более что неосторожно
забытая или выпавшая из кармана флешка может стать добычей, например,
недоброжелателей или вымогателей. Продолжать список примеров можно
долго, поэтому предположим, что существуют некоторые данные, которые
нужно защитить так, чтобы воспользоваться ими мог только владелец либо
доверенное лицо.
Для решения такой задачи существует множество программ шифрования
данных. Мы рассмотрим одну из них, которая стоит в первых строках
списка лидеров. К тому же подкупает тот факт, что она бесплатна, имеет
открытый исходный код и может использоваться на платформах MS Windows,
Linux и MacOS (не везде полноценно). В статье речь пойдет о
Windows-версии. Даже несмотря на то что речь идет о шифровании,
воспользоваться возможностями этого продукта сможет даже мало что
смыслящий в криптографии человек. Стоит заметить, однако, что
приобретение начальных знаний по предмету лишним не будет.
Речь пойдет о программе TrueCrypt. Актуальная версия на момент
написания статьи была обозначена номером 6.2. Среди "одноклассников"
она позиционируется как инструмент для шифрования данных "на лету".
Это означает, что с ее помощью пользователь может зашифровать раздел
диска, весь диск, USB-накопитель либо создать отдельный файл-контейнер
и, единожды введя пароль, работать с файлами без дополнительных
манипуляций. Все операции шифрования будут происходить незаметно для
него. Хорошим примером для этого может служить воспроизведение файлов
музыкального или видеоформата, которые находятся на зашифрованном
диске. Файлы перетаскиваются в плейлист и воспроизводятся так, как
будто они находятся на незашифрованном разделе. Понятно, что ничего не
мешает помещать в такие разделы любые файлы и работать с ними в режиме
on-line, не задумываясь о шифровании.
Процесс обзора TrueCrypt построен следующим образом. Для начала
пройдемся по общему функционалу и посмотрим, что ставит данный продукт
на ступень выше своих соратников. Затем разберем основные операции
по созданию шифрованных контейнеров, разделов и USB-накопителей и
работе с ними.
Основные достоинства
Не секрет, что для русского ИТ-сообщества свободное распространение
программы будет если не главным, то едва ли не определяющим фактором в
выборе "шифровальщика". Однако если эта свобода не будет
подтверждаться высокой функциональностью продукта, выбор пользователей
вряд ли падет на нее. К TrueCrypt это не относится.
Начнем с того, что она имеет достаточно высокую скорость шифрования
данных. Технология параллелизации (parallelization), которая появилась
в версии 6.0, дает прирост в скорости при работе TrueCrypt на
многопроцессорных системах или многоядерных процессорах. Возрастание
скорости шифрования прямо пропорционально количеству процессоров или
ядер процессора, а также его тактовой частоте. То есть при
использовании двухядерного процессора скорость приблизительно
увеличится вдвое по сравнению с аналогичным одноядерным. Такая же
ситуация и с двумя процессорами. Помимо этого, технология
конвейеризации (pipelining), которая появилась в версии 5.0,
увеличивает быстродействие при работе приложений с файлами,
находящимися в зашифрованных разделах (работает только
на Windows-системах).
Очень грубо, но для наглядности можно заметить, что по тестам скорости
алгоритмов шифрования данных (тест встроен в интерфейс программы) на
системе с двумя процессорами Intel Xeon 3,0 ГГц, 4 Гб оперативной
памяти (DDR2) и RAID-массивом SAS-накопителей было отмечено
десятикратное увеличение показателей по сравнению с машиной, на борту
которой находился один процессор Intel Pentium 1800 ГГц, 1 Гб ОП (DDR)
и жесткий диск с IDE-интерфейсом.
Пользователь TrueCrypt имеет возможность использовать несколько
алгоритмов блочного симметричного шифрования данных на выбор: AES,
Serpent и Twofish (во всех размер ключа шифрования составляет 256 бит,
размер блока - 128 бит); а также каскады алгоритмов, например,
AES-Twofish или даже так - AES-Twofish-Serpent. Однако в случае с
каскадным шифрованием будет заметно снижена скорость выполнения
операций (это можно проверить с помощью все того же теста скорости
алгоритмов шифрования TrueCrypt).
Еще одну интересную черту TrueCrypt разработчики назвали Plausible
deniability. В переводе на русский звучит как "правдоподобное
отрицание". Дело в том, что программа умеет создавать скрытые
контейнеры внутри зашифрованных (и даже скрытую операционную систему).
Таким образом, после монтирования тома скрытый контейнер остается
невидимым. Как это использовать, каждый для себя решит сам. О том же,
как создать такой контейнер, пойдет речь дальше. Помимо всего прочего,
файлы, созданные при помощи TrueCrypt, не связываются с программой, и
определить их происхождение невозможно, так как в заголовке они
содержат набор случайных данных.
TrueCrypt никогда не сохраняет промежуточные данные на диск, все
хранится в оперативной памяти. Это гарантирует отсутствие доступа к
ключам, которые могли храниться во временных файлах. Но, как оказалось,
и эта мера не совсем надежна. Примерно год назад группа ученых
Принстонского университета показала, как можно получить доступ к
данным, хранящимся в оперативной памяти. Желающие могут ознакомиться с
материалами на сайте университета.
Ну и вдобавок ко всему хочется отметить, что TrueCrypt не восприимчива
к атакам "грубой силой", имеется возможность двойной защиты доступа к
данным и использования токенов и смарт-карт для размещения ключа.
Установка программы
Этот процесс вряд ли у кого вызовет затруднения. Правда, есть один
нюанс, о котором нужно сказать отдельно. Дело в том, что программа
может быть установлена в двух разных режимах. В режиме инсталляции
вместе с программой в систему устанавливается драйвер TrueCrypt. Это
нужно для операции шифрования системного раздела, а также
для возможности работы с контейнерами TrueCrypt в контексте
пользователя, не имеющего прав администратора (об этом далее). В
режиме, который называется traveler mode, программа копирует свои файлы
в заданную вами папку. Таким образом, установленный TrueCrypt можно
переносить на съемном носителе и использовать на любой системе. Однако
в этом случае нет возможности шифрования системного диска.
Для того чтобы русифицировать TrueCrypt, стоит всего лишь скачать файл
локализации с сайта разработчика и поместить его в каталог с
программой.
Создание зашифрованного контейнера
Для того чтобы вы могли переносить свои файлы в зашифрованном виде и
использовать их на разных машинах, вам нужно создать файл-контейнер
TrueCrypt. Итак, открываем программу и нажимаем "Создать том". Далее
следуем указаниям "Мастера создания томов". Отмечаем, что мы хотим
создать обычный том TrueCrypt, его название и расположение. Вот здесь
хотелось бы сделать небольшую ремарку. Дело в том, что TrueCrypt все
равно, как вы назовете файл, программа сама определит при попытке
смонтировать раздел, ее это детище или нет. Поэтому для большей
скрытности вы можете назвать ваш контейнер хоть "Любимое кино моей
бабушки.avi". Идем дальше. Выбираем алгоритм шифрования данных и
хеш-алгоритм, который используется генератором случайных чисел (RNG,
Random Number Generator) TrueCrypt для создания ключей, а также
функцией деривации ключа заголовка (header key derivation function).
Далее определяем размер контейнера, вводим пароль и, если необходимо,
указываем путь к ключевому файлу (keyfile, его первые 1,048,576 бит
смешиваются с паролем для повышения криптостойкости). В качестве такого
файла можно использовать любой, имеющийся на вашем жестком диске, либо
создать произвольный при помощи TrueCrypt. Тут стоит оговориться,
потому что вы можете указать даже путь к целой папке, и тогда все файлы
в ней будут ключевыми. Однако при утере хотя бы одного ключевого файла
доступ к зашифрованному контейнеру будет невозможен. Далее нужно
выбрать тип файловой системы для тома TrueCrypt и размер кластера (как
правило, остается по умолчанию). Жмем "Разметить" и по истечении
некоторого времени создание контейнера завершено. Файл-контейнер будет
содержать произвольные данные, которые будут затираться по мере
копирования файлов вовнутрь контейнера и вновь появляться, если будет
освобождаться место внутри него при операции удаления файлов.
Для доступа внутрь контейнера в окне программы выбираем его, нажав
"Файл" и в окне выше из списка доступных букв выбираем необходимую и
жмем "Смонтировать". Вводим пароль и указываем путь к ключевым
файлам, если они используются. Контейнер монтируется как том Windows, и
с данными можно работать, как если бы они находились на обычном
логическом разделе.
Чтобы создать скрытый раздел внутри зашифрованного контейнера, нужно
также запустить мастер и выбрать "Скрытый том TrueCrypt". Сначала
мастер предложит создать обычный том, а затем внутри него скрытый,
проведя два раза один и тот же перечень операций по выбору параметров.
В качестве файловой системы для внешнего контейнера (обычного тома)
будет рекомендовано выбрать FAT из-за особенности размещения служебных
данных на томах NTFS.
Для доступа внутрь скрытого контейнера нужно выбрать основной носитель
- обычный том. И в окне ввода пароля указать пароль, который был введен
при настройке скрытого тома. Тем самым будет смонтирован скрытый том
как том Windows.
При работе с контейнером, имеющим внутри скрытый том, есть вероятность
перезаписи данных при нехватке места на внешнем томе и повреждения
информации внутри скрытого раздела. Чтобы не допустить этого, при
монтировании обычного тома TrueCrypt в окне ввода пароля нужно в
параметрах указать, что скрытый том нужно защитить, затем ввести пароль
доступа к нему и не переживать за сохранность лежащих внутри данных.
Для полной дешифровки файлов, находящихся внутри зашифрованного
раздела, необходимо скопировать их в любое свободное место на жестком
диске, а контейнер просто удалить.
Важной особенностью при работе с контейнерами TrueCrypt является
следующее. Для выполнения операций шифрования/дешифрования нужен
специальный драйвер TrueCrypt, использование которого для обычного
пользователя невозможно, если только система не установлена на
компьютере. Поэтому ни установить, ни использовать TrueCrypt в режиме
traveler mode пользователь без привилегий администратора не сможет.
Шифрование разделов
Для начала рассмотрим шифрование несистемного раздела. Делается это при
помощи того же мастера. Весь процесс похож на создание
файла-контейнера. Только вместо файла указывается раздел, который нужно
зашифровать, и далее параметры шифрования. Отмечу, что шифрование
раздела с данными без их удаления поддерживается только в Windows
Vista. В случае с Windows XP нужно будет предварительно сделать
резервную копию файлов целевого тома. Затем зашифровать раздел и
скопировать на него файлы. По аналогии с контейнерами внутри такого
зашифрованного раздела можно создать скрытый том.
После шифрования раздел по назначенной ему Windows букве диска доступен
не будет, более того, для секретности вы можете ее вовсе удалить. Чтобы
работать с зашифрованным разделом, нужно в главном окне TrueCrypt
выбрать его как устройство, назначить букву и смонтировать.
Что касается шифрования системы, то сделать это можно лишь с ОС
семейства Windows, начиная с Windows XP. Можно зашифровать как весь
системный диск (жесткий диск, на котором находится системный раздел),
так и отдельно раздел, где находится система. Первый вариант возможен
только в Windows Vista, и мы оставим его изучение для ее любителей.
Единственное замечание нужно сделать вот о чем. Extended-разделы после
проведения операции шифрования перестают быть видны в системе, и, чтобы
добраться до данных, лежащих на них, необходимо будет перманентно
расшифровать системный диск. Не очень удобно. Однако разработчики
обещают в скором времени устранить эту неприятную особенность.
Процесс шифрования системного раздела несколько сложнее, чем операции,
описанные в предыдущих параграфах. И выполняться он будет в два этапа.
Первый - этап подготовки. Пользователь должен будет указать обычный или
скрытый раздел, который он хочет создать (именно так TrueCrypt
позволяет создать скрытую операционную систему), параметры шифрования,
а также количество операционных систем, установленных на вашем
компьютере (мы рассмотрим вариант с одной ОС), после чего программа
создаст образ диска восстановления. Его необходимо, не прерывая работы
мастера, записать на диск. После успешной проверки создания такого
диска нужно будет перезагрузить машину и загрузиться с него. Далее
вводим пароль, который указали в параметрах шифрования, и, если все
прошло удачно, TrueCrypt приступит ко второму этапу - непосредственному
шифрованию системы, причем во время этого можно делать что угодно на
компьютере. Более того, процесс можно приостановить и продолжить позже
или даже после перезагрузки компьютера, система будет оставаться
частично зашифрованной. Помимо этого, после загрузки BIOS управление
будет передаваться загрузчику TrueCrypt. Приятной возможностью является
то, что пользователь сам может указать, что будет выводиться на экран
после загрузки BIOS. Можно даже написать что-то вроде "DISK BOOT
FAILURE, INSERT SYSTEM DISK AND PRESS ENTER", тем самым имитируя
отсутствие системы как таковой. Однако после ввода пользователем
валидного пароля система продолжит загрузку.
Вернемся к диску восстановления. Нетрудно догадаться, что он привязан
именно к той сессии шифрования, в которую он был создан, и не является
универсальным. Он поможет в случае, когда поврежден мастер-ключ либо
заголовок тома. С его помощью также можно перманентно расшифровать
системный том, если у вас появились проблемы с загрузкой Windows и вы
хотите провести операцию восстановления. Однако все это возможно, если
вы помните правильный пароль для доступа к зашифрованному системному
разделу.
Процесс создания скрытого системного раздела с установленной в нем
операционной системой в рамках этой статьи мы рассматривать не будем.
Желающие могут ознакомиться с достаточно подробной документацией на
сайте разработчика.
Шифрование USB-накопителя
Честно говоря, эта операция мало чем отличается от создания
зашифрованного несистемного диска. В списке устройств на этапе
настройки нужно найти свою флешку и выполнить ее шифрование. Однако
замечу, что более удобным в этом случае является размещение на
USB-накопителе TrueCrypt в режиме traveler mode и создание на нем
файла-контейнера. Таким образом, мы получим возможность доступа к
зашифрованным данным на любой системе, даже где не установлен
TrueCrypt.
В заключение, рассмотрев основной функционал программы, ответим на
вопрос, поставленный в начале статьи. TrueCrypt шифрует данные,
находящиеся на носителях информации. Однако она не может шифровать
ICQ-трафик или сообщения электронной почты (хотя ничто не мешает при
этом пересылать контейнеры TrueCrypt как вложения), а также не имеет
функций для создания ЭЦП (электронно-цифровой подписи).
Недостатки TrueCrypt
Помимо всего прочего, нужно отметить, что программа имеет некоторые
недостатки. Во-первых, это ориентированность на Windows-системы -
многие функциональные возможности, как было отмечено выше, работают
только в ОС Windows (кстати, из-за своей неоднозначной лицензии
TrueCrypt была выведена из состава многих Linux-дистрибутивов).
Во-вторых, нет возможности изменения размера контейнера, к тому же
операция дешифрования несистемного раздела далеко не тривиальна и
требует некоторых манипуляций с файлами. В-третьих, программа не имеет
встроенного генератора паролей и допускает использование пользователем
простых паролей. В-четвертых, при хранении данных в контейнерах
TrueCrypt существует вероятность полной потери данных вследствие
удаления файла-контейнера. Ну и, в-пятых, отмечу одну особенность,
которая кому-то может послужить на пользу, а кому наоборот. Дело в том,
что в многопользовательской среде (терминальный режим) смонтированный
том TrueCrypt будет виден и доступен для всех пользователей без
исключения, избежать доступа к нему можно использованием разрешений
NTFS. Та же ситуация повторится при смене пользователя на системах
Windows, начиная с версии Windows XP. Кстати говоря, основные проблемы
и ограничения программы указаны на сайте разработчика. Этот список
корректируется, если выявляются новые недочеты либо устраняются уже
известные.
Несмотря на все это, такой инструмент, как TrueCrypt, будет полезен
тем, кто хочет защитить свои данные от взлома и не позволить себя
скомпрометировать.
Разъяснения многих понятий и терминов криптографии, а также некоторая
информация касательно функционала программы (например, использование
токенов и смарт-карт) не вошли в статью. Обо всем этом можно почитать
в специальной литературе, а также на официальном сайте TrueCrypt.
1. [1]http://citp.princeton.edu/memory.
2. [2]www.truecrypt.org.
Ссылки
1. http://citp.princeton.edu/memory
2. http://www.truecrypt.org/