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

Đồ á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”

61 1,1K 3

Đ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 61
Dung lượng 708,5 KB

Nội dung

Dữ liệu được gửi đi từ một nút nào đó sẽ có thể được tiếp nhận bởitất cả các nút còn lại, bởi vậy chỉ ra địa chỉ đích của dữ liệu để mỗi nút căn cứ vào đó để kiểm tra xem dữ liệu có phải

Trang 1

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 10

1 Giao thức IP: 10

2 Giao thức TCP: 18

3 Giao thức HTTP: 24

4 Truyền email trên Internet –giao thức POP3: 31

5 Giao thức POP3: 33

CHƯƠNG III: MỘT SỐ KỸ THUẬT TẤN CÔNG PHỔ BIẾN 36

1 Kỹ thuật tấn công dựa trên phân mảnh gói tin: 36

2 Giả mạo địa chỉ IP(IP Spoofing): 40

3 Chiếm phiên TCP(TCP Session Hijacking): 42

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): 48

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

CHƯƠNG IV: XÂY DỰNG CHƯƠNG TRÌNH HỖ TRỢ QUẢN TRỊ MẠNG …… 53

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 53

2 Mô tả hệ thống 55

3 Phân tích hệ thống: 57

4 Xây dựng chương trình: 59

KẾT LUẬN 61

TÀI LIỆU THAM KHẢO 62

Sách điện tử: 62

Trang web: 62

Trang 2

hệ thống.

Trong xu hướng hiện nay, vấn đề bảo đảm an ninh cho mạng máy tính

đã trở thành một vấn đề quan tâm của các chuyên gia đầu ngành trong lĩnhvực CNTT của Việt Nam cũng như trên thế giới

Được sự hướng dẫn tận tình của, em đã chọn đề tài: “Thiết kế xây dựng ứng dụng tự động kiểm soát truy cập mạng” cho đồ án tốt nghiệp của

mình

Đồ án tập trung nghiên cứu các vấn đề chính sau:

- Nghiên cứu mô hình mạng OSI

- Bộ giao thức TCP/IP và các điểm yếu trong hoạt động củagiao thức TCP/IP

- Một số giao thức mức ứng dụng: HTTP, POP3

- Nghiên cứu phần mềm bắt gói tin trên mạng Winpcap và bộcông cụ phân tích gói tin PacketX

Trang 3

- Xây dựng chương trình hỗ trợ thiết kế mạng, chặn bắt và phântí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ònhạn chế, đồng thời do kinh nghiệm làm việc của bản thân cũng như kiếnthứ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ánhkhỏ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

Trang 4

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ụngphân tán đã hình thành cho phép nâng cao hiệu quả khai thác tài nguyênchung 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ácmạ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ảocho mạng hoạt động tốt

Trang 5

Cách nối các máy tính được gọi là hình trạng (topology) của mạng Còntập hợp các quy tắc, quy ước truyền thông thì được gọi là giao thức(protocol) của mạng Topo và giao thức mạng là hai khái niệm rất cơ bảncủa mạng máy tính.

3 Topology của mạng:

Có hai kiểu nối mạng chủ yếu là điểm - điểm (point – to – point) và

quảng bá (broadcast hay point – to – multipoint).

Theo kiểu điểm - điểm, các đường truyền nối từng cặp nút với nhau và

mỗi nút đều có trách nhiệm lưu trữ tạm thời sau đó chuyển tiếp dữ liệu tạmthời sau đó chuyển tiếp dữ liệu đi cho tới đích Do các thức làm việc nhưthế nên mạng này còn gọi là mạng “lưu và chuyển tiếp” (store – and –forward)

Hình sau đây minh hoạ topo kiểu mạng điểm - điểm

Theo kiểu quảng bá, tất cả các nút phân chia chung một đường truyền

vật lý Dữ liệu được gửi đi từ một nút nào đó sẽ có thể được tiếp nhận bởitất cả các nút còn lại, bởi vậy chỉ ra địa chỉ đích của dữ liệu để mỗi nút căn

