Android Brute Force

 Modern Android Phone  တွေမှာ Password, Pin ရဖို့ ဘာလို့ခက်ခဲလာတာလဲ ?????

Android CPU  မှာ Trusted Execution Environ- ment (TEE) လို့ခေါ်တဲ့ အစိတ်အပိုင်းတစ်ခုပါ၀င်ပါတယ်။ TEE ထဲမှာ Unique ID key လို့ခေါ်တဲ့ (UID) Key ( UID Key ကဖုန်းတစ်လုံးစီအတွက် UID Key တစ်ခုပါရှိပါတယ်။ UID key ကို Extract လုပ်တာ။ Read လုပ်တာလုပ်လို့မရပါ။) ‌ဒါ့အပြင် TEE ထဲမှာနောက်ထပ်ပါ၀င်တာက  Key Encryption Key (KEK) ဖြစ်ပါတယ်။ 

ဖုန်းတစ်လုံးကို User ကနေ Password/Pin ရိုက်လိုက်တဲ့အချိန်မှာ TEE ထံရောက်ပြီး TEE ကနေ  { User Password + UID +  Salt (Random key)} ကို Key Derivation Function (KDF) ဆိုတဲ့ Cryptograpic Algorithm ကိုသုံးပြီး Encrypted ပြုလုပ်လိုက်ပါတယ်။ ပြုလုပ်လိုက်တဲ့ Encrypted Key ကို Key Encryption Key (KEK) လို့ခေါ်ပါတယ်။ 

                                           KEK =  KDF (UID, Password, Salt)


Data Encryption Key (DEK) ဆိုတာက TEE ကနေ Random ထုတ်ပေးတဲ့ AES symmetric key  ဖြစ်ပါတယ်။  DEK က ကျွန်တော်တို့ဖုန်းမှာရှိနေတဲ့ Android Partitions  တွေကို Encrypted လုပ်တဲ့နေရာမှာ အသုံးပြုတာဖြစ်ပါတယ်။ Phone Storage ကို Encrypted ဖြစ်နေရာကနေ Decrypt ပြုလုပ်ဖို့အတွက် KEK + DEK လိုအပ်ပါတယ်။ KEK က DEK ကို ထပ်ပြီး Encrypted ပြုလုပ်ပါတယ်။

တစ်နည်းအားဖြင့်ဆိုရင် KEK နဲ့  DEK ကို  Decrypt လုပ်လိုက်တဲ့အခါ AES symmetric key ရလာပါမယ်။ အဲဒီ AES Key နဲ့ Storage ကို Decrypt ပြုလုပ်တဲ့အခါ Encrypted ဖြစ်နေတဲ့ Android Partitions တွေ User Data တွေပေါ်လာမှာဖြစ်ပါတယ်။


                                        Encrypted_DEK = AES_Encrypt(DEK, KEK)


-    Phone lock ဖြစ်နေတဲ့ အချိန်တွေဆိုရင် DEK (AES Palin Text က RAM နဲ့ TEE ထဲမှာ ရှိမနေပဲ Storage ပေါ်မှာ Encrypted အနေနဲ့ ရှိနေပါတယ်။

-    Phone Unlock အနေအထားမှာ DEK (AES Plain Text ) က TEE နဲ့ RAM ပေါ်မှာ Decrypt လုပ်ဖို့ရှိနေပါတယ်။

-    Reboot/ Shutdown ဖြစ်ချိန်မှာ TEE, RAM ထဲမှာရှိမနေတော့ပါ။ 

Mobile Forensic ပြုလုပ်တဲ့အခါမှာ Brute Force Password Attack အတွက် Boot ROM Exploit, Bootloader Exploit တွေကနေပြီး Storage ထဲမှာရှိနေတဲ့ DEK  Encryption Blobs ကို ရယူပြီး Offline Attack ပြုလုပ်တာဖြစ်ပါတယ်။ 

အထက်ပါ အားနည်းချက်မရှိတဲ့ ဖုန်းအမျိုးအစားတွေဆိုရင် User ရဲ့ Password, Pin ရဖို့အတွက် Brute Force Attack ပြုလုပ်လို့မရနိုင်ပါ။ Budget  ဖုန်း‌တွေဖြစ်တဲ့ UniSoc Chipset သုံးထားတဲ့ ဖုန်းတွေမှာပဲ အထက်ပါအား‌နည်းချက်တွေကို တွေ့ရတတ်ပါတယ်။ MediaTeK (MTK) မှာဆိုရင် အနည်းငယ်‌တွေ့ရပြီး၊ Kirin (HiSilicon) မှာတော့တော်တော်လေးနည်းပါတယ်။

Phone Storage ကိုဖြုတ်ပြီး (Chip Off Forensic) လုပ်မယ်ဆိုရင်တောင် Key Encryption Key (KEK)  မသိရင် User Data တွေက Encrypted အနေအထားမှာဖြစ်နေမှာဖြစ်ပါတယ်။


Comments

Popular posts from this blog

B-Trees (NTFS)

NTFS Index Attributes

Mobile Forensics (Note-1)