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

صبح بخیر آئیے اس موضوع کو جاری رکھیںپچھلا حصہ لنک پر دیکھا جا سکتا ہے۔).

آج ہم عملی حصے کی طرف بڑھتے ہیں۔ آئیے مکمل اوپن سورس کرپٹوگرافک لائبریری openSSL کی بنیاد پر اپنا CA ترتیب دے کر شروع کریں۔ اس الگورتھم کو ونڈوز 7 کا استعمال کرتے ہوئے آزمایا گیا ہے۔

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

اعمال کا الگورتھم مندرجہ ذیل ہے۔

  1. انسٹالیشن ڈسٹری بیوشن openssl-1.1.1g ڈاؤن لوڈ کریں۔
    openSSL کے مختلف ورژن ہیں۔ روٹوکن کے لیے دستاویزات میں کہا گیا ہے کہ اوپن ایس ایس ایل ورژن 1.1.0 یا اس سے نیا درکار ہے۔ میں نے openssl-1.1.1g ورژن استعمال کیا۔ آپ اوپن ایس ایل کو آفیشل سائٹ سے ڈاؤن لوڈ کر سکتے ہیں، لیکن آسان انسٹالیشن کے لیے آپ کو نیٹ پر ونڈوز کے لیے انسٹالیشن فائل تلاش کرنی ہوگی۔ میں نے آپ کے لیے یہ کیا: slproweb.com/products/Win32OpenSSL.html
    صفحہ نیچے سکرول کریں اور Win64 OpenSSL v1.1.1g EXE 63MB انسٹالر ڈاؤن لوڈ کریں۔
  2. کمپیوٹر پر openssl-1.1.1g انسٹال کریں۔
    تنصیب معیاری راستے کے مطابق کی جانی چاہیے، جو خود بخود C: Program Files فولڈر میں ظاہر ہوتا ہے۔ پروگرام OpenSSL-Win64 فولڈر میں انسٹال ہوگا۔
  3. اوپن ایس ایس ایل کو جس طرح آپ کی ضرورت ہے ترتیب دینے کے لیے، openssl.cfg فائل موجود ہے۔ یہ فائل C:\Program Files\OpenSSL-Win64bin پاتھ میں واقع ہے اگر آپ نے اوپن ایس ایس ایل انسٹال کیا ہے جیسا کہ پچھلے پیراگراف میں بیان کیا گیا ہے۔ اس فولڈر میں جائیں جہاں openssl.cfg محفوظ ہے اور اس فائل کو کھولیں، مثال کے طور پر، نوٹ پیڈ++۔
  4. آپ نے شاید اندازہ لگایا ہے کہ سرٹیفیکیشن اتھارٹی کسی نہ کسی طرح openssl.cfg فائل کے مواد کو تبدیل کر کے کنفیگر ہو جائے گی، اور آپ بالکل درست ہیں۔ اس کے لیے [ca ] کمانڈ کی تخصیص کی ضرورت ہے۔ openssl.cfg فائل میں، متن کا آغاز جہاں ہم تبدیلیاں کریں گے اس طرح پایا جا سکتا ہے: [ ca ]۔
  5. اب میں اس کی وضاحت کے ساتھ ترتیب کی ایک مثال دوں گا:
    [ ca ]
    default_ca	= CA_default		
    
     [ CA_default ]
    dir		= /Users/username/bin/openSSLca/demoCA		 
    certs		= $dir/certs		
    crl_dir		= $dir/crl		
    database	= $dir/index.txt	
    new_certs_dir	= $dir/newcerts	
    certificate	= $dir/ca.crt 	
    serial		= $dir/private/serial 		
    crlnumber	= $dir/crlnumber	
    					
    crl		= $dir/crl.pem 		
    private_key	= $dir/private/ca.key
    x509_extensions	= usr_cert
    

    اب ہمیں ڈیمو سی اے ڈائرکٹری اور ذیلی ڈائرکٹری بنانے کی ضرورت ہے جیسا کہ اوپر کی مثال میں دکھایا گیا ہے۔ اور اسے اس ڈائرکٹری میں اس راستے پر رکھیں جو dir میں بتائی گئی ہے (میرے پاس /Users/username/bin/openSSLca/demoCA ہے)۔

    dir کا صحیح ہجے کرنا بہت ضروری ہے - یہ اس ڈائریکٹری کا راستہ ہے جہاں ہمارا سرٹیفیکیشن سینٹر واقع ہوگا۔ یہ ڈائریکٹری /Users (یعنی کسی صارف کے اکاؤنٹ میں) میں واقع ہونی چاہیے۔ اگر آپ اس ڈائرکٹری کو رکھتے ہیں، مثال کے طور پر، C: Program Files میں، سسٹم Openssl.cfg سیٹنگ والی فائل نہیں دیکھے گا (کم از کم میرے لیے ایسا ہی تھا)۔

    $dir - dir میں بتائے گئے راستے کو یہاں بدل دیا گیا ہے۔

    ایک اور اہم نکتہ ایک خالی index.txt فائل بنانا ہے، اس فائل کے بغیر "openSSL ca …" کمانڈز کام نہیں کریں گی۔

    آپ کے پاس ایک سیریل فائل، ایک روٹ پرائیویٹ کلید (ca.key)، ایک روٹ سرٹیفکیٹ (ca.crt) ہونا ضروری ہے۔ ان فائلوں کو حاصل کرنے کا عمل ذیل میں بیان کیا جائے گا۔

  6. ہم Rutoken کے ذریعہ فراہم کردہ انکرپشن الگورتھم کو جوڑتے ہیں۔
    یہ کنکشن openssl.cfg فائل میں ہوتا ہے۔

    • سب سے پہلے، آپ کو ضروری Rutoken الگورتھم ڈاؤن لوڈ کرنے کی ضرورت ہے۔ یہ فائلیں ہیں rtengine.dll, rtpkcs11ecp.dll۔
      ایسا کرنے کے لیے، Rutoken SDK ڈاؤن لوڈ کریں: www.rutoken.ru/developers/sdk.

      Rutoken SDK صرف ان ڈویلپرز کے لیے ہے جو Rutoken کو آزمانا چاہتے ہیں۔ مختلف پروگرامنگ زبانوں میں Rutoken کے ساتھ کام کرنے کے لیے دونوں الگ الگ مثالیں ہیں، اور کچھ لائبریریاں پیش کی گئی ہیں۔ ہماری لائبریریاں rtengine.dll اور rtpkcs11ecp.dll بالترتیب Rutoken sdk میں اس مقام پر واقع ہیں:

      sdk/openssl/rtengine/bin/windows-x86_64/lib/rtengine.dll
      sdk/pkcs11/lib/windows-x86_64/rtpkcs11ecp.dll

      ایک بہت اہم نکتہ۔ لائبریریاں rtengine.dll, rtpkcs11ecp.dll Rutoken کے لیے انسٹال شدہ ڈرائیور کے بغیر کام نہیں کرتی ہیں۔ اس کے علاوہ Rutoken کمپیوٹر سے منسلک ہونا ضروری ہے. (Rutoken کے لیے درکار ہر چیز کو انسٹال کرنے کے لیے، مضمون کا پچھلا حصہ دیکھیں habr.com/en/post/506450)

    • rtengine.dll اور rtpkcs11ecp.dll لائبریریوں کو صارف کے اکاؤنٹ میں کہیں بھی رکھا جا سکتا ہے۔
    • ہم ان لائبریریوں کے راستے openssl.cfg میں لکھتے ہیں۔ ایسا کرنے کے لیے openssl.cfg فائل کو کھولیں، اس فائل کے شروع میں لائن لگائیں:
      openssl_conf = openssl_def

      فائل کے آخر میں آپ کو شامل کرنے کی ضرورت ہے:

      [ openssl_def ]
      engines = engine_section
      [ engine_section ]
      rtengine = gost_section
      [ gost_section ]
      dynamic_path = /Users/username/bin/sdk-rutoken/openssl/rtengine/bin/windows-x86_64/lib/rtengine.dll
      MODULE_PATH = /Users/username/bin/sdk-rutoken/pkcs11/lib/windows-x86_64/rtpkcs11ecp.dll
      RAND_TOKEN = pkcs11:manufacturer=Aktiv%20Co.;model=Rutoken%20ECP
      default_algorithms = CIPHERS, DIGEST, PKEY, RAND
      

      dynamic_path - آپ کو rtengine.dll لائبریری کے لیے اپنا راستہ بتانا ہوگا۔
      MODULE_PATH - آپ کو rtpkcs11ecp.dll لائبریری میں اپنا راستہ لکھنے کی ضرورت ہے۔

  7. ماحولیاتی متغیرات کو شامل کرنا۔

    ایک ماحولیاتی متغیر شامل کرنا یقینی بنائیں جو openssl.cfg کنفیگریشن فائل کا راستہ بتاتا ہو۔ میرے معاملے میں، OPENSSL_CONF متغیر کو پاتھ C:Program FilesOpenSSL-Win64binopenssl.cfg کے ساتھ بنایا گیا تھا۔

    پاتھ متغیر میں، آپ کو اس فولڈر کا راستہ بتانا ہوگا جہاں openssl.exe واقع ہے، میرے معاملے میں یہ ہے: C: Program FilesOpenSSL-Win64bin۔

  8. اب آپ مرحلہ 5 پر واپس جا سکتے ہیں اور ڈیمو سی اے ڈائرکٹری کے لیے گم شدہ فائلیں بنا سکتے ہیں۔
    1. پہلی اہم فائل جس کے بغیر کچھ کام نہیں کرے گا وہ سیریل ہے۔ یہ ایکسٹینشن کے بغیر فائل ہے، جس کی ویلیو 01 ہونی چاہیے۔ آپ اس فائل کو خود بنا سکتے ہیں اور اندر 01 لکھ سکتے ہیں۔ آپ اسے sdk/openssl/rtengine/samples/tool/demoCA کے راستے Rutoken SDK سے بھی ڈاؤن لوڈ کر سکتے ہیں۔ /.
      ڈیمو سی اے ڈائرکٹری میں سیریل فائل ہوتی ہے، جس کی ہمیں ضرورت ہے۔
    2. روٹ پرائیویٹ کلید بنائیں۔
      ایسا کرنے کے لیے، ہم اوپن ایس ایس ایل لائبریری کمانڈ استعمال کریں گے، جسے براہ راست کمانڈ لائن پر چلایا جانا چاہیے۔

      openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out ca.key

    3. ہم روٹ سرٹیفکیٹ بناتے ہیں۔
      ایسا کرنے کے لیے، درج ذیل اوپن ایس ایس ایل لائبریری کمانڈ استعمال کریں:

      openssl req -utf8 -x509 -key ca.key -out ca.crt

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

    ڈیمو سی اے ڈائرکٹری کی مکمل کنفیگریشن کے لیے اب ہر چیز میں تمام غائب فائلیں ہیں۔ بنائی گئی فائلوں کو پوائنٹ 5 میں بتائی گئی ڈائریکٹریز میں رکھیں۔

ہم فرض کریں گے کہ تمام 8 پوائنٹس کو مکمل کرنے کے بعد، ہمارا سرٹیفیکیشن سینٹر مکمل طور پر کنفیگر ہو گیا ہے۔

اگلے حصے میں، میں بیان کروں گا کہ ہم سرٹیفیکیشن اتھارٹی کے ساتھ کس طرح کام کریں گے تاکہ اسے پورا کیا جا سکے۔ مضمون کا پچھلا حصہ.

ماخذ: www.habr.com

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