cứ vào đó để kiểm tra xem dữ liệu có phải dành cho mình hay không?

Hình sau minh hoạ một số topo mạng kiểu quảng bá

loop(chu trình)

Ring (vòng) Bus (xa lộ)

Trang 6

4 Giao thức mạng:

Việc trao đổi thông tin, cho dù là đơn giản nhất, cũng đều phải tuân theonhững quy tắc nhất định Việc truyền tín hiệu trên mạng, cần phải có nhữngquy tắc, quy ước về nhiều mặt, từ khuôn dạng (cú pháp, ngữ nghĩa) của dữ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ượngtruyề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 trongmạ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ácmạng máy tính hiện có đều được phân tích thiết kế theo quan điểm phântầng (layering) Mỗi hệ thống thành phần của mạng được xem như là mộtcấu trúc đa tầng, trong đó mỗi tầng được xây trên tầng trước nó Số lượngtầ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ộtmạ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ôngviệc quan trọng tiếp theo là định nghĩa mối quan hệ (giao diện) giữa haitầng đồng mức ở hai hệ thống kết nối với nhau Trong thực tế dữ liệukhông được truyền trực tiếp từ tầng thứ i của hệ thống này sang tầng thứ icủ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

Trang 7

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ềnthông

Mô hình OSI:

Khi thiết kế, các nhà thiết kế tự do lựa chọn kiến trúc mạng riêng củamình Từ đó dẫn đến tình trạng không tương thích giữa các mạng: phươngpháp truy nhập đường truyền khác nhau, sử dụng họ giao thức khác nhau

sự không tương thích đó làm trở ngại cho sự tương tác của người sử dụngcác mạng khác nhau Nhu cầu trao đổi thông tin càng lớn thì trở ngại đócàng không thể chấp nhận được đối với người sử dụng

Năm 1984, ISO đã xây dựng xong mô hình tham chiếu cho việc nối kếtcác hệ thống mở (Reference Model For Open Systems Interconnection hayOSI Reference Model) Mô hình này được dùng làm cơ sở để nối kết các hệthống mở phục vụ cho các ứng dụng phân tán Từ “mở” ở đây nói lên khảnăng hai hệ thống có thể nối kết để trao đổi thông tin với nhau nếu chúngtuân thủ mô hình tham chiếu và các chuẩn liên quan

Các nguyên tắc ISO quy định trong quá trình xây dựng mô hình OSI :

 Không định nghĩa quá nhiều tầng để việc xác định và ghép nối cáctầng không quá phức tạp

 Tạo các ranh giới các tầng sao cho việc giải thích các phục vụ và sốcác tương tác qua lại hai tầng là nhỏ nhất

 Tạo các tầng riêng biệt cho các chức năng khác biệt nhau hoàn toàn

về kỹ thuật sử dụng hoặc quá trình thực hiên

 Các chức năng giống nhau được đặt trong cùng một tầng

Trang 8

 Lựa chọn ranh giới các tầng tại các điểm mà những thử nghiệm trongquá khứ thành công.

 Các chức năng được xác định sao cho chúng có thể dễ dàng xác địnhlại, và các nghi thức của chúng có thể thay đổi trên mọi hướng

 Tạo ranh giới các tầng mà ở đó cần có những mức độ trừu tượngkhác nhau trong việc sử dụng số liệu

 Cho phép thay đổi các chức năng hoặc giao thức trong tầng khôngảnh hưởng đến các tầng khác

 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ìnhmạng bốn tầng, bao gồm các tầng: ứng dụng, giao vận, internet, và tầng vật

SESSIONCác giao thức tầng phiên

APPLICATIONCá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ý

Trang 9

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ềutầng trong mô hình OSI Dưới đây là hình ảnh ánh xạ của mô hình OSI bẩytầng với mô hình bốn tầng được sử dụng trong mạng Internet hiện nay.

Application

Application

PresentationSession

Physical

Tương quan giữa mô hình OSI và mô hình giao thức TCP/IP.

