Tìm hiểu chi tiết về FTP, FTPS, SFTP: So sánh và cách thức hoạt động

Phân biệt rõ ràng FTP, FTPS, SFTP. Tìm hiểu về cơ chế hoạt động, mức độ bảo mật và chọn giao thức truyền tải file an toàn và tối ưu nhất.

Trường đại học

Học viện Kỹ thuật Mật mã

Chuyên ngành

Cơ sở An toàn Thông tin

Người đăng

Ẩn danh

Thể loại

Báo cáo môn học

2024

70
0
0

Phí lưu trữ

30 Point

Tóm tắt

I. FTP Giao thức truyền tệp cơ bản

FTP (File Transfer Protocol) là giao thức truyền tệp truyền thống được phát triển từ năm 1971. Đây là nền tảng cho hầu hết các dịch vụ chia sẻ tệp trên internet. FTP hoạt động dựa trên mô hình client-server, cho phép người dùng tải và tải xuống tệp từ máy chủ từ xa. Tuy nhiên, FTP không mã hóa dữ liệu truyền tải, khiến thông tin đăng nhập và tệp tin dễ bị xâm phạm bởi các cuộc tấn công man-in-the-middle.

1.1. Ưu điểm và hạn chế của FTP

FTP cung cấp tốc độ truyền tệp nhanh và hỗ trợ rộng rãi trên các nền tảng khác nhau. Tuy nhiên, nhược điểm chính là thiếu bảo mật. Mật khẩu được truyền dưới dạng văn bản rõ ràng, làm cho hệ thống dễ bị tấn công. Do đó, FTP không nên được sử dụng cho các giao dịch nhạy cảm hoặc dữ liệu quan trọng.

II. FTPS FTP với lớp bảo mật SSL TLS

FTPS (FTP Secure) là phiên bản nâng cấp của FTP, tích hợp mã hóa SSL/TLS để bảo vệ dữ liệu. Giao thức này giữ cấu trúc cơ bản của FTP nhưng thêm một lớp bảo mật mạnh mẽ. FTPS cho phép mã hóa cả kênh điều khiển lẫn kênh dữ liệu, đảm bảo rằng thông tin nhạy cảm không thể bị đánh cắp dễ dàng. Có hai chế độ FTPS: Implicit (mã hóa ngay từ đầu) và Explicit (nâng cấp kết nối sau khi kết nối).

2.1. So sánh Implicit và Explicit FTPS

Implicit FTPS tự động mã hóa từ lúc kết nối, an toàn hơn nhưng ít linh hoạt. Explicit FTPS cho phép kết nối ban đầu không mã hóa, sau đó nâng cấp nếu cần, tuy nhiên dễ bị tấn công downgrade. Cả hai phương thức đều sử dụng chứng chỉ số để xác thực máy chủ, tăng độ tin cậy của kết nối.

III. SFTP Giao thức SSH an toàn nhất

SFTP (SSH File Transfer Protocol) là giao thức truyền tệp an toàn sử dụng SSH (Secure Shell) làm nền tảng. Không giống FTP hay FTPS, SFTP truyền toàn bộ dữ liệu qua một kênh SSH được mã hóa duy nhất, loại bỏ rủi ro của kênh dữ liệu không được bảo vệ. Giao thức này sử dụng xác thực khóa công khai, cung cấp bảo mật vượt trội. SFTP cũng hỗ trợ các tính năng nâng cao như nén dữ liệu và quản lý quyền truy cập chi tiết.

3.1. Tính năng bảo mật của SFTP

SFTP cung cấp mã hóa end-to-end cho tất cả dữ liệu truyền tải, bao gồm tên tệp và cấu trúc thư mục. Xác thực khóa công khai giảm thiểu rủi ro tấn công brute force. SFTP cũng hỗ trợ chế độ batch processing và automation, giúp tích hợp vào các hệ thống phức tạp một cách an toàn.

