SFTP اور FTPS پروٹوکول

کردار

ابھی ایک ہفتہ قبل میں عنوان میں بتائے گئے عنوان پر ایک مضمون لکھ رہا تھا اور مجھے اس حقیقت کا سامنا کرنا پڑا کہ چلیں، انٹرنیٹ پر اتنی تعلیمی معلومات نہیں ہیں۔ زیادہ تر خشک حقائق اور سیٹ اپ ہدایات۔ اس لیے میں نے متن کو قدرے درست کرنے اور اسے بطور مضمون پوسٹ کرنے کا فیصلہ کیا۔

FTP کیا ہے؟

ایف ٹی پی (فائل ٹرانسفر پروٹوکول) نیٹ ورک پر فائلوں کی منتقلی کے لیے ایک پروٹوکول ہے۔ یہ ایتھرنیٹ کے بنیادی پروٹوکولز میں سے ایک ہے۔ 1971 میں شائع ہوا اور ابتدائی طور پر DARPA نیٹ ورکس میں کام کیا۔ فی الحال، HTTP کی طرح، فائل کی منتقلی TCP/IP (ٹرانسمیشن کنٹرول پروٹوکول/انٹرنیٹ پروٹوکول) پروٹوکول کے سیٹ پر مشتمل ماڈل پر مبنی ہے۔ RFC 959 میں بیان کیا گیا ہے۔

پروٹوکول مندرجہ ذیل کی وضاحت کرتا ہے:

  • غلطی کی جانچ کیسے کی جائے گی؟
  • ڈیٹا پیکجنگ کا طریقہ (اگر پیکیجنگ استعمال کی جاتی ہے)
  • بھیجنے والا آلہ کیسے ظاہر کرتا ہے کہ اس نے پیغام ختم کر دیا ہے؟
  • وصول کرنے والا آلہ کیسے ظاہر کرتا ہے کہ اسے پیغام موصول ہوا ہے؟

کلائنٹ اور سرور کے درمیان مواصلت

آئیے ایف ٹی پی آپریشن کے دوران ہونے والے عمل کو قریب سے دیکھتے ہیں۔ کنکشن صارف کے پروٹوکول ترجمان کے ذریعہ شروع کیا جاتا ہے۔ تبادلے کو TELNET معیار میں ایک کنٹرول چینل کے ذریعے کنٹرول کیا جاتا ہے۔ FTP کمانڈز صارف کے پروٹوکول ترجمان کے ذریعہ تیار کی جاتی ہیں اور سرور کو بھیجی جاتی ہیں۔ سرور کے جوابات بھی صارف کو کنٹرول چینل کے ذریعے بھیجے جاتے ہیں۔ عام طور پر، صارف کے پاس سرور کے پروٹوکول مترجم کے ساتھ اور صارف کے مترجم کے علاوہ دیگر ذرائع سے رابطہ قائم کرنے کی صلاحیت ہوتی ہے۔

ایف ٹی پی کی اہم خصوصیت یہ ہے کہ یہ دوہری کنکشن استعمال کرتا ہے۔ ان میں سے ایک سرور کو کمانڈ بھیجنے کے لیے استعمال کیا جاتا ہے اور بطور ڈیفالٹ TCP پورٹ 21 کے ذریعے ہوتا ہے، جسے تبدیل کیا جا سکتا ہے۔ کنٹرول کنکشن تب تک موجود ہے جب تک کلائنٹ سرور کے ساتھ بات چیت کرتا ہے۔ مشینوں کے درمیان ڈیٹا منتقل کرتے وقت کنٹرول چینل کھلا ہونا چاہیے۔ اگر یہ بند ہو تو ڈیٹا کی ترسیل رک جاتی ہے۔ دوسرے کے ذریعے، براہ راست ڈیٹا کی منتقلی ہوتی ہے۔ جب بھی کلائنٹ اور سرور کے درمیان فائل کی منتقلی ہوتی ہے تو یہ کھلتا ہے۔ اگر کئی فائلیں بیک وقت منتقل کی جاتی ہیں، تو ان میں سے ہر ایک اپنا ٹرانسمیشن چینل کھولتا ہے۔

