Đồ án tốt nghiệp đại học “thiết kế xây dựng ứng dụng tự động kiểm soát truy cập mạng” - Pdf 14

MỤC LỤC
MỞ ĐẦU 2
CHƯƠNG :I LÝ THUYẾT MẠNG MÁY TÍNH 4
.1 Khái niệm cơ bản: 4
.2 Kiến trúc mạng máy tính: 4
.3 Topology của mạng: 5
.4 Giao thức mạng: 6
.5 Mô hình OSI: 6
CHƯƠNG :II CÁC GIAO THỨC PHỔ BIẾN TRONG HOẠT
ĐỘNG MẠNG MÁY TÍNH 9
.1 Giao thức IP: 9
.2 Giao thức TCP: 17
.3 Giao thức HTTP: 23
.4 Truyền email trên Internet –giao thức POP3: 30
.5 Giao thức POP3: 32
CHƯƠNG :III MỘT SỐ KỸ THUẬT TẤN CÔNG PHỔ BIẾN 35
.1 Kỹ thuật tấn công dựa trên phân mảnh gói tin: 35
.2 Giả mạo địa chỉ IP(IP Spoofing): 39
.3 Chiếm phiên TCP(TCP Session Hijacking): 41
.4 Giả mạo ARP(Arp Spoofing): 44
.5 Giả mạo DNS(DNS Spoofing): 45
.6 Tấn công mức ứng dụng(Application attacks): 47
.7 Tấn công từ chối dịch vụ(Denial Of Service): 49
CHƯƠNG :IV XÂY DỰNG CHƯƠNG TRÌNH HỖ TRỢ QUẢN
TRỊ MẠNG 52
.1 Giới thiệu phần mềm bắt gói tin Winpcap và thư viện hỗ trợ lập
trình PacketX 52
.2 Mô tả hệ thống 54
.3 Phân tích hệ thống: 56
.4 Xây dựng chương trình: 58
KẾT LUẬN 60

2
- Xây dựng chương trình hỗ trợ thiết kế mạng, chặn bắt và phân
tích gói tin trên mạng.
Vấn đề chặn bắt, phân tích gói tin trên mạng là một vấn đề khó khi các
bộ phần mềm hỗ trợ cho việc bắt gói tin còn ít, môi trường thực hành còn
hạn chế, đồng thời do kinh nghiệm làm việc của bản thân cũng như kiến
thức về lĩnh vực bảo mật còn nhiều thiếu sót. Do vậy, đề tài không tránh
khỏi có những sai sót. Em rất mong nhận được sự đóng góp ý kiến của thầy
cô giáo và các bạn để đề tài được hoàn thiện.
Cuối cùng, em xin chân thành cảm ơn các thầy cô giáo khoa Công nghệ
thông tin, đặc biệt là thầy giáo PGS-TS đã tận tình giúp đỡ em trong quá
trình thực hiện đồ án.
3
CHƯƠNG :I LÝ THUYẾT MẠNG MÁY TÍNH
.1 Khái niệm cơ bản:
Sự kết hợp của máy tính với các hệ thống truyền thông
(communication) đặc biệt là viễn thống (telecommunication) đã tạo ra một
sự chuyển biến có tính cách mạng trong vấn đề tổ chức khai thác và sử
dụng các hệ thống máy tính. Một môi trường làm việc nhiều người sử dụng
phân tán đã hình thành cho phép nâng cao hiệu quả khai thác tài nguyên
chung từ những vị trí địa lý khác nhau. Các hệ thống như thế được gọi là
các mạng máy tính (computernetworks).
Mạng máy tính là một tập hợp các máy tính được nối với nhau bởi
đường truyền theo một cấu trúc nào đó và thông qua đó các máy tính
trao đổi thông tin qua lại cho nhau.
Mô hình mạng máy tính
.2 Kiến trúc mạng máy tính:
Kiến trúc mạng máy tính (network architecture) thể hiện cách nối các
mạng máy tính với nhau ra sao và tập hợp các quy tắc, quy ước mà tất cả
các thực thể tham gia truyền thông trên mạng phải tuân theo để đảm bảo

