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

Nghiên cứu, tìm hiểu các điểm yếu giao thức TCPIP xây dựng module tấn công và giải pháp phòng chống

92 744 2

Đ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

Định dạng
Số trang 92
Dung lượng 4,04 MB

Nội dung

Nghiên cứu, tìm hiểu các điểm yếu giao thức TCPIP xây dựng module tấn công và giải pháp phòng chống

Trang 1

LỜI CẢM ƠN

Trước hết , em xin bày tỏ lòng biết ơn chân thành nhất đến thầy Chu Minh Yên đã tận tân giúp đỡ, hướng dẫn em trong suốt thời gian làm đồ án tốt nghiệp

Em cũng xin chân thành cảm ơn quý thầy cô trong khoa An Toàn Thông Tin, Học Viện Kỹ Thuật Mật Mã đã tận tình giảng dạy chúng em, truyền đạt cho chúng em những kiến thức quý báu trong quá trình học tập Xin cảm gia đình và tất cả bạn bè đã động viên giúp đỡ tôi trong quá trình học tập và hoàn thành đồ án tốt nghiệp

Mặc dù đã cố gắng hết sức, song chắc chán đồ án tốt nghiệp không tránh khỏi những hạn chế Em rất mong nhận được sự thông cảm và chỉ bảo tận tình của quý thầy cô và các bạn

Hà Nội, tháng 6 năm 2011

Sinh viên thực hiện

Trang 2

MỤC LỤC

Trang 3

DANH MỤC HÌNH VẼ

Hình 1.1 Cấu trúc phần Header của gói tin IP 12

Hình 1.3 Cấu trúc Header của TCP 18

Hình 1.4 Giao tiếp 3 lượt trong tính kết nối 19

Hình 1.5 Nguyên tắc hoạt động của TCP 22

Hình 1.7 Mô hình tham chiếu TCP/IP và OSI 27

Hình 1.8 Nguyên lý hoạt động của TCP/IP 29

Hình 1.9 Qúa trình bắt tay 3 bước 31

Hình 1.10 Tấn công TCP SYN flood 32

Hình 1.11 Tấn công giả mạo IP 33

Hình 1.12 Tấn công giả mạo IP từ xa với kỹ thuật định tuyến theo nguồn .34

Hình 1.13 Tấn công man-in-the-middle 35

Hình 1.14 Tấn công ARP 37

Hình 2.1 Địa chỉ MAC 45

Hình 2.2 Xóa địa chỉ MAC 45

Hình 2.3 Gán địa chỉ IP vào địa chỉ MAC 46

Hình 2.4 Giao diện của chương trình Netcut 47

Hình 2.5 Giao diện của chương trình Anti Netcut 47

Hình 2.6 Mô hình của AH Header 50

Hình 2.7 Mô hình Encapsulating Security Payload 51

Hình 2.8 Mô hình hoạt động của IPSec trong Active Directory Domain 53

Hình 2.9 Giải pháp IPSec VPN 53

Hình 2.10 Mô hình SSL 54

Hình 2.11 Giải pháp SSL VPN 55

Hình 2.12 Cấu trúc IPv6 57

Hình 2.13 Global Unicast Address trong IPv6 57

Hình 2.14 Link-local Addresses trong IPv6 58

Hình 2.15 Ví dụ về Link-Local Address 58

Hình 2.16 Mô tả 64 bits cuối cùng của IPv6 58

Hình 2.17 Site-Local Addresses trong IPv6 59

Hình 2.18 Unique Local Address 59

Hình 2.19 Multicast Address 60

Hình 2.20 So sánh Header IPv4 Với Header IPv6 63

Trang 4

Hình 2.21 Thực hiện bảo mật kết nối giữa hai mạng trong IPv4 66

Hình 3.1 : Tấn công Smurf 69

Hình 3.2 : Sơ đồ dạng tấn công DDOS .71

Hình 3.3 : Sơ đồ các mô hình tấn công DDOS 72

Hình 3.4 : Mô hình Agent – Handler 72

Hình 3.5 : Mô hình IRC – Based 73

Hình 3.6 Giao diện công cụ Cain and Able 78

Hình 3.7 Tài khoản đăng nhập cho giao thức HTTP 79

Hình 3.8 Hiển thị kết quả sniff với giao thức http 79

Hình 3.9 tài khoản đăng nhập cho giao thức HTTPS 79

Hình 3.10 Hiển thị kết quả với giao thức https 80

Hình 3.11: Capture monitoring khi chưa cấu hình IPsec 81

Hình 3.12 Dữ liệu khi chưa cấu hình Ipsec 81

Hình 3.13 Cấu hình IPSEC 82

Hình 3.14 Capture monitoring khi đã cấu hình IPsec 82

III.3 Xây dựng Module tấn công từ chối dịch vụ DOS 83

Tấn công DOS/DDOS là phương pháp tấn công chủ yếu dựa trên điểm yếu giao thức TCP/IP, chính vì lý do đi xây dựng module tấn công DOS : 83

III.3.1 Kỹ thuật tấn công 83

III.3.2 Mô hình tấn công 83

.83

Hình 3.16 Mô hình tấn công DOS 84

Kẻ tấn công sẽ gửi các yêu cầu hoặc các gói tin không hợp lệ (không đúng theo tiêu chuẩn) một cách cố ý, khiến cho hệ thống bị tấn công khi nhận được yêu cầu hay gói tin này, xử lý không đúng hoặc không theo trình tự đã được thiết kế, dẫn đến sự sụp đổ của chính hệ thống đó, gửi liên lục với tốc độ được nhanh hơn.[4] 84

Nếu quá trình đó kéo dài, đích bị tấn công sẽ nhanh chóng trở nên quá tải, dẫn đến tình trạng crash (treo) nên các yêu cầu hợp lệ sẽ bị từ chối không thể đáp ứng được Có thể hình dung quá trình này cũng giống như khi máy tính cá nhân (PC) hay bị “treo” khi mở cùng lúc quá nhiều chương trình cùng lúc [4] 84

III.3.3 Xây dựng Module tấn công 84

Ý tưởng cho việc xây dựng công cụ tấn công là : 84

Trang 5

- Tại công cụ tấn công sẽ cho phép nhập địa chỉ IP hoặc URL của website sẽ hiển thị trình duyệt website bị tấn công để cho ta thấy được khi nào tấn công

có kết quả thành công.Nút Test hiển thị kết quả trình duyệt 1 lần 84

- Cho phép nhập kích thước gói IP dùng để PING tới website đó 84

- Nút Start bắt đầu thực hiện tấn công : Gửi yêu cầu trình duyệt tới website liên tục và thực hiện Ping gói IP với kích thước lớn hơn kích thước gói IP cho phép , với lệnh Ping được tăng tốc và liên tục dẫn đến đích bị tấn công sẽ nhanh chóng trở nên quá tải, dẫn đến tình trạng treo nên các yêu cầu hợp lệ sẽ bị từ chối không thể đáp ứng được 84

- Nút Stop thực hiện kết thúc cuộc tấn công 84

- Khi tấn công đã thực hiện thành công thì sẽ không hiển thị gì trên trình duyệt website tại công cụ tấn công vì lúc này dịch vụ đang bị treo không thể đáp ứng các yêu cầu hợp lệ 84

Sử dụng Visual Basic 2010 để xây dựng chương trình 84

Chương trình được xây dựng dựa trên các khối lệnh thực hiện như sau: 84

Lệnh trình duyệt website khi chưa thực hiện tấn công (test), trình duyệt website sẽ được hiện thị ở khung Webbrower: 84

85

Hình 3.17 Code nút Test 85

Lệnh bắt đầu thực hiện tấn công : 85

.85

Hình 3.18 Code nút Start 85

Lệnh thực hiện tấn công: 85

Yêu cầu kết nối(trình duyệt) liên tục 85

Giao tiếp với MS-DOS để thực hiện lệnh PING liên tục 85

+ “- l” : kích thước gói IP 85

+ “- f” : Tăng tốc độ lệnh PING 85

.85

Hình 3.19 Code thực hiện tấn công 85

Giao diện chương trình tấn công DOS giao tiếp với người sử dụng : 86

86

Hình 3.20:Giao diện tool tấn công DOS 86

Hình 3.21 : Test chạy trình duyệt website 86

Hình 3.22 Kết quả tấn công DOS bằng module xây dựng 87

Trang 6

Hình 3.23 Kết quả tấn công trên trình duyệt website 87

Yêu cầu kết nối(trình duyệt) liên tục 88

Giao tiếp với MS-DOS để thực hiện lệnh PING liên tục 88

+ “- l” : kích thước gói IP 88

+ “- f” : Tăng tốc độ lệnh PING 88

Các lệnh thực hiện đơn giản, dễ hiểu Tại công cụ tấn công đã hiện thị được trình duyệt website đang tấn công, để có thể xem được khi nào tấn công thành công website đó 88

Các lệnh được thực hiện đơn luồng (thực hiện theo thứ tự), không thực hiện đa luồng(thực hiện cùng lúc) nên quá trình tấn công diễn ra lâu hơn so với các công cụ tấn công khác 88

III.3.6 Giải pháp phòng chống tấn công DOS 88

Tổng hợp những giải pháp phòng chống [4]: 88

Nhìn chung, tấn công từ chối dịch vụ không quá khó thực hiện, nhưng rất khó phòng chống do tính bất ngờ và thường là phòng chống trong thế bị động khi sự việc đã xảy ra rồi 88

Việc đối phó bằng cách tăng cường “phần cứng” cũng là giải pháp tốt, nhưng thường xuyên theo dõi để phát hiện và ngăn chặn kịp thời cái gói tin IP từ các nguồn không tin cậy là hữu hiệu nhất 88

Mô hình hệ thống cần phải được xây dựng hợp lý, tránh phụ thuộc lẫn nhau quá mức Bởi khi một bộ phận gặp sự cố sẽ làm ảnh hưởng tới toàn bộ hệ thống 88

