Lennart Poettering သည် boot လုပ်ငန်းစဉ်ကို ခေတ်မီအောင်ပြုလုပ်ရန် အဆိုပြုချက်တစ်ခုကို ထုတ်ဝေခဲ့သည်။ Linux-distributions များသည် လက်ရှိပြဿနာများကို ဖြေရှင်းရန်နှင့် kernel နှင့် underlying system environment ၏ တရားဝင်မှုကို အတည်ပြုသည့် အပြည့်အဝ အတည်ပြုထားသော boot process တစ်ခု၏ စီစဉ်မှုကို ရိုးရှင်းစေရန် ရည်ရွယ်ပါသည်။ ဗိသုကာပုံစံအသစ်ကို အကောင်အထည်ဖော်ရန် လိုအပ်သော ပြောင်းလဲမှုများကို systemd codebase တွင် ထည့်သွင်းပြီးဖြစ်ပြီး systemd-stub၊ systemd-measure၊ systemd-cryptenroll၊ systemd-cryptsetup၊ systemd-pcrphase နှင့် systemd-creds ကဲ့သို့သော အစိတ်အပိုင်းများကို သက်ရောက်မှုရှိသည်။
အဆိုပြုထားသော ပြောင်းလဲမှုများသည် kernel image ကို ပေါင်းစပ်ထားသည့် တစ်ခုတည်းသော universal image UKI (Unified Kernel Image) ဖန်တီးခြင်းအထိ အကျုံးဝင်ပါသည်။ LinuxUEFI (UEFI boot stub) မှ kernel ကို load လုပ်သည့် handler တစ်ခုနှင့် root filesystem ကို mount မလုပ်မီ initialization လုပ်ရန်အတွက် memory ထဲသို့ load လုပ်သည့် initrd system environment တစ်ခု။ initrd RAM disk image အစား system တစ်ခုလုံးကို UKI ထဲသို့ package လုပ်နိုင်ပြီး RAM ထဲသို့ load လုပ်ထားသော fully verified system environments များကို ဖန်တီးနိုင်စေပါသည်။ UKI image ကို PE format ဖြင့် executable file အဖြစ် package လုပ်ထားပြီး ၎င်းကို ရိုးရာ bootloader များဖြင့်သာမက UEFI firmware မှ တိုက်ရိုက် load လုပ်နိုင်သည်။
UEFI မှ ခေါ်ဆိုနိုင်သည့်စွမ်းရည်သည် kernel များသာမက initrd အကြောင်းအရာများကိုပါ လွှမ်းခြုံထားသည့် ဒစ်ဂျစ်တယ်လက်မှတ်ခိုင်မာမှုနှင့် တရားဝင်မှုအတည်ပြုခြင်းကို ပံ့ပိုးပေးပါသည်။ သမားရိုးကျ bootloaders များမှ ဖိတ်ခေါ်ခြင်းအတွက် ပံ့ပိုးမှုသည် အပ်ဒိတ်တစ်ခုထည့်သွင်းပြီးနောက် kernel အသစ်နှင့် ပြဿနာများတွေ့ရှိပါက kernel ဗားရှင်းများစွာကို ထောက်ပံ့ပေးခြင်းနှင့် အလုပ်လုပ်သည့် kernel သို့ အလိုအလျောက်ပြန်လှည့်ခြင်းကဲ့သို့သော အင်္ဂါရပ်များကို ထိန်းသိမ်းထားသည်။
လက်ရှိတွင် ဖြန့်ဖြူးမှုအများစုမှာ Linux initialization လုပ်ငန်းစဉ်သည် အောက်ပါကွင်းဆက်ကို အသုံးပြုသည်- firmware → Microsoft digital signature ဖြင့် အသိအမှတ်ပြုထားသော shim layer → GRUB bootloader သည် distribution digital signature ဖြင့် အသိအမှတ်ပြုထားသည် → kernel သည် distribution digital signature ဖြင့် အသိအမှတ်ပြုထားသည် Linux → အတည်မပြုရသေးသော initrd ပတ်ဝန်းကျင် → root file system။" ရိုးရာဖြန့်ဖြူးမှုများတွင် initrd အတည်ပြုချက်မရှိခြင်းသည် လုံခြုံရေးပြဿနာများကို ဖန်တီးပေးသည်၊ အဘယ်ကြောင့်ဆိုသော် အခြားအရာများအပြင် ဤပတ်ဝန်းကျင်ကို root file system ကို decrypt လုပ်ရန် key များကို ထုတ်ယူရန် အသုံးပြုသောကြောင့်ဖြစ်သည်။
ဤဖိုင်ကို အသုံးပြုသူ၏ စက်တွင်းစနစ်တွင် ထုတ်ပေးပြီး ဖြန့်ဝေခြင်းဖြင့် ဒစ်ဂျစ်တယ်ဖြင့် လက်မှတ်မထိုးနိုင်သောကြောင့် initrd ပုံ၏ အတည်ပြုခြင်းကို ပံ့ပိုးမထားပါ။ ၎င်းသည် SecureBoot မုဒ်ကိုအသုံးပြုသောအခါ အတည်ပြုခြင်းကို လွန်စွာရှုပ်ထွေးစေသည် (initrd ကိုအတည်ပြုရန်၊ အသုံးပြုသူသည် ၎င်းတို့၏ကိုယ်ပိုင်သော့များကိုထုတ်ပေးပြီး ၎င်းတို့ကို UEFI Firmware တွင်တင်ရမည်)။ ထို့အပြင်၊ လက်ရှိ boot အဖွဲ့အစည်းသည် shim၊ grub နှင့် kernel တို့မှလွဲ၍ အခြား user-space အစိတ်အပိုင်းများ၏ ခိုင်မာမှုကို စောင့်ကြည့်ရန် TPM PCR (Platform Configuration Register) မှ အချက်အလက်များကို အသုံးပြုခွင့်မပြုပါ။ ကိုးကားဖော်ပြထားသော အခြားပြဿနာများမှာ bootloader ကို အပ်ဒိတ်လုပ်ရန် ခက်ခဲခြင်းနှင့် အပ်ဒိတ်ကို ထည့်သွင်းပြီးနောက် အသုံးမပြုတော့သည့် OS ဗားရှင်းအဟောင်းများအတွက် TPM သော့များထံ ဝင်ရောက်ခွင့်ကို ကန့်သတ်နိုင်ခြင်း ပါဝင်သည်။
boot Architecture အသစ်ကို အကောင်အထည်ဖော်ခြင်း၏ အဓိကပန်းတိုင်များမှာ-
- အပြည့်အ၀အတည်ပြုထားသော boot လုပ်ငန်းစဉ်ကို ပံ့ပိုးပေးခြင်း၊ firmware မှ အသုံးပြုသူနေရာအထိ အဆင့်အားလုံးကို လွှမ်းခြုံကာ၊ booted အစိတ်အပိုင်းများ၏ တရားဝင်မှုနှင့် မှန်ကန်မှုကို အတည်ပြုခြင်း။
- ထိန်းချုပ်ထားသော အရင်းအမြစ်များကို TPM PCR တွင် ပိုင်ရှင်များက ပိုင်းခြားခြင်းဖြင့် မှတ်ပုံတင်သည်။
- boot လုပ်နေစဉ်အသုံးပြုသည့် kernel၊ initrd၊ configuration နှင့် local system identifier တို့အပေါ်အခြေခံ၍ PCR တန်ဖိုးများကို ကြိုတင်တွက်ချက်နိုင်မှု။
- စနစ်၏ယခင်ထိခိုက်လွယ်သောဗားရှင်းသို့ ပြန်လှည့်ခြင်းပါ၀င်သည့် rollback တိုက်ခိုက်မှုများကို ကာကွယ်ခြင်း။
- အပ်ဒိတ်များ၏ ယုံကြည်စိတ်ချရမှုကို ရိုးရှင်းစေပြီး ပိုမိုကောင်းမွန်စေသည်။
- ထပ်တလဲလဲ သို့မဟုတ် TPM-ကာကွယ်ထားသော အရင်းအမြစ်များကို ဒေသန္တရစီမံဆောင်ရွက်ပေးမှုမလိုအပ်သော OS အပ်ဒိတ်များအတွက် ပံ့ပိုးမှု။
- bootable OS နှင့် ဆက်တင်များ၏ မှန်ကန်မှုကို အတည်ပြုရန် အဝေးထိန်းလက်မှတ်အတွက် စနစ်သည် အဆင်သင့်ဖြစ်နေပါပြီ။
- TPM မှ root ဖိုင်စနစ်အတွက် ကုဒ်ဝှက်ခြင်းသော့များကို ထုတ်ယူခြင်းကဲ့သို့သော အထိခိုက်မခံသောဒေတာများကို သီးခြားစတင်သည့်အဆင့်များသို့ ပူးတွဲလုပ်ဆောင်နိုင်မှု။
- root partition ဖြင့် drive တစ်ခုကို decrypt လုပ်ရန် သော့ဖွင့်ရန်အတွက် လုံခြုံသော၊ အလိုအလျောက်နှင့် အသုံးပြုသူနည်းသော လုပ်ငန်းစဉ်ကို ပံ့ပိုးပေးပါသည်။
- TPM မပါဘဲ စနစ်များသို့ ပြန်လည်ရောက်ရှိနိုင်သည့် TPM 2.0 သတ်မှတ်ချက်ကို ပံ့ပိုးပေးသည့် ချစ်ပ်များကို အသုံးပြုခြင်း။
source: opennet.ru