IV. So sánh và khuyến nghị sử dụng

Khi so sánh ba giao thức, SFTP là lựa chọn an toàn nhất cho các ứng dụng yêu cầu bảo mật cao. FTPS cung cấp mức độ bảo mật tốt nếu SFTP không khả dụng. FTP chỉ phù hợp cho các tình huống không nhạy cảm trong mạng nội bộ. Hầu hết các công ty hiện đại ưu tiên SFTP cho dịch vụ trao đổi tệp với bên ngoài. Các nhà cung cấp hosting hàng đầu đều hỗ trợ SFTP như tiêu chuẩn mặc định.

4.1. Lựa chọn giao thức phù hợp cho nhu cầu của bạn

Chọn SFTP nếu bảo mật là ưu tiên hàng đầu. FTPS thích hợp cho các tổ chức cần tương thích ngược với hệ thống cũ. FTP chỉ dùng trong môi trường nội bộ đáng tin cậy. Xem xét yêu cầu công nghệ, khả năng hỗ trợ của nhà cung cấp, và tiêu chuẩn bảo mật của ngành để đưa ra quyết định tốt nhất.

18/12/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1: TỔNG QUAN VỀ GIAO THỨC FTP, FTPS VÀ SFTP 1. Tổng quan về giao thức FTP 1. Giới thiệu FTP viết tắt từ File Transfer Protocol, là một giao thức truyền tải tệp tin từ máy tính này đến máy tính khác thông qua một mạng TCP hoặc qua mạng Internet. Nhờ vào giao thức này nên người sử dụng có thể tải dữ liệu như hình ảnh, văn bản, các tệp tin nhạc, video.

từ máy tính của mình lên máy chủ đang đặt ở một nơi khác hoặc tải các tệp tin đã có trên máy chủ về máy tính cá nhân một cách dễ dàng. FTP là giao thức dùng để truyền tải dữ liệu web lên máy chủ web cho dù máy chủ đặt rất xa. Giao thức FTP được sử dụng nhiều nhất vào mục đích truyền tải dữ liệu, rút gọn thời gian cũng như đáp ứng nhu cầu của việc tải và truyền đi của các dữ liệu dung lượng lớn một cách nhanh chóng. Có thể gửi đi và nhận những tệp tin có dung lượng lên đến vài trăm MB.

Điều quan trọng là có thể cùng lúc thực hiện việc upload/download nhiều tệp tin để tiết kiệm thời gian. Hoạt động của FTP dựa trên mô hình Client- Server, trong đó một máy tính cung cấp dịch vụ FTP và lắng nghe yêu cầu về dịch vụ của các máy tính khác trên mạng lưới, gọi là máy chủ FTP. Máy khách chạy phần mềm FTP dành cho người dùng sử dụng dịch vụ chủ động liên kết với máy chủ. Một khi hai máy tính kết nối với nhau, máy khách có thể xử lý một số thao tác về tập tin, như tải tập tin lên máy chủ, tải tập tin từ máy chủ xuống máy của mình, đổi tên của tập tin hoặc xóa tập tin ở máy chủ,.

Giao thức FTP sử dụng hai kênh riêng biệt - kênh điều khiển và kênh dữ liệu - để trao đổi các tệp. Cách thức hoạt động 1. Mô hình hoạt động Không giống như các ứng dụng khác sử dụng kết nối TCP, FTP không chỉ cần một kết nối TCP mà các mô hình FTP được thiết kế xung quanh hai kênh logic trong 1 quá trình giao tiếp giữa FTP client và FTP server, đó là Control connection và Data connection: • Control connection (kết nối điều khiển): sử dụng port 21 trên server, đây là kết nối TCP logic chính được tạo ra khi phiên làm việc bắt đầu. Nó được duy trì trong suốt phiên làm việc và chỉ cho các thông tin điều khiển đi qua như các lệnh và các phản hồi.

