Security ( PKI with TLS Certificates)

What is PKI ?

                ဒီတော့ PKI အကြောင်းလေး နည်းနည်းလေးပြောချင်ပါတယ်။ PKI ဆိုတာ က Public Key Infrastructure လို့ ခေါ်ပြီး network communication တွေမှာ secure ဖြစ်စေဖို့ အတွက်အသုံးပြုပါတယ်။ Kubernetes သည် PKI မှာ ပါဝင်တဲ့ asymmetric encryption method ကိုအသုံးပြုပါတယ်။ Asymmetric encryption method ဆိုတာက တစ်ဖက်နဲ့ တစ်ဖက် network ပေါ်မှာ ဆက်သွယ်တဲ့ လမ်းကြောင်းတစ်လျှောက်မှာ data တွေကို secure ဖြစ်အောင်ပြုလုပ်ပေးပါတယ်။ 

                ဘယ်လိုလုပ်ပေးလဲဆိုတော့ asymmetric encryption က public key and private key ဆိုပြီး key နှစ်ခု ကို generate ထုတ်ပေးပါတယ်။ Public key/Private key ဆိုတာက data ပို့တဲ့အခါ public key နဲ့ encyrpt လုပ်ထား ခဲ့ရင် ၎င်း data ကို decrypt ပြန်လုပ်ဖို့အတွက် private key ရှိမှသာ decrypt လုပ်နိုင်မှာဖြစ်ပါတယ်။  



                          ဥပမာအနေနဲ့  တစ်ဖက်နဲ့ တစ်ဖက် ပထမဆုံး ဆက်သွယ်တဲ့အခါမှာ နှစ်ဖက်စလုံးက သူတို့ရဲ့ public key ကို exchange လုပ်ကြပါတယ်။ ပြီးတဲ့နောက် data တွေကို ပို့တဲ့အခါမှာ တစ်ဖက် က ပေးပို့ထားတဲ့ public key နဲ့ encrypt လုပ်ပြီး ပို့ပါတယ်။ Data က တစ်ဖက်ကို ရောက်သွားတဲ့အချိန်မှာ တစ်ဖက် က အဲ့ဒီ data ကို ကြည့်ဖို့အတွက် သူ့ရဲ့ private key  ကိုအသုံးပြုပြီး decrypt လုပ်ပြီး ကြည့်ပါတယ်။ ဒီနေရာမှာ ကြားထဲကနေ တစ်ယောက်ယောက် က data တွေကို ရသွားခဲ့သည့်တိုင်အောင် သူ့ဆီမှာ data တွေကို decrypt လုပ်ဖို့အတွက် private key လိုအပ်ပါတယ်။ ဒါက Kubernetes ရဲ့ components တွေ ဆက်သွယ်ရာမှာ အသုံးပြုတဲ့ နည်းလမ်း ဖြစ်ပါတယ်။


TLS Certificate 

                    ဒီတော့ Public key and Private key ကို အသုံးပြုပြီး secure ဖြစ်အောင်လုပ်တာတော့ ဟုတ်ပြီ ဒါပေမယ့် ကိုယ်ဆက်သွယ်နေတဲ့ တစ်ဖက်က လူက တစ်ကယ်ဆက်သွယ်ရမည့်သူ ဟုတ်မဟုတ် ဆိုတာ ဘယ်လိုမျိုး ဆုံးဖြတ်မလဲ?​ ဘာလို့လဲဆိုတော့ ဒီ Public and Private key က တစ်ခြား thrid party ကလဲ generate လုပ်နိုင်ပြီး ကိုယ့်ဆီကို လာရောက်ပြီး ဆက်သွယ်တာလဲ ဖြစ်နိုင်တယ်။ ဥပမာ အနေနဲ့ ကိုယ် connection establish ဖြစ်နေတဲ့ site က တစ်ကယ့် authentic ဖြစ်တဲ့ "WebSite" လား ဒါမဟုတ် third party က နေ fake လုပ်ထားတဲ့  "Website" ကြီးလားဆိုတာ သိဖို့ရန်အတွက် ကြားထဲမှာ စစ်မှန်ကြောင်း ကို ပြသဖို့ "Certifiate" ဆိုတဲ့ method ကို အသုံးပြုကြပါတယ်။

So, What is certificate?

            Certificate ဆိုတာ အပြင်မှာနားလည်ထားကြသလိုပဲ​ မှန်ကန်ကြောင်း ဥပမာ ဒီ Exam ကို အောင်မြင်တာ မှန်ကန်ကြောင်း ထောက်ခံပေးတဲ့ အထောက်အထားတစ်ခုပဲဖြစ်ပါတယ်။ ဒါကို reference ယူပြီးတော့  IT မှာကျတော့ Digital Certifiate အနေနဲ့  Security ပိုင်းမှာ အသုံးပြုကြပါတယ်။ 

What is CA (Certificate Authority)

            ဒီလိုတစ်ဖက်နဲ့တစ်ဖက် သည် စစ်မှန်ကြောင်း ကို certificate ထုတ်ပေးဖို့ အတွက် CA က တာဝန်ယူပေးပါတယ်။ ဒီတော့  CA ကနေ certificate ကို ထုတ်ပေးဖို့အတွက် ကိုယ်တွေဖက်က ဘာတွေလုပ်ပေးရမလဲဆိုတော့ 

၁. အရင်ဆုံး Private key generate လုပ်ရမယ်

၂. CA ကနေ certificate ထုတ်ပေးရန်အတွက် CSR "Certificate Signing Request" လုပ်ပါမယ်

၃. ရောက်ရှိလာတဲ့ CSR ကို CA ကနေ မှ သူ့ရဲ့ Private Key နဲ့ signed လုပ်ပြီး စစ်မှန်ကြောင်း ထောက်ခံတဲ့ "Digital Certificate" တစ်ခု ပြန်ထုတ်ပေးပါတယ်။

            ဒီနေရာမှာ CA (Certificate Authority) ဆိုတာ CA service ကို ပေးတဲ့  Public CA i.e godaddy, DigiCert, VeriSign ရှိသလို ကိုယ့် internal အချင်းချင်း အသုံးပြုဖို့ Sefl-Signed CA အမျိုးအစားတွေလဲရှိပါတယ်။ 

                Kubernetes မှာဆိုလိုရှိရင်လဲ အချင်းချင်း ဆက်သွယ်ရာမှာ certificate ကို အသုံးပြုဖို့အတွက် Kubernetes cluster တစ်ခုမှာ အနည်းဆုံး CA (Certificate Authority) Server တစ်ခုရှိဖို့လိုအပ်ပါတယ်။ ဒီ CA ကနေမှတစ်ဆင့် trusted certificate တွေကို issue ထုတ်ပေးမှာဖြစ်ပါတယ်။ အခု ပြောပြနေတဲ့ ဒီ certificate ပိုင်းတွေက Kubernetes cluster တစ်ခုကို kubeadm နဲ့ တည်ဆောက်ထားတာဆိုရင် auto generate လုပ်ထား ပြီးသားဖြစ်ပါတယ်။

Credit to Orginal Writer 

Post a Comment

1 Comments

  1. Coin Casino - Bonuses, Codes & Games - CasinoNow
    All Casino Slots, 인카지노 Jackpots, and Games 1xbet for PC, Mac, iOS, Android, iOS, PlayStation, Xbox One, and more! Exclusive Bonuses, Promotions and more! 메리트 카지노 주소 Rating: 4 · ‎1 vote

    ReplyDelete