Tin tức và phân tích của tất cả các thiết bị di động

Hiểu SFTP so với FTPS so với FTP

FTP hoặc Giao thức truyền tệp là một trong những phương thức truyền dữ liệu phổ biến nhất hiện có cho các ứng dụng khác nhau.

FTP có sẵn các biến thể bảo mật khác nhau, được gọi là FTPS và SFTP, chứa một số khác biệt tinh tế và không quá tinh tế trong cách chúng hoạt động. Những khác biệt này liên quan đến cách trao đổi dữ liệu, mức độ và loại bảo mật liên lạc cũng như các vấn đề về tường lửa.

Biết cách thức hoạt động của các giao thức này và sự khác biệt giữa các cơ chế truyền thông thường này có thể giúp bạn chọn giao thức phù hợp nhất với nhu cầu của mình.

FTP

FTP là một giao thức truyền tệp đã tồn tại hàng chục năm, ban đầu được đề xuất trong RFC 114. Sau đó, giao thức này được phát triển thành RFC 959, là tiêu chuẩn được sử dụng ngày nay.

FTP hoạt động trên hai kênh để trao đổi thông tin: một dành cho các lệnh và một dành cho dữ liệu. Điều này yêu cầu hai cổng cho hoạt động của FTP – kênh lệnh và kênh dữ liệu.

Kênh lệnh chạy trên cổng 21, cổng này chấp nhận các kết nối từ máy khách và xử lý chuyển tiếp lệnh. Kênh lệnh vẫn mở trong suốt thời gian của phiên FTP cho đến khi máy khách gửi lệnh QUIT hoặc máy chủ buộc ngắt kết nối do không hoạt động hoặc bất kỳ lý do nào khác có thể xảy ra.

Kênh dữ liệu sử dụng cổng nghe yêu cầu tạm thời trên máy chủ (chế độ thụ động) hoặc máy khách (chế độ hoạt động). Kênh này chịu trách nhiệm chia sẻ dữ liệu thực tế giữa máy chủ và máy khách dưới dạng danh sách thư mục và truyền tệp.

Không giống như kênh lệnh, kênh dữ liệu chỉ mở trong suốt thời gian truyền tệp và đóng ngay khi quá trình truyền kết thúc. Cần có nhiều cổng kênh dữ liệu để truyền đồng thời nhiều tệp hoặc danh sách thư mục.

FTP vốn dĩ là một giao thức không an toàn vì cả kênh lệnh và kênh dữ liệu đều truyền thông tin ở dạng không được mã hóa nên dễ dàng bị chặn bởi bất kỳ ai sử dụng các cuộc tấn công trung gian.

Như đã đề cập trước đó, FTP yêu cầu kết nối đến trên cổng 21/tcp ở phía máy chủ cho kênh lệnh. Phạm vi cổng thụ động được xác định để truyền tệp và danh sách thư mục và cho phép các kết nối đến. Quá trình xác định này có thể khác nhau tùy thuộc vào máy chủ FTP mà bạn đang sử dụng. Thông tin thêm có thể được tìm thấy trong tài liệu của nó. Về phía máy khách, phải cho phép kết nối đi trên cổng 21/tcp cùng với phạm vi cổng thụ động được xác định trên máy chủ.

xác thực FTP

Thông tin xác thực FTP được chuyển qua kênh lệnh trong quá trình kết nối ban đầu. FTP có thể sử dụng tên người dùng và mật khẩu để xác thực hoặc có thể ẩn danh để cho phép mọi người đăng nhập và truy cập máy chủ.

Chế độ FTP chủ động và thụ động

FTP sử dụng chế độ chủ động hoặc bị động để cấu hình các kết nối.

Ở chế độ hoạt động, người dùng kết nối từ cổng máy khách FTP ngẫu nhiên đến cổng FTP 21/tcp trên máy chủ và gửi lệnh PORT chỉ định cổng máy khách mà máy chủ sẽ kết nối. Cổng này sẽ được sử dụng cho kênh dữ liệu.

Sau đó, máy chủ kết nối từ cổng 20/tcp với cổng máy khách đã được máy khách chỉ định trước đó bằng lệnh PORT. Kênh dữ liệu này sau đó được sử dụng để truyền tệp giữa máy chủ và máy khách.

Ở chế độ thụ động, máy khách kết nối từ một cổng ngẫu nhiên từ máy khách FTP đến cổng 21/tcp trên máy chủ và gửi lệnh PASV. Sau đó, máy chủ sẽ trả lời bằng một cổng ngẫu nhiên sẽ được sử dụng cho kênh dữ liệu. Sau đó, máy khách sử dụng một cổng ngẫu nhiên khác để kết nối với cổng mà máy chủ đã phản hồi ở bước trước đó. Kết nối kênh dữ liệu này sau đó được sử dụng để truyền tệp giữa máy chủ và máy khách.

Do đó, trong chế độ hoạt động, yêu cầu kết nối ban đầu được thực hiện bởi máy khách trong khi yêu cầu kết nối kênh dữ liệu được thực hiện bởi máy chủ.

