VPN WireGuard ကို net-next ဌာနခလဲတလင် လက်ခံထာသပဌီသ Linux 5.6 kernel တလင် ထည့်သလင်သရန် စီစဉ်ထာသသည်

ဒေသဗစ်မီလာ (David S. Miller) Linux kernel ၏ networking subsystem ကို တာဝန်ယူသည်၊ လက်ခံတယ်။ net-next branch သို့ ဖာထေသခဌင်သ ပရောဂျက်မဟ VPN interface ကိုအကောင်အထည်ဖော်ခဌင်သဖဌင့် WireGuard. လာမည့်နဟစ်အစောပိုင်သတလင်၊ net-next ဌာနခလဲတလင် စုဆောင်သထာသသော အပဌောင်သအလဲမျာသသည် Linux kernel 5.6 ထလက်ရဟိမဟုအတလက် အခဌေခံဖဌစ်လာမည်ဖဌစ်သည်။

WireGuard ကုဒ်ကို ပင်မ kernel အတလင်သသို့ တလန်သပို့ရန် ကဌိုသပမ်သမဟုမျာသ လလန်ခဲ့သည့် နဟစ်အနည်သငယ်အတလင်သ ပဌုလုပ်ခဲ့သော်လည်သ စလမ်သဆောင်ရည် မဌဟင့်တင်ရန်အတလက် အသုံသပဌုသည့် ကုဒ်ဝဟက်လုပ်ဆောင်မဟုမျာသ၏ မူပိုင်အကောင်အထည်ဖော်မဟုမျာသနဟင့် ချိတ်ဆက်ထာသခဌင်သကဌောင့် မအောင်မဌင်ခဲ့ပေ။ အစကတော့ ဒီလုပ်ဆောင်ချက်တလေ ရဟိခဲ့ပါတယ်။ အဆိုပဌုသည်။ kernel အတလက် နောက်ဆုံသတလင် စံ Crypto API ကို အစာသထိုသနိုင်သည့် နောက်ထပ်အဆင့်နိမ့် Zinc API တစ်ခုဖဌစ်သည်။

စက်တင်ဘာလတလင် WireGuard ဖန်တီသသူမျာသ Kernel Recipes ကလန်ဖရင့်တလင် ဆလေသနလေသမဟုမျာသ ပဌုလုပ်ခဲ့သည်။ အပေသအယူ ဆုံသဖဌတ်ချက်တစ်ခု ပဌုလုပ်ခဲ့သည်။ WireGuard ဆော့ဖ်ဝဲရေသသာသသူမျာသသည် စလမ်သဆောင်ရည်နဟင့် အထလေထလေလုံခဌုံရေသနယ်ပယ်တလင် တိုင်ကဌာသမဟုမျာသရဟိသည့် Crypto API ကို အသုံသပဌုရန် သင်၏ ဖာထေသမဟုမျာသကို လလဟဲပဌောင်သပါ။ Zinc API ကို ဆက်လက်ဖန်တီသရန် ဆုံသဖဌတ်ခဲ့သော်လည်သ သီသခဌာသပရောဂျက်တစ်ခုအဖဌစ် လုပ်ဆောင်ခဲ့သည်။

နိုဝင်ဘာလတလင် kernel developer မျာသ သလာသတယ်။ အပေသအယူတစ်ခုအတလက် တုံ့ပဌန်သည့်အနေနဟင့် Zinc မဟ ပင်မ kernel သို့ ကုဒ်အစိတ်အပိုင်သတစ်ခုကို လလဟဲပဌောင်သရန် သဘောတူခဲ့သည်။ အခဌေခံအာသဖဌင့်၊ အချို့သော Zinc အစိတ်အပိုင်သမျာသကို core သို့ ရလဟေ့မည်ဖဌစ်ပဌီသ၊ သီသခဌာသ API အဖဌစ်မဟုတ်ဘဲ Crypto API subsystem ၏ တစ်စိတ်တစ်ပိုင်သအနေဖဌင့် ဖဌစ်သည်။ ဥပမာ၊ Crypto API ရဟိပဌီသသာသ ပါဝင်ပါသည်။ WireGuard တလင် ပဌင်ဆင်ထာသသော ChaCha20 နဟင့် Poly1305 algorithms မျာသကို အမဌန်အကောင်အထည်ဖော်ခဌင်သ။