liệu cho tới các thủ tục gửi, nhận dữ liệu kiểm soát hiệu quả và chất lượng
truyền tin và xử lý các lỗi và các sự cố, yêu cầu về quy tắc càng nhiều và
phức tạp hơn. Tập hợp tất cả những quy tắc, quy ước đó được gọi là giao
thức (protocol) của mạng. Rõ ràng là các mạng có thể sử dụng các giao
thức khác nhau tuỳ sự lựa chọn của người thiết kế.
Trên thực tế, giao thức phổ biến hiện nay được sử dụng rộng rãi trong
mạng Internet cũng như các mạng nội bộ là bộ giao thức TCP/IP.
.5 Mô hình OSI:
Kiến trúc phân tầng:
Để giảm độ phức tạp của việc thiết kế và cài đặt mạng , hầu hết các
mạng máy tính hiện có đều được phân tích thiết kế theo quan điểm phân
tầng (layering). Mỗi hệ thống thành phần của mạng được xem như là một
cấu trúc đa tầng, trong đó mỗi tầng được xây trên tầng trước nó. Số lượng
tầng và chức năng của mỗi tầng là phụ thuộc vào các nhà thiết kế.
Nguyên tắc của kiến trúc mạng phân tầng là : mỗi hệ thống trong một
mạng đều có cấu trúc tầng (số lượng tầng, chức năng của mỗi tầng là như
nhau). Sau khi xác định số lượng tầng và chức năng của mỗi tầng thì công
việc quan trọng tiếp theo là định nghĩa mối quan hệ (giao diện) giữa hai
tầng đồng mức ở hai hệ thống kết nối với nhau. Trong thực tế dữ liệu
không được truyền trực tiếp từ tầng thứ i của hệ thống này sang tầng thứ i
của hệ thống kia và ngược lại (trừ đối với tầng thấp nhất trực tiếp sử dụng
đường truyền vật lý để truyền các xâu bít (0,1) từ hệ thống này sang hệ
thống khác). Ở đây quy ước dữ liệu ở bên hệ thống gửi (sender) được
6
truyền sang hệ thống nhận (receiver) bằng đường truyền vật lý và cứ thế đi
ngược lên các tầng trên. Như vậy giữa 2 hệ thống kết nối với nhau chỉ có
tầng thấp nhất mới có liên kết vật lý, còn ở các tầng cao hơn chỉ là những
liên kết logic (hay liên kết ảo) được đưa vào để hình thức hoá các hoạt
động của mạng thuận tiện cho việc thiết kế và cài đặt các phần mềm truyền
thông.

• Tạo các ranh giới giữa mỗi tầng với tầng trên và dưới nó.
Mô hình OSI bẩy tầng
Trên mạng Internet hiện nay, bộ giao thức TCP/IP sử dụng mô hình
mạng bốn tầng, bao gồm các tầng: ứng dụng, giao vận, internet, và tầng vật
8
SESSION
Các giao thức tầng phiên
APPLICATION
Các giao thức tầng ứng dụng
NETWORK
Các giao thức tầng mạng
PRESENTATION
Các giao thức tầng trình diễn
TRANSPORT
Các giao thức tầng giao vận
DATA-LINK
Các giao thức tầng liên kết dữ liệu
PHYSICAL
Các giao thức tầng vật lý
lý. Mỗi tầng trong mô hình bốn tầng này tương ứng với một hoặc nhiều
tầng trong mô hình OSI. Dưới đây là hình ảnh ánh xạ của mô hình OSI bẩy
tầng với mô hình bốn tầng được sử dụng trong mạng Internet hiện nay.
Mô hình OSI Mô hình cho giao thức TCP/IP
Application
ApplicationPresentation
Session
Transport Transport
Network Internet
Data-link
Network Interface

