SAML, ພາຍໃຕ້ຜ້າຄຸມ: ລາຍເຊັນພາຍໃນຈົດໝາຍ
SAML ລົງຊື່ເຂົ້າໃຊ້ທ່ານເຂົ້າໃນເກືອບທຸກແອັບເຮັດວຽກ, ແລະລາຍເຊັນຂອງມັນອາໄສຢູ່ພາຍໃນ XML ທີ່ມັນເຊັນ.
SAML ລົງຊື່ເຂົ້າໃຊ້ທ່ານເຂົ້າໃນເກືອບທຸກແອັບເຮັດວຽກ, ແລະລາຍເຊັນຂອງມັນອາໄສຢູ່ພາຍໃນ XML ທີ່ມັນເຊັນ. ພາຍໃຕ້ຜ້າຄຸມ: ການເຕັ້ນລຳການເຂົ້າສູ່ລະບົບລະຫວ່າງແອັບ, ບຣາວເຊີ ແລະຜູ້ໃຫ້ບໍລິການຕົວຕົນ, ການຢືນຢັນເປັນແນວໃດ, ເປັນຫຍັງການກຳນົດມາດຕະຖານຕ້ອງເຫັນດີນຳທຸກໄບຕ໌, ແລະເປັນຫຍັງບັນຫາປະເພດດຽວກັນຈຶ່ງກັບຄືນມາຕັ້ງແຕ່ປີ 2012 ເຖິງ 2025. ກະຕຸ້ນໂດຍ Trail of Bits' "SAML: A fractal of bad design" (312 ຄະແນນໃນ Hacker News).
ອ່ານສະບັບລາຍລັກອັກສອນ (ພາສາອັງກິດ) ↗
ສິ່ງທີ່ວິດີໂອນີ້ກວມເອົາ
- SAML: ການເຂົ້າສູ່ລະບົບທີ່ເຊັນຕົວເອງຈາກພາຍໃນ
- 2002: ສີ່ຮູບແບບ XML, ໜຶ່ງຄະນະກຳມະການ, ອຸດສາຫະກຳທັງໝົດ
- ການເຕັ້ນລຳການເຂົ້າສູ່ລະບົບ: ແອັບ → ຜູ້ໃຫ້ບໍລິການຕົວຕົນ → ກັບຄືນຜ່ານບຣາວເຊີຂອງທ່ານ
- ການຢືນຢັນ: ລາຍເຊັນອາໄສຢູ່ພາຍໃນສິ່ງທີ່ມັນເຊັນ
- ການກຳນົດມາດຕະຖານ: ເຫັນດີນຳທຸກໄບຕ໌, ຫຼືບໍ່ມີໃຜເຂົ້າສູ່ລະບົບ
ບົດບັນທຶກທີ່ແປແລ້ວ
ແປຈາກຄຳບັນຍາຍຕົ້ນສະບັບພາສາອັງກິດ. ສຽງ ແລະ ຄຳບັນຍາຍທີ່ມີໃຫ້ແມ່ນຄວບຄຸມໂດຍ YouTube.
SAML: ການເຂົ້າສູ່ລະບົບທີ່ເຊັນຕົວເອງຈາກພາຍໃນ
0:00 SAML ແມ່ນ XML ທີ່ລົງຊື່ທ່ານເຂົ້າສູ່ລະບົບໃນເກືອບທຸກແອັບເຮັດວຽກທີ່ທ່ານມີ, ແລະລາຍເຊັນຂອງມັນອາໄສຢູ່ພາຍໃນເອກະສານທີ່ມັນເຊັນ, ຄືກັບຜູ້ຮັບຮອງປະທັບຕາຂອງລາວຢູ່ພາຍໃນຊອງຈົດໝາຍທີ່ລາວກໍາລັງປະທັບຕາ. ສິບປີຫຼັງຈາກຄະນະກໍາມະການໄດ້ຂຽນມັນ, ນັກຄົ້ນຄວ້າໄດ້ທົດສອບສິບສີ່ SAML ໂຄງຮ່າງ. ສິບເອັດລົ້ມເຫຼວ. ແລະອາທິດນີ້ໂພສ Trail of Bits ທີ່ເອີ້ນມັນວ່າ fractal of bad design ໄດ້ຖືກນຳໄປທີ່ ໜ້າທໍາອິດຂອງ Hacker News. ໃນສາມນາທີ: ການເຕັ້ນລໍາການເຂົ້າສູ່ລະບົບເຮັດວຽກແນວໃດ, ລາຍເຊັນເຊື່ອງຢູ່ໃສ,
0:27 ແລະເປັນຫຍັງການແກ້ໄຂທີ່ທຸກຄົນເຫັນດີນໍາແມ່ນໂປຣໂຕຄໍທີ່ແຕກຕ່າງກັນ. ນີ້ແມ່ນ The Daily Diff, ພາຍໃຕ້ຜ້າຄຸມ.
2002: ສີ່ຮູບແບບ XML, ໜຶ່ງຄະນະກຳມະການ, ອຸດສາຫະກຳທັງໝົດ
0:34 ສອງພັນສອງ. ຄະນະກໍາມະການຄວາມປອດໄພທີ່ Oasis ລວມສີ່ຮູບແບບ XML ຂອງຜູ້ຂາຍເຂົ້າເປັນອັນດຽວ. ມະຫາວິທະຍາໄລຮັບເອົາມັນກ່ອນ, ຫຼັງຈາກນັ້ນ Okta ສ້າງຕັ້ງບໍລິສັດຢູ່ມັນ, ໄວທີ່ສຸດທີ່ເອກະສານຄະນະກໍາມະການເຄີຍປ່ຽນເປັນລາຍໄດ້. ທ່ານເປີດແອັບ.
ການເຕັ້ນລຳການເຂົ້າສູ່ລະບົບ: ແອັບ → ຜູ້ໃຫ້ບໍລິການຕົວຕົນ → ກັບຄືນຜ່ານບຣາວເຊີຂອງທ່ານ
0:46 ມັນບໍ່ຮູ້ວ່າທ່ານແມ່ນໃຜ, ດັ່ງນັ້ນມັນຈະສົ່ງບຣາວເຊີຂອງທ່ານໄປຫາຜູ້ໃຫ້ບໍລິການຕົວຕົນ, ເວົ້າວ່າ Okta ຂອງບໍລິສັດທ່ານ. ທ່ານເຂົ້າສູ່ລະບົບຢູ່ທີ່ນັ້ນ. Okta ມອບເອກະສານ XML ທີ່ລົງນາມໃຫ້ບຣາວເຊີຂອງທ່ານທີ່ບອກວ່າທ່ານແມ່ນໃຜ, ແລະບຣາວເຊີສົ່ງມັນກັບຄືນມາ.
ການຢືນຢັນ: ລາຍເຊັນອາໄສຢູ່ພາຍໃນສິ່ງທີ່ມັນເຊັນ
0:59 ເອກະສານນັ້ນແມ່ນການຢືນຢັນ. ມັນລະບຸຊື່ຜູ້ໃຊ້, ແລະລາຍເຊັນນັ່ງຢູ່ພາຍໃນມັນ, ຊີ້ກັບຄືນໄປຫາການຢືນຢັນໂດຍ ID ຂອງມັນ. ແລະທັງຫມົດນີ້ຜ່ານບຣາວເຊີຂອງທ່ານ, ນັ້ນຄື, ຜ່ານຜູ້ໃຊ້. ເພື່ອກວດສອບມັນ, ແອັບ
ການກຳນົດມາດຕະຖານ: ເຫັນດີນຳທຸກໄບຕ໌, ຫຼືບໍ່ມີໃຜເຂົ້າສູ່ລະບົບ
1:11 ສ້າງຄືນໄບຕ໌ທີ່ຖືກເຊັນໄວ້ຢ່າງແນ່ນອນ. ມັນຕັດລາຍເຊັນອອກ, ປົກກະຕິຊ່ອງຫວ່າງ ແລະຄຸນສົມບັດ ຄໍາສັ່ງ, ແລະ hash ຜົນໄດ້ຮັບ. ນັ້ນແມ່ນ canonicalization, ແລະຖ້າສອງຝ່າຍບໍ່ເຫັນດີນໍາໂດຍໄບຕ໌ດຽວ, ບໍ່ມີໃຜເຂົ້າສູ່ລະບົບ. ໂທເຄັນເວັບ JSON ເຮັດມັນແຕກຕ່າງກັນ. ສ່ວນຫົວ, ເພໂຫຼດ ແລະລາຍເຊັນນັ່ງຢູ່ຂ້າງກັນກັບຈຸດຢູ່ລະຫວ່າງກາງ. ບໍ່ມີຫຍັງທີ່ຈະຕ້ອງຕັດອອກກ່ອນ.
2012: ຜູ້ກວດສອບ ແລະ ຜູ້ອ່ານເບິ່ງອົງປະກອບທີ່ແຕກຕ່າງກັນ
1:32 ນີ້ແມ່ນຮອຍແຕກ. ລະຫັດທີ່ກວດສອບລາຍເຊັນ ແລະລະຫັດທີ່ອ່ານຊື່ຜູ້ໃຊ້ແມ່ນ ມັກຈະເປັນສອງສ່ວນທີ່ແຕກຕ່າງກັນ. ໃນປີ 2012, ເອກະສານທີ່ເອີ້ນວ່າ On Breaking SAML ໄດ້ສະແດງໃຫ້ເຫັນວ່າທ່ານສາມາດຍ້າຍ ການຢືນຢັນທີ່ເຊັນໄວ້ທີ່ຜູ້ອ່ານບໍ່ສົນໃຈມັນ, ແລະໃສ່ອີກອັນໜຶ່ງທີ່ມັນ ເບິ່ງ. Salesforce ແລະ Shibboleth ແມ່ນໃນບັນດາສິບເອັດທີ່ຕົກເປັນເຫຍື່ອ. ໃນປີ 2018, Duo ໄດ້ສະແດງໃຫ້ເຫັນວ່າຄໍາເຫັນພາຍໃນຊື່ຜູ້ໃຊ້ສາມາດເຮັດໃຫ້ບາງ
2018 ແລະ 2025: ສອງຕົວວິເຄາະ, ສອງຄໍາຕອບທີ່ແຕກຕ່າງກັນ
1:55 ຫໍສະໝຸດອ່ານພຽງເຄິ່ງຊື່, ໃນຂະນະທີ່ລາຍເຊັນຍັງກວດສອບຖືກຕ້ອງ. ໃນປີ 2025, GitHub ພົບສອງຕົວວິເຄາະ XML ພາຍໃນ ruby SAML ບໍ່ເຫັນດີນໍາກ່ຽວກັບເອກະສານດຽວກັນ. ຂໍ້ຜິດພາດດຽວກັນ, ທົດສະວັດໃໝ່. Trail of Bits ເອີ້ນມັນວ່າ fractal, ເພາະວ່າທຸກລະດັບທີ່ທ່ານຂະຫຍາຍເຂົ້າໄປມີ
ເປັນຫຍັງມັນຈຶ່ງແຕກຫັກຢູ່ເລື້ອຍໆ: ຮູບແບບທີ່ບໍ່ດີ
2:12 ຂໍ້ບົກຜ່ອງດຽວກັນ. ມັນຖືກສ້າງຂຶ້ນບົນພື້ນຖານ XML, ລາຍເຊັນຖືກຫຸ້ມຫໍ່, ແລະການເຂົ້າສູ່ລະບົບຕົວຈິງໃຊ້ພຽງແຕ່ໜຶ່ງສ່ວນສິບຂອງສະເປັກ. ແລະຄໍາຕອບອັນດັບຕົ້ນໃນ Hacker News ມາຈາກຜູ້ຊື້. ຖ້າທ່ານບໍ່ມີການຮອງຮັບ SAML, ຂ້ອຍສາມາດຊອກຫາຜະລິດຕະພັນທີ່ມີ. ທັງສອງແມ່ນຄວາມຈິງ, ຊຶ່ງເປັນບັນຫາ. ດັ່ງນັ້ນ, ວັນຈັນ. ສົ່ງ OpenID Connect ກ່ອນ, Fly ແລະ Tailscale ຂາຍໃຫ້
ວັນຈັນ: OIDC ກ່ອນ, ຫໍສະໝຸດທີ່ຮັກສາໄວ້, ຮູບແບບທີ່ເຄັ່ງຄັດ
2:31 ວິສາຫະກິດໂດຍບໍ່ມີ SAML ເລີຍ. ຖ້າລູກຄ້າບັງຄັບ, ໃຊ້ຫໍສະໝຸດທີ່ຮັກສາໄວ້, ຮັກສາມັນໃຫ້ທັນສະໄໝ, ແລະປະຕິເສດຂໍ້ຄວາມທີ່ບໍ່ຄືກັບສິ່ງທີ່ Okta ຫຼື Google ສົ່ງ. ຢ່າຂຽນການກວດສອບລາຍເຊັນຂອງທ່ານເອງ.
ຄໍາຕັດສິນ, ພາຍໃຕ້ຜ້າຄຸມ: REVERT
2:43 ຄໍາຕັດສິນ, ພາຍໃຕ້ຜ້າຄຸມ. REVERT. ເກືອບຊາວຫ້າປີ, ບັນຫາປະເພດດຽວກັນທີ່ບໍ່ເຄີຍຕາຍ, ແລະການແກ້ໄຂທີ່ທຸກຄົນເຫັນດີນໍາແມ່ນໂປຣໂຕຄໍທີ່ແຕກຕ່າງກັນ. ວັນເສົາທີ່ຜ່ານມາຂ້ອຍໄດ້ແຍກ passkeys, ດັ່ງນັ້ນບອກຂ້ອຍວ່າຈະເປີດຫຍັງຕໍ່ໄປໃນ ຄໍາເຫັນ. ແລະນັ້ນແມ່ນຄວາມແຕກຕ່າງສໍາລັບມື້ນີ້. ຂ້ອຍແມ່ນ Niko ຈາກ 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