Thiết lập mật khẩu mạnh (strong password) để bảo vệ các thiết bị mạng và các nguồn tài nguyên quan trọng khác 88

Thiết lập các mức xác thực đối với người sử dụng cũng như các nguồn tin trên mạng Đặc biệt, nên thiết lập chế độ xác thực khi cập nhật các thông tin định tuyến giữa các router 88

Chỉ kích hoạt các dịch vụ cần thiết, tạm thời vô hiệu hoá và dừng các dịch vụ chưa có yêu cầu hoặc không sử dụng 88

Xây dựng hệ thống định mức, giới hạn cho người sử dụng, nhằm mục đích ngăn ngừa trường hợp người sử dụng ác ý muốn lợi dụng các tài nguyên trên server để tấn công chính server hoặc mạng và server khác 88

Liên tục cập nhật, nghiên cứu, kiểm tra để phát hiện các lỗ hổng bảo mật và có biện pháp khắc phục kịp thời 89

Trang 7

Sử dụng các biện pháp kiểm tra hoạt động của hệ thống một cách liên tục để phát hiện ngay những hành động bất bình thường .89Xây dựng và triển khai hệ thống dự phòng .89Khi phát hiện máy chủ bị tấn công hãy nhanh chóng truy tìm địa chỉ IP đó và cấm không cho gửi dữ liệu đến máy chủ 89Dùng tính năng lọc dữ liệu của router/firewall để loại bỏ các packet không mong muốn, giảm lượng lưu thông trên mạng và tải của máy chủ 89Nếu bị tấn công do lỗi của phần mềm hay thiết bị thì nhanh chóng cập nhật các bản sửa lỗi cho hệ thống đó hoặc thay thế 89Dùng một số cơ chế, công cụ, phần mềm để chống lại TCP SYN Flooding 89Tắt các dịch vụ khác nếu có trên máy chủ để giảm tải và có thể đáp ứng tốt hơn 89Nếu được có thể nâng cấp các thiết bị phần cứng để nâng cao khả năng đáp ứng của hệ thống hay sử dụng thêm các máy chủ cùng tính năng khác để phân chia tải 89Tạm thời chuyển máy chủ sang một địa chỉ khác 89

Trang 8

DANH MỤC BẢNG

Bảng 1.1 Cấu trúc mỗi nhóm Bits trong IP 13

Bảng 1.2 Cấu trúc các nhóm Bits trong IP 14

Bảng 1.3 Bảng liệt kê danh sách các địa chỉ riêng 15

Bảng 1.4 Phân mảnh gói tin 17

Trang 9

LỜI MỞ ĐẦU

Internet-một thuật ngữ không còn xa lạ gì hiện nay- đang ngày càng trở nên một công cụ hết sức hữu ích trong đời sống xã hội hiện đại Tại Việt Nam, từ năm 1997, với sự triển khai dịch vụ Internet trong cộng đồng, một loại hình thông tin mới dần thịnh hành và trở nên hết sức tiện lợi Tuy nhiên,

ở những thời kỳ đầu của công nghiệp máy tính, việc truyền thông tin giữa các máy tính, giữa các mạng là hết sức bất tiện và mất thời gian, công sức Hơn nữa, khi công nghiệp máy tính phát triển, các nhà sản xuất cho ra đời các loại phần cứng, phần mềm khác nhau để đáp ứng với nhu cầu riêng lẻ của từng doanh nghiệp Nhưng cũng chính từ điều đó, đã dẫn đến một vấn đề lớn: Các thiết bị phần cứng và phần mềm đó chỉ làm việc với các thiết bị cùng chủng loại, cùng nhà sản xuất và làm việc trên mạng diện hẹp và có giới hạn, các thiết bị đôi khi quá phức tạp và cần các phần mềm riêng biệt đi kèm cho mỗi thiết bị và ứng dụng, đồng thời thiếu đi tính mềm dẻo và khả chuyển của các mạng con, làm cho việc chuyển đổi, kết nối chúng trở lên phức tạp khó khăn

và đôi khi không thể thực hiện đợc

Xuất phát từ những khó khăn thực tế đó, cùng với nhu cầu trao đổi thông tin bộ giao thức liên kết mạng TCP/IP (Transmision Control Protocol/Internet Protocol) ra đời, cùng với nó là kỹ thuật routing (định tuyến) mạng để kết nối các mạng với nhau Từ sự ra đời của chúng, ngày nay, một mạng máy tính cho một tổ chức đã trở thành một hệ thống thống nhất, những mạng LAN ( Local Area Netwwork-mạng cục bộ ) đã có thể kết nối với nhau, trở thành những hệ thống lớn hơn, tiêu biểu là mạng Internet hiện nay, với khả năng liên kết không giới hạn và là nguồn tài nguyên về thông tin khổng lồ lớn nhất thế giới

Từ những lợi ích của việc ra đời giao thức TCP/IP,nhiều ứng dụng dựa vào nó đó được phát triển.Hacker đó lợi dụng những phỏt triển trờn để thực hiện những tấn công vào hệ thống mạng nhằm phục vụ lợi ích cho họ Cỏc chuyờn gia về bảo mật cho biết họ đó phỏt hiện ra một lỗi bảo mật trong cơ chế vận hành của bộ giao thức TCP/IP cho phộp tấn cụng bất kỡ thiết bị nào

cú kết nối băng rộng Phỏt hiện này cú thể mang lại thiệt hại cho hàng triệu người cú cụng việc phụ thuộc vào cỏc website, hệ thống mail và hệ thống mạng núi chung

Trang 10

Sau một thời gian nghiên cứu và tìm hiểu về TCP/IP, em đã quyết định chọn đề tài về TCP/IP để làm đồ án tốt nghiệp Đối với sinh viên học An Toàn Thông Tin nói chung và bản thân em nói riêng thì tìm hiểu về TCP/IP là điều hết sức quan trọng Nó là nền tảng đầu tiên và không thể thiếu để nghiên cứu về An Toàn Thông Tin.

Đồ án tốt nghiệp :” Nghiên cứu, tìm hiểu các điểm yếu giao thức TCP/IP, xây dựng module tấn công và giải pháp phòng chống” với mục đích

là tìm hiểu về bộ giao thức TCP/IP, điểm yếu, một số phương pháp tấn công vào bộ giao thức TCP/IP và giải pháp phòng chống đối với các phương pháp tấn công Với mục đích đã đề ra cần giải quyết, nội dung của đồ án bao gồm :

Chương I Tổng quan về giao thức TCP/IP và các điểm yếu mất an toàn của giao thức: Giới thiệu tổng quan về giao thức IP, TCP và bộ giao

thức TCP/IP Cấu trúc, các tính chất và cơ chế hoạt động của các giao thức đó.Tìm hiểu một số điểm yếu trong bộ giao thức TCP/IP, các phương pháp tấn công

Chương II Các giải pháp đảm bảo an toàn cho các hệ thống mạng

sử dụng bộ giao thức TCP/IP: Giới thiệu về các giải pháp khi không sử

dụng mật mã và các giải pháp sử dụng mật mã mã hóa gói tin để đảm bảo an toàn trong hệ thống mạng có sử dụng bộ giao thức TCP/IP giới thiệu các tính năng an toàn mới trong IPv6

Chương III Một số tấn công dựa trên điểm yếu giao thức và xây dựng Module tấn công : Tìm hiểu về hai loại tấn công phổ biến dựa vào

điểm yếu giao thức TCP/IP là tấn công từ chối dịch vụ và nghe lén trên đường truyền Xây dựng module tấn công đối với hệ thống thực tế và giải pháp phòng chống cụ thể với từng loại tấn công đó

Kết luận: Tổng kết những mặt đã làm được, những hạn chế và hướng

phát triển của đồ án

Trang 11

Chương I : TỔNG QUAN VỀ GIAO THỨC TCP/IP VÀ

CÁC ĐIỂM YẾU MẤT AN TOÀN CỦA GIAO THỨC.

I.1 Tổng quan về giao thức TCP/IP

I.1.1 Giao thức IPv4

I.1.1.1 Giới thiệu về giao thức IP

Giao thức IP (Internet Protocol - Giao thức liên mạng) là một giao thức hướng dữ liệu được sử dụng bởi các máy chủ nguồn và đích để truyền dữ liệu trong một liên mạng chuyển mạch gói Dữ liệu trong một liên mạng IP được gửi theo các khối được gọi là các gói (packet hoặc datagram) Cụ thể, IP không cần thiết lập các đường truyền trước khi một máy chủ gửi các gói tin cho một máy khác mà trước đó nó chưa từng liên lạc [2]

Giao thức IP cung cấp một dịch vụ gửi dữ liệu không đảm bảo (còn gọi

là cố gắng cao nhất), nghĩa là nó hầu như không đảm bảo gì về gói dữ liệu Gói dữ liệu có thể đến nơi mà không còn nguyên vẹn, nó có thể đến không theo thứ tự (so với các gói khác được gửi giữa hai máy nguồn và đích đó), nó

có thể bị trùng lặp hoặc bị mất hoàn toàn Nếu một phần mềm ứng dụng cần được bảo đảm, nó có thể được cung cấp từ nơi khác, thường từ các giao thức giao vận nằm phía trên IP Các thiết bị định tuyến liên mạng chuyển tiếp các gói tin IP qua các mạng tầng liên kết dữ liệu được kết nối với nhau Việc không có đảm bảo về gửi dữ liệu có nghĩa rằng các chuyển mạch gói có thiết

kế đơn giản hơn (nếu mạng bỏ gói tin, làm đổi thứ tự hoặc làm hỏng nhiều gói tin, người dùng sẽ thấy hoạt động mạng trở nên kém đi Hầu hết các thành phần của mạng đều cố gắng tránh để xảy ra tình trạng đó Đó là lý do giao thức này còn được gọi là cố gắng cao nhất.) [7]

I.1.1.2 Cấu trúc gói tin IP

Cấu trúc gói tin IP gồm 2 phần:

- Header

- DATA

+Header:

Trang 12

