1. Trang chủ
  2. » Luận Văn - Báo Cáo

An ninh an toàn mạng và hệ thống phát hiện đột nhập

122 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề An Ninh - An Toàn Mạng Và Hệ Thống Phát Hiện Đột Nhập
Tác giả Nguyễn Thế Thịnh
Người hướng dẫn PGS – TS. Nguyễn Việt Hương
Trường học Trường Đại học Bách Khoa Hà Nội
Chuyên ngành Điện Tử Viễn Thông
Thể loại Luận Văn Thạc Sĩ Khoa Học
Năm xuất bản 2005
Thành phố Hà Nội
Định dạng
Số trang 122
Dung lượng 2,64 MB

Nội dung

Chính vì vậy, tôi rất mong sự đóng góp ý kiến của các thầy cô, các đồng nghiệp và các bạn quan tâm đến vấn đề an ninh an tồn mạng.-Tơi xin chân thành cảm ơn PGS.TS Nguyễn Việt Hơng ngờ

Trang 1

-

AN NINH AN TOÀN M- ẠNG VÀ HỆ THÔNG PHÁT HIỆN ỘT Đ

NHẬP NGUYỄN THẾ THỊNH

LuËn V¨n Th¹c SÜ Khoa Häc CHUYÊ N NGÀNH: ĐIỆN TỬ VIỄN TH ÔNG

Hµ Néi - 2005

Trang 2

-

AN NINH AN TOÀN M- ẠNG VÀ HỆ THÔNG PHÁT HIỆN ỘT Đ

NHẬP NGUYỄN THẾ THỊNH

LuËn V¨n Th¹c SÜ Khoa Häc CHUYÊ N NGÀNH: ĐIỆN TỬ VIỄN TH ÔNG

NGƯỜI HƯỚNG DẪN PGS – TS NGUY ỄN VI ỆT HƯ ƠNG

Hµ Néi - 2005

Trang 3

Mục lục

Mở đầu 4

Chơng I : Lý thuyết về mạng máy tính 6

1.1 Mạng máy tính 6

1.1.1 Định nghĩa mạng máy tính 6

1.1.2 Phân loại mạng máy tính 7

1.2 Giao thức mạng TCP/IP 9

1.2.1 Kiến trúc phân tầng OSI 9

1.2.2 Kiến trúc phân tầng TCP/IP 13

1.2.3 Giao thức liên mạng IP 15

1.2.3.1 Cấu trúc Header của IP Datagram 17

1.2.3.2 Quá trình phân mảnh gói dữ liệu 20

1.2.3.3 Phơng pháp đánh địa chỉ trong TCP/IP 23

1.2.3.4 Định tuyến IP 27

1.2.4 TCP và UDP 29

1.2.4.1 Giao thức TCP 29

1.2.4.2 Giao thức UDP 36

1.2.5 Giao thức điều khiển ICMP và ARP 37

1.2.5.1 Giao thức ICMP 37

1.2.5.2 Giao thức phân giải địa chỉ ARP 38

1.3 Các dịch vụ thông tin trên mạng 39

1.3.1 Nguyên tắc tổ chức 40

1.3.2 Các dịch vụ thông tin cơ bản 41

1.3.2.1 Dịch vụ th điện tử(E- mail) 41

1.3 2.2 Dịch vụ Web 41

1.3.2.3 Dịch vụ truyền file 42

1.3.2.4 Telnet 43

Chơng II : điểm yếu về an ninh an toàn mạng IP – 44

2.1 Đánh giá các điểm yếu về an ninh-an toàn mạng IP 44

2.1.1 Tại sao mạng IP có nhiều điểm yếu về an ninh- an toàn? 44

2.1.2 Các điểm yếu về an ninh-an toàn 44

2.2 Các hình thức tấn công mạng máy t ính 45

2.2.1 Do thám mạng 46

2.2.2 Các cuộc tấn công truy nhập 48

2.2.3 Tấn công từ chối dịch vụ (Denial of Service) 50

Chơng III : công nghệ phòng chống xâm nhập 58

3.1 Tổng quan về an ninh mạng máy tính 58

3.2 Các lĩnh vực an ninh mạng máy tính 58

3.2.1 An toàn mạng (Network Security) 58

3.2.2 An toàn ứng dụng (Application Security) 59

3.2.3 An toàn hệ thống (System Security) 60

3.3 Thực hiện an ninh-an toàn mạng IP 62

3.4 Các thủ tục an ninh-an toàn 63

3.5 Công nghệ an ninh-an toàn IP 63

3.5.1 Công nghệ mã mật (Cryptography) 63

Trang 4

3.5.2 Công nghệ tờng lửa (Firewalls) 67

3.5.3 Các công cụ giám sát (Monitoring Tools) 68

3.5.4 Các công cụ phân tích 69

Chơng iV: Hệ phát hiện đột nhập IDS (Intrusion Detection - System) 72

4.1 Giới thiệu 72

4.2 Khái niệm chung 72

4.3 Phân loại những hoạt động phát hiện đột nhập (IDS) 75

4.4 Mô hình chức năng của một hệ phát hiện đột nhập 77

4.4.1 Bộ theo dõi giám sát 77

4.4.2 Bộ phân tích 77

4.4.4 Bộ phản ứng (Response): 78

4.5 Các đặc tính kỹ thuật của hệ phát hiện đột nhập 79

4.5.1 Các phơng pháp phân tích phát hiện đột nhập 79

4.5.2 Những cách phản ứng lại sự đột nhập 81

4.6 Hệ phát hiện đột nhập mạng (Network based IDS- NIDS) 82

4.6.1 Khái niệm về hệ phát hiện đột nhập mạng 82

4.6.2 Một số dạng tấn công mà IDS phát hiện đợc 85

4.6.3 Cách bố trí hệ phát hiện đột nhập trong đoạn mạng bảo 86 vệ 4.6.4 Ưu điểm của hệ phát hiện đột nhập mạng 87

4.6.5 Nhợc điểm của hệ phát hiện đột nhậo mạng 88

4.7 Hệ phát hiện đột nhập trạm (Host based IDS- HIDS) 88

4.7.1 Định nghĩa 88

4.7.2 Một số chức năng của hệ phát hiện đột nhập trạm 90

4.7.2.1 Quản lý các kết nối tới máy tính nó bảo vệ 90

4.7.2.2 Giám sát đợc các hoạt động đăng nhập (Login) 91

4.7.2.3 Giám sát các hoạt động trên trạm 91

4.7.2.4 Quản lý các hoạt đông trên trạm mà nó bảo vệ 91

4.7.2.5 Quản lý tệp hệ thống 91

4.7.3 Cài đặt hệ thống phát hiện đột nhập trạm 92

Chơng V : Xây dựng hệ thống NIDS và ứng dụng thực tế 94

5.1 Giới thiệu 94

5.1.1 Hệ SNORT 94

5.1.2 Tờng lửa cá nhân (Personal Firewall) 95

5.2 Hệ thống NIDS Snort 95

5.2 1 Mô tả thuật toán và chơng trình 95

5.2.2 Module bắt và giải mã gói (Packet Decoder) 97

5.2.3 Module tiền xử lý (Preprocessors) 101

5.2.4 Module phát hiện đột nhập (Detection Engine) 105

5.2.5 Module Cảnh báo - Lu trữ (Logging and Alerting System) 108

5.2.6 Một số chơng trình hiện thị và phân tích cảnh báo dựa trên cơ sở dữ liệu của Snort 109

5.2.6.1 Chơng trình SAM 109

5.2.6.2 Chơng trình ACID 110

5.2.7 Tập luật của hệ thống NIDS Snort 112

5.2.7.1 Cấu trúc của luật 112

5.2.7.2 Nội dung của luật (rule body) 114

Trang 5

5.2.8 Cấu hình Snort 115

5.3 Phát triển bộ đáp trả đối với sự đột nhập mạng dựa trên Snort 116

5.3.1 Khởi tạo đăng ký của bộ đáp trả 116

5.3.2 Thiết lập các tham số 117

5.3.2 Hành động đáp trả sự đột nhập 117

5.4 Tờng lửa cá nhân (Personal Firewall) 117

kết luận 118

Tài liệu tham khảo 120

Trang 6

Mở đầu

Có một nhận xét rất hay rằng “ Điều tuyệt vời của Internet là kết nối với mọi ngời, nhng điều khủng khiếp nhất của Internet cũng là kết nối với mọi ngời”

Internet, mạng của các mạng thông tin máy tính toàn cầu ra đời đã

không ngừng phát triển đem lại cho con ngời rất nhiều lợi ích, đáp ứng

ngày càng phong phú hầu hết các dịch vụ thông tin của xã hội, của tri thức loài ngời, tiến tới trở thành hạ tầng thông tin liên lạc chính của xã hội thông tin tơng lai

Cùng với việc ứng dụng CNTT, mạng Internet ngày càng phát triển, đặc biệt là sự phát triển của hệ thống Internet băng rộng thì số vụ xâm phạm an ninh, bảo mật thông tin mạng đã và đang gia tăng theo hàm số mũ Theo các chuyên gia về an ninh mạng, xu hớng gần đây cho thấy bên cạnh sự bùng

