26. လုံခြုံရေးအတွက်စဉ်းစားရန်အချက်များ (Security Considerations)

မာစတာ စကားဝှက်အားရိုက်ထည့်ပြီးသည်နှင့် authentication (စစ်မှန်ကြောင်းအသိအမှတ်ပြုခြင်း) database ထဲရှိ authentication configs များသို့ဝင်ရောက်ခွင့်ရရှိရန် API (Application Programming Interface) ပွင့်လာမည်ဖြစ်ပြီး ၎င်းသည် Firefox အလုပ်လုပ်ပုံနှင့်ဆင်တူသည်။ သို့​သော် ကနဦး အကောင်အထည်ဖော်သည့်အဆင့်တွင် PyQGIS သို့ဝင်ရောက်ခွင့်ပိတ်ပင်မည့် wall များသတ်မှတ်မထားသည့်အတွက် authentication credentials များကို ဝင်ရောက်ယူဆောင်သွားနိုင်သော အဖျက် PyQGIS plugin သို့မဟုတ် standalone app တစ်ခုကို download လုပ်မိခြင်း/install လုပ်မိခြင်း တို့ကိုဖြစ်စေနိုင်သည်။

Feature ၏ ကနဦး ထုတ်ဝေမှုအတွက် မြန်ဆန်သော အဖြေမှာ PyQGIS bindings အများစုအား authentication system ထဲတွင်ထည့်သွင်းမထားရန်ဖြစ်သည်။

ထိရောက်ခိုင်မာသောနည်းလမ်းမဟုတ်သော်လည်း အခြားရိုးရှင်းသော ဖြေရှင်းရန် နည်းလမ်းတစ်ခုမှာ Settings► Options ► Authentication ထဲတွင် combobox တစ်ခုကိုထည့်သွင်းခြင်းဖြစ်သည်။ (defaults အား “ဘယ်တော့မှ”ဟုထားပါ)-

"Allow Python access to authentication system"
Choices: [ confirm once per session | always confirm | always allow | never]
"Authentication system အား Python access ခွင့်ပြုပေးခြင်း"
ရွေးချယ်ရန်များ- [ လုပ်ငန်းစဉ်တစ်ခုလျှင်တစ်ကြိမ်သာအတည်ပြုခြင်း | အမြဲတမ်းအတည်ပြုခြင်း | အမြဲတမ်းခွင့်ပြုခြင်း | ဘယ်တော့မှ]

ထိုကဲ့သို့ ရွေးချယ်စရာတစ်ခုအတွက် setting ကို Python မှဝင်ရောက်၍မရသည့်နေရာတစ်ခု၊ ဥပမာ- authentication database တွင် သိမ်းဆည်းရန်လိုအပ်ပြီး မာစတာစကားဝှက်ဖြင့် encrypt (လုံခြုံအောင်ကုဒ်ဖြင့်ဝှက်ထား) ပြုလုပ်ထားရန် လိုအပ်ပါသည်။

  • နောက်ရွေးချယ်စရာတစ်ခုမှာ အသုံးပြုသူအနေဖြင့် authentication စနစ်သို့ ဝင်ရောက်ရန် သီးသန့် ခွင့်ပြုခဲ့သည့် plugin များကိုနောက်ယောင်ခံလိုက်ရန်ဖြစ်ပါသည်။ သို့သော်လည်း အမှန်တကယ် လုပ်ဆောင်နေသည့် plugin အား ကောက်နှုတ်ရွေးထုတ်ရန်မှာ ရိုးရှင်းမှုမရှိနိုင်ပါ။

  • Plugin များအား ၎င်းတို့၏ကိုယ်ပိုင် virtual environment များတွင် Sandboxing (plugin တစ်ခုစီကို ၎င်း၏ကိုယ်ပိုင် virtual space သို့မဟုတ် သီးခြားပတ်ဝန်းကျင်တွင် ထည့်သွင်းထားခြင်း) လုပ်ခြင်းဖြင့် authentication configs များကို ခွင့်ပြုထားသော နောက်ထပ် plugin တစ်ခုမှ ‘cross-plugin’ hacking (Plugin များ တစ်ခုနှင့်တစ်ခု အတွင်းသို့ ခိုးဝင်ခြင်း) လုပ်ခြင်းအား လျှော့ချပေးနိုင်မည်။ ဤသို့ပြုလုပ်လိုက်ခြင်းသည် cross-plugin communication (plugin တစ်ခုနှင့်တစ်ခု ဆက်သွယ်ချိတ်ဆက်ခြင်း) ကို ကန့်သတ်ကောင်းကန့်သတ်နိုင်သော်လည်း တတိယပါတီ plugin များအကြားတွင်သာ ဖြစ်နိုင်ပါသည်။

  • နောက်ထပ်ကောင်းသောဖြေရှင်းနည်းတစ်ခုမှာ ယုံကြည်စိတ်ချရသော plugin ဖန်တီးသူများကို code ထည့်သွင်းထားသည့် certificate (လက်မှတ်)များထုတ်ပေးထားရန်ဖြစ်သည်။ ထို့နောက် plugin ကိုဖွင့်သောအခါ ၎င်းတွင်ပါရှိသော လက်မှတ် မှန်မမှန်စစ်ဆေးနိုင်မည်ဖြစ်သည်။ အကယ်၍ လိုအပ်ပါက အသုံးပြုသူအနေဖြင့် ရှိရင်း certificate management dialogs များအားအသုံးပြု၍ plugin နှင့်ဆက်စပ်သည့် လက်မှတ်အတွက် မယုံကြည်အပ်သော policy တစ်ခုကိုလည်း တိုက်ရိုက် သတ်မှတ်ထားနိုင်သည်။

  • အခြားနည်းလမ်းတစ်ခုမှာ Python အား အထိခိုက်မခံသော authentication စနစ်မှ အချက်အလက်များသို့ မည်သည့်အခါမျှဝင်ရောက်ခွင့်မပြုပဲ QGIS ပင်မ widget များ အသုံးပြုခြင်းကိုသာ ခွင့်ပြုပေးထားခြင်း သို့မဟုတ် plugin အား authentication configuration တစ်ခုရှိသည့် အရင်းအမြစ်များနှင့်အလုပ်လုပ်ရန်အတွက် authentication စနစ်ပေါင်းစပ်ခြင်းများကို ပုံစံပွားခြင်း (duplicate) တို့ဖြစ်ပြီး ပင်မ app တွင်ထည့်သွင်းထားသော authentication config နှင့် မာစတာစကားဝှက်ကို ဆက်လက်ထားရှိမည်ဖြစ်သည်။