Hình 1.1 Cấu trúc phần Header của gói tin IP

IP header có chiều dài tối thiểu là 20 bytes, trường Options có chiều dài tối đa là 40 bytes Thông tin cụ thể về các trường như sau:

- Version: Phiên bản hiện thời là 4

- IHL (Internet Length Header): Độ dài của phần header Giá trị độ dài được thể hiện dưới dạng 32-bit words (4-byte words)

- TOS (Type of Service): Kiểu dịch vụ

- Total Length: Tổng chiều dài Số lượng byte của gói tin IP bao gồm cả phần header và phần dữ liệu

- Identification, flags, and fragment offset: được dùng cho mục đích phân mảnh và ghép gói tin IP

- TTL (Time To Live): Số lượng các đường kết nối (links) mà một gói tin IP

có thể được chuyển tiếp tới trên Internet Mỗi router giảm TTL đi một giá trị

- Protocol: Giao thức: TCP, UDP (User Datagram Protocol), ICMP (Internet Control Message Protocol)

- Header Checksum: Dùng để phát hiện lỗi trong quá trình truyền trong một header của gói tin Do giá trị TTL được thay đổi ở mỗi router, do đó checksum được tính lại tại mỗi router

- Source IP address: Địa chỉ IP nguồn Được viết dưới dạng thập phân dùng dấu chấm để phân cách các trường, ví dụ 202.128.53.31

- Destination IP address: Địa chỉ IP đích

- Options: Tùy chọn Dùng để yêu cầu các tính năng đặc biệt cho gói tin IP, ví

dụ như mức độ bảo mật, đường (route) mà gói tin được gửi đi, và timestamp ở mỗi router

Trang 13

+DATA (Dữ liệu): Chứa thông tin lớp trên, chiều dài thay đổi đến 64Kb

Trong khi địa chỉ IP của nguồn và đích là quan trọng của hoạt động của IP, các trường khác làm cho IP rất linh hoạt Các Header Field là thông tin được cung cấp cho các giao thức lớp trên xác định dữ liệu đóng gói

I.1.1.3 Các tính chất của IP

Định tuyến trong mạng IP

Trong ngành mạng máy tính, định tuyến (routing) là quá trình chọn lựa

các đường đi trên một mạng máy tính để gửi dữ liệu qua đó Việc định tuyến được thực hiện cho nhiều loại mạng, trong đó có mạng điện thoại, liên mạng,

Internet, mạng giao thông Routing chỉ ra hướng, sự di chuyển của các gói (dữ liệu) được đánh địa chỉ từ mạng nguồn của chúng, hướng đến đích cuối thông qua các node trung gian, thiết bị phần cứng chuyên dùng được gọi là router (bộ định tuyến) [1]

Tiến trình định tuyến thường chỉ hướng đi dựa vào bảng định tuyến, đó

là bảng chứa những lộ trình tốt nhất đến các đích khác nhau trên mạng Vì vậy việc xây dựng bảng định tuyến, được tổ chức trong bộ nhớ của router, trở nên vô cùng quan trọng cho việc định tuyến hiệu quả Các mạng nhỏ có thể có các bảng định tuyến được cấu hình thủ công, còn những mạng lớn hơn có topo mạng phức tạp và thay đổi liên tục thì xây dựng thủ công các bảng định tuyến là vô cùng khó khăn Tuy nhiên, hầu hết mạng điện thoại chuyển mạch chung sử dụng bảng định tuyến được tính toán trước, với những tuyến dự trữ nếu các lộ trình trực tiếp đều bị nghẽn Định tuyến động (dynamic routing) cố gắng giải quyết vấn đề này bằng việc xây dựng bảng định tuyến một cách tự động, dựa vào những thông tin được giao thức định tuyến cung cấp, và cho phép mạng hành động gần như tự trị trong việc ngăn chặn mạng bị lỗi và nghẽn [1]

Địa chỉ IP

Đơn vị thông tin cơ bản trong máy tính được biểu diễn dưới dạng số nhị phân bao gồm 2 giá trị đếm là 0 và 1 Đôi khi còn được biểu diễn bằng số bát phân, hay số thập lục phân

Cấu trúc địa chỉ IP gồm 32bits, chia thành 4 nhóm, mỗi nhóm 8 bits:

Bảng 1.1 Cấu trúc mỗi nhóm Bits trong IP

Trang 14

Vậy giá trị 8 bits khi tất cả được bật lên 1 hiểu ở giá trị thập phân là:

255 Những giá trị thập phân có thể gán 4 nhóm của 32 Bits là:

00000000-11111111

11111111

11111111

11111111

Bảng 1.2 Cấu trúc các nhóm Bits trong IP

Vậy địa chỉ IP có cấu trúc được chia làm hai hoặc ba phần là network_id và host_id hoặc network_id và subnet_id và host_id Là một con

số có kích thước 32 bit Khi trình bày, 32 bit này thành bốn phần, mỗi phần có kích thước 8 bit, gọi là octet hoặc byte Có các cách trình bày sau:

- Ký pháp thập phân có dấu chấm (dotted-decimal notation).Ví dụ: 172.16.30.56

- Ký pháp nhị phân Ví dụ: 10101100 00010000 00011110 00111000

- Ký pháp thập lục phân Ví dụ :82 39 1E 38

Không gian địa chỉ IP ( gồm 232 địa chỉ ) được chia thành 5 lớp (class)

để dễ quản lý đó là: A,B ,C,D và E Trong đó các lớp A,B và C được triển khai để đặt cho các host trên mạng Internet, lớp D dùng cho các nhóm multicast, còn lớp E phục vụ cho mục đích nghiên cứu

Các lớp địa chỉ IP

Hình 1.2 : Các lớp địa chỉ IP

Trang 15

Địa chỉ riêng (private address) và cơ chế chuyển đổi địa chỉ mạng ( Network Address Translation –NAT )

Tất cả các IP host khi kết nối vào mạng Internet đều phải có một địa chỉ

IP do tổ chức IANA (Internet Assigned Numbers Authority ) cấp phát – gọi là địa chỉ hợp lệ (hay là được đăng ký ) Tuy nhiên số lượng host kết nối vào mạng ngày càng gia tăng dẫn đến tình trạng khan hiếm địa chỉ IP Một giải pháp đưa ra là sử dụng cơ chế NAT kèm theo RFC (Request For Comment)

1918 quy định danh sách địa chỉ riêng Các địa chỉ này sẽ không được IANA cấp phát – hay còn gọi là địa chỉ không hợp lệ Bảng sau liệt kê danh sách các địa chỉ này:

10.0.0.0 đến10.255.255.255

172.16.0.0 đến172.32.255.255

192.168.0.0 đến192.168.255.255

Giao thức ARP (Address Resolution Protocol): Địa chỉ IP được dùng

để định danh các host và mạng ở tầng mạng của mô hình OSI, và chúng không phải là các địa chỉ vật lý của các trạm trên đó một mạng cục bộ (Ethernet, Token Ring.) Trên một mạng cục bộ hai trạm chỉ có thể liên lạc với nhau nếu chúng biết địa chỉ vật lý của nhau Như vậy vấn đề đặt ra là phải tìm được ánh xạ giữa địa chỉ IP (32 bits) và địa chỉ vật lý của một trạm Giao thức ARP đã được xây dựng để tìm địa chỉ vật lý từ địa chỉ IP khi cần thiết.[8]

Giao thức RARP (Reverse Address Resolution Protocol): Là giao

thức ngược với giao thức ARP Giao thức RARP được dùng để tìm địa chỉ IP

từ địa chỉ vật lý [8]

Trang 16

Giao thức ICMP (Internet Control Message Protocol): Giao thức

này thực hiện truyền các thông báo điều khiển (báo cáo về các tình trạng các lỗi trên mạng.) giữa các gateway hoặc một nút của liên mạng Tình trạng lỗi

có thể là: một gói tin IP không thể tới đích của nó, hoặc một router không đủ

bộ nhớ đệm để lưu và chuyển một gói tin IP, Một thông báo ICMP được tạo

và chuyển cho IP IP sẽ "bọc" (encapsulate) thông báo đó với một IP header

và truyền đến cho router hoặc trạm đích [8]

I.1.1.4 Các bước hoạt động của giao thức IP

Khi giao thức IP được khởi động nó trở thành một thực thể tồn tại trong máy tính và bắt đầu thực hiện những chức năng của mình, lúc đó thực thể IP

là cấu thành của tầng mạng, nhận yêu cầu từ các tầng trên nó và gửi yêu cầu xuống các tầng dưới nó nó thực hiện các bước sau đây [3]:

1) Tạo một IP datagram dựa trên tham số nhận được

2) Tính checksum và ghép vào header của gói tin

3) Ra quyết định chọn đường: hoặc là trạm đích nằm trên cùng mạng hoặc một Gateway sẽ được chọn cho chặng tiếp theo

4) Chuyển gói tin xuống tầng dưới để truyền qua mạng

Đối với router, khi nhận được một gói tin đi qua, nó thực hiện các động tác sau:

1) Tính chesksum, nếu sai thì loại bỏ gói tin

2) Giảm giá trị tham số Time - to Live nếu thời gian đã hết thì loại bỏ gói tin.3) Ra quyết định chọn đường

4) Phân đoạn gói tin, nếu cần

5) Kiến tạo lại IP header, bao gồm giá trị mới của các vùng Time - to -Live, Fragmentation và Checksum

6) Chuyển datagram xuống tầng dưới để chuyển qua mạng

Cuối cùng khi một datagram nhận bởi một thực thể IP ở trạm đích, nó sẽ thực hiện bởi các công việc sau:

1) Tính checksum Nếu sai thì loại bỏ gói tin

2) Tập hợp các đoạn của gói tin (nếu có phân đoạn)

3) Chuyển dữ liệu và các tham số điều khiển lên tầng trên

Phân mảnh và ghép một gói tin IP