FTP فعال یا غیر فعال موڈ میں کام کر سکتا ہے، جس کا انتخاب اس بات کا تعین کرتا ہے کہ کنکشن کیسے قائم ہے۔ ایکٹو موڈ میں، کلائنٹ سرور کے ساتھ ایک TCP کنٹرول کنکشن بناتا ہے اور اپنا IP ایڈریس اور ایک صوابدیدی کلائنٹ پورٹ نمبر سرور کو بھیجتا ہے، اور پھر سرور کے اس ایڈریس اور پورٹ نمبر کے ساتھ TCP کنکشن شروع کرنے کا انتظار کرتا ہے۔ اگر کلائنٹ فائر وال کے پیچھے ہے اور آنے والے TCP کنکشن کو قبول نہیں کر سکتا تو غیر فعال موڈ استعمال کیا جا سکتا ہے۔ اس موڈ میں، کلائنٹ سرور کو PASV کمانڈ بھیجنے کے لیے کنٹرول فلو کا استعمال کرتا ہے، اور پھر سرور سے اس کا IP ایڈریس اور پورٹ نمبر وصول کرتا ہے، جسے کلائنٹ پھر اپنی من مانی بندرگاہ سے ڈیٹا فلو کھولنے کے لیے استعمال کرتا ہے۔

یہ ممکن ہے کہ ڈیٹا کسی تیسری مشین میں منتقل کیا جائے۔ اس صورت میں، صارف دو سرورز کے ساتھ ایک کنٹرول چینل ترتیب دیتا ہے اور ان کے درمیان براہ راست ڈیٹا چینل کو منظم کرتا ہے۔ کنٹرول کمانڈز صارف کے ذریعے جاتے ہیں، اور ڈیٹا براہ راست سرورز کے درمیان جاتا ہے۔

نیٹ ورک پر ڈیٹا منتقل کرتے وقت، چار ڈیٹا کی نمائندگی استعمال کی جا سکتی ہے:

  • ASCII - متن کے لیے استعمال کیا جاتا ہے۔ ڈیٹا کو، اگر ضروری ہو تو، ٹرانسمیشن سے پہلے بھیجنے والے میزبان پر کردار کی نمائندگی سے "آٹھ بٹ ASCII" میں تبدیل کیا جاتا ہے، اور (دوبارہ، اگر ضروری ہو) وصول کرنے والے میزبان پر کردار کی نمائندگی میں تبدیل کیا جاتا ہے۔ خاص طور پر، نئے حروف کو تبدیل کیا جاتا ہے. نتیجے کے طور پر، یہ وضع ان فائلوں کے لیے موزوں نہیں ہے جن میں محض سادہ متن سے زیادہ ہو۔
  • بائنری موڈ - بھیجنے والا آلہ ہر فائل کو بائٹ بائٹ بھیجتا ہے، اور وصول کنندہ وصولی کے بعد بائٹس کا سلسلہ محفوظ کرتا ہے۔ تمام FTP نفاذ کے لیے اس موڈ کے لیے سپورٹ کی سفارش کی گئی ہے۔
  • EBCDIC – EBCDIC انکوڈنگ میں میزبانوں کے درمیان سادہ متن کی منتقلی کے لیے استعمال کیا جاتا ہے۔ بصورت دیگر، یہ موڈ ASCII موڈ کی طرح ہے۔
  • لوکل موڈ - ایک جیسی سیٹنگ والے دو کمپیوٹرز کو ASCII میں تبدیل کیے بغیر ان کے اپنے فارمیٹ میں ڈیٹا بھیجنے کی اجازت دیتا ہے۔

ڈیٹا کی منتقلی تین طریقوں میں سے کسی میں بھی کی جا سکتی ہے:

  • سٹریم موڈ - ڈیٹا کو ایک مسلسل سلسلہ کے طور پر بھیجا جاتا ہے، FTP کو کسی بھی پروسیسنگ کو انجام دینے سے آزاد کرتا ہے۔ اس کے بجائے، تمام پروسیسنگ TCP کے ذریعے کی جاتی ہے۔ ڈیٹا کو ریکارڈ میں الگ کرنے کے علاوہ فائل کے اختتامی اشارے کی ضرورت نہیں ہے۔
  • بلاک موڈ - FTP ڈیٹا کو کئی بلاکس (ہیڈر بلاک، بائٹس کی تعداد، ڈیٹا فیلڈ) میں توڑتا ہے اور پھر انہیں TCP میں منتقل کرتا ہے۔
  • کمپریشن موڈ - ڈیٹا کو ایک الگورتھم کا استعمال کرتے ہوئے کمپریس کیا جاتا ہے (عام طور پر رن ​​کی لمبائی کو انکوڈنگ کرکے)۔