mạng thông qua địa chỉ logic. Một địa chỉ logic là địa chỉ được thiết lập
bằng phần mềm của mạng. Trong TCP/IP, địa chỉ logic của một máy tính
được gọi là địa chỉ IP.
Địa chỉ IP:
Địa chỉ IP là một chuỗi 32bits, được sử dụng để định danh các máy tính
trong mạng. Mỗi giao diện trong một máy tính có hỗ trợ giao thức IP đều
phải được gán 1 địa chỉ IP (một máy tính có thể gắn với nhiều mạng do vậy
có thể có nhiều địa chỉ IP). Địa chỉ IP gồm 2 phần: địa chỉ mạng (netid) và
địa chỉ máy (hostid). Mỗi địa chỉ IP có độ dài 32 bits được tách thành 4
10
vùng (mỗi vùng 1 byte), có thể biểu thị dưới dạng thập phân, bát phân, thập
lục phân hay nhị phân. Cách viết phổ biến nhất là dùng ký pháp thập phân
có dấu chấm (dotted decimal notation) để tách các vùng.
Do tổ chức và độ lớn của các mạng con (subnet) của liên mạng có thể
khác nhau, người ta chia các địa chỉ IP thành 5 lớp, ký hiệu là A, B, C, D
và E. Trong lớp A, B, C chứa địa chỉ có thể gán được. Lớp D dành riêng
cho lớp kỹ thuật multicasting. Lớp E được dành những ứng dụng trong
tương lai.
Netid trong địa chỉ mạng dùng để nhận dạng từng mạng riêng biệt. Các
mạng liên kết phải có địa chỉ mạng (netid) riêng cho mỗi mạng. Ở đây các
bit đầu tiên của byte đầu tiên được dùng để định danh lớp địa chỉ (0 - lớp
A, 10 - lớp B, 110 - lớp C, 1110 - lớp D và 11110 - lớp E).
Ở đây ta xét cấu trúc của các lớp địa chỉ có thể gán được là lớp A, lớp
B, lớp C:
Cấu trúc của các địa chỉ IP như sau:
• Mạng lớp A: địa chỉ mạng (netid) là 1 Byte và địa chỉ host
(hostid) là 3 byte.
• Mạng lớp B: địa chỉ mạng (netid) là 2 Byte và địa chỉ host
(hostid) là 2 byte.
• Mạng lớp C: địa chỉ mạng (netid) là 3 Byte và địa chỉ host

Source address
Destination address
Option + padding
Data
12
IP Header Structure
Ý nghĩa các trường dữ liệu trong gói tin IP:
• Ver(4 bits): chỉ version hiện hành của giao thức IP hiện được cài đặt,
Việc có chỉ số version cho phép có các trao đổi giữa các hệ thống sử dụng
version cũ và hệ thống sử dụng version mới.
• IHL (4 bits): chỉ độ dài phần đầu (Internet header Length) của gói
tin datagram, tính theo đơn vị từ ( 32 bits). Trường này bắt buột phải có vì
phần đầu IP có thể có độ dài thay đổi tùy ý. Độ dài tối thiểu là 5 từ (20
bytes), độ dài tối đa là 15 từ hay là 60 bytes.
• Type of Server(8 bits):đặc tả các tham số về dịch vụ nhằm thông
báo cho mạng biết dịch vụ nào mà gói tin muốn được sử dụng, chẳng hạn
ưu tiên, thời hạn chậm trễ, năng suất truyền và độ tin cậy. Hình sau cho biết
ý nghĩ của trường 8 bits này.
- Precedence(3 bits):chỉ thị về quyền ưu tiên gửi datagram, nó
có giá trị từ 0 (gói tin bình thường) đến 7 (gói tin kiểm soát
mạng).
- D(Delay 1 bit): Chỉ độ trễ yêu cầu trong đó.
D=0: Chỉ gói tin có độ trễ bình thường.
D=1: Chỉ gói tin có độ trễ thấp.
- T(Throughput) (1 bit): chỉ độ thông lượng yêu cầu sử dụng để
truyền gói tin với lựa chọn truyền trên đường thông suất thấp
hay đường thông suất cao.
T=0: Thông lượng bình thường.
T=1: Thông lượng cao.
13