CHƯƠNG II: CÁC GIAO THỨC PHỔ BIẾN TRONG HOẠT

ĐỘNG MẠNG MÁY TÍNH

1 Giao thức IP:

Tổng quan về giao thức IP:

Mục đích chính của giao thức IP là kết nối các mạng con thành liênmạng Giao thức IP nằm trong tầng mạng(network) của mô hình OSI Giaothức IP là giao thức kiểu không liên kết(connectionless), tức là không cógiai đoạn thiết lập liên kết trước khi truyền dữ liệu

Trang 10

Khi một máy tính tham gia vào trao đổi dữ liệu trong mạng, nó sử dụngmột bộ điều hợp mạng(network adapter) Mỗi một bộ điều hợp mạng nàyđược gắn với một địa chỉ vật lý cố định và duy nhất, do nhà sản xuất quyếtđịnh Trong mạng cục bộ, những nơi chỉ chú trọng vào phần cứng sẽ vậnchuyển dữ liệu theo mạng vật lý nhờ sử dụng địa chỉ vật lý của bộ điềuhợp Có nhiều loại mạng và mỗi mạng có cách thức vận chuyển dữ liệukhác nhau Ví dụ, một mạng Ethernet, một máy tính gửi thông tin trực tiếptới bộ phận trung gian Bộ điều phối mạng của mỗi máy tính sẽ lắng nghetất cả các tín hiệu truyền qua lại trong mạng cục bộ để xác định thông tinnào có địa chỉ nhận giống của mình.

Tất nhiên, với những mạng rộng hơn, các bộ điều hợp không thể lắngnghe tất cả các thông tin Khi các bộ phận trung gian trở nên quá tải với sốlượng máy tính được thêm mới, hình thức hoạt động này không thể hoạtđộng hiệu quả

Các nhà quản trị mạng thường phải chia vùng mạng bằng cách sử dụngcác thiết bị như bộ định tuyến để giảm lượng giao thông Trên những mạng

có định tuyến, người quản trị cần có cách để chia nhỏ mạng thành nhữngphần nhỏ (gọi là tiểu mạng) và thiết lập các cấp độ để thông tin có thể dichuyển tới đích một cách hiệu quả TCP/IP cung cấp khả năng chia tiểumạng thông qua địa chỉ logic Một địa chỉ logic là địa chỉ được thiết lậpbằ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ínhtrong mạng Mỗi giao diện trong một máy tính có hỗ trợ giao thức IP đềuphả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

Trang 11

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ậplụ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êngcho lớp kỹ thuật multicasting Lớp E được dành những ứng dụng trongtương lai

Netid trong địa chỉ mạng dùng để nhận dạng từng mạng riêng biệt Cácmạng liên kết phải có địa chỉ mạng (netid) riêng cho mỗi mạng Ở đây cácbit đầ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(hostid) là 1 byte

Lớp A cho phép định danh tới 126 mạng, với tối đa 16 triệu host trênmỗi mạng Lớp này được dùng cho các mạng có số trạm cực lớn

Lớp B cho phép định danh tới 16384 mạng, với tối đa 65534 host trênmỗi mạng

Lớp C cho phép định danh tới 2 triệu mạng, với tối đa 254 host trên mỗimạng Lớp này được dùng cho các mạng có ít trạm

Trang 12

Địa chỉ lớp A 0xxxxxxx xxxxxxxx xxxxxxxx xxxxxxxxĐịa chỉ lớp B 10xxxxxx xxxxxxxx xxxxxxxx xxxxxxxxĐịa chỉ lớp C 110xxxxx xxxxxxxx xxxxxxxx xxxxxxxx

Cấu trúc các lớp địa chỉ

Một số địa chỉ có tính chất đặc biệt: Một địa chỉ có hostid = 0 được

dùng để hướng tới mạng định danh bởi vùng netid Ngược lại, một địa chỉ

có vùng hostid gồm toàn số 1 được dùng để hướng tới tất cả các host nốivào mạng netid, và nếu vùng netid cũng gồm toàn số 1 thì nó hướng tới tất

