Вопрос безопасности связи всегда был одним из важных в сетях телекоммуникаций. В настоящее время в связи с бурным развитием глобальных компьютерных сетей, и в том числе сетей Интернет-телефонии, обеспечение безопасности передачи информации становится еще более актуальным. Разработка мероприятий в области безопасности должна проводиться на основе анализа рисков, определения критически важных ресурсов системы и возможных угроз. Существует несколько основных типов угроз, представляющих наибольшую опасность в сетях IP-телефонии.
-
подмена данных о пользователе. Подмена данных о пользователе означает, что один пользователь сети выдает себя за другого. При этом возникает вероятность несанкционированного доступа к важным функциям системы. Использование механизмов аутентификации и авторизации в сети повышает уверенность в том, что пользователь, с которым устанавливается связь, не является подставным лицом и что ему можно предоставить санкционированный доступ.
-
подслушивание. Во время передачи данных о пользователях (пользовательских идентификаторов и паролей) или частных конфиденциальных данных по незащищенным каналам эти данные можно подслушать и впоследствии злоупотреблять ими. Методы шифровки данных снижают вероятность этой угрозы.
-
манипулирование данными. Данные, которые передаются по каналам связи, в принципе можно изменить. Во многих методах шифрования используется технология защиты целостности данных, предотвращающая их несанкционированное изменение.
-
отказ от обслуживания (Denial of Service — DoS). Отказ от обслуживания (DoS) является разновидностью хакерской атаки, в результате которой важные системы становятся недоступными. Это достигается путем переполнения системы ненужным трафиком, на обработку которого уходят все ресурсы системной памяти и процессора. Система связи должна иметь средства для распознавания подобных атак и ограничения их воздействия на сеть.
Базовыми элементами в области безопасности являются аутентификация, целостность и активная проверка. Аутентификация призвана предотвратить угрозу обезличивания и несанкционированного доступа к ресурсам и данным. Хотя авторизация не всегда включает в свой состав аутентификацию, но чаще всего одно обязательно подразумевает другое. Целостность обеспечивает защиту от подслушивания и манипулирования данными, поддерживая конфиденциальность и неизменность передаваемой информации. И, наконец, активная проверка означает проверку правильности реализации элементов технологии безопасности и помогает обнаруживать несанкционированное проникновение в сеть и атаки типа DоS.
Методы криптографической защиты информации
Основой любой защищенной связи является криптография. Криптографией называется технология составления и расшифровки закодированных сообщений. Кроме того, криптография является важной составляющей для механизмов аутентификации, целостности и конфиденциальности. Аутентификация является средством подтверждения личности отправителя или получателя информации. Целостность означает, что данные не были изменены, а конфиденциальность создает ситуацию, при которой данные не может понять никто, кроме их отправителя и получателя. Обычно криптографические механизмы существуют в виде алгоритма (математической функции) и секретной величины (ключа). Алгоритмы широко известны, в секрете необходимо держать только криптографические ключи. Причем чем больше битов в таком ключе, тем менее он уязвим.
В системах обеспечения безопасности используются три основных криптографических метода:
-
симметричное шифрование
-
асимметричное шифрование
-
односторонние хэш-функции
Все существующие технологии аутентификации, целостности и конфиденциальности созданы на основе именно этих трех методов. Например, цифровые подписи можно представить в виде сочетания асимметричного шифрования с алгоритмом односторонней хэш-функции для поддержки аутентификации и целостности данных.
Симметричное шифрование, которое часто называют шифрованием с помощью секретных ключей, в основном используется для обеспечения конфиденциальности данных. При этом два пользователя должны совместно выбрать единый математический алгоритм, который будет использоваться для шифрования и расшифровки данных. Кроме того, им нужно выбрать общий ключ (секретный ключ), который будет использоваться с принятым ими алгоритмом шифрования/расшифровки.
В настоящее время широко используются алгоритмы секретных ключей типа Data Encryption Standard (DES), 3DES (или «тройной DES») и International Data Encryption Algorithm (IDEA). Эти алгоритмы шифруют сообщения блоками по 64 бита. Если объем сообщения превышает 64 бита (как это обычно и бывает), необходимо разбить его на блоки по 64 бита в каждом, а затем каким-то образом свести их воедино. Такое объединение, как правило, происходит одним из следующих четырех методов: электронной кодовой книги (ЕСВ), цепочки зашифрованных блоков (СВС), х-битовой зашифрованной обратной связи (CFB-x) или выходной обратной связи (OFB).
Шифрование с помощью секретного ключа чаще всего используется для поддержки конфиденциальности данных и очень эффективно реализуется с помощью неизменяемых «вшитых» программ (firmware). Этот метод можно использовать для аутентификации и поддержания целостности данных, но метод цифровой подписи является более эффективным.
Асимметричное шифрование часто называют шифрованием с помощью общего ключа, при котором используются разные, но взаимно дополняющие друг друга ключи и алгоритмы шифрования и расшифровки. Этот механизм полагается на два взаимосвязанных ключа: общего ключа и частного ключа. Наиболее типичные примеры использования алгоритмов общих ключей:
-
обеспечение конфиденциальности данных
-
аутентификация отправителя
-
безопасное получение общих ключей для совместного использования
Важным аспектом асимметричного шифрования является то, что частный ключ должен храниться в тайне. Если частный ключ будет раскрыт, то человек, знающий этот ключ, сможет выступать от вашего имени, получать ваши сообщения и отправлять сообщения так, будто это сделали вы.
Механизмы генерирования пар общих/частных ключей являются достаточно сложными, но в результате получаются пары очень больших случайных чисел, одно из которых становится общим ключом, а другое — частным. Генерирование таких чисел требует больших процессорных мощностей, поскольку эти числа, а также их произведения должны отвечать строгим математическим критериям. Однако этот процесс генерирования абсолютно необходим для обеспечения уникальности каждой пары общих/частных ключей. Алгоритмы шифрования с помощью общих ключей редко используются для поддержки конфиденциальности данных из-за ограничений производительности. Вместо этого их часто используют в приложениях, где аутентификация проводится с помощью цифровой подписи и управления ключами. Среди наиболее известных алгоритмов общих ключей можно назвать алгоритмы RSA и ElGamal.
Безопасной хэш-функцией называется функция, которую легко рассчитать, но обратное восстановление которой требует непропорционально больших усилий. Входящее сообщение пропускается через математическую функцию (хэш-функцию), и в результате на выходе получают некую последовательность битов. Эта последовательность называется «хэш» (или «результат обработки сообщения»). Этот процесс невозможно восстановить.
Хэш-функция принимает сообщение любой длины и выдает на выходе хэш фиксированной длины. Обычные хэш-функции включают:
-
алгоритм Message Digest 4 (MD4)
-
алгоритм Message Digest 5 (MD5)
-
алгоритм безопасного хэша (Secure Hash Algorithm — SHA)
Технология шифрования часто используется в приложениях, связанных с управлением ключами и аутентификацией. Например, алгоритм Диффи-Хеллмана позволяет двум сторонам создать общий для них секретный ключ, известный только им двоим, несмотря на то, что связь между ними осуществляется по незащищенному каналу. Затем этот секретный ключ используется для шифрования данных с помощью алгоритма секретного ключа. Важно отметить, что на сегодня пока не создано средств для определения автора такого ключа, поэтому обмен сообщениями, зашифрованными этим способом, может подвергаться хакерским атакам. Алгоритм Диффи-Хеллмана используется для поддержки конфиденциальности данных, но не используется для аутентификации. Аутентификация в данном случае достигается с помощью цифровой подписи.
Цифровая подпись представляет собой зашифрованный хэш, который добавляется к документу. Она может использоваться для аутентификации отправителя и целостности документа. Цифровые подписи можно создавать с помощью сочетания хэш-функций и криптографии общих ключей.
Сообщение, которое отправляется по каналу связи, состоит из документа и цифровой подписи. На другом конце канала связи сообщение делится на оригинальный документ и цифровую подпись. Так как цифровая подпись была зашифрована частным ключом, то на приемном конце можно провести ее расшифровку с помощью общего ключа. Таким образом, на приемном конце получается расшифрованный хэш. Далее подается текст документа на вход той же функции, которую использовала передающая сторона. Если на выходе получится тот же хэш, который был получен в сообщении, целостность документа и личность отправителя можно считать доказанными.
Цифровым сертификатом называется сообщение с цифровой подписью, которое в настоящее время обычно используется для подтверждения действительности общего ключа. Цифровой сертификат в стандартном формате X.509 включает следующие элементы:
-
номер версии
-
серийный номер сертификата
-
эмитент информации об алгоритме
-
эмитент сертификата
-
даты начала и окончания действия сертификата
-
информация об алгоритме общего ключа субъекта сертификата
-
подпись эмитирующей организации
На практике часто используют совместно шифрование и цифровые сертификаты. Например, маршрутизатор и межсетевой экран имеют по одной паре общих/частных ключей (рис. 8.1). Предположим, что эмитирующей организации (СА) удалось получить сертификаты X.509 для маршрутизатора и межсетевого экрана по защищенным каналам. Далее предположим, что маршрутизатор и межсетевой экран тоже получили копии общего ключа СА по защищенным каналам. Теперь, если на маршрутизаторе имеется трафик, предназначенный для межсетевого экрана, и если маршрутизатор хочет обеспечить аутентификацию и конфиденциальность данных, необходимо предпринять следующие шаги:
-
маршрутизатор отправляет в эмитирующую организацию СА запрос на получение общего ключа межсетевого экрана.
-
СА отправляет ему сертификат межсетевого экрана, зашифрованный частным ключом СА.
-
маршрутизатор расшифровывает сертификат общим ключом СА и получает общий ключ межсетевого экрана.
-
межсетевой экран направляет СА запрос на получение общего ключа маршрутизатора.
-
СА отправляет ему сертификат маршрутизатора, зашифрованный частным ключом СА.
-
межсетевой экран расшифровывает сертификат общим ключом СА и получает общий ключ маршрутизатора.
-
маршрутизатор и межсетевой экран используют алгоритм Диффи-Хеллмана и шифрование с помощью общих ключей для аутентификации.
С помощью секретного ключа, полученного в результате использования алгоритма Диффи-Хеллмана, маршрутизатор и межсетевой экран проводят обмен конфиденциальными данными.
Обеспечение безопасности IP-телефонии на базе VPN
Одним из механизмов обеспечения безопасности IP-телефонии может быть использование виртуальных частных сетей (Virtual Private Network, VPN). Сети VPN создаются, как правило, для решения двух задач. Во-первых, они служат для организации взаимодействия индивидуальных пользователей с удаленной сетью через Интернет, а во-вторых, — «для связи двух сетей». В первом случае, они используются в качестве альтернативы удаленному доступу. Вместо того, чтобы устанавливать соединение с корпоративной средой по междугородной или международной связи, пользователи локально подключаются к Интернет и связываются с сетью компании. Во втором — они часто применяются для организации так называемых виртуальных выделенных линий.
Виртуальная частная сеть (VPN) создается между инициатором туннеля и терминатором туннеля. Обычная маршрутизируемая сеть IP (она не обязательно включает в себя общедоступную сеть Интернет ) определяет маршрут между инициатором и терминатором. Инициатор туннеля инкапсулирует пакеты в новый пакет, содержащий наряду с исходными данными новый заголовок с информацией об отправителе и получателе. Хотя все передаваемые по туннелю пакеты являются пакетами IP, в принципе, инкапсулируемые пакеты могут принадлежать к протоколу любого типа, включая пакеты немаршрутизируемых протоколов, например, NetBEUI. Терминатор туннеля выполняет процесс, обратный инкапсуляции, удаляя новые заголовки и направляя исходный пакет в локальный стек протоколов или адресату в локальной сети.
Сама по себе инкапсуляция никоим образом не повышает конфиденциальности или целостности туннелируемых данных. Конфиденциальность обеспечивается с помощью шифрования. Поскольку методов шифрования данных существует множество, очень важно, чтобы инициатор и терминатор туннеля использовали один и тот же метод. Кроме того, для успешного дешифрования данных они должны иметь возможность обмена ключами. Чтобы туннели создавались только между уполномоченными пользователями, конечные точки требуется идентифицировать. Целостность туннелируемых данных можно обеспечить с помощью некоей формы выборки сообщения или хэш-функции для выявления изменений или удалений.
Для реализации унифицированного способа инкапсуляции трафика третьего уровня (и более высоких уровней) на клиентах и серверах Windows компании Microsoft, Ascend Communications и 3Com разработали туннельный протокол между двумя точками (Pointto-Point Tunneling Protocol, PPTP), представляющий собой расширение протокола PPP. В PPTP не специфицируется конкретный метод шифрования, однако, клиенты удаленного доступа в Windows NT 4.0 и Windows 95 с Dial-Up Networking 1.2 поставляются с версией шифрования DES компании RSA Data Security, получившей название «шифрование двухточечной связи Microsoft» (Microsoft Point-to-Point Encryption, MPPE).
Компания Cisco Systems разработала протокол пересылки на втором уровне модели OSI (Layer-2 Forwarding, L2F), с помощью которой удаленные клиенты могут связаться по каналам провайдера Internet и быть идентифицированы. При этом ISP не нужно осуществлять конфигурацию адресов и выполнять идентификацию. Протокол L2F стал компонентом операционной системы IOS (Internetwork Operating System) компании Cisco и поддерживается во всех выпускаемых ею устройствах межсетевого взаимодействия и удаленного доступа.
Оба этих тесно связанных друг с другом протокола IETF были объединены, и получившийся в результате протокол, включивший лучшее из PPTP и L2F, называется протоколом туннелирования второго уровня (Layer-2 Tunneling Protocol, L2TP). Его поддерживают компании Cisco, Microsoft, 3Com, Ascend и многие другие производители. Как и предшествующие протоколы второго уровня, спецификация L2TP не описывает методы идентификации и шифрования.
Спецификацией IETF, где описаны стандартные методы для всех компонентов VPN, является протокол Internet Protocol Security, или IPSec, — иногда его называют туннелирова-нием третьего уровня (Layer-3 Tunneling). IPSec предусматривает стандартные методы идентификации пользователей или компьютеров при инициации туннеля, стандартные способы использования шифрования конечными точками туннеля, а также стандартные методы обмена и управления ключами шифрования между конечными точками. Этот гибкий стандарт предлагает несколько способов для выполнения каждой задачи. Выбранные методы для одной задачи обычно не зависят от методов реализации других задач. Идентификацию можно выполнять с помощью спецификации IPSec, причем она является обязательным компонентом протокола IPv6.
IPSec может работать совместно с L2TP, в результате эти два протокола обеспечивают более надежную идентификацию, стандартизованное шифрование и целостность данных. Следует отметить, что спецификация IPSec ориентирована на IP и, таким образом, бесполезна для трафика любых других протоколов сетевого уровня. Туннель IPSec между двумя локальными сетями может поддерживать множество индивидуальных каналов передачи данных, в результате чего приложения данного типа получают преимущества с точки зрения масштабирования по сравнению с технологией второго уровня.
Некоторые поставщики VPN используют другой подход под названием «посредники каналов» (circuit proxy), или VPN пятого уровня. Этот метод функционирует над транспортным уровнем и ретранслирует трафик из защищенной сети в общедоступную сеть Internet для каждого сокста в отдельности. (Сокет IP идентифицируется комбинацией TCP-соединения и конкретного порта или заданным портом UDP. Протокол IP не имеет пятого — сеансового — уровня, однако ориентированные на сокеты операции часто называют операциями сеансового уровня.)
Шифрование информации, передаваемой между инициатором и терминатором туннеля, часто осуществляется с помощью защиты транспортного уровня (Transport Layer Security, TLS), ранее протокола защищенных сокетов (Secure Sockets Layer, SSL). Для стандартизации аутентифицированного прохода через брандмауэры IETF определил протокол под названием SOCKS, и в настоящее время SOCKS 5 применяется для стандартизованной реализации посредников каналов.
В SOCKS 5 клиентский компьютер устанавливает аутентифицированный сокет (или сеанс) с сервером, выполняющим роль посредника (proxy). Этот посредник — единственный способ связи через брандмауэр. Посредник, в свою очередь, проводит любые операции, запрашиваемые клиентом. Поскольку посреднику известно о трафике на уровне сокета, он может осуществлять тщательный контроль, например, блокировать конкретные приложения пользователей, если они не имеют необходимых полномочий. Для сравнения, виртуальные частные сети уровня 2 и 3 обычно просто открывают или закрывают канал для всего трафика по аутентифицированному туннелю. Это может представлять проблему, если нет гарантии защиты информации на другом конце туннеля.
Следует отметить на наличие взаимосвязи между брандмауэрами и VPN. Если туннели завершаются на оборудовании провайдера Интернет, то трафик будет передаваться по вашей локальной сети или по линии связи с провайдером Интернет в незащищенном виде. Если конечная точка расположена за брандмауэром, то туннелируемый трафик можно контролировать с помощью средств контроля доступа брандмауэра, но никакой дополнительной защиты при передаче по локальной сети это не даст. В этом случае конечную точку будет связывать с брандмауэром незащищенный канал.
Расположение конечной точки внутри защищаемой брандмауэром зоны обычно означает открытие прохода через брандмауэр (как правило, через конкретный порт TCP). Некоторые компании предпочитают применять реализуемый брандмауэром контроль доступа ко всему трафику, в том числе и к туннелируемому, особенно если другую сторону туннеля представляет пользователь, стратегия защиты которого неизвестна или не внушает доверия. Одно из преимуществ применения тесно интегрированных с брандмауэром продуктов тунне-лирования состоит в том, что можно открывать туннель, применять к нему правила защиты брандмауэра и перенаправлять трафик на конечную точку на конкретном компьютере или в защищаемой брандмауэром подсети.
Как и любая другая вычислительная функция, работа по созданию сетей VPN проводится с помощью программного обеспечения. Между тем программное обеспечение для VPN может выполняться на самых разных аппаратных платформах. Маршрутизаторы или коммутаторы третьего уровня могут поддерживать функции VNP по умолчанию (или в качестве дополнительной возможности, предлагаемой за отдельную плату). Аппаратно и программно реализуемые брандмауэры нередко предусматривают модули VPN со средствами управления трафиком или без них. Некоторые пограничные комбинированные устройства включают в себя маршрутизатор, брандмауэр, средства управления пропускной способностью и функции VPN (а также режим конфигурации). Наконец, ряд чисто программных продуктов выполняется на соответствующих серверах, кэширует страницы Web, реализует функции брандмауэра и VPN.