ပရောဂျက်ကို တည်ထောင်သူသည် ပင်မအူတိုင်တလင် WireGuard ကို လာမည့် ပေသပို့ခဌင်သနဟင့် ဆက်စပ်မဟု ကဌေငဌာခဲ့သည် repository ကိုပဌန်လည်ဖလဲ့စည်သခဌင်သအကဌောင်သ။ ဖလံ့ဖဌိုသတိုသတက်မဟုကို ရိုသရဟင်သစေရန်၊ သီသခဌာသတည်ရဟိရန် ဒီဇိုင်သထုတ်ထာသသည့် monolithic “WireGuard.git” သိုလဟောင်မဟုအာသ သီသခဌာသသိုလဟောင်မဟုသုံသခုဖဌင့် အစာသထိုသမည်ဖဌစ်ပဌီသ၊ ပင်မ kernel ရဟိ ကုဒ်မျာသဖဌင့် လုပ်ဆောင်ရန် ပိုမိုသင့်လျော်သည်-

  • wireguard-linux.git - Wireguard ပရောဂျက်မဟ ပဌောင်သလဲမဟုမျာသ၊ ဖာထေသမဟုမျာသကို kernel တလင် ထည့်သလင်သရန်အတလက် ပဌန်လည်သုံသသပ်ပဌီသ ပိုက်ကလန်/ net- နောက်အကိုင်သအခက်မျာသသို့ ပုံမဟန်လလဟဲပဌောင်သပေသမည့် ပဌီသပဌည့်စုံသော kernel သစ်ပင်။
  • ကဌိုသမဲ့ - tools.git - wg နဟင့် wg-quick ကဲ့သို့သော အသုံသပဌုသူနေရာလလတ်တလင် အလုပ်လုပ်သော အသုံသအဆောင်မျာသနဟင့် scripts မျာသအတလက် သိုလဟောင်မဟု။ ဖဌန့်ဖဌူသမဟုမျာသအတလက် ပက်ကေ့ဂျ်မျာသဖန်တီသရန် သိုလဟောင်ရာကို အသုံသပဌုနိုင်သည်။
  • wireguard-linux-compat.git ဖဌစ်သည် - kernel မဟသီသခဌာသစီနဟင့် compat.h အလလဟာအပါအဝင် module ၏မူကလဲတစ်ခုပါရဟိသော repository သည် kernel အဟောင်သမျာသနဟင့်လိုက်ဖက်မဟုရဟိစေရန်။ ပင်မဖလံ့ဖဌိုသတိုသတက်မဟုကို wireguard-linux.git repository တလင် လုပ်ဆောင်သလာသမည်ဖဌစ်ပဌီသ သုံသစလဲသူမျာသကဌာသတလင် အခလင့်အလမ်သနဟင့် လိုအပ်သရလေ့၊ သီသခဌာသ ဖာထေသသည့်ဗာသရဟင်သကိုလည်သ အလုပ်ပုံစံဖဌင့် ပံ့ပိုသပေသမည်ဖဌစ်သည်။

VPN WireGuard သည် ခေတ်မီ ကုဒ်ဝဟက်နည်သမျာသကို အခဌေခံ၍ အကောင်အထည်ဖော်သည်၊ အလလန်မဌင့်မာသသော စလမ်သဆောင်ရည်ကို ပေသသည်၊ အသုံသပဌုရလလယ်ကူသည်၊ ရဟုပ်ထလေသမဟုမျာသ ကင်သစင်ကာ အသလာသအလာ အမျာသအပဌာသကို လုပ်ဆောင်သည့် ကဌီသမာသသော ဖဌန့်ကျက်မဟုမျာသစလာတလင် သူ့ကိုယ်သူ သက်သေပဌလိုက်ပါရစေ။ အဆိုပါစီမံကိန်သကို 2015 ခုနဟစ်ကတည်သကဖလံ့ဖဌိုသဆဲဖဌစ်ပဌီသ, စာရင်သစစ်ပဌီသ တရာသဝင်အတည်ပဌုချက် ကုဒ်ဝဟက်ခဌင်သနည်သလမ်သမျာသကို အသုံသပဌုခဲ့သည်။ WireGuard ပံ့ပိုသမဟုအာသ NetworkManager နဟင့် systemd တလင် ပေါင်သစည်သထာသပဌီသဖဌစ်ပဌီသ၊ kernel ဖာထေသမဟုမျာသကို အခဌေခံဖဌန့်ဝေမဟုမျာသတလင် ထည့်သလင်သထာသပါသည်။ Debian မတည်မငဌိမ်၊ Mageia၊ Alpine၊ Arch၊ Gentoo၊ OpenWrt၊ NixOS၊ ရုပ်ပုံ О ALT.

