IPsec (Интернет-протокол Безопасность) — это набор протоколов и служб, обеспечивающих безопасность IP-сетей. Он используется для установления безопасной сетевой связи в незащищенных сетях (обычно в Интернете). Очень распространенный сценарий заключается в том, что мы можем использовать туннели IPsec для интранет-сети компании. и штаб-квартира подключены, чтобы сотрудники филиала могли безопасно получить доступ к ресурсам штаб-квартиры. По традиционной практике компании необходимо арендовать выделенную линию у оператора и протянуть выделенный сетевой кабель для соединения штаб-квартиры и филиала. это безопаснее, опыт лучше, но цена тоже очень пугает.
Туннели IPsec могут помочь нам безопасно передавать данные с обоих концов Интернета, в основном полагаясь на четыре основные функции (CIAA):
Прежде чем мы начнем знакомить с туннелями IPsec, давайте начнем с краткого напоминания и поговорим о необходимых знаниях.
Симметричное шифрование подразумевает использование ключа для шифрования и дешифрования данных. Позвольте мне привести простейший пример симметричного шифрования:
Шифр Цезаря был создан Юлием Цезарем в период римской экспансии и использовался для шифрования боевых приказов, передаваемых через посланников. Он перемещает буквы алфавита в определенную позицию для достижения шифрования. Например, если вы переместите на 2 позиции вправо, буква A станет C, буква B станет D, ..., буква X станет Z, буква Y станет A, а буква Z станет Б. Следовательно, если существует строка открытого текста «Привет», зашифрованная таким образом, она станет зашифрованным текстом: «Jgnnq». А если вы хотите расшифровать, вам нужно всего лишь сдвинуть буквы в обратную сторону на такое же количество цифр. Например, каждая буква зашифрованного текста «Jgnnq» сдвигается на два места влево и становится «Hello». Здесь перенесенная цифра «2» является ключом, используемым для шифрования и дешифрования. Пока Цезарь заранее сообщает своим министрам перенесенную цифру, обе стороны могут зашифровать и расшифровать боевой приказ.
Из приведенных выше примеров мы можем обнаружить две характеристики симметричного шифрования:
В настоящее время существует три известных алгоритма симметричного шифрования:
Асимметричное шифрование означает, что при шифровании и дешифровании не используется один и тот же ключ: только одна и та же пара открытый ключ-частный ключ может выполнять обычное шифрование и дешифрование.
Эта штука очень умная, то есть существует пара ключей A и keyB. Только я знаю ключ A, поэтому он называется закрытым ключом. Ключ B может быть передан кому угодно, поэтому он называется открытым ключом. Я хочу, чтобы выходные данные могли быть зашифрованы с помощью закрытого ключа. Тогда другие люди, получившие открытый ключ, смогут расшифровать эту информацию. Что более умно, так это то, что другие люди также могут зашифровать информацию с помощью открытого ключа, и только я, у которого есть личный ключ. ключ, можно расшифровать его. Асимметричное шифрование обычно выполняет две функции:
Более репрезентативным является алгоритм RSA, предложенный тремя преподавателями Массачусетского технологического института в 1977 году. Конкретный процесс выглядит следующим образом:
Если остатки, полученные при делении двух целых чисел a и b на целое положительное число m, равны, то говорят, что a и b конгруэнтны по модулю m, что обозначается как: a ≡ b (mod m);
Для удобства возьмем два небольших простых числа:
p = 3 ,q = 11
->
n = pq = 33
r = (p-1)(q-1) = 20
Возьмите e и 20, чтобы они были относительно простыми между 1 и 20, возьмите e = 3 (вы также можете взять другие значения)
3*d и После взятия по модулю 1 к 20 остатки должны быть одинаковыми. Сразу видно, что это 21, а d равно 7.
Пока что открытый ключ e, n : 3, 33
Пока что закрытый ключ d, n : 7, 33
Теперь я начинаю отправлять данные: 2 0 2 4
Тогда шифрование секретного ключа будет следующим: M^e (mod n) -> (2^3 mod 33) (0^3 mod 33) (2^3 mod 33) (4^3 mod 33)
Шифрованный текст: 8 0 8 31
Расшифровка открытого ключа: c^d (mod n) -> (8^7 mod 33) (0^7 mod 33) (8^7 mod 33) (31^7 mod 33)
Расшифрованный зашифрованный текст: 2 0 2 4
Теперь другая сторона также может использовать открытый ключ для шифрования: 1 3 1 4
Зашифруйте открытым ключом следующим образом: M^e (mod n) -> (1^7 mod 33) (3^7 mod 33) (1^7 mod 33) (4^7 mod 33)
Шифрованный текст: 1 9 1 16
Я расшифровываю закрытым ключом: c^d (mod n) -> (1^3 mod 33) (9^3 mod 33) (1^3 mod 33) (16^3 mod 33)
расшифрованный Шифрованный текст: 1 3 1 4
Видно, что если кто-то найдет быстрый алгоритм факторизации, надежность информации, зашифрованной с помощью RSA, будет крайне снижена. Но вероятность найти такой алгоритм очень мала. Сегодня только короткие ключи RSA можно взломать методом грубой силы. По состоянию на 2020 год в мире не существует надежного способа атаковать алгоритм RSA.
Как упоминалось выше, симметричные ключи сложно обменивать через Интернет, поскольку посредник может легко их украсть. В 1976 году два криптографа опубликовали статью об обмене ключами, которая позволяла обеим сторонам установить ключ через незащищенный канал без какой-либо предварительной информации от другой стороны. Этот ключ можно использовать в качестве симметричного ключа для шифрования содержимого сообщения при последующих сеансах связи.
Давайте вернемся к истории Цезаря о шифровании команд путем сдвига букв влево на несколько цифр. Теперь они могут согласовать количество сдвигов через DH:
Цезарь | лидер армии | |
---|---|---|
Обе стороны раскрывают p и g. p — простое число, а g — целое число. | Позвольте мне сказать р, р = 11 | Я понимаю, тогда позвольте мне сказать г, г=5, Ваше Величество, примите это к сведению. |
Обе стороны должны придумать секретные номера А и Б, и никому не расскажут, пока не умрут. | Я подумал о =6 в уме | Я думал о b=4 |
Обе стороны обмениваются номерами, s = (g ^ a или b) mod p | Я посчитал, это (5^6) по модулю 11 = 5, это s=5 для вас. | Я сделал расчет, это (5^4) по модулю 11 = 9, это s=9 для вас. |
Обе стороны вычисляют симметричный ключ через key= (s ^ a или b другой стороны) mod p | k = (9 ^6) mod11 = 9, количество окк-сдвигов равно 9 | k = (5 ^4 ) mod11 = 9, окей, расшифрую сдвигом в обратную сторону на 9 |
Группа Диффи-Хеллмана (DH) определяет надежность ключа, используемого во время обмена ключами. Внутри типа группы (MODP или ECP) более высокие номера групп Диффи-Хеллмана обычно более безопасны.
Алгоритм хеширования может обеспечить целостность данных. Этот алгоритм может вычислить строку фиксированной длины (также называемую дайджестом сообщения), соответствующую цифровому сообщению, и, если входные сообщения различаются, вероятность того, что они соответствуют разным строкам. очень высок, что означает, что у нас может быть высокая вероятность того, что строка, сгенерированная этим алгоритмом хеширования, может представлять исходные данные.
Что нам более знакомо, так это алгоритм MD5. Когда мы загружаем фильм, Xunlei выполняет проверку значения MD5 (генерируя 32-битную строку). Если оно соответствует значению MD5, записанному источником загрузки, то это так. считается скачанным. Фильм не поврежден, но теперь MD5 немного хрупкий, мы можем использовать радужную таблицу, чтобы сделать обратный кряк.
hello
B1946AC92492D2347C6235B4D2611184
SHA (алгоритм безопасного хеширования, безопасный Hash Algorithm)даодинкриптографическая хэш-функциясемья,даFIPSМесто СертификациябезопасностьХэш-алгоритм。Последний среди нихSHA-3 ,Официально выпущен в 2015 году.,Благодаря успешному взлому MD5,И есть теоретические методы взлома SHA-0иSHA-1,NISTчувствовать потребность в одноми Раньше алгоритм был другой.,Сменное шифрование Хэш-алгоритм,Теперь это SHA-3. Длина строки Хэш, сгенерированной SHA, чрезвычайно велика.,Может быть 512-битной строкой,Вероятность столкновения практически исчезла,Можно считать, что значения строки и Хэш, представленные Хэш, имеют взаимно однозначное соответствие:
hello
52fa80662e64c128f8389c9ea6c73d4c02368004bf4463491900d11aaadca39d47de1b01361f207c512cfa79f0f92c3395c67ff7928e3f5ce3e3c852b392f976
Давайте проведем эксперимент. Небольшое изменение приведет к почти совершенно другим значениям хеш-функции. Например, если вы замените в предложении «собаку» на «dof», сгенерированное значение хеш-функции будет совершенно другим:
SHAKE128("The quick brown fox jumps over the lazy dog", 256)
f4202e3c5852f9182a0430fd8144f0a74b95e7417ecae17db0f8cfeed0e3e66e
SHAKE128("The quick brown fox jumps over the lazy dof", 256)
853f4538be0db9621a6cea659a06c1107b1f83f02b13d18297bd39d7411cf10c
Аутентификация призвана гарантировать, что обе стороны общения являются реальными сторонами, а не фальсификаторами, такими как посредники. Обычно существует два метода:
Протокол AH (заголовок аутентификации): он может подтвердить происхождение данных, обеспечить целостность данных и предотвратить повторное воспроизведение одного и того же пакета данных в Интернете. Он использует номер IP-протокола 51. Эту функцию реализуют общедоступные алгоритмы дайджеста AH (односторонние хэш-функции) MD5 и SHA1.
Протокол ESP (инкапсуляция полезной нагрузки безопасности, протокол инкапсуляции полезной нагрузки безопасности): он обладает всеми функциями AH (за исключением того, что ESP не проверяет весь IP-пакет. Он также может использовать технологию шифрования для обеспечения конфиденциальности данных с использованием протокола IP номер 50). ESP обычно использует DES, 3DES, AES и другие алгоритмы шифрования для шифрования данных. Используйте MD5 или SHA1. Обеспечьте целостность данных.
Проверка ESP является гибкой и не проверяет внешний заголовок IP, что обеспечивает хорошую совместимость с NAT. Однако это также делает невозможным для принимающей стороны обнаружить, что заголовок IP был изменен (при условии, что расчет контрольной суммы верен), поэтому служба проверки ESP не так мощна, как служба проверки AH. Таким образом, AH в основном используется для проверки заголовка IP, а ESP в основном используется для шифрования. Обычно эти два протокола являются вложенными.
С помощью базы знаний, представленной выше, вы можете покинуть Деревню новичков и бросить вызов боссу туннеля IPSec.
ipsec — это набор протоколов, используемых для установления безопасного сетевого взаимодействия в незащищенной сети (Интернет).
Мы можем соединить интрасети филиала и штаб-квартиры через ipsec-туннели, чтобы сотрудники филиала могли безопасно получать доступ к ресурсам штаб-квартиры через Интернет. Штаб-квартира и филиал здесь называются двумя пирами (локальным и удаленным). обычно используют удаленные офисы, используют туннели IPSec или туннели SSL.
Оба конца будут определять некоторый интересный трафик. Этот трафик относится к трафику, который удовлетворяет ряду правил, например, определенному сегменту сети или более сложной политике ACL. Независимо от правил, если трафик, инициированный одним концом, соответствует этим правилам. Он классифицируется как интересный трафик, и для доставки трафика к месту назначения создается туннель ipsec. При отсутствии интересного трафика туннель в конечном итоге будет разорван и восстановлен только в следующий раз, когда система обнаружит поступление интересного трафика.
Туннель ipsec обеспечивает аутентификацию, поэтому только взаимно аутентифицированные узлы могут подключаться, а защищенные данные, передаваемые по туннелю ipsec, зашифрованы и не могут быть изменены без обнаружения наблюдателем или посредником.
Общая архитектура туннелей ipsec выглядит следующим образом:
Существует два режима одноэтапных переговоров: основной режим и активный режим. Основной режим — это режим по умолчанию для IKEv1. Для завершения согласования используется 6 сообщений, что более безопасно. Активный режим использует 3 сообщения, что небезопасно, но быстро.
После того как хосты устанавливают взаимные SA IKE в основном режиме, эти SA используются для защиты последующего обмена ключами, что делает процесс более легким. Последующий обмен называется быстрым режимом или IKE Phase 2.
Цель быстрого режима — установить IPsec SA — канал, используемый для шифрования и дешифрования данных приложения.
Через заранее определенные интервалы времени (например, по времени или объему данных) эти сопоставления безопасности IPsec обновляются, то есть генерируются и обмениваются новыми ключами сопоставления безопасности IPsec.
Это также идея многоуровневого проектирования, поскольку первая фаза очень медленная и тяжелая, а вторая фаза относительно быстрая, поэтому при отсутствии интересного трафика туннель IPSec отключит вторую фазу, но первая фаза все равно будет работать. сохраняется, чтобы можно было быстро возобновить этап 2, когда снова появится заинтересованный трафик.
IKEv2 упрощает процесс согласования ассоциации безопасности. В обычных обстоятельствах IKEv2 использует 2 обмена по 4 сообщения для завершения IKE SA и пары SA IPSec. Если требуется установить более одной пары SA IPSec, для каждой пары SA требуется только один дополнительный обмен. is, 2 Сообщение будет полным.
Экспериментальный фон
Протокол IKEv2 состоит из четырех сообщений. Среди этих четырех сообщений первые два сообщения не зашифрованы и используют номер UDP-порта 500. Этот этап называется IKE_SA_INIT. Последние два сообщения зашифрованы и используют номер UDP-порта 4500. Этот этап называется IKE_AUTH.
первое сообщение Начальный SPI устанавливает случайное значение SPI ответчика установлен на 0.
SA, KE, обмен информацией Nonce
Предложения по пакетам безопасности для использования обеими сторонами
Данные Nonce (число, используемое ОДИН РАЗ) используются для повышения безопасности и предотвращения атак повторного воспроизведения. Nonce — это случайное число или счетчик, который используется только один раз во время обмена ключами и аутентификации.
Алгоритм DH и числа, которыми обмениваются друг с другом
Версия IKE, идентификатор сообщения. Используя идентификатор сообщения, можно отслеживать и идентифицировать различные сообщения в сеансе IPsec. Это позволяет отправителям и получателям сопоставлять и коррелировать при обмене несколькими сообщениями, обеспечивая правильный порядок и обработку сообщений.
Стоит ли выполнять обнаружение nat
второе сообщение ипервое сообщение почти такое же, реагирует на информацию пакета безопасности инициатора и используется для генерации dh ключевые данные
Третье сообщение и четвертое сообщениедаиспользоватьDHключ Симметричное шифрованиеиз,Устанавливаем плагин,Разблокируйте его и посмотрите, какая информация находится внутри
Эта часть включает в себя следующую информацию: Идентификация обеих сторон
Диапазон интересующего трафика, селектор трафика
Информация аутентификации, вы можете видеть, что используется PSK.
Некоторые предложения параметров HAGLE для пользовательских туннелей, алгоритмов и т. д. IPSec SA.
Последующие сообщения представляют собой пользовательские данные, зашифрованные ESP.,На обоих концах имеются логотипы SPI и серийные номера ESP.
После расшифровки вы можете увидеть внутреннее сообщение пользователя.