Giá trị Maximum Transmission Unit (MTU) của một mạng là kích thước tối đa của một gói tin IP được chuyển đi trong mạng đó (bao gồm của

Trang 17

phần header và phần dữ liệu) Ví dụ: MTU của Ethernet là 1500 byte, các giao thức trên data link layer khác có thể có các giá trị MTU khác, ví dụ: Token ring có MTU là 4464 byte, X.25 là 576 byte Khi một gói tin IP được gửi từ một mạng có MTU lớn hơn sang một mạng có MTU nhỏ hơn, gói tin này phải được phân mảng thành nhiều phần nhỏ hơn Tất cả các phần phân mảnh sẽ được ghép lại tại đích đến của gói tin Các thông tin trong phần header hỗ trợ cho việc phân mảnh gói tin như sau:

- Identification: 16 bit Dùng để định danh gói tin gốc của phân mảnh

- Flags: 3 bit Trong đó có 1 bit không được sử dụng Có một "Do not fragment" (DF) bit với ý nghĩa "Không phân mảnh gói tin này" Nếu chiều dài gói tin lớn hơn MTU của mạng, router sẽ loại bỏ gói tin này Có một "More fragment" (MF) bit với ý nghĩa "Còn có thêm các phân mảnh khác thuộc về cùng một gói tin IP với phân mảnh này" Gói tin cuối cùng có MF=0 (không còn phân mảnh nào nữa)

- Fragment Offset: 13 bit Chứa giá trị vị trí của phân mảnh trong gói tin gốc (chỉ tính phần dữ liệu) Để chứa được chiều dài của gói tin IP (giá trị tối đa là

65535 byte) với 13 bit, IP sử dụng thông tin về vị trí với đơn vị là 8 byte Do

đó, chiều dài của mỗi phân mảnh phải là bội số của 8, trừ phân mảnh cuối cùng Ví dụ: Phân mảnh một gói tin Một gói tin được truyền tới một mạng với MTU là 576 byt Gói tin này có IP header chiếm 20 byte và phần dữ liệu chiếm 1484 byte Gói tin này cần được phân mảnh như sau: Chiều dài tối đa của một phân mảnh là 576-20=556 byte Thiết lập giá trị tối đa này là 552 để thỏa mãn yêu cầu về bội số của 8

Tổng chiều dài ID MF Fragment Offset

I.1.2.1 Giới thiệu về TCP

Giao thức TCP (Transmission Control Protocol - Giao thức điều khiển truyền vận) là một trong các giao thức cốt lõi của bộ giao thức TCP/IP Sử dụng TCP, các ứng dụng trên các máy chủ được nối mạng có thể tạo các "kết nối" với nhau, mà qua đó chúng có thể trao đổi dữ liệu hoặc các gói tin [1]

Trang 18

Giao thức này đảm bảo chuyển giao dữ liệu tới nơi nhận một cách đáng tin cậy và đúng thứ tự TCP còn phân biệt giữa dữ liệu của nhiều ứng đồng thời chạy trên cùng một máy chủ TCP hỗ trợ nhiều giao thức ứng dụng phổ biến nhất trên Internet và các ứng dụng kết quả, trong đó có WWW, thư điện

tử và Secure Shell Trong bộ giao thức TCP/IP, TCP là tầng trung gian giữa

giao thức IP bên dưới và một ứng dụng bên trên Các ứng dụng thường cần các kết nối đáng tin cậy kiểu đường ống để liên lạc với nhau [8]

I.1.2.2 Cấu trúc của gói tin TCP

Một gói tin TCP bao gồm 2 phần:

- Source port: Số hiệu của cổng tại máy tính gửi

- Destination port: Số hiệu của cổng tại máy tính nhận

- Sequence number: có 2 nhiệm vụ Nếu cờ SYN bật thì là số thứ tự gói ban đầu và byte đầu tiên được gửi có số thứ tự này cộng thêm 1 Nếu không có cờ SYN thì là thứ tự của byte đầu tiên

- Acknowledgement number: Nếu cớ ACK bật thì giá trị của trường chính là

số thứ tự gói tin tiếp theo mà bên nhận cần

- Data offset: Trường có độ dài 4 bít qui định độ dài của phần header

- Reserved: Dành cho tương lai và có giá trị là 0

Trang 19

- Flags (hay Control bits) Bao gồm 6 cờ: URG: Cờ cho trường Urgent pointer ACK: Cờ cho trường Acknowledgement PSH: Hàm Push RST: Thiết lập lại đường truyền SYN: Đồng bộ lại số thứ tự FIN: Không gửi thêm

số liệu

- Window: Số byte có thể nhận bắt đầu từ giá trị của trường báo nhận (ACK)

- Checksum: 16 bít kiểm tra cho cả phần header và dữ liệu

- Urgent pointer: Nếu cờ URG bật thì giá trị trường này chính là số từ 16 bít

mà số thứ tự gói tin (sequence number) cần dịch trái

- Options: Đây là trường tùy chọn Nếu có thì độ dài là bội số của 32 bít

+Data (Dữ liệu)

Trường cuối cùng không thuộc về header Giá trị của trường này là thông tin dành cho các tầng trên (trong mô hình 7 lớp OSI) Thông tin về giao thức của tầng trên không được chỉ rõ trong phần header mà phụ thuộc vào cổng được chọn

I.1.2.3 Các tính chất của TCP

1 Quá trình bắt tay 3 bước

TCP là một giao thức có tính kết nối Điều này có nghĩa là mọi kết nối đều có sự thông tin trước Ví dụ A muốn kết nối tới B thì A phải thong báo cho B biết trước và đợi trả lời đồng ý từ B Sự thông tin này diễn ra theo 3 bước : [3]

Hình 1.4 Giao tiếp 3 lượt trong tính kết nối

A gửi thông điệp muốn kết nối tới B (SYN)

B gửi thông điệp đồng ý kết nối lại cho A (ACK, SYN)

Trang 20

A gửi thông điệp đã nhận được sự đồng ý lại cho B (ACK)

SYN: synchronize, đồng bộ hoá kết nối

ACK: acknowledgement, sự nhận biết

Diễn giải quá trình:

Bước 1: A gửi một SYN message tới B, thông báo cổng (port) cần kết

nối tới, dung lượng đường truyền của A, khả năng gửi bao nhiêu thông điệp không cần nhận biết, và các thông tin khác

Bước 2: B nhận được thông tin từ A, nếu chấp nhận kết nối sẽ gửi trả

thông báo đã nhận được yêu cầu kết nối từ A và chấp nhận sự kết nối, đồng thời cũng gửi thêm thông tin về B như khả năng gửi bao nhiêu thông điệp không cần nhận biết

Bước 3: A gửi trả ACK cho B báo rằng A đã nhận được Kết nối thành

công

Ngoài ra, khi muốn chấm dứt kết nối, bốn bước sau sẽ được thực hiện:

- A gửi tín hiệu chấm dứt kết nối (SYN)

- B nhận tín hiệu và gửi trả tín hiệu cho biết đã nhận (ACK)

- B gửi tín hiệu cho Application layer thông báo kết nối sẽ bị chấm dứt đồng thời gửi trả cho A tín hiệu thông báo đồng ý chấm dứt

- A gửi lại cho B tín hiệu cho biết A đã nhận được thông điệp từ B

2 Reliability (sự tin cậy)

TCP đảm bảo độ tin cậy bằng 1 số byte sắp xếp cùng với 1 số xác nhận được chuyển đến Những Byte mà không được xác nhận trong 1 thời gian xác định trước thì sẽ được chuyển

3 Efficient flow control (điều khiển dữ liệu một cách hiệu quả)

TCP cung cấp khả năng điều khiển dòng dữ liệu một cách hiệu quả Khi thông báo đã nhận được quay trở về nguồn, TCP sẽ báo chỉ số cao nhất

mà nó có thể nhận được mà không bị tràn bộ đệm

4 Full-duplex operation (hoạt động song song)

Khả năng hoạt động song song sẽ cho phép TCP gửi hoặc nhận dữ liệu cùng một lúc

5 Kiểm soát lỗi

Trang 21

Qua các phần trên, quá trình dữ liệu đi trên mạng đã khá rõ ràng nhưng trên một mạng rộng lớn như Internet thì có gì đảm bảo dữ liệu sẽ tới đích một cách an toàn Điều gì xảy ra nếu trên đường đi các gói dữ liệu bị mất, tắc nghẽn, lạc đường Đây chỉ đơn thuần là các sự cố, nhưng thật đáng tiếc là nó lại rất hay xảy ra trên thực tế, do đó một yêu cầu đặt ra là phải có cơ chế thông báo và sửa lỗi trên mạng Khi có lỗi, tầng IP đơn thuần huỷ bỏ dữ liệu

và thông báo lỗi Thông báo lỗi được thực hiện qua một giao thức gọi là ICMP (Internet Control Message Protocol) ICMP có thể coi là bạn đồng hành với IP và có một số đặc điểm sau:

- Dùng IP để truyền thông báo qua mạng

- Không có chức năng sửa lỗi mà chỉ đơn thuần là máy thông báo lỗi

- Thông báo lỗi về gói dữ liệu IP nhưng lại không thể thông báo lỗi về gói dữ liệu của chính mình

- Nếu gói dữ liệu IP bị phân mảnh thì khi xảy ra lỗi, ICMP chỉ thông báo lỗi của mảnh đầu tiên

Khi có lỗi xảy ra trên đường truyền và phải truyền lại dữ liệu thì TCP không chờ đợi thông báo xác nhận từ phía máy B mà nó làm theo cách sau: khi truyền một gói dữ liệu, TCP bấm giờ và nếu thời gian hết mà không thấy thông báo xác nhận thì nó tiến hành truyền lại Như vậy thời gian để bấm giờ hết sức quan trọng Ban đầu thời gian này được thiết lập xung quanh khoảng thời gian kể từ khi TCP A gửi dữ liệu đi đến khi nhận được thông báo xác nhận Nhưng về sau do cách tính này không hợp lý nên đã có nhiều cách thiết lập khác nhau Một trong các cách tính được dùng phổ biến hiện nay là thuật toán của Phil Karn Nội dung căn bản của thuật toán là mỗi khi hết thời gian thì khoảng thời gian bấm đồng hồ tăng lên gấp một số lần cho trước.[3]