FTP سرور ایک ایسا سرور ہے جو فائل ٹرانسفر پروٹوکول کو استعمال کرنے کی صلاحیت فراہم کرتا ہے۔ اس میں کچھ خصوصیات ہیں جو اسے روایتی ویب سرورز سے ممتاز کرتی ہیں:

  • صارف کی توثیق درکار ہے۔
  • تمام کارروائیاں موجودہ سیشن کے اندر انجام دی جاتی ہیں۔
  • فائل سسٹم کے ساتھ مختلف کام انجام دینے کی صلاحیت
  • ہر کنکشن کے لیے ایک الگ چینل استعمال کیا جاتا ہے۔

ایف ٹی پی کلائنٹ ایک ایسا پروگرام ہے جو آپ کو ایف ٹی پی کے ذریعے ریموٹ سرور سے جڑنے اور فائل سسٹم کے عناصر کے ساتھ اس پر ضروری کارروائیاں کرنے کی اجازت دیتا ہے۔ کلائنٹ اچھی طرح سے ایک براؤزر ہو سکتا ہے، جس کے ایڈریس بار میں آپ کو ایڈریس درج کرنا چاہیے، جو کہ ریموٹ سرور پر کسی مخصوص ڈائریکٹری یا فائل کا راستہ ہے، عام URL بلاک ڈایاگرام کے مطابق:

ftp://user:pass@address:port/directory/file

تاہم، اس تناظر میں ویب براؤزر کا استعمال آپ کو صرف دلچسپی کی فائلوں کو دیکھنے یا ڈاؤن لوڈ کرنے کی اجازت دے گا۔ FTP کے تمام فوائد کو مکمل طور پر استعمال کرنے کے لیے، آپ کو بطور کلائنٹ خصوصی سافٹ ویئر استعمال کرنا چاہیے۔

FTP توثیق رسائی فراہم کرنے کے لیے صارف نام/پاس ورڈ سکیم کا استعمال کرتی ہے۔ صارف کا نام USER کمانڈ کے ساتھ سرور کو بھیجا جاتا ہے، اور پاس ورڈ PASS کمانڈ کے ساتھ بھیجا جاتا ہے۔ اگر کلائنٹ کی فراہم کردہ معلومات کو سرور قبول کر لیتا ہے، تو سرور کلائنٹ کو دعوت نامہ بھیجے گا اور سیشن شروع ہو جائے گا۔ صارف، اگر سرور اس خصوصیت کو سپورٹ کرتا ہے تو، اسناد فراہم کیے بغیر لاگ ان کر سکتے ہیں، لیکن سرور ایسے سیشنز کے لیے صرف محدود رسائی دے سکتا ہے۔

FTP سروس فراہم کرنے والا میزبان گمنام FTP رسائی فراہم کر سکتا ہے۔ صارفین عام طور پر اپنے صارف نام کے طور پر "گمنام" (کچھ ایف ٹی پی سرورز پر کیس حساس ہوسکتے ہیں) کے ساتھ لاگ ان ہوتے ہیں۔ اگرچہ صارفین سے عام طور پر پاس ورڈ کے بجائے اپنا ای میل پتہ فراہم کرنے کو کہا جاتا ہے، لیکن حقیقت میں کوئی تصدیق نہیں کی جاتی ہے۔ بہت سے FTP میزبان جو سافٹ ویئر اپ ڈیٹ فراہم کرتے ہیں گمنام رسائی کی حمایت کرتے ہیں۔

پروٹوکول خاکہ

FTP کنکشن کے دوران کلائنٹ-سرور کے تعامل کو اس طرح دیکھا جا سکتا ہے:

SFTP اور FTPS پروٹوکول

ایف ٹی پی کو محفوظ کریں۔

