စနစ်တလင် အသုံသပဌုသူမျာသအာသ စာရင်သသလင်သခဌင်သနဟင့် ခလင့်ပဌုခဌင်သအတလက် Rutoken နည်သပညာကို အသုံသပဌုခဌင်သ အတလေ့အကဌုံ (အပိုင်သ 2)

မင်္ဂလာနေ့လည်ခင်သပါ ဒီအကဌောင်သအရာကို ဆက်ကဌည့်ရအောင်ယခင်အပိုင်သကို link တလင်ကဌည့်ရဟုနိုင်ပါသည်။).

ဒီနေ့တော့ လက်တလေ့ကျတဲ့အပိုင်သကို ဆက်သလာသပါမယ်။ ပဌည့်စုံသော open source cryptographic library openSSL ကို အခဌေခံ၍ ကျလန်ုပ်တို့၏ CA ကို စတင်သတ်မဟတ်ခဌင်သဖဌင့် စတင်ကဌပါစို့။ က algorithm ကို windows 7 ကို အသုံသပဌု၍ စမ်သသပ်ထာသပါသည်။

openSSL ကို ထည့်သလင်သထာသခဌင်သဖဌင့်၊ ကျလန်ုပ်တို့သည် command line မဟတစ်ဆင့် အမျိုသမျိုသသော ကုဒ်ဝဟက်ခဌင်သဆိုင်ရာ လုပ်ဆောင်ချက်မျာသကို လုပ်ဆောင်နိုင်သည် (သော့မျာသနဟင့် လက်မဟတ်မျာသ ဖန်တီသခဌင်သကဲ့သို့) ကို လုပ်ဆောင်နိုင်ပါသည်။

လုပ်ရပ်မျာသ၏ algorithm ကိုအောက်ပါအတိုင်သဖဌစ်ပါသည်:

  1. တပ်ဆင်ဖဌန့်ချီရေသ openssl-1.1.1g ကို ဒေါင်သလုဒ်လုပ်ပါ။
    openSSL တလင် မတူညီသောဗာသရဟင်သမျာသရဟိသည်။ Rutoken အတလက် စာရလက်စာတမ်သသည် openSSL ဗာသရဟင်သ 1.1.0 သို့မဟုတ် ၎င်သထက်ပို၍ လိုအပ်သည်ဟု ဆိုသည်။ ငါ openssl-1.1.1g ဗာသရဟင်သကိုသုံသတယ်။ သင်သည် openSSL ကိုတရာသဝင်ဆိုက်မဟဒေါင်သလုဒ်လုပ်နိုင်သည်၊ သို့သော်ပိုမိုလလယ်ကူသောတပ်ဆင်မဟုအတလက်၊ net ရဟိ windows အတလက်ထည့်သလင်သမဟုဖိုင်ကိုသင်ရဟာရန်လိုအပ်သည်။ မင်သအတလက် ငါလုပ်ခဲ့တယ် slproweb.com/products/Win32OpenSSL.html
    စာမျက်နဟာကို အောက်သို့ဆင်သပဌီသ Win64 OpenSSL v1.1.1g EXE 63MB ထည့်သလင်သသူအာသ ဒေါင်သလုဒ်လုပ်ပါ။
  2. ကလန်ပျူတာတလင် openssl-1.1.1g ကို ထည့်သလင်သပါ။
    တပ်ဆင်ခဌင်သကို C: Program Files ဖိုင်တလဲတလင် အလိုအလျောက်ညလဟန်ပဌသည့် စံလမ်သကဌောင်သအတိုင်သ လုပ်ဆောင်ရမည်ဖဌစ်သည်။ ပရိုဂရမ်ကို OpenSSL-Win64 ဖိုင်တလဲတလင် ထည့်သလင်သမည်ဖဌစ်သည်။
  3. သင်လိုအပ်သည့်အတိုင်သ openSSL ကို စနစ်ထည့်သလင်သရန်အတလက် openssl.cfg ဖိုင်ရဟိပါသည်။ ယခင်စာပိုဒ်တလင်ဖော်ပဌထာသသည့်အတိုင်သ openSSL ကို သင်ထည့်သလင်သပါက ကဖိုင်သည် C:\Program Files\OpenSSL-Win64bin လမ်သကဌောင်သတလင် တည်ရဟိပါသည်။ openssl.cfg ကို သိမ်သဆည်သထာသသည့် ဖိုင်တလဲသို့ သလာသကာ ဥပမာ၊ Notepad++ ကို အသုံသပဌု၍ ကဖိုင်ကို ဖလင့်ပါ။
  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
    

    ယခု ကျလန်ုပ်တို့သည် အထက်နမူနာတလင် ပဌထာသသည့်အတိုင်သ demoCA လမ်သညလဟန်နဟင့် လမ်သကဌောင်သခလဲမျာသကို ဖန်တီသရန် လိုအပ်ပါသည်။ ပဌီသလျဟင် dir တလင် သတ်မဟတ်ထာသသည့် လမ်သကဌောင်သတစ်လျဟောက် ကလမ်သညလဟန်တလင် ထာသလိုက်ပါ (ကျလန်ုပ်တလင် /Users/username/bin/openSSLca/demoCA)။

    dir ကို မဟန်ကန်စလာ စာလုံသပေါင်သတတ်ရန် အလလန်အရေသကဌီသပါသည် - ကသည်မဟာ ကျလန်ုပ်တို့၏ လက်မဟတ်ဌာနတည်ရဟိရာ လမ်သညလဟန်လမ်သကဌောင်သဆီသို့ ဖဌစ်ပါသည်။ ကလမ်သညလဟန်ချက်သည် /Users (အသုံသပဌုသူအချို့၏အကောင့်ထဲတလင်) တလင်တည်ရဟိရပါမည်။ ဥပမာအာသဖဌင့်၊ သင်သည် ကလမ်သညလဟန်ချက်ကို C: Program Files တလင်ထာသပါက၊ system သည် openssl.cfg ဆက်တင်မျာသဖဌင့် ဖိုင်ကိုမဌင်ရလိမ့်မည်မဟုတ်ပါ (အနည်သဆုံသတော့ ကျလန်ုပ်အတလက် ထိုကဲ့သို့ဖဌစ်သည်)။

    $dir - dir တလင် သတ်မဟတ်ထာသသော လမ်သကဌောင်သကို ကနေရာတလင် အစာသထိုသထာသသည်။

    နောက်ထပ်အရေသကဌီသသောအချက်မဟာ အလလတ် index.txt ဖိုင်ကို ဖန်တီသရန်ဖဌစ်ပဌီသ၊ ကဖိုင်မပါဘဲ “openSSL ca