cả các host trong liên mạng

Cần lưu ý rằng các đị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ý(hay địa chỉ MAC) của các trạm trên đó một mạng cục bộ (Ethernet, TokenRing.)

Trong nhiều trường hợp, một mạng có thể được chia thành nhiều mạngcon (subnet), lúc đó có thể đưa thêm các vùng subnetid để định danh cácmạng con Vùng subnetid được lấy từ vùng hostid, cụ thể đối với lớp A, B,

Identification Flags Fragment offset

Source address

Trang 13

Destination addressOption + padding

Data

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ụngversion 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ừ (20bytes), độ 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átmạ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ấphay đường thông suất cao

Trang 14

T=0: Thông lượng bình thường.

T=1: Thông lượng cao

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

R=0: Độ tin cậy bình thường

R=1: Độ tin cậy cao

Total Length(16 bits): chỉ độ dài toàn bộ gói tin, kể cả phần đầu tính

theo đơn vị byte với chiều dài tối đa là 65535 bytes Hiện nay giới hạn trên

là rất lớn nhưng trong tương lai với những mạng Gigabit thì các gói tin cókích thước lớn là cần thiết

Identification(16 bits): cùng với các tham số khác (như Source

Address và Destination Address) tham số này dùng để định danh duy nhấtcho một datagram trong khoảng thời gian nó vẫn còn trên liên mạng

Flags(3 bits): liên quan đến sự phân đoạn (fragment) các datagram,

Các gói tin khi đi trên đường đi có thể bị phân thành nhiều gói tin nhỏ,trong trường hợp bị phân đoạn thì trường Flags được dùng điều khiển phânđoạn và tái lắp ghép bó dữ liệu Tùy theo giá trị của Flags sẽ có ý nghĩa làgói tin sẽ không phân đoạn, có thể phân đoạn hay là gói tin phân đoạn cuối

cùng Trường Fragment Offset cho biết vị trí dữ liệu thuộc phân đoạn

tương ứng với đoạn bắt đầu của gói dữ liệu gốc Ý nghĩa cụ thể của trườngFlags là:

- Bit 0: reserved - chưa sử dụng, luôn lấy giá trị 0

- Bit 1: DF=0( Có thể có sự phân đoạn) DF=1(Không có sự

phân đoạn)

- Bit 2: MF=0(Gói phân đoạn cuối) MF=1(Còn gói tin tiếp

trong phân đoạn)

Trang 15

Fragment offset(13 bits): chỉ vị trí của đoạn (fragment) ở trong

datagram tính theo đơn vị 8 bytes, có nghĩa là phần dữ liệu mỗi gói tin (trừgói tin cuối cùng) phải chứa một vùng dữ liệu có độ dài là bội số của 8bytes Điều này có ý nghĩa là phải nhân giá trị của Fragment offset với 8 đểtính ra độ lệch byte

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

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ờigian này được cho bởi trạm gửi và được giảm đi (thường qui ước là 1 đơnvị) khi datagram đi qua mỗi router của liên mạng Thời lượng này giảmxuố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

Trang 16

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ậyvấ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ố giaothứ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

và giao thức IP sẽ dùng đến chúng khi cần

Giao thức ARP (Address Resolution Protocol): Ở đây cần lưu ý rằng

các đị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ý (hay địa chỉ MAC)của các trạm trên đó một mạng cục bộ (Ethernet, Token Ring) Trên mộtmạ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

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ý

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ạngcá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ìnhtrạ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 routerkhông đủ bộ nhớ đệm để lưu và chuyển một gói tin IP, Một thông báoICMP đượ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

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 trongmá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ể

Trang 17

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êucầu xuống các tầng dưới nó.

Đối với thực thể IP ở máy nguồn, khi nhận được một yêu cầu gửi từtầng trên, nó thực hiện các bước sau đây:

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

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

 Ra quyết định chọn đường: hoặc là trạm đích nằm trên cùng mạnghoặ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:

Trang 18

