Шифрование данных для хранения

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

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

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

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

В [357] перечислены другие проблемы, присущие шифрованию компьютерных данных для хранения:

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

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

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

  • Необходимо долго и надежно хранить ключи.

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

Табл. -4.
Сравнение канального и сквозного шифрований

Канальное шифрование

Сквозное шифрование

Безопасность внутри главных компьютеров

На посылающем компьютере сообщение открыто

На промежуточных узлах сообщение открыто

На посылающем компьютере сообщение зашифровано

На промежуточных узлах сообщение зашифровано

Роль пользователя

Реализуется посылающим компьютером

Невидимо для пользователя

Шифрование выполняет компьютер

Единое средство для всех пользователей

Может быть выполнено аппаратно

Шифруются все сообщения или ни одного

Реализуется посылающим процессом

Шифрование выполняет пользователь

Пользователь должен найти алгоритм

Пользователь выбирает шифрование

Легче выполнить программно

Для каждого сообщения пользователь выбирает, шифровать или нет

Соображения по реализации

Требует одной пары ключей для пары компьютеров

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

Обеспечивает проверку подлинности узлов

Требует одной пары ключей для пары пользователей

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

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

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

Кроме того, вы должны убедиться, что незашифрованный файл удаляется после шифрования (см. раздел 10.9). Дальнейшие подробности и соображения можно найти в [425, 569].