I.1.2.4 Nguyên tắc hoạt động

Không như giao thức UDP - giao thức có thể lập tức gửi gói tin mà không cần thiết lập kết nối, TCP đòi hỏi thiết lập kết nối trước khi bắt đầu gửi

dữ liệu và kết thúc kết nối khi việc gửi dữ liệu hoàn tất

Trang 22

Hình 1.5 Nguyên tắc hoạt động của TCP

Cụ thể, các kết nối TCP có ba pha:

- Thiết lập kết nối

- Truyền dữ liệu

- Kết thúc kết nối

Trước khi miêu tả các pha, cần lưu ý các trạng thái khác nhau của một socket:

-LISTEN: Đang đợi yêu cầu kết nối từ một TCP và cổng bất kỳ ở xa (trạng thái này thường do các TCP server đặt)

-SYN-SENT: Đang đợi TCP ở xa gửi một gói tin TCP với các cờ SYN

và ACK được bật (trạng thái này thường do các TCP client đặt)

-SYN-RECEIVED: Đang đợi TCP ở xa gửi lại một tin báo nhận sau khi đã gửi cho TCP ở xa đó một tin báo nhận kết nối (connection acknowledgment)

Trang 23

-ESTABLISHED: Cổng đã sẵn sàng nhận/gửi dữ liệu với TCP ở xa (đặt bởi TCP client và server).

-TIME-WAIT: Đang đợi qua đủ thời gian để chắc chắn là TCP ở xa đã nhận được tin báo nhận về yêu cầu kết thúc kết nối của nó Theo RFC 793, một kết nối có thể ở tại trạng thái TIME-WAIT trong vòng tối đa 4 phút

Thiết lập kết nối [3]

Để thiết lập một kết nối, TCP sử dụng một quy trình bắt tay 3 bước Trước khi client thử kết nối với một server, server phải đăng ký một cổng và

mở cổng đó cho các kết nối: đây được gọi là mở bị động Một khi mở bị động

đã được thiết lập thì một client có thể bắt đầu mở chủ động Để thiết lập một kết nối :

1> SYN: Các chương trình máy con bắt đầu connection với máy chủ bằng cách gửi 1 packet với cờ "SYN" đến máy chủ Chương trình trên máy con sẽ hỏi hệ điều hành cho 1 cổng để mở connection với máy chủ Những cổng trong vùng này được gọi là "cổng máy con" Tương tự như vậy, máy chủ sẽ hỏi HĐH (hệ điều hành ) để nhận được quyền chờ tín hiệu trong máy chủ, vùng cổng 1 - 1023 Vùng cổng này được gọi là "vùng cổng dịch vụ" ( service port )

2> SYN/ACK: khi yêu cầu mở connection được máy chủ nhận được tại cổng đang mở, server sẽ gửi lại packet chấp nhận với 2 bit SYN và ACK:SYN/ACK packet được gửi ngược lại bằng cách đổi 2 IP của server và client, client IP sẽ thành IP đích và server IP sẽ thành IP bắt đầu Tương tự n, cổng cũng sẽ thay đổi, server nhận được packet ở cổng nào thì cũng sẽ dùng cổng

đó để gủi lại packet vào cổng mà client đã gửi Server gửi lại packet này để thông báo là server đã nhận được tín hiệu và chấp nhận connection, trong trường hợp server không chấp nhận connection, thay vì SYN/ACK bits được bật, server sẽ bật bit RST/ACK ( Reset Acknowledgement ) và gởi ngược lại RST/ACK packet

3> ACK Khi client nhận được SYN/ACK packet thì sẽ trả lời bằng ACK packet: packet này được gởi với mục đích duy nhất báo cho máy chủ biết rằng client đã nhận được SYN/ACK packet và lúc này connection đã được thiết lập và dữ liệu sẽ bắt đầu lưu thông tự do giữa connection Đến đây,

cả client và server đều đã nhận được một tin báo nhận (acknowledgement) về kết nối

Trang 24

I.1.3 Bộ Giao Thức TCP/IP

I.1.3.1 Giới thiệu

Bộ giao thức TCP/IP(bộ giao thức liên mạng), là một bộ các giao thức truyền thông cài đặt chồng giao thức mà Internet và hầu hết các mạng máy tính thương mại đang chạy trên đó Bộ giao thức này được đặt tên theo hai giao thức chính của nó là TCP và IP Chúng cũng là hai giao thức đầu tiên được định nghĩa Như nhiều bộ giao thức khác, bộ giao thức TCP/IP có thể được coi là một tập hợp các tầng, mỗi tầng giải quyết một tập các vấn đề có liên quan đến việc truyền dữ liệu, và cung cấp cho các giao thức tầng cấp trên một dịch vụ được định nghĩa rõ ràng dựa trên việc sử dụng các dịch vụ của các tầng thấp hơn Về mặt lôgic, các tầng trên gần với người dùng hơn và làm việc với dữ liệu trừu tượng hơn, chúng dựa vào các giao thức tầng cấp dưới

để biến đổi dữ liệu thành các dạng mà cuối cùng có thể được truyền đi một cách vật lý.[2]

I.1.3.2 Tổng quát

Để cho các máy tính trao đổi dữ liệu với nhau TCP/IP sử dụng mô hình truyền thông 4 tầng hay còn gọi là mô hình DoD (Department of Defense- Mô hình của Bộ Quốc Phòng Mỹ) Các tầng trong mô hình này là (Theo thứ tự từ trên xuống):

+ Tầng ứng Dụng (Application Layer)

+ Tầng Giao Vận (Transport Layer)

+ Tầng Liên Mạng (Internet Layer)

+ Tầng Giao Diện Mạng (Network Interface Layer)

Hình 1.6 Mô hình TCP/IP

Trang 25

Tầng giao diện mạng

Tầng giao diện mạng có trách nhiệm đưa dữ liệu tới và nhận dữ liệu từ phương tiện truyền dẫn Tầng này gồm các thiết bị phần cứng vật lí chẳng hạn như card mạng và cáp MAC đóng vai trò quan trọng trong việc gán địa chỉ và truyền dữ liệu

Tầng liên mạng

Nằm bên trên tầng giao diện mạng Tầng này có chức năng gán địa chỉ, đóng gói và định tuyến (Route) dữ liệu Bốn giao thức quan trọng nhất trong tầng này gồm:

+ IP (Internet Protocol): Có chức năng gán địa chỉ cho dữ liệu trước khi truyền và định tuyến chúng tới đích

+ ARP (Address Resolution Protocol): Có chức năng biên dịch địa chỉ IP của máy đích thành địa chỉ MAC

+ ICMP (Internet Control Message Protocol): Có chức năng thông báo lỗi trong trường hợp truyền dữ liệu bị hỏng

+ IGMP (Internet Group Management Protocol): Có chức năng điều khiển truyền đa hướng (Multicast)

+ TCP (Transmission Control Protocol): Ngược lại với UDP, TCP cung cấp các kênh truyền thông hướng kết nối và đảm bảo truyền dữ liệu 1 cách tin cậy TCP thường truyền các gói tin có kích thước lớn và yêu cầu phía nhận xác nhận về các gói tin đã nhận

Tầng ứng dụng

Gồm nhiều giao thức cung cấp cho các ứng dụng người dùng Được sử dụng để định dạng và trao đổi thông tin người dùng Một số giao thức thông dụng trong tầng này là:

+ DHCP (Dynamic Host Configuration Protocol): Giao thức cấu hình trạm động

Trang 26

+ DNS (Domain Name System): Hệ thống tên miền.

+ SNMP (Simple Network Management Protocol): Giao thức quản lý mạng đơn giản

+ FTP (File Transfer Protocol): giao thức truyền tập tin

+ TFTP (Trivial File Transfer Protocol): Giao thức truyền tập tin bình thường + SMTP (Simple Mail Transfer Protocol): Giao thức truyền thư đơn giản + TELNET

I.1.3.3 Các thuộc tính của bộ giao thức TCP/IP

1 Định tuyến

Bộ định tuyến là thiết bị đặc biệt có thể đọc được thông tin địa chỉ logic

và điều khiển dữ liệu trên mạng tới được đích của nó ở mức độ đơn giản nhất,

bộ định tuyến phân chia tiểu vùng từ hệ thống mạng Dữ liệu cần chuyển tới địa chỉ nằm trong tiểu vùng đó, nên không qua bộ định tuyến Nếu dữ liệu cần tới máy tính nằm ngoài tiểu vùng của máy gửi đi (máy chủ), thì bộ định tuyến

sẽ làm nhiệm vụ của mình Trong những mạng có quy mô rộng lớn hơn, như Internet chẳng hạn, sẽ có vô vàn bộ định tuyến và cung cấp các lộ trình khác nhau từ nguồn tới đích TCP/IP bao gồm các giao thức có chức năng xác định cách các bộ định tuyến tìm lộ trình trong mạng.[6]

2 Giải pháp địa chỉ dạng tên