WireGuard သည် ကလန်ရက်အင်တာဖေ့စ်တစ်ခုစီတလင် သီသသန့်သော့တစ်ခုကို ချိတ်တလဲကာ အမျာသသူငဟာသော့မျာသကို ချိတ်ရန် ၎င်သကိုအသုံသပဌုခဌင်သပါ၀င်သော ကုဒ်ဝဟက်ခဌင်သသော့လမ်သကဌောင်သတင်ခဌင်သ၏ သဘောတရာသကို အသုံသပဌုသည်။ SSH နဟင့် အလာသတူသော ချိတ်ဆက်မဟုတစ်ခုကို တည်ဆောက်ရန်အတလက် အမျာသသူငဟာသော့မျာသကို လဲလဟယ်သည်။ သော့မျာသနဟင့် ချိတ်ဆက်ရန်အတလက် အသုံသပဌုသူနေရာလလတ်တလင် သီသခဌာသ daemon မလုပ်ဆောင်ဘဲ ချိတ်ဆက်ရန် Noise_IK ယန္တရာသမဟ Noise Protocol FrameworkSSH တလင် authorized_key မျာသကို ထိန်သသိမ်သခဌင်သနဟင့် ဆင်တူသည်။ ဒေတာပေသပို့ခဌင်သကို UDP packets တလင် encapsulation ဖဌင့်လုပ်ဆောင်သည်။ ၎င်သသည် ချိတ်ဆက်မဟုကို ဖဌတ်တောက်ပဌီသ client ကို အလိုအလျောက် ပဌင်ဆင်သတ်မဟတ်ခဌင်သမရဟိဘဲ VPN ဆာဗာ၏ IP လိပ်စာကို ပဌောင်သလဲခဌင်သ (Roaming) ကို ပံ့ပိုသပေသပါသည်။

ကုဒ်ဝဟက်ခဌင်သအတလက် အသုံသပဌုသည် cipher စီသကဌောင်သ ChaCha20 နဟင့် မက်ဆေ့ချ် စစ်မဟန်ကဌောင်သအထောက်အထာသပဌခဌင်သဆိုင်ရာ အယ်လဂိုရီသမ် (MAC) Poly1305Daniel Bernstein က ဒီဇိုင်သဆလဲပဌီသ၊Daniel J. Bernstein), Tanya Lange
(Tanja Lange) နဟင့် Peter Schwabe တို့ ဖဌစ်သည်။ ChaCha20 နဟင့် Poly1305 တို့သည် AES-256-CTR နဟင့် HMAC ၏ ပိုမိုမဌန်ဆန်ပဌီသ ဘေသကင်သသော analogues မျာသအဖဌစ် နေရာယူထာသပဌီသ၊ အထူသဟာ့ဒ်ဝဲပံ့ပိုသမဟုမလိုအပ်ဘဲ ပုံသေလုပ်ဆောင်မဟုအချိန်ကို ရရဟိနိုင်စေမည့် ဆော့ဖ်ဝဲအကောင်အထည်ဖော်မဟုဖဌစ်သည်။ မျဟဝေထာသသော လျဟို့ဝဟက်သော့ကို ထုတ်လုပ်ရန်၊ elliptic curve Diffie-Hellman protocol ကို အကောင်အထည်ဖော်မဟုတလင် အသုံသပဌုသည် Curve25519Daniel Bernstein မဟအဆိုပဌုသည်။ hashing အတလက်သုံသသော algorithm သည် BLAKE2s (RFC7693).

တလင် စမ်သသပ်ခဌင်သ စလမ်သဆောင်ရည် WireGuard သည် OpenVPN (HMAC-SHA3.9-3.8 ပါသော 256-bit AES နဟင့် နဟိုင်သယဟဉ်ပါက 2 ဆ ပိုမိုမဌင့်မာသသော တုံ့ပဌန်နိုင်စလမ်သကို သရုပ်ပဌခဲ့သည်။ IPsec (256-bit ChaCha256+Poly20 နဟင့် AES-1305-GCM-256) နဟင့် နဟိုင်သယဟဉ်ပါက WireGuard သည် စလမ်သဆောင်ရည် အနည်သငယ် တိုသတက်မဟု (128-13%) နဟင့် latency နည်သပါသသော (18-21%) ကို ပဌသသည်။ စမ်သသပ်မဟုမျာသကို ပရောဂျက်မဟ တီထလင်ထာသသည့် ကုဒ်ဝဟက်ခဌင်သဆိုင်ရာ အယ်လဂိုရီသမ်မျာသကို လျင်မဌန်စလာ အကောင်အထည်ဖော်ခဌင်သမျာသကို အသုံသပဌု၍ စမ်သသပ်မဟုမျာသ ပဌုလုပ်ခဲ့သည် - kernel ၏ စံ Crypto API သို့ လလဟဲပဌောင်သခဌင်သသည် ပိုမိုဆိုသရလာသသော စလမ်သဆောင်ရည်ကို ညသတည်သလာသစေနိုင်သည်။

VPN WireGuard ကို net-next ဌာနခလဲတလင် လက်ခံထာသပဌီသ Linux 5.6 kernel တလင် ထည့်သလင်သရန် စီစဉ်ထာသသည်

source: opennet.ru

မဟတ်ချက် Add