TCP là một giao thức "có liên kết" (connection - oriented), nghĩa là cầnphải thiết lập liên kết giữa hai thực thể TCP trước khi chúng trao đổi dữ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àocác dịch vụ của giao thức TCP thông qua một cổng (port) của TCP Số hiệucổ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ốiTCP/IP (socket) duy nhất trong liên mạng Dịch vụ TCP được cung cấpnhờ 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.Trước khi truyền dữ liệu giữa 2 trạm cần phải thiết lập một liên kết TCPgiữa chúng và khi không còn nhu cầu truyền dữ liệu thì liên kết đó sẽ đượcgiải phóng

Cấu trúc gói dữ liệu TCP:

Sequence numberAcknowledgement number

Option + Padding

Data

Cấu trúc gói tin TCP

Trang 19

 Source port(16 bits): Số hiệu cổng TCP của trạm nguồn.

 Destination port(16 bits): Số hiệu cổng TCP của trạm đích

 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ì SequenceNumber là số hiệu tuần tự khởi đầu (ISN) và byte dữ liệu đầu tiên làISN+1

 Acknowledgement 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

 Data Offset(4 bits): Số lượng bội của 32 bit (32 bit words) trong TCPheader (tham số này chỉ ra vị trí bắt đầu của nguồn dữ liệu)

 Receiver(): Dành riêng

 U: Vùng con trỏ khẩn (Ucgent Poiter) có hiệu lực

 A: Vùng báo nhận (ACK number) có hiệu lực

 P: Chức năng PUSH

 R: Khởi động lại (reset) liên kết

 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 đượcchỉ 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 đượcthiết lập

Trang 20

 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

 Padding(Độ dài thay đổi): Phần chèn thêm vào header để đảm bảophần header luôn kết thúc ở một mốc 32 bit Phần thêm này gồmtoàn số 0

 Data(Độ dài thay đổi): Chứa dữ liệu của tầng trên, có độ dài tối đangầm định là 536 byte Giá trị này có thể điều chỉnh bằng cách khaibá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ốiTCP 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ốiTCP được chia thành ba bước Mô hình dưới đây minh họa ba bước bắt taytạ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

Client

Server

SYN(INS A)

ACK(INS B +1)SYN(INS B) +ACK(INS A+1)

Trang 21

Server Gói tin này cũng gửi một giá trị khởi tạo của SequenceNumber(INS).

 Bước 2: Server nhận yêu cầu kết nối này và gửi trả lại một gói tin có

cờ SYN và cờ ACK được thiết lập để thông báo chấp nhận gói tin yêu cầukết nối Trong gói tin này, Server đặt giá trị khởi tạo Sequence Number ởtrạng thái randomly, và đặt ACKnowledgement Number bằng INS+1

 Bước 3: Khi Client nhận được gói tin chấp nhận kết nối của Server,

nó sẽ đáp trả lại một gói tin có cờ SYN và cờ ACK để thông báo choServer biết rằng nó đã nhận được gói tin chấp nhận kết nối từ Server, và đặtgiá trị ACKnowledgement Number bằng INS +1

Khi kết nối đã được xác lập, các máy tính có thể gửi dữ liệu cho nhau,

và tất cả các gói tin của hai máy tính gửi đi đều phải có cờ ACK để xácnhận đã nhận gói tin trước đó

Bốn bước bắt tay giải phóng liên kết(The four-way-handshake):

Để giải phóng một kết nối TCP đã được thiết lập, hai máy sử dụng bốnbước như sau:

 Bước 1: Client(hoặc Server) gửi một gói tin có cờ FIN được đặt, đểnói rằng quá trình gửi dữ liệu đã kết thúc, với một giá trị đúng củaSequence Number

 Bước 2: Server sau đó sẽ gửi lại một gói tin có cờ ACK được bật,xác nhận đã nhận được gói tin từ Client, với ACK number bằng Sequencenumber +1

 Bước 3: Server sẽ được xử lý để gửi đi một gói tin khác, với một giátrị Sequence number và cờ FIN được bật

 Bước 4: Để hoàn thành bốn bước bắt tay kết thúc kết nối, Client sẽgửi một gói tin có cờ ACK được bật, với ACK number bằng giá trị củaSequence number +1