gói tin trong mạng để tránh tình trạng một gói tin 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 (thường qui ước là 1 đơn
vị) khi datagram đi qua mỗi router của liên mạng. Thời lượng này giảm
xuống tại mỗi router với mục đích giới hạn thời gian tồn tại của các gói tin
và kết thúc những lần lặp lại vô hạn trên mạng. Sau đây là 1 số điều cần lưu
ý về trường Time To Live:
- Nút trung gian trong mạng không được gửi một gói tin mà
trường này có giá trị bằng 0.
- Một giao thức có thể ấn định giá trị Time To Live để thực hiện
tìm tài nguyên trong mạng trong phạm vi mở rộng.
- Một giá trị cố định tối thiểu phải đủ lớn cho mạng hoạt động
tốt.
• Protocol(8 bits): chỉ giao thức tầng trên kế tiếp sẽ nhận vùng dữ liệu
ở trạm đích (hiện tại thường là TCP hoặc UDP được cài đặt trên IP). Ví dụ:
TCP có giá trị trường Protocol là 6, UDP có giá trị trường Protocol là 17.
• Header Checksum(16 bits): Mã kiểm soát lỗi của header gói tin IP.
• Source Address(32 bits): Địa chỉ của máy nguồn.
• Destination Address(32 bits): địa chỉ của máy đích.
• Options (độ dài thay đổi): khai báo các lựa chọn do người gửi yêu
cầu (tuỳ theo từng chương trình).
• Padding (độ dài thay đổi): Vùng đệm, được dùng để đảm bảo cho
phần header luôn kết thúc ở một mốc 32 bits.
• Data (độ dài thay đổi): Trên một mạng cục bộ như vậy, 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
15
vấn đề đặt ra là phải thực hiện ánh xạ giữa địa chỉ IP (32 bits) và địa chỉ vật
lý (48 bits) của một trạm.
Một số giao thức được sử dụng trong mạng IP:
Để mạng với giao thức IP hoạt động được tốt người ta cần một số giao
thức bổ sung, các giao thức này đều không phải là bộ phận của giao thức IP

hoặc một gateway sẽ được chọn cho chặng tiếp theo.
• 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:
• Tính checksum, nếu sai thì loại bỏ gói tin.
• Giảm giá trị tham số Time - to Live. nếu thời gian đã hết thì loại bỏ
gói tin.
• Ra quyết định chọn đường.
• Phân đoạn gói tin, nếu cần.
• 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.
• 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:
• Tính checksum. Nếu sai thì loại bỏ gói tin.
• Tập hợp các đoạn của gói tin (nếu có phân đoạn).
• Chuyển dữ liệu và các tham số điều khiển lên tầng trên.
.2 Giao thức TCP:
Tổng quan về giao thức TCP:
TCP là một giao thức "có liên kết" (connection - oriented), nghĩa là cần
phải thiết lập liên kết giữa hai thực thể TCP trước khi chúng trao đổi dữ
17
liệu với nhau. Một tiến trình ứng dụng trong một máy tính truy nhập vào
các dịch vụ của giao thức TCP thông qua một cổng (port) của TCP. Số hiệu
cổng TCP được thể hiện bởi 2 bytes.
Cổng truy cập dịch vụ TCP
Một cổng TCP được kết hợp với địa chỉ IP tạo thành một đầu nối
TCP/IP (socket) duy nhất trong liên mạng. Dịch vụ TCP được cung cấp
nhờ một liên kết logic giữa một cặp đầu nối TCP/IP. Một đầu nối TCP/IP
có thể tham gia nhiều liên kết với các đầu nối TCP/IP ở xa khác nhau.

• S: Đồng bộ hóa số hiệu tuần tự (sequence number).
• F: Không còn dữ liệu từ trạm nguồn.
• Window(16 bits): Cấp phát credit để kiểm soát nguồn dữ liệu (cơ chế
cửa sổ). Đây chính là số lượng các byte dữ liệu, bắt đầu từ byte được
chỉ ra trong vùng ACK number, mà trạm nguồn đã sẵn sàng để nhận.
• Checksum(16 bits): Mã kiểm soát lỗi cho toàn bộ segment (header +
data).
• Urgent Pointer(16 bits): Con trỏ này trỏ tới số hiệu tuần tự của byte
đi theo sau dữ liệu khẩn. Vùng này chỉ có hiệu lực khi bit URG được
thiết lập.
• Option(Độ dài thay đổi): Khai báo các option của TCP, trong đó có
độ dài tối đa của vùng TCP data trong một segment.
19
• Padding(Độ dài thay đổi): Phần chèn thêm vào header để đảm bảo
phần header luôn kết thúc ở một mốc 32 bit. Phần thêm này gồm
toàn số 0.
• Data(Độ dài thay đổi): Chứa dữ liệu của tầng trên, có độ dài tối đa
ngầm định là 536 byte. Giá trị này có thể điều chỉnh bằng cách khai
báo trong vùng options.
Ba bước bắt tay tạo lập liên kết(The three-way-handshake):
Trước khi hai máy tính có thể truyền thông với nhau qua một kết nối
TCP thì kết nối đó phải được thiết lập. Quá trình xử lý việc thiết lập kết nối
TCP được chia thành ba bước. Mô hình dưới đây minh họa ba bước bắt tay
tạo liên kết TCP:
Ba bước bắt tay thiết lâp liên kết
• Bước 1: Client gửi tới Server một gói tin, trong gói tin này, cờ SYN
được xác lập, nó nói cho Server biết rằng nó muấn mở một kết nối với
Server. Gói tin này cũng gửi một giá trị khởi tạo của Sequence
Number(INS).
20