Mặc dù địa chỉ IP số có thể thân thiện hơn với địa chỉ vật lý của adapter mạng, nhưng IP được thiết kế chỉ đơn giản là nhằm tạo sự thuận tiện cho máy tính chứ không phải con người Mọi người chắc chắn sẽ gặp phải khó khăn khi nhớ các địa chỉ như dạng số.TCP/IP cung cấp một địa chỉ dạng ký tự tương ứng với địa chỉ số, những địa chỉ ký tự này được gọi là tên miền hay DNS (Dịch vụ tên miền.[6]

2 Kiểm tra lỗi và kiểm soát giao thông

Bộ giao thức TCP/IP cung cấp các thuộc tính đảm bảo mức độ tin cậy của việc vận chuyển dữ liệu trên mạng Những thuộc tính này bao gồm việc kiểm tra lỗi trong quá trình vận chuyển (để xác định dữ liệu đã tới nơi chính

là cái đã được gửi đi) và xác nhận việc thông tin đã được nhận Lớp vận chuyển của TCP/IP xác định các việc kiểm tra lỗi và xác nhận thông qua giao thức TCP Nhưng giao thức ở cấp thấp hơn, Lớp truy cập mạng, cũng đóng một vai trò trong toàn bộ quá trình kiểm tra lỗi.[6]

Trang 27

4 Hỗ trợ ứng dụng

Bộ giao thức phải cung cấp giao diện cho ứng dụng trên máy tính để những ứng dụng này có thể tiếp cận được phần mềm giao thức và có thể vào mạng Trong TCP/IP, giao diện từ mạng cho tới ứng dụng chạy trên máy ở mạng cục bộ được thực hiện thông qua các kênh logic gọi là cổng (Port) Mỗi cổng có một số đánh dấu.[6]

I.1.3.4 So sánh TCP/IP với OSI

Mô hình tham chiếu giữa TCP/IP và OSI

Hình 1.7 Mô hình tham chiếu TCP/IP và OSI

Mô hình TCP/IP gọn nhẹ hơn mô hình tham chiếu OSI, đồng thời có những biến đổi phù hợp thực tế hơn Ví dụ: lớp vận chuyển của mô hình OSI quy định việc truyền dữ liệu phải đảm bảo độ tin cậy hoàn toàn Tuy nhiên, một số ứng dụng mới phát triển sau này như Voice over IP, video conference (hội nghị truyền hình),đòi hỏi tốc độ cao và cho phép bỏ qua một số lỗi nhỏ Nếu vẫn áp dụng mô hình OSI vào thì độ trễ trên mạng rất lớn và không đảm bảo chất lượng dịch vụ Trong khi đó, mô hình TCP/IP, ngoài giao thức chính của lớp vận chuyển là TCP (Transmission Control Protocol), còn cung cấp thêm giao thức UDP (User Datagram Protocol) để thích ứng với các ứng dụng cần tốc độ cao.[5]

So sánh mô hình OSI và mô hình TCP/IP:

Nếu so sánh mô hình OSI và TCP/IP, sẽ thấy chúng có những điểm giống và cũng có những điểm khác nhau

* Các điểm giống nhau:

Trang 28

- Cả hai đều là phân lớp.

- Cả hai đều có lớp ứng dụng, qua đó chúng có nhiều dịch vụ khác nhau

- Cả hai có các lớp mạng và lớp vận chuyển có thể so sánh được

- Kỹ thuật chuyển mạch gói được chấp nhận

- Chuyên viên lập mạng cần phải biết cả hai

I.1.3.5 Nguyên lý hoạt động

Giả sử máy A muốn gửi một thông điệp tới máy B Dùng một trình soạn thảo văn bản để soạn thư, sau đó nhấn nút Send Tính từ thời điểm đó dữ liệu được xử lý lần lượt như sau:

Đầu tiên, dữ liệu được xử lý bởi tầng application Tầng này có nhiệm

vụ tổ chức dữ liệu theo khuôn dạng và trật tự nhất định để tầng application ở máy B có thể hiểu được Tầng application gửi dữ liệu xuống tầng dưới theo dòng byte nối byte Cùng với dữ liệu, tầng application cũng gửi xuống các thông tin điều khiển khác giúp xác định địa chỉ đến, đi của dữ liệu

Khi xuống tới tầng TCP, dòng dữ liệu sẽ được đóng thành các gói có kích thước không nhất thiết bằng nhau nhưng phải nhỏ hơn 64 KB Cấu trúc của gói dữ liệu TCP gồm một phần header chứa thông tin điều khiển và sau

đó là dữ liệu Sau khi đóng gói xong ở tầng TCP, dữ liệu được chuyển xuống cho tầng IP

Gói dữ liệu xuống tới tầng IP sẽ tiếp tục bị đóng gói lại thành các gói

dữ liệu IP nhỏ hơn sao cho có kích thước phù hợp với mạng chuyển mạch gói

mà nó dùng để truyền dữ liệu Trong khi đóng gói, IP cũng chèn thêm phần header của nó vào gói dữ liệu rồi chuyển xuống cho tầng Datalink/Physical

Trang 29

Hình 1.8 Nguyên lý hoạt động của TCP/IP

Khi các gói dữ liệu IP tới tầng Datalink sẽ được gắn thêm một header khác và chuyển tới tầng physical đi vào mạng Gói dữ liệu lúc này gọi là frame Kích thước của một frame hoàn toàn phụ thuộc vào mạng mà máy A kết nối

Trong khi chu du trên mạng Internet, frame được các router chỉ dẫn để

có thể tới đúng đích cần tới Router thực ra là một module chỉ có hai tầng là Network và Datalink/Physical Các frame tới router sẽ được tầng Datalink/Physical lọc bỏ header mà tầng này thêm vào và chuyển lên tầng Network (IP) Tầng IP dựa vào các thông tin điều khiển trong header mà nó thêm vào để quyết định đường đi tiếp theo cho gói IP Sau đó gói IP này lại được chuyển xuống tầng Datalink/Physical để đi vào mạng Quá trình cứ thế tiếp tục cho đến khi dữ liệu tới đích là máy B Khi tới máy B các gói dữ liệu được xử lý theo quy trình ngược lại với máy A Theo chiều mũi tên, đầu tiên

dữ liệu qua tầng Datalink/Physical Tại đây frame bị bỏ đi phần header và chuyển lên tầng IP Tại tầng IP, dữ liệu được bung gói IP, sau đó lên tầng TCP và cuối cùng lên tầng application để hiển thị ra màn hình.[7]

I.1.3.6 Thiết lập một liên kết TCP/IP

Các bước thực hiện để thiết lập một liên kết TCP/IP: Thiết lập một

liên kết mới có thể được mở theo một trong 2 phương thức:

- Phương thức bị động, người sử dụng yêu cầu TCP chờ đợi một yêu cầu liên kết gửi đến từ xa thông qua một đầu nối TCP/IP Người sử dụng dùng hàm passive Open có khai báo cổng TCP và các thông số khác (mức ưu tiên, mức an toàn)

Trang 30

- Với phương thức chủ động, người sử dụng yêu cầu TCP mở một liên kết với một một đầu nối TCP/IP ở xa Liên kết sẽ được xác lập nếu có một hàm Passive Open tương ứng đã được thực hiện tại đầu nối TCP/IP ở xa đó

Khi người sử dụng gửi đi một yêu cầu mở liên kết sẽ được nhận hai thông số trả lời từ TCP:

- Thông số Open ID được TCP trả lời ngay lập tức để gán cho một liên kết cục bộ (local connection name) cho liên kết được yêu cầu Thông số này

về sau được dùng để tham chiếu tới liên kết đó (Trong trường hợp nếu TCP không thể thiết lập được liên kết yêu cầu thì nó phải gửi tham số Open Failure

để thông báo.)

- Khi TCP thiết lập được liên kết yêu cầu nó gửi tham số Open Sucsess được dùng để thông báo liên kết đã được thiết lập thành công Thông báo này dược chuyển đến trong cả hai trường hợp bị động và chủ động Sau khi một liên kết được mở, việc truyền dữ liệu trên liên kết có thể được thực hiện

Các bước thực hiện khi truyền và nhận dữ liệu: Sau khi xác lập

được liên kết người sữ dụng gửi và nhận dữ liệu Việc gửi và nhận dữ liệu thông qua các hàm Send và receive

Các bước thực hiện khi đóng một liên kết: Việc đóng một liên kết

khi không cần thiết được thực hiên theo một trong hai cách: dùng hàm Close hoặc dùng hàm Abort

I.2 Các điểm yếu mất an toàn của giao thức.

Bộ giao thức TCP/IP cũng có những điểm yếu trong bảo mật vì nó được thiết kế như một tiêu chuẩn mở để giúp cho việc trao đổi thông tin được

dễ dàng Điều đó làm cho nó trở nên sử dụng rộng rãi nhưng cũng làm cho nó

dễ dàng bị tấn công vì hầu hết mọi người đều thân thuộc với cách thức TCP/IP làm việc

Ở phần trên ta đã đi tìm hiểu các thành phần và cách thức hoạt động của bộ giao thức TCP/IP, qua tìm hiểu có thể nhận thấy rằng các điểm yếu gây mất an toàn cho hệ thống có sử dụng giao thức TCP/IP như sau :

I.2.1 Điểm yếu trong quá trình bắt tay 3 bước

TCP sử dụng cơ chế bắt tay 3 chiều để thiết lập kết nối giữa 2 máy muốn trao đổi dữ liệu

Trang 31

Hình 1.9 Qúa trình bắt tay 3 bước

A gửi thông điệp muốn kết nối tới B (SYN)

B gửi thông điệp đồng ý kết nối lại cho A (ACK, SYN)

A gửi thông điệp đã nhận được sự đồng ý lại cho B (ACK)

SYN: synchronize, đồng bộ hoá kết nối

ACK: acknowledgement, sự nhận biết

Phương pháp tấn công

Kiểu tấn công chủ yếu thông qua điểm yếu này là TCP SYN flood Kiểu tấn công TCP SYN flood là một kiểu tấn công trực tiếp vào máy chủ bằng cách tạo ra một số lượng lớn các kết nối TCP nhưng không hoàn thành các kết nối này Phía kẻ tấn công sẽ khởi tạo nhiều TCP, trong mỗi kết nối chỉ

để cờ TCP SYN Máy chủ sẽ gửi lại trả lời vớI TCP SYN và ACK Nhưng sau đó máy tấn công đơn giản là không trả lời thông điệp thứ ba như mong đợi của server theo tiến trình bắt tay ba chiều Server lúc này sẽ tốn bộ nhớ và tài nguyên trong khi chờ các phiên TCP timeouts hoặc trước khi các kết nối đang thiết lập dang dở được dọn dẹp Máy server lúc này có thể từ chối các kết nối TCP khác và các thiết bị cân bằng tải trong các server farm lúc này có thể chia tải không cân bằng.[4]

Trang 32

Hình 1.10 Tấn công TCP SYN flood

Giả mạo IP (IP SPOOFING)

IP spoofing là một kiểu tấn công mà trong đó kẻ tấn công sẽ giả vờ gửi

dữ liệu từ một địa chỉ không phải là của chúng Tầng IP sẽ mặc định rằng địa chỉ IP nguồn của bất kỳ gói tin nào mà nó nhận được cũng chính là địa chỉ IP của hệ thống đã thực hiện việc gửi gói tin này, không có sự xác thực nào cả Rất nhiều giao thức ở mức trên IP và các ứng dụng cũng không thực hiện xác thực điều này Do vậy, một người nào đó hoàn toàn có thể giả mạo địa chỉ IP nguồn của một gói tin để đạt được quyền ưu tiên mà trước đó không được phép Để khai thác triệt để điểm yếu này, kẻ tấn công cần phải sử dụng giá trị TCP sequence number hợp lệ nếu muốn thiết lập một kết nối TCP với máy bị tấn công (hầu hết các dịch vụ thông dụng như Telnet, FTP, và r-command đều dựa trên TCP).[4]

Trong header của TCP có 2 trường quan trọng cần phải nhắc tới, đó là:

- Sequence Number (32 bits): 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 đầu tiên là ISN+1

- Acknowledgment Number (32 bits): số hiệu 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

TCP sử dụng cơ chế bắt tay 3 bước để thiết lập kết nối giữa 2 máy muốn trao đổi dữ liệu

Phương pháp tấn công

Trang 33

Ý tưởng cơ bản đầu tiên là máy của kẻ tấn công (attacker) sẽ tự biến chính mình thành một máy tin cậy Ví dụ: Nếu attacker thuyết phục được một máy khác rằng nó là một client tin cậy, thì từ đó có thể chiếm quyền truy cập host đó Máy tấn công cũng có thể lấy được username và password Để hiểu tấn công giả mạo IP là một cách tấn công khả thi, hãy xem xét hoạt động của

IP và TCP Tại lớp mạng (network) trong mô hình OSI, máy tấn công có thể

dễ dàng chỉnh sửa gói tin của mình,thay đổi IP nguồn trong gói tin đó trở thành một IP tin cậy Tuy nhiên, với TCP hoạt động ở tầng truyền vận có thể

có nhiều khó khăn hơn.[4]

Trong phần đầu của những gói dữ liệu luôn có địa chỉ IP của nguồn

xuất phát dữ liệu và chỉ số thứ tự (sequence number-dùng để sắp xếp các

gói dữ liệu nhận được theo một thứ tự định sẵn) Để có thể lấy quyền điều

khiển một phiên làm việc đang thiết lâp giữa nguồn hợp pháp và một host đích, kẻ tấn công cần biết về số thứ tự đó Nếu kẻ tấn công dự đoán đúng số thứ tự, kẻ tấn công có thể gửi tới host đích một ACK segment chính xác Khi

đó, chỉ cần ACK segment của attacker tới dc đích trước AKC segement gốc, thì attacker sẽ dc tin cậy bởi host đích, như trong hình dưới :

Hình 1.11 Tấn công giả mạo IP

Làm thế nào attacker có thể biết chính xác số TCP sequence dựa trên cách giả mạo địa chỉ IP dc sử dụng? Có 2 loại giả mạo địa chỉ IP, với mỗi loại như vậy thì attacker có kỹ thuật tấn công khác nhau:[4]

-Giả mạo bằng cách bắt gói (non-blind spoofing): Diễn ra khi máy tấn công

và mục tiêu ở trên cùng một subnet.Khi đó, attacker có thể sử dụng công cụ bắt gói, phân tích gói tin để có thể có dc số thứ tự

Trang 34

-Giả mạo địa chỉ IP từ xa (blind spoofing): Diễn ra khi máy tấn công khác

subnet với mục tiêu Khi đó, việc có dc số TCP sequence chính xác là rất khó Tuy nhiên, với một số kĩ thuật, chẳng hạn như định tuyến theo địa chỉ nguồn, máy tấn công cũng có thể xác định chính xác dc chỉ số đó

Các phương pháp tấn công bằng kỹ thuật giả mạo địa chỉ IP gồm:

1 Tấn công giả mạo IP từ xa với kỹ thuật định tuyến theo nguồn

IP source routing phép một máy nguồn là một cơ chế cho chỉ ra

đường đi một cách cụ thể và không phụ thuộc vào bảng định tuyến của các

router Nếu attacker dũng kỹ thuật IP source routing, attacker có thể nhắm

tới một đường định tuyến thành công đã có sẵn Máy tấn công lúc này có thể gởi một gói IP với địa chỉ nguồn tự tạo trong IP header Và khi host đích nhận

dc gói tin này, nó sẽ gửi traffic ngược lại đến địa chỉ IP giả mạo thông qua đường router mà attacker muốn Cách tiếp cận này có thể vượt qua những khó

khăn khi thực hiện việc tấn công blind spoofing [5]

Hình 1.12 Tấn công giả mạo IP từ xa với kỹ thuật định tuyến theo nguồn

2 Tấn công giả mạo địa chỉ IP cục bộ dùng kỹ thuật tấn công the-middle

man-in-Nếu một máy tấn công có cùng subnet với máy nạn nhân, attacker có thể sử dụng cách tấn công này Một trong những cách tấn công người ở giữa

(man-in-the-middle) là kẻ tấn công làm cách nào đó để hệ thống gởi frame

qua PC của mình Chẳng hạn, attacker có thể gửi hàng loạt những gói ARP vu

vơ tới hệ thống Những frame ARP đó có thể thông báo rằng địa chỉ MAC

Trang 35

của attacker là địa chỉ MAC của router kế tiếp (next-hop) Do đó attacker sẽ

nhận dc traffic, rồi sau đó chuyển traffic đến router kế tiếp thật sự Và kết quả, người dùng đầu cuối không hề biết traffic của mình đều đi qua một PC khác Một dạng khác của việc tấn công man-in-the-middle là khi attacker nối thiết bị hub đến một vùng mạng có mạng traffic mà attacker muốn bắt lấy,như

trong hình dưới.Cách khác là attacker có thể kết nối tới một Switch Port

Analyzer(SPAN) port trên Catalyst switch Switch này sao chép traffic và

chuyển chúng đến port đã cấu hình tính năng SPAN Tính năng SPAN của switch là tính năng trong đó qui định tất cả các lưu lượng vào ra một cổng trên switch sẽ dc chép một phiên bản gửi về máy đích Kẻ tấn công có thể sử dụng một công cụ bắt gói và phân tích để bắt lưu lượng đang di chuyển giữa

hệ thống đầu và cuối Nếu traffic bắt dc là dạng plain text, attacker hoàn toàn

có thể thu dc những thông tin nhạy cảm, chẳng hạn như thông tin người dùng

và mật khẩu.[5]

Hình 1.13 Tấn công man-in-the-middle

I.2.2 Điểm yếu của giao thức ARP

Một trong những mối đe doạ được coi là lớn nhất đối với một mạng máy tính đó là một *kẻ lừa đảo* nằm trong hệ thống mạng của nạn nhân và giả vờ *thủ vai* như một trạm được tin cậy (trusted host) Một khi kẻ đó giả mạo thành công một trạm khác trong mạng để tham gia vào quá trình trao đổi thông tin thì hậu quả của nó thật khó mà lường hết được ARP spoofing giới hạn phạm vi hoạt động trong một mạng cục bộ và khai thác cách các địa chỉ

Trang 36

IP được chuyển đổi sang địa chỉ MAC Khi một IP datagram được gửi đi từ trạm này sang trạm khác trong cùng một mạng vật lý, địa chỉ IP của trạm đích phải được chuyển đổi sang địa chỉ MAC Giao thức ARP sẽ giúp làm việc chuyển đổi này Khi một trạm muốn biết địa chỉ vật lý của trạm khác, nó sẽ gửi broadcast cho toàn mạng một frame có nội dung như sau:

Gói request được gửi đến các thiết bị trong đoạn mạng, trong khi gửi nó nói rằng (đây chỉ là nhân cách hóa để giải thích theo hướng dễ hiểu nhất)

“Hey, địa chỉ IP của tôi là XX.XX.XX.XX, địa chỉ MAC của tôi là XX:XX:XX:XX:XX:XX Tôi cần gửi một vài thứ đến một người có địa chỉ XX.XX.XX.XX, nhưng tôi không biết địa chỉ phần cứng này nằm ở đâu trong đoạn mạng của mình Nếu ai đó có địa chỉ IP này, xin hóy đáp trả lại kèm với địa chỉ MAC của mình!” Đáp trả sẽ được gửi đi trong gói ARP reply và cung cấp câu trả lời, “Hey thiết bị phát Tôi là người mà bạn đang tìm kiếm với địa chỉ IP là XX.XX.XX.XX Địa chỉ MAC của tôi là XX:XX:XX:XX:XX:XX.” Khi quá trình này hoàn tất, thiết bị phát sẽ cập nhật bảng ARP cache của nó

và hai thiết bị này cú thể truyền thông với nhau Vì bản thân ARP request đã chứa địa chỉ vật lý của sender trong Ethernet frame nên receiver nhận được ARP request này hoàn toàn có thể trả lời cho sender mà không cần phải tạo một ARP request nữa Tuy nhiên, điểm yếu lớn nhất của giao thức ARP là ở chỗ nó làm một stateless protocol, có nghĩa là nó sẽ không theo dõi các frame trả lời cho các request mà nó đã gửi, và vì thế sẽ chấp nhận các ARP reply mà trước đó không có request Nếu một kẻ nào đó muốn lấy cắp thông tin từ một trạm khác, attacker sẽ gửi các ARP reply giả mạo phù hợp một địa chỉ IP nào

đó đã chọn trước với địa chỉ MAC của chúng Trạm nhận được các ARP reply giả mạo này không thể phân biệt được nó là ARP reply hợp lệ hay không, và bắt đầu gửi dữ liệu tới địa chỉ MAC của attacker [8]

Một điểm yếu nữa của giao thức ARP đó là bảng thông tin ARP được lưu trữ cục bộ tại mỗi trạm trong một mạng Điều này nhằm mục đích tăng tốc

độ truyền dữ liệu bởi vì địa chỉ MAC sẽ không cần phải kiểm tra mỗi lần một thiết bị này muốn liên lạc với một thiết bị khác Một kẻ tấn công muốn tiếp tục giả mạo một địa chỉ IP nào đó, nó cần phải làm *ngập lụt* trạm đó với các ARP reply ghi đè lên các ARP hợp lệ từ trạm nguồn Kiểu tấn công này thường được biết đến với cái tên ARP cache poisoning Có nhiều tool sử dụng

Trang 37

kỹ thuật này để *thu bắt* thông tin trên các mạng dùng switch hoặc thực hiện kiểu tấn công *man-in-the-middle*, có thể đơn cử tool Ettercap.[8]

- Đầu tiên, HostA muốn gởi dữ liệu cho Victim HostA cần phải biết địa chỉ MAC của Victim để liên lạc HostA sẽ gửi broadcast ARP Request tới tất cả các máy trong cùng mạng Lan để hỏi xem IP 10.0.0.10 (IP của Victim) có địa chỉ MAC là bao nhiêu

Trang 38

- HostB, Attacker, Victim đều nhận được gói tin ARP Request, nhưng chỉ có Victim là gửi lại gói tin ARP Reply lại cho HostA ARP Reply chứa thông tin về IP của Victim, MAC Victim, MAC HostA Sau khi nhận được gói tin ARP Reply từ Victim, HostA đã biết được địa chỉ MAC của Victim HostA bắt đầu thực hiện liên lạc, truyền dữ liệu tới Victim HostB, Attacker không thể xem nội dung dữ liệu được truyền giữa 2 máy HostA và Victim.

- Attacker muốn xem dữ liệu truyền giữa HostA và Victim Attacker sử dụng kiểu tấn công ARP Spoof Attacker thực hiện gửi liên tục ARP Reply chứa thông tin về IP Victim, MAC Attacker, MAC HostA ở đây, thay vì là MAC Victim, Attacker đã đổi thành địa chỉ MAC của mình

- HostA nhận được ARP Reply và nghĩ là IP Victim 10.0.0.10 sẽ có địa chỉ MAC là 0000:0000:0111 ( MAC của Attacker) HostA lưu thông tin này vào bảng ARP Cache

- Bây giờ mọi thông tin, dữ liệu HostA gửi tới 10.0.0.10 (Victim), Attacker đều có thể nhận được, Attacker có thể xem tòan bộ nội dung HostA gửi cho Victim , Attacker còn có thể kiểm sóat tòan bộ quá trình liên lạc giữa HostA và Victim thông qua ARP Attack

- Attacker thường xuyên gửi các gói tin ARP Reply chứa địa chỉ IP của HostA và Victim nhưng có địa chỉ MAC là của Attacker

- HostA nhận được gói tin này thì cứ nghĩ Victim sẽ có địa chỉ MAC là 0000:0000:0111 (MAC của Attacker)

- Victim nhận đươc gói tin này thì cứ nghĩ HostA sẽ có địa chỉ MAC là 0000:0000:0111 (MAC của Attacker)

- Mọi thông tin trao đổi giữa HostA và Victim, Attacker đều có thể nhận được Như vậy là Attacker có thể biết được nội dung trao đổi giữa HostA và Victim

Sau khi bị tấn công ARP attack, sẽ rất nguy hiểm cho người dùng vì mọi thông tin trao đổi của họ đều bị lộ, nhất là những thông tin đó là quan trọng, cần phải giữ bí mật

Giới hạn và điểm yếu của kiểu tấn công ARP Spoof:

Chỉ có những máy nằm trong cùng đường mạng với máy Attacker mới

bị tấn công Các máy nằm khác mạng sẽ không thể bị tấn công bằng hình thức này vì:

Trang 39

+ Trong cùng một đường mạng LAN, các máy sẽ thực hiện trao đổi dữ liệu với nhau dựa vào địa chỉ MAC HostA muốn trao đổi dữ liệu với HostB HostA sẽ dò tìm trong bảng ARP cache xem IP của HostB sẽ có địa chỉ MAC tương ứng là gì HostA đóng gói dữ liệu cần truyền với MAC nguồn là MAC HostA, MAC đích là MAC HostB Sau đó HostA sẽ truyền dữ liệu tới HostB dựa vào MAC đích của gói tin.[5]

+ Trong trường hợp HostA, HostB khác đường mạng muốn liên lạc với nhau, thì sẽ phải dựa vào địa chỉ IP để truyền dữ liệu và phải thông qua một thiết bị định tuyến, đó là router HostA sẽ đóng gói dữ liệu cần truyền với MAC nguồn là HostA, MAC đích là router Gói tin đó sẽ được truyền đến router, router sẽ dựa vào địa chỉ IP đích (IP HostB)và dò tìm trong bảng định tuyến nhằm xác định con đường đi đến HostB Router có khả năng ngăn chặn các gói tin broadcast

Hình thức tấn công này không thể thực hiện được trong mạng WAN, trên Internet mà chỉ thực hiện được trên cùng mạng LAN.[5]

I.2.3 Điểm yếu trong giao thức ICMP

TCP/IP không thể xác thực một cách đầy đủ các thông báo lỗi của giao thức Internet Control Message Protocol (ICMP) Do đó, hacker có thể cài đặt lại (reset) hoặc làm chậm kết nối đã thiết lập bằng cách sử dụng những thông báo lỗi ICMP giả mạo Các ứng dụng phụ thuộc vào kết nối TCP thông lượng cao hoặc thấp nhưng kéo dài bị nguy cơ lớn nhất từ những vụ tấn công này

Để giả mạo một thông báo ICMP, hacker chỉ cần biết hoặc đoán ra cổng TCP nguồn và đích đến Một gói ping thông thường là 64 bytes (84 bytes nếu tính đến IP header) Nhiều hệ thống máy tính không thể "nắm" được 1 gói ping lớn hơn kích cỡ gói IP lớn nhất (65,535 bytes), vì vậy send gói ping với kích

cỡ lớn như vậy có thể làm crash máy tính đích Nói chung, send 1 gói ping có kích cỡ quá lớn là bất hợp pháp về mặt giao thức mạng nhưng có thể thực hiện được nếu chia gói ping ra làm nhiều phần (phân mảnh - fragment) Khi máy tính đích nhận được gói ping đã bị phân mảnh nó phải hợp lại các mảnh

đó thành gói ban đầu, việc này có thể gây ra lỗi tràn bộ đệm và làm crash máy tính đích Ping of death ảnh hưởng rất lớn đến các hệ điều hành như Unix, Linux, Mac, Windows và các thiết bị như printer và router.[5]

Phương pháp tấn công

Trang 40

Kẻ tấn công gửi những gói tin IP lớn hơn số lương bytes cho phép của tin IP là 65.536 bytes.Quá trỡnh chia nhỏ gúi tin IP thành những phần nhỏ được thực hiện ở layer II.Quá trỡnh chia nhỏ cú thể thực hiện với gúi IP lớn hơn 65.536 bytes Nhưng hệ điều hành không thể nhận biết được độ lớn của gói tin này và sẽ bị khởi động lại, hay đơn giản là sẽ bị gián đoạn giao tiếp.Để nhận biết kẻ tấn công gửi gói tin lớn hơn gói tin cho phép thỡ tương đối dễ dàng.[5]

I.2.4 Điểm yếu trong RIP

Mặc dù không “chính thức” là một thành phần của TCP/IP, nhưng RIP (Routing Information Protocol) thường được coi là một thành phần “thiết yếu” trong TCP/IP Một cách tổng quát, vai trò của RIP dùng để cung cấp các thông tin về đường đi trong các mạng, chẳng hạn như cung cấp thông tin về đường đi ngắn nhất, và quảng bá thông tin về đường đi từ mạng nội bộ tới các mạng khác Giống như TCP/IP, RIP không xây dựng cơ chế xác thực, và các thông tin được cung cấp trong RIP packet thường được sử dụng mà không có

sự kiểm tra nào Việc tấn công vào RIP không giống với các cách tấn công thông thường bởi vì nó sẽ thay đổi đích đến của dữ liệu Ví dụ, một kẻ tấn công có thể giả mạo một gói tin RIP, thông báo máy của attacker là đường đi nhanh nhất ra mạng ngoài Khi đó, tất cả các gói tin gửi từ mạng đó sẽ bị điều hướng qua máy của attacker Tại đây chúng có thể bị thay đổi, hay lấy cắp nội dung.[9]

Phương pháp tấn công

Một dạng tấn công đối RIP dạng tấn công từ chối dịch vụ Dạng này có thể thực hiện bằng rất nhiều cách Ví dụ, việc ngăn cản các thông điệp cập nhật router gửi đi hay nhận và sẽ dẫn đến sự hạ xuống của vài phần của mạng

Một kẻ công có thể gửi dữ liệu tới nhiều bộ định tuyến, hay làm tràn ngập bộ

định tuyến dẫn đến ngập lụt mạng.[4]

I.2.5 Thiếu định danh duy nhất

Trước kia, một địa chỉ IP được dùng để định danh một host trên mạng Tuy nhiên, do TCP/IP ngày càng trở nên phổ biến, dẫn đến không gian địa chỉ

IP ngày càng trở nên bị thu hẹp Đó là chưa kể đến các Firewall, Proxy server, Network Address Translator ngày càng trở nên phức tạp hơn để có thể sử dụng IP Address làm định danh để quản lý, chuyển đổi các địa chỉ IP giữa mạng nội bộ và mạng ngoài Các host khác nhau có thể cùng chung một địa

Ngày đăng: 09/04/2016, 09:47

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

TÀI LIỆU LIÊN QUAN

w