Trang 22

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ìnhthường

FIN(SN)

ACK(SN+1)

FIN(SN)

ACK(SN+1)

Client

Server

Trang 23

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ửilạ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

PSH: Cờ PSH có mục đích thông báo cho máy tính thứ hai biết rằng

chuyển toàn bộ dữ liệu lên tầng trên để xử lý

3 Giao thức HTTP:

HTTP(Hyper Text Transfer Protocol) là giao thức cơ sở để vận chuyểnsiêu văn bản và là nền tảng của WWW Được công bố đầu tiên vào đầunhững năm 1990, HTTP là cơ sở đối với một trang Web đơn giản, dựa trênvăn bản(text based) của các siêu liên kết(hyper links), các thành phần vănbản có thể được mở cho phép người dùng tới một tài liệu khác nào đó ởmột nơi nào đó bên ngoài trong một siêu không gian Khái niệm này là sự

mở rộng về bản chất của giao thức Gopher và đã thu hút được khả năngsáng tạo của cả cộng đồng người sử dụng cũng như những người bán sảnphẩm

Hiện nay, công nghệ trong WWW phát triển cực kỳ nhanh chóng Cáchãng như MicroSoft, Netscape, … đang cạnh tranh quyết liệt trong việcphân chia thị trường

Trang 24

HTTP là một giao thức hiện đại hơn so với Telnet, FTP và SMTP.Nhưng cấu trúc tổng quát của HTTP là sự tiến triển logic từ công việc vànền tảng vững chắc của các giao thức trước đây.

HTTP cũng là một giao thức Client/Server, với một user agent - thường

là một trình duyệt WWW - thực hiện yêu cầu tới WWW Server Giống nhưSMTP, HTTP chỉ đơn giản là một cơ chế giao vận và không liên quan đếnnội dung thông báo Nội dung của trang Web được định nghĩa bởiHTML(Hyper Text Makeup Language) Giống như HTTP, HTML cũngđang phát triển nhanh chóng với nhiều mở rộng của người bán sản phẩmđược đưa thêm vào ngôn ngữ HTTP cơ bản dựa trên dạngRequest/Response Một Client thiết lập một kết nối với một Server và gửimột Request tới Server Trong hầu hết các cuộc giao tiếp là được khởi tạo

từ user agent và bao gồm một Request tới một tài nguyên trên vài servergốc Trong trường hợp đơn giản, chỉ có một kết nối đơn giữa useragent(UA) và server gốc Trường hợp phức tạp hơn là có nhiều đối tượngtrung 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(UniformResource Identifier) ở dạng đầy đủ, rồi viết lại tất cả hay một phần củathông điệp, rồi chuyển request được định dạng lại tới server được chỉ địnhbở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ứckhá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 servernên nhận biết được bên kia đã đóng cầu nối(kỹ thuật keep-alive) bất

Trang 25

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ớiserver

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 ứngbởi FTP và SMTP, cộng thêm thông tin văn bản

 Phần thân thực thể(entity body): dữ liệu được gửi trả lại HTTPclient Không phải tất cả các đáp ứng đều được gửi trả lại dữ liệu, do

đó, thành phần này là tuỳ chọn

Các phương pháp truyền dữ liệu:

Ta chỉ quan tâm tới hai phương pháp hay được sử dụng là phương phápGET và phương pháp POST Phương pháp GET, dữ liệu của HTTP requestđược để kèm trong URL, còn trong phương pháp POST dữ liệu của HTTPđược tách riêng không thuộc một trường nào cả(đi sau phần HTTP header),

Trang 26

