# SAML၊ အတွင်းပိုင်း- စာထဲမှ လက်မှတ်

Published: 2026-09-24

SAML သည် သင့်အား အလုပ်အက်ပ်တိုင်းနီးပါးသို့ ဝင်ရောက်နိုင်စေပြီး ၎င်း၏လက်မှတ်သည် ၎င်းလက်မှတ်ထိုးထားသော XML အတွင်းတွင် တည်ရှိသည်။ အတွင်းပိုင်း- အက်ပ်၊ ဘရောက်ဆာနှင့် အထောက်အထားပေးသူကြား ဝင်ရောက်ခြင်းအက၊ အာမခံချက်ပုံသဏ္ဌာန်၊ canonicalization သည် ဘိုက်တိုင်းကို အဘယ်ကြောင့် သဘောတူရသည်၊ နှင့် တူညီသော bug class သည် 2012 မှ 2025 အထိ အဘယ်ကြောင့် ပြန်ပေါ်လာရခြင်း။ Trail of Bits' "SAML: A fractal of bad design" (Hacker News တွင် 312 မှတ်) မှ နှိုးဆွသည်။

Canonical: https://thedailydiff.dev/my/video/2026-09-24-saml-under-the-hood/

## ဤဗီဒီယိုတွင် ဖော်ပြထားသောအရာများ

- SAML: အတွင်းမှ သူ့ဘာသာသူ လက်မှတ်ထိုးသည့် ဝင်ရောက်ခြင်း
- 2002: XML ပုံစံလေးခု၊ ကော်မတီတစ်ခု၊ လုပ်ငန်းတစ်ခုလုံး
- ဝင်ရောက်ခြင်းအက- အက်ပ် → အထောက်အထားပေးသူ → သင့်ဘရောက်ဆာမှတဆင့် ပြန်ဝင်
- အာမခံချက်- လက်မှတ်သည် ၎င်းလက်မှတ်ထိုးထားသော အရာ၏အတွင်း၌ တည်ရှိသည်
- Canonicalization- ဘိုက်တိုင်းကို သဘောတူပါ၊ မဟုတ်ပါက မည်သူမျှ ဝင်ရောက်နိုင်မည်မဟုတ်

## အခန်းများ

- 0:00 SAML: အတွင်းမှ သူ့ဘာသာသူ လက်မှတ်ထိုးသည့် ဝင်ရောက်ခြင်း
- 0:34 2002: XML ပုံစံလေးခု၊ ကော်မတီတစ်ခု၊ လုပ်ငန်းတစ်ခုလုံး
- 0:46 ဝင်ရောက်ခြင်းအက- အက်ပ် → အထောက်အထားပေးသူ → သင့်ဘရောက်ဆာမှတဆင့် ပြန်ဝင်
- 0:59 အာမခံချက်- လက်မှတ်သည် ၎င်းလက်မှတ်ထိုးထားသော အရာ၏အတွင်း၌ တည်ရှိသည်
- 1:10 Canonicalization- ဘိုက်တိုင်းကို သဘောတူပါ၊ မဟုတ်ပါက မည်သူမျှ ဝင်ရောက်နိုင်မည်မဟုတ်
- 1:32 2012: စစ်ဆေးသူနှင့် ဖတ်ရှုသူသည် မတူညီသော အစိတ်အပိုင်းများကို ကြည့်ရှုကြသည်
- 1:51 2018 နှင့် 2025: parsers နှစ်ခု၊ မတူညီသော အဖြေနှစ်ခု
- 2:08 အဘယ်ကြောင့် ဆက်လက်ပျက်စီးနေရသနည်း- ဒီဇိုင်းဆိုး၏ fractal
- 2:27 တနင်္လာနေ့- OIDC ဦးစွာ၊ ထိန်းသိမ်းထားသော library၊ တင်းကျပ်သော ပုံသဏ္ဌာန်များ
- 2:43 စီရင်ချက်၊ အတွင်းပိုင်း- REVERT

## ဘာသာပြန်ထားသော စာသားမှတ်တမ်း

မူရင်း အင်္ဂလိပ်စကားပြောမှ ဘာသာပြန်ထားသည်။ ရရှိနိုင်သော အသံနှင့် စာတန်းထိုးများကို YouTube မှ ထိန်းချုပ်ထားသည်။