FTP کا اصل مقصد محفوظ ہونا نہیں تھا، کیونکہ یہ متعدد فوجی تنصیبات اور ایجنسیوں کے درمیان رابطے کے لیے تھا۔ لیکن انٹرنیٹ کی ترقی اور پھیلاؤ کے ساتھ، غیر مجاز رسائی کا خطرہ کئی گنا بڑھ گیا ہے۔ سرورز کو مختلف قسم کے حملوں سے بچانے کی ضرورت تھی۔ مئی 1999 میں، RFC 2577 کے مصنفین نے مسائل کی درج ذیل فہرست میں کمزوریوں کا خلاصہ کیا:

  • پوشیدہ حملے (باؤنس حملے)
  • دھوکہ دہی کے حملے
  • وحشیانہ طاقت کے حملے
  • پیکٹ پکڑنا، سونگھنا
  • پورٹ چوری

ریگولر ایف ٹی پی میں ڈیٹا کو انکرپٹڈ شکل میں منتقل کرنے کی صلاحیت نہیں ہے، جس کے نتیجے میں صارف کے نام، پاس ورڈ، کمانڈز اور دیگر معلومات کو حملہ آور آسانی اور آسانی سے روک سکتے ہیں۔ اس مسئلے کا معمول کا حل یہ ہے کہ "محفوظ"، کمزور پروٹوکول (FTPS) کے TLS-محفوظ ورژن یا کوئی اور، زیادہ محفوظ پروٹوکول، جیسے SFTP/SCP، جو زیادہ تر سیکیور شیل پروٹوکول کے نفاذ کے ساتھ فراہم کیا جاتا ہے۔

FTPS

FTPS (FTP + SSL) معیاری فائل ٹرانسفر پروٹوکول کی ایک توسیع ہے جو SSL (Secure Sockets Layer) پروٹوکول کا استعمال کرتے ہوئے انکرپٹڈ سیشنز کی تخلیق کو اس کی بنیادی فعالیت میں اضافہ کرتی ہے۔ آج، تحفظ اس کے زیادہ جدید اینالاگ TLS (ٹرانسپورٹ لیئر سیکیورٹی) کے ذریعے فراہم کیا جاتا ہے۔

SSL

SSL پروٹوکول کی تجویز Netscape Communications نے 1996 میں انٹرنیٹ کنکشن کی حفاظت اور رازداری کو یقینی بنانے کے لیے کی تھی۔ پروٹوکول کلائنٹ اور سرور کی توثیق کی حمایت کرتا ہے، ایپلیکیشن آزاد ہے، اور HTTP، FTP، اور ٹیل نیٹ پروٹوکول کے لیے شفاف ہے۔

SSL ہینڈ شیک پروٹوکول دو مراحل پر مشتمل ہے: سرور کی تصدیق اور اختیاری کلائنٹ کی تصدیق۔ پہلے مرحلے پر، سرور اپنے سرٹیفکیٹ اور خفیہ کاری کے پیرامیٹرز بھیج کر کلائنٹ کی درخواست کا جواب دیتا ہے۔ کلائنٹ پھر ایک ماسٹر کلید تیار کرتا ہے، اسے سرور کی عوامی کلید کے ساتھ خفیہ کرتا ہے، اور اسے سرور کو بھیجتا ہے۔ سرور اپنی نجی کلید کے ساتھ ماسٹر کلید کو ڈکرپٹ کرتا ہے اور کلائنٹ کی ماسٹر کلید سے تصدیق شدہ پیغام واپس کرکے کلائنٹ کو خود کو مستند کرتا ہے۔

اس کے بعد کے ڈیٹا کو اس ماسٹر کلید سے حاصل کی گئی کلیدوں کے ساتھ انکرپٹ اور تصدیق شدہ ہے۔ دوسرے مرحلے میں، جو کہ اختیاری ہے، سرور کلائنٹ کو ایک درخواست بھیجتا ہے، اور کلائنٹ اپنے ڈیجیٹل دستخط اور عوامی کلید کے سرٹیفکیٹ کے ساتھ درخواست کو واپس کرکے سرور کو خود تصدیق کرتا ہے۔

SSL مختلف قسم کے کرپٹوگرافک الگورتھم کو سپورٹ کرتا ہے۔ مواصلات کے قیام کے دوران، RSA عوامی کلید کا کرپٹو سسٹم استعمال کیا جاتا ہے۔ کلیدی تبادلے کے بعد، بہت سے مختلف سائفرز استعمال کیے جاتے ہیں: RC2، RC4، IDEA، DES اور TripleDES۔ MD5 بھی استعمال کیا جاتا ہے - میسج ڈائجسٹ بنانے کے لیے الگورتھم۔ عوامی کلیدی سرٹیفکیٹس کے لیے نحو X.509 میں بیان کیا گیا ہے۔

