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

Самый надежный метод против шпионажа – шифрование. Когда ключ хранится отдельно от данных, при повторном копировании нужно следить только за сохранением данных. Однако, во-первых, для управления ключами приходится внедрять соответствующую систему, что совсем не просто, а во-вторых, без дешифровки преобразование формата файла становится невозможным. Проблему можно несколько сгладить путем использования стандартизированных форматов, таких как PDF/A, Open Document, UTF-8, JPG (JFIF) или TIFF, но за последние 30 лет, пожалуй, лишь один формат не претерпел никаких изменений — простой текст ASCII. Таким образом, при разработке концепции архивирования следует всегда предусмотреть возможность «защищенного конвертирования». Кроме того, возникновение даже незначительных помех чревато потерей данных: к примеру, если при копировании текста, зашифрованного в режиме сцепления шифруемых блоков (Cipher Block Chaining, CBC), возникает ошибка в двоичном разряде, то весь текст, расположенный после поврежденного бита, при дешифровке предстанет в виде произвольного набора чисел. Так что выбор режима шифрования — очень ответственная задача.

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

ТЕХНИЧЕСКАЯ СТОРОНА ВОПРОСА

Для тех, кто сомневается в том, что через 10 или даже 30 лет современные алгоритмы шифрования вроде AES будут столь же надежны, можно рекомендовать проверенный временем метод – так называемый «одноразовый блокнот» (One-Time-Pad). На базе аппаратного обеспечения он генерирует поток случайных чисел и связывает его с оригиналом посредством побитовой операции «исключающее или» (XOR). Хранить этот набор случайных чисел и зашифрованный текст надо по отдельности. Повторное применение побитовой операции XOR к обоим наборам данных позволяет восстановить текст оригинала. Надежность метода гарантируется, если оба набора хранятся в разных местах и никто не может получить сведения о взаимосвязанных элементах данных. При использовании «одноразового блокнота» защита целостности достигается с помощью контрольной суммы хэшированного кода проверки подлинности сообщения (Hashed Message Authentication Code, HMAC), которую тоже следует хранить отдельно.

Самое большое неудобство заключается в необходимости хранения двойного объема данных, причем утрата или невозможность считывания одного из носителей данных представляет огромный риск. Поэтому шифрование следует выполнять дважды, то есть работать с двумя потоками случайных данных, чтобы в итоге получить четыре набора данных, что еще больше затруднит их администрирование. Наиболее практичный способ — использование классических симметричных методов шифрования, таких как AES. Длина ключа в 128 бит будет приемлема и через 30 лет (об этом позаботятся законы физики). Те, кто опасается новых видов алгебраических атак на AES, могут осуществлять последовательное шифрование с помощью AES и Twofish.

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

«ОБЩИЕ СЕКРЕТЫ»

Вероятно, подобные проблемы проще всего решить с помощью «общих секретов». К примеру, ключ разделяется на 5 «секретов», а для его реконструкции потребуется знание минимум трех из них. Благодаря этому вероятность успешных атак на человека («социальный инжиниринг») можно свести к разумному пределу. Кроме того, таким образом удастся решить критическую проблему текучести кадров (см. Рисунок 1). Ключ (Master Key) шифруется случайным сеансовым ключом (Session Key), и метод общих секретов применяется лишь к нему. Пять сотрудников получают по одному секрету. Если один из них увольняется, то любые трое из числа оставшихся четырех могут реконструировать сеансовый ключ и расшифровать главный ключ. Затем они генерируют новый случайный сеансовый ключ, создают еще пять секретов и зашифровывают Master Key с помощью другого сеансового ключа. При правильном обращении никто никогда не увидит сам ключ Master Key, хотя операции с ним осуществляются.

Рисунок 1. Распределение секретов решает проблему текучести кадров.

ПРОВЕРОЧНЫЕ СУММЫ

Необходимо обеспечить целостность данных и метаданных (к примеру, записей в каталогах) с помощью отдельных проверочных сумм, лучше всего посредством криптографических контрольных сумм с использованием секретных ключей, в частности, HMAC. Это несложно реализовать. Каждая проверочная сумма должна защищать не слишком большие объемы данных, чтобы ограничить потери в случае возможных ошибок в двоичном разряде. Суммы HMAC для особенно важных данных могут рассчитываться и с помощью других ключей, к которым «шифровальщики» не получают доступ. Менее рекомендованы традиционные цифровые подписи и шифрование сеансовых ключей с помощью криптографии с общими ключами (Public Key). Через 30 лет вероятно появление квантовых компьютеров, которые смогут успешно взламывать такую криптографию. Кроме того, рассчитать HMAC гораздо проще, чем создать цифровую подпись.

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

ПРАКТИЧЕСКАЯ СТОРОНА

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

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

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

Рейнхардт Вобст — специалист в области криптографии и ОС UNIX/Linux.