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.
Источники
[править |править код]- ↑Dubrawsky, Ido (15 августа 2002).Configuring IPsec/IKE on Solaris. SecurityFocus.Архивировано 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.
- ↑1234IPv6 Key Management (англ.). Архивировано изоригинала 23 января 2013 года.
- ↑12345678A. 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. — [Архивировано 10 января 2017 года.]
- ↑123С.Рябко. Безопасность в Internet. Архивировано 9 января 2011 года.
- ↑Введение в Internet и Intranet (недоступная ссылка —история). —С. глава 3.
- ↑Бабкин В.Ю. Технология построения защищенных автоматизированных систем / Граков В.И.. — 2011.
Ссылки
[править |править код]- The SKIP Encryption Algorithm (англ.). Архивировано изоригинала 23 января 2013 года.
- IPv6 Key Management (англ.). Архивировано изоригинала 23 января 2013 года.