nổ của các loại virus và sâu máy tính, của các vụ tấn công vào các máy trạm không đợc bảo mật, số vụ tấn công ứng dụng ngày càng tăng, đặc biệt là các vụ tấn công ứng dụng Web do việc sử dụng các công nghệ Web ngày càng phổ biến Theo thống kê của tạp chí Computer Economics tháng

6/2004, các cuộc tấn công mạng trên toàn cầu gây thiệt hại hàng tỉ USD mỗi năm và con số này không ngừng gia tăng

Do đặc điểm nhiều ngời sử dụng và phân tán về mặt địa lý nên việc bảo

vệ các tài nguyên thông tin trên mạng tránh khởi sự mất mát, xâm phạm (dù vô tình hay cố ý) trong môi trờng hiện nay là cực kỳ phức tạp Vì vậy, việc nghiên cứu, xây dựng, và quản lý một hệ thống mạng đảm bảo về an ninh-an toàn mạng đang là một vấn đề rất cần thiết trong bối cảnh hiện nay ở nớc ta Hiện nay có rất nhiều công nghệ và giải pháp an ninh trên mạng nhng vấn đề đặt cho ngời thiết kế và tích hợp hệ thống, cũng nh các nhà quản trị mạng là phải chọn và xây dựng giải pháp phù hợp với yêu cầu kinh tế và kỹ thuật

Trang 7

Trong luận văn này, tôi trình bày về một số công nghệ an ninh an toàn mạng IP hiện nay đang đợc sử dụng Đồng thời tôi cũng đa ra mô hình và giải pháp kết hợp giữa hệ phát hiện đột nhập mạng và tờng lửa cá nhân để

-đảm bảo an ninh an toàn cho một mạng dùng riêng

-Kết cấu của luận văn gồm 5 chơng nh sau :

Tôi xin chân thành cảm ơn PGS.TS Nguyễn Việt Hơng ngời đã trực

tiếp hớng dẫn tôi, cùng các thầy cô ở khoa Điện Tử Viễn Thông trờng Đại học Bách Khoa Hà Nội và các đồng nghiệp tại TT CNTT Ngân hàng Công Thơng Việt Nam đã tạo điều kiện giúp đỡ tôi trong quá trình học tập và hoàn thành luận văn này

Trang 8

Chơng I : Lý thuyết về mạng máy tính

1.1 Mạng máy tính

1.1.1 Định nghĩa mạng máy tính

Mạng máy tính là một tập hợp các phần cứng và phần mềm đợc kết nối với nhau cho phép các máy tính có thể giao tiếp với nhau và chia sẻ các tài nguyên chung từ những vị trí địa lý khác nhau

Mạng máy tính bao gồm các thành phần chính sau:

- Máy phục vụ (Server) : Chia sẽ các tài nguyên và dịch vụ nói chung cho mạng

- Máy khách (Client) : Sử dụng các dịch vụ mạng mà Servers cung cấp

- Kết nối vật lý giữa các máy tính: Cáp mạng, wireless

- Các tài nguyên (Resources) : Dữ liệu, các ứng dụng và các phần cứng

đợc cung cấp bởi các Servers trên mạng cho các Client

- Giao thức mạng (Network protocol) : Ngôn ngữ cho phép các máy tính Server và Client giao tiếp với nhau

- Cấu trúc mạng (Network topology)

Mạng máy tính tạo ra môi trờng làm việc với nhiều ngời sử dụng phân tán, cho phép nâng cao hiệu quả khai thác tài nguyên chung rất nhiều so với khi từng máy hoạt động đơn lẻ

Mạng máy tính có những u điểm so với sử dụng các máy tính riêng rẻ:

- Tăng độ tin cậy của hệ thống nhờ khả năng thay thế khi xảy ra sự cố đối với một máy tính nào đó (đặc biệt quan trọng đối với các ứng dụng tời gian thực)

- Chia sẻ dữ liệu: Những dữ liệu dùng chung cho nhiều ngời trên mạng

có thể đợc tập trung trên một máy Nếu lựa chọn một máy tính để lu trữ và cho phép các máy tính khác trên mạng sử dụng dữ liệu này sẽ làm tăng khả năng tập trung và duy trì các thông tin Máy tính có các

Trang 9

tính năng trên gọi là máy chủ phục vụ (server) có các phần mềm và hệ

điều hành đặc biệt dành riêng

- Chia sẻ tài nguyên phần cứng: Mạng máy tính có thể chia sẻ các tài nguyên phần cứng: fax, modems, máy quét (scanners), đĩa cứng (hard - disks), đĩa mềm (floppy - disks), ổ đĩa CD (CD- ROMS), Băng từ (Taper), máy vẽ (Plotter) Nhiều máy tính có thể dùng chung một thiết

bị phần cứng để tiết kiệm chi phí

- Duy trì dữ liệu: Một mạng máy tính cho phép các dữ liệu quan trọng

đợc tự động lu trữ dự phòng tới một nơi để tránh bị lỗi khi có sự cố Việc bảo trì từ dữ liệu sao lu trên từng máy độc lập là một công việc hết sức khó khăn và tốn nhiều thời gian Nếu chỉ sử dụng một nơi để lu trữ các dữ liệu dự phòng (thông thờng là lu trữ vào băng từ trên một máy chủ của mạng), sẽ dễ dàng tìm kiếm để khôi phục lại dữ liệu đã bị mất

- Bảo vệ dữ liệu: Mạng máy tính cung cấp một môi trờng bảo mật cho toàn mạng Với các máy tính độc lập, khi truy cập vào máy tính đó có nghĩa là truy cập đợc tất cả các thông tin có trên máy Mạng máy tính cung cấp cơ chế bảo mật (security) bằng mật khẩu (password), cho phép máy chủ mạng phân biệt quyền hạn sử dụng của từng ngời dùng

- Liên lạc với nhau: Mạng máy tính cúng có thể cho phép mọi ngời liên lạc với nhau Một trong những lợi ích lớn nhất của mạng đó là th điện

tử Những ngời sử dụng mạng có thể ngay tức khắc gửi các thông điệp tới những ngời khác thông qua th điện tử (electronic mail) Có thể gửi kèm các tài liệu vào thu điện tử và có thể gửi chuyển tiếp cho nhiều

ngời

1.1.2 Phân loại mạng máy tính

Trang 10

Có nhiều cách phân loại mạng khác nhau tuỳ thuộc vào yếu tố đợc chọn

để làm chỉ tiêu phân loại nh: khoảng cách địa lý, kỹ thuật chuyển mạch hay kiến trúc mạng Một số cách phân loại thờng đợc dùng nh sau:

a Phân loại theo khoảng cách địa lý

• Mạng cục bộ LAN (Local Area Network): là mạng đợc đặt

trong phạm vi tơng đối nhỏ (trong một toà nhà, trong một trờng học ) với khoảng cách lớn nhất giữa các máy tính chỉ trong vòng vài chục kilômét

• Mạng đô thị MAN (Metropolitan): Là mạng đợc cài đặt trong

phạm vi một đô thị hoặc trong một trung tâm kinh tế-xã hội có bán kính khoảng 100km trở lại

• Mạng diện rộng WAN (Wide Area Network): phạm vi của mạng

có thể vợt qua biên giới một quốc gia và thậm chí cả lục địa

• Mạng toàn cầu GAN (Global Area Network): phạm vi của

mạng trải rộng trên khắp cả các lục địa trên trái đất

b Phân loại theo cấu trúc liên kết mạng (Network Topology)

• Cấu trúc Bus (Bus topology): Đờng truyền chính của mạng là

một đờng cáp đơn đợc giới hạn hai đầu bởi một loại đầu nối

đặc biệt gọi là terminator Mỗi trạm đợc nối vào bus qua một

đầu nối chử T hoặc một bộ thu phát (Tranceiver) Các máy không thể đồng thời truyền dữ liệu trên mạng bus

• Cấu trúc Star (Star topology): Tất cả các máy tính nối vào

mạng thông qua một thiết bị trung tâm (hub, switch, router) Thiết bị này có nhiệm vụ nhận tín hiệu từ các máy tính và chuyển tín hiệu này đến các máy đích Thiết bị trung tâm này

đóng vai trò chính là thực hiện việc “bắt tay” giữa các máy tính

Trang 11

cần trao đổi thông tin với nhau, thiết lập các liên kết point giữa chúng

point-to-• Cấu trúc Ring (Ring Topology): Các máy tính đợc nối với nhau

ở dạng vòng, tín hiệu đợc lu chuyển trên vòng theo một chiều Mỗi máy tính đợc nối vào mạng thông qua bộ chuyển tiếp (repeater) có nhiệm vụ nhận tín hiệu rồi chuyển sang máy

kế tiếp trên vòng Nh vậy tín hiệu đợc lu chuyển trên vòng theo một chuổi liên tiếp các liên kết điểm-điểm giữa các repeater Có thể sử dụng phối hợp các kiểu ghép nối mạng bus, star, ring để mở rộng mạng

c Phân loại theo mô hình mạng (Network Models)

• Mạng ngang hàng (peer- -to peer): Trong mô hình mạng này, bất

kỳ một máy tính nào cũng có thể hoạt động ở cả hai chế độ Client và Server Nó có thể chia sẽ các tài nguyên của nó với các máy tính khác và cũng có thể sử dụng các tài nguyên của các máy tính khác chia sẽ với quyền phù hợp

