מה ההבדל בין FTPS ל- SFTP?

כאשר אתה בתהליך הגדרת יכולות העברת קבצים מרחוק לעובדים שלך, אתה רוצה שהדברים יהיו פשוטים ובטוחים ככל האפשר. עם זאת בחשבון, מה עדיף, FTPS או SFTP? בפוסט שאלות ותשובות של SuperUser של היום יש את התשובות לשאלת קורא סקרנית.

מושב השאלות והתשובות של היום מגיע אלינו באדיבות SuperUser - חלוקה משנה של Stack Exchange, קיבוץ מונחה קהילה של אתרי שאלות ותשובות.

צילום מסך באדיבות קוג'יהאצ'יסו (פליקר).

השאלה

משתמש קורא SuperUser334875 רוצה לדעת מה ההבדל בין FTPS ו- SFTP, ואיזו טובה יותר:

אני מנסה להקים מערכת לארבעה מעובדי שעובדים מרחוק כדי שיוכלו להעביר קבצים. אני גם צריך את זה כדי להיות מאובטח. האם SFTP טוב יותר מ- FTPS? מה ההבדל בין השניים?

מה ההבדל בין השניים ואיזו טובה יותר?

התשובה

לתורמים של SuperUser NuTTyX ו- Vdub יש את התשובה עבורנו. ראשית, NuTTyX:

הם שני פרוטוקולים שונים לחלוטין.

FTPS הוא FTP עם SSL לאבטחה. הוא משתמש בערוץ בקרה ופותח חיבורים חדשים להעברת הנתונים. מכיוון שהוא משתמש ב- SSL, הוא דורש אישור.

SFTP (פרוטוקול העברת קבצים SSH / פרוטוקול העברת קבצים מאובטח) תוכנן כהרחבה של SSH כדי לספק יכולת העברת קבצים, ולכן בדרך כלל הוא משתמש רק ביציאת SSH הן לנתונים והן לבקרה.

ברוב ההתקנות של שרת SSH תהיה לך תמיכה ב- SFTP, אך FTPS יצטרך תצורה נוספת של שרת FTP נתמך.

ואחריו התשובה מ- Vdub:

FTPS (FTP / SSL) הוא שם המשמש לספק מספר דרכים בהן תוכנות FTP יכולות לבצע העברות קבצים מאובטחות. כל דרך כוללת שימוש בשכבת SSL / TLS מתחת לפרוטוקול FTP הרגיל להצפנת ערוצי הבקרה ו / או הנתונים.

יתרונות:

  • ידוע ומשומש באופן נרחב
  • ניתן לקרוא ולהבין את התקשורת על ידי אדם
  • מספק שירותים להעברת קבצים בין שרת לשרת
  • ל- SSL / TLS יש מנגנוני אימות טובים (תכונות אישור X.509)
  • תמיכה ב- FTP ו- SSL / TLS מובנית במסגרות תקשורת אינטרנט רבות

חסרונות:

  • אין פורמט רישום מדריך אחיד
  • דורש ערוץ DATA משני, מה שמקשה על השימוש מאחורי חומות אש
  • לא מגדיר תקן לקבוצות תווים (קידודים) של שם קובץ.
  • לא כל שרתי ה- FTP תומכים ב- SSL / TLS
  • אין דרך רגילה להשיג ולשנות תכונות קבצים או ספריות

SFTP (SSH File Transfer Protocol) הוא פרוטוקול רשת המספק פונקציונליות העברת קבצים ומניפולציות על כל זרם נתונים אמין. הוא משמש בדרך כלל עם פרוטוקול SSH-2 (יציאת TCP 22) כדי לספק העברת קבצים מאובטחת, אך נועד לשמש גם עם פרוטוקולים אחרים.

יתרונות:

  • בעל רקע סטנדרטי טוב המגדיר בקפדנות את רוב (אם לא כל) היבטי הפעולה
  • יש חיבור אחד בלבד (אין צורך בחיבור DATA)
  • הקשר מאובטח תמיד
  • רישום הספריות אחיד וקריא במכונה
  • הפרוטוקול כולל פעולות לאישור מניפולציה של תכונות, נעילת קבצים ופונקציונליות נוספת

חסרונות:

  • התקשורת בינארית ולא ניתן לרשום אותה "כפי שהיא" לקריאת בני אדם
  • קשה יותר לנהל ולאמת את מפתחות ה- SSH
  • הסטנדרטים מגדירים דברים מסוימים כאופציונליים או מומלצים, מה שמוביל לבעיות תאימות מסוימות בין כותרות תוכנה שונות מספקים שונים.
  • אין פעולות של העתקת שרת לשרת ופעולות הסרת ספרייה רקורסיבית
  • אין תמיכה מובנית ב- SSH / SFTP במסגרות VCL ו- .NET

יש לך מה להוסיף להסבר? נשמע בתגובות. רוצה לקרוא תשובות נוספות ממשתמשים אחרים של Stack Exchange המתמצאים בטכנולוגיה? עיין כאן בשרשור הדיון המלא.