Как использовать TrueCrypt и не бояться.
Думаю многие читатели владеют видеокамерой, или собираются приобрести. После покупки и некоторого времени эксплуатации возникает вопрос (по крайней мере у меня он возник ) - как хранить большой объем данных и при этом оградить себя от возможности просмотра и копирования их другими лицами в случае кражи, утери или, например, сдачи винчестера в ремонт.
Очевидное решение-шифрование. Рассмотрим как это сделать с помощью TrueCrypt-4.2a.
Для эксперимента я вооружился винчестером, обрезав его в MHDD до 2000 Mb (рис 1). Такой небольшой объем выбран потому что далее неоднократно пришлось его форматировать.
Рис
1
В TrueCrypt фактическим носителем зашифрованных данных может быть файл, раздел, или целый физический диск. На основе них программа создает так называемый Encrypted volume. Я предлагаю рассмотреть ситуацию, когда volume создается на основе раздела: запускаем TrueCrypt (рис2)-
Рис
2
create volume (рис3)-
Рис
3
указываем наш раздел (рис4)-
Рис
4
Create a standart TrueCrypt volume (рис5).
Рис
5
Помимо этого можно выбрать hidden volume. Вот что сказано по этому поводу в руководстве: может так случиться что кто то силовым способом будет добиваться от вас пароль, и отказать будет невозможно. Существует способ как решить данную ситуацию дипломатично, не раскрыв данные. Суть в том что TrueCrypt volume создается внутри другого TrueCrypt volume -в свободном месте. Когда внешний (фиктивный) volume подсоединен(смонтирован) невозможно доказать, что внутри него содержится еще volume так как свободное место в TrueCrypt volume всегда заполнено произвольными данными(если только не был выбран QuickFormat-быстрое форматирование). И никакая часть hidden volume не может быть отличима от произвольных данных. Таким образом злоумышленник после ввода полученного пароля увидит только файлы лежащие на внешнем volume.
Select Device (рис 6-8)-
Рис
6
Рис
7
Рис
8
алгоритм AES, hash алгоритм RIPEMD-160 (рис 9)-
Рис
9
размер примерно 2GB (рис 10)-
Рис
10
длина пароля максимальная 64 символа (рис 11)-
Рис
11
файловая система внутри контейнера NTFS (рис 12).Кстати в руководстве рекомендуют «порисовать» мышкой в пределах окна не менее 30 секунд. Это важно для качества генерируемого ключа шифрования.
Рис
12
форматируем раздел -в это время раздел забивается произвольными данными.(именно из за этого пункта размер раздела выбран 2000 Mb, так как при больших объемах раздела, а также в зависимости от алгоритма шифрования время форматирования может занимать часы) (рис 13)-
Рис
13
volume, привязанный к разделу успешно создан (рис 14-15).
Рис
14
Рис 15
смонтируем volume и убедимся в этом (рис 16).
Рис 16
Из документации следует, что данные шифруются на основе выбранного «алгоритма шифрования» с помощью сгенерированного ключа. Этот ключ назовем его мастер ключ хранится на диске в зашифрованном по алгоритму hash шифрования виде. Hash контейнер называется volume header. Пароль, который мы задаем при создании volume, относится к hash контейнеру. Как пишут разработчики TrueCrypt - при утере мастер ключа расшифровка данных с диска невозможна, так как у нас на руках остается только пароль от hash контейнера которого уже нет. Более того, после создания volume можно поменять hash алгоритм и пароль, при этом данные не потеряются, так как мастер ключ останется прежним. Поэтому если вы поменяли пароль и даже hash алгоритм, но злоумышленник имеет старый volume header и пароль от него, то он получит доступ к вашим данным. Так как мастер ключ остался прежним. Разработчики советуют в случаях сомнения создать новый volume у которого соответственно будет другой мастер ключ и перекопировать данные туда. Средствами TrueCrypt предусмотрено сохранение и восстановление volume header. Так называемые backup volume header и restore volume header. (рис 17-21).
Рис
17
Рис 18
Рис
19
Рис
20
Рис
21
Длина получаемого файла составляет 1024 байта (рис 22).
Рис
22
То есть два сектора. В случае когда TrueCrypt откажется монтировать раздел и напишет Incorrect password or not a TrueCrypt volume (рис 23),
Рис
23
это значит что либо вы неправильно ввели пароль, либо поврежден volume header на винчестере. В таком случае создатели предлагают воспользоваться пунктом restore volume header (рис 24-28).
Рис
24
Рис 25
Рис
26
Рис
27
Обращаю внимание, так как у нас тип volume normal а не hidden нужно ответить «нет».
Рис
28
То есть имея сохраненный volume header можно его восстановить средствами самой программы.
Далее мне стало интересно, где на физическом диске хранится мастер ключ.
Для исследования этого вопроса я использовал программу Disk Probe (рис 29).
Рис
29
Эта программа входит в WINDOWS SUPPORT TOOLS и находится в SUPPORT/TOOLS/SUPPORT.CAB на вашем cd диске с дистрибутивом Windows. Ее можно прямо взять из данного файла и использовать не устанавливая. Кстати для каждой версии Windows эта программа немного другая. У меня к сожалению под рукой не оказалось версии от XP. Зато были все другие :) . От NT и Server 2003 не захотели корректно работать даже в режимах совместимости. Подошла лишь версия для Windows 2000 опять же заработала в режиме совместимости с Windows 2000. Эта программа очень полезна так как она позволяет читать искать и записывать сектора на жестком диске. Как ее использовать. Для начала нужно выяснить тот винчестер с которым мы хотим работать в диспетчере дисков В моем случае это диск номер 1 (рис 1).
запускаем Disk Probe drives-phisical drive (рис 30)-
Рис
30
дважды жмем на нужный phisical drive (рис 31)
Рис
31
-далее set active (рис 32).
Рис
32
Если убрать флажок read only то программа будет не только читать но и записывать на диск. Теперь когда мы сообщили программе с каким винчестером мы работаем можно заняться секторами. Например считаем с 10 по 70. (Disk Probe считывает максимум 4096 секторов за раз). Делается это так. Sectors-Read (рис 33),
Рис
33
Starting sektor -это номер первого считываемого сектора. А number of sectors это количество (рис 34).
Рис
34
Гулять по считанным секторам можно с помощью (рис 35) стрелочек.
Рис
35
Так же можно сохранить считанные сектора в файл (рис 36-37).
Рис
36
Рис 37
Здесь отображается номер текущего сектора (рис 38).
Рис
38
С помощью Disk Probe выяснилось, что мастер ключ хранится в секторе 63 (нумерация с нуля). Таким образом файл занимает 512 байт. Почему же backup volume header сохраняет два сектора. Думаю это на случай если у нас не стандартный volume а с hidden содержимым.
Если заменить сектор 63 мусором, то volume перестает монтироваться.
Далее я взял другой винчестер, создал на нем раздел 30Gb переписал сектор 63, взятый с 2Gb. TrueCrypt его успешно смонтировал, причем размер volume был 30Gb. Все это проверено на алгоритмах шифрования: AES, Serpent, Serpent-Twofish-AES. Hash алгоритмы RIPEMD-160,Whirlpool. Во всех случаях TrueCrypt хранит мастер ключ в секторе 63. Таким образом процедура restore volume header вас спасет во всех случаях кроме когда запись в сектор 63 станет невозможна. Действительно будет обидно если 300Gb полягут из за пары бэд блоков. Что тогда делать. Нужно перекопировать посекторно весь винчестер на другой. Создать раздел, не форматируя его естественно, и записать 63 сектор либо restore volume header. Обращаю внимание содержимое сохраненного сектора 63 нельзя подсовывать в качестве файла при использовании restore volume header, также как писать в сектор 63 содержимо файла который получается в результате процедуры backup volume header. Таким образом снимается еще один вопрос от чего зависит смонтируется volume или нет.
Если Windows не нравится нулевой сектор вашего винчестера, то в диспетчере дисков он предложит его проинициализировать, При этом в любом случае если согласится или нет на винчестере не будет ни одного раздела а TrueCrypt не подсоединит вам volume так как ему нужно чтобы раздел был. Что делать. Если у вас сохранен volume header(либо 63 сектор) то соглашаетесь на инициализацию-создаете без форматирования раздел-Restore volume header (либо перезаписываете 63 сектор) и все ок. Если у вас нет volume header то откажитесь от инициализации и вначале сохраните 63 сектор. Если у вас нет ключа, а Windows XPSP2 по каким то причинам уже проинициализировал диск ,то при этой процедуре 63 сектор не затрагивается. Таким образом можно его скопировать в файл. И мастер ключ спасен :)
Предположим вы наконец смонтировали volume, но файловая система на нем повреждена (рис 39).
Рис
39
Я посмотрел что может с этим сделать GetDataBack for NTFS.
Записал на volume три видеофайла.
Насколько
я понимаю, самое тяжелое для программы восстановления данных, это
поврежденный Master File Table. Посмотрим сколько он занимает
Примерно 22кб, 22*1024.512=44 сектора. Затираем 200 секторов на винчестере, записываем сохраненный 63 сектор, монтируем volume и запускаем GetDataBack for NTFS.
Использую ту MFT которую потер.
В итоге все файлы нашлись. Два из них полностью сохранились. Один немного был поврежден, так как секторов многовато потер. Я остался доволен. На мой взгляд в случае порчи поверхности диска-возможность восстановить данные такая же как при порче диска без шифрования.
Кстати говоря, если создать volume на разделе, записать туда файлы, потом переформатировать винчестер в систему NTFS (не быстрое форматирование) затем удалить раздел, создать новый не форматированный, восстановить volume header, смонтировать, применить на полученный логический диск GetDataBack for NTFS то практически все файлы он восстановит! :) Правда проделал я это не с видеофайлами, а с картинками количеством 721 штука, размером 20кб-14Мб.
Еще один момент. Если вы создаете volume не на разделе а на диске ,то в этом случае мастер ключ хранится в нулевом секторе а не 63.