• Mạng khách chủ (Client-Server): Trong mô hình mạng này, có tối thiểu một Server đóng vai trò quản lý tập trung các tài nguyên chia sẽ và các users, máy tính trên mạng

Trong thực tế, khi số lợng các máy tính trong mạng lớn hơn 10 máy thì mô hình mạng này thờng đợc sử dụng nhằm quản lý tốt và tập trung hơn các tài nguyên, ngời sử dụng trong mạng

1.2 Giao thức mạng TCP/IP

1.2.1 Kiến trúc phân tầng OSI

Để việc tổ chức trao đổi số liệu giữa các ứng dụng trong hệ thống mạng đợc thuận tiện và không quá phức tạp, ngời ta phân chia hệ thống thành các chức năng nhỏ, có phân cấp, độc lập và “dựa vào nhau, có tác dụng tơng hổ cho nhau” Nguyên tắc tổ chức hệ thống bằng cách phân chia

Trang 12

hệ thống thành các chức năng có phân cấp không những cho phép giảm độ phức tạp thiết kế và thực hiện hệ thống thông qua việc xác định các chức năng cấu thành hệ thống và giao diện giữa các chức năng đó mà không qui

định bắt buộc phải thực hiện các chức năng đó nh thế nào, mà còn cho phép

thực hiện việc kết nối mở các hệ thống không đồng nhất, nghĩa là kết nối

giữa các hệ thống có kiến trúc phần cứng, phần mềm hệ thống và cấu trúc số liệu không giống nhau Mô hình 7 mức OSI là mô hình kết nối mở các hệ thống tính toán đợc xây dựng trên nguyên tắc phân mức chức năng nh vậy Mô hình OSI hợp nhất các chuẩn mực chất lợng sau:

 Đợc thiết kế để thiết lập nên các tiêu chuẩn cho hoạt động truyền dữ liệu, nhằm khuyến khích các khả năng liên kết hoạt động giữa nhiều nhà sản xuất

 Bao gồm 7 tầng, với một tập hợp chức năng mạng cụ thể đợc phân phối cho từng phần và các nguyên tắc áp dụng giao diện giữa các tầng

 Chỉ định một tập hợp giao thức và giao diện sử dụng ở mỗi tầng

Để xây dựng mô hình OSI, ISO cũng xuất phát từ kiến trúc phân tầng đã trình bầy ở trên, và dựa trên các nguyên tắc chủ yếu sau:

 Cần hạn chế số lợng các tầng

 Tạo ranh giới các tầng sao cho các chức năng khác nhau đợc tách biệt với nhau, và sử dụng công nghệ cho các tầng cũng độc lập với nhau

 Các chức năng giống nhau đợc đặt vào cùng một tầng

 Chọn ranh giới cho các tầng theo kinh nghiệm đã đợc chứng tỏ là thành công

 Các chức năng đợc xác định sao cho có thể thiết kế tại tầng mà gây

ảnh hởng ít nhất tới các tầng khác kề nó

 Tạo một tầng khi dữ liệu đợc xử lý một cách khác biệt

 Mỗi tầng chỉ có các ranh giới với tầng kề trên và dới nó

 Có thể chia một tầng thành nhiều tầng con khi cần thiết

Trang 13

 Tạo các tầng con để cho phép giao tiếp với các tầng kế cận

 Cho phép huỷ bỏ các tầng con khi thấy không các thiết

Mỗi tầng trong mô hình OSI tồn tại nh một module đơn thể, nghĩa là việc thay đổi giao thức sử dụng trong một tầng không làm ảnh hởng đến các tầng khác

Application Presentation Session Transport Network Datalink Physical

Hình 1.1 Cấu trúc mô hình OSI a) Tầng ứng dụng (Application Layer)

Có chức năng cung cấp các phơng tiện để ngời sử dụng có thể truy nhập đợc vào môi trờng OSI Đồng thời cung cấp các dịch vụ mạng

b) Tầng biểu diễn thông tin (Presentation Layer)

Tầng này hoạt động nh bộ phiên dịch dữ liệu cho mạng Nó thực hiện việc chuyển đổi cú pháp dữ liệu để đáp ứng yêu cầu truyền dữ liệu của các ứng dụng qua môi trờng OSI

c) Tầng phiên (Session Layer)

Tầng phiên cung cấp các chức năng quản lý truyền thông giữa các ứng dụng chạy trên các máy tính khác nhau nh: Thiết lập, duy trì, đồng bộ hoá và huỷ bỏ các phiên truyền thông giữa các ứng dụng Ngoài ra nó còn thực hiện nhiều chức năng hỗ trợ khác nhau, cho phép các quy trình giao tiếp trên mạng nh chứng thực ngời sử dụng và bảo vệ truy cập tài nguyên

Trang 14

d) Tầng giao vận (Transport layer)

Thực hiện việc truyền dữ liệu giữa hai đầu giao tiếp, tiến hành kiểm soát lỗi và điều khiển luồng dữ liệu giữa hai đầu mút truyền dữ liệu nếu cần

Nó cũng có thể thực hiệ việc ghép kênh, cắt hợp dữ liệu nếu cần Nói chung, n nhiệm vụ của tầng này đảm bảo cho Datagram đợc chuyển giao theo thứ tự gửi đi và không bị mất mát hay trùng lặp

e) Tầng mạng (Network Layer)

Tầng mạng chịu trách nhiệm điều khiển hoạt động của mạng con, nó quyết định dữ liệu sẽ đi theo lộ trình vật lý nào, căn cứ vào điều kiện hiện tại của mạng, độ u tiên của dịch vụ và các điều kiện khác Thực hiện cả chức năng cắt hợp dữ liệu nếu cần

f) Tầng liên kết dữ liệu (Datalink Layer)

Tầng này có chức năng cung cấp các phơng tiện để truyền thông tin qua liên kết vật lý đảm bảo tin cậy thông qua các cơ chế đồng bộ hoá, kiểm soát lỗi và điều khiển luồng dữ liệu, báo nhận và phục hồi lỗi xảy ra ở tầng vật

Mức này đảm bảo các công việc sau:

- Biến đổi số liệu từ dạng song song (Byte/Word) sang dạng nối tiếp (Bit)

và ngợc lại

- Biến đổi và truyền số liệu dới dạng bit trên kênh truyền vật lý cụ thể

- Thích ứng về tính chất điện, tính chất cơ học giữa thiết bị cuối với môi trờng truyền dẫn (ví dụ: mức tín hiệu điện, ổ nối dây dẫn )

Trang 15

1.2.2 Kiến trúc phân tầng TCP/IP

Các mạng máy tính hiện nay và đặc biệt là mạng Internet chủ yếu sử dụng chồng giao thức TCP/IP nh là giao thức chuẩn chung Do đó việc tìm hiểu một cách sâu sắc các giao thức trong chồng giao thức TCP/IP cũng nh

sự hoạt động của nó giúp cho chúng ta thấy đợc mạng máy tính hoạt động nh thế nào, có những đặc trng, những điểm yếu gì Những kẻ tấn công đã lợi dụng những yếu điểm đó nh thế nào để thực hiện các cuộc tấn công của mình và chúng ta cần phải làm gì để đảm bảo cho mạng máy tính của mình

đợc an toàn trớc những cuộc tấn công đó

TCP/IP thực chất là một họ giao thức cùng làm việc với nhau để cung cấp phơng tiện truyền thông liên mạng TCP/IP đợc phân thành 4 lớp và đợc

so sánh với các lớp tơng đơng trong mô hình tham chiếu hệ thống mở OSI giống nh hình sau:

Hình1.2 Các lớp trong chồng giao thức TCP/IP

Trang 16

-ARP Address esolution rotocol R P

TCP: (Transmistion Control Protocol)

Thủ tục liên lạc ở tầng giao vận của TCP/IP TCP có nhiệm vụ đảm bảo liên lạc thông suốt và tính đúng đắn của dữ liệu giữa 2 đầu của kết nối, dựa trên các gói tin IP

UDP: (User Datagram Protocol)

Thủ tục liên kết ở tầng giâo vận của TCP/IP Khác với TCP, UDP không

đảm bảo khả năng thông suốt của dữ liệu, cũng không đảm bảo khả năng thông suốt của dữ liệu, cũng không có chế độ sửa lỗi Bù lại, UDP cho tốc độ truyền dữ liệu cao hơn TCP

IP: (Internet Protocol)

Là giao thức ở tầng thứ 3 của TCP/IP, nó có trách nhiệm vận chuyển các Datagrams qua mạng Internet

ICMP: (Internet Control Message Protocol)

Thủ tục truyền các thông tin điều khiển trên mạng TCP/IP Xử lý các tin báo trạng thái cho IP nh lỗi và các thay đổi trong phần cứng của mạng ảnh hởng đến sự định tuyến thông tin truyền trong mạng

ARP: (Address Resolution Protocol)

Là những giao thức ở tầng liên kết dữ liệu Chức năng của nó là tìm địa chỉ vật lý ứng với một địa chỉ IP nào đó Muốn vậy nó thực hiện Broadcashing trên mạng, và máy trạm nào có địa chỉ IP trùng với địa chỉ IP đang đợc hỏi sẽ trả lời thông tin về địa chỉ vật lý của nó

FPT: (File Transfer Protocol)

