SKIP
Simple Key-Management for Internet Protocol (или SKIP) — протокол, разработанный около 1995 года организацией IETF Security Working Group для обмена ключами шифрования.
SKIP является гибридным протоколом распределения ключей, похожим на SSL, кроме того, он один раз устанавливает долгосрочные ключи, а затем не требует предварительной связи в целях установления или обмена ключами. Таким образом, он не требует никаких дополнительных соединений и постоянной генерации новых ключей.
По нумерации IANA этому протоколу присвоен номер 57.
ИсторияПравить
Протокол обмена ключами шифрования SKIP был разработан около 1995 года IETF Security Working Group . Сейчас этот протокол развивается в основном усилиями компании Sun Microsystems. SKIP и Photuris были оценены как ключевые механизмы обмена данными до принятия IKE в 1998 году.[1]
ОписаниеПравить
Введение в SKIPПравить
Simple Key-Management for Internet Protocols представляет собой протокол управления ключами. SKIP позволяет немодифицированным приложениям использовать шифрование и/или аутентификацию для обеспечения связи по IP-сетям. Он предназначен для использования с такими интернет протоколами, как IPv6 с AH (Authentication Header) и ESP.
Этот протокол обеспечивает конфиденциальность и проверку подлинности для взаимодействующих сторон. Отличительной его особенностью является исключительное использование в качестве криптографического алгоритма метода Диффи-Хеллмана.
Также стоит отметить, что Интернет-хост может отправить зашифрованный пакет на другой узел, не требуя предварительного обмена сообщениями для установки безопасного канала. Его преимущества включают отсутствие проблем с установкой и поддержку односторонних IP, а также масштабируемую раздачу ключей широковещательным запросом. Подход SKIP обременен добавлением дополнительных промежуточных заголовков, которые могут занимать от 20 до 28 байт для каждого охраняемого пакета, что увеличивает пропускную способность по сравнению с ESP.[2]
В целях реализации SKIP, каждый IP, основанный на источнике и назначении, должен иметь DH общественного значения. Это значение может быть проверено с использованием сертификатов X.509[3], Secure DNS[4] или сертификат PGP[5] и т. д.[6]
Основы структуры ключейПравить
Краткое описание SKIP, которое будет ниже, в основном базируется на[7], даже если это не упомянуто в тексте явно.
IP источник I имеет секретное значение i, и общественное значение gi mod p, узел назначения J имеет значения j и gj mod p, соответственно. Взаимная проверка подлинности общего секрета определяется как gij mod p.
Ключ gij mod p называется долгосрочным, ключ Kij может быть получен из него путём использования младшего разряда gij mod p. Kij используется в качестве ключа для блокировки Symmetric Key CryptoSystem (SKCS), как DES, RC2 или IDEA.
Kij является неявным ключом, доступным обеим сторонам, который не должен быть отправлен ни в одном из пакетов или «уйти» вне группы. Узел назначения может вычислить этот общий ключ (Kij), просто зная исходное авторизированное открытое значение узла.
Временный пакетный ключ Kp зашифровывается с помощью Kij. Этот ключ используется во время шифрования/аутентификации IP-пакетов. Так как Kij действителен в течение относительно длительного периода времени, IP-трафик не шифруется с помощью ключа Kij. Данный ключ называется мастер-ключом, поскольку он шифрует только другие ключи.
Для того, чтобы подготовить пакет для передачи узлу J нет необходимости связываться с этим узлом. Когда узел J получает пакет, он также вычисляет общий секретный ключ Kij и сохраняет его для использования в дальнейшем. С помощью Kij он получает Kp, а используя Kp, он получает исходный IP-пакет.
Если исходный узел I изменяет Kp, узел-получатель J может обнаружить этот факт без необходимости выполнения затратных операций по вычислению открытого ключа. Он использует ранее сохраненные значения Kij для расшифровки пакетов, зашифрованных с помощью ключа Kp. Таким образом, ключи шифрования/аутентификации пакетов могут быть изменены передающей стороной и обнаружены принимающей без дополнительной связи между ними.[6]
Ручная рассылка мастер-ключаПравить
Если в SKIP недоступна проверка подлинности автоматической рассылки открытого ключа, узлы могут использовать ручную рассылку. В этих случаях мастер-ключ Kij должен быть одним из ключей, который установливается вручную.
В связи с тем, что мастер-ключ Kij и ключ шифрования трафика Kp разделены, SKIP может автоматически обновлять Kp, даже когда используется ручная рассылка мастер-ключа.[6]
Алгоритм обновления мастер-ключа нулевым сообщением.Править
Неявный парный мастер-ключ, называемый Kijn, может быть использован для создания произвольного количества неявных мастер-ключей, делая тем самым масетр-ключ функцией счетчика n. При этом значение этого счетчика может только увеличиться.
Другими словами, используется формирование ключа для шифрования не в чистом виде Kij, а в виде производной Kijn = h(Kij,n) где h() — хеш-функция, а n — постоянно увеличивающийся счетчик. Этот счетчик может изменяться на единицу в зависимости от конкретной задачи раз в день, час, минуту и т. д. Это является дополнительной мерой обеспечения защиты как от возможного повторного использования взломанных ключей аутентификации трафика, так и для обеспечения грубой защиты (крупными блоками) повторной передачи потока данных. Случаи, когда конкретный ключ аутентификации трафика находится под угрозой повторного использования, предотвращаются обновлением мастер-ключа Kij, а также тем, что мастер ключ никогда не используется дважды.[7]
Согласно[7], Kij должен занимать 256 бит, а если Kij получен из gij mod p, то младший разряд 256 бит используются в качестве входных данных для расчета Kijn. Вычисление мастер-ключа более подробно разобрано в[7].
Хотя описанное выше использует классический алгоритм Диффи-Хеллмана (англ. Diffie-Hellman, DH), протоколы могут быть применены к любой системе, использующей публичные ключи шифрования, которая определяется как система, где одна сторона сочетает в себе сообщения другой и свои собственные данные для расшифровки данных, доступных только этим сторонам.[6]
Формат заголовка SKIPПравить
0 | 8 | 16 | 24 | |
Ver – номер версии протокола. Следующие за ним 4 бита зарезервированы (Rsvd). Далее – идентификаторы пространств имен источника и получателя Source NSID и Dest NSID. Если они равны 0, то в полях Source MKID и Dest MKID ставятся IP-адреса источника и получателя соответственно. После поля Dest NSID идет поле Next Header, содержащее номер протокола, следующего за SKIP. Далее идет 32-разрядное поле счетчика Counter n. Как отмечается в описаниях, правила для работы со счетчиком n отнесены на усмотрение разработчика, но для обеспечения совместимости версий предлагается считать, что n – время в часах, отсчитанное от 00:00 01.01.95. Как правило, если значение счетчика n пришедшего пакета отличается более чем на 1 от текущего, то пакет отбрасывается.
Далее в заголовке идут байтовые идентификаторы алгоритмов: шифрования ключа Kp – Kij Alg, шифрования данных в пакете – Crypt Alg, аутентификации данных – MAC Alg, сжатия (если используется) – Comp Alg. После идентификаторов в SKIP-заголовок помещается ключ Kp, зашифрованный на ключе Kijn (размер этого поля зависит от используемых алгоритмов шифрования ключа и данных). Далее идут идентификаторы отправителя и получателя в выбранном пространстве имен – Source MKID и Dest MKID. Наличие нескольких идентификаторов позволяет более гибко настраивать использование протоколов безопасности. Например, если на одном компьютере работают различные приложения, можно описать политику, указывающую какие алгоритмы и ключи использовать для защиты данных каждого из них.
В случае совместного использования протоколов SKIP и ESP, заголовок SKIP размещается после IP-заголовка перед заголовком ESP:
IP-заголовок | SKIP-заголовок | ESP |
В этом случае, протокол ESP использует параметры соединения, определяемые протоколом SKIP.[8]
Атаки, от которых предохраняет SKIPПравить
SKIP не подвержен атакам человека по середине ([7]), поскольку общие параметры DH носят долгосрочный характер и проходят проверку подлинности.
Если пакет ключей аутентификации Kp когда-либо окажется раскрыт, то обновление мастер-ключа алгоритмом, описанным выше, исключает повторное использование раскрытого ключа. Поэтому, даже если конкретный ключ трафика Kp будет под угрозой, текущий неявный ключ Kijn будет в безопасности, и поэтому злоумышленник не сможет вычислить алгоритмы шифрования Kp в Kijn. «Не зная шифрования Kp с помощью Kijn, злоумышленник не может повторно использовать ранее раскрытые ключи Kp для чего бы то ни было»[7].
Кроме того, даже если все ключи Kp, зашифрованные данным Kijn, окажутся раскрыты, злоумышленник не сможет ничего узнать о других Kp или узнать Kijn. «Даже выборочное использование ключей Kp, с целью нахождения Kijn, эквивалентно выборочной атаке по открытому тексту на Kijn, и это невозможно даже при очень большом количестве известных ключей Kp до тех пор, пока алгоритм шифрования ключей не окажется незащищенным от данной атаки»[7]. А так как алгоритм шифрования ключей является защищенным от общей/выборочной атаки, то и протокол SKIP в целом является защищенным от этого.
Также, в целях предотвращения атак, засоряющих ресурсы, рекомендуется предварительно вычислять и кэшировать мастер-ключи Kij, основываясь либо на использовании машинных методов или на принятии административных мер, упомянутых в[7].
Особенности SKIPПравить
По сравнению с существующими системами шифрования трафика, SKIP имеет ряд уникальных особенностей [9]:
- SKIP универсален:
- он шифрует IP-пакеты, не используя информацию о формирующих их пользователях, приложениях или процессах;
- будучи установленным непосредственно над пакетным драйвером, он обрабатывает весь трафик, не накладывая никаких ограничений ни на программное обеспечение, ни на физические каналы.
- SKIP сеансонезависим: не требует дополнительного обмена информацией для организации защищенного взаимодействия (за исключением единовременно запрошенного открытого ключа собеседника).
- SKIP независим от системы шифрования:
- другие системы шифрования могут быть подсоединены к системе в виде внешних библиотечных модулей;
- пользователь может выбирать алгоритм шифрования информации - как из предлагаемых поставщиком, так и использовать свой;
- для закрытия пакетного ключа и, собственно, данных могут использоваться различные алгоритмы шифрования разной степени защищенности.
Сравнение с аналогамиПравить
Среди протоколов управления криптографическими ключами наиболее широкое распространение получили протоколы SKIP и ISAKMP. SKIP проще в реализации, но он не поддерживает переговоров по поводу алгоритмов шифрования. Если получатель, использующий SKIP, не может расшифровать пакет, он уже никак не согласует метод шифрования с противоположной стороной. Протокол ISAKMP (вернее, его более поздняя реализация протокол IKE - Internet Key Exchange) поддерживает такие переговоры и выбран в качестве обязательного протокола для управления ключами в IPSec для IPv6. При использовании ISAKMP снижается уязвимость закрытых основных ключей, служащих для распределения временных ключей шифрования.[10] При этом IKE считается более надежным и гибким.[11]
В протоколе IPv4 может применяться как протокол ISAKMP, так и протокол SKIP.
ПрименениеПравить
- Устройство обеспечения безопасности локальной сети SKIPBridge.[9]
Устройство SKIPBridge представляет собой систему, устанавливаемую на интерфейсе внутренней или внешней сети (локальная сеть/коммуникационный провайдер). Устройство обеспечивает шифрование трафика, направляемого из внутренней сети во внешнюю на основе протокола SKIP, а также фильтрацию и дешифрование трафика, поступающего из внешней сети во внутреннюю.
IP-пакеты, принимаемые из внешней сети, обрабатываются протоколом SKIP (расшифровываются, фильтруются открытые пакеты, контролируется и обеспечивается имитозащита). Пакеты, прошедшие обработку SKIP, при помощи протокола IP передаются программному обеспечению SKIPBridge, решающему задачи административной безопасности (обеспечивающему пакетную фильтрацию), и затем - операционной системе устройства SKIPBridge, которая маршрутизирует пакеты на адаптер локальной сети.
- Устройство SunScreen: аппаратная система защиты локальных сетей.[9]
SunScreen - это специализированная система защиты, разработанная компанией Sun Microsystems, решающая задачи развитой фильтрации пакетов, аутентификации и обеспечения конфиденциальности трафика. Устройство SunScreen выполнено на основе аппаратного модуля SPF-100. SPF-100 содержит SPARC-процессор, работающий под управлением специальной усеченной версии ОС Solaris, из которой изъяты функции низкоуровневой обработки IP-пакетов. Так как SunScreen не имеет IP-адреса, он "невидим" из внешней сети и, как следствие, неподвержен прямой атаке.
Устройство SunScreen, содержит пять Ethernet-адаптеров, к которым могут подсоединяться четыре независимых сегмента локальной сети и коммуникационный провайдер. Для каждого сегмента обеспечивается индивидуальная настройка политики безопасности путём задания сложного набора правил фильтрации пакетов (по направлению распространения, по адресам отправителя/получателя, по протоколам и приложениям, по времени суток и т.д.).
Важной чертой SunScreen является поддержка протокола SKIP, что используется как для обеспечения безопасности работы, управления и конфигурирования систем SunScreen, так и для организации SKIP-защиты пользовательского трафика. Использование протокола SKIP в Screen-системах привносит ряд дополнительных возможностей. Screen-устройства могут инкапсулировать весь внешний трафик защищаемых локальных сетей в SKIP (производить SKIP-туннелирование). При этом исходные IP-пакеты могут помещаться в блоки данных SKIP-пакетов, а сетевые адреса всех узлов внутренних сетей могут быть заменены на виртуальные адреса, отвечающие во внешней сети Screen-устройствам (адресная векторизация). В результате весь трафик между защищаемыми локальными сетями извне будет выглядеть как полностью шифрованный трафик между узлами-Screen-устройствами. Вся информация, доступная внешнему наблюдателю - это временная динамика и оценка интенсивности трафика, которая также может маскироваться - путём использования сжатия данных и выдачи "пустого" трафика.
Продукт SunScreen был признан журналом "LAN Magazin" продуктом 1996 года в категории firewall.
ИсточникиПравить
- ↑ Configuring IPsec/IKE on Solaris, SecurityFocus (15 августа 2002). Архивировано 10 октября 2008 года.
- ↑ SKIP (англ.) (недоступная ссылка — история). Архивировано 23 января 2013 года.
- ↑ A. Aziz, T. Markson, H. Prafullchandra. X.509 Encoding of Diffie-Hellman Public Values. — Internet Draft, Dec 1995.
- ↑ D. Eastlake , C. Kaufman. Domain Name System Protocol Security Extensions. — Jan 1996.
- ↑ Randall Atkinson. Security Architectute for the Internet Protocol. — Internet Draft, Aug 1995.
- ↑ 1 2 3 4 IPv6 Key Management (англ.) (недоступная ссылка — история). Архивировано 23 января 2013 года.
- ↑ 1 2 3 4 5 6 7 8 A. Aziz, T. Markson, H. Prafullchandra. Simple Key-Management For Internet Protocols (SKIP) / IPSEC Working Group & Sun Microsystems. — Internet-Draft, Dec 1995.
- ↑ Нестеров С.А. 3.3.3. Протокол SKIP // Информационная безопасность и защита информации. — СПб.: Издательство Политехнического университета, 2009. — С. 109-112. — 126 с. — ISBN 978-5-7422-2286-6.
- ↑ 1 2 3 С.Рябко. Безопасность в Internet. Архивировано 9 января 2011 года.
- ↑ Введение в Internet и Intranet. — С. глава 3. (недоступная ссылка)
- ↑ Бабкин В.Ю. Технология построения защищенных автоматизированных систем / Граков В.И.. — 2011.
СсылкиПравить
- The SKIP Encryption Algorithm (англ.) (недоступная ссылка — история). Архивировано 23 января 2013 года.
- IPv6 Key Management (англ.) (недоступная ссылка — история). Архивировано 23 января 2013 года.