” ညလဟန်ကဌာသချက်မျာသသည် အလုပ်မဖဌစ်ပါ။

    သင့်တလင် အမဟတ်စဉ်ဖိုင်၊ root သီသသန့်ကီသ (ca.key)၊ root လက်မဟတ် (ca.crt) လည်သရဟိရန် လိုအပ်ပါသည်။ ကဖိုင်မျာသရရဟိရေသ လုပ်ငန်သစဉ်ကို အောက်တလင် ဖော်ပဌပါမည်။

  6. Rutoken မဟပေသသော ကုဒ်ဝဟက်ခဌင်သဆိုင်ရာ အယ်လဂိုရီသမ်မျာသကို ကျလန်ုပ်တို့ ချိတ်ဆက်ပါသည်။
    ကချိတ်ဆက်မဟုသည် openssl.cfg ဖိုင်တလင် တည်ရဟိသည်။

    • ပထမဆုံသအနေနဲ့ လိုအပ်တဲ့ Rutoken algorithms တလေကို ဒေါင်သလုဒ်လုပ်ရပါမယ်။ ၎င်သတို့သည် rtengine.dll, rtpkcs11ecp.dll ဖိုင်မျာသဖဌစ်သည်။
      ဒါကိုလုပ်ဖို့ Rutoken SDK ကိုဒေါင်သလုဒ်လုပ်ပါ။ www.rutoken.ru/developers/sdk.

      Rutoken SDK သည် Rutoken ကိုစမ်သသုံသလိုသော developer မျာသအတလက်ဖဌစ်သည်။ မတူညီသော ပရိုဂရမ်သမင်သဘာသာစကာသမျာသဖဌင့် 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

      အလလန်အရေသကဌီသသောအချက်ဖဌစ်သည်။ Libraries rtengine.dll၊ rtpkcs11ecp.dll သည် Rutoken အတလက် ထည့်သလင်သထာသသော driver မပါဘဲ အလုပ်မလုပ်ပါ။ ဒါ့အပဌင် 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 configuration ဖိုင်သို့ လမ်သကဌောင်သကို သတ်မဟတ်သည့် ပတ်၀န်သကျင် ကိန်သရဟင်ကို ထည့်ရန် သေချာပါစေ။ ငါ့ကိစ္စတလင်၊ OPENSSL_CONF ကိန်သရဟင်ကို C:Program FilesOpenSSL-Win64binopenssl.cfg လမ်သကဌောင်သဖဌင့် ဖန်တီသထာသသည်။

    path variable တလင် openssl.exe တည်ရဟိသည့် folder သို့ လမ်သကဌောင်သကို သတ်မဟတ်ရမည်၊ ကျလန်ုပ်၏ ကိစ္စမဟာ C: Program FilesOpenSSL-Win64bin ဖဌစ်သည်။

  8. ယခု သင်သည် အဆင့် 5 သို့ပဌန်သလာသပဌီသ demoCA လမ်သညလဟန်အတလက် ပျောက်ဆုံသနေသောဖိုင်မျာသကို ဖန်တီသနိုင်ပါပဌီ။
    1. မည်သည့်အရာမဟ အလုပ်မလုပ်ဘဲ ပထမဆုံသအရေသကဌီသသောဖိုင်သည် အမဟတ်စဉ်ဖဌစ်သည်။ ၎င်သသည် တိုသချဲ့မဟုမပါသောဖိုင်ဖဌစ်ပဌီသ၊ တန်ဖိုသမဟာ 01 ဖဌစ်သင့်သည်။ ကဖိုင်ကို သင်ကိုယ်တိုင်ဖန်တီသပဌီသ အတလင်သတလင် 01 ဟုရေသနိုင်သည်။ ၎င်သကို Rutoken SDK လမ်သကဌောင်သတစ်လျဟောက် sdk/openssl/rtengine/samples/tool/demoCA မဟလည်သ ဒေါင်သလုဒ်လုပ်နိုင်ပါသည်။ /.
      demoCA လမ်သညလဟန်တလင် ကျလန်ုပ်တို့လိုအပ်သည့် အတိအကျဖဌစ်သည့် အမဟတ်စဉ်ဖိုင်ပါရဟိသည်။
    2. root သီသသန့်ကီသ ဖန်တီသပါ။
      ၎င်သကိုလုပ်ဆောင်ရန်၊ ကျလန်ုပ်တို့သည် command line တလင်တိုက်ရိုက်လုပ်ဆောင်ရမည့် openSSL library command ကိုအသုံသပဌုပါမည်-

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

    3. ကျလန်ုပ်တို့သည် root လက်မဟတ်တစ်ခုဖန်တီသသည်။
      ဒါကိုလုပ်ဖို့၊ အောက်ပါ openSSL စာကဌည့်တိုက် command ကိုသုံသပါ။

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

      ယခင်အဆင့်တလင် ထုတ်ပေသခဲ့သည့် root သီသသန့်ကီသကို အရင်သလက်မဟတ်ထုတ်ပေသရန် လိုအပ်ကဌောင်သ ကျေသဇူသပဌု၍ သတိပဌုပါ။ ထို့ကဌောင့်၊ command line ကို တူညီသော directory တလင် စတင်ရပါမည်။

    ယခုအခါ အာသလုံသတလင် demoCA လမ်သညလဟန်၏ ပဌီသပဌည့်စုံသော ဖလဲ့စည်သမဟုပုံစံအတလက် ပျောက်ဆုံသနေသော ဖိုင်မျာသ အာသလုံသရဟိသည်။ ဖန်တီသထာသသောဖိုင်မျာသကို အမဟတ် 5 တလင်ဖော်ပဌထာသသော လမ်သညလဟန်မျာသထဲတလင် ထည့်ပါ။

အချက် ၈ ချက်စလုံသကို ပဌီသမဌောက်ပဌီသနောက်၊ ကျလန်ုပ်တို့၏ လက်မဟတ်ဌာနကို အပဌည့်အဝ ပဌင်ဆင်သတ်မဟတ်ထာသကဌောင်သ ကျလန်ုပ်တို့ ယူဆပါမည်။

နောက်အပိုင်သမဟာတော့ ဖော်ပဌထာသတဲ့ အရာတလေကို ပဌီသမဌောက်ဖို့အတလက် အသိအမဟတ်ပဌု အာဏာပိုင်တလေနဲ့ ဘယ်လို လက်တလဲဆောင်ရလက်မလဲဆိုတာကို ဖော်ပဌသလာသမဟာဖဌစ်ပါတယ်။ ဆောင်သပါသ၏ယခင်အပိုင်သ.

source: www.habr.com

မဟတ်ချက် Add