### SAML: အတွင်းမှ သူ့ဘာသာသူ လက်မှတ်ထိုးသည့် ဝင်ရောက်ခြင်း

0:00 Saml သည် သင့်ပိုင်ဆိုင်သော အလုပ်အက်ပ်တိုင်းနီးပါးသို့ ဝင်ရောက်နိုင်သော XML ဖြစ်သည်၊ ၎င်း၏လက်မှတ်သည် ၎င်းလက်မှတ်ထိုးထားသော စာရွက်စာတမ်းအတွင်း၌ တည်ရှိပြီး၊ ၎င်းတံဆိပ်ခတ်နေသော စာအိတ်အတွင်း၌ နိုထရီတစ်ဦးက ၎င်း၏တံဆိပ်ကို ပူးကပ်ထားသကဲ့သို့ ဖြစ်သည်။ ကော်မတီတစ်ခုက ရေးသားပြီး ဆယ်နှစ်အကြာတွင် သုတေသီများသည် Saml framework ဆယ့်လေးခုကို စမ်းသပ်ခဲ့သည်။ ဆယ့်တစ်ခု ကျရှုံးခဲ့သည်။ ယခုအပတ်တွင် Trail of Bits မှ ဒီဇိုင်းဆိုး၏ fractal ဟုခေါ်သော စာမူတစ်ခုသည် Hacker News ၏ မျက်နှာဖုံးစာမျက်နှာပေါ်သို့ ရောက်ရှိခဲ့သည်။ သုံးမိနစ်အတွင်း- ဝင်ရောက်ခြင်းအက မည်သို့အလုပ်လုပ်သည်၊ လက်မှတ် မည်သည့်နေရာတွင် ဝှက်ထားသည်၊

0:27 နှင့် လူတိုင်းသဘောတူသော ပြင်ဆင်မှုသည် မတူညီသော ပရိုတိုကောတစ်ခုဖြစ်ရခြင်း အကြောင်းအရင်း။ ၎င်းသည် The Daily Diff ဖြစ်သည်၊ အတွင်းပိုင်း။

### 2002: XML ပုံစံလေးခု၊ ကော်မတီတစ်ခု၊ လုပ်ငန်းတစ်ခုလုံး

0:34 နှစ်ထောင်နှစ်။ Oasis မှ လုံခြုံရေးကော်မတီတစ်ခုသည် vendor XML ပုံစံလေးခုကို တစ်ခုတည်းအဖြစ် ပေါင်းစပ်သည်။ တက္ကသိုလ်များက ဦးစွာ လက်ခံကျင့်သုံးပြီးနောက် Okta က ၎င်းပေါ်တွင် ကုမ္ပဏီတစ်ခု တည်ဆောက်ခဲ့သည်၊ ကော်မတီစာရွက်စာတမ်းတစ်ခုသည် ဝင်ငွေအဖြစ် အလျင်အမြန်ဆုံး ပြောင်းလဲခဲ့သည်။ သင်သည် အက်ပ်ကို ဖွင့်လိုက်သည်။

### ဝင်ရောက်ခြင်းအက- အက်ပ် → အထောက်အထားပေးသူ → သင့်ဘရောက်ဆာမှတဆင့် ပြန်ဝင်

0:46 ၎င်းသည် သင့်အား မည်သူဖြစ်သည်ကို မသိသောကြောင့် သင့်ဘရောက်ဆာကို အထောက်အထားပေးသူထံသို့ ပြန်လှည့်ပို့သည်၊ ဥပမာ သင့်ကုမ္ပဏီ၏ Okta သို့။ သင် ထိုနေရာတွင် ဝင်ရောက်လိုက်သည်။ Okta သည် သင့်ဘရောက်ဆာသို့ သင်မည်သူဖြစ်သည်ကို ဖော်ပြသည့် လက်မှတ်ထိုးထားသော XML စာရွက်စာတမ်းတစ်ခု ပေးအပ်သည်၊ ဘရောက်ဆာက ၎င်းကို ပြန်လည်ပို့သည်။

### အာမခံချက်- လက်မှတ်သည် ၎င်းလက်မှတ်ထိုးထားသော အရာ၏အတွင်း၌ တည်ရှိသည်

