Шифрование на уровне файлов

Как защитить файлы от злоумышленников с помощью шифрования

Шифрование на уровне файлов

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

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

Если отбросить всю теорию, то обычно рассматривают симметричные, асимметричные и бесключевые криптографические алгоритмы.

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

Хеш-функции

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

Рассмотрим это на примере утилиты openssl, установленной в Linux. К примеру, у нас есть текстовый файл, содержащий «this is simple text»:

Вычислим от этого файла хеш-функцию при помощи алгоритма md5:

А теперь изменим содержимое файла:

Обратите внимание: мы добавили в файл новую строку («but changed»), вычислили заново хеш от файла, и он стал другим. То есть при любом изменении содержимого файла хеш-функция не останется прежней.

Это можно использовать для контроля целостности критических файлов: если их хеш изменится — системному администратору придёт оповещение.

Или для проверки, загрузился ли файл полностью: если это так, на сайте опубликуется его хеш.

В Windows для вычисления хеша я рекомендую утилиту Sigcheck из пакета Sysinternals. Для примера вычислим значение хеша md5 от файла PsExec.exe:

Другой вариант — использовать утилиту certutil, предустановленную в Windows. Вычислим с её помощью значение хеша md5 от файла PsExec.exe:

Также можно загрузить пакет openssl для ОС Windows. Качаем архив под нужную архитектуру процессора отсюда, распаковываем его и переходим в консоли в каталог bin. Нам нужен файл openssl.exe:

Теперь нам доступны почти все возможности пакета openssl в Windows. Например, вычислить хеш, как делали в предыдущих примерах для Linux (не забываем про абсолютные и относительные пути к файлам):

Пакет лучше переместить в каталог C:/OpenSSL, а конфигурационный файл openssl.cnf — из каталога bin в каталог OpenSSL. Избежим ошибки, как на скрине выше:

Теперь рассмотрим реализацию криптографических алгоритмов.

Симметричные криптоалгоритмы

Если говорить упрощённо, то симметричные алгоритмы шифрования применяют один ключ для шифрования и дешифрования. Таких алгоритмов много, и на практике обычно применяют те, которые имеют достаточную длину ключа и ещё не были скомпрометированы. Симметричные алгоритмы делятся на блочные (DES, RC2, Blowfish, AES, «Кузнечик» и т. д.) и потоковые (RC4, SEAL, CryptMT и другие).

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

Попрактикуемся: при помощи пакета openssl зашифруем созданный нами ранее текстовый файл. Для этого используем команду:

openssl enc -e -aes256 -in simpletext.txt -out simple_enc_text.txt

где:

  • enc — указывает модуль для шифрования;
  • -e — указывает, что файлы нужно шифровать;
  • -aes256 — алгоритм шифрования;
  • -in — указывает на исходный файл;
  • -out — указывает на зашифрованный файл.

Выглядит это так:

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

openssl enc -d-aes256 -in simple_enc_text.txt -out simpletext.txt 

где:

  • enc — указывает модуль для шифрования;
  • -d — указывает, что файлы нужно расшифровать;
  • -aes256 — алгоритм шифрования;
  • -in — указывает на исходный файл;
  • -out — указывает на расшифрованный файл.

При шифровании симметричными алгоритмами есть несколько интересных проблем.

  • Длина ключа. Как уже упоминали, желательно не менее 128 бит
  • Сложность использования при большом количестве шифруемых объектов — приходится запоминать много параметров.
  • Сложность обмена параметрами шифрования (паролями, алгоритмами и подобным) — необходимо обеспечить их надёжную передачу адресату.

Такие проблемы обычно решают при помощи асимметричных алгоритмов шифрования.

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

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

Криптографическая система на основе асимметричного шифрования использует открытые (public key) и закрытые (private key) ключи для шифрования и расшифровки данных. Эти ключи образуют ключевую пару, компоненты которой связаны зависимостью, но отличаются друг от друга. Идея в том, что, зная открытый ключ, нельзя из него получить закрытый, хотя алгоритм генерации известен.

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

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

При практической реализации асимметричных алгоритмов обычно используют сертификат. Это файл, хранящий ключ (открытый и закрытый) в определённом формате. Подробнее об этом можно почитать в статье «Формат SSL-сертификата».

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

