Thuta Learning
Digital Privacy & Modern Security
ProjectsSecurityintermediate

ပရောဂျက်: Passkey နှင့် Recovery ပြင်ဆင်မှု အစီအစဉ်

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • ပရောဂျက်: Passkey နှင့် Recovery ပြင်ဆင်မှု အစီအစဉ် concept ကို နားလည်ရှင်းပြနိုင်ရန်
  • Diagram/checklist ကို ဖတ်ပြီး threat/control/decision ဘယ်လို ဆက်စပ်နေသလဲ ခြေရာခံနိုင်ရန်
  • ကိုယ့် digital life (သို့) developer workflow မှာ ဘယ်လို အသုံးချသင့်သလဲ ရှင်းပြနိုင်ရန်

နားလည်ထားရမယ့် အချက်

ဒီ project ဟာ ဒီ course ထဲက lesson သုံးခု — passkeys-explained, password-vs-passkey, account-recovery-security တို့ကို ပေါင်းစပ်ထားပါတယ်။ Lesson တစ်ခုစီက passkey ဆိုတာဘာလဲ၊ ဘာကြောင့် ပိုအားကောင်းလဲ၊ recovery path (codes, backup email/phone) ဟာ attacker ဦးတည်တတ်တဲ့ weak link ဖြစ်တတ်တာကို ရှင်းပြခဲ့ပါတယ်။

Cybersecurity Basics ရဲ့ personal-security-audit project က password strength/2FA/uniqueness ယေဘုယျ hygiene ကို score ပေးတယ် — ဒီ project က အဲဒါကို ထပ်မလုပ်ဘဲ ပိုအဆင့်မြင့်တဲ့ မေးခွန်း မေးပါတယ်: password ကို passkey ဆီ ရွှေ့နိုင်ပါသလား၊ recovery path က attacker တစ်ယောက်ကို ခံနိုင်ပါ့မလား။

  • အရေးကြီး account တွေကို စာရင်းလုပ်ပါ
  • Support ရှိရင် passkey ဖွင့်ပါ၊ မရှိရင် unique strong password သုံးပါ
  • Backstop အနေနဲ့ 2FA ဖွင့်ပါ
  • Recovery codes ကို offline, access-controlled ဖြစ်အောင် လုံခြုံစွာ သိမ်းပါ
  • Account နဲ့ ချိတ်ထားတဲ့ recovery email/phone ကို review လုပ်ပါ
  • Account ယုံကြည်ထားတဲ့ device list ကို review လုပ်ပါ
text
PASSKEY AND RECOVERY MIGRATION PLAN
-----------------------------------
PASSKEY AND RECOVERY MIGRATION PLAN
------------------------------------
IMPORTANT ACCOUNTS (email, banking, work/social)
        |
        v
  PASSKEY SUPPORTED? --no--> UNIQUE STRONG PASSWORD
        |                              |
       yes                             |
        v                              v
        2FA ENABLED  <------------------
        |
        v
  RECOVERY CODES SECURED (offline, access-controlled)
        |
        v
  RECOVERY EMAIL/PHONE REVIEWED (still yours, secure)
        |
        v
  TRUSTED DEVICES REVIEWED (unknown devices removed)
        |
        v
     MIGRATION PLAN COMPLETE FOR THIS ACCOUNT

လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်

ဒီ project ကို တစ်ကြိမ်တည်း checklist အနေနဲ့ မဟုတ်ဘဲ အသက်ဝင်နေတဲ့ migration plan တစ်ခု အနေနဲ့ လုပ်ဆောင်ပါ။ Compromise ဖြစ်ရင် အနစ်ဆုံးထိခိုက်မယ့် account သုံး/လေးခု (primary email, banking, primary social/work) ကို စာရင်းလုပ်ပါ။ Account တစ်ခုစီအတွက် အဆင့် ၆ ဆင့် အတူတူပဲ အစီအစဉ်အတိုင်း လုပ်ဆောင်ပါ။

Passkey (သို့) strong password

Service က passkey sign-in ပေးလား စစ်ဆေးပါ; ရှိရင် ဖွင့်ပြီး password ကို fallback အနေနဲ့ပဲ ချန်ထားပါ။ Passkey option မရှိသေးရင် password က unique ဖြစ်ပြီး တခြားနေရာမှာ ထပ်မသုံးထားကြောင်း သေချာအောင် စစ်ပါ။

2FA ဖွင့်ခြင်း

