FreeBSD codebase သို့ VPN WireGuard ၏ အကောင်အထည်ဖော်မှုအသစ်

FreeBSD အရင်းအမြစ်သစ်ပင်သည် VPN WireGuard ရေးသားသူ Jason A. Donenfeld နှင့် John H. Baldwin တို့မှ ပံ့ပိုးမှုများဖြင့် core FreeBSD နှင့် WireGuard ဖွံ့ဖြိုးတိုးတက်ရေးအဖွဲ့များ ပူးပေါင်းထုတ်လုပ်သော kernel module ကုဒ်အပေါ်အခြေခံ၍ VPN WireGuard ၏အကောင်အထည်ဖော်မှုအသစ်ဖြင့် အပ်ဒိတ်လုပ်ထားပါသည်။ 2000 ခုနှစ်များအစောပိုင်းတွင် FreeBSD kernel တွင် SMP နှင့် NUMA အတွက် ပံ့ပိုးမှုအကောင်အထည်ဖော်ခဲ့သော GDB နှင့် FreeBSD ၏ နာမည်ကြီး developer တစ်ဦးဖြစ်သည်။ ယာဉ်မောင်းကို FreeBSD (sys/dev/wg) တွင် လက်ခံပြီးနောက်၊ ၎င်း၏ ဖွံ့ဖြိုးတိုးတက်မှုနှင့် ပြုပြင်ထိန်းသိမ်းမှုများကို FreeBSD သိုလှောင်မှုတွင် လုပ်ဆောင်သွားမည်ဖြစ်သည်။

ကုဒ်ကို လက်ခံခြင်းမပြုမီ၊ FreeBSD ဖောင်ဒေးရှင်း၏ ပံ့ပိုးကူညီမှုဖြင့် အပြောင်းအလဲများကို အပြည့်အဝ ပြန်လည်သုံးသပ်ခြင်း ပြုလုပ်ခဲ့ပြီး၊ ထိုကာလအတွင်း ယာဉ်မောင်း၏ ကျန်ရှိသည့် kernel ခွဲစနစ်များနှင့် ဆက်စပ်မှုကိုလည်း ပိုင်းခြားစိတ်ဖြာပြီး kernel မှ ပံ့ပိုးပေးထားသည့် cryptographic primitives များကို အသုံးပြုရန် ဖြစ်နိုင်ချေ အကဲဖြတ်ခဲ့သည်။

ယာဉ်မောင်းမှလိုအပ်သော cryptographic algorithms ကိုအသုံးပြုရန်၊ FreeBSD kernel crypto-subsystem ၏ API ကို တိုးချဲ့ခဲ့ပြီး၊ စံ crypto-API မှတဆင့် FreeBSD တွင် မပံ့ပိုးနိုင်သော algorithms များကိုအသုံးပြုခြင်းအားခွင့်ပြုသည့် ကြိုးတစ်ချောင်းကိုထည့်သွင်းထားသည်။ libsodium စာကြည့်တိုက်မှ လိုအပ်သော algorithms များ။ FreeBSD တွင် ပံ့ပိုးပေးထားသည့် ဤ algorithm ကို အကောင်အထည်ဖော်ခြင်းသည် ပုံသေ hash အရွယ်အစားနှင့် ချိတ်ဆက်ထားသောကြောင့် ဒရိုက်ဗာတွင် တည်ဆောက်ထားသော algorithms များမှ Blake2 hashs တွက်ချက်ခြင်းအတွက် code သာကျန်တော့သည်။

ထို့အပြင်၊ ပြန်လည်သုံးသပ်ခြင်းလုပ်ငန်းစဉ်အတွင်း၊ multi-core CPU များပေါ်တွင် load distribution ၏ထိရောက်မှုကို တိုးမြှင့်နိုင်စေရန်အတွက် ကုဒ်ပိုကောင်းအောင်ပြုလုပ်ခြင်းအား လုပ်ဆောင်ခဲ့သည် (ပက်ကတ်စာဝှက်ခြင်းနှင့် CPU cores များသို့ ကုဒ်စာဝှက်ခြင်းလုပ်ဆောင်ခြင်းတာဝန်များကို တူညီစွာချိန်ညှိခြင်းအား သေချာစေသည်)။ ရလဒ်အနေဖြင့်၊ ပက်ကေ့ချ်များကို စီမံဆောင်ရွက်ရာတွင် အကျုံးဝင်မှုသည် Linux driver အကောင်အထည်ဖော်မှုနှင့် နီးစပ်ပါသည်။ ကုဒ်သည် ကုဒ်ဝှက်ခြင်းလုပ်ဆောင်မှုများကို အရှိန်မြှင့်ရန် ossl ဒရိုက်ဗာကို အသုံးပြုနိုင်စွမ်းကိုလည်း ပေးဆောင်ပါသည်။