Giao thức truyền tệp để truyền tệp từ một máy này đến một máy tính khác Dịch vụ này là một trong những dịch vụ cơ bản của Internet

Telnet: (Terminal Emulation Protocol)

Trang 17

Đăng ký sử dụng máy chủ từ xa với Telnet ngời sử dụng có thể từ một máy tính của mình ở xa máy chủ, đăng ký truy nhập vào máy chủ để sử dụng các tài nguyên của máy chủ nh là mình đang ngồi tại máy chủ

SNMP: (Simple Network Management Protocol)

Giao thức quản trị mạng đơn giản: Là dịch vụ quản trị mạng để gửi các thông báo trạng thái về mạng và các thiết bị kết nối mạng

Hình 1.3 Giao tiếp vật lý và logic giữa các lớp

Dữ liệu đợc đa xuống từ lớp ứng dụng, sau đó tới lớp transport, tiếp theo tới lớp Internet và cuối cùng là tới lớp network, mỗi giao thức thực hiện chức năng xử lý luồng dữ liệu này bằng cách bao bọc các giao thức ở trên nó

và đặt thêm một header điều khiển của mình vào phía trớc luồng dữ liệu

Hệ thống nhận dòng dữ liệu này theo thứ tự ngợc lại, các header đợc loại

bỏ và dòng dữ liệu lại đợc gửi lên các lớp trên Sự mở rộng này cung cấp sự linh hoạt bởi vì các lớp trên không cần quan tâm đến các công nghệ đợc sử dụng ở các lớp dới

1.2.3 Giao thức liên mạng IP

Trang 18

Internet Protocol (IP) là giao thức đầu tiên của mô hình OSI, nó cũng

là một phần của TCP/IP Mặc dù trong giao thức IP có từ Internet, nhng nó không chỉ đợc sử dụng trên mạng Internet mà nó còn đợc sử dụng ở các mạng chuyên dụng khác mà không liên quan gì đến Internet IP định nghĩa một giao thức kiểu không kết nối (Connectionless) có nghĩa là không cần có giai đoạn thiết lập trớc khi truyền dữ liệu Đơn vị dữ liệu đợc dùng trong

IP gọi là Datagram IP là sự lựa chọn tốt nhất cho bất cứ mạng nào kết nối thông tin theo kiểu từ máy tới máy Mặc dù nó phải cạnh tranh với các giao thức khác nh IPX của mạng Novell NetWare trên các mạng cục bộ vừa và nhỏ sử dụng NetWare nh là hệ điều hành trên máy PC

Nhiệm vụ chính của IP là đánh địa chỉ các gói dữ liệu của thông tin giữa các máy tính và quản lý các quá trình xử lý các gói dữ liệu này Giao thức IP có một định nghĩa hình thức về cách bố trí các gói dữ liệu và khuôn dạng của phần Header chứa các thông tin về các gói dữ liệu đó IP đảm nhiệm việc định tuyến đờng truyền để xác định gói dữ liệu phải đi đến đâu

và có khả năng điều chỉnh đờng truyền trong trờng hợp gặp trục trặc

Một mục đích quan trọng nữa của IP là làm việc với việc phân phối không tin cậy gói dữ liệu Sự không tin cậy trong trờng hợp này có nghĩa là việc phân phối gói dữ liệu không đợc đảm bảo, có thể do trễ trên đờng truyền, mất đờng truyền, bị sai hỏng trong quá trình phân chia hoặc lắp ráp lại các bảng thông báo Nếu IP không có chức năng điều khiển dữ liệu đáng tin cậy thì không thể nào đảm bảo đợc các gói dữ liệu đến nơi nhận một cách chính xác

IP không sử dụng mã kiểm tra cho toàn bộ gói dữ liệu mà nó chỉ sử dụng cho thông tin ở phần Header của gói tin Giao thức IP cho phép một gói dữ liệu có kích thớc tối đa là 65.535 byte, kích thớc này là quá lớn để các mạng có thể xử lý đợc, do đó phải có quá trình phân mảnh các gói dữ liệu

để truyền và lắp ráp lại thông tin tại trạm đích nếu cần thiết

Trang 19

Khi gói dữ liệu đầu tiên đợc phân mảnh và gửi đến trạm đích, một bộ

đếm thời gian đợc khởi động ở lớp IP máy thu Nếu bộ đếm thời gian này

đã đạt đến một giá trị định trớc mà vẫn cha nhận hết các gói dữ liệu cần thiết thì tất cả các gói dữ liệu đã nhận sẽ bị huỷ bỏ toàn bộ Nhờ những thông tin trong phần Header của gói IP mà máy nhận có thể nhận biết đợc thứ tự của các gói dữ liệu đợc gửi đi nh thế nào Một hậu quả của quá trình phân mảnh thông tin là các gói dữ liệu đợc phân mảnh đến chậm hơn một gói tin không bị phân mảnh, vì vậy phần lớn các ứng dụng thờng tránh kỹ thuật phân mảnh nếu có thể

1.2.3.1 Cấu trúc Header của IP Datagram

IP đợc so sánh là phần cứng của mạng nh là Ethernet, bởi về cơ bản

nó cùng dựa trên sự đóng gói thông tin Khi Ethernet nhận đợc gói IP, nó

đặt phần Header của lớp Ethernet ở phía trớc để tạo khung, quá trình nh vậy đợc gọi là encapsulation Một trong những vấn đề khác nhau cơ bản giữa các phần Header của IP và Ethernet là phần Header của Ethernet bao gồm cả địa chỉ vật lý của máy đích, trong khi đó phần Header của IP chỉ mang địa chỉ IP Sự chuyển đổi giữa hai địa chỉ này đợc thực hiện bởi một giao thức gọi là ARP (Address Resolution Protocol)

IP sử dụng Datagram làm đơn vị di chuyển Tất cả các giao thức và dịch vụ trong họ giao thức TCP/IP đều phải đảm bảo yêu cầu kỹ thuật, tức là độ dài của phần Header là 32 bits

Trang 20

Hình 1.4 Cấu trúc IP Header

ý nghĩa các tham số:

- VER (Version Number): 4bit, chỉ version hiện hành của IP đang đợc

sử dụng Hiện nay hầu hết các hệ thống đều đang sử dụng IPv4, mặc

dù có một vài hệ thống thử nghiệm IP Version 6 Đối với mạng Internet và hầu hết các mạng LAN IPv6 vẫn cha đợc sử dụng

- IHL (Header Length): 4 bit, chỉ độ dài của phần đầu Header của gói

dữ liệu, tính bằng đơn vị WORD (1 WORD=32bit) Độ dài tối thiểu của phần Header là 5 từ (20 bytes), độ dài tối đa của phần Header là 6

o Precedence : 3 bit, chỉ thị quyền u tiên gửi Datagram:

111 - Network Control (Cao nhất) 011 - Flash

110 Internetwork Control- 010 - Immediate

101 - CRICTIC/ECP 001 - Priority

Trang 21

100 - Flash Overide 000 - Routine (thấp nhất)

o D (Delay): 1 bit, chỉ độ trễ yêu cầu:

Nếu D=0 độ trễ bình thờng

D=1 độ trễ thấp

o T (Throughtput): 1 bit, chỉ thông lợng yêu cầu:

Nếu T=0 thông lợng bình thờng

T=1 thông lợng cao

o R (Reliability): 1 bit, chỉ độ tin cậy yêu cầu:

Nếu R=0 độ tin cậy bình thờng

R=1 độ tin cậy cao

- Total Length (Datagram length): 16 bits, chỉ độ dài toàn bộ Datagram

(tính theo đơn vị byte)

- Identification: 16 bit, cùng với các tham số khác nh Source Address,

Destication Address dùng để định danh duy nhất cho một Datagram trong khoảng thời gian nó vẫn còn ở trên mạng

Chú ý: Nếu một Datagram bị phân đoạn, thì mỗi đoạn có cùng một số nhận dạng

- Flags: 3 bit, liên quan đến sự phân đoạn (fragment) các Datagram, có

Trang 22

o Bit 2: MF=0 đây là segment cuối cùng của gói tin bị phân mảnh

MF=1 Đây cha phải là segment cuối

- Fragment Offset: 13 bit, chỉ vị trí của đoạn (segment) ở trong

Datagram, tính theo đơn vị 64 bit, có nghĩa là mỗi đoạn (trừ đoạn cuối) phải chứa một vùng dữ liệu có độ dài là bội số của 64 bit

- Time To Live: 8 bits, qui định thời gian tồn tại (tình bằng giây) của

Datagram trong liên mạng để tránh tình trạng một Datagram bị quẩn trên mạng Thời gian này đợc cho bởi trạm gửi và đợc giảm đi một

đơn vị khi Datagram đi qua mỗi Router trên mạng

- Protocol (Transport Protocol): 8 bit, chỉ ra giao thức tầng trên kết tiếp

nó là gì, TCP, UDP, ICMP, hoặc ARP mà đợc cài đặt trên IP

- Header Checksum: 16 bit, mã kiểm soát lỗi 16 bit theo phơng pháp

CRC (Cyclic Redundancy Code) dùng để kiểm tra lỗi cho vùng Header của Datagram

- Source Address: 32 bit, là địa chỉ trạm nguồn

- Destination Address: 32 bit, địa chỉ trạm đích