Passkey ဖွင့်ပြီးသားဖြစ်လည်း backstop အနေနဲ့ SMS အစား authenticator app (သို့) hardware key ကို သုံးပါ။

Recovery codes လုံခြုံအောင် သိမ်းခြင်း

Recovery codes အသစ် generate လုပ်ပြီး offline, access-controlled နေရာမှာ သိမ်းပါ; လုံခြုံမှုမရှိတဲ့ ဟောင်းတဲ့ copy တွေကို ဖျက်ပါ။

Recovery email/phone ပြန်စစ်ခြင်း

Recovery email နဲ့ phone number နှစ်ခုစလုံးကို ကိုယ်တိုင် ထိန်းချုပ်ဆဲလား သေချာစစ်ပါ; recovery email ကိုယ်တိုင်လည်း security အားနည်းတဲ့ account မဖြစ်ကြောင်း စစ်ပါ။

Trusted devices ပြန်စစ်ခြင်း

Account ရဲ့ trusted-devices (သို့) active-sessions list ကို ဖွင့်ပြီး မသိတဲ့ device တွေကို ဖယ်ရှားပါ။

Account တစ်ခုစီရဲ့ ရလဒ်ကို short table ထဲ မှတ်တမ်းတင်ပါ၊ ပြီးရင် data အတူတူကိုပဲ plan-builder function ကို run ကြည့်ပြီး output ရဲ့ priority list ကို ကိုယ့်ရဲ့ ကိုယ်ပိုင် ဆုံးဖြတ်ချက်နဲ့ နှိုင်းယှဉ်ကြည့်ပါ။

အတူတူ စမ်းရေးကြည့်မယ်

javascript
function buildMigrationPlan(accounts) {
  function scoreAccount(acc) {
    let score = 0;
    const plan = [];

    if (!acc.passkeyEnabled) {
      plan.push(
        acc.hasStrongUniquePassword
          ? "Enable a passkey where supported (current password is already strong and unique)"
          : "Enable a passkey, or set a unique strong password if passkeys are not supported yet"
      );
      score += acc.hasStrongUniquePassword ? 2 : 4;
    }
    if (!acc.twoFAEnabled) {
      plan.push("Enable 2FA (prefer an authenticator app or hardware key over SMS)");
      score += 4;
    }
    if (!acc.recoveryCodesSecured) {
      plan.push("Generate fresh recovery codes and store them offline, access-controlled");
      score += 3;
    }
    if (!acc.recoveryContactVerified) {
      plan.push("Verify the recovery email/phone is current and itself well-secured");
      score += 3;
    }
    if (!acc.trustedDevicesReviewed) {
      plan.push("Review trusted devices / active sessions and remove unrecognized ones");
      score += 2;
    }

    return {
      account: acc.name,
      importance: acc.importance,
      riskScore: score * acc.importance,
      actionsNeeded: plan.length,
      plan,
    };
  }

  return accounts
    .map(scoreAccount)
    .sort((a, b) => b.riskScore - a.riskScore)
    .map((acc, i) => ({ priority: i + 1, ...acc }));
}

// Describe accounts by their CURRENT setup -- never real credentials, just booleans.
const accounts = [
  {
    name: "Primary Email",
    importance: 3,
    passkeyEnabled: false,
    hasStrongUniquePassword: true,
    twoFAEnabled: true,
    recoveryCodesSecured: false,
    recoveryContactVerified: false,
    trustedDevicesReviewed: false,
  },
  {
    name: "Banking",
    importance: 3,
    passkeyEnabled: false,
    hasStrongUniquePassword: true,
    twoFAEnabled: true,
    recoveryCodesSecured: true,
    recoveryContactVerified: true,
    trustedDevicesReviewed: true,
  },
  {
    name: "Work / Primary Social",
    importance: 2,
    passkeyEnabled: false,
    hasStrongUniquePassword: false,
    twoFAEnabled: false,
    recoveryCodesSecured: false,
    recoveryContactVerified: false,
    trustedDevicesReviewed: false,
  },
];

const plan = buildMigrationPlan(accounts);
for (const item of plan) {
  console.log(`#${item.priority} ${item.account} (risk score ${item.riskScore}, ${item.actionsNeeded} actions)`);
  for (const step of item.plan) console.log(`  - ${step}`);
}
You should see
Function ဟာ account သုံးခုကို risk score အလိုက် priority list ပြန်ပေးပါတယ်: 'Work / Primary Social' က priority #1 (risk score 32, action ၅ ခု), 'Primary Email' က #2 (risk score 30, action ၄ ခု), 'Banking' က #3 (risk score 6, action ၁ ခု) — banking ရဲ့ passkey action တစ်ခုသာ ကျန်ပါတယ်။

