Timing attacks များသည် cryptographic algorithms သို့မဟုတ် အခြားသော ထိလွယ်ရှလွယ် လုပ်ဆောင်ချက်များကို လုပ်ဆောင်ရန် စနစ်တစ်ခုအတွက် လိုအပ်သည့်အချိန်အတွင်း ကွဲပြားမှုများကို အသုံးချသည့် ဘေးထွက်ချန်နယ်တိုက်ခိုက်မှုများ၏ ဆန်းပြားသောအဆင့်တစ်ခုဖြစ်သည်။ ကုဒ်ဝှက်သင်္ကေတများ၊ စကားဝှက်များ သို့မဟုတ် အခြားလျှို့ဝှက်ဒေတာများကဲ့သို့ အရေးကြီးသော အချက်အလက်များကို ကောက်ချက်ချရန်အတွက် ဤကွဲပြားမှုများကို တိုင်းတာပြီး ခွဲခြမ်းစိတ်ဖြာနိုင်သည်။ အချိန်ကိုက်တိုက်ခိုက်မှုများ၏ နောက်ကွယ်ရှိ အခြေခံနိယာမမှာ စနစ်တစ်ခု၏ မတူညီသော သွင်းအားစုများ သို့မဟုတ် ပြည်နယ်များသည် ကွဲပြားမှုများသည် မိနစ်အနည်းငယ်ကြာသည့်တိုင် မတူညီသော လုပ်ဆောင်မှုအချိန်များဆီသို့ ဦးတည်သွားစေနိုင်သည်။ ဤလုပ်ဆောင်မှုအချိန်များကို ဂရုတစိုက်တိုင်းတာခြင်းဖြင့်၊ တိုက်ခိုက်သူတစ်ဦးသည် အရေးကြီးသောဒေတာကို ပြန်လည်တည်ဆောက်ရန် လုံလောက်သောအချက်အလက်ကို စုဆောင်းနိုင်သည်။
လျှို့ဝှက်သော့ သို့မဟုတ် လွင်ပြင်စာသားကို စီမံဆောင်ရွက်နေသည့် လုပ်ဆောင်ချက်များစွာတွင် လျှို့ဝှက်သော့ သို့မဟုတ် လွင်ပြင်စာသားပေါ်တွင်မူတည်နိုင်သည့် လုပ်ဆောင်ချက်များစွာ ပါဝင်သောကြောင့် ကုဒ်ဝှက်စနစ်များ၏ အခြေအနေတွင်၊ အချိန်ကိုက်တိုက်ခိုက်မှုများသည် အထူးအားကောင်းပါသည်။ ဥပမာအားဖြင့်၊ အများသူငှာသော့ဝှက်စာရိုက်ခြင်း (ဥပမာ၊ RSA) တွင် အများအားဖြင့်အသုံးပြုသည့် မော်ဂျူလာအညွှန်းကိန်းထုတ်ခြင်းကဲ့သို့သော ရိုးရှင်းသော ကုဒ်ဝှက်ခြင်းလုပ်ငန်းကို သုံးသပ်ကြည့်ပါ။ modular exponention ကို လုပ်ဆောင်ရန် အချိန်သည် ထပ်ကိန်းတွင် 1 သို့ သတ်မှတ်ထားသော ဘစ်အရေအတွက်ပေါ်မူတည်၍ ကွဲပြားနိုင်သည်။ အကယ်၍ တိုက်ခိုက်သူတစ်ဦးသည် မတူညီသောထည့်သွင်းမှုများဖြင့် မော်ဂျူလာအညွှန်းကိန်းများစွာကိုလုပ်ဆောင်ရန်အချိန်ကို တိုင်းတာနိုင်ပါက၊ ၎င်းတို့သည် လျှို့ဝှက်ထပ်ကိန်း၏ bits များကို ခန့်မှန်းနိုင်မည်ဖြစ်သည်။
အစောဆုံးနှင့် အထင်ရှားဆုံး အချိန်ကိုက်တိုက်ခိုက်မှုများထဲမှ တစ်ခုကို Paul Kocher က RSA နှင့် Diffie-Hellman အကောင်အထည်ဖော်မှုများကို ဆန့်ကျင်သည့် 1996 ခုနှစ်တွင် သရုပ်ပြခဲ့သည်။ သီးသန့်သော့လုပ်ဆောင်ချက်များကို လုပ်ဆောင်ရန် ဤ algorithms များအတွက် အချိန်ကို တိုင်းတာခြင်းဖြင့်၊ လျှို့ဝှက်သော့ကို ဖြတ်တောက်ရန် ဖြစ်နိုင်ကြောင်း Kocher မှ ပြသခဲ့သည်။ တိုက်ခိုက်မှုသည် ထည့်သွင်းမှုတန်ဖိုးများပေါ်မူတည်၍ အချို့သော လုပ်ဆောင်ချက်များဖြစ်သည့် modular မြှောက်ခြင်းကဲ့သို့သော algorithms များအတွင်းတွင် အချိန်ပမာဏများစွာယူခဲ့ရသည်ဟူသောအချက်ကို အသုံးချခဲ့သည်။
အချိန်ကိုက်တိုက်ခိုက်မှု၏ နောက်ထပ်ဂန္ထဝင်ဥပမာမှာ AES (Advanced Encryption Standard) algorithm ကို တိုက်ခိုက်ခြင်းဖြစ်သည်။ AES သည် အစားထိုးခြင်း၊ ပြောင်းလဲခြင်းနှင့် ရောနှောခြင်းလုပ်ငန်းများ အများအပြားပါဝင်သည့် အချိုးကျသော ကုဒ်ဝှက်ခြင်းဆိုင်ရာ အယ်လဂိုရီသမ်တစ်ခုဖြစ်သည်။ အချို့သောအကောင်အထည်ဖော်မှုများတွင်၊ မှတ်ဉာဏ်ကိုရယူရန် သို့မဟုတ် အချို့သောလုပ်ဆောင်ချက်များကိုလုပ်ဆောင်ရန်အချိန်သည် လျှို့ဝှက်သော့နှင့်လွင်ပြင်စာသား၏တန်ဖိုးများပေါ်တွင်မူတည်နိုင်သည်။ မတူညီသော စာသားများကို စာဝှက်ရန် အချိန်ကို ဂရုတစိုက် တိုင်းတာခြင်းဖြင့်၊ တိုက်ခိုက်သူသည် လျှို့ဝှက်သော့အကြောင်း အချက်အလက်ကို ကောက်ချက်ချနိုင်သည်။
အချိန်ကိုက်တိုက်ခိုက်မှုများကို အသေးစိတ်နားလည်ရန်၊ အချိန်ကိုက်တိုက်ခိုက်မှုကို လုပ်ဆောင်ရာတွင် ပုံမှန်အားဖြင့် အောက်ပါအဆင့်များကို ထည့်သွင်းစဉ်းစားပါ။
1. တိုင်းတာခြင်းအဆင့်: တိုက်ခိုက်သူသည် ပစ်မှတ်စနစ်သို့ မတူညီသောထည့်သွင်းမှုများကို ထပ်ခါတလဲလဲပေးပို့ပြီး စနစ်တုံ့ပြန်ရန်အချိန်ကို တိုင်းတာသည်။ ဤတိုင်းတာမှုများသည် တိကျရန်လိုအပ်ပြီး လိုအပ်သောတိကျမှုကိုရရှိရန် မြင့်မားသော resolution timers သို့မဟုတ် အထူးပြု hardware လိုအပ်နိုင်သည်။
2. ဒေတာများစုစည်းမှု: တိုက်ခိုက်သူသည် မတူညီသော သွင်းအားစုများနှင့် သက်ဆိုင်သည့် အချိန်ကိုက်တိုင်းတာမှု အများအပြားကို စုဆောင်းသည်။ အတိုင်းအတာများ စုဆောင်းလေလေ၊ တိုက်ခိုက်သူသည် ထိလွယ်ရှလွယ် အချက်အလက်များကို ပိုမိုတိကျစွာ ခန့်မှန်းနိုင်လေဖြစ်သည်။
3. စာရင်းအင်းအားသုံးသပ်ခြင်း: တိုက်ခိုက်သူသည် ထည့်သွင်းတန်ဖိုးများနှင့် လုပ်ဆောင်ချိန်များအကြား ပုံစံများ သို့မဟုတ် ဆက်စပ်မှုများကို ခွဲခြားသတ်မှတ်ရန် ကိန်းဂဏန်းအချက်အလက်များကို အသုံးပြု၍ စုဆောင်းထားသော အချိန်ကိုက်ဒေတာကို ပိုင်းခြားစိတ်ဖြာသည်။ ဤခွဲခြမ်းစိတ်ဖြာမှုသည် လျှို့ဝှက်သော့များ၏တန်ဖိုးများ သို့မဟုတ် အခြားအထိခိုက်မခံသောဒေတာများကဲ့သို့သော စနစ်၏အတွင်းပိုင်းအခြေအနေဆိုင်ရာ အချက်အလက်များကို ဖော်ပြနိုင်သည်။
4. သော့ထုတ်ယူခြင်း။: ကိန်းဂဏန်းဆိုင်ရာ ခွဲခြမ်းစိတ်ဖြာမှုအပေါ် အခြေခံ၍ တိုက်ခိုက်သူသည် အရေးကြီးသော အချက်အလက်များကို ပြန်လည်တည်ဆောက်သည်။ ဤအဆင့်တွင် သင်္ချာညီမျှခြင်းများကို ဖြေရှင်းခြင်း သို့မဟုတ် လျှို့ဝှက်ဒေတာကို ကိုးကားရန်အတွက် စက်သင်ယူမှုနည်းစနစ်များကို အသုံးပြုခြင်းတို့ ပါဝင်နိုင်သည်။
ဤအဆင့်များကို တိကျသေချာသော ဥပမာတစ်ခုဖြင့် သရုပ်ဖော်ရန်၊ စကားဝှက် နှိုင်းယှဉ်မှု လုပ်ဆောင်ချက်အပေါ် အချိန်ကိုက်တိုက်ခိုက်ခြင်းကို ထည့်သွင်းစဉ်းစားပါ။ စနစ်များစွာသည် အသုံးပြုသူများကို စစ်မှန်ကြောင်းအထောက်အထားပြရန် သိမ်းဆည်းထားသော စကားဝှက်များနှင့် အသုံးပြုသူပေးသော စကားဝှက်များကို နှိုင်းယှဉ်သည့် လုပ်ဆောင်ချက်များကို အသုံးပြုပါသည်။ ထိုသို့သော လုပ်ဆောင်ချက်ကို နုံအစွာ အကောင်အထည်ဖော်ခြင်းသည် စကားဝှက်များကို စာလုံးအက္ခရာဖြင့် နှိုင်းယှဉ်ကာ တူညီမှုမရှိသည်ကို တွေ့ရှိသည်နှင့် တပြိုင်နက် ပြန်လာနိုင်သည်။ ဆိုလိုသည်မှာ စကားဝှက်နှစ်ခုကို နှိုင်းယှဉ်ရန်အချိန်သည် စကားဝှက်များ၏အစတွင် ကိုက်ညီသည့် စာလုံးအရေအတွက်ပေါ်မူတည်၍ ကွဲပြားနိုင်သည်။ တိုက်ခိုက်သူသည် မှန်ကန်သော စကားဝှက်ကို တစ်ကြိမ်လျှင် စာလုံးတစ်လုံးစီ တွက်ရန် ဤအချိန်ကိုက်ပုံစံကို အသုံးချနိုင်သည်။
ဥပမာအားဖြင့်၊ သိမ်းဆည်းထားသော စကားဝှက်သည် "securepassword" ဆိုပါစို့။ တိုက်ခိုက်သူသည် စကားဝှက် "a" ပေးပို့ပြီး နှိုင်းယှဉ်မှုပြုလုပ်ရန် အချိန်ကို တိုင်းတာခြင်းဖြင့် စတင်နိုင်သည်။ နှိုင်းယှဉ်မှု မြန်ဆန်ပါက၊ တိုက်ခိုက်သူသည် ပထမဇာတ်ကောင်သည် 'a' မဟုတ်ကြောင်း သိသည်။ ထို့နောက် တိုက်ခိုက်သူက "b" "c" စသည်ဖြင့်၊ ယှဉ်ရန် အနည်းငယ်ပိုကြာသည့် ဇာတ်ကောင်ကို ရှာတွေ့သည်အထိ၊ တိုက်ဆိုင်မှုကို ညွှန်ပြသည်။ ထို့နောက် တိုက်ခိုက်သူသည် ဒုတိယဇာတ်ကောင်သို့ ရွေ့လျားပြီး လုပ်ငန်းစဉ်ကို ပြန်လုပ်ကာ နောက်ဆုံးတွင် စကားဝှက်တစ်ခုလုံးကို ပြန်လည်တည်ဆောက်သည်။
အချိန်ကိုက်တိုက်ခိုက်မှုများကို လျော့ပါးစေရန်၊ တန်ပြန်အစီအမံများစွာကို အသုံးချနိုင်သည်-
1. Constant-Time Algorithms: ထည့်သွင်းတန်ဖိုးများ မခွဲခြားဘဲ အဆက်မပြတ် လုပ်ဆောင်ချိန်ကို သေချာစေသည့် နည်းလမ်းဖြင့် ကုဒ်ဝှက်စနစ် အယ်လဂိုရီသမ်များနှင့် အခြား အရေးကြီးသော လုပ်ဆောင်ချက်များကို အကောင်အထည်ဖော်ပါ။ ၎င်းသည် စိန်ခေါ်မှုဖြစ်နိုင်သော်လည်း အချိန်ကိုက်တိုက်ခိုက်မှုများကို ကာကွယ်ရန်အတွက် မရှိမဖြစ်လိုအပ်ပါသည်။
2. ကျပန်းနှောင့်နှေးမှုများအချိန်ကိုက်အချက်အလက်ကို ဖုံးကွယ်ရန် အရေးကြီးသော လုပ်ဆောင်ချက်များကို လုပ်ဆောင်ရာတွင် ကျပန်းနှောင့်နှေးမှုများကို မိတ်ဆက်ပါ။ သို့သော်လည်း၊ ဤချဉ်းကပ်မှုသည် တိုင်းတာမှုများစွာအတွက် ကျပန်းနှောင့်နှေးမှုများကို ပျမ်းမျှထုတ်နိုင်သော တိုက်ခိုက်သူများအပေါ် ထိရောက်မှုနည်းပါသည်။
3. မျက်မမြင်နည်းပညာများ: တိုက်ခိုက်သူများသည် တိကျသောထည့်သွင်းမှုတန်ဖိုးများနှင့် လုပ်ဆောင်ချိန်များကို ဆက်စပ်ရန် ခက်ခဲစေသည် : ကုဒ်ဝှက်ခြင်းလုပ်ဆောင်မှုများတွင် သွင်းအားစုများကို ကျပန်းလုပ်ဆောင်ရန် မျက်စိကွယ်သည့်နည်းပညာများကို အသုံးပြုပါ။
4. ဟာ့ဒ်ဝဲ တန်ပြန်ဆောင်ရွက်မှုများ: အချိန်ကိုက်တိုက်ခိုက်မှုများကို တွန်းလှန်ရန် ဒီဇိုင်းထုတ်ထားသည့် သီးခြား cryptographic co-processors ကဲ့သို့သော ဟာ့ဒ်ဝဲအခြေပြု တန်ပြန်အစီအမံများကို အသုံးချပါ။
5. ကုဒ်စစ်ဆေးခြင်းနှင့် စမ်းသပ်ခြင်း။: အထူးသဖြင့် ကုဒ်ဝှက်အသုံးပြုမှုများတွင် အချိန်ကိုက်အားနည်းချက်များအတွက် ပုံမှန်စစ်ဆေးမှုနှင့် စမ်းသပ်မှုကုဒ်။ အလိုအလျောက် ကိရိယာများနှင့် နည်းပညာများသည် ဖြစ်နိုင်ချေရှိသော အချိန်ကိုက်ပေါက်ကြားမှုများကို ဖော်ထုတ်ရာတွင် ကူညီပေးနိုင်ပါသည်။
အချိန်ကိုက်တိုက်ခိုက်မှုများသည် လုံခြုံသောစနစ်များကို ဒီဇိုင်းရေးဆွဲခြင်းနှင့် အကောင်အထည်ဖော်ခြင်းတွင် ဘေးထွက်ချန်နယ်အားနည်းချက်များကို ထည့်သွင်းစဉ်းစားရန် အရေးကြီးကြောင်း မီးမောင်းထိုးပြသည်။ ကုဒ်ဝှက်စနစ်ဆိုင်ရာ အယ်လဂိုရီသမ်များကို ၎င်းတို့၏ သင်္ချာအစွမ်းအစအတွက် ခွဲခြမ်းစိတ်ဖြာလေ့ရှိသော်လည်း၊ ၎င်းတို့၏ လက်တွေ့ကျသော လုံခြုံရေးသည်လည်း အကောင်အထည်ဖော်မှုအသေးစိတ်များနှင့် ဘေးထွက်ချန်နယ်တိုက်ခိုက်မှုများအတွက် အလားအလာအပေါ် မူတည်ပါသည်။ ဆော့ဖ်ဝဲရေးသားသူများနှင့် လုံခြုံရေးကျွမ်းကျင်ပညာရှင်များသည် ကုဒ်ဝှက်စနစ်များ၏ ကြံ့ခိုင်မှုကို သေချာစေရန် ဤအားနည်းချက်များကို ဖြေရှင်းရာတွင် နိုးနိုးကြားကြားရှိရပါမည်။
အခြား လတ်တလောမေးခွန်းများနှင့် အဖြေများ CPU အချိန်ကိုက်တိုက်ခိုက်မှု:
- စနစ်စွမ်းဆောင်ရည်ကို ထိန်းသိမ်းထားစဉ် အချိန်ကိုက်တိုက်ခိုက်မှုများကို ဆန့်ကျင်သည့် ဟာ့ဒ်ဝဲနှင့် ဆော့ဖ်ဝဲလျော့ပါးစေရေး အကောင်အထည်ဖော်ရာတွင် ပါဝင်သော စိန်ခေါ်မှုများနှင့် အပေးအယူအချို့က အဘယ်နည်း။
- CPU ချိန်ကိုက်တိုက်ခိုက်မှုများတွင် ဌာနခွဲကြိုတင်ခန့်မှန်းသူသည် မည်သည့်အခန်းကဏ္ဍမှ ပါဝင်သနည်း၊ တိုက်ခိုက်သူများသည် အရေးကြီးသောအချက်အလက်များ ပေါက်ကြားစေရန် ၎င်းအား မည်သို့စီမံနိုင်သနည်း။
- အချိန်အဆက်မပြတ် ပရိုဂရမ်ရေးဆွဲခြင်းသည် ကုဒ်ဝှက်စနစ်ဆိုင်ရာ အယ်လဂိုရီသမ်များတွင် အချိန်ကိုက်တိုက်ခိုက်မှုအန္တရာယ်ကို မည်သို့လျော့ပါးစေသနည်း။
- မှန်းဆလုပ်ဆောင်ခြင်းဆိုသည်မှာ အဘယ်နည်း၊ Spectre ကဲ့သို့ အချိန်ကိုက်တိုက်ခိုက်မှုများအတွက် ခေတ်မီပရိုဆက်ဆာများ၏ အားနည်းချက်ကို မည်သို့အထောက်အကူပြုသနည်း။
- အချိန်ကိုက်တိုက်ခိုက်မှုဆိုတာဘာလဲ။