Nó không được dùng để truyền tập tin. • Data connection (kết nối dữ liệu): sử dụng port 20 trên server, mỗi khi dữ liệu được gửi từ server tới client hoặc ngược lại, một kết nối dữ liệu TCP riêng biệt được thiết lập giữa chúng. Dữ liệu được truyền qua kết nối này, do đó nó được gọi là kênh dữ liệu. Khi hoàn tất việc truyền dữ liệu, kết nối được hủy bỏ.

Kết nối TCP trong 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 mỗi thiết bị thành hai phần giao thức logic chịu trách nhiệm cho mỗi kết nối ở trên: • Protocol Interpreter (PI): chịu trách nhiệm quản lý kết nối điều khiển, phát và nhận lệnh cũng như phản hồi. • Data Transfer Process (DTP): chịu trách nhiệm gửi và nhận dữ liệu giữa máy khách và máy chủ. Ngoài hai thành phần trên, tiến trình bên phía người dùng còn có một 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 server. Dưới đây là mô hình hoạt động của FTP: 2 Hình 1.

Mô hình hoạt động của giao thức FTP Chức năng từng phần trong mô hình 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ý kết nối điều khiển trên server. Nó lắng nghe yêu cầu kết nối hướng từ người dùng trên cổng 21. Khi kết nối được thiết lập, nó nhận lệnh từ User-PI, gửi phản hồi và quản lý tiến trình truyền dữ liệu trên server. • Server Data Transfer Process (Server-DTP): chịu trách nhiệm nhận tập tin từ User-DTP hoặc gửi tập tin tới User-DTP.

Server-DTP vừa làm nhiệm vụ thiết lập kết nối dữ liệu và lắng nghe kết nối dữ liệu của người dùng thông qua cổng 20. Nó tương tác với Server File System trên hệ thống cục bộ để đọc và ghi 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, chỉ có trên phía client. Nó cho phép người dùng sử dụng những lệnh đơn giản để điều khiển các phiên FTP, từ đó có thể theo dõi được các thông tin và kết quả xảy ra trong quá trình.

3 • User Protocol Interpreter (User-PI): chịu trách nhiệm quản lý kết nối điều khiển phía client. Nó khởi tạo phiên kết nối FTP bằng việc gửi yêu cầu tới Server-PI. Sau khi kết nối được thiết lập, nó xử lí các lệnh nhận được trên User Interface, gửi chúng tới Server-PI rồi đợi 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): có nhiệm vụ nhận tập tin từ User- DTP hoặc gửi tập tin tới User-DTP. User-DTP có thể thiết lập hoặc lắng nghe kết nối dữ liệu từ server thông qua cổng 20. Nó tương tác với hệ thống lưu trữ tệp tin phía client. Thiết lập kênh điều khiển và chứng thực người dùng trong FTP Trước khi kết nối được sử dụng để thực sự truyền file, kênh điều khiển cần phải được thiết lập.

Như trong các giao thức client - server khác, FTP server tuân theo chế độ passive trong kênh điều khiển. Phía server sẽ lắng nghe cổng TCP dành riêng cho kết nối FTP là cổng 21. Phía client sẽ tạo kết nối bằng việc mở một kết nối TCP từ thiết bị người dùng tới server trên cổng đó. Khi TCP đã được cài đặt xong, kênh điều khiển giữa các thiết bị sẽ được thiết lập, cho phép các lệnh được thực hiện truyền từ client tới server, và server sẽ đáp trả kết quả là các mã phản hồi.

Bước đầu tiên sau khi kênh điều khiển đã đi vào hoạt động là bước xác thực người dùng hay còn được gọi là trình tự đăng nhập (login sequence). Bước này có hai mục đích: • Access Control (Điều khiển truy cập): quá trình chứng thực cho phép hạn chế truy cập tới server với những người dùng nhất định. Nó cũng cho phép server điều khiển loại truy cập như thế nào đối với từng người dùng. • Resource Selection (Chọn nguồn cung cấp): bằng việc nhận dạng người dùng tạo kết nối, FTP server có thể đưa ra quyết định sẽ cung cấp những nguồn nào cho người dùng đã được nhận dạng đó.