WireGuard ကို FreeBSD တွင် ပေါင်းစပ်ရန် ယခင်ကြိုးပမ်းမှုနှင့်မတူဘဲ၊ အကောင်အထည်ဖော်မှုအသစ်သည် Linux နှင့် FreeBSD တွင် ဖွဲ့စည်းမှုပုံစံကို ပေါင်းစည်းနိုင်စေသည့် ifconfig ၏ မွမ်းမံထားသောဗားရှင်းထက် စံ wg utility ကို အသုံးပြုထားသည်။ wg utility နှင့် driver တို့ကို wg ကုဒ်အတွက် လိုင်စင်ကိုပြောင်းခြင်းဖြင့် ဖြစ်နိုင်ချေရှိသော FreeBSD အရင်းအမြစ်ကုဒ်တွင် ပါဝင်သည် (ကုဒ်ကို ယခုအခါ MIT နှင့် GPL လိုင်စင်များအောက်တွင် ရနိုင်ပါပြီ)။ FreeBSD တွင် WireGuard ထည့်သွင်းရန် နောက်ဆုံးကြိုးပမ်းမှုကို 2020 ခုနှစ်တွင် ပြုလုပ်ခဲ့သော်လည်း အရှုပ်အရှင်းတစ်ခုဖြင့် ပြီးဆုံးသွားခဲ့ပြီး အရည်အသွေးနိမ့်သော၊ ဂရုမစိုက်သော buffers များဖြင့် လုပ်ဆောင်မှု၊ စစ်ဆေးမှုများအစား ချလံများအသုံးပြုမှု၊ မပြည့်စုံသော အကောင်အထည်ဖော်မှုကြောင့် ပြီးသားကုဒ်ကို ဖယ်ရှားခဲ့သည်။ ပရိုတိုကောနှင့် GPL လိုင်စင်ကို ချိုးဖောက်ခြင်း။

VPN WireGuard သည် ခေတ်မီ ကုဒ်ဝှက်နည်းများကို အခြေခံ၍ အကောင်အထည်ဖော်သည်၊ အလွန်မြင့်မားသော စွမ်းဆောင်ရည်ကို ပံ့ပိုးပေးသည်၊ အသုံးပြုရလွယ်ကူသည်၊ ရှုပ်ထွေးမှုများ ကင်းစင်ကာ အသွားအလာ များပြားသော ပမာဏကို လုပ်ဆောင်ပေးသည့် ကြီးမားသော ဖြန့်ကျက်မှုများစွာတွင် သူ့ကိုယ်သူ သက်သေပြလိုက်ပါရစေ။ အဆိုပါပရောဂျက်သည် 2015 ခုနှစ်ကတည်းက ဖွံ့ဖြိုးလာခဲ့ပြီး အသုံးပြုထားသည့် ကုဒ်ဝှက်နည်းလမ်းများကို စာရင်းစစ်ခြင်းနှင့် တရားဝင်အတည်ပြုခြင်းတို့ကို ပြုလုပ်ခဲ့သည်။ WireGuard သည် ကွန်ရက်အင်တာဖေ့စ်တစ်ခုစီတွင် လျှို့ဝှက်ကီးတစ်ခုကို ချိတ်တွဲကာ အများသူငှာသော့များကို ချိတ်ရန် ၎င်းကိုအသုံးပြုခြင်းပါ၀င်သော ကုဒ်ဝှက်ခြင်းသော့လမ်းကြောင်းတင်ခြင်း၏ သဘောတရားကို အသုံးပြုသည်။

SSH နှင့် အလားတူသော ချိတ်ဆက်မှုတစ်ခုကို တည်ဆောက်ရန်အတွက် အများသူငှာသော့များကို လဲလှယ်သည်။ အသုံးပြုသူနေရာရှိ သီးခြား daemon ကိုမလည်ပတ်ဘဲ သော့များနှင့် ချိတ်ဆက်ရန်၊ Noise Protocol Framework ၏ Noise_IK ယန္တရားကို SSH တွင် authorized_keys ကို ထိန်းသိမ်းခြင်းနှင့် ဆင်တူသည်။ ဒေတာပေးပို့ခြင်းကို UDP packets တွင် encapsulation ဖြင့်လုပ်ဆောင်သည်။ ၎င်းသည် အလိုအလျောက်ဖောက်သည် ပြန်လည်ဖွဲ့စည်းမှုဖြင့် ချိတ်ဆက်မှုကို ဖြတ်တောက်ခြင်းမပြုဘဲ VPN ဆာဗာ၏ IP လိပ်စာကို ပြောင်းလဲခြင်း (Roaming) ကို ပံ့ပိုးပေးသည်။

ကုဒ်ဝှက်ခြင်းသည် ChaCha20 ထုတ်လွှင့်ချက် cipher နှင့် Poly1305 မက်ဆေ့ချ် စစ်မှန်ကြောင်းအထောက်အထားပြခြင်းဆိုင်ရာ အယ်လဂိုရီသမ် (MAC) ကို အသုံးပြု၍ Daniel J. Bernstein၊ Tanja Lange နှင့် Peter Schwabe မှ ထုတ်လုပ်သည်။ ChaCha20 နှင့် Poly1305 တို့သည် AES-256-CTR နှင့် HMAC ၏ ပိုမိုမြန်ဆန်ပြီး ဘေးကင်းသော analogues များအဖြစ် နေရာယူထားပြီး၊ အထူးဟာ့ဒ်ဝဲပံ့ပိုးမှုမလိုအပ်ဘဲ ပုံသေလုပ်ဆောင်မှုအချိန်ကို ရရှိစေမည့် ဆော့ဖ်ဝဲအကောင်အထည်ဖော်မှု။ မျှဝေထားသော လျှို့ဝှက်သော့ကို ဖန်တီးရန်အတွက်၊ ဘဲဥပုံမျဉ်းကွေး Diffie-Hellman ပရိုတိုကောကို Daniel Bernstein မှ အဆိုပြုထားသည့် Curve25519 အကောင်အထည်ဖော်မှုတွင် အသုံးပြုပါသည်။ BLAKE2s algorithm (RFC7693) ကို hashing အတွက် သုံးသည်။

source: opennet.ru

မှတ်ချက် Add