Научная статья на тему 'Криптографическая защита цифровых носителей информации'

Криптографическая защита цифровых носителей информации Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
579
142
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ / АУТЕНТИФИЦИРОВАННОЕ ШИФРОВАНИЕ / ШИФРУЮЩАЯ ФАЙЛОВАЯ СИСТЕМА / ПОЛНОДИСКОВОЕ ШИФРОВАНИЕ / АППАРАТНОЕ ШИФРОВАНИЕ / CRYPTOGRAPHIC PROTECTION OF INFORMATION / AUTHENTICATED ENCRYPTION / ENCRYPTING FILE SYSTEM / FULL DISK ENCRYPTION / HARDWARE ENCRYPTION

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Васильева Ирина Николаевна

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

CRYPTOGRAPHIC PROTECTION OF DIGITAL STORAGES

The article covers topical issues of ensuring the security of information stored on digital mediums. The main trends in the development of cryptographic protection methods, the features of existing implementations of protection tools for storages in Windows and Linux systems are considered, practical recommendations on their use are given.

Текст научной работы на тему «Криптографическая защита цифровых носителей информации»

УДК 004.056.5

КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ЦИФРОВЫХ НОСИТЕЛЕЙ

ИНФОРМАЦИИ

И.Н. Васильева1

Санкт-Петербургский государственный экономический университет (СПбГЭУ),

191023, Санкт-Петербург, ул. Садовая, д. 21

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

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

CRYPTOGRAPHIC PROTECTION OF DIGITAL STORAGES

I.N.Vasilyeva

St. Petersburg state University of Economics (St. Petersburg state University),

191023, Saint-Petersburg, Sadovaya street, 21

The article covers topical issues of ensuring the security of information stored on digital mediums. The main trends in the development of cryptographic protection methods, the features of existing implementations of protection tools for storages in Windows and Linux systems are considered, practical recommendations on their use are given.

Keywords: cryptographic protection of information, authenticated encryption, encrypting file system, full disk encryption, hardware encryption.

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

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

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

- конфиденциальности хранимых данных;

- контроля целостности хранимой информации;

- возможности восстановления случайно удаленной, модифицированной или утраченной в результате сбоев информации;

- гарантированного уничтожения информации, в том числе и экстренного.

Рассмотрим основные подходы к решению данных задач.

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

- шифрование всего носителя;

- шифрование на уровне файловой системы;

- высокоуровневое шифрование (поверх уровня файловой системы).

1. Шифрование всего носителя - полнодисковое шифрование (FDE, Full Disk Encryption), которое может быть реализовано как на аппаратном, так и на программном уровне. Полнодисковое шифрование предназначено для защиты от оффлайновых атак, когда доступ к носителю осуществляется при загрузке с другого экземпляра операционной системы (ОС) или носитель вообще физически подключается к другому компьютеру. Такая ситуация возникает, если нарушитель может получить физический доступ к выключенному устройству, например, при его краже или утере, а также в случае сдачи устройства для замены по гарантии, для ремонта, на таможенный досмотр и т.п. При этом традиционные методы управления доступом не работают. В то же время шифрование не позволит нарушителю извлечь ценную информацию с носителя.

Васильева Ирина Николаевна - кандидат физико-математических наук, доцент, тел. +7(911)848-81-91, e-mail: i_vasy@mail.ru

Аппаратное шифрование реализуется на уровне контроллера устройства, а значит, является полностью прозрачным для программного обеспечения, в том числе и системного. Поэтому устройства с поддержкой аппаратного шифрования могут работать с любой ОС, для которой производитель предоставил драйвер устройства. Поддержка шифрования включена в стандарт ATA (Trusted Computing feature -ATA/ATAPI-8), большинство производителей самошифруемых дисков (SED, self-encrypting drive), реализующих шифрование на уровне встроенного контроллера, придерживаются спецификации Opal [1] от Trusted Computing Group с использованием шифра AES. За реализацию конкретного режима шифрования, процедур управления ключами и обработку аппаратных ошибок отвечает сам производитель, что приводит к широкому использованию проприетарных форматов и протоколов. В совокупности с недоступностью технической документации, касающейся таких реализаций, это означает практически полное отсутствие контроля функции аппаратного шифрования со стороны ОС или пользователя.

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

Полнодисковое шифрование может быть реализовано программно на уровне ядра ОС, то есть уровнем ниже файловой системы, что позволяет файловым системам работать с зашифрованным диском абсолютно прозрачно. В то же время будут утрачены возможности оптимизации работы с SSD-накопителями за счет использования файловых систем, специально для этого предназначенных [2], таких как JFFS2, YAFFS и др. Примером реализации полнодискового шифрования для ОС Windows является криптографическое средство BitLocker [3, с.109-124]. В операционных системах, построенных на базе Linux ядра (например, в ОС Android), доступен криптографический модуль dm-crypt, обеспечивающий прозрачное шифрование носителя информации. Сами Linux системы поддерживают стандарт (протокол) шифрования блочного устройства LUKS (Linux Unified Key Setup) [4]. LUKS-шифрование реализуется утилитой cryptsetup и использует модуль ядра dm-crypt. Cryptsetup также поддерживает отображение зашифрованных разделов