- Options: độ dài thay đổi, dùng để khai báo các options do ngời gửi

yêu cầu

- Padding: độ dài thay đổi, là vùng đệm đợc dùng để đảm bảo độ dài

của vùng Header luôn là bội số của 32 bit

- Data: độ dài thay đổi, là vùng dùng để chứa dữ liệu, có độ dài là bội

số của 8 bit và tối đa là 65535 byte

1.2.3.2 Quá trình phân mảnh gói dữ liệu

Các gói số liệu IP phải đợc nhúng trong các khung số liệu của mức liên kết số liệu tơng ứng, trớc khi chuyển tiếp trong mạng Quá trình nhận một gói số liệu IP diễn ra ngợc lại.Ví dụ: Mạng Ethernet ở mức liên kết số liệu, khi gửi một gói IP cho mức Ethernet, IP chuyển cho mức liên kết số liệu các

Trang 23

thông số địa chỉ Ethernet đích, kiểu khung Ethernet (0x0800) và cuối cùng

là gói IP Mức liên kết số liệu đặt địa chỉ Ethernet nguồn là địa chỉ kết nối mạng của mình và tính toán giá trị tổng kiểm tra (checksum) Trờng type chỉ ra kiểu khung là 0x0800 đối với số liệu IP Mức liên kết số liệu sẽ chuyển khung số liệu theo thuật toán truy nhập Ethernet

Một gói IP có độ dài tối đa 65535 byte, trong khi đó hầu hết các mức liên kết số liệu chỉ hổ trợ các khung số liệu nhỏ hơn độ lớn tối đa của gói số liệu

IP nhiều lần (ví dụ độ lớn tối đa của một khung số liệu Ethernet là 1500byte) Vì vậy, cần thiết phải có cơ chế phân mảnh khi phát và hợp nhất mảnh khi thu đối với gói số liệu IP

Ngời ta định nghĩa độ dài tối đa của một gói số liệu liên kết là MTU (Maximum Transmit Unit) Khi cần chuyển một gói số liệu IP có độ dài lớn hơn MTU của một mạng cụ thể, ngời ta phải chia gói số liệu IP đó thành những gói IP nhỏ hơn, gọi chung là mảnh (fragment) Trong phần tiêu đề của gói số liệu IP có thông tin về phân mảnh và xác định các mảnh có quan hệ phụ thuộc để hợp thành sau này Ví dụ: Ethernet chỉ hỗ trợ các khung có độ dài tối

đa 1500 byte Nếu muốn gửi một gói số liệu IP gồm 2000 byte qua Ethernet, phải chia gói IP thành 2 gó nhỏ hơn, mỗi gói vừa với giới hạn MTU của Ethernet

Gói tin ban đầu:

1980 Byte Original IP

Packet

Trang 24

Hình 1.7: Gói IP gốc

Các gói tin sau khi đợc phân mảnh:

Hình 1.8: Các gói IP sau khi phân mảnh

IP dùng cờ MF (3 bít thấp của trờng Flags trong phần đầu gói IP) và trờng Fragment Offset của gói IP (đã bị phân đoạn) để định danh gói IP đó là một phân đoạn và vị trí của phân đoạn này trong gói IP gốc Các gói dùng trong chuỗi phân mảnh đều có trờng này giống nhau Cờ MF bằng không nếu

là gói đầu của chuỗi phân mảnh và 1 nếu là gói cuối phân mảnh

Quá trình hợp nhất diễn ra ngợc lại với quá trình phân mảnh Khi IP nhận đợc một gói phân mảnh, nó giữ phân mảnh đó trong vùng đệm, cho đến khi nhận đợc hết các gói IP trong chuỗi phân mảnh có cùng trờng định danh Khi phân mảnh đầu tiên đợc nhận, IP khởi động một bộ đếm thời gian (giá trị ngầm định là 15s) IP phải nhận hết các phân mảnh kế tiếp trớc khi

đồng hồ tắt Nếu không, IP phải huỷ tất cả các phân mảnh trong hàng đợi hiện thời có cùng trờng định danh

Khi nhận đợc hết các phân mảnh, IP thực hiện hợp nhất các gói phân mảnh thành gói IP gốc và sau đó xử lý gói số liệu này nh một gói số liệu IP bình thờng IP thờng chỉ thực hiện hợp nhất các gói tại hệ thống đích nơi gói số liệu đợc chuyển đến

04 05 00 1500

1 1 1 1 0 0 0 0

05 06 Checksume 128.83.24.13 192.10.2.5 Data

Trang 25

Trong quá trình truyền dữ liệu, một gói dữ liệu (Datagram) có thể

đợc truyền qua nhiều mạng khác nhau Một gói dữ liệu nhận đợc từ một mạng nào đó có thể quá lớn để truyền đi trong một gói đơn ở một mạng khác, bởi vậy mỗi loại cấu trúc mạng cho phép một đơn vị truyền cực đại MTU (Maximum Tranmission Unit) khác nhau

Hậu quả của việc phân mảnh dữ liệu là các gói tin bị phân mảnh sẽ

đến đích chậm hơn so với một gói không bị phân mảnh Vì vậy phần lớn các ứng dụng đều tránh không sử dụng kỹ thuật này nếu có thể Vì sự phân mảnh tạo ra các gói dữ liệu với các header riêng biệt nên quá trình xử lý sẽ làm giảm tính năng của mạng Hơn nữa vì IP là một giao thức không tin cậy nên bất kỳ một gói tin phân mảnh nào bị mất thì tất cả các mảnh khác sẽ phải truyền lại Chính vì lý do này nên phải gửi các gói dữ liệu lớn nhất cho phép

để không bị phân mảnh, giá trị này là Path MTU

1.2.3.3 Phơng pháp đánh địa chỉ trong TCP/IP

Để có thể thực hiện truyền tin giữa các node trên mạng, mỗi node trên mạng TCP/IP cần phải có một địa chỉ xác định gọi là địa chỉ IP Hiện nay mỗi địa chỉ IP đợc tạo bởi một số 32 bits (IPv4) và đợc tách thành 4 vùng, mỗi vùng có một byte có thể biểu thị dới dạng nhị phân, thập phân, thập lục phân hoặc bát phân Cách viết phổ biến nhất là dùng cách viết dùng ký tự thập phân Một địa chỉ IP khi đó sẽ đợc biễu diễn bởi 4 số thập phân có giá trị từ 0 đến 255 và đợc phân cách nhau bởi dấu chấm (.) Mỗi giá trị thập phân biểu diễn 8 bits trong địa chỉ IP Mục đích của địa chỉ IP là định danh duy nhất cho một host ở trên mạng

IPv4 sử dụng 3 loại địa chỉ trong trờng nguồn và đích đó là:

• Unicast:Để thể hiện một địa chỉ đơn hớng Địa chỉ đơn hớng

là địa chỉ dùng để nhận dạng từng nút một trên mạng Cụ thể, nếu một gói dữ liệu đợc gửi tới một địa chỉ đơn hớng sẽ đợc chuyển tới nút mang địa chỉ đơn hớng đó

Trang 26

• Multicast: Địa chỉ đa hớng Là địa chỉ dùng để nhận dạng một

tập hợp các nút nhng không phải là tất cả Gói dữ liệu IP đợc gửi tới địa chỉ Multicast sẽ đợc gửi tới tất cả các nút tham dự trong nhóm Multicast này Kỹ thuật multicasting dựa trên một nhóm địa chỉ lớp D từ 224.0.0.0 cho đến 239.255.255.255

Một số địa chỉ trong khoảng này đợc dành riêng cho những mục đích đặc biệt cụ thể:

Địa chỉ multicast Sử dụng 224.0.0.0 Địa chỉ cơ sở (để dành) 224.0.0.1 Tất cả các máy trên subnet 224.0.0.2 Tất cả các bộ định tuyến trên subnet 224.0.1.1 Giao thức thời gian mạng (Network time) 224.0.0.9 Nhóm địa chỉ RIP version 2

224.0.1.24 Nhóm địa chỉ WINS server

Bảng 1.1 : Các địa chỉ multicast dành riêng

• Broadcast: Thể hiện tất cả các trạm trên mạng Khi một gói IP

đợc gửi đến địa chỉ này thì tất cả các host trên mạng đều nhận

đợc gói tin này

Các địa chỉ IP đợc chia làm hai phần, một phần để xác định mạng

(netid) và một phần dùng để xác định host ( hostid) Các lớp mạng đợc xác

định bởi số bits dành cho mỗi phần mạng và host Có năm lớp mạng là A,B,C,D và E, trong đó ba lớp đầu là đợc dùng cho mục đích thông thờng

và là ba lớp chính, còn hai lớp D và E đợc dùng cho những mục đích đặc biệt và những mục đích khác trong tơng lai

Cấu trúc một địa chỉ IP có dạng nh sau:

Class ID Network IP Host ID

Hình 1.9 Cấu trúc chung của một địa chỉ IP

Trang 27

Mỗi lớp địa chỉ đợc đặc trng bởi một số bits đầu tiên của byte đầu tiên, cấu trúc chi tiếp của địa chỉ IP các lớp là nh sau:

- Từ 192 đến 223 là địa chỉ lớp C Ba Bytes đầu xác định địa chỉ mạng, Byte cuối xác định địa chỉ các máy trạm Lớp C là lớp có nhiều mạng nhng mỗi mạng chỉ có thể có đến 254 host Do đó lớp mạng này chỉ thích hợp với các tổ chức có số lợng máy tính nhỏ

Trang 28

Network class Số mạng Số host trong mạng

Để tiện cho việc quản trị cũng nh thực hiện các phơng pháp tìm đờng trên mạng, ở các mạng lớn (lớp A) hay các mạng vừa (lớp B) ngời ta có thể chia chúng thành các mạng con (Subnets) Ví dụ cho rằng một mạng con có

địa chỉ lớp B là 191.12.0.50 khi đó coi 191.12.0.0 là địa chỉ toàn mạng và lập

địa chỉ 191.12.1.0 cho Subnet 1và 191.12.2.0 cho Subnet 2

Có thể dành trọn một nhóm 8 bits để đánh địa chỉ Subnet và một nhóm để

đánh địa chỉ các máy trong từng Subnet Nh thế tất nhiên là số máy trong một Subnet sẽ ít đi tơng tự nh trong mạng nhỏ Sự phân chia này làm giảm kích thớc của bảng định tuyến trong Router/Gateway, nghĩa là tiết kiệm dung lợng nhớ và thời gian xử lý

Sự phân chia một mạng thành nhiều mạng con phát sinh vấn đề là số lợng bit dành để đánh địa chỉ mạng con có thể khác nhau và tuỳ thuộc vào nhà quản trị Do đó ngời ta đa vào khái niệm Subnet Mask Subnet Mask cũng giống nh địa chỉ IP bao gồm 32 bits Múc đích của Subnet Mask là để chia nhỏ một địa chỉ IP thành các mạng nhỏ hơn và theo dõi vùng nào trên

địa chỉ IP đợc dùng để làm địa chỉ cho mạng con (còn đợc gọi là các Subnet) đó vùng nào dùng làm địa chỉ cho các máy trạm

Nội dung của một Subnet Mask đợc qui định nh sau:

- Các bit 1: dùng để chỉ định địa chỉ mạng trên địa chỉ IP

- Các bit 0: dùng để chỉ định địa chỉ máy trạm trên địa chỉ IP

Trang 29

Ví dụ đối với mạng A có địa chỉ 172.16.0.0, nếu dành thêm 4 bits cho Subnet thì mặt nạ có giá trị là 255.255.240.0, nếu dành 8 bits cho Subnet thì mặt nạ sẽ có giá trị là 255.255.255.0

Từ địa chỉ IP ta thực hiện phép toán logic AND với địa chỉ Subnet Mask, kết quả sẽ tạo ra đợc địa chỉ mạng nơi đến Kết quả này đợc sử dụng để tìm bớc tiếp theo trong thuật toán tìm đờng trên mạng Nếu kết quả này trùng với địa chỉ mạng tại trạm đang làm việc thì sẽ xét tiếp địa chỉ máy trạm

để truyền đi Theo cấu trúc của Subnet Mask thì ta thấy tất cả các trạm làm việc trong cùng một mạng con có cùng giá trị Subnet Mask

Với phơng pháp này số bits dùng để đánh địa chỉ host có thể nhỏ hơn 8 bits (đối với lớp C) tức là một địa chỉ lớp C có thể phân nhỏ hơn nữa và khi

đó các mạng con này thờng đợc xác định bởi các địa chỉ có thêm phần chú thích số bits dành cho địa chỉ mạng, ví dụ 203.16.0.0/25 mô tả Subnet 203.16.0.0 (lớp C) nhng có 25bits dùng cho địa chỉ mạng và 7 bits dùng cho địa chỉ host tức là Subnet này có tối đa 128 hosts chứ không phải 256 host nh một lớp C bình thờng

Trong tất cả các lớp địa chỉ mạng cũng nh các Subnets, các địa chỉ đầu

và cuối của mạng đợc dùng cho các mục đích riêng

Trên mạng Internet, việc quản lý và phân phối địa chỉ IP là đợc thực hiện bởi NIC (Network Information Center) Với sự bùng nổ của số lợng máy tính kết nối vào mạng Internet, địa chỉ IP đã trở thành một tài nguyên cạn kiệt Hiện này ngời ta đã xây dựng và đa vào thử nghiệm giao thức IPv6, một giao thức có thể đáp ứng đợc vấn đề này

1 2.3.4 Định tuyến IP

Định tuyến IP dựa trên nguyên tắc đánh địa chỉ IP nh sau:

- Các trạm làm việc kết nối trong một mạng “vật lý” phải có cùng phần

địa chỉ mạng IP Việc định tuyến IP đồng nghĩa với việc xác định

đờng tới mạng IP

Trang 30

- Mỗi kết nối mạng phải có một địa chỉ mức liên kết xác định, ứng với một địa chỉ mức liên kết có một địa chỉ IP và ngợc lại

Việc định tuyến IP dựa trên bảng định tuyến, đợc lu trử tại mỗi trạm làm việc và thiết bị định tuyến Bảng định tuyến cho biết các số liệu sau:

- Địa chỉ mạng đích

- Địa chỉ IP của thiết bị chuyển tiếp (Gateway)

- Cờ cho biết, đối với mỗi địa chỉ mạng đích có thể đạt tới trực tiếp qua kết nối mạng vật lý hay phải qua thiết bị chuyển tiếp khác (Flag)

Căn cứ vào những nguyên tắc nêu trên, thuật toán định tuyến IP đợc môt tả nh sau:

- Giảm trờng TTL của gói IP

- Nếu TTL=0 thì:

o Huỷ gói

o Gửi thông điệp ICMP báo lỗi cho thiết bị gửi

- Nếu địa chỉ đích là một trong các địa chỉ IP của các kết nối mạng trên

hệ thống, nghĩa là gói số liệu IP đợc gửi cho chính hệ thống này, thì xử lý gói số liệu IP tại chỗ

- Xác định địa chỉ mạng đích bằng cách nhân logic (AND) mặt nạ mạng (network mask) với địa chỉ IP đích

- Nếu địa chỉ mạng đích không tìm thấy trong bảng định tuyến thì huỷ

bỏ gói số liệu này và gửi thông điệp ICMP báo lỗi “mạng đích không

đến đợc” cho thiết bị gửi

- Nếu địa chỉ mạng đích bằng địa chỉ mạng của hệ thống, nghĩa là thiết

bị đích đợc kết nối trong cùng mạng với hệ thống thì tìm địa chỉ mức liên kết tơng ứng trong bảng thích ứng địa chỉ IP MAC, nhúng gó- i

tin trong gói số liệu mức liên kết và chuyển tiếp gói số liệu đến đích

- Trong trờng hợp địa chỉ mạng đích không bằng địa chỉ mạng của hệ

thống thì chuyển tiếp đến thiết bị định tuyến cùng mạng

Trang 31

TCP là một giao thức kiểu “có liên kết” (connection oriented), nghĩa

là cần phải thiết lập liên kết logic giữa một cặp thực thể TCP trớc khi chúng trao đổi dữ liệu với nhau Đơn vị dữ liệu sử dụng trong TCP đợc gọi là segment (đoạn dữ liệu) có khuôn dạng nh hình sau:

Hình 1.11 Cấu trúc TCP Header

Trong đó:

- Source Port: 16 bits, là số hiệu cổng của trạm nguồn, dùng để định

danh cho ngời sử dụng TCP cục bộ (thờng ứng dụng chơng trình ở lớp trên)

- Destinarion Port: 16 bits, là số hiệu cổng của trạm đích, dùng để định

danh cho ngời sử dụng TCP của máy từ xa Số hiệu này là địa chỉ thâm nhập dịch vụ lớp giao vận (CCISAP Address) cho biết dịch vụ

mà TCP cung cấp là dịch vụ gì TCP có số lợng cổng trong khoảng 0- (216-1), tuy nhiên các cổng nằm trong khoảng 0-1023 là đợc biết

Trang 32

nhiều nhất vì nó đợc sử dụng cho việc truy cập các dịch vụ tiêu chuẩn, ví dụ 23 là dịch vụ Telnet, 25 là dịch vụ Mail

- Sequence Number: 32 bits, là số hiệu chỉ dẫn cho vị trí của khối trong

toàn bộ quá trình truyền nhận Số hiệu này cũng đợc sử dụng giữa hai TCP bổ xung để cung cấp số thứ tự đầu tiên của thông báo để gửi đi theo thứ tự Đây là số hiệu của Byte đầu tiên của Segment trừ khi bit SYN đợc thiết lập Nếu bit SYN đợc thiết lập thì Sequence Number

là số hiệu tuần tự khởi đầu (ISN) và Byte dữ liệu dầu tiên là ISN+1

- Acknowledgement Number: 32 bits, là số hiệu chỉ dẫn của segment

tiếp theo mà trạm nguồn đang chờ để nhận Ngầm ý báo đã nhận tốt các Segment mà trạm đích đã gửi cho trạm nguồn

- Data offset: 4 bits, là số lợng của từ 32 bits trong TCP header Tham

số này đợc sử dụng để chỉ ra vị trí bắt đầu của vùng dữ liệu

- Reserved: 6 bits, dành để dùng trong tơng lai Các bit này phải đợc

- Window: 16 bit, đợc dùng để kiểm soát luồng dữ liệu.