SSL کا ایک اہم فائدہ اس کی مکمل سافٹ ویئر پلیٹ فارم کی آزادی ہے۔ پروٹوکول پورٹیبلٹی کے اصولوں پر تیار کیا گیا ہے، اور اس کی تعمیر کا نظریہ ان ایپلی کیشنز پر منحصر نہیں ہے جس میں اسے استعمال کیا جاتا ہے۔ اس کے علاوہ، یہ بھی ضروری ہے کہ دوسرے پروٹوکول کو شفاف طریقے سے SSL پروٹوکول کے اوپر چڑھایا جا سکے۔ یا تو ہدف کی معلومات کے بہاؤ کے تحفظ کی ڈگری کو مزید بڑھانے کے لیے، یا SSL کی خفیہ صلاحیتوں کو کسی دوسرے، اچھی طرح سے طے شدہ کام کے لیے ڈھالنے کے لیے۔

SSL کنکشن

SFTP اور FTPS پروٹوکول

SSL کے ذریعہ فراہم کردہ محفوظ چینل میں تین اہم خصوصیات ہیں:

  • چینل نجی ہے۔ خفیہ کلید کا تعین کرنے کے لیے ایک سادہ مکالمے کے بعد تمام پیغامات کے لیے خفیہ کاری کا استعمال کیا جاتا ہے۔
  • چینل تصدیق شدہ ہے۔ گفتگو کا سرور سائیڈ ہمیشہ تصدیق شدہ ہوتا ہے، جبکہ کلائنٹ کی طرف اختیاری طور پر تصدیق کی جاتی ہے۔
  • چینل قابل اعتماد ہے۔ پیغام کی نقل و حمل میں سالمیت کی جانچ (MAC کا استعمال کرتے ہوئے) شامل ہے۔

FTPS کی خصوصیات

سیکورٹی فراہم کرنے کے مختلف طریقے استعمال کرتے ہوئے FTPS کے دو نفاذ ہیں:

  • مضمر طریقہ میں ڈیٹا بھیجنے سے پہلے سیشن قائم کرنے کے لیے معیاری SSL پروٹوکول کا استعمال شامل ہے، جس کے نتیجے میں، باقاعدہ FTP کلائنٹس اور سرورز کے ساتھ مطابقت ٹوٹ جاتی ہے۔ FTPS کو سپورٹ نہ کرنے والے کلائنٹس کے ساتھ پسماندہ مطابقت کے لیے، کنٹرول کنکشن کے لیے TCP پورٹ 990 اور ڈیٹا ٹرانسفر کے لیے 989 استعمال کیا جاتا ہے۔ یہ FTP پروٹوکول کے لیے معیاری پورٹ 21 کو برقرار رکھتا ہے۔ یہ طریقہ متروک سمجھا جاتا ہے۔
  • واضح بہت زیادہ آسان ہے، کیونکہ یہ معیاری FTP کمانڈز استعمال کرتا ہے، لیکن جواب دیتے وقت ڈیٹا کو خفیہ کرتا ہے، جو آپ کو FTP اور FTPS دونوں کے لیے ایک ہی کنٹرول کنکشن استعمال کرنے کی اجازت دیتا ہے۔ کلائنٹ کو واضح طور پر سرور سے محفوظ ڈیٹا کی منتقلی کی درخواست کرنی چاہیے، اور پھر خفیہ کاری کے طریقہ کار کو منظور کرنا چاہیے۔ اگر کلائنٹ محفوظ منتقلی کی درخواست نہیں کرتا ہے تو، FTPS سرور کو غیر محفوظ کنکشن کو برقرار رکھنے یا بند کرنے کا حق حاصل ہے۔ RFC 2228 کے تحت ایک تصدیق اور ڈیٹا سیکیورٹی مذاکرات کا طریقہ کار شامل کیا گیا جس میں نئی ​​FTP AUTH کمانڈ شامل ہے۔ اگرچہ یہ معیار واضح طور پر حفاظتی طریقہ کار کی وضاحت نہیں کرتا ہے، لیکن یہ اس بات کی وضاحت کرتا ہے کہ کلائنٹ کے ذریعہ اوپر بیان کردہ الگورتھم کا استعمال کرتے ہوئے ایک محفوظ کنکشن شروع کیا جانا چاہیے۔ اگر محفوظ کنکشن سرور کے ذریعہ تعاون یافتہ نہیں ہیں تو، 504 کا ایرر کوڈ واپس کیا جانا چاہئے۔ FTPS کلائنٹ FEAT کمانڈ کا استعمال کرتے ہوئے سرور کے ذریعہ تعاون یافتہ سیکیورٹی پروٹوکول کے بارے میں معلومات حاصل کرسکتے ہیں، تاہم، سرور کو یہ ظاہر کرنے کی ضرورت نہیں ہے کہ اس کی سیکیورٹی کی سطح کیا ہے۔ حمایت کرتا ہے. سب سے عام FTPS کمانڈز AUTH TLS اور AUTH SSL ہیں، جو بالترتیب TLS اور SSL سیکیورٹی فراہم کرتے ہیں۔

