TCP/IP

IP адреси, класове мрежи, CIDR (prefix, etc)

Обяснение на netmask

Broadcast, network адреси

Обяснение на classful делението и CIDR

Вече се използва САМО CIDR, другото е история

Специални мрежи

127.0.0.0/8, 127.0.0.1

10.0.0.0/8 , 172.16.0.0/12, 192.168.0.0/16

169.254.0.0/16 - link local адреси (за zeroconf/Randezvous, при липса на dhcp сървър и т.н.)

Multicast - 224.0.0.0/4

Резервирани - 240.0.0.0/4

Интересни мрежи

24.0.0.0/8 - cable operators

2. IP протокол

+-------------------------------------------------------------------------+

| 4 bit | 4 bit header| 8 bit Type of | 16 bit total length |

| version | length | service (TOS) | |

+----------+-------------+----------------+-----------+-------------------+

| 16 bit identification |3 bit |13 bit fragment |

| | flags | offset |

+--------------------+--------------------+-----------+-------------------+

| 8 bit time-to-live | 8 bit protocol | 16 bit header checksum |

+--------------------+--------------------+-------------------------------+

| 32 bit source IP adress |

+-------------------------------------------------------------------------+

| 32 bit destination IP adress |

+-------------------------------------------------------------------------+

| options (ако има такива...) |

+-------------------------------------------------------------------------+

| Data ................... |

+-------------------------------------------------------------------------+

Полета в пакета

Header length е в 32битови думи (по 4 байта), което ограничава опциите, които могат да се добавят

Total length е до 64k, но толкова големи пакети се ползват рядко (в мрежи с много голям bandwidth, основно оптични такива)

ToS – значението му е променяно много пъти в последните години

TTL

Протокол

Identification – изпозлва се при фрагментация, еднакво за всички парчета от фрагментирания пакет

Броене на машини зад NAT чрез следене на това поле

Контролна сума - CRC32

Опции на пакета

Security опции, RFC 1108 - дефиниране на ниво на секретност на пакет

Loose и Strict source routing, проблеми с тях - по подразбиране не се пропускат от повечето router-и, и доста операционни системи директно ги игнорират

Record route/timestamp - дават възможност за записване на пътя на пакета

Фрагментация

Принцип на работа

Цел

Идеята за MTU

Свойства на протокола

Unreliable packet transport – работа на протоколите от по-горно ниво е да се погрижат за сигурния транспорт

Пакет с грешна контролна сума се drop-ва, без да се върне грешка

Протоколът е оптимизиран от гледна точка на routing хардуера

Атаки върху протокола

Strict/loose source routing – подслушване на трафика

Пресказуем IP ID – IDLE scan, следене на трафика на дадена машина

3. UDP

Идея на проткола - протокол за пращане на отделни пакети, негарантиращ нищо

Кратко описание на header-а

0 7 8 15 16 23 24 31

+--------+--------+--------+--------+

| Source | Destination |

| Port | Port |

+--------+--------+--------+--------+

| | |

| Length | Checksum |

+--------+--------+--------+--------+

|

| Данни ...

+---------------- ...

Атаки в/у протокола

Поради липсата на sequence номера и т.н., се налага приложенията сами да се грижат за реда на пристигане на пакети и т.н., което създава предпоставки за проблеми

DNS spoofing

4. TCP

Идея на протокола - reliable stream

Кратко описание на header-а

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Source Port | Destination Port |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Sequence Number |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Acknowledgment Number |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Data | |U|A|P|R|S|F| |

| Offset| Reserved |R|C|S|S|Y|I| Window |

| | |G|K|H|T|N|N| |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Checksum | Urgent Pointer |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Options | Padding |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Данни |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Отваряне и затваряне на връзка

3way handshake

Затваряне на връзка

Simultaneous open

Флагове

SYN, FIN, RST

ACK

URGENT, PSH

Sequence и acknowledgement numbers

TCP options

Timestamp

MD5 аутентикация

Sliding window, window scaling

Timeout and retransmission

Протоколът е сложен, който се интересува, да чете допълнително

Атаки върху протокола

Blind TCP spoofing, предсказуеми ISN

Проблеми при TCP с голям window

ICMP

ping/pong

"Time exceeded" (ttl expired in transit)

ICMP source quench

ICMP unreachables

Fragmentation Needed and Don't Fragment was Set (packet too big, can't fragment)

net/host/protocol/port

Други

ICMP redirects - Допотопен routing протокол

IRDP, timestamp req/rep, mask req/rep, information req/rep

Други

Атаки върху протокола

Изполване на redirects за MITM

Използване на * unreachable за прекъсване на връзки

Използване на ping и други за задръстване на връзка

Network Address Translation и connection tracking(statefull firewalling)

Разликата м/у firewall и packet filter

Защо NAT не е истински firewall, а само добавка

Моменти при NAT на UDP

Routing протоколи

RIPv1, RIPv2

Използваемост – почти не се използват, понеже са остарели

Версия 1 няма аутентикация на пакетите

Версия 2 използва MD5 и shared secret

OSPF

Използваемост – де факто протокол за неглобални мрежи

Използва аутентикация чрез MD5 и shared secret

Всички пакетно-базирани routing протоколи трябва да имат ограничение откъде приемат информация

BGP

Използване на протокола – на него се крепи Internet

Кратко описание на протокола

Автономни системи

Префикси

Пътища

Проблеми, ако не се използва с MD5 аутентикация

Общи проблем на routing протоколите

Аутентикация на заявките и машините

Други проблеми

Multihomed hosts dilusions: достъп до един интерфейс на хост през другия

Защо трябва да филтрираме както входящите, така и изходящите пакети

2004-07-03T22:58:49