X.509 — стандарт ITU-T для инфраструктуры открытых ключей. Определяет стандартные форматы данных и процедуры распределения открытых ключей с помощью соответствующих сертификатов с цифровыми подписями. Именно он обычно используется для электронной цифровой подписи (ЭЦП) и шифрования, например, в openssl.

OpenPGP — стандарт, выросший из программы PGP (к середине 90-х годов она распространилась в интернете как надёжное средство шифрования электронной почты). Став стандартом де-факто, PGP начал встраиваться во множество приложений и систем. С особенностями можно ознакомиться на специализированном ресурсе об OpenPGP.

Посмотрим, как это выглядит на практике. Начнём с асимметричных алгоритмов в openssl — для этого в Windows командную строку надо запустить с правами администратора.

Создадим закрытый ключ в виде сертификата. Команда следующая:

openssl genrsa -aes256 -out private.pem 8912

где:

  • genrsa — указывает, что мы используем модуль для генерации закрытого ключа на основе алгоритма RSA;
  • -aes256 — указывает на алгоритм AES для шифрования сертификата;
  • -out private.pem — файл для сохранения сертификата;
  • 8912 — размер ключа.

Теперь надо извлечь из полученного закрытого ключа публичный. Сделать это можно командой:

openssl rsa -in private.pem -pubout -out public.pem

где:

  • rsa — модуль для работы с RSA;
  • -in private.pem — задаёт путь к закрытому ключу, из которого извлечём открытый;
  • -pubout — извлекает публичный ключ;
  • -out public.pem — имя файла для полученного открытого ключа.

Ключ мы получили в виде сертификата в формате pem (ASCII-файл в кодировке base64). Это не единственный формат хранения сертификатов — с другими можно ознакомиться в материале, который уже рекомендовался выше. 

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

  1. Генерируем сертификаты (пару из открытого и закрытого ключа).
  2. Шифруем текст симметричным алгоритмом AES (его вроде бы ещё не взломали). Предположим, получим файл enc.1.
  3. Далее выбранный для шифрования пароль шифруем публичным ключом (предположим, получим файл enc.2). 
  4. Теперь можно передать зашифрованный файл enc.1 и файл enc.2 по незащищённому каналу связи. 
  5. На другом конце у получателя должна быть вторая часть ключа (закрытый ключ). Ей он вначале расшифровывает файл enc.2 и извлекает оттуда пароль для дешифровки файла enc.1.
  6. Profit!

Вот как это выглядит на практике. Вначале шифруем текстовый файл алгоритмом AES (пароль 123456):

Теперь сохраним наш пароль (123456) в файл pass.txt. И зашифруем файл при помощи сертификата. Команда:

openssl rsautl -encrypt -inkey public.pem -pubin -in pass.txt -out pass.ssl

где:

  • rsautl — включаем модуль для шифрования, дешифрования и подписывания данных алгоритмом RSA;
  • -inkey public.pem — указывает путь к открытому ключу;
  • -pubin — указывает, что файл ключа является публичным ключом;
  • -in pass.txt — файл для шифрования;
  • -out pass.ssl — выходной зашифрованный файл.

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

Мы получили пароль — теперь с его помощью можно расшифровать файл, который мы с ним зашифровали при помощи алгоритма AES:

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

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

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

Работа с криптографическими алгоритмами — это лишь малая часть одного из курсов факультета информационной безопасности Geek University. Ближайший поток стартует 28 декабря — неплохой подарок на Новый год 😉 Кроме того, до 29 декабря вы сможете выбрать ещё один факультет Geek University для себя или в подарок и получить его бесплатно.

Источник: https://geekbrains.ru/posts/kak-zashchitit-fajly-ot-zloumyshlennikov-osvaivaem-shifrovanie

5 бесплатных программ для шифрования файлов

Шифрование на уровне файлов

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

7zip

И начнем мы с популярного архиватора для Windows, имеющего ряд неофициальных реализаций для Mac OS и Linux.

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

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

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

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

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

Таким образом, 7zip можно назвать «казуальным» приложением для шифрования, которое подойдет тем, кому подобный функционал необходим лишь время от времени.

