Реферат - TCP/IP - скачати безкоштовно
Химия

Реферат — TCP/IP — скачати безкоштовно


Завантажити реферат: TCP/IP

Огляд внутрішнього пристрою TCP/IP

Цей розділ містить короткий опис TCP/IP в обсязі, достатньому для подальшого обговорення проблем безпеки, пов’язаних з Інтернетом. [Com91a],[Com91b],[Hunt92] і [Bel89] містять набагато більш докладний опис; читачі, які хочуть отримати більш глибоке уявлення, мають звернутися до цих джерел.

Частково популярність стека протоколів TCP/IP пояснюється можливістю його реалізації на основі великої кількості різноманітних каналів і протоколів канального рівня, таких як T1 і Х.25, Ethernet та лінії RS-232. Більшість організацій використовує у своїх ЛОМ Ethernet для об’єднання хостів та клієнтських систем, а потім приєднує ці мережі за допомогою T1 до регіональної мережі (наприклад, регіональної магістральної мережі TCP/IP), яка з’єднує у свою чергу з мережами інших організацій та іншими магістральними каналами. Як правило, організації мають одне з’єднання з Інтернетом, але великі організації можуть мати дві або більше з’єднань. Швидкості модемів збільшуються в міру появи нових комунікаційних стандартів, тому версії TCP/IP, які працюють у середовищі комутованих телефонних каналів, стають все більш популярними. Багато організацій і окремі люди використовують PPP (Point-to-Point Protocol) і SLIP (Serial Line IP) для підключення своїх мереж і робочих станцій до інших мереж, використовуючи телефонні канали.

Якщо говорити суворо, то TCP/IP — це стек протоколів, що включає TCP, IP, UDP (User Datagram Protocol), Internet Control Message Protocol (ICMP), і ряд інших протоколів. Стек протоколів TCP/IP відповідає моделі взаємодії відкритих систем (ВОС), та її структура показано малюнку 1.1

Реферат - TCP/IP - скачати безкоштовно

IP

Рівень IP отримує пакети, що доставляються нижніми рівнями, наприклад драйвером інтерфейсу з ЛВС, і передає їх вище рівням TCP або UDP. І навпаки, IP передає пакети, отримані від рівнів TCP і UDP до рівнів, що нижче.

Пакети IP є дейтаграмами з негарантованою доставкою, тому що IP нічого не робить для забезпечення гарантії доставки пакетів IP по порядку та без помилок. Пакети IP містять адресу хоста, з якої було надіслано пакет, званий адресою відправника, та адресу хоста, який повинен отримати пакет, званий адресою одержувача.

Високорівневі послуги TCP і UDP при прийомі пакета припускають, що адреса відправника, вказана в пакеті, є істинною. Іншими словами, IP-адреса є основою для аутентифікації в багатьох сервісах; сервіси припускають, що пакет був посланий від існуючого хоста, і саме від того хоста, чия адреса вказана в пакеті. IP має опцію, звану опція маршрутизації джерела, яка може бути використана для вказівки точного прямого та зворотного шляху між відправником та одержувачем. Цей шлях може задіяти для передачі пакета маршрутизатори або хости, які зазвичай не використовуються для передачі пакетів до даного хосту-одержувача. Для деяких сервісів TCP і UDP пакет IP з такою опцією здається, що прийшли від останньої системи у вказаному шляху, а не від справжнього відправника. Ця опція з’явилася в протоколі для тестування, але [Bel89] зазначає, що маршрутизація джерела може бути використана для обману систем з метою встановлення з’єднання з ними тих хостів, яким заборонено з ними з’єднуватися. Тому, те, що ряд сервісів довіряють зазначеній IP-адресі відправника і покладаються на нього при аутентифікації, дуже небезпечно і може призвести до проникнення в систему.

TCP

Якщо IP-пакети містять інкапсульовані пакети TCP, IP-програми передадуть їх вгору рівню TCP. TCP послідовно нумерує всі пакети та виконує виправлення помилок, та реалізує, таким чином, віртуальні з’єднання між хостами. Пакети TCP містять послідовні номери та підтвердження прийому пакетів, тому пакети, прийняті над порядку передачі, можуть бути переупорядковані, а зіпсовані пакети повторно надіслані.

TCP передає отриману інформацію програмам верхнього рівня, наприклад клієнту або серверу TELNET. Програми, у свою чергу, передають інформацію назад до рівня TCP, який передає її нижче за рівень IP, після чого вона потрапляє до драйверів пристроїв, у фізичне середовище і по ній передається до хоста-отримувача. Сервіси із встановленням з’єднання, такі як TELNET, FTP, rlogin, X Windows та SMTP потребують надійності і тому використовують TCP. DNS використовує TCP лише деяких випадках( передачі та прийому баз даних доменних імен), а передачі інформації про окремих хостах використовує UDP .

UDP

Як показано малюнку 1.1, UDP взаємодіє з прикладними програмами тому ж рівні, як і TCP. Проте він не виконує функції виправлення помилок або повторної передачі втрачених пакетів. Тому UDP не використовується в сервісах із встановленням з’єднання, яким потрібне створення віртуального каналу. Він застосовується в сервісах типу запит-відповідь, таких як NFS, де число повідомлень під час взаємодії набагато менше, ніж у TELNET та FTP. До сервісів, що використовують UDP, входять послуги на базі RPC, такі як NIS і NFS, NTP (протокол мережного часу) і DNS (також DNS використовує TCP).

