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

Выбор редакции

Программы шифрование файлов

Шифровать все!

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

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

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

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

Правительство США признали Расширенный стандарт шифрования (AES) в качестве стандарта, и все продукты, которые здесь собраны, поддерживают стандарт шифрования AES.

Даже те, кто поддерживает другие алгоритмы, как правило, рекомендуют использовать AES.

Если вы эксперт шифрования, вы можете предпочесть другой алгоритм, Blowfish, и возможно, даже алгоритм Советского правительства по ГОСТу.

Но это уже совсем для любителей экстремальных развлечений. Для рядового пользователя AES - это просто отличное решение.

Криптография с открытым ключом и обмен

Пароли важны, и вы должны держать их в тайне, верно? Ну, не при использовании инфраструктуры открытых ключей (PKI), которая используется при криптографии.

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

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

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

Поддержка PKI является менее распространенной, чем поддержка традиционных симметричных алгоритмов.

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

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

Что лучше?

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

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

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

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

Затем каждый кусок файла хранится на другом сервере. Хакер, который смог взломать один из серверов, не сможет сделать ничего полезного.

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

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

VeraCrypt (Windows/OS X/Linux)

VeraCrypt поддерживает шифрование на truecrypt, которое прекратило свое развитие в прошлом году.

Команда разработчиков утверждает, что они уже рассмотрели вопрос, поднятый в ходе первоначального аудита truecrypt, и считают, что его до сих пор можно использовать как доступную версию для , OS X и .

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

Также он поддерживает TwoFish и Serpent encryption ciphers, поддерживает и создание скрытых зашифрованных томов.

Программный код открыт, большая часть кодовой базы состоит из Truecrypt.

Программа также постоянно развивается, выходят регулярные обновления безопасности и независимого аудита на стадии планирования (по словам разработчиков).

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

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

AxCrypt (Windows)

AxCrypt - это бесплатная программа, с открытым исходным кодом лицензии GNU.

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

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

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

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

Он поддерживает 128-битное шифрование AES, обеспечивает защиту от попыток взлома. Он очень легкий (менее 1 Мб.)

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

Шифрование файлов и папок в Windows

Программы для шифрования файлов: Какие лучше выбрать?

5 программ для шифрования жестких дисков и файлов в Windows 10

Шифрование - это мощный способ защитить ваши файлы и данные от несанкционированного доступа. Рекомендую пять программ для .

1.AxCrypt

AxCrypt - это инструмент с открытым исходным кодом для , который поддерживает только 128-битное шифрование AES.

2. VeraCrypt

VeraCrypt имеет расширенные функции безопасности, поддерживает AES 256 бит, шифры шифрования Serpent и алгоритмы Two Fish.

3. DiskCryptor

DiskCryptor - это инструмент с открытым исходным кодом для шифрования, который используется для блокировки разделов диска, а также системных разделов. Поддерживает алгоритмы AES-256, Serpent и Twofish.

4. LaCie Private-Public

Lacie Private-public - программа с открытым исходным кодом. Поддерживает алгоритм шифрования AES-256.

5. Gpg4win

Gpg4win - используется для защиты ваших файлов и безопасной передачи ваших писем. Поддерживает все криптографические стандарты, такие как Open PGP и S / MIME (X.509).

Gpg4win содержит несколько бесплатных программных компонентов:

  • GnuPG - Бэкэнд; это фактический инструмент шифрования.
  • Kleopatra - диспетчер сертификатов для OpenPGP и X.509 (S / MIME) и общих криптографических диалогов.
  • GpgOL - плагин для Microsoft Outlook – поддерживает MS Exchange Server.
  • GpgEX - плагин для Microsoft Explorer (шифрование файлов).
  • GPA - альтернативный менеджер сертификатов для OpenPGP и X.509 (S / MIME).

Спасибо, что читаете! Подписывайтесь на мой канал в Telegram и Яндекс.Дзен . Только там последние обновления блога и новости мира информационных технологий.

Также, читайте меня в социальных сетях: Facebook , Twitter , VK , OK .