nhưng vẫn sẽ phải có một số trường xác định phần thông tin này Ví dụ:Content-type(kiểu nội dung), Content-length(chiều dài của nội dung).Rõràng phương pháp GET thì đơn giản hơn, nhưng chỉ sử dụng được cho cácrequest có dữ liệu ngắn(phụ thuộc vào giới hạn chiều dài của trường URL),còn phương pháp POST thì phức tạp hơn nhưng có thể sử dụng trong cácrequest có nội dung dài Khi trình duyệt đọc một file HTML, nó sử dụngGET request để nhận dữ liệu, GET cũng được sử dụng để lấy các file hìnhảnh, âm thanh, video được nhúng trong trang HTML.

Ngoài ra còn một số phương pháp khác như HEAD, PUT,… để biết chitiết có thể tham khảo các tài liệu RFC của giao thức HTTP

HTTP Header:

Cả yêu cầu HTTP và đáp ứng HTTP sử dụng header để gửi thông tin vềthông báo HTTP Một header là một series các dòng(kết thúc bằng CRLF),mỗi dòng bao gồm tên theo sau bởi dấu “:” và dấu cách và sau đó là giá trị.Các trường có thể được sắp xếp theo một trật tự bất kỳ Một số trườngheader được sử dụng trong cả header yêu cầu và đáp ứng, trong khi một sốkhác chỉ dùng trong header yêu cầu hoặc header đáp ứng Vài trường có thểxuất hiện nhiều hơn mọt lần trong một header, ví dụ trường warning… Kếtthúc của danh sách các trường được xác định bởi hai cặp CR/LF Phần tiếpsau header có thể là dữ liệu được gửi theo kiểu POST

Một HTTP request có định dạng như sau:

Trang 27

Một HTTP Response có định dạng như sau:

Khuôn dạng URI:

Dưới đây là khuôn dạng của một URI:

http://<host>[:<port>][<path>]

Cookie:

a) Giới thiệu về Cookie:

Cookie là những phần dữ liệu có cầu trúc được chia sẻ giữa web site

và browser của người dùng Cookie được lưu trữ dưới những file dữ liệunhỏ dạng text(site dưới 4k) Chúng được các site tạo ra để lưu trữ/ truytìm /nhận biết các thông tin về người dùng đã ghé thăm site và những vùng

mà họ đi qua trong site Những thông tin này có thể bao gồm tên/ định danhngười dùng, mật khẩu, sở thích, thói quen … Cookie được brower củangười dùng chấp nhận lưu trên đĩa cứng của máy mình, không phải browernào cũng hỗ trợ cookie, ở những lần truy cập sau đến site đó, web site có

Trang 28

thể dùng lại những thông tin trong cookie(như thông tin liên quan đến việcđăng nhập vào một forum…) mà người dùng không phải làm lại thao tácđăng nhập hay phải đăng nhập lại các thông tin khác Vấn đề đặt ra là cónhiều site quản lý việc dùng các thông tin lưu trong cookie không chínhxác, kiểm tra không đầy đủ hoặc mã hoá các thông tin trong cookie còn sơ

hở giúp cho hăcker khai thác để vượt qua cánh cửa đăng nhập, đoạt quyềnđiều khiển site

b) Các thành phần của Cookie:

- Tên: Do người lập trình web site chọn.

- Domain: Tên miền từ server mà cookie được tạo ra

- Đường dẫn: Thông tin về đường dẫn ở website mà người dùng

đang xem

- Ngày hết hạn: Là thời điểm mà cookie hết hiệu lực

- Bảo mật: Nếu giá trị này được thiết lập bên trong cookie,

thông tin sẽ được mã hoá trong quá trình truyền dữ liệu giữaserver và brower

- Các giá trị khác: là những dữ liệu đặc trưng được web server

lưu trữ để nhận dạng về sau các giá trị này không chứa cáckhoảng trắng, dấu chấm, phẩy và bị giới hạn trong khoảng 4k.Cookie mà có ngày hết hạn(expiration date) được lưu trữ trong cácthư mục được chỉ dưới đây Cookie mà không có ngày hết hạn được lưu trữtrong bộ nhớ và chỉ dùng được cho các process trong đó chúng được tạo ra