Trang 33

- Checksum: 16 bit, mã kiểm soát lỗi theo phơng pháp CRC cho toàn

bộ segment (bao gồm cả phần header và phần dữ liệu)

b) Điều khiển luồng dữ liệu

Trong việc điều khiển luồng dữ liệu phơng pháp hay sử dụng là dùng phơng pháp cửa sổ trợt Phơng pháp này giúp cho việc nhận luồng dữ liệu hiệu quả hơn

Phơng pháp cửa sổ trợt cho phép nơi gửi (Sender) có thể gửi đi nhiều gói tin rồi sau đó mới đợi tín hiệu báo nhận ACK (Acknowledgement) của nơi nhận (Receiver) Với phơng pháp cửa sổ trợt khi cần truyền các gói tin, giao thức sẽ đặt một cửa sổ có kích thớc cố định lên các gói tin Những gói nào nằm trong vùng cửa sổ ở một thời điểm nhất định sẽ đợc truyền đi Hình 1.12 minh hoạ quá trình này, ở đây kích thớc cửa sổ là 4 Tức là mỗi lúc cửa sổ chỉ gửi đợc 4 gói tin Đầu tiên cửa sổ sẽ gửi 4 gói tin từ 1 đến 4 và 4 gói tin này sẽ đợc gửi cho bên nhận Cửa sổ tiếp tục trợt để gói tin thứ 5 đợc gửi

đi ngay sau khi nhận đợc tín hiệu ACK của gói tin thứ nhất từ trạm đích, quá trình nh vậy cứ tiếp tục cho đến khi gói tin cuối cùng đợc chuyển đi

1

2

1

2

Trang 34

Hình 1.12 : Hoạt động của cửa sổ trợt

Trong quá trình gửi và nhận dữ liệu, có thể có một số gói tin mặc dù đã

đợc gửi đi nhng không có phúc đáp (không nhận đợc báo nhận) có nghĩa là bên nhận không nhận đợc thì những gói đó sẽ đợc truyền lại

Tại bên nhận cũng duy trì một cửa sổ trợt tơng tự dùng để nhận và báo nhận các gói tin đã nhận đợc

TCP cung cấp một kiểu dịch vụ gọi là dịch vụ chuyển luồng đáng tin cậy TCP xem luồng dữ liệu nh là một thứ tự các byte dữ liệu đợc tách thành các Segments Thờng thì mỗi Segment truyền trong liên mạng sẽ đợc lồng

và một Datagram

Với kỹ thuật cửa sổ trợt, sễ giải quyết đợc hai vấn đề quan trọng đó là

truyền có hiệu quả và điều khiển luồng dữ liệu TCP sử dụng kỹ thuật cửa sổ

trợt dựa trên kỹ thuật cửa sổ trợt đã trình bày ở trên Nó cho phép gửi đợc nhiều Segment trớc khi báo nhận đến từ nơi nhận và do đó làm tăng thông lợng truyền trên mạng Bên cạnh đó kỹ thuật cửa sổ trợt còn cho phép bên nhận tránh đợc tình trạng dữ liệu bị mất bằng cách làm giảm lu lợng dữ liệu gửi đến nếu bộ đệm của nó không chứa thêm nhiều dữ liệu

Kỹ thuật cửa sổ trợt của TCP đợc tiến hành ở mức Byte chứ không phải ở mức Segment hay Packet nh đã trình bày ở trên Các Bytes của luồng dữ liệu đợc đánh số một cách tuần tự và một cửa sổ đợc định nghĩa bởi ba con trỏ nh hình 1.13

: Các con trỏ

Trang 35

Hình 1.13 : Cấu hình cửa sổ trợt

Tại mỗi thời điểm, con trỏ đầu tiên trỏ vào mép bên trái cửa sổ, con trỏ thứ hai trỏ vào mép bên phải cửa sổ và con trỏ thứ ba xác định vị trí các bytes

đợc gửi đi Con trỏ bên phải và bên trái cửa sổ xác định kích thớc của cửa

sổ Các phần mềm giao thức gửi các gói bên trong cửa sổ không có trễ do đó danh giới bên trong cửa sổ luôn luôn di chuyển từ bên phải qua bên trái

Nh trong hình 2.11 chỉ ra byte thứ hai đã đợc gửi và nhận đợc báo nhận, Bytes thứ 3,4 đã đợc gửi nhng cha có báo nhận, Bytes thứ 5,6 cha

đợc gửi nhng sẽ đợc gửi mà không có trễ Các Bytes lớn hơn 7 cha đợc gửi cho đến khi cửa sổ di chuyển

Có một sự khác biệt giữa cửa sổ trợt TCP và cửa sổ trợt đợc trình bày ở trên là cửa sổ trợt TCP có thể thay đổi kích thớc theo thời gian Trong

đó mỗi báo nhận đều có thông tin về trạng thái bộ đệm tại bên nhận, cho biết bên nhận có thể nhận đợc bao nhiêu Bytes dữ liệu nữa Nếu nhận đợc thông báo kích thớc bộ đệm còn ít thì bên gửi sẽ giảm kích cỡ của cửa sổ và nó không gửi số Bytes dữ liệu quá kích thớc của bộ đệm Còn nếu thông báo rằng kích thớc của bộ đệm tăng thì bên gửi sẽ tăng tơng ứng kích thớc của cửa sổ

Vì liên kết TCP là loại liên kết đầy đủ, dữ liệu có thể đợc truyền theo cả hai hớng, tức là tại mỗi thời điểm dữ liệu có thể đợc truyền từ hai đầu cuối của liên kết một cách độc lập với nhau nên tại mỗi đầu của liên kết sẽ có thể duy trì hai cửa sổ một để gửi dữ liệu và một để nhận dữ liệu

c) Thiết lập và kết thúc kết nối TCP

Nh ta đã biết, TCP là một giao thức kiểu có liên kết, tức là cần phải

có giai đoạn thiết lập một liên kết giữa một cặp thực thể TCP trớc khi truyền dữ liệu và huỷ bỏ liên kết khi không còn nhu cầu trao đổi dữ liệu nữa

Để thiết lập một kết nối TCP, hai thực thể tham gia giao tiếp sẽ thực hiện

một quá trình bắt tay với nhau gọi là three-way hanshake Mỗi gói tin trao

Trang 36

đổi trong quá trình bắt tay này chứa một số thứ tự, các số thứ tự này là duy nhất đối với một kết nối giữa hai thực thể giao tiếp

Hình 1.14 : Thiết lập một kết nối TCP/IP

Các bớc cho việc thiết lập một kết nối TCP giữa máy tính A (client) và máy tính B (Server) diễn ra nh sau:

- Bớc 1: A gửi một gói yêu cầu kết nối tới B, với bit SYN trong gói này

đợc đặt là 1 A nói với B rằng trờng Sequence Number là hợp lệ và

nên đợc kiểm tra Bên A thiết lập giá trị trờng Sequence Number là

số thứ tự khởi đầu của nó

- Bớc 2: B đáp ứng lại bằng cách gửi một gói có bit SYN và ACK đợc bật lên Số thứ tự khởi đầu chính là số thứ tự khởi đầu của A cộng thêm 1

- Bớc 3: Bên A xác nhận số thứ tự khởi đầu của bên B bằng việc gửi một gói có bit ACK đợc bật lên và số thứ tự của nó là số thứ tự khởi

đầu của B cộng thêm 1

Sau khi bên B nhận đợc gói tin xác nhận ở bên A, một kết nối TCP đợc thiết lập và hai bên bắt đầu có thể trao đổi dữ liệu cho nhau

Khi một thực thể tham gia kết nối (ví dụ A) muốn huỷ bỏ một kết nối, nó

sẽ gửi cho phía bên kia một gói tin có cờ FIN đợc bật lên để thông báo nó không còn dữ liệu để trao đổi nữa Bên B lúc này vẫn có thể tiếp tục truyền dữ liệu nếu còn, và khi không còn dữ liệu để trao đổi nữa thì B sẽ gửi một gói tin có cờ FIN đợc bật lên và ACK bằng số thứ tự của A cộng thêm 1 để

Trang 37

báo cho bên A biết là nó đã nhận đợc gói tin yêu cầu kết thúc kết nối của bên A Bên A nhận đợc gói tin này sẽ đáp trả lại bằng một gói tin báo nhận

có ACK bằng số thứ tự của B cộng thêm 1 và kết nối TCP giữa hai thực thể

sẽ chính thức bị huỷ bỏ

d) Truyền và nhận dữ liệu

Hình 1.15 : Quá trình truyền dữ liệu

Sau khi liên kết đợc thiết lập giữa một cặp thực thể TCP thì có thể tiến hành việc truyền dữ liệu Với liên kết TCP dữ liệu có thể đợc truyền theo cả hai hớng

Khi nhận đợc một khối dữ liệu cần chuyển đi từ ngời sử dụng, TCP sẽ lu giữ nó tại bộ đệm gửi Nếu cờ PUSH đợc dựng thì toàn bộ dữ liệu trong

bộ đệm sẽ gửi đi hết dới dạng các TCP Segment Còn nếu cờ PUSH không

đợc dựng thì toàn bộ dữ liệu vẫn đợc lu trữ trong bộ đệm để chờ gửi đi khi