Encrypto

Если вы не пользуетесь 7zip, но нуждаетесь в таком же простом и легковесном инструменте, рекомендуем обратить внимание на приложение Encrypto, разработанное компанией MacPaw для операционных систем Windows и MacOS.

После его установки в контекстном меню операционной системы появится опция Encrypt with Encrypto, с помощью которой вы сможете шифровать отдельные файлы и папки.

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

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

Благодаря этому вы можете использовать Encrypto для передачи зашифрованных файлов по открытым каналам (e-mail, мессенджеры, cloud-сервисы), не опасаясь, что ценная информация будет перехвачена.

GnuPG

Впрочем, существует и куда более надежное решение для обмена зашифрованными данными в Интернете, и это — GnuPG, использующая асимметричные пары ключей. Приложение доступно практически на всех операционных системах, включая Windows, Mac OS, Linux и FreeBSD.

Реализация программы для Windows получила название GPG4Win и включает в себя, помимо собственно GnuPG, удобную визуальную оболочку Kleopatra для управления ключами шифрования, менеджер сертификатов, плагин для почтового клиента Outlook и плагин для проводника операционной системы.

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

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

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

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

Cryptomator

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

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

  1. зашифрованный контейнер можно разместить внутри сетевой папки OneDrive, «Яндекс.Диск», Google Drive, DropBox или любого другого облачного сервиса и синхронизировать данные между разными устройствами;
  2. вы можете работать с защищенным разделом точно так же, как с обычным диском, создавая, редактируя и удаляя файлы и папки без необходимости каждый раз повторно вводить пароль — это потребуется сделать лишь один раз, при его разблокировке.

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

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

VeraCrypt

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

  • Создание зашифрованного контейнера внутри файла

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

  • Шифрование несистемных разделов

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

  • Шифрование системных разделов

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

Программа поддерживает сразу несколько алгоритмов шифрования: AES, Serpent, Twofish, Camelia и Kuznyechik, позволяя комбинировать перечисленные методы между собой (доступно 10 возможных комбинаций на выбор).

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

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

Аппаратное шифрование для защиты персональных данных

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

  • криптографические ключи создаются на основе неких входных данных (кодовой фразы, координат курсора мыши и т. д.), имеющих сравнительно низкий уровень энтропии (хаотичности), что упрощает процесс взлома;
  • данные, необходимые для дешифровки, хранятся в скрытых папках операционной системы, реестре или даже в самом зашифрованном контейнере (как в случае с 7zip или Encrypto) и могут быть сравнительно легко обнаружены и скопированы удаленно или с помощью троянских программ;
  • во время шифрования все необходимые алгоритмы и ключи выгружаются в оперативную память компьютера, откуда могут быть извлечены посредством вредоносного ПО, с помощью метода «холодной перезагрузки» и других аналогичных манипуляций;
  • поскольку шифрование и дешифровка осуществляются центральным процессором ПК или ноутбука, на котором установлено криптографическое приложение, это упрощает проведение атак по сторонним каналам, основанных на анализе времени выполнения вычислений, колебаниях уровня потребления энергии и т. д.

Подобных недостатков лишены внешние накопители со встроенными криптографическими модулями — например, настольные жесткие диски My Book емкостью от 4 до 18 терабайт и ультракомпактные портативные My Passport объемом от 1 до 5 ТБ от Western Digital.

Внешний жесткий диск Western Digital My Book

Стильный дизайн, совместимость с компьютерами под управлением Microsoft Windows 8.1 и 10 или Apple macOS версии 10.13 и выше, наличие высокоскоростного порта USB 3.

2 Gen 1 с пропускной способностью 640 МБ/с — преимущества этих устройств можно перечислять бесконечно.

Однако главной их фишкой является поддержка полноценного аппаратного шифрования на базе упомянутого нами ранее алгоритма AES-256.

В комплекте с каждым экземпляром My Book и My Passport поставляется бесплатный программный пакет WD Discovery, включающий в себя ряд сервисных утилит:

Позволяет получить исчерпывающие сведения о текущем состоянии накопителя на основе показателей S.M.A.R.T., проверить жесткий диск на наличие битых секторов или, при необходимости, уничтожить сохраненные на HDD данные (при этом файлы будут несколько раз перезаписаны, чтобы их нельзя было восстановить).