Мне нужна ваша помощь

Для своевременного наполнения сайта, его продвижения, развития, а также, конечно, оплаты хостинга мне необходима помощь от вас, читатели. Подробнее о донатах читайте на . На данный момент есть возможность поддержать меня через Яндекс Деньги , WebMoney и PayPal .

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

Запустите инструмент шифрования в Windows, введя в строке поиска «Bit­Locker» и выбрав пункт «Управление BitLocker». В следующем окне вы можете активировать шифрование, нажав на «Включить BitLocker» рядом с обозначением жесткого диска (если появится сообщение об ошибке, прочитайте раздел «Использование BitLocker без TPM»).

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

Использование BitLocker без TPM

Настройка BitLocker.
BitLocker также функционирует без чипа TPM - правда, для этого нужно произвести некоторые настройки в редакторе локальной групповой политики.

Если на вашем компьютере не используется чип TPM (Trusted Platform Mo­dule), вам, возможно, необходимо будет произвести кое-какие настройки, чтобы активировать BitLocker. В строке поиска Windows наберите «Изменение групповой политики» и откройте раздел «Редактор локальной групповой политики». Теперь откройте в левой колонке редактора «Конфигурация компьютера | Административные шаблоны | Компоненты Windows | Шифрование диска BitLocker | Диски операционной системы», а в правой колонке отметьте запись «Обязательная дополнительная проверка подлинности при запуске».

Затем в средней колонке нажмите на ссылку «Изменить параметр политики». Поставьте кружочек напротив «Включить» и галочку напротив пункта «Разрешить использование BitLocker без совместимого TPM» ниже. После нажатия на «Применить» и «ОК» вы можете использовать BitLocker, как описано выше.

Альтернатива в виде VeraCrypt

Чтобы зашифровать системный раздел или весь жесткий диск с помощью преемника программы TrueCrypt под названием VeraCrypt, выберите в главном меню VeraCrypt пункт «Create Volume», а затем - «Encrypt the system partition or entire system drive». Чтобы зашифровать весь жесткий диск вместе с разделом Windows, выберите «Encrypt the whole drive», после чего следуйте пошаговой инструкции по настройке. Внимание: VeraCrypt создает диск аварийного восстановления на случай, если вы забудете пароль. Так что вам потребуется пустая CD-болванка.

После того как вы зашифровали свой диск, при начальной загрузке вам нужно будет после пароля указать PIM (Personal Iterations Multiplier). Если при настройке вы не установили PIM, то просто нажмите Enter.

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

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

1. Программа для шифрования

Несмотря на большое количество платных программ (например: DriveCrypt, BestCrypt, PGPdisk), решил остановится в этом обзоре на бесплатной, возможностей которой хватит для большинства пользователей.

http://www.truecrypt.org/downloads

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

Что еще интересного:

Вместо пароля можно использовать файл-ключ (весьма интересная опция, нет файла - нет доступа к зашифрованному диску);

Несколько алгоритмов шифрования;

Возможность создания скрытого зашифрованного диска (о его существовании будете знать только вы);

Возможность назначить кнопки для быстрого монтирования диска и его размонтирвоания (отключения).

2. Создание и шифрование диска

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

Для этого запускаем программу и нажимаем кнопку «Create Volume», т.е. приступаем к созданию нового диска.

Выбираем первый пункт «Create an encrypted file container» - создание зашифрованного файла-контейнера.

Здесь нам на выбор предлагают два варианта файла-контейнера:

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

2. Скрытый (Hidden). О его существовании будете знать только вы. Остальные пользователи не смогут увидеть ваш файл-контейнер.

Теперь программа попросит вас указать месторасположение вашего секретного диска. Рекомендую выбрать диск, на котором у вас больше места. Обычно такой диск D, т.к. диск C системный и на нем, обычно, установлена ОС Windows.

