BLOG

Sự khác nhau giữa FTP, FTPS, SFTP, SCP là gì?

Web Design 2020.12.01


Bạn có bao giờ nhận được câu hỏi: “Hãy giải thích về sự khác nhau của FTP, FTPS, SFTP, SCP không?” hay chưa? Chà, câu hỏi khá thú vị nhưng không dễ trả lời đâu nhỉ! Có thể FTP, FTPS thì nhiều bạn đã biết, nhưng SFTP, SCP lại không biết! Vì vậy tôi đã thử tìm hiểu về sự khác nhau của FTP, FTPS, SFTP, SCP, và xin chia sẻ cùng các bạn.

FTP (File Transfer Protocol)

Nếu dịch theo nghĩa đen, FTP là một giao thức truyền file đến server.
Nếu dịch sát nghĩa thì là:

  • Transfer là “truyền”
  • Protocol là “giao thức”

Có nghĩa là “giao thức để truyền file” đến server. Mục đích là khi muốn hiển thị lên Home Page, thì sẽ upload file cần thiết từ PC lên server, hoặc download file đã lưu. Khi upload thông tin, cần các phần mềm kết nối FTP như là FTP Client FileZilla.

Tuy nhiên, FTP truyền thông tin như là thông tin xác nhận người dùng (user name, password), file… mà hoàn toàn không mã hóa thông tin. Vì vậy, trong quá khứ FTP cũng đã từng trở thành mục tiêu của virus máy tính. Hiện tại, protocol mã hóa thông tin được đề xuất là FTPS, SFTP, SCP, mà không còn là FTP nữa.

Kế tiếp, tôi sẽ giải thích về sự khác nhau của FTPS, SFTP, SCP.

FTPS (File Transfer Protocol over SSL/TLS)

FTPS là protocol mã hóa thông tin sử dụng “SSL/TLS” để khắc phục lỗ hổng bảo mật của FTP.

SSL/TLS

Là cơ chế đảm bảo việc truyền thông tin an toàn đã được mã hoá bằng tổ hợp kỹ thuật mã hóa public key và common key. SSL và TLS có cơ chế giống nhau. TLS ra đời từ việc SSL được tăng cường version up, nhưng tên của SSL lại thường được ghi song song là “SSL/TLS”.

Để biết có sử dụng SSL/TLS hay không, thì trên thanh address bar phân biệt CÓ/ KHÔNG có hiển thị “https” và mark chìa khóa. Chứng chỉ xác thực SSL  được cấp bởi các công ty xác thực SSL như là Symantec, GMOGlobalSign, GeoTrust…

SFTP (SSH File Transfer Protocol)

SFTP là protocol mã hóa thông tin, sử dụng SSH (Secure Shell)được gửi bằng FTP.

SSH

SSH là protocol mã hóa toàn bộ thông tin được truyền, khi có thao tác remote từ thiết bị đầu cuối (terminal) đến server.

SSH có thể được sử dụng bằng phần mềm “OpenSSH”, và được install mặc định trong Linux. Còn trong Windows, có thể sử dụng bằng  “Git Bash” được đóng gói chung cho “Cygwin” và “WinSCP”, Git. Bất cứ cái nào, cũng là môi trường cần thiết để có thể sử dụng SSH.

Protocol tương tự  SFTP này, đó là SCP, sẽ được giải thích ở nội dung kế tiếp.

SCP (Secure Copy Protocol)

SCP là cái cuối cùng, mà tôi giới thiệu về các protocol thực hiện truyền dữ liệu đến server. Có thể nói rằng SCP là protocol có độ an toàn cao nhất ở màn hình security, do sử dụng SSH, tương tự SFTP.

SCP được cho là tốc độ truyền nhanh hơn so với SFTP, nhưng nếu sử dụng SCP này thì cần có shell của hệ UNIX cho server. Khi tạo web server, trong hầu hết server đang có shell, nhưng mình không biết được có sell của hệ UNIX hay không. Vì vậy, cũng có trường hợp chỉ có thể gửi file bằng SFTP.

Tổng kết

Cần hiểu về đặc điểm của từng loại giao thức để giúp bạn có thể phân biệt được ưu và nhược điểm của từng giao thức để biết khi nào bạn nên sử dụng cái nào cho hợp lý. Hi vọng bài viết này sẽ giúp ích cho bạn.