Пакети UDP набагато простіше підробити, ніж пакети TCP, тому що немає етапу встановлення з’єднання (рукостискання).[Ches94]. Тому з використанням сервісів на базі UDP пов’язаний більший ризик.

ICMP

ICMP (Протокол міжмережевих керуючих повідомлень) перебуває у тому рівні, як і IP; його призначення — передавати інформацію, необхідну управління трафіку IP. В основному, він використовується для надання інформації про шляхи до хостів-одержувачів. Повідомлення ICMP redirect інформують хости про існування більш коротких маршрутів до інших систем, а повідомлення ICMP unreachable вказує на наявність проблем зі знаходженням шляху до одержувача пакета. Крім того, ICMP може допомогти коректно завершити з’єднання TCP, якщо шлях недоступний. PING є поширеним сервісом з урахуванням ICMP.

[Bel89] розглядає дві проблеми з ICMP: старі версії Unix можуть розірвати всі з’єднання між хостами, навіть якщо тільки одна з них зіткнулася з проблемами. Крім того, повідомлення про перенаправлення шляху ICMP можуть бути використані для обману маршрутизаторів і хостів з метою змусити їх повірити в те, що зловмисник є маршрутизатором і пакети краще відправляти через нього. Це, у свою чергу, може призвести до того, що атакуючий отримає доступ до систем, яким не дозволено мати з’єднання з машиною атакуючого або його мережею.

Структура портів TCP та UDP

Сервіси TCP та UDP використовуються за допомогою схеми клієнт-сервер. Наприклад, процес сервера TELNET спочатку перебуває у стані очікування запиту встановлення з’єднання. У якийсь час користувач запускає процес клієнта TELNET, який ініціює з’єднання з сервером TELNET. Клієнт надсилає дані серверу, той читає їх, і надсилає назад клієнту відповідь. Клієнт читає відповідь та повідомляє про неї користувачеві. Тому з’єднання є двонаправленим і може бути використане як для читання, так і для запису.

Як багато одночасних з’єднань TELNET можна встановити між системами? З’єднання TCP або UDP унікально ідентифікується за допомогою чотирьох полів, присутніх у кожному з’єднанні:

IP-адреса джерела — адреса системи, яка надіслала пакет

IP-адреса одержувача — адреса системи, яка приймає пакет

порт відправника — порт з’єднання в системі-відправнику

порт отримувача — порт з’єднання в системі-одержувачі

Порт — це програмне поняття, яке використовується клієнтом або сервером для надсилання або отримання повідомлень; порт ідентифікується 16-битовим числом. Серверні процеси зазвичай асоціюються з фіксованим числом, наприклад, числом 25 для SMTP або 6000 для X Windows; номер порту є відомим, оскільки він вимагає, крім IP-адреси одержувача, під час встановлення з’єднання з конкретним хостом і сервісом. Клієнтські процеси, з іншого боку, вимагають номер порту в операційної системи на початку роботи; та номер порту є випадковим, хоча в деяких випадках він є наступним у списку вільних номерів портів.

Для ілюстрації того, як використовуються порти для надсилання та отримання повідомлень, розглянемо протокол TELNET. Сервер TELNET слухає повідомлення, що надходять на порту 23, і сам посилає повідомлення на порт 23. Клієнт TELNET, на тій же або іншій системі, спочатку запитує номер порту, що не використовується, у ОС, а потім використовує його при посилці і прийомі повідомлень. Він повинен вказувати цей номер порту, наприклад 3097, у пакетах, призначених для сервера TELNET, щоб цей сервер при відповіді на повідомлення клієнта міг помістити цей номер у посилаються ним TCP-пакети. Хост клієнта з прийому повідомлення повинен переглянути номер порту в повідомленні та вирішити, який із клієнтів TELNET повинен прийняти це повідомлення. Цей процес показано на малюнку 1.2

Реферат - TCP/IP - скачати безкоштовно

Рисунок 1.2 Взаємодія з TELNET

Існує досить поширене правило, згідно з яким лише привілейовані процеси сервера, тобто ті процеси, які працюють з привілеями суперкористувача UNIX, можуть використовувати порти з номерами менше, ніж 1024 (так звані привілейовані порти). Сервера в основному використовують порти з номерами менше 1024, а клієнти, як правило, повинні запитувати непривілейовані порти у ОС. Хоча це правило не є обов’язковим для виконання і не вимагається специфікацією протоколів TCP/IP, системи на основі BSD дотримуються його.

В результаті цього брандмауери можуть блокувати або фільтрувати доступ до служб на основі перевірки номерів портів у TCP- і UDP-пакетах і подальшого пропускання через себе або видалення пакета на основі політики, що вказує доступ до яких служб дозволено або заборонено. (Докладніше це описано в розділі 2).

Не всі сервери та клієнти TCP та UDP використовують порти таким простим способом, як TELNET, але загалом процедура, описана тут, корисна в контексті брандмауера. Наприклад, багато ОС персональних комп’ютерів не використовують поняття суперкористувача UNIX, проте використовують порти описаним вище способом (хоча немає стандарту, що вимагає це).

© Реферат плюс



Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *