SSH کے لیے دو عنصر کی تصدیق

"Secure shell" SSH میزبانوں کے درمیان ایک محفوظ کنکشن قائم کرنے کے لیے ایک نیٹ ورک پروٹوکول ہے، معیاری طور پر پورٹ 22 پر (جسے تبدیل کرنا بہتر ہے)۔ SSH کلائنٹس اور SSH سرورز زیادہ تر آپریٹنگ سسٹمز کے لیے دستیاب ہیں۔ تقریباً کوئی دوسرا نیٹ ورک پروٹوکول SSH کے اندر کام کرتا ہے، یعنی آپ کسی دوسرے کمپیوٹر پر دور سے کام کر سکتے ہیں، کسی انکرپٹڈ چینل پر آڈیو یا ویڈیو سٹریم منتقل کر سکتے ہیں، وغیرہ۔ اس کے علاوہ، دور دراز کے میزبان پر SOCKS پراکسی کے ذریعے آپ اس ریموٹ میزبان کی جانب سے دوسرے میزبانوں سے رابطہ قائم کر سکتے ہیں۔

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

دو عنصر کی توثیق کو کیسے نافذ کیا جائے۔

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

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

پہلا آپشن OTP ہے۔

OTP - ایک وقتی ڈیجیٹل پاس ورڈ، جو اس صورت میں کلید کے ساتھ SSH تصدیق کے لیے استعمال کیے جائیں گے۔ ڈویلپرز لکھتے ہیں کہ یہ ایک مثالی آپشن نہیں ہے، کیونکہ حملہ آور جعلی گڑھ بنا سکتا ہے، آپ کے OTP کو روک سکتا ہے اور اسے استعمال کر سکتا ہے۔ لیکن یہ کچھ نہ ہونے سے بہتر ہے۔

اس صورت میں، سرور سائیڈ پر، شیف کنفیگریشن میں درج ذیل سطریں لکھی گئی ہیں:

  • metadata.rb
  • attributes/default.rb (کے attributes.rb)
  • files/sshd
  • recipes/default.rb (کاپی سے recipe.rb)
  • templates/default/users.oath.erb

کوئی بھی OTP ایپلیکیشن کلائنٹ کی طرف انسٹال ہے: Google Authenticator، Authy، Duo، Lastpass، انسٹال brew install oath-toolkit یا apt install oathtool openssl، پھر ایک بے ترتیب بیس 16 سٹرنگ (کی) تیار ہوتی ہے۔ اسے بیس 32 فارمیٹ میں تبدیل کیا جاتا ہے جسے موبائل مستند استعمال کرتے ہیں اور براہ راست ایپلی کیشن میں درآمد کیا جاتا ہے۔

نتیجے کے طور پر، آپ Bastion سے جڑ سکتے ہیں اور دیکھ سکتے ہیں کہ اب اس کے لیے نہ صرف پاسفریز کی ضرورت ہے، بلکہ تصدیق کے لیے ایک OTP کوڈ کی بھی ضرورت ہے:

➜ ssh -A bastion
Enter passphrase for key '[snip]': 
One-time password (OATH) for '[user]': 
Welcome to Ubuntu 18.04.1 LTS...

دوسرا آپشن ہارڈ ویئر کی تصدیق ہے۔

اس صورت میں، صارف کو ہر بار OTP کوڈ درج کرنے کی ضرورت نہیں ہے، کیونکہ دوسرا عنصر ہارڈویئر ڈیوائس یا بائیو میٹرکس بن جاتا ہے۔

یہاں شیف کی ترتیب تھوڑی زیادہ پیچیدہ ہے، اور کلائنٹ کی ترتیب OS پر منحصر ہے۔ لیکن تمام مراحل کو مکمل کرنے کے بعد، MacOS پر کلائنٹ پاسفریز کا استعمال کرتے ہوئے اور سینسر (دوسرا عنصر) پر انگلی رکھ کر SSH میں تصدیق کی تصدیق کر سکتے ہیں۔

iOS اور Android کے مالکان لاگ ان کی تصدیق کرتے ہیں۔ اپنے اسمارٹ فون پر ایک بٹن دبانے سے. یہ Krypt.co کی ایک خاص ٹیکنالوجی ہے، جو OTP سے بھی زیادہ محفوظ ہے۔

Linux/ChromeOS پر YubiKey USB ٹوکنز کے ساتھ کام کرنے کا آپشن موجود ہے۔ یقیناً، ایک حملہ آور آپ کا ٹوکن چرا سکتا ہے، لیکن وہ پھر بھی پاسفریز نہیں جانتا ہے۔

ماخذ: www.habr.com

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