Căn cứ vào đặc điểm này, người ta phân ra hai loại cookie là Persistent Cookies: cookies có ngày hết hạn, và Session Cookies: cookies không có

ngày hết hạn

Cookie-Related Headers

Có hai trường trong HTTP header liên quan đến cookie là Cookie và Cookie Set-Cookie được gửi bởi Server trong đáp ứng một

Trang 29

Set-HTTP request, nó được sử dụng tạo một cookie trên hệ thống của user.Trường cookie trong ứng dụng client trong một http request gửi tới server,nếu có cookie mà có liên kết với domain và path.

Set-Cookie có định dạng như sau:

c) Khai thác Cookie:

Ưu điểm của việc sử dụng cookie đã rõ ràng, việc lưu trữ và dùng lạicác thông tin đăng nhập sẽ giúp người dùng tiết kiệm thời gian trong việcduyệt web Tuy nhiên, bên cạnh những lợi ích của nó, cookie là một trongnhững nguyên nhân gây tiết lộ thông tin riêng tu của người dùng Nhữngngười biết tận dụng những thông tin này có thể gây nên những hậu quảnghiêm trọng Ví dụ: Một hăcker làm việc trong một ngân hàng có thể tìmcách xem thông tin trong cookie của khách hàng đó và sử dụng thông tinnày để truy cập trái phép vào accout của khách hàng đó Hoặc hacker cóthể tìm cách trộm cookie của admin một website và từ đó có thể dễ dàngchiếm được quyền điều khiển site Những brower hiện nay cho phép ngườidùng khoá cookie hoặc hỏi họ trước khi lưu lại cookie trên hệ thống Cũng

Trang 30

có nhiều phần mềm giúp người dùng quản lý tốt cookie, giúp ngăn chặnhoặc cảnh báo những nguy cơ có thể gây hại.

4 Truyền email trên Internet –giao thức POP3:

Giới thiệu hệ thống và dịch vụ email:

Email là một phương tiện truyền thông tiện lợi và nhanh chóng, rẻ tiền,được sử dụng rộng rãi trên Internet Dịch vụ email ngày nay hầu như đãcung cấp hết những nhu cầu, từ mức độ chỉ có những văn bản text đơn giảntừng bước đã tiến xa hơn có thêm những chức năng mới như: tài liệu đínhkèm, hình ảnh, âm thanh, video… Khi nhắc đến Internet thì người ta khôngthể không nói đến email Sau đây, chúng ta hãy xem xét đến một số kháiniệm về email

Các thành phần của một hệ thống Mail:

User Agent(UA): Các User Agent cho phép người sử dụng soạn thảo,

tạo ra nội dung các mail, cung cấp địa chỉ người nhận và sau đó giao cácmail cho Message Transfer Agent(MTA) để gửi mail đi Các User Agentđược hiện thực khác nhau trên các môi trường khác nhau như DOS,Windows, Macintosh hay Unix Đây chính là các chương trình Mail Client

Message Transfer Agent(MTA): Các MTA là các trạm xử lý mail giữa

các UA Mail sau khi được soạn thảo ở UA, nó được gửi xuống MTA và dichuyển từ MTA này đến MTA khác cho đến khi đến đích và được UA củangười nhận khôi phục lại Có thể xem MTA gửi là Client MTA trong khoMTA nhận là Server MTA tức là chương trình MTA có thể hoạt động ởmột trong hai chế độ: Client hoặc Server

Message Store(MS): Các MS là nơi các Message sau khi được tạo ra ở

UA có thể được lưu trữ ở đó chờ MTA đến lấy và gửi đi Đó cũng là nơicác Message sau khi được các MTA nhận về lưu trữ ở đó chờ cho đến khingười sử dụng xem Message Các UA có thể gửi(Submit) các Message cho

Ngày đăng: 19/06/2014, 20:54

HÌNH ẢNH LIÊN QUAN

Hình sau minh hoạ một số topo mạng kiểu quảng bá. - Đồ á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”
Hình sau minh hoạ một số topo mạng kiểu quảng bá (Trang 5)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w