Важный шаг: указать алгоритм шифрования. В программе их несколько. Для обычного непосвященного пользователя скажу, что алгоритм AES, который предлагает программа по умолчанию, позволяет защитить ваши файлы очень надежно и вряд ли, кто из пользователей вашего компьютера сможет его взломать! Можно выбрать AES и нажать на далее - «NEXT».

В этом шаге вы можете выбрать размер вашего диска. Чуть ниже, под окном для ввода желаемого размера, показывется свободное место на вашем реальном жестком диске.

Пароль - несколько символов (рекомендуется не менее 5-6) без которых доступ к вашему секретному диску будет закрыт. Советую выбрать такой пароль, который вы не забудете даже через пару лет! Иначе, важная информация может стать недоступна для вас же самих.

Если вы хотите использовать надёжный пароль, то рекомендуем вам воспользоваться генератором для его создания. Лучшим выбором станет платформа, которая также ответит на вопрос «надёжен ли мой пароль»: https://calcsoft.ru/generator-parolei.

Спустя некоторое время, программа вам сообщит, что был успешно создан зашифрованный файл-контейнер и вы можете приступать к работе с ним! Отлично…

3. Работа с зашифрованным диском

Механизм достаточно простой: выбирайте какой файл-контейнер хотите подключить, затем вводите пароль к нему - если все «OK» - то у вас в системе появляется новый диск и вы можете работать с ним как если бы это был реальный HDD.

Рассмотрим более подробно.

Щелкаете правой кнопкой по букве диска, которую хотите присвоить вашему файл-контейнеру, в выпадающем меню выбираете «Select File and Mount» - выбрать файл и присоединить его для дальнейшей работы.


После того, как вы поработали с диском, его нужно закрыть, чтобы другие не могли им воспользоваться. Для этого нужно нажать всего одну кнопку - «Dismount All» . После этого, все секретные диски будут отключены, и для доступа к ним нужно вновь ввести пароль.

Кстати, если не секрет, кто какими подобными программами пользуется? Иногда, есть потребность спрятать десяток файлов на рабочих компьютерах…

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

Предисловие

Так как для доступа к зашифрованному жесткому диску необходимо иметь ключ, а он, разумеется, хранится в RAM – все, что нужно, это получить физический доступ к ПК на несколько минут. После перезагрузки с внешнего жесткого диска или с USB Flash делается полный дамп памяти и в течение считанных минут из него извлекается ключ доступа.

Таким способом удается получить ключи шифрования (и полный доступ к жесткому диску), используемые программами BitLocker, FileVault и dm-crypt в операционных системах Windows Vista, Mac OS X и Linux, а также популярной свободно распространяемой системой шифрования жестких дисков TrueCrypt.

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

Наглядная демонстрация процесса представлена в видеоролике .

Аннотация

Вопреки устоявшемуся мнению, память DRAM, использующаяся в большинстве современных компьютеров, хранит в себе данные даже после отключения питания в течение нескольких секунд или минут, причём, это происходит при комнатной температуре и даже, в случае извлечения микросхемы из материнской платы. Этого времени оказывается вполне достаточно для снятия полного дампа оперативной памяти. Мы покажем, что данное явление позволяет злоумышленнику, имеющему физический доступ к системе, обойти функции ОС по защите данных о криптографических ключах. Мы покажем, как перезагрузка может использоваться для того, чтобы совершать успешные атаки на известные системы шифрования жёстких дисков, не используя каких-либо специализированных устройств или материалов. Мы экспериментально определим степень и вероятность сохранения остаточной намагниченности и покажем что время, за которое можно снять данные, может быть существенно увеличено при помощи простых приёмов. Так же будут предложены новые методы для поиска криптографических ключей в дампах памяти и исправления ошибок, связанных с потерей битов. Будет также рассказано о несколько способах уменьшения данных рисков, однако простого решения нам не известно.

Введение

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

