Илья Медведовский - Атака на Internet
Рис. 7.3. Сетевая топология «звезда»
...Следует заметить, что в этом случае нарушается один из принципов построения Internet: сеть должна функционировать при выходе из строя любой ее части.
Плюсы распределенной ВС с выделенными каналами связи между объектами состоят в следующем:
• передача сообщений осуществляется напрямую между источником и приемником, минуя остальные объекты системы. В такой системе при отсутствии доступа к объектам, через которые осуществляется передача сообщения, не существует программной возможности анализа сетевого трафика;
• имеется возможность идентифицировать объекты распределенной системы на канальном уровне по их адресам без использования специальных криптоалгоритмов шифрования трафика, поскольку система построена так, что по данному выделенному каналу осуществима связь только с одним определенным объектом. Появление в такой распределенной системе ложного объекта невозможно без аппаратного вмешательства (подключение дополнительного устройства к каналу связи);
• система с выделенными каналами связи – это система, в которой отсутствует неопределенность с информацией о ее объектах. Каждый объект в такой системе однозначно идентифицируется и обладает полной информацией о других объектах системы.
Но у РВС с выделенными каналами есть и минусы:
• сложность реализации и высокие затраты на создание системы;
• ограниченное число объектов системы (зависит от числа входов у коммутатора);
• сложность внесения в систему нового объекта.
Очевидно также, что создание глобальной РВС с выделенными каналами на сегодняшний день невозможно.
Анализируя плюсы и минусы использования выделенных каналов для построения защищенных систем взаимодействия объектов РВС, можно сделать вывод, что создание распределенных систем только с выделенными каналами или только с использованием широковещательной среды передачи неэффективно. Поэтому при построении распределенных вычислительных систем с разветвленной топологией и большим числом объектов представляется правильным использование комбинированных сетевых топологий для создания «гибких» распределенных систем. Чтобы обеспечить связь между объектами большой степени значимости, можно использовать выделенный канал. Связь менее значимых объектов системы может осуществляться с применением комбинации общей шины и выделенного канала.
Следует иметь в виду, что выбор безопасной топологии РВС является необходимым, но отнюдь не достаточным условием для создания защищенных систем связи между объектами распределенных ВС.
Итак, сформулируем первый принцип защищенного взаимодействия объектов РВС.
...Наилучшее с точки зрения безопасности взаимодействие объектов в распределенной ВС возможно только по физически выделенному каналу.
Виртуальный канал связи
Рассмотрим вопрос создания виртуальных каналов как средства обеспечения дополнительной идентификации и аутентификации объектов в распределенной ВС. Ранее рассматривались наиболее безопасные варианты физического построения сети, однако подобных мер явно недостаточно для создания защищенного взаимодействия удаленных объектов, так как, во-первых, обеспечить взаимодействие всех объектов по выделенному каналу на практике очень сложно и, во-вторых, нельзя не предусмотреть вариант физического подключения к каналу. Следовательно, разработчик защищенной РВС должен исходить из принципа возможного перехвата передаваемых по каналу связи сообщений.
...При разработке принципов защищенного взаимодействия объектов распределенной ВС необходимо исходить из того, что все сообщения, передаваемые по каналу связи, могут быть перехвачены, но это не должно нарушить безопасность системы в целом.
Таким образом, данное утверждение накладывает на разработчика следующие требования: необходимо ввести дополнительные средства идентификации объектов в распределенной ВС и установить криптозащиту передаваемых по каналу связи сообщений.
Ранее уже отмечалось, что идентификация объектов РВС в отсутствии статической ключевой информации возможна лишь при взаимодействии объектов с использованием виртуального канала. В дальнейшем рассматривается только распределенная ВС, у объектов которой отсутствует ключевая информация для связи друг с другом, – в подобной системе решить задачу безопасного взаимодействия несколько сложнее. Следовательно, чтобы ликвидировать причину успеха удаленных атак, а также исходя из только что сформулированного утверждения, необходимо руководствоваться правилом, регламентирующим осуществление всех взаимодействий в ВС по виртуальному каналу связи.
...Любое, сколь угодно критичное взаимодействие двух объектов в распределенной ВС должно проходить по виртуальному каналу связи.
Рассмотрим, как в РВС виртуальный канал связи (ВК) может использоваться для надежной, независимой от топологии и физической организации системы идентификации удаленных объектов.
Для этого при создании ВК могут использоваться криптоалгоритмы с открытым ключом (например, недавно принятый в Internet стандарт защиты ВК, называемый Secure Socket Layer (SSL). Данные криптоалгоритмы основаны на результатах исследований, полученных в 70-х годах У. Диффи. Он ввел понятие односторонней функции с потайным входом. Это не просто вычисляемая в одну сторону функция, обращение которой невозможно, она содержит trapdoor (потайной вход), позволяющий вычислять обратную функцию лицу, знающему секретный ключ. Суть криптографии с открытым ключом (или двухключевой криптографии) в том, что ключи, имеющиеся в криптосистеме, входят в нее парами, и каждая пара удовлетворяет следующим двум свойствам:
1. Текст, зашифрованный на одном ключе, может быть дешифрован на другом.
2. Знание одного ключа не позволяет вычислить другой.
Поэтому один из ключей может быть опубликован. При открытом ключе шифрования и секретном ключе дешифрования получается система шифрования с открытым ключом. Каждый пользователь сети может зашифровать сообщение с помощью открытого ключа, а расшифровать его сможет только владелец секретного ключа. При опубликовании ключа дешифрования получается система цифровой подписи. Здесь только владелец секретного ключа создания подписи может правильно зашифровать текст (то есть подписать его), а проверить подпись (дешифровать текст) может любой на основании опубликованного ключа проверки подписи.
В 1976 г. У. Диффи и М. Хеллман предложили следующий метод открытого распределения ключей. Пусть два объекта A и B условились о выборе в качестве общей начальной информации большого простого числа p и примитивного корня степени p – 1 из 1 в поле вычетов по модулю p.
Тогда эти пользователи действуют в соответствии с нижеприведенным протоколом (рис. 7.4):
Рис. 7.4. Алгоритм открытого распределения ключей
1. A вырабатывает случайное число x, вычисляет число ax (mod p) и посылает его B.
2. B вырабатывает случайное число у, вычисляет число ay (mod p) и посылает его A.
3. Затем A и B возводят полученное число в степень со своим показателем и получают число axy (mod p).
Это число и является сеансовым ключом для одноключевого алгоритма, например DES. Для раскрытия этого ключа криптоаналитику необходимо по известным ax (mod p) и ay (mod p) найти axy (mod p), то есть x или у. Нахождение числа x по его экспоненте ax (mod p) называется задачей дискретного логарифмирования в простом поле. Эта задача труднорешаема, и поэтому полученный ключ может быть стойким [7].
Особенность данного криптоалгоритма состоит в том, что перехват по каналу связи пересылаемых в процессе создания виртуального канала сообщений ax (mod p) и ay (mod p) не позволит атакующему получить конечный ключ шифрования axy (mod p). Далее этот ключ должен использоваться, во-первых, для цифровой подписи сообщений и, во-вторых, для их криптозащиты. Цифровая подпись сообщений позволяет надежно идентифицировать объект распределенной ВС и виртуальный канал. В завершение сформулируем следующий принцип защищенного взаимодействия объектов РВС....Чтобы обеспечить надежную идентификацию объектов распределенной ВС при создании виртуального канала, необходимо использовать криптоалгоритмы с открытым ключом.
Необходимо обеспечить цифровую подпись сообщений.
Необходимо обеспечить возможность шифрования сообщений.
Контроль за маршрутом сообщения
Как известно, каждый объект распределенной ВС должен обладать адресом, уникально его идентифицирующим. Для того чтобы сообщение от одного объекта было передано на другой объект системы, оно должно пройти через цепь маршрутизаторов, задача которых – проанализировать указанный в сообщении адрес назначения, выбрать оптимальный маршрут и, исходя из него, переправить пакет на следующий маршрутизатор или непосредственно абоненту, если он напрямую подключен к данному узлу. Таким образом, маршрут до объекта определяется цепочкой узлов, пройденных сообщением. Как указывалось выше, маршрут сообщения может являться информацией, с точностью до подсети аутентифицирующей подлинность адреса субъекта, отославшего сообщение. Очевидно, что перед любой системой связи объектов в РВС встает стандартная проблема проверки подлинности адреса сообщения, пришедшего на объект. Эту задачу, с одной стороны, можно решить, введя дополнительную идентификацию сообщений на другом, более высоком уровне OSI. Так, адресация может осуществляться на сетевом уровне, а дополнительная идентификация, например, – на транспортном. Однако подобное решение не позволит избежать контроля за созданием соединений, потому что дополнительная идентификация абонентов возможна только после создания соединения. В связи с этим разработчикам распределенной ВС можно предложить следующие пути решения проблемы.