TrueCrypt и VeraCrypt. В Linux системах можно шифровать только чистые диски, так как все данные при полнодисковом шифровании носителя уничтожаются.

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

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

Другой особенностью полнодискового шифрования является полная доступность зашифрованной информации после разблокировки носителя. Как только зашифрованный диск был разблокирован, ключи шифрования помещаются в оперативную память компьютера, что делает их потенциально уязвимыми для компрометации. Так, снятие дампа оперативной памяти позволяет нарушителю получить доступ к содержимому зашифрованного диска [3, с.109-124].

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

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

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

В Windows системах такой тип шифрования реализуется шифрующей файловой системой EFS, представляющей собой надстройку над NTFS [3, с.109-124]. Работа с файлом для зашифровавшего его пользователя реализуется полностью прозрачно, другие же пользователи получат отказ в доступе при попытке открыть зашифрованный файл. Шифрование папки неспецифично и означает лишь, что любые помещенные в папку файлы будут шифроваться от лица текущего пользователя. Шифрование системных файлов недоступно.

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

В ОС Linux поддержка шифрования на уровне файловых систем введена сравнительно недавно - начиная с версии ядра 4.1 и реализуется fscrypt — библиотекой, в которую могут

подключаться файловые системы для поддержки прозрачного шифрования файлов и каталогов. С версии Linux ядра 4.1 fscrypt интегрирована в файловую систему ext4, F2FS и UBIFS поддерживают шифрование с версии ядра 4.2 и 4.10 соответственно. Как правило, возможности шифрования используются для защиты домашней папки пользователя. Встроенное шифрование ext4 осуществляется с помощью утилиты e4crypt, входящей в пакет e2fsprogs. Ext4 запрещает шифрование каталога /root. Не существует методов снятия шифрования с зашифрованного каталога.

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

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

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

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

3. Высокоуровневое шифрование (поверх уровня файловой системы) не зависит от существующей файловой системы. Оно более ресурсоемко по сравнению с низкоуровневыми

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

Еще одним инструментом, внешне схожим с полнодисковым шифрованием, но реализуемым, как правило, поверх файловой системы, является создание криптоконтейнеров. По сути, криптоконтейнер представляет собой файл, который может быть подключен (смонтирован) как виртуальный раздел со своей файловой системой. После открытия криптокон-тейнера в него можно записывать файлы, для которых будет обеспечиваться прозрачное шифрование. Существует множество утилит, позволяющих создавать криптоконтейнеры, наиболее известными из которых являются PGP, TrueCrypt и VeraCrypt, а также BitLocker To Go, используемый для шифрования разделов с файловой системой, отличной от NTFS. Утилита LUKS-шифрования cryptsetup поддерживает работу и с файлами (криптоконтейнерами). Шифрование «в облаке» также основано на создании криптоконтейнеров в облачных хранилищах.

Хранимая на диске информация может подвергнуться неконтролируемому изменению вследствие ряда причин - в результате различных ошибок и сбоев, в том числе и аппаратных, а также как следствие преднамеренного ее искажения. Поэтому еще одной важной задачей обеспечения безопасности цифровых носителей является контроль целостности хранимых данных. Целью такого контроля является локализация подвергшихся изменению данных, возможно, с последующим их восстановлением. Основным механизмом контроля целостности является расчет и дальнейшая сверка значений контрольных сумм (CRC, хэш-кодов), криптографических контрольных сумм, зависящих от значения секретного ключа, - кода аутентификации MAC, HMAC, либо цифровой подписи.

Данная задача решается обычно на прикладном уровне, а также на уровне файловой системы. Управление поврежденными блоками на физическом уровне осуществляется контроллером устройства хранения данных. Современные ОС имеют встроенные средства контроля и защиты от изменений основных системных файлов. Контроль целостности произвольных объектов файловой системы, содержащих критические пользовательские данные, может быть осуществлен с помощью средств защиты информации, таких как Secret Net, Dal-

las Lock, Aura и т.п., а также встроенными средствами некоторых файловых систем (BtrFS, ZFS). Вместе с тем, механизм контрольных сумм не обеспечивает защиты от преднамеренного изменения данных (в частности, в ходе оффлайновых атак), поскольку нарушитель может осуществить подмену как самих данных, так и значения соответствующих контрольных сумм. Для решения этой проблемы требуется использование криптографических контрольных сумм, значения которых невозможно рассчитать без знания секретной информации (ключа), - кодов аутентификации MAC, представляющих собой особые режимы работы блочных шифров, либо HMAC, совмещающих использование хэш-функций и ключевой информации. Требование одновременного обеспечения конфиденциальности и целостности защищаемой информации приводит к необходимости использования аутентифицированного шифрования (Authenticated Encryption, AE).