Мы покажем ряд атак, которые, используя эффекты остаточной намагниченности DRAM, позволят нам восстановить хранимые в памяти ключи шифрования. Это представляет собой реальную угрозу для пользователей ноутбуков, которые полагаются на системы шифрования жёсткого диска. Ведь в случае, если злоумышленник похитит ноутбук, в тот момент, когда зашифрованный диск подключён, он сможет провести одну из наших атак для доступа к содержимому, даже если сам ноутбук заблокирован или находится в спящем режиме. Мы это продемонстрируем, успешно атакуя несколько популярных систем шифрования, таких как – BitLocker, TrueCrypt и FileVault. Эти атаки должны быть успешны и в отношении других систем шифрования.

Хотя мы сосредоточили наши усилия на системах шифрования жёстких дисков, в случае физического доступа к компьютеру злоумышленника, любая важная информация хранящаяся в оперативной памяти может стать объектом для атаки. Вероятно, и многие другие системы безопасности уязвимы. Например, мы обнаружили, что Mac OS X оставляет пароли от учётных записей в памяти, откуда мы смоги их извлечь, так же мы совершили атаки на получение закрытых RSA ключей веб-сервера Apache.

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

Атаки на зашифрованные диски

Шифрование жёстких дисков это известный способ защиты против хищения данных. Многие полагают, что системы шифрования жёстких дисков позволят защитить их данные, даже в том случае, если злоумышленник получил физических доступ к компьютеру (собственно для этого они и нужны, прим. ред.). Закон штата Калифорния, принятый в 2002 году, обязывает сообщать о возможных случаях раскрытия персональных данных, только в том случае, если данные не были зашифрованы, т.к. считается, что шифрование данных - это достаточная защитная мера. Хотя закон не описывает никаких конкретных технических решений, многие эксперты рекомендуют использовать системы шифрования жёстких дисков или разделов, что будет считаться достаточными мерами для защиты. Результаты нашего исследования показали, что вера в шифрование дисков необоснованна. Атакующий, далеко не самой высокой квалификации, может обойти многие широко используемые системы шифрования, в случае если ноутбук с данными похищен, в то время когда он был включён или находился в спящем режиме. И данные на ноутбуке могут быть прочитаны даже в том случае, когда они находятся на зашифрованном диске, поэтому использование систем шифрования жёстких дисков не является достаточной мерой.

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

BitLocker

BitLocker – система, входящая в состав некоторых версий ОС Windows Vista. Она функционирует как драйвер работающий между файловой системой и драйвером жёсткого диска, шифруя и расшифровывая по требованию выбранные секторы. Используемые для шифрования ключи находятся в оперативной памяти до тех пор, пока зашифрованный диск подмантирован.

Для шифрования каждого сектора жёсткого диска BitLocker использует одну и ту же пару ключей созданных алгоритмом AES: ключ шифрования сектора и ключ шифрования, работающий в режиме сцепления зашифрованных блоков (CBC). Эти два ключа в свою очередь зашифрованы мастер ключом. Чтобы зашифровать сектор, проводится процедура двоичного сложения открытого текста с сеансовым ключом, созданным шифрованием байта смещения сектора ключом шифрования сектора. Потом, полученные данные обрабатываются двумя смешивающими функциями, которые используют разработанный Microsoft алгоритм Elephant. Эти безключевые функции используются с целью увеличения количества изменений всех битов шифра и, соответственно, увеличения неопределённости зашифрованных данных сектора. На последнем этапе, данные шифруются алгоритмом AES в режиме CBC, с использованием соответствующего ключа шифрования. Вектор инициализации определяется путём шифрования байта смещения сектора ключом шифрования, используемом в режиме CBC.

Нами была реализована полностью автоматизированная демонстрационная атака названная BitUnlocker. При этом используется внешний USB диск с ОС Linux и модифицированным загрузчиком на основе SYSLINUX и драйвер FUSE позволяющий подключить зашифрованные BitLocker диски в ОС Linux. На тестовом компьютере с работающей Windows Vista отключалось питание, подключался USB жёсткий диск, и с него происходила загрузка. После этого BitUnlocker автоматически делал дамп оперативной памяти на внешний диск, при помощи программы keyfind осуществлял поиск возможных ключей, опробовал все подходящие варианты (пары ключа шифрования сектора и ключа режима CBC), и в случае удачи подключал зашифрованный диск. Как только диск подключался, появлялась возможность с ним работать как с любым другим диском. На современном ноутбуке с 2 гигабайтами оперативной памяти процесс занимал около 25 минут.

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

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

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