С помощью этой программы вы можете настроить резервное копирование по расписанию, выгрузку бэкапов в облако (поддерживаются Google Drive и Dropbox) или, напротив, загрузку файлов из cloud-сервиса на диск или локальный компьютер. Кроме того, приложение позволяет подключиться к вашему профилю на и скачать сохраненные фото и видео прямо на внешний жесткий диск.

Эта утилита позволяет управлять шифрованием данных на внешнем жестком диске. Разберемся, как это работает.

Портативный накопитель WD My Passport и работа с WD Discovery

На первый взгляд, использование WD Security мало отличается от того же Encrypto: все, что требуется от владельца внешнего жесткого диска, — указать надежный пароль и активировать защиту, после чего вся информация на HDD будет зашифрована. В дальнейшем, чтобы использовать накопитель, его сперва нужно будет разблокировать с помощью кодовой фразы. Также можно создать список доверенных устройств, при подключении к которым внешний жесткий диск будет разблокироваться автоматически.

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

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

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

Источник: https://zen.yandex.ru/media/diskw/5-besplatnyh-programm-dlia-shifrovaniia-failov-5fbe32834b9b1b331ddf0271

Криптографические файловые системы, Часть первая: Дизайн и разработка

Шифрование на уровне файлов

Криптографические файловые системы, Часть первая: Дизайн и разработка

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

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

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

TECKLORD, по материалам SecurityFocus

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

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

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

Цель этой статьи обратить внимание читателей на технологию и особенности криптографических файловых систем, а также продемонстрировать некоторые способы реализации таких файловых систем на примерах Microsoft's Encrypting File System for Windows 2000, Linux CryptoAPI, и Secure File System.

Типы криптографических файловых систем.

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

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

Данный подход использует уровень драйвера устройства для шифрования и дешифрования информации на физическом носителе и используется такими системами, как PGPDisk, Secure File System (SFS), Linux CryptoAPI и ScramDisk.

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

Шифрование файлов.

Шифрование файлов оперирует уровнем приложений и обеспечивает надежное непрерывное кодирование файлов.

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

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

Шифрование файловых систем

Этот метод позволяет шифровать файлы на основе per-file или per-directory, используя единый ключ. К таким системам относятся: Cryptographic File System (CFS), разработанная Матом Блейзом (Matt Blaze), Transparent Cryptographic File System (TCFS), поддерживаемая Linux и BSD, CryptFS, а также Microsoft's EFS for Windows 2000.

Дизайн криптографических файловых систем.

CryptFS

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

Эта модель, также избавляет систему от дополнительных демонов, которые могут быть использованы для получения доступа к системе, или файлам. Интерфейс, используемый CryptFS, является стековидным виртуальным узлом (stackable V-Node).

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

Благодаря концепции стыкования виртуальных узлов (V-node stacking), CryptFS позволяет файловым системам реализовать функцию модуляризации: когда один V-node интерфейс вызывает другой. Стыкование виртуальных узлов показано на рис. 1

Рис. 1: Строение стековидного Vnodeинтерфейса.

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

Разработчики CryptFS также внедрили в свой продукт схему управления ключами (key management scheme), согласной которой лишь root может смонтировать CryptFS и ключ будет ассоциирован не только с UID, но и с ID сессии. Атакующему придется не только взломать эккаунт, но и заставить свои процессы использовать те же ID сессий, что и пользователь, для получения или изменения ключа.

CryptFS использует для криптования алгоритм blowfish в режиме CBC.

CryptFS доступен для пользователей как часть пакета для файловых систем (fistgen) и может быть скачан отсюда.

Linux CryptoAPI

Хотя и Linux CryptoAPI не является программой для шифрования файловых систем, она часто используется для этих целей. Изначально kernelint patch был создан для осуществления шифрования файловых систем для ядра 2.2.

Развитие kernelint patch во всеми используемый API для шифрования kernel-space – это большой шаг вперед.

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

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

Рис. 2: Шифрование с помощью CryptoAPI

Figure 3: ДешифрованиеспомощьюCryptoAPI

CryptoAPI можно скачать с GNU/Linux CryptoAPI site.

