Глава 3. Протоколы безопасности и их реализация

Содержание

Глава 3. Протоколы безопасности и их реализация
Опоры безопасности - конфиденциальность, целостность и доступность
Основы шифрования и протоколы
Предоставляемые шифрованием службы
Сопоставление потоковых и блочных шифров
Сопоставление симметричного и асимметричного шифрований
Протоколы симметричного шифрования
DES и 3DES
AES
Протоколы не обладающего симметрией шифрования
Шифрование данных
Цифровые подписи
Протоколы не обладающего симметрией шифрования и RSA
Инфраструктура и Сертификация авторизации общедоступного ключа
Основы и протоколы аутентификации
Типы аутентификации
Идентификация имя пользователя/ пароль и проблема
Аутентификация идентификации по имени пользователя/ паролю и IP адресу
Шифрование аутентификации по имени пользователя/ паролю
HOTP
TOTP
OTP на основе SMS
Расширенный протокол аутентификации (EAP)
Протоколы EAP
Протоколы авторизации и доступа
Хэш функции и свёртки сообщений
IPSec и протоколы управления ключами
VPN
Принципы и операции IPSec
Установление туннеля IPSec
Режимы операции IPSec
Протоколы аутентификации и шифрования IPSec
Протокол заголовка аутентификации (AH) IPSec
Протокол инкапсуляции безопасной нагрузки IPSec
SSL/ TLS и посредники
Основы протокола
Протокол рукопожатия
Компоненты сетевой безопасности - RADIUS/TACACS+, FWs, IDS/IPS, NAC и WAF
Межсетевые экраны
RADIUS, NAC и прочие функциональные возможности аутентификации
Межсетевые экраны веб приложения(WAF)
Выводы
Вопросы

В Главе 1, Архитектура центров данных и корпоративной сетевой среды, а также их компоненты мы обсудили сетевую архитектуру, в то время как в Главе 2, Структуры и операции сетевого протокола мы поговорили о протоколах. В данной главе мы будем разговаривать о протоколах безопасности, включая их столпы и глубоко окунёмся в их биты и байты. Это поможет нам разобраться с тем как пользоваться этими протоколами и методами для защиты своих сетевых ресурсов.

Мы начнём с базовых определений, продолжим с алгоритмами и протоколами более верхнего уровня, которые применяются в современных сетевых средах и завершим с компонентами безопасности, как они работают и как они применяются для защиты наших сетевых ресурсов.

В этой главе мы намерены рассмотреть следующие основные темы:

  • Столпы безопасности - конфиденциальность, целостность и доступность

  • Основы и протоколы шифрования

  • Инфраструктура и центры сертификации общедоступного ключа

  • Основы и протоколы проверки подлинности

  • Протоколы предоставления полномочий и доступа

  • Функции хэширования и свёртки сообщений

  • IPsec и протоколы управления ключами

  • SSL/ TLS и посредники

  • Компоненты сетевой безопасности - RADIUS/TACACS+, FW, IDS/IPS, NAC и WAF

Опоры безопасности - конфиденциальность, целостность и доступность

Американский национальный институт стандартов и технологии (NIST, National Institute of Standards and Technology) разработал инфраструктуру для кибербезопасности, которая должна реализовываться во всех сторонах сетевых сред и приложений. Эта инфраструктура носит название тирады CIA (confidentiality integrity и availability - конфиденциальности, целостности и доступности). Сама инфраструктура CIA суммирует свои определяемые NIST требования для сетевой безопасности следующим образом:

  • Конфиденциальность: Предохранение санкционированных ограничений на доступ к сведениям и их раскрытия, включая средства защиты персональных данных и частной информации.

  • Целостность: Защита от неправомерного изменения или уничтожения сведений. Включает в себя невозможность отказа от авторства и достоверность сведений.

  • Доступность: Защита от неправомерного изменения или уничтожения сведений. Содержит обеспечение невозможности отказа от авторства и достоверности сведений.

Приводимые далее протколы и механизмы обеспечивают эти требования.

Основы шифрования и протоколы

Шифрование это процесс преобразования информации, которая может считываться кем угодно - то есть открытого или читаемого текста - в секретные сведения, носящие название зашифрованного текста, доступ к которому имеют лишь уполномоченные пользователи.

Шифрование требует некого алгоритма и ключа. Такой алгоритм это математическая процедура, составленная из последовательности вычислений, в то время как ключ это строка или биты. Чем изощрённее алгоритм и чем длиннее ключ, тем более сложно будет его взломать.

Предоставляемые шифрованием службы

Шифрование это служба, которая скрывает имеющееся содержимое данных. Шифрование не устанавливает подлинность источника данных, не скрывает источник и получателя данных и не проверяет целостность данных. Для этих целей у нас имеются иные механизмы, о которых мы поговорим в этой главе далее:

 

Рисунок 3.1


Отправка сведений в процессе шифрования

На предыдущем снимке экрана можно наблюдать образец видимой и скрытой информации. Здесь мы наблюдаем IP адрес получателя, а также имя сервера в заголовке TLS (Transport Layer Security, Протокола защиты транспортного уровня). В отправляемом позднее в ходе данного сеанса сообщении, как мы видим позднее в данной главе в разделе асимметричных протоколов, мы обнаружим используемые для данного сеанса набор применяемых шифров.

Сопоставление потоковых и блочных шифров

Существует два способа шифрования данных при транспортировке. Как показано на приводимой ниже схеме, это потоковые шифры и блочные шифры:

 

Рисунок 3.2


Сопоставление потоковых и блочных шифров

  • При потоковом шифровании, как показано верхней части предыдущей схемы, поступающий поток данных шифруется байт за байтом. Для выработки псевдослучайного потока бит применяется некий ключ и именно он складывается по XOR с входящим в шифратор обычным текстом. Результатом является зашифрованный поток байт.

  • При блочном шифровании, входные данные расщепляются на блоки из 64 бит или более. Для независимого шифрования каждого блока применяется некий ключ с планировщиком ключа.

Сопоставление симметричного и асимметричного шифрований

Шифрование выполняется с применением ключа и алгоритма. Существует два типа шифрования:

  • Некий секретный ключ, или симметричное шифрование, пользуется одним и тем же ключом для шифрования и дешифрации необходимых сведений. Тут у нас имеются такие протоколы как DES (Data Encryption Standard, Стандарт кодирования данных) Triple-DES (тройной DES) и AES (Advanced Encryption Standard, Усовершенствованный стандарт шифрования).

  • Частный ключ, или шифрование с открытым ключом (asymmetric encryption) пользуется двумя ключами - первый ключ для шифрования необходимых данных и второй ключ для дешифрации этих данных. Здесь у нас имеются такие протоколы как PGP (Pretty Good Privacy, вполне хорошей секретности) и RSA (Rivest–Shamir–Adleman, шифрование методом Ривеста, Шамира и Адлемана).

Шифрование может быть реализовано для находящихся в состоянии покоя данных, то есть данных, которые хранятся где- то на ПК, смартфоне, центральном сервере и т.п. Также шифрование может реализовываться для передаваемых данных, то есть тех сведений, которые перемещаются по сетевой среде из одного места в другое. В данной книге мы сосредоточимся на сетевой безопасности, а потому в основном будем обсуждать передаваемые данные.

 

Протоколы симметричного шифрования

Первым рассматриваемым нами типом протокола является протокол симметричного шифрования, при котором обе стороны соединения пользуются одним и тем же ключом. Этот ключ может быть неизменным либо может меняться каждую секунду, но всё ещё обе стороны совместно применяют один и тот же ключ. Как отображено на следующем снимке экрана, обычный текст шифруется кодирующей функцией fE при помощи ключа K', а затем открывается посредством fD, а при том что fE и fD равны, а потому то же касается ключа K':

 

Рисунок 3.3


Симметричное шифрование

