Архив номеров / 2009 / Выпуск №7 (80) / Шифруемся на лету при помощи TrueCrypt
Рубрика: Безопасность / Механизмы защиты
АЛЕКСАНДР ЕМЕЛЬЯНОВ, инженер группы информационных технологий Владимирского филиала ООО «Татнефть-АЗС-Запад»
Шифруемся на лету при помощи TrueCrypt
Нередко мы владеем информацией, важность которой очень велика. 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 никогда не сохраняет промежуточные данные на диск, все хранится в оперативной памяти. Это гарантирует отсутствие доступа к ключам, которые могли храниться во временных файлах. Но, как оказалось, и эта мера не совсем надежна. Примерно год назад группа ученых Принстонского университета показала, как можно получить доступ к данным, хранящимся в оперативной памяти. Желающие могут ознакомиться с материалами на сайте университета [1].
Ну и вдобавок ко всему хочется отметить, что TrueCrypt не восприимчива к атакам «грубой силой», имеется возможность двойной защиты доступа к данным и использования токенов и смарт-карт для размещения ключа.
Этот процесс вряд ли у кого вызовет затруднения. Правда, есть один нюанс, о котором нужно сказать отдельно. Дело в том, что программа может быть установлена в двух разных режимах. В режиме инсталляции вместе с программой в систему устанавливается драйвер TrueCrypt. Это нужно для операции шифрования системного раздела, а также для возможности работы с контейнерами TrueCrypt в контексте пользователя, не имеющего прав администратора (об этом далее). В режиме, который называется traveler mode, программа копирует свои файлы в заданную вами папку. Таким образом, установленный TrueCrypt можно переносить на съемном носителе и использовать на любой системе. Однако в этом случае нет возможности шифрования системного диска.
Для того чтобы русифицировать TrueCrypt, стоит всего лишь скачать файл локализации с сайта разработчика [2] и поместить его в каталог с программой.
Создание зашифрованного контейнера
Для того чтобы вы могли переносить свои файлы в зашифрованном виде и использовать их на разных машинах, вам нужно создать файл-контейнер 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 выбрать его как устройство, назначить букву и смонтировать.
Рисунок 1. Основное окно управления TrueCrypt
Что касается шифрования системы, то сделать это можно лишь с ОС семейства Windows, начиная с Windows XP. Можно зашифровать как весь системный диск (жесткий диск, на котором находится системный раздел), так и отдельно раздел, где находится система. Первый вариант возможен только в Windows Vista, и мы оставим его изучение для ее любителей. Единственное замечание нужно сделать вот о чем. Extended-разделы после проведения операции шифрования перестают быть видны в системе, и, чтобы добраться до данных, лежащих на них, необходимо будет перманентно расшифровать системный диск. Не очень удобно. Однако разработчики обещают в скором времени устранить эту неприятную особенность.
Рисунок 2. Мастер создания томов TrueCrypt
Процесс шифрования системного раздела несколько сложнее, чем операции, описанные в предыдущих параграфах. И выполняться он будет в два этапа. Первый – этап подготовки. Пользователь должен будет указать обычный или скрытый раздел, который он хочет создать (именно так TrueCrypt позволяет создать скрытую операционную систему), параметры шифрования, а также количество операционных систем, установленных на вашем компьютере (мы рассмотрим вариант с одной ОС), после чего программа создаст образ диска восстановления. Его необходимо, не прерывая работы мастера, записать на диск. После успешной проверки создания такого диска нужно будет перезагрузить машину и загрузиться с него. Далее вводим пароль, который указали в параметрах шифрования, и, если все прошло удачно, TrueCrypt приступит ко второму этапу – непосредственному шифрованию системы, причем во время этого можно делать что угодно на компьютере. Более того, процесс можно приостановить и продолжить позже или даже после перезагрузки компьютера, система будет оставаться частично зашифрованной. Помимо этого, после загрузки BIOS управление будет передаваться загрузчику TrueCrypt. Приятной возможностью является то, что пользователь сам может указать, что будет выводиться на экран после загрузки BIOS. Можно даже написать что-то вроде «DISK BOOT FAILURE, INSERT SYSTEM DISK AND PRESS ENTER», тем самым имитируя отсутствие системы как таковой. Однако после ввода пользователем валидного пароля система продолжит загрузку.
Вернемся к диску восстановления. Нетрудно догадаться, что он привязан именно к той сессии шифрования, в которую он был создан, и не является универсальным. Он поможет в случае, когда поврежден мастер-ключ либо заголовок тома. С его помощью также можно перманентно расшифровать системный том, если у вас появились проблемы с загрузкой Windows и вы хотите провести операцию восстановления. Однако все это возможно, если вы помните правильный пароль для доступа к зашифрованному системному разделу.
Процесс создания скрытого системного раздела с установленной в нем операционной системой в рамках этой статьи мы рассматривать не будем. Желающие могут ознакомиться с достаточно подробной документацией на сайте разработчика.
Честно говоря, эта операция мало чем отличается от создания зашифрованного несистемного диска. В списке устройств на этапе настройки нужно найти свою флешку и выполнить ее шифрование. Однако замечу, что более удобным в этом случае является размещение на USB-накопителе TrueCrypt в режиме traveler mode и создание на нем файла-контейнера. Таким образом, мы получим возможность доступа к зашифрованным данным на любой системе, даже где не установлен TrueCrypt.
В заключение, рассмотрев основной функционал программы, ответим на вопрос, поставленный в начале статьи. TrueCrypt шифрует данные, находящиеся на носителях информации. Однако она не может шифровать ICQ-трафик или сообщения электронной почты (хотя ничто не мешает при этом пересылать контейнеры TrueCrypt как вложения), а также не имеет функций для создания ЭЦП (электронно-цифровой подписи).
Помимо всего прочего, нужно отметить, что программа имеет некоторые недостатки. Во-первых, это ориентированность на Windows-системы – многие функциональные возможности, как было отмечено выше, работают только в ОС Windows (кстати, из-за своей неоднозначной лицензии TrueCrypt была выведена из состава многих Linux-дистрибутивов). Во-вторых, нет возможности изменения размера контейнера, к тому же операция дешифрования несистемного раздела далеко не тривиальна и требует некоторых манипуляций с файлами. В-третьих, программа не имеет встроенного генератора паролей и допускает использование пользователем простых паролей. В-четвертых, при хранении данных в контейнерах TrueCrypt существует вероятность полной потери данных вследствие удаления файла-контейнера. Ну и, в-пятых, отмечу одну особенность, которая кому-то может послужить на пользу, а кому наоборот. Дело в том, что в многопользовательской среде (терминальный режим) смонтированный том TrueCrypt будет виден и доступен для всех пользователей без исключения, избежать доступа к нему можно использованием разрешений NTFS. Та же ситуация повторится при смене пользователя на системах Windows, начиная с версии Windows XP. Кстати говоря, основные проблемы и ограничения программы указаны на сайте разработчика. Этот список корректируется, если выявляются новые недочеты либо устраняются уже известные.
Несмотря на все это, такой инструмент, как TrueCrypt, будет полезен тем, кто хочет защитить свои данные от взлома и не позволить себя скомпрометировать.
Разъяснения многих понятий и терминов криптографии, а также некоторая информация касательно функционала программы (например, использование токенов и смарт-карт) не вошли в статью. Обо всем этом можно почитать в специальной литературе, а также на официальном сайте TrueCrypt.
Этот обзор посвящен актуальной теме шифрования личных данных на компьютере и использованию для этого специальной программы. Для таких целей вы можете использовать TrueCrypt – давайте разберемся, что это за программа и почему ее удобно применять для защиты своих данных, а именно для их зашифровки.
Что такое надежное шифрование в TrueCrypt
Приложение TrueCrypt является специализированной программой для компьютерных устройств под управлением операционных систем Microsoft Windows, Linux и Mac OS X на 32 или 64 бита. Несмотря на то, что само шифрование данных — процесс достаточно сложный, с интерфейсом TrueCrypt смогут разобраться даже новички.
Цель использования такой программы – это создание зашифрованного виртуального диска, который будет хранить все необходимые вам данные, а на компьютере будет отображаться как простой файл. Например, используйте TrueCrypt, чтобы сделать шифровку информации с жесткого диска или данных с флешки, любого CD-диска. Шифрование распространяется абсолютно на всю информацию, в том числе названия файлов и имена каталогов. Работа с зашифрованным диском производится в обычном режиме, вы можете использовать стандартные утилиты и выполнять дефрагментацию системы файлов при необходимости. Это очень удобно, если компьютером пользуется несколько человек, и важный или конфиденциальные данные нужно скрыть от посторонних.
На практике применения лицензия программы имела свободный статус, но в 2008-ом году, когда TrueCrypt проверялся в дистрибутиве Fedora, были выявлены противоречия, вследствие чего лицензию откорректировали.
С 28-го мая 2014-го года проект закрыт полностью с удалением старых версий и очищение репозитория. Однако ничто не мешает программу TrueCrypt скачать на свой ПК и пользоваться ею для зашифровки файлов и личных данных.
История создания TrueCrypt
Данный проект создан на базе программы Encryption for the Masses (E4M), которая завоевала популярность благодаря шифрованию на лету. Но Е4М просуществовала только до 2000-го года, поскольку ее создатель решил развиваться в сфере коммерческих разработок.
Но в 2004-ом году появляется первая версия TrueCrypt – первое приложение с открытым исходным кодом для шифрования на лету и адаптированное под операционную систему Windows XP, причем имело очень высокую отказоустойчивость. До конца года разработчики успели выпустить еще две версии, каждая из которых была усовершенствованием своего предшественника.
В 2008-ом году вышла кардинально новая 5-ая версия программы, имеющей такие преимущества:
Как установить и пользоваться TrueCrypt
Поскольку сейчас ничто не мешает устанавливать и пользоваться шифровальным приложением, рассмотрим более подробно, как начинать работу с ним и что для этого требуется.
Заходим на сайт http://www.truecrypt.org/downloads и бесплатно скачиваем приложение. Им можно пользоваться на таких платформах как Windows XP, 7, 8, Mac OS X и Linux.
После скачивания вы открываете этот файл запуска и следуете инструкции, то есть принимаете лицензионного соглашение, нажимаете кнопку Next и ожидаете полной инсталляции. Программа разработана на английском языке, но вы можете скачать себе русский по этой ссылке http://www.truecrypt.org/localizations.
Распаковка происходит следующим образом:
Когда инсталляция и все предварительные настройки завершены, запускаем саму программу и первая операция – это создание тома с помощью специального Мастера.
Вам будет предложение несколько вариантов, как показано на рисунке ниже:
Рекомендуется выбрать вариант зашифрованного файлового контейнера (криптоконтейнер), поскольку такой способ – самый простой и удобный для новичка, который впервые пользуется программой.
Далее вы выбираете, какой том ходите создать – обычный или скрытый. Под каждым есть описание, чтобы понять суть создаваемого диска данных. Выберите тот вариант, который подходит именно под ваши потребности и нужды.
Далее указываете адрес размещения тома – на каком диске и в какой папке он будет храниться.
Но тут нужно точно указать и сам файл, поскольку это соответствует выбранному нами для создания файловому контейнеру.
Теперь настраиваем параметры на шифрование системного диска. Тут ограничиваемся стандартными настройками, которые предлагает сама программа.
Укажите размер зашифрованного тома, чтобы все данные, которые вы желаете хранить в нем, поместились.
Придумайте самый надежный пароль для защиты файлового контейнера от постороннего доступа. Следуйте рекомендациям из диалогового окна.
Когда будет происходить этап форматирования, высветится команда, чтобы перемещать мышь по окну для генерации случайных данных – это специальная процедура, повышающая стойкость шифрования.
Потом нажимаете кнопку Разместить и увидите готовый том. Можете выходить из программы.
Как зашифровать папку, или диск с помощью TrueCrypt
Зашифровка уже существующей папки с помощью программы TrueCrypt невозможна, поскольку можно только зашифровать системный диск, в который потом вы будете помещать свои личные данные. По сути, это и есть шифрование папки с информацией. Аналогично происходит шифрование флешки, которая является съемным диском.
Итак, когда вы в программе, нажмите кнопку Создать том.
Выбираем вариант Создать зашифрованный файловый контейнер и выполняем все действия, описанные в предыдущем разделе.
Когда шифрование жесткого диска завершится и у вас будет готов том, вы можете его смонтировать в системе. Нажимаете кнопку Файл.
Когда процесс завершится, том будет отображаться в главном окне TrueCrypt. Можно воспользоваться опцией Проводник или открыть Мой компьютер, чтобы увидеть созданный виртуальный диск.
Что такое VeraCrypt
VeraCrypt является программным дополнением в виде бесплатного и открытого проекта. Его создали в 2013-ом году как форк TrueCrypt.
С момента завершения поддержки шифровальной программы VeraCrypt больше не обновлялся.
В дополнении применяют такие шифровальные алгоритмы как AES, Serpent, Twofish, Camellia, Кузнечик и возможны их комбинации.
Режим шифрования – XTS.
VeraCrypt нацелена на поддержку одновременной работы на многопроцессорных и многоядерных системах, при этом эффективно задействует аппаратное ускорение шифрования, которое имеется на процессорах с реализацией инструкции AES-NI, с целью повышение общих показателей производительности.
С 2015-го года утилита лицензирована под Apache License 2.0.
Данный форк основывается на исходные коды TrueCrypt, поэтому он подчиняется всем положениям TrueCrypt License 3.0.
Выводы
Мы рассмотрели основные особенности и предназначение программы для шифрования TrueCrypt, порядок использования и создания виртуального диска как хранилища для ваших личных данных.
Только на практике вы сможете понять и оценить, насколько данное приложение вам подходит, удобно ли им пользоваться, или же стоить поискать достойный аналог TrueCrypt. Решайте сами – пробуйте и экспериментируйте.
Инструкция по шифрованию с помощью TrueCrypt приведена в видео.