Quy luật chứng thực FTP khá đơn giản, người dùng chỉ cần cung cấp username và password để đăng nhập. Trình tự của việc chứng thực như sau: 4 Hình 1. Quy trình chứng thực người dùng • Người dùng gửi một username tới server bằng lệnh USER. Sau đó password của người dùng được gửi đi bằng lệnh PASS.

• Server kiểm tra username 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 số lần chứng thực sai nhất định, phiên sẽ được đóng và server sẽ ngắt kết nối.

Giả sử 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. Truyền tải dữ liệu Kênh điều khiển được tạo ra giữa server và client sử dụng quá trình thiết lập kết nối và chứng thực được duy trì trong suốt phiên kết nối FTP. Các lệnh và các phản hồi được trao đổi qua kênh điều khiển, nhưng dữ liệu thì không.

Mỗi khi cần gửi dữ liệu giữa các server và client, một kênh dữ liệu phải được tạo ra. Kết nối này 5 cần thiết cho cả hoạt động truyền tập tin trực tiếp (gửi hoặc nhận một tập tin) cũng như đối với việc truyền dữ liệu ngầm, như là yêu cầu một danh sách các tệp trong thư mục nào đó trên server. FTP chỉ định hai phương thức khác nhau để tạo ra kênh dữ liệu. a) Kết nối dữ liệu dạng chủ động - Normal (Active) Data Connections Trong chế độ truyền chủ động, client sẽ đưa ra yêu cầu phiên kết nối từ port cao (>1024) đến port 21 của server bằng lệnh PORT Hình 1.

Kết nối dữ liệu dạng chủ động • Ngay sau khi nhận được yêu cầu này, server sẽ đáp trả lại một ACK đến client. Đồng thời, client cũng sẽ lắng nghe trên một port cao nào đó, chờ đợi tín hiệu đến từ server. • Sau khi đã thiết lập kết nối, server sẽ dùng port 20 của nó để truyền dữ liệu đến một port cao khác đang lắng nghe trên client. Trong phương thức kết nối này, phía client có khả năng không nhận được dữ liệu gửi từ phía server do tường lửa chặn các kết nối đến từ bên ngoài, bao gồm cả các kết nối được khởi tạo từ phía FTP server.

Việc cấu hình lại tường lửa hay mở kết nối đem lại nhiều rủi ro bảo mật cho client. 6 b) Kết nối dữ liệu dạng bị động - Passive Data Connections Với vấn đề firewall ở chế độ active nên đã xuất hiện chế độ truyền dữ liệu thứ hai trong FTP là Passive Data Connections. Kết nối dữ liệu dạng bị động • Tại chế độ truyền bị động thì client sẽ đưa ra lệnh, trong cả hai lần kết nối (do FTP cần hai kết nối TCP) thì client đều chủ động đưa ra kết nối, điều này khắc phục tình trạng firewall ở trên. • Khi khởi tạo kết nối, client sẽ đồng thời tạo ra hai port cao.

Port đầu tiên dùng để kết nối đến port 21 của server, và port thứ hai sẽ dùng để vận chuyển dữ liệu. • Port thứ nhất sẽ liên lạc với server qua port 21 bằng lệnh PASV để nói cho server biết rằng đây là chế độ truyền bị động. Khi biết đây là chế độ truyền bị động thì server sẽ lắng nghe trên một port cao, không phải port 20 và sẽ trả lại 7 thông tin cho client biết rằng đang lắng nghe ở port nào. Sau khi đã biết port lắng nghe tại server, client sẽ dùng port cao thứ hai để kết nối đến port cao mới được tạo ra tại server, server sẽ đáp trả lại bằng một ACK để chấp nhận.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