FileVault

Система FileVault от Apple была частично исследована и проведён реверс-инжиниринг. В Mac OS X 10.4 FileVault использует 128-битный ключ AES в режиме CBC. При введении пароля пользователя, расшифровывается заголовок, содержащий ключ AES и второй ключ K2, используемый для расчёта векторов инициализации. Вектор инициализации для I-того блока диска рассчитывается как HMAC-SHA1 K2(I).

Мы использовали нашу программу EFI для получения образов оперативной памяти для получения данных с компьютера Макинтош (базирующимся на процессоре Intel) с подключённым диском, зашифрованным FileVault. После этого программа keyfind безошибочно автоматически находила AES ключи FileVault.

Без вектора инициализации, но с полученным AES ключом появляется возможность расшифровать 4080 из 4096 байт каждого блока диска (всё кроме первого AES блока). Мы убедились, что инициализационный вектор так же находится в дампе. Предполагая, что данные не успели исказиться, атакующий может определить вектор, поочерёдно пробуя все 160-битовые строки в дампе и проверяя, могут ли они образовать возможный открытый текст, при их бинарном сложении с расшифрованной первой частью блока. Вместе, используя программы типа vilefault, AES ключи и инициализационный вектор позволяют полностью расшифровывать зашифрованный диск.

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

TrueCrypt

TrueCrypt – популярная система шифрования с открытым кодом, работающая на ОС Windows, MacOS и Linux. Она поддерживает множество алгоритмов, включая AES, Serpent и Twofish. В 4-ой версии, все алгоритмы работали в режиме LRW; в текущей 5-ой версии, они используют режим XTS. TrueCrypt хранит ключ шифрования и tweak ключ в заголовке раздела на каждом диске, который зашифрован другим ключом получающимся из вводимого пользователем пароля.

Мы тестировали TrueCrypt 4.3a и 5.0a работающие под ОС Linux. Мы подключили диск, зашифрованный при помощи 256-битного AES ключа, потом отключили питание и использовали для загрузки собственное ПО для дампа памяти. В обоих случаях, keyfind обнаружила 256-битный неповреждённый ключ шифрования. Так же, в случае TrueCrypt 5.0.a, keyfind смогла восстановить tweak ключ режима XTS.

Чтобы расшифровать диски созданные TrueCrypt 4, необходим tweak ключ режима LRW. Мы обнаружили, что система хранит его в четырёх словах перед ключевым расписанием ключа AES. В нашем дампе, LRW ключ не был искажён. (В случае появления ошибок, мы все равно смогли бы восстановить ключ).

Dm-crypt

Ядро Linux, начиная с версии 2.6, включает в себя встроенную поддержку dm-crypt – подсистемы шифрования дисков. Dm-crypt использует множество алгоритмов и режимов, но, по умолчанию, она использует 128-битный шифр AES в режиме CBC с инициализационными векторами создаваемыми не на основе ключевой информации.

Мы тестировали созданный dm-crypt раздел, используя LUKS (Linux Unified Key Setup) ветку утилиты cryptsetup и ядро 2.6.20. Диск был зашифрован при помощи AES в режиме CBC. Мы ненадолго отключили питание и, используя модифицированный PXE загрузчик, сделали дамп памяти. Программа keyfind обнаружила корректный 128-битный AES ключ, который и был восстановлен без каких-либо ошибок. После его восстановления, злоумышленник может расшифровать и подключить раздел зашифрованный dm-crypt, модифицируя утилиту cryptsetup таким образом, чтобы она воспринимала ключи в необходимом формате.

Способы защиты и их ограничения

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

Перезапись памяти

