سرور کی کلیدیں اور صارف کی اسناد الگ الگ مالکان کیوں ضروری ہیں
گیٹ وے کی شناخت اور صارف کی اجازت دو مختلف راز ہیں جن کا اثر دائرہ مختلف ہے۔ تین سوال طے کرتے ہیں کہ ہر ایک کو کیسے محفوظ کیا جائے، تقسیم کیا جائے اور منسوخ کیا جائے۔
وہ کلید جو ثابت کرتی ہے کہ آپ کا گیٹ وے خود ہے اور وہ اسناد جو بتاتی ہیں کہ ایک شخص شامل ہو سکتا ہے، دونوں راز ہیں، اور تشبیہ یہیں ختم ہو جاتی ہے۔ ایک ہر کلائنٹ کے سامنے ایک سروس کی شناخت کرتی ہے؛ دوسری اُس سروس کے سامنے ایک صارف کی شناخت کرتی ہے۔ دونوں کو ملانا ترتیب کے وقت ایک قدم بچاتا ہے اور کسی واقعے کے دوران ایک دوپہر کا نقصان دیتا ہے، کیونکہ ہر ایک کی بحالی ایک ہی عمل نہیں ہے۔ یہ تقسیم ترتیب دینے میں بے رونق ہے اور چھوڑ دینے پر یاد رہتی ہے۔
دو راز، دو مختلف مالک
گیٹ وے ایک نجی کلید یا سرٹیفکیٹ رکھتا ہے جس کا واحد کام مصافحے کے دوران اپنی شناخت ثابت کرنا ہے۔ کلائنٹس کو اِسے جانچنے کے لیے مماثل عوامی مواد درکار ہوتا ہے، اور اُنہیں کبھی نجی حصے کی ضرورت نہیں ہوتی۔ یہی عدم توازن سرور کی تصدیق کو ممکن بناتا ہے، بغیر یہ کہ ہر صارف کو سرور کی نقل کرنے کی صلاحیت دی جائے۔
صارف کا مواد دوسری سمت ہے۔ کلائنٹ کی نجی کلید، کلائنٹ کا سرٹیفکیٹ یا پاس ورڈ ظاہر کرتا ہے کہ اِس مخصوص شخص یا آلے کو رسائی دی گئی ہے۔ توقع ہے کہ اِسے تقسیم کیا جائے گا، آلات کے درمیان نقل کیا جائے گا، اور بالآخر منسوخ کر دیا جائے گا۔
WireGuard اِس تقسیم کو واضح کرتا ہے کیونکہ ہر شریک کے پاس کلیدوں کا جوڑا ہوتا ہے: سرور کی نجی کلید سرور پر رہتی ہے، اور جو ترتیبی فائل آپ صارف کو دیتے ہیں اُس میں اُس کی اپنی نجی کلید اور سرور کی عوامی کلید ہوتی ہے۔ ایسی پروفائل جس میں سرور کی نجی کلید ہو، کوئی شارٹ کٹ نہیں، بلکہ فائل شیئرنگ کے انتظار میں ایک سمجھوتا ہے۔
تین سوال جو تقسیم کا فیصلہ کرتے ہیں
پوچھیں کہ راز کون پڑھ سکے گا، اِس کے افشا ہونے سے حملہ آور کیا کر سکے گا، اور اِس کا حل ایک منسوخی ہے یا سروس کی مکمل تعمیر نو۔
اگر کوئی صارف اِسے پڑھ سکتا ہے اور یہ گیٹ وے کی شناخت ثابت کرتا ہے، تو دوسرے سوال کا جواب یہ ہے کہ حملہ آور ہر کلائنٹ کے سامنے آپ کے سرور کی نقل کر سکتا ہے — بدترین نتیجہ، کیونکہ کلائنٹس اُس شناخت پر بھروسا کرنے کے لیے بنائے گئے ہیں۔ اگر یہ صرف ایک صارف کو ثابت کرتا ہے، تو افشا اُس صارف کی ایک پیر تک رسائی دیتا ہے، اور منسوخی ایک معمول کا عمل ہے۔ اگر یہ سرٹیفکیٹ اتھارٹی کی کلید ہے، تو افشا دونوں سے بدتر ہے، کیونکہ حملہ آور ایسی شناختیں بنا سکتا ہے جن پر ہر اینڈ پوائنٹ بھروسا کرتا ہے۔
یہ تین جواب محفوظ کرنے کا قاعدہ بناتے ہیں: CA کی کلید آف لائن یا کسی والٹ میں رہتی ہے، گیٹ وے کی کلید گیٹ وے پر رہتی ہے، اور صارفین کی کلیدیں صارفین کے پاس رہتی ہیں۔ کوئی بھی ترتیب جو سہولت کے لیے تینوں کو ایک ہی ڈائریکٹری میں رکھے، ایک فیصلے کو حادثے میں بدل دیتی ہے۔
کلائنٹ کو درحقیقت کیا چاہیے
کلائنٹ کو عوامی سرٹیفکیٹ یا عوامی پیر کلید، CA کا وہ مواد یا فنگر پرنٹ جس پر اُسے بھروسا کرنا چاہیے، اپنی نجی کلید، اور اینڈ پوائنٹ کی تفصیلات درکار ہیں۔ اِس فہرست میں گیٹ وے کی نجی شناخت کا کچھ بھی نہیں ہے۔
دستاویزات وہ جگہ ہے جہاں یہ لیک ہوتا ہے۔ ایسی گائیڈ جو کہے کہ سرور کی ڈائریکٹری نقل کریں اور جو ضرورت نہ ہو حذف کر دیں، پہلے ہی غلط نمونہ سکھا چکی ہے، کیونکہ حذف کرنے کے مرحلے کے بعد بچنے والی فائل کو شاذ و نادر ہی کوئی جانچتا ہے۔
گیٹ وے کو چھوئے بغیر ایک صارف کو منسوخ کریں
چونکہ صارف کی شناختیں الگ الگ جاری ہوتی ہیں، اِس لیے وہ الگ الگ واپس بھی لی جا سکتی ہیں۔ سرٹیفکیٹ پر مبنی تعیناتی کلائنٹ کا سرٹیفکیٹ منسوخ کرتی ہے اور تازہ شدہ منسوخی فہرست شائع کرتی ہے؛ WireGuard کی تعیناتی سرور کی ترتیب سے پیر کا اندراج ہٹا دیتی ہے۔ اِن میں سے کوئی عمل گیٹ وے کی اپنی کلید کو تبدیل نہیں کرتا۔
اجازت کا ریکارڈ رکھیں، ورنہ آپ کو معلوم نہیں ہوگا کہ کون سی شناخت واپس لینی ہے۔ ایک اسپریڈ شیٹ کافی ہے، بشرطیکہ اُس میں شخص، آلہ، سیریل یا عوامی کلید اور تاریخ لکھی ہو، اور بشرطیکہ اُسے بنانے والے کے جانے کے بعد کوئی اُس کا ذمہ دار ہو۔
نیچے دیے گئے کمانڈ ایک کلائنٹ سرٹیفکیٹ کا معائنہ کرتے ہیں اور پھر اُسے OpenSSL طرز کے اتھارٹی کے ذریعے منسوخ کرتے ہیں، یعنی وہی عمل جسے easy-rsa لپیٹتا ہے:
openssl x509 -in client.crt -noout -subject -serial
openssl ca -config openssl.cnf -revoke client.crt
openssl ca -config openssl.cnf -gencrl -out crl.pemنئی فہرست ہر اُس جگہ شائع کریں جہاں کلائنٹس اُسے جانچتے ہیں، ورنہ منسوخی ایک ایسی فائل میں نوٹ ہے جو کچھ نہیں بدلتی۔ اگر آپ کا گیٹ وے کلائنٹ سرٹیفکیٹ منسوخی فہرست دیکھے بغیر قبول کرتا ہے، تو یہ واضح طور پر بتائیں بجائے اِس کے کہ منسوخی کے کام کرنے کا اشارہ دیں۔
بیک اپ کو رازوں کی طرح الگ رکھیں
تعمیر نو کا آرکائیو جائز طور پر گیٹ وے کی کلید اور CA کا مواد رکھتا ہے، کیونکہ اِن کے بغیر بحالی سروس کو دوبارہ نہیں بنا سکتی۔ کلائنٹ سیٹ اپ پیکج میں یہ نہیں ہونا چاہیے، اور دونوں کو ایک ساتھ محفوظ نہیں کرنا چاہیے۔ ہر آرکائیو پر یہ لیبل لگائیں کہ اُسے کون رکھ سکتا ہے، نہ کہ بننے کی تاریخ۔ تھکا ہوا منتظم رات دو بجے یہی لیبل پڑھتا ہے۔
یہی فرق یہ بھی طے کرتا ہے کہ ہر ایک کو کون حاصل کر سکتا ہے۔ گیٹ وے کا انتظام، صارف کی شناختیں جاری کرنا اور بیک اپ پڑھنا تین مختلف اختیارات ہیں، اور جس شخص کو ایک کی ضرورت ہو اُسے خود بخود باقی کی ضرورت نہیں ہوتی۔ یہ اجازتیں لکھیں، پھر اُنہیں اُس سے جانچیں جو آپ کا اسٹوریج واقعی اجازت دیتا ہے، کیونکہ ڈائریکٹری وراثت خاموشی سے پالیسی کی نیت سے زیادہ دے دیتی ہے۔