SFTP

SFTP (Secure File Transfer Protocol) ایک ایپلیکیشن لیئر فائل ٹرانسفر پروٹوکول ہے جو ایک محفوظ چینل کے اوپر چلتا ہے۔ (سادہ فائل ٹرانسفر پروٹوکول) کے ساتھ الجھن میں نہ پڑیں، جس کا مخفف ایک ہی ہے۔ اگر FTPS محض FTP کی توسیع ہے، تو SFTP ایک علیحدہ اور غیر متعلقہ پروٹوکول ہے جو SSH (Secure Shell) کو اپنی بنیاد کے طور پر استعمال کرتا ہے۔

محفوظ شیل۔

پروٹوکول IETF گروپوں میں سے ایک نے تیار کیا تھا جسے Secsh کہتے ہیں۔ نئے SFTP پروٹوکول کے لیے ورکنگ ڈاکومنٹیشن سرکاری معیار نہیں بنی، لیکن ایپلیکیشن ڈیولپمنٹ کے لیے فعال طور پر استعمال ہونے لگی۔ اس کے بعد پروٹوکول کے چھ ورژن جاری کیے گئے۔ تاہم، اس میں فعالیت میں بتدریج اضافہ اس حقیقت کا باعث بنا کہ 14 اگست 2006 کو پروٹوکول کی ڈیولپمنٹ پر کام روکنے کا فیصلہ کیا گیا جس کی وجہ پراجیکٹ کے اہم کام (SSH ڈویلپمنٹ) کی تکمیل اور اس کی کمی ہے۔ ایک مکمل ریموٹ فائل سسٹم پروٹوکول کی ترقی کی طرف بڑھنے کے لیے کافی ماہرانہ سطح کا۔

SSH ایک نیٹ ورک پروٹوکول ہے جو آپریٹنگ سسٹم کے ریموٹ کنٹرول اور TCP کنکشنز کو ٹنل کرنے کی اجازت دیتا ہے (مثال کے طور پر فائل ٹرانسفر کے لیے)۔ فعالیت میں ٹیل نیٹ اور rlogin پروٹوکول کی طرح، لیکن، ان کے برعکس، یہ تمام ٹریفک کو خفیہ کرتا ہے، بشمول منتقل شدہ پاس ورڈز۔ SSH مختلف انکرپشن الگورتھم کے انتخاب کی اجازت دیتا ہے۔ SSH کلائنٹس اور SSH سرور زیادہ تر نیٹ ورک آپریٹنگ سسٹمز کے لیے دستیاب ہیں۔

SSH آپ کو غیر محفوظ ماحول میں تقریباً کسی دوسرے نیٹ ورک پروٹوکول کو محفوظ طریقے سے منتقل کرنے کی اجازت دیتا ہے۔ اس طرح، آپ کمانڈ شیل کے ذریعے اپنے کمپیوٹر پر نہ صرف دور سے کام کر سکتے ہیں، بلکہ ایک انکرپٹڈ چینل پر آڈیو سٹریم یا ویڈیو (مثال کے طور پر، ویب کیم سے) بھی منتقل کر سکتے ہیں۔ SSH بعد کے خفیہ کاری کے لیے منتقل شدہ ڈیٹا کی کمپریشن بھی استعمال کر سکتا ہے، جو کہ آسان ہے، مثال کے طور پر، X WindowSystem کلائنٹس کو دور سے لانچ کرنے کے لیے۔

