16.4.2 Реализация криптографии. Сетевые протоколы обычно организованы по уровням, причем каждый уровень выступает в качестве клиента нижележащего. То есть, когда один протокол генерирует сообщение для отправки его одноранговому узлу протокола на другой машине, он передает свое сообщение протоколу ниже его в стеке сетевых протоколов для доставки своему одноранговому узлу на этом компьютере. Например, в IP-сети TCP (протокол транспортного уровня) действует как клиент IP (протокол сетевого уровня): TCP-пакеты передаются на IP для доставки на IP-узел на другом конце соединения, IP инкапсулирует пакет TCP в IP-пакет, который он аналогичным образом передает на канальный уровень для передачи по сети своему партнеру на конечном компьютере. Затем этот узел IP доставляет пакет TCP до узла TCP на этом компьютере. Семь таких уровней включены в модель OSI, упомянутые ранее и подробно описанные в разделе 19.3.2. Криптография может быть вставлена практически в любой слой стеков сетевых протоколов. TLS (раздел 16.4.3), например, обеспечивает безопасность на транспортном уровне. Безопасность на уровне сети, как правило, соответствует стандарту IPSec, который определяет форматы пакетов IP, которые позволяют вставлять аутентификаторы и шифровать содержимое пакетов. IPSec использует симметричное шифрование и использует протокол обмена ключами Internet (Internet Key Exchange - IKE) для обмена ключами. IKE основан на шифровании с открытым ключом. IPSec широко используется в качестве основы для виртуальных частных сетей (virtual private networks - VPN), в которых весь трафик между двумя конечными точками IPSec шифруется, чтобы сделать частную сеть из той, которая в противном случае была бы общедоступной. Многочисленные протоколы также были разработаны для использования приложениями, такими как PGP для расшифровки электронной почты; в схеме такого типа сами приложения должны быть закодированы для обеспечения безопасности.
Где лучше всего разместить криптографическую защиту в стеке протоколов? В общем, нет неопределенности в ответе. С одной стороны, больше протоколов может быть использовано для защиты, размещенной ниже в стеке. Например, поскольку IP-пакеты инкапсулируют TCP-пакеты, шифрование IP-пакетов (например, с использованием IPSec) также скрывает содержимое инкапсулированных TCP-пакетов. Аналогично, аутентификаторы в IP-пакетах обнаруживают изменение содержащейся информации заголовка TCP. С другой стороны, защита на нижних уровнях в стеке протоколов может дать недостаточную защиту протоколам более высокого уровня. Например, сервер приложений, который принимает соединения, зашифрованные с помощью IPSec, может иметь возможность аутентифицировать клиентские компьютеры, от которых получаются запросы. Однако для аутентификации пользователя на клиентском компьютере серверу может понадобиться использовать протокол уровня приложения - пользователь может требовать ввода типа пароля. Также следует учитывать проблему электронного письма. Электронная почта, доставляемая по стандартному SMTP-протоколу, хранится и пересылается, часто несколько раз, перед доставкой. Каждая из этих передач может проходить через безопасную или незащищенную сеть. Для обеспечения безопасности электронной почты, сообщение электронной почты должно быть зашифровано, чтобы его безопасность не зависела от транспорта, который его переносит. К сожалению, как и многие другие инструменты, шифрование может использоваться не только для «добра», но и для «зла». Например, описанные ранее атаки вымогателей основаны на шифровании. Как уже упоминалось, злоумышленники шифруют информацию в целевой системе и делают ее недоступной для владельца. Идея состоит в том, чтобы заставить владельца транзакции получить ключ, необходимый для расшифровки данных. Предотвращение таких атак принимает форму повышения безопасности системы и сети, а также плана резервного копирования, позволяющего восстановить содержимое файлов без ключа.
Достарыңызбен бөлісу: |