0:59 ထိုစာရွက်စာတမ်းသည် အာမခံချက်ဖြစ်သည်။ ၎င်းသည် အသုံးပြုသူအမည်ကို ဖော်ပြပြီး လက်မှတ်သည် ၎င်းအတွင်း၌ တည်ရှိကာ၊ ၎င်း၏ ID ဖြင့် အာမခံချက်သို့ ပြန်ညွှန်ပြသည်။ တစ်ခုလုံးသည် သင့်ဘရောက်ဆာမှတဆင့် သွားသည်၊ ဆိုလိုသည်မှာ၊ အသုံးပြုသူမှတဆင့် သွားသည်။ ၎င်းကို စစ်ဆေးရန် အက်ပ်သည်

### Canonicalization- ဘိုက်တိုင်းကို သဘောတူပါ၊ မဟုတ်ပါက မည်သူမျှ ဝင်ရောက်နိုင်မည်မဟုတ်

1:11 လက်မှတ်ထိုးထားသော တိကျသော ဘိုက်များကို ပြန်လည်တည်ဆောက်သည်။ ၎င်းသည် လက်မှတ်ကို ပြန်ဖြတ်ထုတ်သည်၊ whitespace နှင့် attribute အစီအစဉ်ကို ပုံမှန်ပြုလုပ်ပြီး ရလဒ်ကို hash လုပ်သည်။ ၎င်းသည် canonicalization ဖြစ်ပြီး၊ နှစ်ဖက်စလုံးသည် ဘိုက်တစ်ဘိုက်မျှ ကွာခြားပါက၊ မည်သူမျှ ဝင်ရောက်နိုင်မည်မဟုတ်။ JSON web token တစ်ခုသည် ၎င်းကို မတူညီစွာ လုပ်ဆောင်သည်။ Header၊ payload နှင့် signature တို့သည် အစက်များဖြင့် ဘေးချင်းကပ်လျက် တည်ရှိသည်။ ဦးစွာ ဖြတ်ထုတ်ရန် မလိုအပ်ပါ။

### 2012: စစ်ဆေးသူနှင့် ဖတ်ရှုသူသည် မတူညီသော အစိတ်အပိုင်းများကို ကြည့်ရှုကြသည်

1:32 ဤတွင် အက်ကြောင်းဖြစ်သည်။ လက်မှတ်ကို စစ်ဆေးသည့် code နှင့် username ကို ဖတ်သည့် code တို့သည် မကြာခဏဆိုသလို မတူညီသော အပိုင်းနှစ်ခုဖြစ်သည်။ နှစ်ထောင်ဆယ့်နှစ်တွင် On Breaking Saml ဟုခေါ်သော စာတမ်းတစ်ခုက လက်မှတ်ထိုးထားသော အာမခံချက်ကို ဖတ်ရှုသူက လျစ်လျူရှုသည့်နေရာသို့ ရွှေ့နိုင်ပြီး ဒုတိယတစ်ခုကို ၎င်း ကြည့်သည့်နေရာတွင် ထားနိုင်ကြောင်း ပြသခဲ့သည်။ Salesforce နှင့် Shibboleth တို့သည် ၎င်းအတွက် ကျရှုံးခဲ့သော ဆယ့်တစ်ခုထဲတွင် ပါဝင်သည်။ နှစ်ထောင်ဆယ့်ရှစ်တွင် Duo က username အတွင်းရှိ comment တစ်ခုသည် library အချို့ကို

### 2018 နှင့် 2025: parsers နှစ်ခု၊ မတူညီသော အဖြေနှစ်ခု

1:55 နာမည်၏ တစ်ဝက်သာ ဖတ်စေနိုင်သော်လည်း လက်မှတ်သည်မူ စစ်ဆေးပြီးဖြစ်နေဆဲ ဖြစ်သည်ဟု ပြသခဲ့သည်။ နှစ်ထောင်နှစ်ဆယ့်ငါးတွင် GitHub က ruby Saml အတွင်းရှိ XML parsers နှစ်ခုသည် တူညီသော စာရွက်စာတမ်းနှင့် ပတ်သက်၍ သဘောမတူကြောင်း တွေ့ရှိခဲ့သည်။ တူညီသော bug၊ ဆယ်စုနှစ်အသစ်။ Trail of Bits က ၎င်းကို fractal ဟုခေါ်သည်၊ အဘယ်ကြောင့်ဆိုသော် သင် zoom ဝင်သွားသည့် အဆင့်တိုင်းတွင်

### အဘယ်ကြောင့် ဆက်လက်ပျက်စီးနေရသနည်း- ဒီဇိုင်းဆိုး၏ fractal

