سسٹم میں صارفین کے اندراج اور اجازت دینے کے لیے روٹوکن ٹیکنالوجی کے استعمال کا تجربہ (حصہ 1)

صبح بخیر میں اس موضوع پر اپنا تجربہ بتانا چاہتا ہوں۔

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

اس مثال میں، Rutoken EDS 2.0 استعمال کیا جاتا ہے۔

اس Rutoken کے ساتھ کام کرنے کے لیے آپ کو ضرورت ہے۔ ونڈوز پر ڈرائیور انسٹال کریں۔.

ونڈوز کے لیے، صرف ایک ڈرائیور کو انسٹال کرنا اس بات کو یقینی بناتا ہے کہ جس چیز کی ضرورت ہے وہ انسٹال ہے تاکہ OS آپ کے Rutoken کو دیکھے اور اس کے ساتھ کام کر سکے۔

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

ایپلی کیشن کا کلائنٹ حصہ rutoken کے ساتھ rutoken پلگ ان کے ذریعے تعامل کرتا ہے۔ یہ ایک ایسا پروگرام ہے جو ہر براؤزر پر الگ سے انسٹال ہوتا ہے۔ ونڈوز کے لیے آپ کو صرف پلگ ان ڈاؤن لوڈ اور انسٹال کرنے کی ضرورت ہے، اس لنک پر واقع ہے۔.

بس، اب ہم درخواست کے کلائنٹ کی طرف سے Rutoken کے ساتھ بات چیت کر سکتے ہیں۔

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

خیال کا خلاصہ درج ذیل ہے:

  1. کلائنٹ سرور کو اجازت کی درخواست بھیجتا ہے۔
  2. سرور بے ترتیب تار بھیج کر کلائنٹ کی درخواست کا جواب دیتا ہے۔
  3. کلائنٹ اس سٹرنگ کو بے ترتیب 32 بٹس کے ساتھ پیڈ کرتا ہے۔
  4. کلائنٹ اپنے سرٹیفکیٹ کے ساتھ موصول ہونے والی تار پر دستخط کرتا ہے۔
  5. کلائنٹ موصول شدہ انکرپٹڈ پیغام سرور کو بھیجتا ہے۔
  6. سرور اصل غیر خفیہ کردہ پیغام موصول کرکے دستخط کی تصدیق کرتا ہے۔
  7. سرور موصول شدہ غیر خفیہ کردہ پیغام سے آخری 32 بٹس کو ہٹا دیتا ہے۔
  8. سرور موصول ہونے والے نتائج کا اس پیغام سے موازنہ کرتا ہے جو اجازت کی درخواست کرتے وقت بھیجا گیا تھا۔
  9. اگر پیغامات ایک جیسے ہیں تو اجازت دینے کو کامیاب سمجھا جاتا ہے۔

مندرجہ بالا الگورتھم میں ایک سرٹیفکیٹ کے طور پر ایسی چیز ہے. اس مثال کے لیے، آپ کو کچھ کرپٹوگرافک تھیوری کو سمجھنے کی ضرورت ہے۔ Habré پر ہے اس موضوع پر بہت اچھا مضمون.

اس مثال میں، ہم غیر متناسب خفیہ کاری الگورتھم استعمال کریں گے۔ غیر متناسب الگورتھم کو نافذ کرنے کے لیے، آپ کے پاس ایک کلیدی جوڑا اور ایک سرٹیفکیٹ ہونا ضروری ہے۔

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

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

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

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

اگر ہم اپنے مسئلے کی طرف لوٹتے ہیں تو اس کا حل واضح نظر آتا ہے۔ آپ کو کسی نہ کسی طرح اپنا سرٹیفیکیشن سینٹر بنانے کی ضرورت ہے۔ لیکن اس سے پہلے، آپ کو یہ معلوم کرنا ہوگا کہ سرٹیفیکیشن سینٹر کو کس بنیاد پر صارف کو سرٹیفکیٹ جاری کرنا چاہیے، کیونکہ وہ اس کے بارے میں کچھ نہیں جانتا ہے۔ (مثال کے طور پر، اس کا پہلا نام، آخری نام، وغیرہ) ایسی چیز ہے جسے سرٹیفکیٹ کی درخواست کہتے ہیں۔ اس معیار کے بارے میں مزید معلومات حاصل کی جا سکتی ہیں، مثال کے طور پر، ویکیپیڈیا پر ru.wikipedia.org/wiki/PKCS
ہم ورژن 1.7 - PKCS#10 استعمال کریں گے۔

آئیے ہم Rutoken پر ایک سرٹیفکیٹ تیار کرنے کے الگورتھم کی وضاحت کرتے ہیں (اصل ماخذ: دستاویزات):

  1. ہم کلائنٹ پر ایک کلیدی جوڑی بناتے ہیں اور اسے Rutoken پر محفوظ کرتے ہیں۔ (بچت خود بخود ہوتی ہے)
  2. ہم کلائنٹ پر ایک سرٹیفکیٹ کی درخواست بناتے ہیں۔
  3. کلائنٹ سے ہم یہ درخواست سرور کو بھیجتے ہیں۔
  4. جب ہمیں سرور پر سرٹیفکیٹ کی درخواست موصول ہوتی ہے، تو ہم اپنے سرٹیفیکیشن اتھارٹی سے ایک سرٹیفکیٹ جاری کرتے ہیں۔
  5. ہم یہ سرٹیفکیٹ کلائنٹ کو بھیجتے ہیں۔
  6. ہم کلائنٹ پر Rutoken سرٹیفکیٹ محفوظ کرتے ہیں۔
  7. سرٹیفکیٹ کو اس کلیدی جوڑے کا پابند ہونا چاہیے جو پہلے مرحلے میں بنایا گیا تھا۔

اب یہ واضح ہو گیا ہے کہ سرور کس طرح کلائنٹ کے دستخط کو ڈکرپٹ کرنے کے قابل ہو گا، کیونکہ اس نے خود اسے سرٹیفکیٹ جاری کیا ہے۔

اگلے حصے میں، ہم مکمل اوپن سورس کرپٹوگرافی لائبریری openSSL کی بنیاد پر آپ کے سرٹیفکیٹ اتھارٹی کو کیسے ترتیب دیں اس پر گہری نظر ڈالیں گے۔

ماخذ: www.habr.com

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