có cơ hội thích hợp

Tại bên nhận, dữ liệu gửi đến sẽ đợc lu giữ trong bộ đệm nhận Nếu dữ liệu nhận đợc đánh dấu bởi cờ PUSH thì toàn bộ dữ liệu trong bộ đệm nhận sẽ đợc gửi lên cho ngời sử dụng Còn nếu dữ liệu không đợc đánh dấu với cờ PUSH thì chúng vẫn đợc lu trong bộ đệm Nếu dữ liệu khẩn cần

Trang 38

phải chuyển gấp thì cờ URGENT đợc dùng và đánh dấu dữ liệu bằng bit URG để báo rằng dữ liệu khẩn cần đợc chuyển gấp

Dịch vụ truyền dữ liệu TCP thực sự bao gồm 6 dịch vụ con:

 Full duplex: Dịch vụ truyền song công, cho phép cả hai đầu cuối của

một kết nối có thể truyền bất cứ lúc nào, thậm chí đồng thời

 Timeliness: Việc sử dụng các bộ định thời gian để đảm bảo rằng dữ

liệu đợc truyền thời gian hợp lý

 Ordered: Dữ liệu gửi từ một ứng dụng đợc nhận đúng thứ tự tại đầu

cuối kia Mặc dù các Datagram có thể nhận đợc không theo thứ tự thông qua IP, TCP sẽ tập hợp các message vào đúng tứ tự trớc khi truyền lên tầng cao hơn

 Labeled: Tất cả các kết nối đều có một sự thoả thuận về giá trị u tiên

và giá trị an toàn

 Controlled flow: TCP có thể điều chỉnh thông tin điều khiển luồng

thông qua việc sử dụng các bộ đệm và các giới hạn cửa sổ

 Error correction: Tổng kiểm tra bảo đảm rằng dữ liệu không bị lỗi

1.2 4.2 Giao thức UDP

Giống nh TCP, User Datagram Protocol (UDP) là một giao thức lớp transport Tuy nhiên UDP cung cấp dịch vụ kết nối không hớng liên kết (connectionless) và không tin cậy

Source UDP port Destination UDP port

Trang 39

0BData

Hình 1.16 Cấu trúc của UDP Header

Bởi vì không có điều khiển luồng và không có quá trình bắt tay thiết lâp kết nối nên việc giao tiếp sử dụng giao thức UDP diễn ra rất nhanh Tuy nhiên, cũng vì vậy mà các gói UDP dễ dàng bị giả mạo và các ứng dụng rất

- Điều khiển lu lợng (Flow Control): khi các gói số liệu đến quá nhanh, thiết bị đích hoặc thiết bị định tuyến ở giữa sẽ gửi một thông

điệp ICMP trở lại thiết bị gửi, yêu cầu thiết bị gửi tạm thời ngừng việc gửi số liệu

- Thông báo lỗi: trong trờng hợp địa chỉ đích không tới đợc thì hệ thống sẽ gửi một thông báo lỗi “Destination Unreachable”

- Định hớng lại các tuyến đờng: một thiết bị định tuyến sẽ gửi một thông điệp ICMP định tuyến lại “Redirect Router” để thông báo với một trạm là nên dùng thiết bị định tuyến khác để tới đích Thông điệp này chỉ có thể dùng khi trạm nguồn ở trên cùng một mạng với cả hai thiết bị định tuyến

- Kiểm tra các trạm ở xa: một trạm có thể gửi một thông điệp ICMP

“Echo” để kiểm tra xem một trạm ở xa có hoạt động hay không

Trang 40

Hình 1.17 : Dịch vụ định tuyến lại (ICMP Redirect) 1.2 5.2 Giao thức phân giải địa chỉ ARP

ARP (Address Resolution Protocol) là giao thức đợc sử dụng để xác

định thích ứng địa chỉ mạng IP và địa chỉ mức liên kết số liệu (địa chỉ MAC)

Thông thờng, mỗi hệ thống lu giữ và cập nhật bảng thích ứng địa chỉ MAC tại chỗ (còn gọi là ARP cache) Bảng thích ứng địa chỉ đợc cập nhật bởi ngời quản trị hệ thống hoặc tự động bởi giao thức ARP sau mỗi lần xác

IP-định đợc một thích ứng địa chỉ mới Cấu trúc gói số liệu ARP đợc mô tả trong hình sau đây

Trong đó:

- Datalink type: cho biết loại công nghệ mạng ở mức liên kết (Ví dụ:

đối với mạng Ethernet, trờng này thờng có giá trị 01)

Datalink type Network type hlen plen Opcode Sender datalink (6 bytes) Sender Network (4 bytes) Target datalink (6 bytes)

Source Host

R1

Host R1

(1)IP Diagram

(2)IP Diagram

(3)ICMP Redirect

Ngày đăng: 22/01/2024, 16:49

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Mạng máy tính và các hệ thống mở - Nguyễn Thúc Hải Khác
2. Snort 2.0 Intrusion Detection - Syngress Khác
3. Intrusion Detection with SNORT - Advanced IDS Techniques Using SNORT, Apache, MySQL, PHP, and ACID Khác
4. Hack Proofing Your Network - McGraw - Hill Khác
5. Network Programming for Microsoft Windows Microsoft Press. - 6. TCP IP Tutorial and Technical Overview - IBM Red book Khác
7. The Windows 2000 Device Driver Book A Guide for Programmers (2nd Edition) - e-Hall Khác
8. Programming the microsoft windows driver model 2nd ED - MS Press 9. Building Internet Firewalls - OReilly Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.1 Cấu trúc mô hình OSI  a) Tầng ứng dụng (Application Layer) - An ninh an toàn mạng và hệ thống phát hiện đột nhập
Hình 1.1 Cấu trúc mô hình OSI a) Tầng ứng dụng (Application Layer) (Trang 13)
Hình 1.3 Giao tiếp vật lý và logic giữa các lớp - An ninh an toàn mạng và hệ thống phát hiện đột nhập
Hình 1.3 Giao tiếp vật lý và logic giữa các lớp (Trang 17)
Hình 1.10 Khuôn dạng địa chỉ IP - An ninh an toàn mạng và hệ thống phát hiện đột nhập
Hình 1.10 Khuôn dạng địa chỉ IP (Trang 27)
Bảng 1.2: Bảng phân lớp địa chỉ - An ninh an toàn mạng và hệ thống phát hiện đột nhập
Bảng 1.2 Bảng phân lớp địa chỉ (Trang 28)
Hình 1.12 : Hoạt động của cửa sổ trợt - An ninh an toàn mạng và hệ thống phát hiện đột nhập
Hình 1.12 Hoạt động của cửa sổ trợt (Trang 34)
Hình 1.15 : Quá trình truyền dữ liệu - An ninh an toàn mạng và hệ thống phát hiện đột nhập
Hình 1.15 Quá trình truyền dữ liệu (Trang 37)
Hình 1.17 : Dịch vụ định  tuyến lại (ICMP Redirect)  1.2 .5.2 Giao thức phân giải địa chỉ ARP - An ninh an toàn mạng và hệ thống phát hiện đột nhập
Hình 1.17 Dịch vụ định tuyến lại (ICMP Redirect) 1.2 .5.2 Giao thức phân giải địa chỉ ARP (Trang 40)
Hình 1.19 :  Mô hình tổ chức trao đổi thông tin  Máy trạm (client): Chịu trách nhiệm thu nhận yêu cầu ngời sử dụng, xử lý - An ninh an toàn mạng và hệ thống phát hiện đột nhập
Hình 1.19 Mô hình tổ chức trao đổi thông tin Máy trạm (client): Chịu trách nhiệm thu nhận yêu cầu ngời sử dụng, xử lý (Trang 42)
Hình 4.1 : Hệ thống phát hiện đột nhập mạng NIDS - An ninh an toàn mạng và hệ thống phát hiện đột nhập
Hình 4.1 Hệ thống phát hiện đột nhập mạng NIDS (Trang 85)
Hình 4.2 : Hệ phát hiện đột nhập trạm HIDS - An ninh an toàn mạng và hệ thống phát hiện đột nhập
Hình 4.2 Hệ phát hiện đột nhập trạm HIDS (Trang 91)
Hình 5.1  Kiến trúc chơng trình Snort - An ninh an toàn mạng và hệ thống phát hiện đột nhập
Hình 5.1 Kiến trúc chơng trình Snort (Trang 98)
Hình 5.3 : Sơ đồ khối giải mã gói tin - An ninh an toàn mạng và hệ thống phát hiện đột nhập
Hình 5.3 Sơ đồ khối giải mã gói tin (Trang 101)
Hình 5.4 : Sơ đồ khối module tiền xử lý - An ninh an toàn mạng và hệ thống phát hiện đột nhập
Hình 5.4 Sơ đồ khối module tiền xử lý (Trang 104)
Hình 5.5  : Sơ đồ module phát hiện đột nhập - An ninh an toàn mạng và hệ thống phát hiện đột nhập
Hình 5.5 : Sơ đồ module phát hiện đột nhập (Trang 108)
Hình 5.6 : Sơ đồ module cảnh báo - lu trữ - An ninh an toàn mạng và hệ thống phát hiện đột nhập
Hình 5.6 Sơ đồ module cảnh báo - lu trữ (Trang 111)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w