На протяжении лет было разработано много симметричных протоколов. Имеется множество симметричных протоколов, включая RC5 и RC6. Наиболее распространёнными алгоритмами, которые применялись ранее и всё ещё применяются в наши дни для сетевых данных это DES, Triple-DES, который стал распространённым несколько лет назад и AES, который является наиболее безопасным и популярным на протяжении последних лет. Давайте кратко обсудим каждый из них. Они будут пояснены в общем плане с минимальным объёмом необходимых для понимания их механизмов сведений.

 

DES и 3DES

DES (Data Encryption Standard, Стандарт кодирования данных), который был стандартизован в 1979 году это блочный шифр, который представляет собой строки фиксированной длины битов открытого текста, а при помощи ключа и алгоритма преобразует каждую из них в иной битовый поток зашифрованного текста той же длины. Данный алгоритм основан на 16 витках шифрования, причём размеры блока 64 бита, а размеры ключа 56 бит.

Сам алгоритм, имеющий название алгоритма Фейстеля, основан на отражаемом в приводимой ниже схеме принципе:

 

Рисунок 3.4


Алгоритм DES

Данный алгоритм работает следующим образом:

  1. Перед входом в кодирование каждый блок открытого текста из 64 бит проходит начальную перестановку этих 64 бит. Это осуществляется путём изменения расположения бит; например, самый левый бит в блоке заменяется 48м битом, второй бит заменяется 35м и так далее.

  2. Этот 64- битный блок делится на две половины по 32 бита каждая.

  3. Шифрование осуществляется 16 витками. При каждом витке, как это показано слева на Рисунке 3.3, мы расщепляем свой 64- битный блок на две половины. Одна половина шифруется и складывается по XOR со второй, которая не шифруется. Затем эти две части переставляются и переносятся на следующий этап.

  4. В планировщике ключей из исходного 56- битного ключа вырабатывается следующий набор ключей с K1 по K16. Ключи вырабатываются путём побитного сдвига исходного ключа.

Будучи разработанным в 1970- х годах протоколом, DES представляет собой запросто взламываемый механизм шифрования и в последние годы он практически не применяется.

Triple-DES, или 3DES, это алгоритм, который был разработан в середине 1990- х и опубликован IETF как RFC 1851. 3DES пользуется тем же самым алгоритмом DES, но с тремя ключами. Ключи могут быть независимыми, K1, K2 и K3 (вариант ключей 1), K2 и K1 = K3 (вариант ключей 2) и идентичными ключами K1 = K2 = K3 (вариант ключей 3).

Хотя 3DES работает с ключами из 112 или 168 бит (56*2 или 56*3 бит, в зависимости от варианта выбора ключей), применение 3DES также подвержено лёгкому взлому. По этой причине был принят новый алгоритм: AES.

 

AES

NIST (National Institute of Standards and Technology) выбрал алгоритм Rijndael (Райндейл, разработанный Джоаном Дейманом и Винсентом Райменом) в качестве последователя DES и 3DES в ноябре 2001. AES обладал фиксированным размером блока в 128 бит с размерами ключа в 128б 192 и 256 бит и пользуется алгоритмом, который намного более сложен чем алгоритм Фейстеля:

 

Рисунок 3.5


Алгоритм AES

Как вы можете видеть, имеющийся в AES алгоритм работает следующим образом:

  1. Блок данных поступает в этот алгоритм и складывается по XOR со значением начального блока ключа.

  2. После инициирующего витка этот блок входит в витки замещения - сдвиг строк, смещение столбцов и XOR. Такой основной виток происходит 9, 11 или 13 раз в зависимости от длины ключа.

  3. На заключительном витке этот блок входит в отдельный виток замещения - строки сдвигаются и складываются по XOR - и выходит из этого алгоритма в качестве строго кодированного блока.

  4. Сам ключ изменяется для каждого витка на основе манипуляций из ключа своего предыдущего витка.

На момент написания этой книги не имелось успешных попыток взлома данного алгоритма какой бы то ни было коммерческой или академической организацией.

 

Протоколы не обладающего симметрией шифрования

В не обладающих симметрией протоколах у нас имеются два ключа: один применяется для шифрования собственно данных, в то время как другой ключ используется для их дешифрации. Тот ключ, который применяется для шифрования данных носит название общедоступного ключа (public key), в то время как используемый для дешифрации этих данных ключ именуется частным ключом (private key). Это также известно как криптография с общедоступным ключом (public key cryptography).

Как это отражено на идущей далее схеме, криптография с общедоступным ключом применяется двумя способами:

  • Для шифрования сведений между пользователями

  • Для подписи документов цифровыми подписями

 

Шифрование данных

Данный шифруются так:

 

Рисунок 3.6


Шифрование данных в криптографии с асимметричными шифрами

Давайте рассмотрим это подробнее:

  1. Прежде всего, Алиса вырабатывает пару ключей. Это строка бит, в которой половина это общедоступный ключ, а другая половина это частный ключ.

  2. После выработки эих ключей Лиса отправляет свой общедоступный ключ Бобу.

  3. Боб вырабатывает своё сообщение и шифрует его при помощи общедоступного ключа.

  4. Боб отправляет данное зашифрованное сообщение Алисе.

  5. Алиса, которая обладает свои секретным ключом, расшифровывает полученное сообщение.

Алиса может предоставлять свой общедоступный ключ кому угодно, кто желает общаться с ней, а потому кто угодно способен отправлять ей зашифрованные сообщения, но только она способна открывать их своим частным ключом.

 

Цифровые подписи

Цифровые подписи применяются с тем, чтобы пользователь имел возможность подписывать документ и отправлять его кому- то ещё, а этот получатель может быть уверенным что документ был отправлен подписавшим его создателем, а не кем- то ещё. Создание и применение цифровых подписей противоположно шифрованию данных.

В нашем примере Алиса отправляет удостоверенный документ Бобу:

 

Рисунок 3.7


Цифровые подписи

При помощи цифровых подписей мы выполняем следующее:

  1. Прежде всего, как и при шифровании, Боб вырабатывает пару ключей. Это строка бит, в которой половина это общедоступный ключ, а вторая половина это частный ключ.

  2. Боб отправляет свой общедоступный ключ Алисе.

  3. Для подписи своего документа Боб пользуется своим частным ключом.

  4. Боб отправляет своё сообщение Алисе.

  5. Алиса получает это сообщение и способна удостовериться что имеющийся общедоступный ключ может расшифровать данное сообщение, что подтверждает что этот секретный ключ Боба применялся для его шифрования.

[Замечание]Замечание

На практике, и при шифровании данных, и при цифровой подписи, перед шифрованием и проверкой данных по их получению, вырабатывается некий хэш. Мы опускаем это шаг чтобы сделать данное пояснение более ясным. Хэш и алгоритмы хэширования будут пояснены позднее в этой главе.

 

Протоколы не обладающего симметрией шифрования и RSA

Применяется множество не обладающих симметрией алгоритмов: RSA (Rivest-Shamir-Adleman), ECC (El Elliptic Curve Cryptography), El Gamal, DSA (Digital Signature Algorithm) и прочие. В данном разделе мы обсудим алгоритм RSA, который до сих пор применяется коммерческими алгоритмами.

Данный алгоритм RSA основывается на том математическом принципе, согласно которому легко умножать большие числа, но гораздо сложнее делить их на множители. Это в особенности верно когда мы умножаем два простых числа. Умножить их просто, но получить множители результата практически невозможно и требует огромных вычислительных мощностей.