၅ မိနစ် စမ်းကြည့်

ကိုယ့်ရဲ့ အရေးကြီး account သုံး/လေးခုကို (password, recovery codes, အခြား credential အစစ်ကို ဒီ lesson ထဲ ဘယ်တော့မှ မရေးထည့်ဘဲ) code ထဲက account object ပုံစံ — passkeyEnabled, hasStrongUniquePassword, twoFAEnabled, recoveryCodesSecured, recoveryContactVerified, trustedDevicesReviewed — အတိုင်း စာရင်းလုပ်ပြီး buildMigrationPlan ကို run ကြည့်ပါ။ ထွက်လာတဲ့ priority order ကို ကိုယ်ကိုယ်တိုင် ခန့်မှန်းထားတာနဲ့ နှိုင်းယှဉ်ကြည့်ပါ။

သတိလေးတစ်ချက်

Account အသစ်ဖွင့်တိုင်း (သို့) service က passkey support ထပ်ထည့်တိုင်း ပြန်မလုပ်ဘဲ တစ်ကြိမ်တည်း project အဖြစ်ပဲ သဘောထားခြင်း

Recovery codes နဲ့ 2FA ကို လုံခြုံအောင် လုပ်ထားပေမယ့် recovery email ကိုယ်တိုင်ကို weak, ထပ်တလဲလဲ သုံးထားတဲ့ password တစ်ခုတည်းနဲ့ ပဲ ကာကွယ်ထားခြင်း

FIDO Alliance — PasskeysDigital Privacy & Modern Security

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • Account အသစ်ဖွင့်တိုင်း (သို့) service က passkey support ထပ်ထည့်တိုင်း ပြန်မလုပ်ဘဲ တစ်ကြိမ်တည်း project အဖြစ်ပဲ သဘောထားခြင်း
  • Recovery codes နဲ့ 2FA ကို လုံခြုံအောင် လုပ်ထားပေမယ့် recovery email ကိုယ်တိုင်ကို weak, ထပ်တလဲလဲ သုံးထားတဲ့ password တစ်ခုတည်းနဲ့ ပဲ ကာကွယ်ထားခြင်း
  • ဒီ course က Cybersecurity Basics course အသစ် မဟုတ်ပါ — password/2FA/phishing/malware/encryption/backup အခြေခံကို Cybersecurity tutorial ကနေ လေ့လာပြီးသားလို့ ယူဆထားပါတယ်။ ဒီ course က Passkeys, Public Wi-Fi/VPN, Browser Security, Privacy, developer-focused Auth/API security, AI security လို အသစ်ထပ်ဖြည့်တဲ့ အပိုင်းကိုသာ သင်ပေးပါတယ်။

လေ့ကျင့်ခန်း

ကိုယ့်ရဲ့ အရေးကြီး account သုံး/လေးခုကို (password, recovery codes, အခြား credential အစစ်ကို ဒီ lesson ထဲ ဘယ်တော့မှ မရေးထည့်ဘဲ) code ထဲက account object ပုံစံ — passkeyEnabled, hasStrongUniquePassword, twoFAEnabled, recoveryCodesSecured, recoveryContactVerified, trustedDevicesReviewed — အတိုင်း စာရင်းလုပ်ပြီး buildMigrationPlan ကို run ကြည့်ပါ။ ထွက်လာတဲ့ priority order ကို ကိုယ်ကိုယ်တိုင် ခန့်မှန်းထားတာနဲ့ နှိုင်းယှဉ်ကြည့်ပါ။

You'll know it worked when: Function ဟာ account သုံးခုကို risk score အလိုက် priority list ပြန်ပေးပါတယ်: 'Work / Primary Social' က priority #1 (risk score 32, action ၅ ခု), 'Primary Email' က #2 (risk score 30, action ၄ ခု), 'Banking' က #3 (risk score 6, action ၁ ခု) — banking ရဲ့ passkey action တစ်ခုသာ ကျန်ပါတယ်။

ပရောဂျက်: Passkey နှင့် Recovery ပြင်ဆင်မှု အစီအစဉ် | Thuta Learning