2:12 တူညီသော ချို့ယွင်းချက်ရှိနေသောကြောင့် ဖြစ်သည်။ ၎င်းသည် XML ပေါ်တွင် တည်ဆောက်ထားပြီး လက်မှတ်သည် enveloped ဖြစ်သည်၊ နှင့် တကယ့် login များသည် spec ၏ ဆယ်ပုံတစ်ပုံခန့်ကိုသာ အသုံးပြုသည်။ Hacker News ပေါ်မှ အပေါ်ဆုံး reply သည် ဝယ်ယူသူထံမှ လာသည်။ သင့်တွင် Saml ပံ့ပိုးမှုမရှိပါက ၎င်းရှိသော ထုတ်ကုန်တစ်ခုကို ကျွန်ုပ်ရှာတွေ့နိုင်ပါသည်။ နှစ်ခုလုံး မှန်ကန်သည်၊ ၎င်းသည် ပြဿနာဖြစ်သည်။ ထို့ကြောင့် တနင်္လာနေ့။ OpenID Connect ကို ဦးစွာ SHIP IT၊ Fly နှင့် Tailscale တို့သည်

### တနင်္လာနေ့- OIDC ဦးစွာ၊ ထိန်းသိမ်းထားသော library၊ တင်းကျပ်သော ပုံသဏ္ဌာန်များ

2:31 Saml မပါဘဲ လုပ်ငန်းများသို့ ရောင်းချသည်။ ဖောက်သည်တစ်ဦးက ၎င်းကို အတင်းအကျပ်တောင်းဆိုပါက၊ ထိန်းသိမ်းထားသော library ကို အသုံးပြုပါ၊ ၎င်းကို patch လုပ်ပါ၊ နှင့် Okta သို့မဟုတ် Google ပို့သောပုံစံနှင့် မတူသော မက်ဆေ့ချ်များကို လက်မခံပါနှင့်။ သင်ကိုယ်တိုင် လက်မှတ်စစ်ဆေးခြင်းကို ဘယ်သောအခါမျှ မရေးပါနှင့်။

### စီရင်ချက်၊ အတွင်းပိုင်း- REVERT

2:43 စီရင်ချက်၊ အတွင်းပိုင်း။ REVERT။ နှစ်ပေါင်းနှစ်ဆယ့်ငါးနှစ်နီးပါး၊ ဘယ်တော့မှ မသေဆုံးသော bug class တစ်ခု၊ နှင့် လူတိုင်းသဘောတူသော ပြင်ဆင်မှုသည် မတူညီသော ပရိုတိုကောတစ်ခုဖြစ်သည်။ ပြီးခဲ့သည့် စနေနေ့က ကျွန်ုပ် passkeys များကို ဖြုတ်တပ်ခဲ့သည်၊ ထို့ကြောင့် မှတ်ချက်များတွင် နောက်တစ်ခု မည်သည့်အရာကို ဖွင့်ရမည်ကို ပြောပြပါ။ ၎င်းသည် ယနေ့အတွက် diff ဖြစ်သည်။ ကျွန်တော် Axrisi မှ Niko ပါ။ တာဝန်ယူမှုရှိစွာ ပေါင်းစပ်ပါ။

## ရင်းမြစ်များ

- [Trail of Bits, "SAML: A fractal of bad design" (Matt Schwager, Sep 21, 2026)](https://blog.trailofbits.com/2026/09/21/saml-a-fractal-of-bad-design/) — blog.trailofbits.com
- [Hacker News thread](https://news.ycombinator.com/item?id=49806335) — news.ycombinator.com
- [Somorovsky et al., "On Breaking SAML: Be Whoever You Want to Be", USENIX Security 2012](https://www.usenix.org/conference/usenixsecurity12/technical-sessions/presentation/somorovsky) — www.usenix.org
- [Duo Labs, SAML vulnerabilities affecting multiple implementations (2018): https://duo.com/blog/duo-finds-saml-vulnerabilities-affecting-multiple-implementations · CERT VU#475445](https://www.kb.cert.org/vuls/id/475445) — www.kb.cert.org
- [GitHub Security Lab, "Sign in as anyone: Bypassing SAML SSO authentication with parser differentials" (Mar 12, 2025)](https://github.blog/security/sign-in-as-anyone-bypassing-saml-sso-authentication-with-parser-differentials/) — github.blog
