SAML፣ ከሽፋኑ ስር፡ ደብዳቤው ውስጥ ያለው ፊርማ
SAML እርስዎን ወደ እያንዳንዱ የስራ መተግበሪያ ያስገባዎታል፣ እና ፊርማው በሚፈርመው XML ውስጥ ይኖራል። ከሽፋኑ ስር፡ በመተግበሪያው፣ በአሳሹ እና በየማንነት አቅራቢው መካከል ያለው የመግቢያ ዳንስ፣ አንድ ማረጋገጫ ምን እንደሚመስል፣ የካኖኒካላይዜሽን ሂደት በእያንዳንዱ ባይት ላይ መስማማት ያለበት ለምንድን ነው፣ እና ተመሳሳይ የሳንካ ክፍል ከ2012 እስከ 2025 ለምን በተደጋጋሚ ይመለሳል። በTrail of Bits "SAML: A fractal of bad design" (በHacker News ላይ 312 ነጥቦች) የቀረበ።
SAML እርስዎን ወደ እያንዳንዱ የስራ መተግበሪያ ያስገባዎታል፣ እና ፊርማው በሚፈርመው XML ውስጥ ይኖራል። ከሽፋኑ ስር፡ በመተግበሪያው፣ በአሳሹ እና በየማንነት አቅራቢው መካከል ያለው የመግቢያ ዳንስ፣ አንድ ማረጋገጫ ምን እንደሚመስል፣ የካኖኒካላይዜሽን ሂደት በእያንዳንዱ ባይት ላይ መስማማት ያለበት ለምንድን ነው፣ እና ተመሳሳይ የሳንካ ክፍል ከ2012 እስከ 2025 ለምን በተደጋጋሚ ይመለሳል። በTrail of Bits "SAML: A fractal of bad design" (በHacker News ላይ 312 ነጥቦች) የቀረበ።
ይህ ቪዲዮ ምን ይሸፍናል
- SAML: ራሱን ከውስጥ የሚፈርመው መግቢያ
- 2002: አራት የXML ቅርፀቶች፣ አንድ ኮሚቴ፣ አንድ ሙሉ ኢንዱስትሪ
- የመግቢያ ዳንስ: መተግበሪያ → ማንነት አቅራቢ → በአሳሽዎ በኩል ይመለሳል
- ማረጋገጫው: ፊርማው በሚፈርመው ውስጥ ይኖራል
- ካኖኒካላይዜሽን: በእያንዳንዱ ባይት ተስማሙ፣ አለበለዚያ ማንም አይገባም
የተተረጎመ ግልባጭ
ከዋናው የእንግሊዝኛ ትረካ የተተረጎመ። የሚገኙ ኦዲዮ እና መግለጫ ጽሑፎች በYouTube ቁጥጥር ስር ናቸው።
SAML: ራሱን ከውስጥ የሚፈርመው መግቢያ
0:00 SAML እርስዎ ያለዎትን እያንዳንዱን የስራ መተግበሪያ የሚያስገባ XML ነው፣ እና ፊርማው በሚፈርመው ሰነድ ውስጥ ይኖራል፣ ማኅተሙን በሚዘጋው ፖስታ ውስጥ እንደሚያስገባ ኖተሪ። አንድ ኮሚቴ ከጻፈው ከአስር ዓመታት በኋላ፣ ተመራማሪዎች አስራ አራት Saml ፍሬምዎርኮችን ሞከሩ። አስራ አንድ ወደቁ። እና በዚህ ሳምንት Trail of Bits የሰጠው "የመጥፎ ዲዛይን ፍራክታል" የሚል ጽሁፍ የHacker News የፊት ገጽን መታ። በሶስት ደቂቃዎች ውስጥ: የመግቢያ ዳንሱ እንዴት እንደሚሰራ፣ ፊርማው የት እንደሚደበቅ፣
0:27 እና ሁሉም ሰው የተስማማበት መፍትሄ ለምን የተለየ ፕሮቶኮል እንደሆነ። ይህ The Daily Diff ነው፣ ከሽፋኑ ስር።
2002: አራት የXML ቅርፀቶች፣ አንድ ኮሚቴ፣ አንድ ሙሉ ኢንዱስትሪ
0:34 ሁለት ሺህ ሁለት። በኦአሲስ የሚገኝ የደህንነት ኮሚቴ አራት የአቅራቢ XML ቅርፀቶችን ወደ አንድ አዋህዷል። ዩኒቨርሲቲዎች መጀመሪያ ተቀበሉት፣ ከዚያም Okta በእሱ ላይ አንድ ኩባንያ ገነባ፣ አንድ የኮሚቴ ሰነድ ወደ ገቢነት ከተለወጠበት ፈጣኑ መንገድ። መተግበሪያውን ይከፍታሉ።
የመግቢያ ዳንስ: መተግበሪያ → ማንነት አቅራቢ → በአሳሽዎ በኩል ይመለሳል
0:46 ማን እንደሆኑ ምንም አያውቅም፣ ስለዚህ አሳሽዎን ወደ ማንነት አቅራቢው ይመልሰዋል፣ ለምሳሌ የኩባንያዎ Okta። እዚያ ይገባሉ። Okta አሳሽዎን ማን እንደሆኑ የሚገልጽ የተፈረመ የXML ሰነድ ይሰጠዋል፣ እና አሳሹ መልሶ ይልከዋል።
ማረጋገጫው: ፊርማው በሚፈርመው ውስጥ ይኖራል
0:59 ያ ሰነድ ማረጋገጫው ነው። የተጠቃሚውን ስም ይጠቅሳል፣ እና ፊርማው በውስጡ ይቀመጣል፣ በመታወቂያው ወደ ማረጋገጫው በመጠቆም ላይ። እና ሁሉም ነገር በአሳሽዎ በኩል ይጓዛል፣ ይህም ማለት ነው፣ በተጠቃሚው በኩል። ለመፈተሽ፣ መተግበሪያው
ካኖኒካላይዜሽን: በእያንዳንዱ ባይት ተስማሙ፣ አለበለዚያ ማንም አይገባም
1:11 የተፈረሙትን ትክክለኛ ባይቶች እንደገና ይገነባል። ፊርማውን መልሶ ይቆርጣል፣ የቦታዎችን እና የባህሪያትን ቅደም ተከተል ያመቻቻል፣ እና ውጤቱን ሃሽ ያደርጋል። ይህ ካኖኒካላይዜሽን ነው፣ እና ሁለቱ ወገኖች በአንድ ባይት ቢለያዩ፣ ማንም አይገባም። የJSON ድር ምልክት በተለየ መንገድ ያደርገዋል። ራስጌ፣ ጭነት እና ፊርማ ነጥቦችን በመካከል አስቀምጠው ጎን ለጎን ይቀመጣሉ። መጀመሪያ የሚቆረጥ ምንም ነገር የለም።
2012: አመልካቹና አንባቢው የተለያዩ ንጥረ ነገሮችን ያያሉ
1:32 ክፍተቱ ይኸው። ፊርማውን የሚፈትሸው ኮድ እና የተጠቃሚ ስም የሚያነበው ኮድ ብዙውን ጊዜ ሁለት የተለያዩ ክፍሎች ናቸው። በሁለት ሺህ አስራ ሁለት፣ "On Breaking Saml" የተባለ ወረቀት የተፈረመውን ማረጋገጫ አንባቢው ችላ በሚለው ቦታ ማንቀሳቀስ እንደሚችሉ አሳይቷል፣ እና ሁለተኛውን በሚፈልግበት ቦታ ማስቀመጥ እንደሚችሉ አሳይቷል። Salesforce እና Shibboleth ከወደቁት አስራ አንድ ውስጥ ነበሩ። በሁለት ሺህ አስራ ስምንት፣ Duo በተጠቃሚ ስም ውስጥ ያለ አስተያየት አንዳንድ ቤተ-መጻሕፍትን ስሙን ግማሽ ብቻ እንዲያነቡ ሊያደርግ እንደሚችል አሳይቷል፣ ፊርማው ግን አሁንም ትክክል ነበር።
2018 እና 2025: ሁለት ፓርሰሮች፣ ሁለት የተለያዩ መልሶች
1:55 በሁለት ሺህ ሃያ አምስት፣ GitHub በ ruby Saml ውስጥ ሁለት የXML ፓርሰሮች በተመሳሳይ ሰነድ ላይ የማይስማሙ መሆናቸውን አገኘ። ተመሳሳይ ሳንካ፣ አዲስ አስርተ ዓመት። ተመሳሳይ ሳንካ፣ አዲስ አስርተ ዓመት። Trail of Bits "ፍራክታል" ይለዋል፣ ምክንያቱም ወደ ውስጥ በገቡበት እያንዳንዱ ደረጃ
ለምን በተደጋጋሚ ይሰበራል: የመጥፎ ዲዛይን ፍራክታል
2:12 ተመሳሳይ ጉድለት አለው። በXML ላይ የተገነባ ነው፣ ፊርማው በፖስታ የተላከ ነው፣ እና እውነተኛ መግቢያዎች ምናልባት የአንድ አሥረኛውን ዝርዝር መግለጫ ይጠቀማሉ። እና በHacker News ላይ ያለው ከፍተኛ ምላሽ የመጣው ከገዢው ነው። የSAML ድጋፍ ከሌለዎት፣ የሚያደርግ ምርት ማግኘት እችላለሁ። ሁለቱም እውነት ናቸው፣ ይህም ችግሩ ነው። ስለዚህ፣ ሰኞ። OpenID Connectን መጀመሪያ SHIP IT፣ Fly እና Tailscale
ሰኞ: OIDC መጀመሪያ፣ የተያዘ ቤተ-መጽሐፍት፣ ጥብቅ ቅርጾች
2:31 ለድርጅቶች ያለ SAML በጭራሽ አይሸጡም። አንድ ደንበኛ ካስገደደው፣ የተያዘ ቤተ-መጽሐፍት ይጠቀሙ፣ በደንብ የተገጠመ ያድርጉት፣ እና Okta ወይም Google ከሚልኩት ጋር የማይመሳሰሉ መልዕክቶችን እምቢ ይበሉ። የራስዎን ፊርማ ማረጋገጫ በጭራሽ አይጻፉ።
ፍርድ፣ ከሽፋኑ ስር: REVERT
2:43 ፍርድ፣ ከሽፋኑ ስር። REVERT። ወደ ሃያ አምስት ዓመታት ሊጠጋ ነው፣ አንድ የማይሞት የሳንካ ክፍል፣ እና ሁሉም የተስማሙበት መፍትሄ የተለየ ፕሮቶኮል ነው። ባለፈው ቅዳሜ ፓስኬዎችን ፈትቼ ነበር፣ ስለዚህ በሚቀጥለው ምን እንደምከፍት በአስተያየቶቹ ውስጥ ይንገሩኝ። እና የዛሬው ልዩነት ይሄ ነው። እኔ ከAxrisi ኒኮ ነኝ። ኃላፊነት በተሞላበት መንገድ ያዋህዱ።
ምንጮች
- Trail of Bits, "SAML: A fractal of bad design" (Matt Schwager, Sep 21, 2026)blog.trailofbits.com
- Hacker News threadnews.ycombinator.com
- Somorovsky et al., "On Breaking SAML: Be Whoever You Want to Be", USENIX Security 2012www.usenix.org
- Duo Labs, SAML vulnerabilities affecting multiple implementations (2018): https://duo.com/blog/duo-finds-saml-vulnerabilities-affecting-multiple-implementations · CERT VU#475445www.kb.cert.org
- GitHub Security Lab, "Sign in as anyone: Bypassing SAML SSO authentication with parser differentials" (Mar 12, 2025)github.blog



