Секреты безопасной работы с криптоконтейнерами truecrypt и veracrypt
Содержание:
- TCP— Transmission Control Protocol
- Как узнать пароль от чужого Wi-Fi
- Шаг 2. Конфигурирование интерфейса
- Зашифровать обычный раздел
- Модули сканирования
- Раскрытие модели роутера из Vendor Specific: Microsof: WPS
- Что такое маска адреса (подсеть)
- Возможна ли атака человек-посередине без доступа к локальной сети?
- Преимущества UDP
- Можно ли улучшить качество сигнала WiFi на Raspberry Pi 3?
- Сканирование локальных и глобальных IP
- Conclusion
- Зашифровать системный раздел
- Сетевые протоколы UDP, TCP, ICMP
- Сравнение с моделью OSI
TCP— Transmission Control Protocol
Обмен данными, ориентированный на соединения, может использовать надежную связь, для обеспечения которой протокол уровня 4 посылает подтверждения о получении данных и запрашивает повторную передачу, если данные не получены или искажены. Протокол TCP использует именно такую надежную связь. TCP используется в таких прикладных протоколах, как HTTP, FTP, SMTP и Telnet.
Протокол TCP требует, чтобы перед отправкой сообщения было открыто соединение. Серверное приложение должно выполнить так называемое пассивное открытие (passive open), чтобы создать соединение с известным номером порта, и, вместо того чтобы отправлять вызов в сеть, сервер переходит в ожидание поступления входящих запросов. Клиентское приложение должно выполнить активное открытие (active open), отправив серверному приложению синхронизирующий порядковый номер (SYN), идентифицирующий соединение. Клиентское приложение может использовать динамический номер порта в качестве локального порта.
Сервер должен отправить клиенту подтверждение (ACK) вместе с порядковым номером (SYN) сервера. В свою очередь клиент отвечает АСК, и соединение устанавливается.
После этого может начаться процесс отправки и получения сообщений. При получении сообщения в ответ всегда отправляется сообщение АСК. Если до получения АСК отправителем истекает тайм-аут, сообщение помещается в очередь на повторную передачу.
Поля заголовка TCP перечислены в следующей таблице:
Поле | Длина | Описание |
---|---|---|
Порт источника | 2 байта | Номер порта источника |
Порт назначения | 2 байта | Номер порта назначения |
Последовательный номер | 4 байта | Последовательный номер генерируется источником и используется назначением, чтобы переупорядочить пакеты для создания исходного сообщения и отправить подтверждение источнику. |
Номер подтверждения | 4 байта | Если установлен бит АСК поля «Управление», в данном поле содержится следующий ожидаемый последовательный номер. |
Смещение данных | 4 бита | Информация о начале пакета данных. |
Резерв | 6 битов | Резервируются для будущего использования. |
Управление | 6 битов | Биты управления содержат флаги, указывающие, верны ли поля подтверждения (АСК), указателя срочности (URG), следует ли сбрасывать соединение (RST), послан ли синхронизирующий последовательный номер (SYN) и т. д. |
Размер окна | 2 байта | В этом поле указывается размер приемного буфера. Используя подтверждающие сообщения, получатель может информировать отправителя о максимальном размере данных, которые тот может отправить. |
Контрольная сумма | 2 байта | Контрольная сумма заголовка и данных; по ней определяется, был ли искажен пакет. |
Указатель срочности | 2 байта | В этом поле целевое устройство получает информацию о срочности данных. |
Опции | переменная | Необязательные значения, которые указываются при необходимости. |
Дополнение | переменная | В поле дополнения добавляется столько нулей, чтобы заголовок заканчивался на 32-битной границе. |
TCP — это сложный, требующий больших затрат времени протокол, что объясняется его механизмом установления соединения, но он берет на себя заботу о гарантированной доставке пакетов, избавляя нас от необходимости включать эту функциональную возможность в прикладной протокол.
Протокол TCP имеет встроенную возможность надежной доставки. Если сообщение не отправлено корректно, мы получим сообщение об ошибке. Протокол TCP определен в RFC 793.
Как узнать пароль от чужого Wi-Fi
Нажмите кнопку «Вход» и введите:
- Логин: antichat
- Пароль: antichat
Также нажмите на иконку Wi-Fi, чтобы временно убрать показ беспроводных сетей — в базе данных так много Wi-Fi точек доступа, что уже трудно ориентироваться по карте, т. к. они загораживают обзор.
Введите название интересующего вас города и станции метро или улицы:
Найдите дом, где вы будете проживать:
И вновь нажмите на иконку Wi-Fi, чтобы появились беспроводные сети:
В описании каждой Wi-Fi сети предпоследняя строка — это имя сети, а последняя строка — это пароль от этой Wi-Fi сети!
Вот так всё просто! А учитывая огромное количество Wi-Fi сетей вокруг нас, почти всегда удаётся найти ту, которая присутствует в базе данных 3wifi.
Шаг 2. Конфигурирование интерфейса
По умолчанию dhcpcd обрабатывает конфигурацию интерфейса. Поскольку мы собираемся настроить статический беспроводной IP-адрес, позже нам будет нужно, чтобы он игнорировал интерфейс wlan0, карту Wi-Fi по умолчанию и не позволял другим интерфейсам ее использовать. Это должно изолировать нашу точку доступа от чьего-либо вмешательства в ее работу. Откройте файл в редакторе nano.
sudo nano /etc/dhcpcd.conf
Вставьте следующую строку в конец файла. Если вы добавили какие-либо интерфейсы, поместите их выше этой строки, чтобы отказать им в доступе к wlan0.
denyinterfaces wlan0
В только что установленной системе мы просто вставляем ее в конце файла.
Чтобы сохранить наши изменения в nano, нам нужно нажать Ctrl + X, затем Y, затем Enter. Запомните эту комбинацию клавиш, так как мы будем часто ее использовать.
Зашифровать обычный раздел
VeraCrypt также может шифровать разделы, также как BitLocker, это означает, что на жестком диске вашей системы будет зашифрован целый раздел с использованием пароля. Вы можете смонтировать его как зашифрованный контейнер (как описано выше).
Чтобы зашифровать обычный раздел с помощью VeraCrypt, выполните следующие действия:
- Откройте VeraCrypt и нажмите Создать том.
- Выберите второй вариант Зашифровать несистемный раздел / диск и нажмите Далее.
- Выберите раздел, который вы хотите зашифровать, и нажмите Далее.
Примечание: не выбирайте системный раздел на этом шаге, то есть любой раздел, на который вы могли установить Windows, MacOS, Linux или любую другую ОС в вашей системе.
- Выберите второй вариант Зашифровать раздел на месте и нажмите Далее.
Примечание: не выбирайте первый вариант, иначе вы можете потерять важные данные, потому что это отформатирует раздел, и все данные на выбранном разделе будут потеряны.
- Выберите алгоритмы шифрования (если не уверены, оставьте значение по умолчанию) и нажмите Далее.
- Установите пароль для зашифрованного раздела и нажмите Далее.
- Теперь как можно быстрее перемещайте указатель мыши в окне в случайном порядке и нажмите Разметить или Далеепосле того, как «полоса случайности» станет зеленой.
- Выберите режим очистки (выберите «Нет», если не уверены), нажмите Далее, а затем нажмите Зашифровать, чтобы начать шифрование.
Примечание. Режим очистки необходим в ситуациях, когда у вас есть важные данные на выбранном разделе, которые вы не можете подвергать риску. Хотя VeraCrypt зашифрует ваш диск с его полными данными, люди могут восстановить некоторые незашифрованные данные с помощью современных технологий, если вы не выберете режим очистки, поэтому выберите любой вариант, кроме 1 проход.
Молодец, вы успешно зашифровали раздел. Теперь вы можете установить его для автоматического хранения и шифрования данных.
Модули сканирования
- Router Scan (main) — основной модуль сканирования, отвечает за подбор пароля к веб интерфейсу устройства, и за получение информации.
- Detect proxy servers — обнаруживает прокси серверы протокола HTTP, и оповещает в случае удачи — в колонку имени/типа устройства в скобках будет дописано «proxy server», а в колонку WAN IP Address — реальный внешний адрес прокси сервера. Для индикации записи в таблице успешных результатов, в колонку DNS будет записан текст «Proxy Good Check».
- Use HNAP 1.0 — проверяет хост на наличие поддержки протокола Home Network Administration Protocol v1.0 и уязвимостей в нём. В случае обнаружения поддержки запишет «HNAP Info» в столбец имени/типа устройства. Если уязвимость будет обнаружена — запишет в колонку авторизации текст «HNAP bypass auth», а также полученные настройки беспроводной сети. Примечание: Если до этого основной модуль успешно подобрал пароль авторизации, то модуль HNAP не будет задействован. Для принудительной проверки уязвимости HNAP, отключите основной модуль и пересканируйте устройство.
Последующие модули добавлены в качестве бонуса, и к роутерам прямого отношения не имеют.
- SQLite Manager RCE — определяет уязвимые сервера SQLite, в которых имеется уязвимость выполнения произвольного PHP кода. Если SQLite Manager будет найден на узле, ссылка на него будет записана в колонку комментариев. Результат проверки уязвимости будет выведен в колонку имени/типа устройства. Если уязвимость будет обнаружена, то для индикации записи в таблице успешных результатов, в колонку DNS будет записан текст «SQLite Good Check».
- Hudson Java Servlet — определяет уязвимые сервера Hudson CI (а также Jenkins CI), в которых имеется уязвимость выполнения произвольного Java кода. Если Hudson/Jenkins CI будет найден на узле, ссылка на него будет записана в колонку комментариев. Результат проверки уязвимости будет выведен в колонку имени/типа устройства. Если уязвимость будет обнаружена, то для индикации записи в таблице успешных результатов, в колонку DNS будет записан текст «Hudson Good Check».
- phpMyAdmin RCE — выполняет поиск phpMyAdmin на сканируемом узле, после чего проверяет его на уязвимость выполнения произвольного PHP кода (эксплойт). Если phpMyAdmin будет найден на узле, ссылка на него будет записана в колонку комментариев. Результат проверки уязвимости будет выведен в колонку имени/типа устройства. Если уязвимость будет обнаружена, то для индикации записи в таблице успешных результатов, в колонку DNS будет записан текст «PMA Good Check».
Также, важно знать, что модули работают друг за другом — они могут перезаписать информацию в колонках, которую получил предыдущий модуль.
Раскрытие модели роутера из Vendor Specific: Microsof: WPS
Я несколько минут захватывал фреймы Wi-Fi, а затем стал искать по фильтрам, начал с фильтра frame contains «». Для ТД D-Link Systems DIR-615 раскрывалась модель роутера, поэтому я присмотрелся к фреймам, содержащим этот текст:
frame contains "D-Link Systems DIR-615"
Как можно увидеть, в тэге Tag: Vendor Specific: Microsof: WPS в полях Model Name, Model Number, Device Name раскрывается точная информация о модели роутера:
- Model Name: D-Link Router
- Model Number: DIR-615
- Device Name: D-Link Systems DIR-615
Дальнейшее изучение фреймов, содержащих информацию о модели роутера показало, что полезная информация также может находиться в полях:
- Manufacturer
- Serial Number
С помощью фильтров
wps.device_name != ""
или
wps.model_name != ""
можно вывести все фреймы, в которых поля «Имя устройство» или «Имя модели» являются не пустыми.
Следующий фильтр покажет фреймы, в которых поле ИЛИ «Имя устройства», ИЛИ «Имя модели», ИЛИ «Номер модели» являются не пустыми:
wps.device_name != "" || wps.model_name != "" || wps.model_number != ""
Следует помнить о фильтрах wps.serial_number и wps.manufacturer – из них также можно извлечь информацию.
Для моих данных фильтр wps.new_device_name не показывал никакой информации – у меня в радиусе доступности отсутствуют ТД с фреймами с какой-либо информацией в этом поле.
Если мы хотим посмотреть фреймы с информацией о версии для конкретной точки доступа, то можно использовать фильтр wlan.ssid:
(wps.device_name != "" || wps.model_name != "" || wps.model_number != "") && wlan.ssid == "ESSID"
Вместо ESSID вставьте имя интересующей сети, например, я хочу посмотреть для сети Ivan S., тогда:
(wps.device_name != "" || wps.model_name != "" || wps.model_number != "") && wlan.ssid == "Ivan S."
Запись Device Name: RT-N10P говорит о том, что модель роутера RT-N10P.
Вместо имени сети можно использовать BSSID (MAC-адрес), для этого имеются фильтры wlan.addr и wlan host, например:
wlan.addr==08.00.08.15.ca.fe wlan host 08:00:08:15:ca:fe
Что такое маска адреса (подсеть)
Понятие подсети введено, чтобы можно было выделить часть IP-адресов одной организации, часть другой и тд. Подсеть представляет собой диапазон IP-адресов, которые считаются принадлежащими одной локальной сети. При работе в локальной сети информация пересылается непосредственно получателю. Если данные предназначены компьютеры с IP-адресом, не принадлежащим локальной сети, то к ним применяются специальные правила для вычисления маршрута для пересылки из одной сети в другую.
Маска — это параметр, который сообщает программному обеспечению о том, сколько компьютеров объединено в данную группу (подсеть). Маска адреса имеет такую же структуру как и сам IP-адрес: это набор из четырех групп чисел, каждое из которых может быть в диапазоне от 0 до 255. При этом, чем меньше значение маски, тем больше компьютеров объединено в данную подсеть. Для сетей небольших компаний маска обычно имеет вид 255.255.255.x (например, 255.255.255.224). Маска сети присваивается компьютеру одновременно с IP-адресом. Так, например, сеть 192.168.0.0 с маской 255.255.255.0 может содержать в себе компьютеры с адресами от 192.168.0.1 до 192.168.254. А сеть 192.168.0.0 с маской 255.255.255.128 допускает адреса от 192.168.0.1 до 192.168.0.127. Думаю, смысл понятен. Как правило сети с небольшим возможным числом компьютеров используются провайдерами с целью экономии IP-адресов. Например, клиенту, может быть назначен адрес с маской 255.255.255.252. Такая подсеть содержит в себе только два компьютера.
После того как компьютер получил IP-адрес и ему стало известно значение маски подсети, программа может начать работу в данной локальной подсети. Однако же, чтобы обмениваться информацией с другими компьютерами в глобальной сети, необходимо знать правила, куда пересылать информацию для внешней сети. Для этого служит такая характеристика как адрес шлюза (Gateway).
Возможна ли атака человек-посередине без доступа к локальной сети?
Если удалось получить доступ к сетевому оборудованию из Интернета (например, с помощью Router Scan by Stas’M), а доступа к локальной сети нет, то невозможно провести атаку человек-посередине. Или всё-таки возможно?
На самом деле возможно. Образец, как это сделать будет показан ниже. Более того, мы задействуем SSLStrip+ и dns2proxy для обхода HTTP Strict Transport Security (HSTS), а ещё будем использовать Net-Creds для лёгкого сбора паролей и другой чувствительной информации.
Если посмотреть порядок «обычной» атаки человек-посередине, то он заключается в следующем:
- сканирование локальной сети в поисках рабочих устройств
- ARP спуфинг, смысл которого заключается в том, что цели начинают думать, что трафик теперь нужно отправлять не через роутер, а через компьютер атакующего
- чтобы у целей работал Интернет, атакующий перенаправляет запрос с целей в глобальную сеть, а полученные ответы передаёт целям
По сути, атакующий начинает выполнять роль прокси. При этом с передаваемым трафиком атакующий может делать следующие вещи:
- анализировать его любым образом, например, для поиска паролей и любых других данных, передаваемых в незашифрованном виде
- блокировать доступ к определённым сайтам или перенаправлять на мошеннические сайты
- пытаться понизить протокол с HTTPS до HTTP, чтобы уменьшить количество данных, передаваемых в зашифрованном виде и увеличить количество передаваемых в виде простого текста
- вставлять разное содержимое в веб-страницы, в том числе способное ввести в заблуждение или привести к заражению компьютера вредоносным кодом.
Если сказать коротко – с передаваемым трафиком прокси может делать всё или почти всё. Но, напомню, это при атаке человек-посередине, которая делается в локальной сети, и которая начинается с ARP спуфинга, который в глобальной сети невозможен.
Т.е. получив доступ к роутеру, нам нужно придумать, как заставить его передавать трафик нам, т.е. взаимодействовать с глобальной сетью через нас. Функция прокси, вроде бы, в роутерах не встречается или встречается редко. Но зато VPN…
Суть VPN в том, что клиент устанавливает зашифрованный канал с сервером и уже через этот сервер выходит в глобальную сеть. Т.е. клиент сам, без разных ARP спуфингов передаёт свой трафик удалённому компьютеру! А уже на этом удалённом компьютере можно выполнять атаку человек-посередине со всеми возможностями, которые описаны чуть выше!
Если этот VPN ваш, то тот факт, что при VPN трафик передаётся по зашифрованному каналу не имеет никакого значения, поскольку на сервере трафик в любом случае расшифровывается и внутри «ящика» «гуляет» в открытом виде.
Т.е. концепция понятна:
- нужно настроить свой мошеннический VPN
- сетевое оборудование жертвы настроить так, чтобы оно работало через наш VPN
- на сервере проводить любые виды атак на перехват/модификацию/блокировку передаваемого трафика
Если уж совсем лезть в за корень, то благодаря VPN мы создаём новую локальную сеть поверх Интернет-соединения. В этой локальной сети сервер VPN является ничем иным как шлюзом и именно по этой причине получает весь трафик без ARP спуфинга.
В теории всё довольно гладко и просто. Но разные модели роутеров поддерживают разные реализации VPN. Это разнообразие не даст вместить все варианты установки и настройки VPN. Я выберу один из них – OpenVPN. Существуют роутеры, которые поддерживают OpenVPN. Но цель данной заметки показать рабочий концепт, а не сделать универсальную инструкцию. В любом случае под конкретное оборудование нужно будет делать особые настройки сервера VPN.
Кстати, OpenVPN работает на разных популярных ОС, т.е. если вы имеете доступ к сетевому оборудованию, то вы вполне можете подключить интересующие вас машины к «безопасному OpenVPN для шифрования данных, чтобы хакеры их не могли перехватить»…
Преимущества UDP
По сравнению с TCP UDP имеет следующие преимущества:
-
Нет установки соединения. UDP является протоколом без организации соединений, поэтому он освобождает от накладных расходов, связанных с установкой соединений. Поскольку UDP не пользуется сигналами квитирования, то задержек, вызванных установкой соединений, также удается избежать. Именно поэтому DNS отдает предпочтение UDP перед TCP — DNS работала бы гораздо медленнее, если бы она выполнялась через TCP.
-
Скорость. UDP работает быстрее TCP. По этой причине многие приложения предпочитают не TCP, a UDP. Те же средства, которые делают TCP более устойчивым (например сигналы квитирования), замедляют его работу.
-
Топологическое разнообразие. UDP поддерживает взаимодействия «один с одним» и «один с многими», в то время как TCP поддерживает лишь взаимодействие «один с одним».
-
Накладные расходы. Работа с TCP означает повышенные накладные расходы, издержки, налагаемые UDP, существенно ниже. TCP по сравнению с UDP использует значительно больше ресурсов операционной системы, и, как следствие, в таких средах, где серверы одновременно обслуживают многих клиентов, широко используют UDP.
-
Размер заголовка. Для каждого пакета заголовок UDP имеет длину всего лишь восемь байтов, в то время как TCP имеет 20-байтовые заголовки, и поэтому UDP потребляет меньше пропускной способности сети.
Можно ли улучшить качество сигнала WiFi на Raspberry Pi 3?
Одна из проблем, с которой сталкиваются некоторые пользователи «Малины» – недостаточно высокое качество принимаемого сигнала ВайФай. Это связано с тем, что встроенная антенна очень короткая. Но исправить данный недостаток можно относительно легко.
Для Raspberry Pi 3 внешнюю антенну возможно купить, например, на Aliexpress за 5-10 долларов. Установив ее в GPIO и настроив, можно будет пользоваться «Малиной» на большом отдалении от роутера. А кроме этого, внешняя антенна позволит создать из неё самый полноценный беспроводной маршрутизатор.
Как возможно убедиться, настроить Wi Fi на Raspberry Pi 3 не составляет никакого труда. Применение и первого, и второго способов отнимает не более 5 минут времени. При этом не нужно устанавливать никаких драйверов – все работает «из коробки».
Сканирование локальных и глобальных IP
- Интерфейс с глобальным IP адресом выходит в интернет напрямую без посредников, и к нему имеют возможность подключаться все, у кого есть интернет.
- Остальные IP адреса — локальные.
Локальные адреса имеют следующие диапазоны:
- 10.0.0.0 — 10.255.255.255 (маска подсети для бесклассовой (CIDR) адресации: 255.0.0.0 или /8)
- 172.16.0.0 — 172.31.255.255 (маска подсети для бесклассовой (CIDR) адресации: 255.240.0.0 или /12)
- 192.168.0.0 — 192.168.255.255 (маска подсети для бесклассовой (CIDR) адресации: 255.255.0.0 или /16)
Пример интересных находок в моей локалке:
Рекомендуется ознакомиться с заметкой «Некоторые приёмы исследования сети».
Conclusion
3WiFi is a free database of access points (open source under the Apache 2.0 license) developed by the Router Scan community with the participation of Stas’M Corp.
It stores the access point data that was received as a result scans performed by Router Scan. All data is downloaded to the database voluntarily — either through the website, or directly from Router Scan.
The 3WiFi database is used by the Router Scan community to search for access points, to investigate new vulnerabilities in wireless routers, to detect previously unknown WPS pin-code generation algorithms, to detect routers’ mass destruction hotspots (such as substituting SSID name, DNS servers, etc.) , and for many other purposes.
Also 3WiFi base is used by Stas’M Corp. for monitoring, detecting and correcting errors and inaccuracies in real-time scanning results.
The 3WiFi website provides unique services that can be useful to community members:
- View access points on the map
- Search for access points by BSSID or name
- Search for IP ranges by location
- Determine the device model by MAC address
- Statistics on various parameters of wireless networks
Зашифровать системный раздел
В этой схеме шифрования пароль необходим для запуска или загрузки вашего ПК.
Выполните шифрование системного диска следующим образом:
- Откройте VeraCrypt, щелкните меню Система и выберите Зашифровать системный раздел/диск.
- Выберите Обычный и параметр Зашифровать системный раздел Windows → нажмите Далее.
- Выберите вариант Одиночная загрузка, если в вашей системе только одна ОС. Если у вас несколько операционных систем, выберите Мультизагрузка.
- Установите алгоритм шифрования (не меняйте, если не уверены) и нажмите Далее.
- Введите пароль и нажмите Далее.
- Теперь произвольно перемещайте указатель мыши в окне VeraCrypt, нажмите Далее после того, как полоса станет зеленой.
- Вам покажут сгенерированные ключи и попросят создать аварийный диск, который поможет запустить вашу систему, если она не загружается или некоторые данные повреждены. Просто укажите место, где вы хотите, чтобы VeraCrypt сохранил ISO-образ диска (который впоследствии можно записать на компакт-диск или флешку), нажмите Далее.
- Выберите режим стирания данных (если это важные данные и вы не хотите, чтобы кто-либо восстановил их с вашего диска с помощью дополнительных инструментов), нажмите Далее, а затем нажмите Тест.
- Прочтите предложенные инструкции или распечатайте их, если возможно (желательно), а затем нажмите OK, чтобы продолжить процесс и перезагрузить систему.
- При перезагрузке VeraCrypt поприветствует вас и попросит ввести пароль (до того, как Windows начнёт загрузку), поэтому введите пароль, нажмите Enter, и, после того, как она проверит ваш пароль, ваша система загрузится нормально.
- После успешной загрузки нажмите Зашифровать, чтобы начать шифрование.
Отлично, теперь вся ваша система зашифрована, и вы можете безопасно хранить важные файлы прямо на рабочем столе или в папке с документами.
Сетевые протоколы UDP, TCP, ICMP
В рамках протокола TCP/IP для передачи данных используются протоколы — TCP и UDP. Многие наверняка слышали, что есть порты как TCP, так и UDP, но не все знают в чем разница и что это вообще. И так..
Передача данных по протоколу TCP (Transmission Control Protocol — Протокол Управления Передачей) предусматривает наличие подтверждений получения информации. «-Ну, мол, — получил? -Получил!» Если же передающая сторона не получит в установленные сроки необходимого подтверждения, то данные будут переданы повторно. Поэтому протокол TCP относят к протоколам, предусматривающим соединение, а UDP (User Datagram Protocol — Протокол Пользовательских Датаграмм) — нет. UDP применяется в тех случаях, когда не требуется подтверждения приема (например, DNS-запросы или IP-телефония (яркий представитель которой, — Skype) ). То есть разница заключается в наличии подтверждения приема. Казалось бы «Всего то!», но на практике это играет важную роль.
Есть еще так же протокол ICMP (Internet Control Message Protocol — межсетевой протокол управляющих сообщений), который используется для передачи данных о параметрах сети. Он включает в себя служебные типы пакетов, таки как ping, distination unreachable, TTL и пр.
Сравнение с моделью OSI
Три верхних уровня в модели OSI, то есть уровень приложения, уровень представления и уровень сеанса, отдельно не различаются в модели TCP/IP, которая имеет только прикладной уровень над транспортным уровнем. Хотя некоторые чистые приложения протокола OSI, такие как X.400, также объединяют их, нет требования, чтобы стек протокола TCP/IP должен накладывать монолитную архитектуру над транспортным уровнем. Например, протокол NFS-приложений работает через протокол представления данных External Data Representation (XDR), который, в свою очередь, работает по протоколу Remote Procedure Call (RPC). RPC обеспечивает надежную передачу данных, поэтому он может безопасно использовать транспорт UDP с максимальным усилием.
Различные авторы интерпретировали модель TCP/IP по-разному и не согласны с тем, что уровень связи или вся модель TCP/IP охватывает проблемы первого уровня модели OSI (физический уровень) или предполагается, что аппаратный уровень ниже уровня канала.
Несколько авторов попытались включить слои 1 и 2 модели OSI в модель TCP/IP, поскольку они обычно упоминаются в современных стандартах (например, IEEE и ITU). Это часто приводит к модели с пятью слоями, где уровень связи или уровень доступа к сети разделяются на слои 1 и 2 модели OSI.
Например, считается, что уровни сеанса и представления пакета OSI включены в прикладной уровень пакета TCP/IP. Функциональность уровня сеанса можно найти в протоколах, таких как HTTP и SMTP, и более очевидна в таких протоколах, как Telnet и протокол инициации сеанса (SIP). Функциональность уровня сеанса также реализована с нумерацией портов протоколов TCP и UDP, которые охватывают транспортный уровень в наборе TCP/IP. Функции уровня представления реализуются в приложениях TCP/IP со стандартом MIME при обмене данными.
Конфликты очевидны также в оригинальной модели OSI, ISO 7498, когда не рассматриваются приложения к этой модели, например, ISO 7498/4 Management Framework или ISO 8648 Internal Organization of the Network layer (IONL). Когда рассматриваются документы IONL и Management Framework, ICMP и IGMP определяются как протоколы управления уровнем для сетевого уровня. Аналогичным образом IONL предоставляет структуру для «зависимых от подсетей объектов конвергенции», таких как ARP и RARP.
Протоколы IETF могут быть инкапсулированы рекурсивно, о чем свидетельствуют протоколы туннелирования, такие как Инкапсуляция общей маршрутизации (GRE). GRE использует тот же механизм, который OSI использует для туннелирования на сетевом уровне.
Существуют разногласия в том, как вписать модель TCP/IP в модель OSI, поскольку уровни в этих моделях не совпадают.
К тому же, модель OSI не использует дополнительный уровень — «Internetworking» — между канальным и сетевым уровнями. Примером спорного протокола может быть ARP или STP.
Вот как традиционно протоколы TCP/IP вписываются в модель OSI:
TCP/IP | OSI | ||
7 | Прикладной | Прикладной | напр., HTTP, SMTP, SNMP, FTP, Telnet, SSH, SCP, SMB, NFS, RTSP, BGP |
6 | Представления | напр., XDR, AFP, TLS, SSL | |
5 | Сеансовый | напр., ISO 8327 / CCITT X.225, RPC, NetBIOS, PPTP, L2TP, ASP | |
4 | Транспортный | Транспортный | напр., TCP, UDP, SCTP, SPX, ATP, DCCP, GRE |
3 | Сетевой | Сетевой | напр., IP, ICMP, IGMP, CLNP, OSPF, RIP, IPX, DDP |
2 | Канальный | Канальный | напр., Ethernet, Token ring, HDLC, PPP, X.25, Frame relay, ISDN, ATM, SPB, MPLS, ARP |
1 | Физический | напр., электрические провода, радиосвязь, волоконно-оптические провода, инфракрасное излучение |
Обычно в стеке TCP/IP верхние 3 уровня модели OSI (прикладной, представления и сеансовый) объединяют в один — прикладной. Поскольку в таком стеке не предусматривается унифицированный протокол передачи данных, функции по определению типа данных передаются приложению.