Прежде всего, надо по-возможности избегать хранения ключей в ОЗУ. Необходимо перезаписывать ключевую информацию, если она больше не используется, и предотвращать копирование данных в файлы подкачки. Память должна очищаться заблаговременно средствами ОС или дополнительных библиотек. Естественно, эти меры не защитят используемые в данный момент ключи, поскольку они должны храниться в памяти, например такие ключи как, используемые для шифрованных дисков или на защищённых веб серверах.

Так же, ОЗУ должна очищаться в процессе загрузки. Некоторые ПК могут быть настроены таким образом, чтобы очищать ОЗУ при загрузке при помощи очищающего POST запроса (Power-on Self-Test) до того как загружать ОС. Если злоумышленник не сможет предотвратить выполнение данного запроса, то на данном ПК у него не будет возможности сделать дамп памяти с важной информацией. Но, у него всё ещё остаётся возможность вытащить микросхемы ОЗУ и вставить их в другой ПК с необходимыми ему настройками BIOS.

Ограничение загрузки из сети или со съёмных носителей

Многие наши атаки были реализованы с использованием загрузки по сети или со съёмного носителя. ПК должен быть настроен так, чтобы требовать пароль администратора для загрузки с этих источников. Но, необходимо отметить, что даже если система настроена на загрузку только с основного жёсткого диска, атакующий может сменить сам жёсткий диск, или во многих случаях, сбросить NVRAM компьютера для отката на первоначальные настройки BIOS.

Безопасный спящий режим

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

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

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

Отказ от предварительных вычислений

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

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

Расширение ключей

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

На практике, представьте, что у нас есть 256-битный AES ключ K, который в данный момент не используется, но понадобится позднее. Мы не можем перезаписать его, но мы хотим сделать его стойким к попыткам восстановления. Один из способов добиться этого – это выделить большую B-битную область данных, заполнить её случайными данными R, после чего хранить в памяти результат следующего преобразования K+H(R) (суммирование двоичное, прим. ред.), где H – это хэш функция, например SHA-256.

Теперь представьте, что электричество было отключено, это приведёт к тому, что d бит в данной области будут изменены. Если хэш функция стойкая, при попытке восстановления ключа K, злоумышленник может рассчитывать только на то, что он сможет угадать какие биты области B были изменены из приблизительно половины, которые могли изменится. Если d бит были изменены, злоумышленнику придётся провести поиск области размером (B/2+d)/d чтобы найти корректные значения R и уже после этого восстановить ключ K. Если область B велика, такой поиск может быть очень долог, даже если d относительно мала.

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

Физическая защита

Некоторые из наших атак основывались на наличии физического доступа к микросхемам памяти. Такие атаки могут быть предотвращены физической защитой памяти. Например, модули памяти находиться в закрытом корпусе ПК, или залиты эпоксидным клеем, чтобы предотвратить попытки их извлечения или доступа к ним. Так же, можно реализовать затирание памяти как ответную реакцию на низкие температуры или попытки открыть корпус. Такой способ потребует установки датчиков с независимой системой питания. Многие из таких способов связаны с аппаратурой, защищённой от несанкционированного вмешательства (например, сопроцессор IBM 4758) и могут сильно повысить стоимость рабочей станции. С другой стороны, использование памяти, припаянной к материнской плате, обойдётся гораздо дешевле.

Изменение архитектуры

Можно изменить архитектуру ПК. Что невозможно для уже используемых ПК, зато позволит обезопасить новые.

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

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

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

Доверенные вычисления

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

Используемые TPM модули не реализуют полное шифрование. Вместо этого, они наблюдают за процессом загрузки для принятия решения о том, безопасно ли загружать ключ в ОЗУ или нет. Если ПО необходимо использовать ключ, то можно реализовать следующую технологию: ключ, в пригодной для использования форме не будет храниться в ОЗУ, до тех пор пока процесс загрузки не пройдёт по ожидаемому сценарию. Но, как только ключ оказывается в оперативной памяти – он сразу становиться мишенью для наших атак. TPM модули могут предотвратить загрузку ключа в память, но они не предотвращают его считывание из памяти.

Выводы

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

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

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

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

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