Данный алгоритм работает следующим образом (показано на примере):

  1. Наш пользователь, User A, создаёт свои ключи и выбирает два простых числа, p и pq. Их произведение, n = pq будет половиной нашего общедоступного ключа.

    Допустим, p = 11 и q = 17.

  2. User A вычисляет значение функции p и q, которой является ɸ(p,q), при том что ɸ(p,q) = (p-1)(q-1).

    Допустим, ɸ(p,q) = (11-1)(17-1) = 10*16=160.

  3. User A выбирает некое число, e, которое является взаимно простым с p и q.

    Числа являются взаимно простыми когда не существует большего единицы целого, которое является делителем их обоих.

    Мы остановимся на e = 3, которое является взаимно простым с 11 и 17.

  4. Первой половиной общедоступного ключа выступает n = pq, а его второй половиной является e.

    Наш общедоступный ключ это 187,3.

  5. User A вычисляет обратное по модулю, d от e по модулю ɸ(n).

    Обратное целого, x, это число y, такое что xy = 1.

    По модулю находит остаток после деления одного числа на другое. Такой остаток носит название модуля данной операции.

    Обратное по модулю целого числа a, это целое число x, которое является произведением, ax, равное 1 относительно модуля m, то есть ax ≡ 1 (mod m).

    ɸ(n)=160, а следовательно d = 3 по модулю 160 = 107 {Прим. пер.: 3*107 mod(160) = 321 mod(160) = 1}

  6. User A распространяет общедоступный ключ, n, e и держит в безопасности свой частный ключ, d.

Теперь, когда мы изучили необходимые биты и байты, давайте взглянем на свою картину шире и обсудим сертификаты.

Инфраструктура и Сертификация авторизации общедоступного ключа

PKI (Public key infrastructure, инфраструктура шифрования с открытыми ключами) определяет необходимую архитектуру для безопасного взаимодействия между пользователями. PKI определяет CA (certificate authority, центр сертификации), который содержит некоторые атрибуты, которые будут применяться между устанавливающими соединение пользователями.

PKI предоставляет несколько услуг:

  • Удостоверение подлинности (Authentication): Для подтверждения каждой из сторон что другая сторона является именно той, на которую она претендует.

  • Целостность (Integrity): Для доказательства того, что эти данные не подвергались изменению в процессе их передачи.

  • Конфиденциальность (Confidentiality): Для гарантии того, что никто не сможет прочесть эти данные в процессе их передачи.

PKI стандартизует весь процесс применения сертификатов и использования частного и общедоступного ключей для безопасного взаимодействия между логическими объектами.

PKI в основном применяется для соединения с веб серверами при помощи Secure Socket Layer/ Transport Layer Security (SSL/ TLS). В данном разделе мы опишем данный процесс, а затем в этой главе, в разделе SSL/ TLS и посредники мы перейдём к битам и байтам.

Для начала давайте рассмотрим как клиент подключается к веб серверу при помощи сертификатов. Это иллюстрирует следующая схема:

 

Рисунок 3.8


Как работает сертификат

Давайте рассмотрим Интернет- магазин, который желает продавать через Интернет элементы. Мы можем наблюдать это справа на своей предыдущей схеме. Вот что происходит:

  1. Вебсайт интернет- магазина вырабатывает два ключа: частный ключ и общедоступный ключ.

    [Замечание]Замечание

    Для работы внутри самой организации 1 Шаг единственный необходимый вам. Вы вырабатываете необходимый ключ, распространяете его среди участников взаимодействия и начинаете отправку сведений. Когда вы внедряете вебсайт, вам необходимо доверять стороне вашего взаимодействия, а она обязана доверять вам, поэтому требуется взаимный логический объект, который способен установить такое доверительное отношение. Тем общим логическим объектом, которому доверяете вы оба, выступает CA (Центр Сертификации).

  2. Когда ваш ключ изготовлен, ваш магазин отправляет CSR (Certificate Signing Request, запрос на подпись сертификата) в установленный CA. CSR это зашифрованный файл, который отправляется в такой CA как https://www.verisign.com, https://www.digicert.com, https://www.cloudflare.com или подобные им, и содержит ваши общедоступный ключ и идентификационные сведения. Этот CA удостоверяется в идентификационных сведениях запроса через такую информацию как значение URL (www.example.com), названия организации и её адреса для подтверждения идентичности этого запроса.

  3. По получению подтверждения, этот CA отправляет свой сертификат владельцу такого вебсайта. Данный сертификат содержит значение общедоступного ключа совместно с самим сертификатом и идентификационными данными CA.

  4. Теперь, когда показанный на нашей предыдущей схеме слева маленьким человечком пользователь подключается к вашему вебсайту, он открывает этот вебсайт и видит на этой веб-странице небольшой навесной замок. Когда вы кликните по нему, вы обнаружите подробности его сертификата; то есть самого эмитента, общедоступный ключ, даты его действия и тому подобное.

  5. Пользователь шифрует свои сведения при помощи этого общедоступного ключа.

  6. Этот пользователь отправляет зашифрованные сведения в ваш вебсервер.

  7. Этот вебсервер пользуется своим частным ключом для дешифрации полученных сведений.

При цифровой подписи мы пользуемся тем же самым механизмом, но в противоположном направлении. Мы отправляем свой частный ключ всем кто желает отправлять нам документы, а для их открытия применяем общедоступный ключ.

Основы и протоколы аутентификации

Удостоверение подлинности (аутентификация) это процесс идентификации персоны, устройства или программного обеспечения для получения ими доступа к сведениям. Получение разрешения (авторизация) это процесс обеспечения прав для выполнения действий над данными или сведениями.

Существует три типа механизмов удостоверения подлинности. А именно, то, что вы знаете, то, чем вы обладаете и кем вы являетесь:

  • Что вы знаете: Как правило, пользователи выполняют аутентификацию пользователем и паролем

  • Чем вы обладаете: Обычно это смарткарта и считыватели карт

  • Кем вы являетесь: Биометрия, например, отпечаток пальца или сканирование сетчатки

Существует ряд ресурсов, через которые вы, как правило, выполняете доступ:

  • Сетевые среды организации. В них обычно работа выполняется через SSL/ TLS -VPN или IPSec VPN, которые мы обсудим позднее в данной главе.

  • Внешние вебслужбы (банковские счета, социальные сети и тому подобное). Обычно действия здесь осуществляются через HTTPS, который пользуется SSL/ TLS.

  • Внутренний доступ к ресурсам организации. Для доступа к оборудованию взаимодействия он предоставляется механизмами Microsoft или Linux, а также RADIUS/TACACS+.

Существует несколько уровней аутентификации; в этом разделе мы рассмотрим каждый из них, причём совместно с их уязвимостями.

Типы аутентификации

В данном разделе мы обсудим типы аутентификации от базовых до усовершенствованных методов.

 

Идентификация имя пользователя/ пароль и проблема

Самым базовым типом установления подлинности являются имя пользователя и пароль. Данный метод является предметом для целого ряда видов атак. PAP (Password Authentication Protocol, протокол аутентификации по паролю) это пример протокола, который реализует такой метод, когда инициализирующее устройство отправляет запрос на удостоверение подлинности с именем пользователя и паролем, а аутентификатор (отвечающее устройство) просматривает их и отправляет сообщение подтверждения аутентификации или отказа в ней.

Другим протоколом в этой категории выступает CHAP (Challenge Handshake Authentication Protocol, протокол аутентификации с предварительным квитированием соединения), применяющий рукопожатие в три этапа. Здесь, по завершению фазы установления соединения, устройство аутентификации (то есть то одноранговое устройство, которое разрешает или блокирует доступ) отправляет инициатору сообщение Challenge (запроса квитирования). Этот инициатор откликается строкой, которая содержит значение, вычисляемое при помощи хэш- функции. Аутентификатор проверяет равен ли этот отклик его вычислению такой строки. Когда значения совпадают, данная аутентификация принимается; в противном случае нет.

Эти два протокола впервые были стандартизованы в RFC1334 (IETF, октябрь 1992) для PPP (Point-To-Point Protocol, протокола канала связи с непосредственным соединением) Уровня 2, который в основном применялся для установления соединения между маршрутизаторами.