21
Bốn bước bắt tay giải phóng liên kết TCP
Các cờ của gói tin TCP:
• SYN: Cờ SYN được sử dụng trong gói tin đầu tiên của kết nối, cho
biết một máy tính muấn có một kết nối TCP với máy chủ nhận gói tin này.
• ACK: Cờ ACK được sử dụng trong suốt toàn bộ quá trình của phiên
kết nối. Cho biết đã nhận được gói tin trước đó.
• FIN: Cờ FIN được sử dụng khi một trong hai máy tính đã hoàn
thành quá trình gửi dữ liệu, kết nối sau đó sẽ được đóng lại một cách bình
thường.
22
FIN(S
N)
ACK(SN+1
)
FIN(SN)
ACK(SN+1
)
Client
Server
• RST: Cờ RST được sử dụng khi một trong hai máy tính nhận được
gói tin không mong muấn. Gói tin có cờ RST sẽ thực hiện reset lại kết nối
và hai máy tính có thể thực hiện lại kết nối nếu cần.
• SYN|ACK: Sự kết hợp hai cờ SYN và ACK được sử dụng để thông
báo lại cho máy tính khác biết đã nhận được gói tin SYN trước đó và gửi
lại thông tin chấp nhận kết nối.
• FIN|ACK: Hai cờ FIN và ACK được liên kết để thông báo đã nhận
được gói tin có cờ FIN trước đó và hoàn thành việc đóng kết nối.
• URG: Cờ này hiếm khi được sử dụng trong kết nối thông thường.
Nó được sử dụng để thông báo có một vùng dữ liệu khẩn.

agent(UA) và server gốc. Trường hợp phức tạp hơn là có nhiều đối tượng
trung gian(ví dụ Proxy) hiện diện trong chuỗi request/response. Một proxy
là một “forwarding agent”, nhận các request với một URI(Uniform
Resource Identifier) ở dạng đầy đủ, rồi viết lại tất cả hay một phần của
thông điệp, rồi chuyển request được định dạng lại tới server được chỉ định
bởi URI này.
Trên Internet, tổng quát HTTP commucation xảy ra thông qua các
TCP/IP connection. Port mặc định là TCP 80 nhưng có thể thay đổi được.
Không có gì bắt buộc HTTP không được thực hiện trên những giao thức
khác. HTTP chỉ cần lớp Transport tin cậy, bất cứ giao thức nào đảm bảo thì
đều dùng được.
Hiện tại mỗi connection được thiết lập bởi client để gửi một request và
bị đóng lại bởi server sau khi gửi trả lại một response. Phía client lẫn server
nên nhận biết được bên kia đã đóng cầu nối(kỹ thuật keep-alive) bất
24
thường. Trong bất kỳ trường hợp nào, việc đóng cầu nối bởi một bên hay
cả hai bên luôn ngắt request hiện tại, bất chấp trạng thái của nó.
HTTP/1.0 dùng nhiều cấu trúc được định nghĩa cho MIME(RFC 1521).
Yêu cầu HTTP là một thông báo văn bản ASCII có cấu trúc gồm có:
• Method(phương pháp): Đây là một hành động để server thi hành.
• URI(Uniform Resource Identifier) của yêu cầu: Nhận diện đối tượng
mà phương pháp liên quan đến.
• Định danh phiên bản HTTP.
• Thông tin header của yêu cầu: là thông tin mà Client có thể gửi tới
server.
Thông báo đáp ứng, gửi trở lại HTTP Client gồm có:
• Định danh phiên bản HTTP: để nhận diện phiên bản của đáp ứng.
Thông thường định danh này giống như đối với yêu cầu.
• Trạng thái đáp ứng: Một mã đáp ứng ba con số, tương tự mã đáp ứng
bởi FTP và SMTP, cộng thêm thông tin văn bản.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status