وہی ca.crt فائل نام، مختلف سرٹیفکیٹ: کیا موازنہ کریں
دو پروفائل مختلف مواد کے ساتھ ca.crt لا سکتے ہیں۔ عمل جو لوڈ کرتا ہے اس کا فنگر پرنٹ لیں، پھر جانچیں کہ یہ وہی اعتماد اینکر ہے جو آپ کا مقصد تھا۔
دونوں پروفائل ca.crt نام کی فائل لاتے ہیں، ایک ٹنل اوپر آتا ہے اور دوسرا چین خرابی کے ساتھ ناکام ہوتا ہے۔ دونوں فائلیں ساتھ ساتھ کھولنا اسے شاذ و نادر ہی طے کرتا ہے، اور تصدیق بند کرنا اسے غلط سمت میں طے کرتا ہے۔ خرابی دراصل جو سوال پوچھتی ہے وہ زیادہ تنگ ہے: ہر عمل کون سا سرٹیفکیٹ اپنا اعتماد اینکر بنا کر لوڈ کرتا ہے، اور کیا دونوں ایک ہی شے ہیں؟ پہلے اس کا جواب دیں اور باقی تشخیص کو سمت مل جائے گی۔ فائل نام پیکیجنگ لیبل ہے، اور پروفائل میں لکھا راستہ بھی مستند نہیں، اس لیے سب کچھ اس پر منحصر ہے کہ عمل واقعی کیا پڑھتا ہے۔
وہ سرٹیفکیٹ تلاش کریں جو کلائنٹ واقعی لوڈ کرتا ہے
OpenVPN اتھارٹی کو دو شکلوں میں قبول کرتا ہے، اور شکل طے کرتی ہے کہ کون سے بائٹ اہم ہیں۔ پروفائل ca کے ساتھ بیرونی فائل کی طرف اشارہ کر سکتا ہے، یا سرٹیفکیٹ کو پروفائل کے اندر ہی <ca> بلاک میں سرایت کر سکتا ہے۔ جب دونوں ہوں، سرایت شدہ بلاک جیت جاتا ہے اور پروفائل کے پاس والی فائل کبھی نہیں کھلتی۔
ناکام پروفائل پڑھیں اور کچھ بھی موازنہ کرنے سے پہلے معلوم کریں کہ یہ کون سی شکل استعمال کرتا ہے۔ پڑوسی ڈائریکٹری سے یا جس پیکیج سے دوسرا پروفائل آیا اس سے لی گئی کاپی آپ کو اس بارے میں کچھ نہیں بتاتی کہ یہ عمل کس پر بھروسہ کرتا ہے۔ یہی بات کنفیگریشن کے راستے پر بھی لاگو ہوتی ہے: یہ اسی جگہ کے حوالے سے حل ہوتا ہے جہاں کلائنٹ شروع ہوا تھا، جو ہمیشہ وہی ڈائریکٹری نہیں ہوتی جو آپ دیکھ رہے ہیں۔ پروفائل پڑھیں، فولڈر نہیں۔
سرٹیفکیٹ اپنے مواد سے پہچانے جاتے ہیں: عوامی کلید، موضوع اور جاری کنندہ، درستگی کی مدت، اور ان سب پر دستخط۔ ایک جیسے بائٹ والی دو فائلیں چاہے کوئی بھی نام ہوں ایک ہی سرٹیفکیٹ ہیں، اور ایک ہی نام والی دو فائلیں غیر متعلق اتھارٹیاں ہو سکتی ہیں۔ نام پیکیجنگ لیبل ہے، شناخت نہیں۔
openssl سے دونوں کاپیوں کا فنگر پرنٹ لیں
فنگر پرنٹ سرٹیفکیٹ کی DER انکوڈنگ پر ایک ہیش ہے، وہ شکل جسے دستخط ڈھکتے ہیں، اس لیے لائن کے سرے اور ہیڈر متن اس پر اثر نہیں ڈال سکتے۔ ہر فائل کے لیے اس کا حساب کریں اور آپ کے پاس کولن سے الگ دو ہیکس سٹرنگیں ہوں گی جو یا تو ملتی ہیں یا نہیں۔ موازنے کے سوال کا جواب دینے کے لیے سرٹیفکیٹ میں کچھ اور پڑھنے کی ضرورت نہیں۔
openssl x509 -in /etc/openvpn/office/ca.crt -noout -fingerprint -sha256
openssl x509 -in ~/profiles/lab-ca.pem -noout -fingerprint -sha256
openssl کو پروفائل ہی کی طرف اشارہ کرنا پرکشش ہے، مگر یہ فائل میں پہلے آنے والا سرٹیفکیٹ بلاک پڑھتا ہے، اور پروفائل عام طور پر <ca> سے پہلے <cert> رکھتا ہے۔ اتھارٹی کا بلاک نکالیں، پھر نکالی گئی فائل کا فنگر پرنٹ لیں، کیونکہ یہی وہ کاپی ہے جو کلائنٹ واقعی استعمال کرے گا۔
sed -n '/^<ca>$/,/^<\/ca>$/p' office.ovpn | sed '1d;$d' > /tmp/office-ca.pem
openssl x509 -in /tmp/office-ca.pem -noout -fingerprint -sha256
ایک جیسے فنگر پرنٹ کا مطلب ہے کہ اعتماد کا مواد ایک ہی ہے اور چین خرابی کی کوئی اور وجہ ہے، جو الگ تحقیق ہے۔ مختلف فنگر پرنٹ کا مطلب ہے مختلف سرٹیفکیٹ، اور اگلا حصہ وہیں سے شروع ہوتا ہے۔
حملہ فرض کرنے سے پہلے عدم مطابقت پڑھیں
مختلف فنگر پرنٹ کا مطلب ہے مختلف سرٹیفکیٹ اور اس سے زیادہ کچھ نہیں۔ دوبارہ اجرا، گردش، نام بدلا ہوا اتھارٹی یا پرانا بنڈل سب مکمل طور پر جائز تاریخوں والی مختلف فائلیں بناتے ہیں۔ کون سی تعیناتی کی ہے یہ آپریٹر یا تعیناتی ریکارڈ کے لیے سوال ہے، فائل کی تبدیلی کے وقت کے لیے نہیں۔ محافظ خانے ٹائم سٹیمپ کاپی کرتے ہیں، اس لیے نئی فائل خودبخود درست اینکر نہیں ہوتی۔
خود پر دستخط کرنے والی جڑ معمول ہے، اس لیے ایک ملنا کسی مسئلے کا ثبوت نہیں۔ تصدیق کرنے والے کا کام سرور سرٹیفکیٹ سے اسے دیے گئے اینکر تک راستہ بنانا ہے، اور چین خرابی عام طور پر مطلب ہے کہ وہ راستہ مکمل نہیں ہو سکا۔
جانچیں کہ ناکام پروفائل کا اینکر وہ اتھارٹی ہے جس سے تعیناتی اب بھی جاری کرتی ہے۔ اگر فنگر پرنٹ تعیناتی ریکارڈ میں کسی سے نہیں ملتا، تو پروفائل محض پرانا ہے، اور کلائنٹ کی طرف کوئی ٹیوننگ اسے درست نہیں کرے گی۔
تصدیق بند کیے بغیر اعتماد درست کریں
قلیل مدتی حل تصدیق بند کرنا یا چین کے ہر سرٹیفکیٹ کو اینکر کے طور پر شامل کرنا ہے۔ دونوں پیغام غائب کر دیتے ہیں، اور دونوں بدل دیتے ہیں کہ کلائنٹ اب سے کون سے سرور قبول کرے گا۔ تصدیق دوبارہ چالو کریں، مطلوبہ اینکر نصب کریں اور دوبارہ جانچیں۔
اگر چین اب بنتا ہے مگر کوئی اور خرابی ظاہر ہوتی ہے، تو یہ پیش رفت ہے: نام کی تصدیق، درستگی کی تاریخیں اور منسوخی الگ پیغامات والی الگ جانچیں ہیں۔ فنگر پرنٹ جوڑی اور اصل خرابی متن کو ٹکٹ میں ساتھ رکھیں، تاکہ اگلا شخص دیکھ سکے کہ کون سا اینکر لوڈ ہوا اور کس کی توقع تھی۔ فنگر پرنٹ کی جوڑی ہینڈ اوور نوٹ میں چپکانے کے لیے کافی چھوٹی ہے، اور اگلا واقعہ تب دوپہر کے بجائے پانچ منٹ لے گا۔
درست اتھارٹی اسی تصدیق شدہ چینل سے حاصل کریں جس نے پروفائل پہنچایا۔ سرور سے سرٹیفکیٹ کھینچنا کیونکہ اس کا موضوع جانا پہچانا لگتا ہے ایک الگ فعل ہے، اور یہ خاموشی سے وسیع کرتا ہے کہ کلائنٹ کس پر بھروسہ کرے گا۔