လုံခြုံရေးသည် ရွေးချယ်စရာမဟုတ်တော့ဘဲ အင်တာနက်နည်းပညာလေ့ကျင့်သူတိုင်းအတွက် လိုအပ်သောသင်တန်းတစ်ခုဖြစ်သည်။ HTTP၊ HTTPS၊ SSL၊ TLS - နောက်ကွယ်မှာ ဘာတွေဖြစ်နေလဲဆိုတာ သင်တကယ်နားလည်ပါသလား။ ဤဆောင်းပါးတွင်၊ လူပြိန်းနှင့် ပရော်ဖက်ရှင်နယ်နည်းလမ်းဖြင့် ခေတ်သစ် ကုဒ်ဝှက်ထားသော ဆက်သွယ်ရေးပရိုတိုကောများ၏ ပင်မယုတ္တိကို ရှင်းပြမည်ဖြစ်ပြီး၊ "သော့များနောက်ကွယ်ရှိ" လျှို့ဝှက်ချက်များကို မြင်သာသောစီးဆင်းမှုဇယားဖြင့် နားလည်ရန် ကူညီပေးပါမည်။
HTTP သည် အဘယ်ကြောင့် "မလုံခြုံ" သနည်း။ --- နိဒါန်း
ရင်းနှီးပြီးသားဘရောက်ဆာသတိပေးချက်ကို မှတ်မိပါသလား။
"မင်းရဲ့ချိတ်ဆက်မှုက သီးသန့်မဟုတ်ပါဘူး။"
ဝဘ်ဆိုက်တစ်ခုသည် HTTPS ကို အသုံးမပြုပါက၊ သုံးစွဲသူ၏ အချက်အလက်အားလုံးကို ရိုးရှင်းသောစာသားဖြင့် ကွန်ရက်တစ်လျှောက် လမ်းပေါ်ထွက်စေသည်။ သင်၏ အကောင့်ဝင်စကားဝှက်များ၊ ဘဏ်ကတ်နံပါတ်များနှင့် သီးသန့်စကားပြောဆိုမှုများကိုပင် ကောင်းစွာ နေရာယူထားသည့် ဟက်ကာတစ်ဦးက ဖမ်းယူနိုင်မည်ဖြစ်သည်။ ၎င်း၏အရင်းခံအကြောင်းရင်းမှာ HTTP ၏ ကုဒ်ဝှက်ခြင်း မရှိခြင်းပင်ဖြစ်သည်။
ထို့ကြောင့် HTTPS နှင့် ၎င်းနောက်ကွယ်ရှိ "ဂိတ်စောင့်" TLS တို့သည် ဒေတာများကို အင်တာနက်တစ်လျှောက် လုံခြုံစွာသွားလာရန် မည်သို့ခွင့်ပြုသနည်း။ အလွှာတစ်ခုပြီးတစ်ခု ခွဲကြည့်ရအောင်။
HTTPS = HTTP + TLS/SSL --- ဖွဲ့စည်းပုံနှင့် အဓိက သဘောတရားများ
1. အနှစ်သာရအားဖြင့် HTTPS သည် အဘယ်နည်း။
HTTPS (HyperText Transfer Protocol Secure) = HTTP + ကုဒ်ဝှက်ခြင်းအလွှာ (TLS/SSL)
○ HTTP- ဤအရာသည် ဒေတာပို့ဆောင်မှုအတွက် တာဝန်ရှိသည်၊ သို့သော် အကြောင်းအရာကို စာသားဖြင့်မြင်နိုင်သည်။
○ TLS/SSL- HTTP ဆက်သွယ်ရေးအတွက် "ကုဒ်ဝှက်ခြင်းသော့ခတ်ခြင်း" ကို ပေးဆောင်ပြီး ဒေတာများကို တရားဝင်ပေးပို့သူနှင့် လက်ခံသူသာလျှင် ဖြေရှင်းနိုင်သည့် ပဟေဠိတစ်ခုအဖြစ် ပြောင်းလဲပေးပါသည်။
ပုံ 1- HTTP နှင့် HTTPS ဒေတာစီးဆင်းမှု။
ဘရောက်ဆာလိပ်စာဘားရှိ "လော့ခ်" သည် TLS/SSL လုံခြုံရေးအလံဖြစ်သည်။
2. TLS နှင့် SSL အကြားဆက်ဆံရေးကဘာလဲ။
○ SSL (Secure Sockets Layer)- ဆိုးရွားသော အားနည်းချက်များရှိကြောင်း တွေ့ရှိထားသည့် အစောဆုံး ကုဒ်ဝှက်ပရိုတိုကော။
○ TLS (သယ်ယူပို့ဆောင်ရေး အလွှာလုံခြုံရေး)- လုံခြုံရေးနှင့် စွမ်းဆောင်ရည်တွင် သိသာထင်ရှားသော တိုးတက်မှုများကို ပေးဆောင်သည့် SSL၊ TLS 1.2 နှင့် ပိုမိုအဆင့်မြင့်သော TLS 1.3 တို့၏ ဆက်ခံသူ။
ယနေ့ခေတ်တွင်၊ "SSL လက်မှတ်များ" သည် တိုးချဲ့မှုများဟု အမည်ပေးရုံဖြင့် TLS ပရိုတိုကောကို အကောင်အထည်ဖော်ခြင်းသာဖြစ်သည်။
TLS သို့ နက်နက်ရှိုင်းရှိုင်း- HTTPS နောက်ကွယ်မှ လျှို့ဝှက်ရေးနည်းမှော်
1. Handshake flow ကို အပြည့်အဝ ဖြေရှင်းပြီးသား
TLS လုံခြုံသောဆက်သွယ်ရေး၏ အခြေခံအုတ်မြစ်မှာ စနစ်ထည့်သွင်းချိန်၌ လက်ဆွဲနှုတ်ဆက်ခြင်းပင်ဖြစ်သည်။ စံ TLS လက်ဆွဲခြင်းစီးဆင်းမှုကို ပိုင်းခြားကြပါစို့။
ပုံ 2- ပုံမှန် TLS လက်ဆွဲခြင်း စီးဆင်းမှု။
1️⃣ TCP ချိတ်ဆက်မှု စနစ်ထည့်သွင်းခြင်း။
ကလိုင်းယင့် (ဥပမာ၊ ဘရောက်ဆာ) သည် ဆာဗာသို့ TCP ချိတ်ဆက်မှု (စံနှုန်း 443) ကို စတင်သည်။
2️⃣ TLS လက်ဆွဲနှုတ်ဆက်ခြင်းအဆင့်
○ Client Hello- ဘရောက်ဆာသည် ပံ့ပိုးထားသော TLS ဗားရှင်း၊ cipher နှင့် ကျပန်းနံပါတ်တို့ကို Server Name Indication (SNI) နှင့်အတူ ပေးပို့ပြီး ၎င်းသည် မည်သည့် hostname ကိုအသုံးပြုလိုသည့်ဆာဗာအား (ဆိုက်များစွာတွင် IP မျှဝေခြင်းကို ဖွင့်ထားသည်) ကိုပြောပြသည်။
○ ဆာဗာ Hello & Certificate ပြဿနာ- ဆာဗာသည် သင့်လျော်သော TLS ဗားရှင်းနှင့် cipher ကို ရွေးချယ်ပြီး ၎င်း၏ လက်မှတ် (အများပြည်သူသော့) နှင့် ကျပန်းနံပါတ်များဖြင့် ပြန်လည်ပေးပို့သည်။
○ လက်မှတ်အတည်ပြုခြင်း- ဘရောက်ဆာသည် အတုအယောင်မခံရကြောင်း သေချာစေရန်အတွက် ယုံကြည်ရသော root CA သို့ ဆာဗာလက်မှတ်ကွင်းဆက်ကို အလုံးစုံစစ်ဆေးသည်။
○ Premaster သော့ထုတ်လုပ်ခြင်း- ဘရောက်ဆာသည် ကြိုတင်မာစတာကီးတစ်ခုထုတ်ပေးပြီး ဆာဗာ၏အများပြည်သူသော့ဖြင့် ကုဒ်ဝှက်ပြီး ဆာဗာသို့ ပေးပို့သည်။ ပါတီနှစ်ရပ်စလုံးမှ ညှိနှိုင်းအစည်းအဝေးကီး- ပါတီနှစ်ခုလုံး၏ကျပန်းနံပါတ်များနှင့် ကြိုတင်မာစတာကီးကိုအသုံးပြု၍ သုံးစွဲသူနှင့် ဆာဗာသည် တူညီသော အချိုးကျသောကုဒ်ဝှက်ခြင်းကဏ္ဍကီးကို တွက်ချက်သည်။
○ လက်ဆွဲနှုတ်ဆက်ခြင်း ပြီးဆုံးခြင်း- နှစ်ဖက်စလုံးမှ အချင်းချင်း "ပြီးပါပြီ" မက်ဆေ့ခ်ျများ ပေးပို့ပြီး ကုဒ်ဝှက်ထားသော ဒေတာ ထုတ်လွှင့်မှု အဆင့်သို့ ဝင်ရောက်ပါ။
3️⃣ လုံခြုံသောဒေတာလွှဲပြောင်းခြင်း။
ဝန်ဆောင်မှုဒေတာအားလုံးကို ညှိနှိုင်းထားသော session key ဖြင့် ထိထိရောက်ရောက် အချိုးကျစွာ ကုဒ်ဝှက်ထားသော်လည်း၊ အလယ်တွင် ကြားဖြတ်ခံရသော်လည်း၊ ၎င်းသည် "ဗလုံးဗထွေးကုဒ်" အစုအစည်းမျှသာဖြစ်သည်။
4️⃣ ဆက်ရှင်ကို ပြန်သုံးပါ။
TLS သည် Session ကို ထပ်မံပံ့ပိုးပေးသည်၊ ၎င်းသည် တူညီသောကလိုင်းယင့်အား ငြီးငွေ့ဖွယ်လက်ဆွဲနှုတ်ဆက်ခြင်းကို ကျော်သွားစေရန် ခွင့်ပြုခြင်းဖြင့် စွမ်းဆောင်ရည်ကို များစွာတိုးတက်စေနိုင်သည်။
Asymmetric encryption (RSA ကဲ့သို့) သည် လုံခြုံသော်လည်း နှေးကွေးသည်။ Symmetric encryption သည် မြန်ဆန်သော်လည်း သော့ခွဲဝေမှုမှာ ခက်ခဲသည်။ TLS သည် "အဆင့်နှစ်ဆင့်" ဗျူဟာကို အသုံးပြုသည်- ပထမတွင် အချိုးမညီသော လုံခြုံသောသော့လဲလှယ်မှုနှင့် ဒေတာကို ထိထိရောက်ရောက် ကုဒ်ဝှက်ရန် အချိုးညီသော အစီအစဉ်ကို အသုံးပြုသည်။
2. Algorithm ဆင့်ကဲဖြစ်စဉ်နှင့် လုံခြုံရေးတိုးတက်မှု
RSA နှင့် Diffie-Hellman
○ RSA
စက်ရှင်သော့များကို လုံခြုံစွာဖြန့်ဝေရန် TLS လက်ဆွဲစဉ်အတွင်း ၎င်းကို ပထမဆုံး တွင်ကျယ်စွာ အသုံးပြုခဲ့သည်။ client သည် session key တစ်ခုကိုထုတ်ပေးပြီး ၎င်းကို server ၏ public key ဖြင့် စာဝှက်ပေးကာ ၎င်းကို server ကသာ စာဝှက်နိုင်စေရန် ပေးပို့ပါသည်။
○ Diffie-Hellman (DH/ECDH)
TLS 1.3 အရ၊ RSA ကို forward secrecy (PFS) ကိုပံ့ပိုးပေးသည့် ပိုမိုလုံခြုံသော DH/ECDH အယ်လဂိုရီသမ်များအတွက် သော့လဲလှယ်မှုအတွက် အသုံးမပြုတော့ပါ။ လျှို့ဝှက်သော့ပေါက်ကြားသွားသော်လည်း၊ သမိုင်းအချက်အလက်ကို သော့ဖွင့်၍မရပါ။
TLS ဗားရှင်း | သော့ချိန်းအယ်လ်ဂိုရီသမ် | လုံခြုံရေး |
TLS 1.2 | RSA/DH/ECDH | ပိုမြင့်တယ်။ |
TLS 1.3 | DH/ECDH အတွက်သာ | ပိုမြင့်တယ်။ |
Networking Practitioners ကျွမ်းကျင်ရမည်ဟူသော လက်တွေ့ကျသော အကြံဉာဏ်များ
○ ပိုမိုမြန်ဆန်ပြီး လုံခြုံသော ကုဒ်ဝှက်ခြင်းအတွက် TLS 1.3 သို့ ဦးစားပေး အဆင့်မြှင့်ပါ။
○ ခိုင်မာသောစာဝှက်များ (AES-GCM၊ ChaCha20 စသည်ဖြင့်) ကိုဖွင့်ပြီး အားနည်းသော အယ်လဂိုရီသမ်များနှင့် မလုံခြုံသော ပရိုတိုကောများ (SSLv3, TLS 1.0);
○ အလုံးစုံ HTTPS ကာကွယ်မှုကို တိုးတက်ကောင်းမွန်လာစေရန် HSTS၊ OCSP Stapling စသည်တို့ကို စီစဉ်သတ်မှတ်ပါ။
○ ယုံကြည်စိတ်ချရသောကွင်းဆက်၏ တရားဝင်မှုနှင့် ခိုင်မာမှုရှိစေရန်အတွက် လက်မှတ်ကွင်းဆက်ကို ပုံမှန်မွမ်းမံပြီး ပြန်လည်သုံးသပ်ပါ။
နိဂုံးနှင့် အတွေးများ- သင့်လုပ်ငန်းသည် အမှန်တကယ် လုံခြုံပါသလား။
plaintext HTTP မှ အပြည့်အဝ ကုဒ်ဝှက်ထားသော HTTPS အထိ၊ လုံခြုံရေး လိုအပ်ချက်များသည် ပရိုတိုကော အဆင့်မြှင့်တင်မှုတိုင်း၏ နောက်ကွယ်တွင် ပြောင်းလဲလာသည်။ ခေတ်မီကွန်ရက်များတွင် ကုဒ်ဝှက်ထားသော ဆက်သွယ်ရေး၏ အခြေခံအုတ်မြစ်ဖြစ်သောကြောင့် TLS သည် ပိုမိုရှုပ်ထွေးသော တိုက်ခိုက်ရေးပတ်ဝန်းကျင်ကို ရင်ဆိုင်ရန် သူ့ကိုယ်သူ အမြဲတိုးတက်နေပါသည်။
သင့်လုပ်ငန်းသည် HTTPS ကို အသုံးပြုပြီးပြီလား။ သင်၏ crypto ဖွဲ့စည်းမှုပုံစံသည် စက်မှုလုပ်ငန်း၏ အကောင်းဆုံးအလေ့အကျင့်များနှင့် ကိုက်ညီပါသလား။
တင်ချိန်- ဇူလိုင် ၂၂-၂၀၂၅