پروٹوکول کا پہلا ورژن، SSH-1، 1995 میں ہیلسنکی یونیورسٹی آف ٹیکنالوجی (فن لینڈ) کے محقق Tatu Ulönen نے تیار کیا تھا۔ SSH-1 کو rlogin، telnet، اور rsh پروٹوکول سے زیادہ رازداری فراہم کرنے کے لیے لکھا گیا تھا۔ 1996 میں، پروٹوکول کا ایک زیادہ محفوظ ورژن، SSH-2، تیار کیا گیا، جو SSH-1 سے مطابقت نہیں رکھتا۔ پروٹوکول نے اور بھی مقبولیت حاصل کی، اور 2000 تک اس کے تقریباً 2 لاکھ صارفین تھے۔ فی الحال، اصطلاح "SSH" کا مطلب عام طور پر SSH-2006 ہوتا ہے، کیونکہ اہم کوتاہیوں کی وجہ سے پروٹوکول کا پہلا ورژن اب عملی طور پر استعمال نہیں ہوتا ہے۔ XNUMX میں، پروٹوکول کو IETF ورکنگ گروپ نے انٹرنیٹ کے معیار کے طور پر منظور کیا تھا۔

SSH کے دو عام نفاذ ہیں: نجی تجارتی اور مفت اوپن سورس۔ مفت نفاذ کو OpenSSH کہا جاتا ہے۔ 2006 تک، انٹرنیٹ پر 80% کمپیوٹرز OpenSSH استعمال کرتے تھے۔ ملکیتی عمل درآمد SSH کمیونیکیشن سیکیورٹی کے ذریعے تیار کیا گیا ہے، جو کہ ٹیکٹیا کارپوریشن کا مکمل ملکیتی ذیلی ادارہ ہے، اور یہ غیر تجارتی استعمال کے لیے مفت ہے۔ ان نفاذ میں تقریباً ایک جیسے کمانڈز ہوتے ہیں۔

SSH-2 پروٹوکول، ٹیل نیٹ پروٹوکول کے برعکس، ٹریفک کے چھپنے والے حملوں ("سنیفنگ") کے خلاف مزاحم ہے، لیکن درمیانی درجے کے حملوں کے خلاف مزاحم نہیں ہے۔ SSH-2 پروٹوکول سیشن ہائی جیکنگ حملوں کے خلاف بھی مزاحم ہے، کیونکہ پہلے سے قائم سیشن میں شامل ہونا یا ہائی جیک کرنا ناممکن ہے۔

کسی ایسے میزبان سے رابطہ کرتے وقت جس کی کلید ابھی تک کلائنٹ کو معلوم نہیں ہے، مین-ان-دی-درمیان حملوں کو روکنے کے لیے، کلائنٹ سافٹ ویئر صارف کو "کلیدی فنگر پرنٹ" دکھاتا ہے۔ یہ سفارش کی جاتی ہے کہ کلائنٹ سافٹ ویئر کے ذریعہ دکھائے گئے "کلیدی اسنیپ شاٹ" کو سرور کلیدی سنیپ شاٹ کے ساتھ چیک کریں، ترجیحاً قابل اعتماد مواصلاتی چینلز کے ذریعے یا ذاتی طور پر حاصل کیا گیا ہے۔

SSH سپورٹ تمام UNIX جیسے سسٹمز پر دستیاب ہے، اور زیادہ تر کے پاس ssh کلائنٹ اور سرور معیاری یوٹیلیٹیز کے طور پر ہے۔ غیر UNIX OS کے لیے SSH کلائنٹس کے بہت سے نفاذ ہیں۔ اہم نوڈس کے انتظام کے لیے غیر محفوظ ٹیل نیٹ پروٹوکول کے متبادل حل کے طور پر، پروٹوکول نے ٹریفک تجزیہ کاروں اور مقامی نیٹ ورکس کے آپریشن میں خلل ڈالنے کے طریقوں کی وسیع پیمانے پر ترقی کے بعد بہت مقبولیت حاصل کی۔

SSH کا استعمال کرتے ہوئے مواصلت

SSH کے ذریعے کام کرنے کے لیے، آپ کو SSH سرور اور SSH کلائنٹ کی ضرورت ہے۔ سرور کلائنٹ کی مشینوں سے کنکشن سنتا ہے اور جب کنکشن قائم ہو جاتا ہے تو تصدیق کرتا ہے، جس کے بعد وہ کلائنٹ کی خدمت شروع کر دیتا ہے۔ کلائنٹ کو ریموٹ مشین میں لاگ ان کرنے اور کمانڈز پر عمل کرنے کے لیے استعمال کیا جاتا ہے۔