Mặt khác, ở chế độ thụ động, cả yêu cầu kết nối ban đầu và yêu cầu kênh dữ liệu tiếp theo đều được khởi tạo bởi máy khách đến máy chủ. Sự khác biệt tinh tế này đôi khi ảnh hưởng đến cách tường lửa cho phép hoặc chặn các yêu cầu FTP truyền thống do hướng của loại kết nối đến/đi.

FTPS

Ngay cả khi bạn sẵn sàng chấp nhận rủi ro FTP với việc truyền dữ liệu không được mã hóa và các cuộc tấn công chính ở giữa, các yêu cầu của ngành buộc bạn phải sử dụng các giải pháp thay thế an toàn hơn như FTPS và SFTP tương đối an toàn hơn nhiều.

Năm 1990, với bối cảnh bảo mật thay đổi, Netscape đã tạo giao thức SSL hoặc Lớp cổng bảo mật (SSL, hiện được gọi là TLS) để bảo vệ truyền thông mạng. SSL đã được áp dụng cho FTP đã trở thành FTPS hoặc Giao thức truyền tệp an toàn. FTPS hoặc FTP/S thường chạy trên cổng 990/tcp nhưng cũng có thể thấy chạy trên cổng 21/tcp. Tương tự, đối với kênh dữ liệu, cổng 989/tcp là cổng phổ biến được sử dụng bởi FTPS. Nếu cổng lệnh là 21/tcp, thì cổng dữ liệu của nó phải là 20/tcp.

Giống như FTP, FTPS sử dụng hai kênh để liên lạc: kênh lệnh và kênh dữ liệu. Kênh dữ liệu có thể được mã hóa bằng FTPS hoặc cả kênh lệnh và kênh dữ liệu đều có thể được mã hóa để tăng cường bảo mật.

FTPS, giống như FTP, cũng sử dụng nhiều cổng cho các kênh lệnh và dữ liệu. Do đó, cổng 21/tcp được sử dụng cho kết nối ban đầu và truyền thông tin xác thực. Sau đó, các cổng khác nhau sẽ cần thiết để định cấu hình các kênh dữ liệu cho mỗi lần truyền tệp hoặc yêu cầu danh sách thư mục từ máy khách. Vì vậy, giống như FTP, nó yêu cầu quyền truy cập vào một loạt cổng trong tường lửa.

xác thực FTPS

Xác thực cho FTPS hoạt động bằng tên người dùng và mật khẩu cùng với chứng chỉ máy chủ để mã hóa. Khi máy khách FTPS kết nối với máy chủ, nó sẽ kiểm tra xem chứng chỉ của máy chủ có đáng tin cậy để tiếp tục kết nối hay không. Chứng chỉ này có thể được yêu cầu từ máy khách và máy chủ.

SFTP

Không giống như FTP và FTPS, SFTP (Giao thức truyền tệp SSH) là một giao thức hoàn toàn khác được xây dựng trên SSH (hoặc Secure Shell). SFTP chạy trên cổng 22/tcp theo mặc định, giống như SSH, mặc dù nó có thể được cấu hình để sử dụng một cổng miễn phí tùy chỉnh trên máy chủ.

SFTP là một giao thức FTP an toàn sử dụng SSH bên dưới để gửi và nhận tệp. SSH được mã hóa hoàn toàn, SFTP là một phương pháp mạnh mẽ và an toàn để truyền tệp qua mạng.

SFTP, không giống như FTP và FTPS, sử dụng một kênh giao tiếp duy nhất cho các lệnh và lưu lượng dữ liệu, tất cả đều được mã hóa cùng với xác thực trước.

xác thực SFTP

Xác thực trong SFTP có thể được thực hiện bằng tên người dùng và mật khẩu đơn giản, nhưng không giống như FTP, tất cả thông tin, bao gồm thông tin đăng nhập, được gửi được mã hóa qua mạng.

SFTP cũng hỗ trợ xác thực bằng cặp khóa SSH, kết hợp giữa khóa riêng và khóa chung, trong đó máy khách cung cấp khóa riêng cho một người dùng cụ thể và máy chủ phải có khóa chung tương ứng để xác thực thành công. Điều này an toàn hơn so với việc sử dụng kết hợp tên người dùng và mật khẩu. Có thể xác thực cùng một người dùng bằng mật khẩu và khóa SSH nếu cả hai phương pháp được định cấu hình trên máy chủ SFTP.

bản tóm tắt

Bài viết này tóm tắt các tính năng cơ bản của các giao thức truyền tệp phổ biến khác nhau, cụ thể là FTP, FTPS và SFTP, đồng thời nêu bật những điểm khác biệt nhỏ và chính giữa các giao thức này. Nó bao gồm các cổng phải được phép trong tường lửa để thiết lập máy chủ FTP/FTPS/SFTP đang hoạt động đồng thời nhấn mạnh nhu cầu chuyển sang các giao thức an toàn hơn như FTPS và SFTP.

Khi tôi nói FTP ở đây, ý tôi là bất kỳ giao thức nào được thảo luận trong bài viết này. Lý do tại sao FTP cũ đã có tuổi đời hàng thập kỷ và thậm chí các phiên bản bảo mật mới hơn đôi khi được gọi là FTP thay vì tên được chỉ định để sử dụng hàng ngày.

Bạn cũng có thể muốn tìm hiểu về phần mềm máy chủ FTP và máy khách FTP/SFTP tốt nhất.