Имеющийся уровень безопасности данного протокола очень низок. PAP является предметом взлома пользователя/ пароля, в то время как CHAP это предмет для простой атаки со злоумышленником в промежутке. Эти протоколы в основном применялись для непосредственного соединения маршрутизаторов и почти не используются.

Аутентификация идентификации по имени пользователя/ паролю и IP адресу

Удостоверение подлинности по имени пользователя и пароля можно продвинуть на шаг вперёд, применяя имя пользователя и пароль совместно с ограничениями на исходный IP адрес с которого может поступать запрос на регистрацию. Хотя этот метод и обладает слегка более высоким уровнем безопасности, вам следует применять его с осторожностью.

В данной ситуации при настройке этого ограничения внутри вашей организации, скажем, когда сетевой администратор способен получать доступ к коммуникационному оборудованию со своего ПК только при помощи имени пользователя и пароля, это не лучший вариант, но он обеспечивает умеренный уровень безопасности.

Настройка вашей "огненной стены" для разрешения доступа из Интернета на основании имени пользователя/ пароля и IP- адреса это всё равно как сунуть свою руку в огонь в надежде что тот потухнет. Если кто- то пожелает взломать систему, подделка IP адреса со взломом имени пользователя/ пароля запросто справится с этой задачей. Далее в этой книге мы подробно опишем атаки с подменой IP адреса.

Шифрование аутентификации по имени пользователя/ паролю

Это наиболее распространённый способ доступа организаций или общедоступный серверов (банков, социальных сетей и тому подобного) и на один шаг ниже чем OTP (one-time passwords, одноразовые пароли) или биометрия.

Здесь для соединения клиента с площадкой мы пользуемся таким протоколом как IPSec, что происходит когда ваш компьютер становится клиентом вашей организации, либо соединения SSL/TLS, что происходит при подключении к приложению - например, HTTPS для доступа к веб серверу, Secure FTP при доступе к серверу FTP, SIPS для безопасного доступа к серверам SIP (Session Initiation Protocol, протокола инициации сеанса) и так далее.

Следующим уровнем безопасности выступает применение OTP. Существуют две версии OTP, которые основаны на одном и том же принципе:

  • Программном или аппаратном устройстве, которое вырабатывает одноразовый код, который вы применяете для регистрации в своей организации. Данный метод носит название HOTP (HMAC-based OTP, основанного на аппаратном MAC адресе OTP).

  • Некий код вырабатывается и отправляется вам при доступе к банковской учётной записи, кредитной компании, организации здравоохранения и т.п. Данным метод именуется TOTP (Time-based one-time password)

 

HOTP

Первый метод, именуемый HOTP (HMAC-based OTP), впервые был стандартизован в RFC4226 (IETF, December 2005). Этот метод применяет маркеры, которые синхронизируются с имеющимся сервером для предоставления под предоставление пользователю доступа в сетевую среду одноразового пароля. Такой пароль может применяться однократно, а потому он прекращает возможность атак отклика. HOTP вычисляется следующим образом:


HOTP(key,counter)=Truncate(HMAC-SHA-1(key,counter))
 	   

