Шифрование с открытыми ключами отличается от систем с секретными ключами несколькими моментами. Во-первых, в системе с открытыми ключами применяются два ключа – открытый, который каждый может использовать (иногда такой ключ называют публичным), и секретный, известный только отправителю сообщения. Отправитель использует секретный ключ для шифрования сообщения (как и в случае DES). Получатель, располагая открытым ключом отправителя, может впоследствии расшифровать сообщение.
В подобной схеме открытый ключ позволяет проверить подлинность секретного ключа отправителя. Тем самым более строго доказывается подлинность самого отправителя. Наиболее распространенной реализацией схемы шифрования с открытыми ключами является система RSA. Она использована и в стандарте Интернета на конфиденциальную почту (РЕМ).
На целостность системной информации влияют многочисленные программно-технические и процедурные механизмы. Традиционные средства управления доступом обеспечивают контроль над тем, кто имеет доступ к системной информации. Однако не всегда эти механизмы сами по себе достаточны для обеспечения требуемого уровня целостности. Рассмотрим некоторые дополнительные средства:
В качестве простейшего средства контроля целостности можно использовать утилиту, которая подсчитывает контрольные суммы для системных файлов и сравнивает их с предыдущими известными значениями. В случае совпадения файлы, вероятно, не изменились; при несовпадении можно утверждать, что кто-то изменил их некоторым неизвестным способом.
Оборотной стороной простоты и легкости реализации является ненадежность механизма контрольного суммирования. Целенаправленный злоумышленник без труда добавит в файл несколько символов и получит требуемое значение суммы.
Особый тип контрольных сумм, называемый циклическим контролем (Cyclic Redundancy Check, CRC), обладает гораздо большей надежностью. Его реализация лишь немногим сложнее, зато обеспечивается более высокая степень контроля. Тем не менее и он может не устоять перед злоумышленником.
Контрольные суммы можно использовать для обнаружения фактов изменения информации, однако они не обеспечивают активной защиты от внесения изменений. По этой причине следует применять другие механизмы, такие, как управление доступом и криптография.
Криптографические контрольные суммы (называемые также имитовставками) вычисляются следующим образом. Файл делится на порции, для каждой из них подсчитывается контрольная сумма (CRC), а затем эти частичные суммы складываются. При подходящей реализации данный метод гарантирует практически стопроцентное обнаружение изменений файлов, несмотря на возможное противодействие злоумышленника. Недостаток метода состоит в том, что он требует значительных вычислительных ресурсов, так что его разумно применять лишь тогда, когда требуется максимально возможный контроль целостности.
Другой сходный механизм, называемый односторонней хеш-функцией (или кодом обнаружения манипуляций – Manipulation Detection Code, MDC), может быть использован также для уникальной идентификации файлов. Идея состоит в том, что никакие два разных исходных файла не дадут одинаковых результатов, так что при модификации файла хеш-функция изменит значение. Односторонние хеш-функции допускают эффективную реализацию на самых разных системах, что превращает стопроцентное обнаружение изменений файлов в реальность. (Одним из примеров эффективной односторонней хеш-функции является Snefru, доступная по USENET и Интернету.)
Заметим, что помимо обсуждаемых имеются и другие механизмы обеспечения целостности, такие, как совместный контроль со стороны двух лиц и процедуры проверки целостности. К сожалению, их рассмотрение выходит за рамки данного документа.