Microsoft's Encrypted FileSystem (EFS)

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

Этот ключ создается путем шифрования одного или нескольких общих ключей, полученных из сертификата пользователя X.509 version 3.

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

Microsoft's EFS не поддерживает использование симметричного алгоритма использования основанного на пароле ключа из-за того, что такие схемы более уязвимы к атакам с использованием метода подбора по словарю. EFS также обеспечивает восстановление ключа кодирования в случае его потери. Процессы шифрования и дешифрования показаны на рис. 4 и 5.

Рис 4: Шифрование Microsoft EFS

Рис 5: ДешифрованиеMicrosoft EFS

EFS проста в использовании конечным пользователем.

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

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

Схема Microsoft's EFS показана на Рис. 6. Архитектура программы состоит из 4 основных категорий: драйвер EFS , файловая система библиотеки Run-Time, сервис EFS, и различные Win32 API. Драйвер расположен на поверхности файловой системы NTFS. Он обменивается данными с EFS сервисами для получения ключа кодирования и другой информации.

Драйвер передает эту информацию в библиотеку Run-Time, чтобы выполнить множество различных операций с файловой системой. Драйвер и библиотека run-time не общаются напрямую, а используют механизм контроля за фалом в NTFS – call-out.

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

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

Рис 6: Архитектура EFS

В данный момент EFS поддерживает лишь алгоритм шифрования DESX, основанный на 128-битном ключе. Майкрософт сообщает, что в будущем EFS будет поддерживать также альтернативные алгоритмы шифрования.

Вывод

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

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

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

Источник: https://www.securitylab.ru/analytics/216271.php

Защищаем конфиденциальные файлы в Win10 при помощи шифрованной файловой системы (EFS)

Шифрование на уровне файлов

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

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

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

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

Инженеры IBM, а впоследствии и Microsoft, потратили немало усилий на реализацию системы разделения прав для файловой системы NTFS (в бытность IBM это была HPFS).

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

Но стоит только загрузиться в другую операционную систему, например, в Linux Mint, то все пользовательские файлы будут как на ладони. Качай что хочешь. А загрузиться в Mint можно хоть с флешки, хоть с CD-ROM, нужно только добраться до UEFI (BIOS) и активировать загрузку со съемных накопителей, если она не была активирована ранее, либо воспользоваться меню загрузки.

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

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

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

А вот про частичное шифрование файлов и каталогов, почему-то все забывают.

В Windows 10, как и в предыдущих ее реинкарнациях, присутствует Шифрованная Файловая Система, что в переводе означает Encrypted File System (EFS).

Данная функция доступна начиная с редакции Pro и выше, поэтому если у вас версия Windows Home, то необходимо проапгрейдиться как минимум до Pro. В Wikipedia много написано о том, как и что, шифруется в EFS.

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

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

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

Скорее всего, именно такая файловая система и применяется у вас.

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

Зашифровать можно как один файл, так и целую папку сразу.

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

При работе с зашифрованными папками и файлами стоит учитывать следующее:

  1. Файлы зашифрованы до тех пор, пока они не будут перенесены на любую другую файловую системы отличную от NTFS. Например, вы копируете зашифрованный файл на «флешку». Если там FAT32, а скорее всего там именно он, то файл расшифруется. В десятой версии Windows Microsoft все же реализовал функцию, когда файл остается зашифрованным даже если вы его перенесли на флешку с FAT, так что стоит быть бдительным если сливаете какие-то файлы своему другу. Сможет ли он их потом открыть без мата? Если вы отправляете файл по электронной почте — он расшифруется (иначе пропадает смысл его отправке по почте). При передаче файла по сети также произойдет расшифровка.
  2. При перемещении между NTFS разделами файл остается зашифрованным. При перемещении файла с одного NTFS диска на другой NTFS диск, файл будет зашифрованным. При копировании файла на жесткий сменный диск с файловой системой NTFS он будет зашифрованным и в новом месте.
  3. При насильственной смене пароля учетной записи третьим лицом, например, администратором, либо же насильственная смена пароля привязанной учетной записи домена, либо облачной службы — доступ к файлам без резервного сертификата (формируется при первом шифровании) будет уже невозможен.

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

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

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

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

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

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

