Chương 3_K64_LTM-v3 PDF
Document Details
Uploaded by Deleted User
Tags
Summary
This document is a study guide on network protocols, specifically focusing on ICMP, SMTP, HTTP, and FTP. It details the concepts, functionalities, and some of the practical applications of these protocols.
Full Transcript
CHƯƠNG 3: MỘT SỐ GIAO THỨC DÙNG TRONG ỨNG DỤNG MẠNG 1 Nội dung § Giao thức ICMP § Giao thức SMTP § Giao thức HTTP § Giao thức FTP 2 Giao thức ICMP 3 3.1.1 Khái niệm ICMP § Giao thức Kiểm soát Thông điệp Internet (...
CHƯƠNG 3: MỘT SỐ GIAO THỨC DÙNG TRONG ỨNG DỤNG MẠNG 1 Nội dung § Giao thức ICMP § Giao thức SMTP § Giao thức HTTP § Giao thức FTP 2 Giao thức ICMP 3 3.1.1 Khái niệm ICMP § Giao thức Kiểm soát Thông điệp Internet ( Internet Control Message Protocol). § Là một giao thức tầng mạng được các thiết bị mạng sử dụng để chẩn đoán các vấn đề về giao tiếp mạng. ICMP chủ yếu được sử dụng để xác định liệu dữ liệu có đến được đích dự định một cách kịp thời hay không. § ICPM được sử dụng trên các thiết bị mạng, chẳng hạn như bộ định tuyến. Giao thức này rất quan trọng cho việc báo cáo lỗi và thử nghiệm, nhưng nó cũng có thể được sử dụng trong các cuộc tấn công từ chối dịch vụ phân tán (DDoS) § Ví dụ sử dụng ICMP là khi bạn sử dụng lệnh “ping” để kiểm tra xem một thiết bị có thể truy cập được hay không, và đo đạc thời gian mà một gói tin mất đi và trở lại (round-trip time). è Giao thức ICMP là một giao thức hỗ trợ trong bộ giao thức IP với chức năng để gửi thông báo kiểm soát và thông báo lỗi giữa các thiết bị trong mạng. ICMP thường được sử dụng trong quá trình kiểm tra kết nối, chẩn đoán sự cố, và truyền tải thông báo về các vấn đề liên quan đến giao tiếp mạng. 4 3.1.2. Các chức năng của ICMP § Kiểm tra Kết nối (Ping): ICMP được sử dụng để kiểm tra tính liên thông giữa hai thiết bị trong mạng. Lệnh ping là một ví dụ phổ biến, trong đó một thiết bị gửi gói tin ICMP đến một đích và chờ đợi phản hồi. Thời gian và trạng thái của gói tin được sử dụng để đánh giá chất lượng kết nối. § Thông báo lỗi (Error Reporting): ICMP được sử dụng để thông báo về các sự cố mạng, bao gồm việc báo cáo lỗi khi không thể gửi gói tin đến đích hoặc khi một dịch vụ không khả dụng. § Chuyển hướng (Redirect): ICMP có thể được sử dụng để chuyển hướng gói tin theo một định tuyến khác khi cần thiết. § Quảng bá (Broadcast): ICMP được sử dụng để gửi thông điệp đến tất cả các thiết bị trong mạng, chẳng hạn như khi một mạng thay đổi. § Thông tin trạng thái: ICMP có thể được sử dụng để báo cáo thông tin trạng thái của một thiết bị hoặc mạng § Ví dụ: Echo Request/Reply (được sử dụng trong lệnh “ping”), Destination Unreachable (khi một đích không thể đạt được), và Time Exceeded (khi một gói tin vượt quá thời gian cho phép). 5 3.1.3. Một số đặc điểm của ICMP § ICMP không phải là giao thức truyền tải gửi dữ liệu giữa các hệ thống. § ICMP được sử dụng bởi các routes, thiết bị trung gian hoặc máy chủ để truyền thông tin lỗi hoặc cập nhật trạng thái cho các thiết bị này. § ICMP không được sử dụng với các giao thức lớp vận chuyển nào như TCP hoặc UDP. § ICMP giao thức không kết nối, nên ICMP không cần thiết lập kết nối với thiết bị đích trước khi gửi tin nhắn. § Gói tin ICMP truyền dưới dạng datagram chứa tiêu đề IP với dữ liệu ICMP. Đây là gói tin là một dữ liệu độc lập. § Mỗi gói tin ICMP chứa một trường checksum, giúp đảm bảo tính toàn vẹn của dữ liệu của gói tin trong quá trình truyền thông. Do đó, nơi nhận sẽ xác minh và biết gói tin đã bị hỏng hay không. 6 3.1.4. Hoạt động của ICMP Trường hợp hoạt động bình thường 7 3.1.4. Hoạt động của ICMP 3.1.3. Hoạt động của giao thức ICMP Trường hợp có lỗi 8 3.1.5. Cấu trúc gói tin ICMP 9 Kiểu (Type) § Độ dài 8 bit § Ở vị trí đầu tiên của gói ICMP § Xác định loại gói tin ICMP gồm: o 0 – Echo Reply (Echo Reply) o 3 – Destination Unreachable (Không thể đạt được đích) o 8 – Echo Request (Yêu cầu Echo) o 11 – Time Exceeded (Vượt quá thời gian) o 13 – Timestamp Request (Yêu cầu Timestamp) o 14 – Timestamp Reply (Phản hồi Timestamp) o 15 – Information Request (Yêu cầu Thông tin) o 16 – Information Reply (Phản hồi Thông tin) 10 Mã (Code) § Độ dài 8 bit § Ở vị trí thứ hai của gói ICMP § Cho biết thông tin chi tiết hơn về thông tin loại lỗi, có thể có những giá trị từ 0, 1, 2, 3, 4, 5. Tuy nhiên, trường này cần kết hợp với trường type để xác định ý nghĩa § Ví dụ: o Code 1 của Type 3 là: Host Unreachable (Máy chủ không thể đạt được). o Code 1 của Type 12 là: Missing a required option (Thiếu một tùy chọn yêu cầu). o Code 2 của Type 3 là Protocol Unreachable (giao thức không hỗ trợ) o Với Type = 11 (Time Exceeded): w Code 0: TTL Exceeded in Transit (hết thời gian sống trong quá trình truyền) w Code 1: Fragment Reassembly Time Exceeded (hết thời gian khi lắp ráp gói tin phân mảnh). o Type = 5 code = 0 -> Redirect datagram for the network 11 Checksum § Độ dài 16 bit. § Đóng vai trò quan trọng trong gói tin ICMP dùng để kiểm tra xem gói tin có bị hỏng trong quá trình truyền hay không? (Kiểm tra tính toàn vẹn của thông điệp) è giúp đảm bảo rằng gói tin đã được truyền đầy đủ và không bị lỗi. § Giá trị của trường “Checksum” được tính dựa trên thuật toán kiểm tra CRC (Cyclic Redundancy Check). § Khi gói tin được gửi, trình gửi tính toán giá trị checksum bằng cách sử dụng một phép toán số học trên tất cả các bit trong gói tin, bao gồm cả trường “Checksum” ban đầu. Giá trị checksum được tính và sau đó được gán vào trường “Checksum” trong gói tin. § Khi gói tin đến đích, người nhận tính toán lại giá trị checksum bằng cách sử dụng cùng một thuật toán. Nếu giá trị checksum tính toán được khớp với giá trị trong trường “Checksum,” gói tin được coi là nguyên vẹn. Ngược lại, nếu có sự không khớp, gói tin được coi là bị hỏng và có thể bị loại bỏ hoặc xử lý tùy thuộc vào ứng dụng cụ thể. § Ví dụ tính toán checksum với 0x1234, 0x5678, 0x9ABC 12 Checksum § Ví dụ: § Giả sử tại nơi truyền có 3 từ 16-bit trong một thông báo ICMP là 0x1234, 0x5678, 0x9ABC § Bước 1: Tính tổng o 0x1234 + 0x5678 = 0x68AC o 0x68AC + 0x9ABC = 0x10368 è Bị tràn, 17 bit § Bước 2: Xử lý bit tràn bằng cách cộng bit tràn (bit thứ 17) vào kết quả o 0x0368 + 0x1 = 0x0369 § Bước 3: Lấy bổ sung 1 bằng cách đảo tất cả các bit của kết quả o 0x0369 → 0xFC96 § Kết quả checksum là 0xFC96. 13 Checksum § Ví dụ: § Giả sử tại nơi nhận gói tin nhận là 0x1234, 0x5678, 0x9ABC và trường checksum là 0xFC96 § Bước 1: Tính tổng o 0x1234 + 0x5678 = 0x68AC o 0x68AC + 0x9ABC = 0x10368 è Bị tràn, 17 bit § Bước 2: Xử lý bit tràn bằng cách cộng bit tràn (bit thứ 17) vào kết quả o 0x0368 + 0x1 = 0x0369 § Bước 3: Cộng với giá trị checksum o 0x0369 + 0xFC96 =0xFFFF è không có lỗi 14 Dữ liệu (data) § Phần cuối cùng của gói ICMP là gói dữ liệu gốc. § Bao gồm tối đa 576 byte trong IPv4, 1.280 byte trong IPv6 và bao gồm một bản sao của IP message gốc chứa lỗi. § Trường này phụ thuộc vào từng loại tin ICMP mới có. Thí dụ: trong trường hợp gói tin “Echo Request/Reply” (ping), phần dữ liệu chứa thông điệp mà người gửi muốn kiểm tra tính liên thông. è Phần dữ liệu trong ICMP thường phụ thuộc vào loại và mã thông báo. Phần này có thể chứa thông tin để chẩn đoán (Echo Request/Reply) hoặc để mô tả lỗi (Destination Unreachable, Time Exceeded, Redirect). 15 3.1.6. Các giao thức ICMP Hiện nay, có 9 loại giao thức ICMP phổ biến: § ICMP echo § ICMP Destination Unreachable § ICMP Parameter Problem § ICMP Redirect/ Change Request § ICMP Timestamp request § ICMP Information Request and Reply § ICMP Address Mask Request § ICMP Router Discovery § ICMP Source Quench 16 3.1.7. Các cuộc tấn công DDoS bằng ICMP Giao thức ICMP bị khai thác tính năng cơ bản của mình để phục vụ cho các cuộc tấn công DDoS. Mục tiêu là làm ngập hệ thống (bị tấn công) bằng lưu lượng không cần thiết. Dưới đây là các hình thức phổ biến của các cuộc tấn công DDoS sử dụng ICMP: § ICMP flood attack: hacker gửi rất nhiều gói tin yêu cầu tới một thiết bị mục tiêu. Thiết bị mục tiêu phải xử lý và trả lời từng gói tin, làm tiêu tốn tài nguyên của nó. Kết quả là thiết bị bị quá tải và không thể cung cấp dịch vụ cho người dùng § Ping of death attack: hacker gửi một gói ping có kích thước lớn hơn mức tối đa cho phép đến máy tính mục tiêu. Khi máy tính nhận gói tin này, nó sẽ cố gắng ghép lại các phần của gói tin, và kích thước quá lớn của gói tin có thể làm máy tính bị treo hoặc gặp sự cố do tràn bộ nhớ. § Smurf attack: hacker gửi một gói tin với địa chỉ IP giả mạo. Các thiết bị mạng nhận được gói tin này và gửi phản hồi đến địa chỉ IP giả, khiến nạn nhân bị ngập trong các gói tin ICMP không mong muốn. § ICMP Redirect Attack: Một cuộc tấn công dựa trên thông báo ICMP Redirect nhằm đánh lừa mục tiêu gửi dữ liệu đến một tuyến giả mạo. 17 3.1.8.. Cách phòng chống các cuộc tấn công DDoS bằng ICMP § Cấu hình tường lửa o Chặn hoặc giới hạn lưu lượng ICMP không cần thiết o Tắt các phản hồi ICMP Echo trên máy chủ nếu không cần thiết § Sử dụng hệ thống phát hiện và ngăn chặn tấn công (IDS/IPS) để phát hiện lưu lượng ICMP bất thường. § Giới hạn lưu lượng ICMP bằng cách sử dụng các quy tắc QoS (Quality of Service) § Giám sát lưu lượng: Thực hiện phân tích, theo dõi lưu lượng ICMP để phát hiện các hành vi bất thường. § Cập nhật các thiết bị mạng và hệ điều hành để vá các lỗ hổng liên quan đến ICMP. 18 3.1.9. Lập trình mạng bang giao thức ICMP § Bài tập về nhà: viết chương trình giống lệnh ping bằng C#/Java 19 Giao thức SMTP 20 3.2.1. Khái niệm SMTP § Giao thức Truyền tin thư đơn giản (Simple Mail Transfer Protocol) § SMTP là một giao thức quan trọng trong việc truyền gửi và nhận thư điện tử cho các tổ chức và cá nhân. SMTP có vai trò đơn giản hóa quá trình chuyển thư bằng cách định rõ quy trình truyền thư qua mạng. Điều này có ý nghĩa đặc biệt quan trọng đối với các tổ chức sử dụng email hàng ngày, đặc biệt là trong lĩnh vực tiếp thị trực tuyến, thường xuyên phải gửi lượng lớn email. § SMTP có những lợi ích như: Gửi thư hiệu quả, Tích hợp dễ dàng, Chuyển thư trên Internet, Quản lý thư điện tử tập trung, …. § SMTPS là giao thức Truyền tải tin đơn giản được bảo mật. Tức là, SMTPS là một phương pháp bảo mật SMTP bằng cách sử dụng bảo mật lớp truyền tải. SMTP sử dụng SSL (Lớp Cổng Bảo mật) hoặc TLS (Bảo mật Lớp Truyền tải) để thiết lập. è SMTP là một phần quan trọng trong hệ thống thư điện tử, đem lại sự linh hoạt và hiệu quả trong việc gửi/nhận thư điện tử, đặc biệt trong môi trường kinh doanh và giao tiếp trực tuyến. 21 3.2.2. Cách hoạt động của SMTP 22 3.2.3. SMTP làm việc với POP3/IMAP 23 3.2.3. SMTP làm việc với POP3/IMAP (tiếp) 24 3.2.3. SMTP làm việc với POP3/IMAP (tiếp) 25 3.2.4. Máy chủ SMTP § Về kỹ thuật thì SMTP server giống như các máy chủ thông thường khác. Điểm khác ở đây là khả năng gửi email số lượng lớn không giới hạnSMTP là một giao thức quan trọng trong việc truyền gửi và nhận thư điện tử cho các tổ chức và cá nhân. § SMTP server nó là các máy chủ chuyên dụng để gửi email số lượng lớn. Với mục đích gửi thông tin quảng cáo, marketing hoặc chăm sóc khách hàng. § Máy chủ SMTP đóng nhiệm vụ quan trọng trong việc xác thực email gửi đi có phải là tài khoản đang hoạt động không. § SMTP Server thường được cấu hình để xử lý việc gửi và nhận email. Nhiệm vụ chính của một SMTP Server là chuyển tiếp email từ máy chủ nguồn đến máy chủ đích thông qua giao thức SMTP è SMTP Server tập trung chủ yếu vào gửi, nhận và chuyển tiếp email bằng giao thức SMTP è khác với máy chủ thông thường có thể thực hiện nhiều chức năng (lưu trữ dữ liệu, chia sẻ tệp tin, cung cấp dịch vụ mạng, quản lý tài nguyên và nhiều chức năng khác tùy thuộc vào cấu hình cụ thể. ) 26 3.2.5. Hoạt động của máy chủ SMTP 27 3.2.6. Các cuộc tấn công sử dụng SMTP Tấn công mạng sử dụng giao thức SMTP sẽ nhắm vào hệ thống email bằng cách khai thác các lỗ hổng trong giao thức hoặc cấu hình mail server không an toàn. Các cuộc tấn công này có thể gây hậu quả nghiêm trọng như đánh cắp thông tin, phát tán spam, hoặc làm gián đoạn dịch vụ email. § SMTP Open Relay Exploitation: Lợi dụng kẽ hở của cấu hình email server, cấu hình không đúng như cho phép chuyển tiếp thư tự do, bị lạm dụng để gửi email spam hoặc email độc hại đến một số lượng lớn người nhận è tăng tải máy chủ, gián đoạn dịch vụ, è máy chủ mail bị đưa vào danh sách theo dõi,… § Email Spoofing: hacker giả mạo địa chỉ email gửi đi để lừa người nhận tin tưởng rằng email đến từ một nguồn đáng tin cậy như phishing dụ người dùng cung cấp thông tin nhạy cảm, phát tán phần mềm độc hại. è Người dùng bị đánh cắp thông tin cá nhân hoặc bị nhiễm mã độc, mất uy tín § Phishing Attack qua SMTP: hacker gửi email lừa đảo chứa liên kết độc hại hoặc tệp đính kèm nguy hiểm. Các email này thường giả mạo tổ chức uy tín, lãnh đạo,… để dụ dỗ người nhận è dụ user nhấp vào liên kết đến trang web giả mạo, mở tệp đính kèm chứa phần mềm độc hại. è Hệ thống bị lây nhiễm mã độc, mất thông tin đăng nhập, thẻ tín dụng, hoặc dữ liệu 28 nhạy cảm 3.2.7. Cách phòng ngừa tấn công bằng SMTP § Cấu hình máy chủ SMTP chỉ cho phép chuyển tiếp thư từ người dùng đã xác thực § Sử dụng các giao thức xác thực email như SPF, DMARC, DKIM,… § Triển khai bộ lọc email chống spam và phát hiện lừa đảo. § Sử dụng các giải pháp bảo mật email tích hợp trí tuệ nhân tạo (AI) để phân tích email khả nghi § Sử dụng các bộ lọc spam mạnh mẽ § Sử dụng mật khẩu mạnh và chính sách khóa tài khoản sau nhiều lần đăng nhập thất bại. § Sử dụng bộ lọc và hạn chế số lượng email từ cùng một nguồn § ,…… 29 3.2.8. Lập trình mạng sử dung SMTP § Ví dụ: Viết chương trình C# để gửi email, Sử dụng lớp SmtpClient (được tích hợp sẵn trong.Net framework) 30 Giao thức HTTP 31 3.3.1. Khái niệm về giao thức HTTP § HTTP là viết tắt của HyperText Transfer Protocol, là một giao thức truyền tải siêu văn bản, giúp cho các máy tính có thể giao tiếp với nhau qua mạng. HTTP là nền tảng của World Wide Web kết nối giữa máy chủ (server) và máy khách (client) trong cùng một hệ thống mạng. § HTTP là một trong các giao thức chuẩn về mạng Internet, được dùng để liên hệ thông tin giữa Máy cung cấp dịch vụ (Web server) và Máy sử dụng dịch vụ (Web client), là giao thức Client/Server dùng cho World Wide Web – WWW § HTTP cho phép tạo các yêu cầu gửi và nhận các kiểu dữ liệu, do đó cho phép xây dựng hệ thống độc lập với dữ liệu được truyển giao § Với khả năng mở rộng đa dạng, HTTP không chỉ được sử dụng để tải các tài liệu siêu văn bản, mà còn để truyền tải hình ảnh, video và thậm chí để đăng tải nội dung lên máy chủ, chẳng hạn như kết quả của các biểu mẫu HTML. Ngoài ra, HTTP cũng có thể sử dụng để tải lên các phần của trang web, giúp cập nhật nội dung theo yêu cầu. § Giao thức này hoạt động trên nền tảng TCP/IP và thường được truyền qua kết nối mã hóa TLS để bảo vệ dữ liệu è HTTPS. § HTTPS sẽ tiến hành xác minh danh tính và nhanh chóng mã hóa các thông tin trao đổi, tránh trường hợp hacker xâm nhập đánh cắp dữ liệu. 32 3.3.1. Khái niệm về giao thức HTTP 33 3.3.1. Khái niệm về giao thức HTTP 34 3.3.2. Đặc điểm của giao thức HTTP § Tính đơn giản của HTTP: Giao thúc HTTP được thiết kế để trở nên đơn giản và thân thiện è con người có thể đọc được è người dùng có thể được đọc và hiểu được, cung cấp khả năng testing hơn cho các lập trình viên và giảm thiểu độ phức tạp cho người mới tham gia. § HTTP có thể mở rộng: HTTP có tính linh hoạt rất cao. HTTP không có bất kỳ một giới hạn nào về sự nâng cấp và mở rộng. Thậm chí, chỉ cần bằng một thỏa thuận thống nhất giữa client và server là một tính năng mới của HTTP đã được hình thành. § HTTP là stateless: Mỗi yêu cầu (request) và phản hồi (response) của giao thức HTTP là độc lập và không lưu lại bất kỳ thông tin nào về các yêu cầu trước đó. Tức là, máy chủ không duy trì trạng thái hoặc thông tin liên quan đến phiên giao tiếp trước đó giữa server và client. Tuy nhiên, đặc điểm này gây ra những nhược điểm như o Không nhớ thông tin về người dùng o Tăng dữ liệu truyền tải è Khắc phục bằng cách như sử dụng Cookie, sử dụng Session trên máy chủ, …. 35 3.3.3. Các thành phần của giao thức HTTP HTTP – Requests: Là phương thức để chỉ ra hành động mong muốn được thực hiện trên tài nguyên đã xác định, một client (thường là trình duyệt) gửi yêu cầu đến máy chủ đẻ lây tài nguyên này. Cấu trúc của một HTTP Request gồm thành phần chính sau: o Request-line = Phương thức + URI–Request + Phiên bản HTTP. Giao thức HTTP định nghĩa một tập các giao thức GET, POST, HEAD, PUT... Client có thể sử dụng một trong các phương thức đó để gửi request lên server. o Request Header Fields: Thông tin thêm về yêu cầu, chẳng hạn như loại dữ liệu chấp nhận, kiểu trình duyệt (User-Agent), và các cookies. Các trường header cho phép client truyền thông tin bổ sung về yêu cầu, và về chính client, đến server. Một số trường: Accept-Charset, Accept-Encoding, Accept- Language, Authorization, Expect, From, Host, … o Thân yêu cầu (Request Body): Là phần dữ liệu thực tế gửi từ client đến server, chẳng hạn như thông tin form, tệp tin upload. 36 3.3.3. Các thành phần của giao thức HTTP Ví dụ minh hoạ của cấu trúc của một HTTP Request 37 3.3.3. Các thành phần của giao thức HTTP HTTP - Responses § Là thông tin mà máy chủ gửi lại cho máy khách sau khi nhận được yêu cầu. Cấu trúc chính của một phản hồi HTTP bao gồm: o Status Line: Cấu trúc một Status-line = Phiên bản HTTP + Mã trạng thái + Trạng thái: w Ví dụ: HTTP/1.1 200 OK o Headers: Thông tin về phản hồi, ví dụ như loại nội dung trả về (Content-Type), độ dài dữ liệu (Content-Length), hay thông tin về bộ đệm. o Body: Nội dung thực tế mà server trả về, có thể là HTML, JSON, hình ảnh, video, v.v. 38 3.3.3. Các thành phần của giao thức HTTP HTTP – Responses § Mã trạng thái HTTP cho biết kết quả của yêu cầu và phản hồi từ server. Các mã trạng thái phổ biến: o 1xx (100 -> 101): Thông tin (100 -> 101): Ví dụ 100 (Continue), …. o 2xx (200 -> 206): Thành công (Ví dụ: 200 OK, 201 Created). o 3xx (300 -> 307): Chuyển hướng (Ví dụ: 301 Moved Permanently, 302 Found). o 4xx (400 -> 417): Lỗi từ phía người dùng/client (Ví dụ: 404 Not Found, 403 Forbidden). o 5xx (500 -> 505): Lỗi từ phía máy chủ/Server (Ví dụ: 500 Internal Server Error, 502 Bad Gateway). 39 3.3.3. Các thành phần của giao thức HTTP HTTP - Responses 40 3.3.3. Các thành phần của giao thức HTTP HTTP Methods (Phương thức HTTP) 41 3.3.4. Hoạt động của HTTP 42 3.3.5. Một số lỗi thường gặp của HTTP § HTTP 404: Not Found 43 3.3.4. Một số lỗi thường gặp của HTTP § Lỗi "500 Internal Server Error” § Lỗi 502 Bad Gateway xảy ra khi máy chủ đang làm việc như một cổng, nhưng nhận được phản hồi không hợp lệ từ máy chủ phía sau. § Lỗi 504 Gateway Timeout xảy ra khi máy chủ cổng không nhận được phản hồi kịp thời từ máy chủ phía sau. § Lỗi "403 Forbidden" 44 3.3.5. Sự khác nhau giữa HTTP và HTTPS 45 3.3.6. Sự khác nhau giữa HTTP và HTTPS 46 3.3.7. Tấn công mạng sử dụng HTTP Tấn công mạng thông qua giao thức HTTP thường liên quan đến việc khai thác các lỗ hổng trong ứng dụng web hoặc máy chủ web. Dưới đây là một số phương pháp phổ biến mà kẻ tấn công có thể sử dụng: § Tấn công từ chối dịch vụ (DoS/DDoS): có mục tiêu là làm cho máy chủ hoặc dịch vụ không khả dụng § Cross-Site Scripting (XSS) có mục tiêu là chèn mã JavaScript độc hại vào trang web để đánh cắp thông tin hoặc điều khiển trình duyệt của người dùng § Tấn công SQL Injection qua HTTP sử dụng lỗ hổng của câu SQL § Phishing qua HTTP thực hiện tạo một trang web giả mạo qua HTTP và lừa người dùng nhập thông tin 47 Giao thức FTP 48 3.4.1. Khái niệm giao thức FTP § FTP (File Transfer Protocol) là giao thức truyền tải tập tin. FTP được dùng trong việc trao đổi dữ liệu trong mạng thông qua giao thức TCP/IP. FTP thường hoạt động trên 2 cổng là 20 và 21. § Khi dùng giao thức FTP, các máy client trong mạng có thể truy cập đến máy chủ FTP để gửi hoặc lấy dữ liệu. Điểm nổi bật là người dùng có thể truy cập vào máy chủ FTP để truyền và nhận dữ liệu dù đang ở xa è FTP thường được sử dụng để tải lên hoặc tải xuống các tệp tin, quản lý website và sao lưu dữ liệu từ xa. § FTP cũng hỗ trợ truyền tải dữ liệu web lên máy chủ web, ngay cả khi máy chủ đặt ở một khoảng cách xa, giúp quá trình quản lý và cập nhật nội dung trên trang web trở nên thuận tiện và hiệu quả. § FTP và có thể chia sẻ dữ liệu qua lại giữa các máy tính ở các chi nhánh văn phòng hoặc các địa điểm khác nhau § FTP hỗ trợ nhân viên quản trị web chuyển đổi các trang con và gửi các tập tin ứng dụng cũng như media đến máy chủ website của doanh nghiệp è FTP là một giao thức máy tính được sử dụng để truyền dẫn dữ liệu qua mạng Internet và mạng TCP. Dữ liệu được lưu trữ dưới nhiều dạng khác nhau, bao gồm văn bản, hình ảnh, âm thanh, và video. Với từng loại dữ liệu này, cần áp dụng các phương thức truyền tải phù hợp. 49 3.4.2. Hoạt động của giao thức FTP 50 3.4.2. Hoạt động của giao thức FTP § Giao thức FTP hoạt động dựa trên mô hình cơ bản của việc truyền và nhận dữ liệu từ máy Client đến máy Server. Quá trình truyền nhận dữ liệu giữa máy Client và Server lại được tạo nên từ 2 tiến trình TCP logic là Control Connection và Data Connection. o Control Connection: Đây là phiên làm việc TCP logic đầu tiên được tạo ra khi quá trình truyền dữ liệu bắt đầu. Tuy nhiên, tiến trình này chỉ kiểm soát các thông tin điều khiển đi qua nó, không được sử dụng để gửi dữ liệu. Ví dụ như các tập lệnh. Quá trình này sẽ được duy trì trong suốt quá trình phiên làm việc diễn ra. o Data Connection: Đây là một kết nối dữ liệu TCP được tạo ra với mục đích chuyên biệt là truyền tải dữ liệu giữa máy Client và máy Server. Kết nối sẽ tự động ngắt khi quá trình truyền tải dữ liệu hoàn tất. § Sự phân chia thành 2 kênh riêng biệt này tạo ra sự linh động trong cách hoạt động của FTP nhưng nó cũng tạo ra sự phức tạp cho FTP. § Trong quá trình hoạt động, giao thức FTP cho phép truyền và nhận nhiều tập tin cùng một lúc, chuyển tệp tin một cách tự động nếu mất kết nối, và cũng cho phép thêm dữ liệu vào khung chờ và lên lịch truyền. 51 3.4.2. Hoạt động của giao thức FTP § Do chức năng điều khiển và dữ liệu được truyền tải bằng cách sử dụng các kênh riêng biệt nên mô hình FTP chia phần mềm trên mỗi thiết bị thành 2 thành phần giao thức logic chịu trách nhiệm cho mỗi kênh: o Thành phần protocol interpreter (PI): Là thành phần quản lý kênh điều khiển, phát và nhận lệnh và trả lời. o Thành phần data transfer process (DTP): chịu trách nhiệm gửi và nhận dữ liệu giữa client và server. § Ngoài hai thành phần trên, tiến trình bên phía người dùng còn có 1 thành phần thứ ba là giao diện người dùng (user interface) dùng để tương tác với người dùng FTP, thành phần này không có ở phía sever. § Như vậy, có hai thành phần trong tiến trình bên phía server và ba thành phần trong tiến trình bên phía client. 52 3.4.2. Hoạt động của giao thức FTP 53 3.4.2. Hoạt động của giao thức FTP Các tiến trình bên phía server § Server Protocol Interpreter (Server-PI): chịu trách nhiệm quản lý điều khiển kết nối trên server. Nó lắng nghe yêu cầu kết nối hướng từ users trên cổng dành riêng. Khi kết nối đã được thiết lập,nó nhận lện từ User-PI, gửi trả lời lại và quản lí tiến trình truyền dữ liệu trên server. § Server Data Transfer Process (Server-DTP): Làm nhiệm vụ gửi hoặc nhận file từ bộ phận User-DTP. Server DTP vừa làm nhiệm vụ thiết lập kết nối kênh dữ liệu và lắng nghe một kết nối kênh dữ liệu từ user. Nó tương tác với server file trên hệ thống cục bộ để đọc và chép file. Các tiến trình bên phía Client § User Interface: Đây là chương trình được chạy trên máy tính,nó cung cấp giao diện xử lí cho người dùng. Nó cho phép sử dụng các lệnh đơn giản hướng tới người dùng, và cho phép người điều khiển phiên FTP theo dõi được các thông tin và kết quả xảy ra trong tiến trình. 54 3.4.2. Hoạt động của giao thức FTP Các tiến trình bên phía Client § User Interface: Đây là chương trình được chạy trên máy tính,nó cung cấp giao diện xử lí cho người dùng. Nó cho phép sử dụng các lệnh đơn giản hướng tới người dùng, và cho phép người điều khiển phiên FTP theo dõi được các thông tin và kết quả xảy ra trong tiến trình. § User Protocol Interpreter (User-PI): Chịu trách nhiệm quản lý kênh điều khiển phía Client. Nó khởi tạo phiên kết nối FTP bằng việc phát hiện ra yêu cầu tới phía server-PI. Khi kết nối đã được thiết lập, nó xử lí các lệnh nhận được trên giao diện người dùng, gửi chúng tới Server- PI, và nhận phản hồi trở lại. Nó cũng quản lý tiến trình User-DTP. § User Data Transfer Process (User-DTP): là bộ phận DTP nằm ở phía người dùng, làm nhiệm vụ gửi hoặc nhận dữ liệu từ Server-DTP. User-DTP có thể thiết lập hoặc lắng nghe yêu cầu kết nối kênh dữ liệu trên server. Nó tương tác với thiết bị lưu trữ file phía client. 55 3.4.3. Các phương thức truyền của giao thức FTP § Block mode: Đây là phương thức truyền dữ liệu có tính chuẩn hơn. Các tập tin dữ liệu cần chuyển đi được phân chia thành nhiều phần nhỏ và đóng gói thành các FTP blocks. Mỗi block chứa thông tin về khối dữ liệu đang được gửi. Chia nhỏ tập tin giúp truyền tải nhanh chóng, an toàn và đáng tin cậy è Dữ liệu được truyền tải chính xác, giảm nhiễu dữ liệu. § Stream mode: Phương thức này dựa vào tính tin cậy của giao thức TCP trong việc truyền dữ liệu. Phương thức Stream Mode là cơ chế truyền dữ liệu dạng header đơn giản, vẫn đảm bảo hiệu quả và tin cậy. Quá trình truyền tải dữ liệu theo Stream mode bắt đầu khi kết nối được thiết lập và kết thúc khi kết nối bị ngắt. § Compressed mode: Đây là phương thức truyền sử dụng kỹ thuật nén dữ liệu đơn giản là “run-length encoding”. Với thuật toán này, cần lọc các đoạn dữ liệu bị lặp và loại bỏ để giảm chiều dài của thông điệp trước khi gửi đi. Thay vì truyền tải theo cách thông thường, Compressed mode giúp nén các tập tin lớn trước khi chuyển đi, đơn giản hóa quá trình truyền tải. Phương thức Compressed mode là một trong ba phương thức truyền dữ liệu quan trọng của FTP. Thường được áp dụng khi tập tin cần chuyển đi hoặc tải về có dung lượng lớn. 56 3.4.4. Trình tự truy cập và chứng thực FTP § Quy luật chứng thực FTP khá đơn giản, chỉ là cung cấp username/password để đăng nhập. Quy trình này được thể hiện trong hình sau 57 3.4.4. Trình tự truy cập và chứng thực FTP § Trình tự của việc chứng thực như sau: o Người dùng gửi một username từ User-PI tới Server-PI bằng lệnh USER. Sau đó password của người dùng được gửi đi bằng lệnh PASS. o Server kiểm tra tên người dùng và password trong database người dùng của nó. Nếu người dùng hợp lệ, server sẽ gửi trả lời một thông báo tới người dùng rằng phiên làm việc đã được mở. Nếu người dùng không hợp lệ, server yêu cầu người dùng thực hiện lại việc chứng thực. Sau này số lần chứng thực sai nhất định, server sẽ ngắt kết nối. § Khi quá trình chứng thực đã thành công, server sau đó sẽ thiết lập kết nối để cho phép từng loại truy cập đối với người dùng được cấp quyền. Một số người dùng chỉ có thể truy cập vào một số file nhất định hoặc vào một số loại file nhất định. Một số server có thể cấp quyền cho một số người cụ thể dùng đọc và viết lên server, trong khi những người khác chỉ có thể lấy các tập tin. Người quản trị mạng có thể nhờ đó mà đáp ứng đúng các nhu cầu truy cập FTP. 58 3.4.5. Ưu và nhược điểm của giao thức FTP Ưu điểm § Cho phép truyền nhiều tin cùng 1 lúc. § Cho phép chuyển tệp tin nếu không may mất kết nối. § Tự động chuyển tập tin bằng các Script. § Cho phép thêm dữ liệu vào khung chờ, và lên lịch truyền. § Khả năng đồng bộ hoá tệp tin. Nhược điểm § Khả năng bảo mật kém. § Không phù hợp cho các tổ chức, do yêu cầu phải tạo cổng kết nối khi truyền. § Máy chủ có khả năng bị qua mặt, gửi thông tin đến các cổng ngẫu nhiên. 59 3.4.6. Lập trình mạng sử dụng giao thức FTP Xây dựng chương trình truyền nhận file bằng giao thức FTP 60 3.4.6. Lập trình mạng sử dụng giao thức FTP Xây dựng chương trình truyền nhận file bằng giao thức FTP 61