SFTP اور FTPS پروٹوکول

FTPS کے ساتھ موازنہ

بنیادی چیز جو SFTP کو معیاری FTP اور FTPS سے ممتاز کرتی ہے وہ یہ ہے کہ SFTP بالکل تمام کمانڈز، صارف نام، پاس ورڈز اور دیگر خفیہ معلومات کو خفیہ کرتا ہے۔

FTPS اور SFTP دونوں پروٹوکول غیر متناسب الگورتھم (RSA, DSA)، ہم آہنگی الگورتھم (DES/3DES، AES، Twhofish، وغیرہ) کے ساتھ ساتھ ایک کلیدی تبادلہ الگورتھم کا استعمال کرتے ہیں۔ تصدیق کے لیے، FTPS (یا زیادہ درست ہونے کے لیے، FTP پر SSL/TLS) X.509 سرٹیفکیٹ استعمال کرتا ہے، جبکہ SFTP (SSH پروٹوکول) SSH کیز استعمال کرتا ہے۔

X.509 سرٹیفکیٹس میں ایک عوامی کلید اور مالک کے سرٹیفکیٹ کے بارے میں کچھ معلومات شامل ہیں۔ یہ معلومات، دوسری طرف، خود سرٹیفکیٹ کی سالمیت، صداقت اور سرٹیفکیٹ کے مالک کی تصدیق کرنے کی اجازت دیتی ہے۔ X.509 سرٹیفکیٹس میں متعلقہ نجی کلید ہوتی ہے، جو عام طور پر حفاظتی وجوہات کی بناء پر سرٹیفکیٹ سے الگ محفوظ کی جاتی ہے۔

SSH کلید صرف عوامی کلید پر مشتمل ہے (متعلقہ نجی کلید الگ سے ذخیرہ کی جاتی ہے)۔ اس میں کلید کے مالک کے بارے میں کوئی معلومات نہیں ہیں۔ کچھ SSH نفاذ تصدیق کے لیے X.509 سرٹیفکیٹس کا استعمال کرتے ہیں، لیکن وہ اصل میں پورے سرٹیفکیٹ چین کی توثیق نہیں کرتے — صرف عوامی کلید استعمال کی جاتی ہے (جو اس طرح کی تصدیق کو نامکمل بناتی ہے)۔

حاصل يہ ہوا

FTP پروٹوکول بلاشبہ اپنی قابل احترام عمر کے باوجود نیٹ ورک پر معلومات کے ذخیرہ اور تقسیم میں اہم کردار ادا کرتا ہے۔ یہ ایک آسان، ملٹی فنکشنل اور معیاری پروٹوکول ہے۔ اس کی بنیاد پر بہت سے فائل آرکائیوز بنائے گئے ہیں، جن کے بغیر تکنیکی کام اتنا موثر نہیں ہوگا۔ اس کے علاوہ، اسے ترتیب دینا آسان ہے، اور سرور اور کلائنٹ پروگرام تقریباً تمام موجودہ اور موجودہ پلیٹ فارمز کے لیے موجود ہیں۔

بدلے میں، اس کے محفوظ ورژن جدید دنیا میں ذخیرہ شدہ اور منتقل شدہ ڈیٹا کی رازداری کا مسئلہ حل کرتے ہیں۔ دونوں نئے پروٹوکول کے اپنے فوائد اور نقصانات ہیں اور وہ قدرے مختلف کردار ادا کرتے ہیں۔ ان علاقوں میں جہاں فائل آرکائیو کی ضرورت ہے، FTPS کا استعمال کرنا بہتر ہے، خاص طور پر اگر کلاسک FTP پہلے ہی وہاں استعمال ہو چکا ہو۔ SFTP پرانے پروٹوکول کے ساتھ عدم مطابقت کی وجہ سے کم عام ہے، لیکن یہ زیادہ محفوظ ہے اور اس میں زیادہ فعالیت ہے، کیونکہ یہ ریموٹ مینجمنٹ سسٹم کا حصہ ہے۔

ذرائع کی فہرست

ماخذ: www.habr.com

نیا تبصرہ شامل کریں