လုံခြုံရေး ပူပန်စရာများသည် C++ plugin များအတွက် အတူတူပင်ဖြစ်သော်လည်း C++ တွင် Python ကဲ့သို့ အလွယ်တကူ ဖယ်ရှားရန် လွယ်ကူသော လုပ်ဆောင်မှု ပေါင်းစပ်ထားခြင်း မရှိသောကြောင့် ဝင်ရောက်မှုကို ကန့်သတ်ရန် ပိုမိုခက်ခဲမည်ဖြစ်သည်။

26.1. ကန့်သတ်ချက်များ (Restrictions)

OpenSSL နှင့်ဆက်စပ်သည့် ရှုပ်ထွေးနေသော licensing and exporting ပြဿနာများအတွက် အသုံးပြုပါသည်။ Qt သည် SSL လက်မှတ်များကို ကိုင်တွယ်အလုပ်လုပ်နိုင်ရန်အတွက် OpenSSL library များကို အသုံးပြုရပါမည်။ Qt ကို ပေါင်းစည်းပုံပေါ် မူတည်၍ ဆော့ဖ်ဝဲလည်ပတ်နေချိန်တွင် ပုံမှန်အားဖြင့် OpenSSL library များသို့ ချိတ်ဆက်ထားသည်။ (Export လုပ်ခြင်း ကန့်သတ်ချက်များကိုရှောင်ရှားရန်)

QCA သည်လည်း အလားတူပင်ဖြစ်သည်၊ အဘယ့်ကြောင့်ဆိုသော် ဆော့ဖ်ဝဲလည်ပတ်နေချိန်တွင် qca-ossl (OpenSSL) plugin အား ဖွင့်ထားသောကြောင့် QCA နှင့်ချိတ်ဆက်သောအခါ မည်သည့်ကန့်သတ်ချက်မျှ ပေါ်ပေါက်မည်မဟုတ်ပါ။ qca-ossl plugin ကို OpenSSL libs နှင့် တိုက်ရိုက်ချိတ်ဆက်ထားခြင်းဖြစ်သည်။ Packager (plugin ဖြန့်ဖြူးမည့်သူများ) များသည် plugin ဖြန့်ဖြူးရာတွင် OpenSSL ချိတ်ဆက်ခြင်းဆိုင်ရာ ကန့်သတ်ချက်များအတိုင်းဖြစ်စေရန် လိုအပ်သူများဖြစ်နိုင်ပါသည်။ ဖြစ်ကောင်းဖြစ်နိုင်ပါသည်။ ကျွန်ုပ်တကယ်မသိပါ။ ရှေ့နေတစ်ယောက်မဟုတ်၍သေချာမပြောနိုင်ပါ။

ဆော့ဖ်ဝဲလည်ပတ်နေချိန်တွင် qca-ossl အားမတွေ့ပါက authentication စနစ်သည် ၎င်းဘာသာ လုံခြုံစွာပိတ်သွားမည်ဖြစ်သည်။