Вот значения параметров из этой формулы:

  • Key: Значение ключа HMAC, также носящего название затравки (seed), это совместно применяемый ключ безопасности, который согласован с имеющимся сервером и его клиентом в момент инициализации. Этот ключ статический для всего времени жизни клиента. По причинам безопасности он должен держаться в секрете самим клиентом и его сервером.

  • Counter (счётчик): После каждого успешного удостоверения он увеличивается приращением на единицу, а потому необходима его синхронизация между самим клиентом и его сервером.

  • HMAC-SHA-1: Это собственно алгоритм вывода, который применяется методом HOTP.

  • Функция отсечения (truncate) применяется для отсечения полученных 160 бит HMAC-SHA-1 в читаемый пользователем формат из некоторого числа цифр.

    При использовании HOTP существует ряд проблем. Данный протокол подсчитывает значение числа успешных попыток аутентификации, а что относительно варианта с неудачными попытками? Эти вопросы рассматриваются имеющимся стандартом и для каждого из них предлагаются решения.

     

    TOTP

    Второй метод носит название TOTP (time-based one-time password, основанных на времени одноразовых паролей), и впервые он был стандартизирован RFC6238 (IETF, May 2011) как расширение HOTM. Он пользуется для вычисления значения OTP тем же алгоритмом что и HOTP, однако вместо применения некого счётчика он применяет таймер. Итак, TOTP вычисляется так:

    
    TOTP(key,time)=Truncate(HMAC(key,time))
     	   

    В TOTP применяемым алгоритмом хэширования может выступать HMAC-SHA-1, HMAC-SHA-256 или HMAC-SHA-512. Значение времени исчисляется 30- секундными приращениями в результате значения времени эпохи (числа секунд, прошедших с полуночи UTC - всемирно скоординированного времени - 1 января 1970 года).

    TOTP устраняет проблемы со счётчиком, которые имелись у HOTP, но к нему также имеется ряд вопросов. В случае аппаратных маркеров TOTP (в отличие от программных маркеров, которые пользуются часами смартфона) нам необходимы возможности исчисления времени, для чего требуется внутренний точный осциллятор, причём могут происходить смещения по времени и тому подобное. Эти проблемы рассматриваются в самом стандарте и для каждой предлагается решение.

     

    OTP на основе SMS

    Данный метод прямолинеен. Здесь пользователь регистрируется в соответствующем вебсайте под своими именем пользователя и паролем. В случае совпадения имени пользователя и пароля, данный пользователь получает некий OTP через SMS или сообщение электронной почты. Пользователь вводит данный OTP и осуществляет регистрацию в этом вебсайте. Вместо имени пользователя и пароля это может быть идентификатор пользователя или номер паспорта, последние цифры номера кредитной карты, находящейся во владении этого пользователя и тому подобное. Именно это составляет метод двухфакторной аутентификации, которая применяет сочетание того что вы знаете с тем, чем вы владеете.

    Расширенный протокол аутентификации (EAP)

    EAP (extensible authentication protocol, Расширенный протокол аутентификации) это стандарт, который предоставляет некую инфраструктуру, содержащую набор вещей, необходимых клиентам для их удостоверения с сетевыми серверами аутентификации, например, подключаемого по сети Wi-Fi ноутбука. Такая инфраструктура EAP составляется из необходимого метода и соответствующих требований, в то время как протокол аутентификации может выбираться самим выполняющим удостоверение клиентом и динамическим образом осуществляет механизм аутентификации.

    EAP впервые был предложен в RFC2284 (IETF, March 1998) для протокола точка- точка для добавления безопасности поверх имевшихся (на тот момент) PAP и CHAP. Позднее он был расширен в RFC3748 (IETF, June 2004). С тех пор он был реализован в других отраслях, в основном, в беспроводных сетях и беспроводных локальных сетях с применением протоколов IEEE 802.11i и 802.1x.

     

    Протоколы EAP

    IETF выполнила стандартизацию на основе нескольких основанных на EAP методов:

    • EAP-TLS: Основывается на аутентификации TLS с взаимной аутентификацией на основе сертификата и создания ключа. Определяется в RFC5216 (IETF, March 2008).

    • EAP-SIM: Определён для выполнения удостоверения и производства ключа при помощи SIM карты GSM. задан в RFC4186 (IETF, January 2006).

    • EAP-AKA: Определён для аутентификации и создания ключа с применением SIM карты UMTS на базе стандарта UMTS AKA. Впервые был определён в RFC4187 (IETF, January 2006).

    • EAP-AKA′: Обеспечивает улучшенное разделение ключей между вырабатываемыми для разных сетей доступа ключей. Впервые определён в RFC5448 (IETF, May 2009).

    Благодаря своей гибкости EAP был приспособлен более поздними стандартами, например, интеграции LTE с Wi-Fi (RFC7458, IETF, February 2015), (EAP-TTLS, который делает для вас возможными туннели в прочих протоколах аутентификации поверх туннелей EAP (RFC5281, IETF, August 2008), а также в частных реализациях и прочих стандартах и закрытых реализациях, таких как LEAP (Lightweight EAP) и EAP-FAST (Flexible Authentication via Secure Tunneling EAP) Cisco, PEAP (Protected EAP) Microsoft, EAPoL (EAP over LAN), который применяется при управлении доступом в сетевых средах на основе портов в локальных сетях (IEEE, 802.1X) и прочих.

    EAP-AKA и EAP-SIM применяют аутентификацию типа запрос- ответ (например, CHAP), а EAP-TLS, EAP-TTLS, PEAP и EAP-FAST пользуются аутентификацией TLS.

     

    Архитектура EAP

    Собственно архитектура EAP основывается на рёх логических элементах:

    • EAP Peer (одноранговый EAP): Это логическая составляющая, запрашивающая доступ в соответствующую сетевую среду. Как правило, это ПК, ноутбук, планшет и тому подобное. В 802.1X она носит название просителя (supplicant).

    • EAP Authenticator (аутентификатор EAP): Логический элемент, к которому подключается одноранговое устройство, например, точка доступа беспроводной локальной сети, коммутатор локальной сети, шлюз сотовой сети (LTE ePDG) и тому подобное.

    • Сервер EAP: Сервер аутентификации предоставляет службы выполнения удостоверения аутентификации, например, сервер RADIUS (Remote Authentication Dial-In User Service, Службы дистанционной аутентификации пользователей, подключающихся по коммутируемым линиям).

    Сама процедура EAP иллюстрируется приводимой ниже схемой:

     

    Рисунок 3.9


    Образец процедуры идентификации EAP

    Это пример из сетевой среды Wi-Fi. Клиент (именуемый peer, одноранговым устройством) подключается к соответствующей сети. Имеющийся контроллер Wi-Fi (который, совместно со своей точкой доступа устанавливает аутентификацию EAP) определяет нового клиента и отправляет запрос на идентификацию EAP (1). Клиент отвечает откликом идентификации EAP (2), а соответствующий контроллер переправляет этот отклик своему серверу аутентификации (3). Сервер аутентификации отправляет запрос типа EAP в аутентификатор (4), который переправляет его клиенту (5). Этот запрос типа EAP является запросом от сервера, сообщающим значение типа аутентификации сервера. Если клиент его поддерживает, он отвечает откликом типа EAP, подтверждая данный тип аутентификации (6), а аутентификатор переправляет его своему серверу (7). На данном этапе клиент и сервер пришли к согласию о соответствии запрошенного метода аутентификации (TLS, TTLS и тому подобного) (8), а раз достигнуто согласие, сервер отправляет сообщение успешности EAP в аутентификатор (9), который переправляет его соответствующему клиенту (10). При этом данный клиент осуществляет регистрацию и подключается к этой сетевой среде.

    Протоколы авторизации и доступа

    Как мы видели в своём предыдущем разделе, аутентификация ответственна за проверку подлинности пользователя, подтверждения того кем он является и на самом ли деле он является тем , за кого себя выдаёт. Авторизация сочетает персональные сведения со сведениями доступа чтобы разрешать этому пользователю считывать, записывать, исполнять или удалять файлы и информацию на основе его персональных данных и полномочий.

    Устройства NAC (Network access control, Сетевого контроля доступа) применяются для обеспечения соблюдения политик сотрудничества. Функции и возможности NAC будут обсуждаться в самом последнем разделе этой главы, Компоненты сетевой безопасности - RADIUS/TACACS+, FWs, IDS/IPS, NAC и WAF.

    Хэш функции и свёртки сообщений

    Аутентификация сообщений применяется для следующих целей:

    • Защита целостности сообщения: Чтобы гарантировать что отосланное сообщение не было изменено в процессе передачи.

    • Подтверждения подлинности сообщения: Для удостоверения в персональных данных первоисточника сообщения; то есть, чтобы проверить от кого мы получили это сообщение.

    • Невозможность отказа от авторства его первоисточника: Для убеждения отправителя в том, что данное сообщение было доставлено, а получателя в том, что оно отправлено самим отправителем. Это гарантирует что ни обин из них не сможет отрицать обработку им данного сообщения.

    Функция хэширования это принимающая на вход блоки произвольной длины функция и производящая на выходе хэш значение фиксированного размера. Такой результат вычисления функции хэширования носит название MAC (message authentication code, кода аутентификации сообщения).

    Функции хэширования применяются для проверки целостности данных. Вот некоторые применения хэшей:

    • В безопасности: Для проверки того что сообщения или файлы появляются в том же самом виде, в котором были отправлены.

    • Во взаимодействии данных: Для проверки целостности появляющихся кадров, например, контрольные суммы Ethernet.

    • Для выявления внедрений: Чтобы убедиться было ли изменено данное сообщение в процессе транспортировки для обхода механизмов защиты.

    • Выявление вируса: Для определения изменённых вирусом файлов.

    Функция хэширования обязана поддерживать два параметра:

    • Одностороннего хэширования: не должно существовать возможности вычисления его исходных данных из самого хэша.

    • Исключающее конфликты хэширование: не должно иметься возможности обнаружения двух сообщений с одинаковым хэшем.

    На приводимой ниже схеме отображён простой механизм хэширования, применяемый лишь для проверок целостности соощения:

     

    Рисунок 3.10


    Простая операция хэширования

    Здесь мы можем наблюдать что наш отправитель для добавления в своё сообщение свёртки сообщения пользуется функцией хэширования. Это сообщение отправляется к его получателю, который выделяет полученную свёртку из изначального сообщения и вычисляет её снова. Когда значение полученной свёртки равно вычисленному значению, данное сообщение принимается. В случае их отличия данное сообщение отбрасывается.

    В случае применения значения хэша для шифрования, как это отражено на следующей схеме, при использовании шифрования это тот же самый механизм, что и при шифровании/ дешифрации:

     

    Рисунок 3.11


    Функции хэширования с шифрованием

    Шифрование может быть симметричным и асимметричным и, в случае несимметричного, оно может применяться под шифрование значением общедоступного ключа для доступа к безопасной веб странице или шифрования значением общедоступного ключа для подписи документа.

    Наиболее распространёнными функциями хэширования являются MD5 (Message Digest 5, 5 свёртка сообщений) и SHA1 (Secure Hash Algorithm 1, 1 алгоритм безопасного хэширования). MD5 впервые был стандартизован в RFC1321 (IETF, April 1992). MD5 вырабатывает свёртку в 128 бит. SHA1 впервые был стандартизован NIST (National Institute of Standards and Technology) США и создаёт 160- битные свёртки. Хотя после MD5 и SHA1 были разработаны более искусные и более безопасные алгоритмы, например, SHA2, SHA3 и прочие, MD5 и SHA1 всё ещё наиболее распространённые в коммерческих реализациях стандарты хэша.

    IPSec и протоколы управления ключами

    IPSec это набор протоколов, разработанный для предоставления функциональных возможностей VPN (Virtual Private Network, виртуальной частной сети). Прежде чем изучать сам протокол, мы обсудим типы и возможности соединения VPN. Впервые IPSec была стандартизована в RFC 2401 (IETF, November 1998), а позднее превратилась в абсолютный стандарт в RFC 4301 (ISTF, December 2005) и обновлялась в прочих RFC.

    IPSec предоставляет такие услуги:

    • Конфиденциальность: через шифрование данных между своими отправителем и получателем

    • Целостность: добавлением функции хэширования к самим данным

    • Удостоверение подлинности: посредством аутентификации между обеими сторонами

    • Припятствие воспроизведения: через упорядочение отправляемых сторонами пакетов

    VPN

    VPN это некий способ установления виртуального соединения поверх общедоступной инфраструктуры. Обычно установление виртуального соединения достигается туннелированием, которое является очень распространённым механизмом при взаимодействии данных, когда внутренний пакет внедряется в некий внешний заголовок, переносящий его через имеющуюся общедоступную сетевую среду. Приводимая ниже схема отображает пример внедрения простого туннеля:

     

    Рисунок 3.12


    Туннелирование

    Здесь мы можем наблюдать два подключённых к Интернету маршрутизатора. Слева у нас имеется хост 10.33.1.18, в то время как справа у нас расположен хост 10.33.13.32. Мы создаём между своими двумя маршрутизаторами туннель и адресами этого туннеля выступают 172.32.1.1 для нашего левого маршрутизатора и 172.32.1.2 для правого.

    Как это отражено на схеме ниже, которая является файлом перехвата Wireshark, первым появляющимся моментом выступает внешний заголовок. Справа, после соответствующего заголовка Ethernet, он переносится заголовком туннеля - в нашем примере заголовком туннеля GRE (Generic Routing Encapsulation) - а затем следует внутренний IP заголовок со значениями адресом туннеля.

    Когда мы пересылаем обмен поверх Интернета, нам необходимы межсетевые экраны, которые подключены с обеих сторон к Интернету, нам требуется протокол аутентификации с тем, чтобы эти межсетевые экраны имели возможность выполнять удостоверение друг друга и нам нужно шифрование своих сведений, которые следуют через Интернет между этими межсетевыми экранами. Именно это отражает наша следующая схема:

     

    Рисунок 3.13


    Зашифрованный туннель между межсетевыми экранами

    В своём примере верхнего пакета (1) мы можем видеть не зашифрованный обмен с внешними IP адресами F1 и F2. Это внешние адреса наших межсетевых экранов. Значения внутренних адресов совпадают с адресами ПК с обеих сторон, то есть A и B.

    В примере нижнего пакета (2) мы наблюдаем что наш внутренний заголовок и данные скрыты, как это и должно быть при обмене через Интернет, причём единственное что обнаружит перехватчик это значения адресов межсетевых экранов. Основной целью IPSec выступает создание такого туннеля.

    Принципы и операции IPSec

    Как это отражено на идущей следом схеме, существует три способа применения IPSec:

    • Площадка к площадке (1): когда мы подключаем межсетевой экран к межсетевому экрану с тем, чтобы два местоположения были соединены таким образом, как будто между ними имеется прямая линия. Этот тип связи прозрачен для работающего с удалёнными серверами пользователя, поскольку те выступают частью его сетевой среды.

    • Клиент к площадке (2): когда вы подключаетесь к своей работе через клиента VPN. Вы запускаете такого клиента, вводите имя пользователя и пароль и, если это необходимо, код из своего маркера и регистрируетесь в этой сетевой среде.

    • Клиент к клиенту (3): когда два клиента взаимодействуют и шифруют информацию между собой. Этот вариант должен стать более распространённым в IPv6, поскольку IPSec выступает неотъемлемой частью этого протокола и каждое устройство обладает своим интернет адресом клиента:

     

    Рисунок 3.14


    Режимы операции IPSec

    В своём следующем разделе мы опишем этот протокол и как инициализируются и сопровождаются на протяжении работы туннели.

    IPSec обладает тремя этапами операций:

    1. Этап 1 IKE: Согласование необходимых параметров безопасности и построение туннеля 1 этапа IKE.

    2. Этап 2 IKE: Построение туннеля этапа 2 IKE.

    3. Обмен данными: Отправка сведений по построенному на этапе 2 IKE туннелю.

    В своём следующем разделе мы более подробно взглянем ни эти три этапа.

    Установление туннеля IPSec

    Прежде чем переходить к обмену поверх IPSec, два одноранговых партнёра устанавливают безопасный канал. Он предоставляется протоколом с названием IKE (Internet Key Exchange, обмена ключами через Интернет), также именуемого ISAKMP (Internet Security Association and Key Management Protocol, протоколом ассоциации безопасности Интернета и управления ключами).

    [Замечание]Замечание

    ISAKMP был стандартизованным RFC 2408 (IETF, November 1998) протоколом, который устанавливал безопасное соединение между двумя одноранговыми партнёрами в Интернете. RFC 2409 (IETF, November 1998) был опубликован одновременно и описывал применение Oakley (протокол управления ключами), SKEME а также ISAKMP для той же самой цели. IKEv2 впервые был стандартизован в RFC 4306 (IETF, December 2005) и сочетался с этими двумя (помимо RFC 2407 для DOI) и превратил их в устаревшие. В Cisco они ссылались на IKE и ISAKMP как на один и тот же протокол, а в WireShark вы наблюдаете ISAKMP, но не IKE, а потому, практически, IKE и ISAKMP могут рассматриваться как одно и то же. Самым последним стандартом для IKEv2 выступает RFC 7296 (IETF, October 2014) с обновлениями в RFC 7427, 7670 и RFC 8247.

    Протокол IKE применяется для установления туннеля IPSec между двумя одноранговыми партнёрами и работает в три этапа.

    Самым первым этапом выступает согласование (negotiation). Этот этап инициализируется тем одноранговым партнёром, который желает отправлять данные другой стороне. На этом этапе согласовываются такие параметры:

    • Алгоритм хэширования: Могут применяться различные варианты. Наиболее распространёнными являются MD5 и SHA.

    • Аутентификация: Эти два одноранговых партнёра идентифицируют друг друга. Наиболее распространёнными являются предварительные общие ключи и цифровые сертификаты.

    • Группа Диффи- Хеллмана: Определяет надёжность применяемого ключа в процессе самого обмена ключами (группы определены в RFC 3526).

    • Время жизни: Сколько времени будет занимать этап 1 IKE. Чем оно более короткое, тем оно более безопасное.

    • Шифрование: Какой алгоритм бедет применяться для шифрования.

    Вторым этапом выступает обмен ключами. После этапа согласования, наши два одноранговых партнёра выполнят обмен ключами. К окончанию данного этапа эти два одноранговых партнёра будут обладать совместными ключами.

    Третьим этапом является аутентификация. На данном этапе два одноранговых партнёра идентифицируют друг друга при помощи того метода аутентификации, о котором договорились на этапе 1.

    Режимы операции IPSec

    IPSec обладает двумя режимами действий: режимом туннеля и режимом транспортировки.

    • Режим туннеля IPSec: Весь пакет IP целиком шифруется и скрывается внутри нового пакета IP. В режиме туннеля изначальный пакет шифруется и внедряется внутри нового внешнего заголовка IP. Именно эту реализацию мы наблюдали на Рисунке 3.12. Режим туннеля в основном применяется между межсетевыми экранами при топологии площадка- к- площадке или между клиентом и межсетевым протоколом при топологии клиента- к- площадке.

    • Режим транспортировки IPSec: К первоначальному пакету IP добавляется соответствующий заголовок IPSec. Обычно это используется в VPN клиента- к- площадке. Режим транспортировки применяется для защиты уровней с 4 по 7. Данный метод обычно применяется между клиентом и сервером или между двумя оконечными узлами, которые могут располагаться за межсетевыми экранами.

    Протоколы аутентификации и шифрования IPSec

    В аутентификацию и целостность вовлекаются протоколы AH и ESP:

    • Authentication Header (AH) (заголовок аутентификации): Предоставляет целостность и противодействие воспроизведению. AH защищает сам пакет IP, вырабатывая хэш функцию и предоставляя значение хэша.

    • Encapsulating Security Payload (ESP) (Инкапсуляция безопасности полезной нагрузки): Предоставляет целостность, противодействие воспроизведению и защиту шифрованием и именно поэтому является наиболее популярным вариантом.

    Протокол заголовка аутентификации (AH) IPSec

    Приведённая ниже схема показывает структуру пакета для Режима транспортировки AH и для Режима туннеля AH. При данных режимах действия IPSec реализует лишь аутентификацию для вычисления функции хэширования над всем пакетом целиком:

     

    Рисунок 3.15


    Режим транспорта и режим туннеля AH IPSec - структура пакета

    Заголовок AH содержит следующие поля: следующий заголовок, для указания на протокол самого верхнего уровня (например, TCP или UDP); длину для указания значения длины заголовка AH; SPI (Security Parameters Index, индекса параметров безопасности) для указания того потока, к которому относится данный пакет, Порядок, которым является порядковый номер для защиты от атак воспроизведения; и ICV (Integrity Check Value, значение проверки целостности), которым выступает значение хэша.

    Протокол инкапсуляции безопасной нагрузки IPSec

    Следующая далее схема показывает установленную структуру в Режиме транспорта ESP и в Режиме туннеля ESP. В этих режимах работы IPSec реализует аутентификацию и шифрование для вычисления функции хэширования над всем пакетом целиком и шифрования самого пакета:

     

    Рисунок 3.16


    Режим транспорта и режим туннеля ESP IPSec - структура пакета

    В режиме транспорта ESP мы добавляем заголовок и хвост ESP. Для IP и всего что выше (то есть для Уровня 3 и выше, включая TCP/ UDP и протокол приложения) предоставляется шифрование.

    SSL/ TLS и посредники

    SSL (Secured Socket Layer, Протокол защиты сокетов) и его преемник TLS (Transport Layer Security, Протокол защиты транспортного уровня) это протоколы, которые применяются для шифрования более верхних уровней. Эти протоколы работают поверх порта 443 TCP или UDP для доступа к веб страницам безопасным HTTP (HTTPS) поверх порта TCP 443 и для доступа к устройству Google при помощи порта 443 UDP с применением протокола QUIC/GQUIC.

    Основы протокола

    SSL был впервые предложен Netscape в 1994 и стандартизован как TLSv1 в RFC 2246 (IETF, January 1999), TLSv1.1 в RFC 4346 (IETF, April 2006), TLSv1.2 в RFC 5246 (IETF, August 2008) TLSv1.3 в RFC 8446 (IETF, August 2018).

    Обычным применением для TLS является предоставление безопасного взаимодействия между клиентом и сервером (одноранговыми партнёрами) при обеспечении таких услуг:

    • Аутентификации: Сторона сервера всегда подтверждена; сторона клиента подвергается удостоверению опционально.

    • Конфиденциальность: Все отправляемые в установленный канал взаимодействия данные шифруются и видны лишь для двух одноранговых партнёров.

    • Целостность: Отправленные по данному каналу данные не могут быть изменены без выявления этого факта его одноранговыми партнёрами.

    TLS составляется операциями двух этапов:

    • Протоколом рукопожатия: Для установления совместного ключа безопасности между соответствующими клиентом и сервером применяет криптографию с общедоступным ключом.

    • Протокол записи: Для защиты взаимодействия между этими клиентом и сервером пользуется тем ключом безопасности, который был установлен в протоколе рукопожатия.

    Протокол рукопожатия

    Протокол рукопожатия применяется клиентом и сервером. Такой клиент, в качестве которого может выступать ваш веб браузер дома и его сервер, которым может быть веб сервер вашего банка, договариваются о версии применяемых алгоритмов криптографии, выполняют аутентификацию друг друга и устанавливают совместный секрет для взаимодействия. На последующих схемах мы можем наблюдать как на протяжении этапа рукопожатия устанавливается соединение.

    Следующая схема показывает эти переговоры целиком:

     

    Рисунок 3.17


    Протокол рукопожатия TLS

    Здесь мы можем наблюдать в пакетах с 1 по 3 открытие соединения TCP, установление согласия по SSL в пакетах с 4 по 12 и то, что в пакетах с номерами от 13 и выше начинается передача обмена.

    Самые первые два пакета при согласовании это Client Hello и Server Hello, которые применяются для установления возможностей безопасности между этими двумя одноранговыми партнёрами. Давайте взглянем на самый первый пакет при рукопожатии TLS, которым выступает пакет 4 - Client Hello Эти клиент и сервер приходят к согласию по версии протокола, комплекту шифрования, идентификатору сеанса и методу завершения:

     

    Рисунок 3.18


    Согласование TLS - Hello клиента

    Эти клиент и сервер также вырабатывают два контрольных слова (nonces, в предыдущей схеме RND) и обмениваются ими.

    [Замечание]Замечание

    Контрольное слово это произвольное число, которое должно применяться только в случае взаимодействия с криптографией. Этот термин ссылается на случайное число, которое вырабатывается для определённого применения. Данный термин (nonce) происходит от применяемого единожды числа - number used once или number once.

    Вслед за сообщением Client Hello сервер отвечает Server Hello. Это отражено на следующей схеме:

     

    Рисунок 3.19


    Согласование TLS - Hello сервера

    В сообщении Server Hello мы можем видеть, что комплектом криптографии выступает AES-256 с SHA-384 и что согласованной версией является TLSv1.2, причём без сжатия.

    В нашем следующем пакете, как это показано на схеме ниже, от данного сервера к его клиенту отправляется сертификат. Этот пакет носит название Certificate, Server Key Exchange, Server Hello Done:

     

    Рисунок 3.20


    Согласование TLS - Certificate, Server Key Exchange, Server Hello Done

    Здесь мы можем наблюдать, что наше сообщение TLS содержит три части: Certificate, которая содержит сертификат из 1 592 байт, Server Key Exchange, содержащую значение алгоритма подписи и соответствующий общедоступный ключ, а также Server Hello Done, который указывает конец этих сообщений сервера.

    Наш следующий пакет, как это отображает приводимая ниже схема, это Client Key Exchange. В данном пакете, когда применяется RSA, клиент отправляет для выработки симметричных криптографических ключей секрет предварительного хозяина и шифрует им соответствующий общедоступный ключ сервера. Этот клиент также отправляет сообщение Change Cipher Spec и сам клиент копирует такую ожидающую рассмотрения Спецификацию шифра в свою текущую Cipher Spec:

     

    Рисунок 3.21


    Согласование TLS - Обмен ключами клиента

    На данном этапе согласование устанавливаемого сеанса выполнено, но могут иметься и дополнительные сообщения, в особенности в последующих версиях TLS.

    В нашем примере, как показывает следующая схема, мы можем наблюдать сообщение New Session Ticket:

     

    Рисунок 3.22


    Сообщения TLS - Квитанция нового сеанса

    В данном случае это сообщение отправляется соответствующим сервером, сообщая клиенту о необходимости применения новой квитанции, которая содержит новые параметры шифра. Соответствующий клиент обязан начать применять новую квитанцию как только сможет после того как он удостоверится в соответствующем сообщении Finished для новых соединений.

    SSL/ TLS также применяется при шифровании прочих протоколов, например, S-FTP (Secure File Transfer Protocol, протокол безопасного обмена файлами), SSH (Secure Shell, безопасной оболочки) для удалённого подключения к коммуникационным устройствам, SSIP (Secure SIP, безопасного протокола инициации сеанса) и SRTP (Secure RTP, безопасного транспортного протокола реального времени) для безопасности сеансов телефонии и мультимедиа. Позднее в данной книге мы обсудим эти протоколы.

    Компоненты сетевой безопасности - RADIUS/TACACS+, FWs, IDS/IPS, NAC и WAF

    В данном разделе мы предоставим краткое описание различных устройств сетевой безопасности и их функциональные возможности.

    Межсетевые экраны

    Межсетевые экраны предлагают следующие функциональные возможности:

    • Фильтрация пакетов перенаправляет или отбрасывает сеансы на основе информации Уровня 3 и Уровня 4. Этот механизм самый простой для прекращения.

    • Network Address Translation (NAT, трансляция сетевых адресов) применяется для перевода входящих пакетов из внутренней во внешнюю адресацию. Данный механизм в качестве побочного эффекта обеспечивает безопасность, но при этом не рассматривается механизмом безопасности.

    • Контроль состояния отслеживает значения направлений соединений TCP или сеансов UDP, которые открываются только через него, а не только сведения Уровня 3 и Уровня 4. Этот метод обеспечивает дополнительную безопасность для данного межсетевого экрана.

    Помимо этого, большинство современных межсетевых экранов способны обеспечивать дополнительные механизмы, зависящие от лицензирования:

    • IDPS (Intrusion detection and prevention, выявления вторжений и их предотвращения): способно изучать и блокировать обмен, который поступает в подозрительных шаблонах.

    • Осведомлённость о приложениях: возможность проверки протоколов верхнего уровня, включая вредоносный обмен, передаваемый по безобидным протоколам.

    • Песочницы: Могут исполнять доставляемые файлы прежде чем они будут выгружены в устройства пользователей.

    • Искусственный интеллект: Это функциональная возможность со способностью к самостоятельному обучению поведения сетевой среды и реагированию на него.

    Межсетевые экраны составляют основу защитных сетевых устройств во всякой сетевой среде и они могут применяться в различных местах:

    • Межсетевые устройства периметра: Для защиты от приходящих из внешних сетей, включая Интернет, рисков.

    • Межсетевые устройства центра обработки данных: Они размещаются между сетевой средой пользователей и их центром обработки данных для защиты от исходящих от серверов организации рисков.

    • Межсетевые устройства ядра: Применяются для разделения сетевых подразделений организации, если это необходимо и предоставления безопасности наивысшего уровня для тех подразделений организации, которым она требуется.

    Принятие решения относительно применения функциональных возможностей зависит от технических, экономических и деловых принимаемых во внимание вариантов. Это также зависит от расположения межсетевых экранов.

    RADIUS, NAC и прочие функциональные возможности аутентификации

    RADIUS (Remote Authentication Dial In User Service, служба дистанционной аутентификации подключаемых по коммутируемым линиям пользователей) была определена в RFC 2138 (IETF, June 2000). RADIUS была проиллюстрирована ранее в этой главе на Рисунке 3.9. Сервер RADIUS реализует AAA - authentication, authorization, and accounting (аутентификацию, авторизацию и ведения учёта).

    Поскольку RADIUS происходит из 2000х, существуют новые заменяющие его службы, а наиболее популярными являются TACACS+ и Diameter. Хотя RADIUS всё ещё широко применяется для предоставления услуг AAA.

    Межсетевые экраны веб приложения(WAF)

    WAF (Web application firewalls, межсетевые экраны веб приложения) были созданы для защиты от проистекающих от веб серверов уязвимостей, таких как внедрение SQL, межсайтовые сценарии, подделка межсайтовых запросов, DNS атаки и многое иное. Общим знаменателем таких атак выступает применение действий пользователя для внедрения вредоносного кода в его конечное устройство или применение DNS атак для перенаправления пользователей на вебсайты, которые будут внедрять такой вредоносный код.

    При межсайтовых атаках, которые обычно носят название XSS (cross-site scripting), для просмотра применяется веб сервер. Затем этот веб сервер внедряет вредоносный сценарий в оконечное устройство (ПК, ноутбук и тому подобное).

    SQLi (SQL injection, внедрение SQL) это атака, которая пытается внедрить в SQL приложение команды языка SQL для изменения содержимого базы данных.

    Атаки DNS пытаются запутать своих клиентов, в основном вызывая открытие ими сеансов с вредоносными веб сайтами, которые разрушают их.

    В отличии от основной функциональной возможности межсетевого экрана, которая разрешает или блокирует обмен в зависимости от его источника, получателя и направлений, а также от IDS/IPS которая выявляет вредоносные шаблоны в простых веб- фильтрах, перенаправляющих или блокирующих обмен с определённых веб- сайтов, WAF просматривают содержимое самих веб приложений и фильтруют запускаемый ими код, а потому они применяются дополнительно к прочим механизмам защиты.

    Выводы

    В первых двух главах этой книги мы обсудили сетевые архитектуру и протоколы, что привело нас к данной главе, в которой мы поговорили о протоколах безопасности и том, где они применяются для защиты наших сетевых сред.

    На данный момент мы разобрались с различными видами работы шифрования протоколов аутентификации, а также с основными протоколами которые действуют в сетевых средах.

    В своей следующей главе мы обсудим инструменты и методы для атак на сетевые среды и сетевые протоколы с тем, чтобы изучить как от них защищаться.

    Вопросы

    Для проверки знаний данной главы ответьте на следующие вопросы:

    1. Как применяются для шифрования протоколы асимметричного кодирования?

      1. Для установления взаимодействий применяются общедоступные ключи и два частных ключа.

      2. Общедоступные ключи используются для шифрования данных, в то время как частный ключ применяется для дешифрации этих данных.

      3. Для шифрования данных применяется частный ключ, в то время как общедоступный ключ задействован для дешифрации этих данных.

      4. Один и тот же ключ применяется для шифрования и дешифрации; единственное отличие заключается в том способе, которым он применяется.

    2. Что такое целостность?

      1. Предохранение секретных сведений от пользователей без авторизации

      2. Проверка идентичности взаимодействующих одноранговых партнёров

      3. Предохранение сведений от изменений в процессе их передачи

      4. Содержание в безопасности идентичности пользователя

    3. Что такое конфиденциальность?

      1. Удержание скрытой информации от пользователей без авторизации

      2. Удержание секретных сведений от пользователей без авторизации

      3. Предохранение сведений от изменений в процессе их передачи

      4. Защита данных от воровства

    4. Как применяются протоколы асимметричного шифрования для кодирования?

      1. Для установления взаимодействий применяются два общедоступных ключа и два частных ключа.

      2. Общедоступный ключ используется для шифрования данных, в то время как частный ключ применяется для дешифрации этих данных.

      3. Для шифрования данных применяется частный ключ, в то время как общедоступный ключ задействован для дешифрации этих данных.

      4. Один и тот же ключ применяется для шифрования и дешифрации; единственное отличие заключается в том способе, которым он применяется.

    5. Для чего применяется функция хэширования?

      1. Небольшой ключ, применяемый для аутентификации

      2. Строка переменной длины, которая производится из блока данных переменной длины, которая применяется для шифрования

      3. Строка фиксированной длины данных, производимая из блока данных переменной длины для хранения секрета сообщения

      4. Строка фиксированной длины данных, производимая из блока данных переменной длины для хранения целостности сообщения

    6. Что представляет собой протокол EAP?

      1. Инфраструктуру определения доступа пользователя в сетевую среду, которая может применять различные методы аутентификации

      2. Инфраструктура, которая устанавливает полный набор протоколов для доступа пользователя в сетевую среду

      3. Протокол доступа, который делает возможными в сетевой среде аутентификацию и шифрование

      4. Часть SSL/TLS, которая вовлечена в установление безопасного подключения через Интернет

    7. Что такое сертификат?

      1. Сертификация постулирует легитимность частного ключа.

      2. Он предоставляется Центром сертификации (CA) для владельца веб сервера для доказательства его идентичности своим клиентам.

      3. Он предоставляется Центром сертификации подключающимся к своему веб серверу клиентам для доказательства их идентичности..

      4. Он предоставляется клиенту и серверу для установления взаимодействия.

    8. В чём заключается разница между режимами туннеля и транспорта в IPSec?

      1. Режим туннеля применяется между клиентами, в то время как режим транспорта применяется между серверами.

      2. Режим туннеля шифруется, в то время как режим транспорта нет.

      3. Режим туннеля работает с ESP, в то время как режим транспорта работает с AH.

      4. Режим туннеля добавляет внешний заголовок IP, который применяется для маршрутизации соответствующих пакетов IPSec через Интернет, в то время как транспортный режим применяет первоначальный заголовок IP.