На практике аутентифицированное шифрование хранимых данных остается экспериментальной функцией. Так, стандарт полнодискового шифрования LUKS2 поддерживает как аутентифицированное шифрование, так и обычный контроль целостности с помощью контрольных сумм [6]. Эти функции реализуется модулем ядра dm-integrity, поддержка которого включена в ядро Linux с версии 4.12. Вторая версия утилиты сryptsetup [7] по умолчанию использует формат LUKS1, но реализует и новые функции LUKS2. Аутентифицированное шифрование сryptsetup не устанавливает шифрование для журнала dm-integrity, что позволяет нарушителю воспользоваться его информацией.

Инструмент geli ОС FreeBSD поддерживает наряду с полнодисковым шифрованием (в последних версиях ОС по умолчанию используется AES-XTS), и аутентифицированное шифрование. При этом код аутентификации рассчитывается для блока данных целиком с использованием конструкции HMAC (поддерживаются хэш-функции SHA256/ 384, 512 и другие). При этом накладные расходы на хранение криптографической контрольной суммы для HMAC-SHA256 при размере сектора 4096 бит составляют порядка 11% доступного объема диска [8].

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

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

Следует также отметить возможность обеспечения быстрого прекращения доступа к данным с помощью инструментов полнодискового шифрования. В экстренных случаях полнодисковое шифрование позволяет пресечь дальнейший доступ к информации на зашифрованном носителе практически мгновенно - для этого достаточно лишь очистить поля ключей шифрования в области метаинформации диска. Конечно, ключи могут быть депонированы в других местах. Например, BitLocker по умолчанию сохраняет копии ключей в «облаке» OneDrive учетной записи Microsoft (если пользователь зарегистрировал учетную запись в облаке Microsoft) и в хранилище Active Directory (если шифрование диска производилось на компьютере, включенном в домен Microsoft). Кроме того, при включении BitLocker создается ключ восстановления, который может быть сохранен пользователем в файле на съемном носителе или распечатан на бумажном носителе. Отказ от создания ключа восстановления не предусмотрен.

В Linux системах создание резервных копий ключа необязательно. Более того, в некоторых диалектах Linux процесс уничтожения ключевой информации доступен на пользовательском уровне. Так, например, начиная с версии 1.0.6 в Kali Linux, для LUKS шифрования добавлена опция самоуничтожения nuke. Команда cryptsetup luksAddNuke позволяет задать как пароль для шифрования/ разблокировки зашифрованного диска, так и пароль, при вводе которого содержимое всех ключевых полей будет перезаписано случайными данными. Быстрое уничтожение доступа к носителю, зашифрованному с помощью geli, возможно и в FreeBSD [9].

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

уничтожении ключа шифрования. Команду Secure Erase можно выполнить с помощью стандартной Linux утилиты hdparm.

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

Литература

1. Storage Work Group Storage Security Subsystem Class: Opal. Specification, 01.08.2015 [электронный ресурс]. URL: https://trustedcomputinggroup. org/resource/storage-work-group-storage-security-subsystem-class-opal/ (дата обращения: 15.03.2019).

2. Чернокнижный Г.М., Васильева И.Н. Операционные системы: учебное пособие. - СПб.: Изд-во СПбГЭУ, 2018. - 176 с.

3. Информационная безопасность цифрового пространства: монография / под ред. Е.В. Стельмашо-нок, И.Н. Васильевой. - СПб.: Изд-во СПбГЭУ, 2019. - 155 c.

4. Clemens Fruhwirth. LUKS1 On-Disk Format Specification. Version 1.2.3, 20.01.2018 [электронный ресурс]. URL: https://mirrors.edge.kernel.org/pub/linux/utils/cryptsetu p/LUKS_docs/on-disk-format.pdf (дата обращения: 15.03.2019).

5. Tilo Müller, Tobias Latzo, Felix C. Freiling. Hardware-based Full Disk Encryption (In)Security [электронный ресурс]. URL: https://www.cs1.tf.fau.de/ re-search/system-security-and-software-protection-group/sed-insecurity/ (дата обращения: 15.03.2019).

6. 6 Milan Broz. LUKS2 On-Disk Format Specification. Version 1.0.0 [электронный ресурс]. URL: https://gitlab.com/cryptsetup/cryptsetup/blob/master/doc s/on-disk-format-luks2.pdf (дата обращения: 15.03.2019).

7. Cryptsetup 2.0.0 Release Notes [электронный ресурс]. URL: https://mirrors.edge.kernel.org/pub /linux/utils/cryptsetup/v2.0/v2.0.0-ReleaseNotes (дата обращения: 15.03.2019).

8. GELI(8)// FreeBSD System Manager's Manual [электронный ресурс]. URL: https://www.freebsd.org/cgi/man.cgi ?que-ry=geli&sektion= 8&manpath=freebsd-release- ports (дата обращения: 15.03.2019).

9. FreeBSD: GELI: создание защищенного и быст-роуничтожимого файлового хранилища [электронный ресурс]. URL: https ://karashchuk. com /FreeBSD/geli/ (дата обращения: 15.03.2019)

i Надоели баннеры? Вы всегда можете отключить рекламу.