Подробная инструкция по включению шифрования при помощи EFS под Win10 Pro на папке

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

Шаг 1. Создаем папку. Пусть она называется «Мои картинки».

Создаем каталог

Шаг 2. Нажимаем на папке правой кнопкой мышки и в контекстном меню выбираем «Свойства».

Правой кнопкой нажимаем на папке и получаем вот это

Шаг 3. В меню «Свойства» переходим в расширенные атрибуты папки посредством нажатия кнопки «Другие…».

Свойства папки

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

В расширенных атрибутах свойств папки

Шаг 5. Завершаем работу со «Свойства», нажимаем ОК или «Применить».

Жмем ОК

Шаг 6. Отвечаем в диалоговом окне, что «применить» к нашей папке и всему ее содержимому.

Выбираем нужный пункт шифрования

На этом наша папка и все ее содержимое зашифровано при помощи EFS. При желании можно проверить, что наша папка и все файлы в ней надежно закрыты от посторонних.

Шаг 7. Проходим по шагам 1-3 и видим, что галочка «шифровать» активна. А рядом активна кнопка «Подробно». Нажимаем на «подробно».

Проверка того, что зашифровалось

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

Папка зашифрована одним сертификатом

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

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

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

Та же галерея, только в виде таблицы. Замочки в правом верхнем углу пиктограммы.

После того, как были зашифрованы первые файлы, Windows предлагает сделать копию сертификата. Того самого сертификата, который позволит расшифровать файлы, если вдруг, что-то пойдет не так с вашим компьютером (переустановили систему, сбросили пароль, перекинули диск на другой компьютер и т.п.).

Шаг 9. Для сохранения резервного сертификата восстановления следует нажать на пиктограмму архивации ключа.

Значок в трее призывающий к архивации резервного сертификата для восстановления шифрования

Шаг 10. В появившемся окне выбрать «Архивировать сейчас».

Выбор когда архивировать

Шаг 11. В диалоговом окне мастера активации нажать «Далее».

Окно мастера экспорта сертификатов

Шаг 12. Если вы используете только шифрование EFS, то можно оставить значения по умолчанию. И нажать на «Далее».

Настройки экспорта резервного сертификата

Шаг 13. Экспортируемый сертификат имеет смысл защитить паролем. Вводим пароль, может быть любым, не обязательно от вашей почты или для входа в Windows. И жмем «Далее».

Вводим пароль для дополнительной защиты сертификата восстановления

Шаг 14. Выбираем куда сохранить файл с сертификатом для восстановления. Жмем «Далее».

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

Шаг 15. Подтверждаем результат нажатием на ОК.

Завершаем работу мастера экспорта

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

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

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

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

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

Перед началом шифрования необходимо выйти из OneDrive

Настало время проверить, насколько хорошо работает шифрование EFS. Я создал файл с текстом в зашифрованном каталоге. А затем загрузился в Linux Mint с флешки. Данная версия Linux может спокойно работать с жесткими дисками в формате NTFS, поэтому добраться до содержимого моего жесткого диска не составило труда.

Создаем файл с текстом в зашифрованной папке.

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

Зашифрованные файлы в Win10 из Mint видно, но открыть их нельзя.

«Ага!» — сказали суровые сибирские мужики. А ведь если записать на флешку файлик зашифрованный, то он останется зашифрованным, наверное. А затем перенести его на другой компьютер, под другую операционную систему, то вдруг он откроется? Нет, не откроется. Вернее откроется, но его содержимое будет полностью нечитабельным. Зашифровано же.

Попытка открыть зашифрованный файл с текстом, записанный на флешку.

В целом, пользоваться EFS можно, а в некоторых случаях даже нужно. Поэтому если вы работаете под Windows 10 начиная с редакции Pro и выше, оцените риски доступа к вашему ПК или ноутбуку посторонних и смогут ли они получить ваши конфиденциальные файлы. Может быть, что-то стоит уже зашифровать сегодня?

Источник: https://blog.kvv213.com/2018/01/zashhishhaem-konfidentsial-ny-e-fajly-v-win10-pri-pomoshhi-shifrovannoj-fajlovoj-sistemy-efs/

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.