+− THE DAILY DIFFdev & AI news
REVERT

SAML, भित्री भाग: पत्र भित्रको हस्ताक्षर

SAML ले तपाईंलाई लगभग हरेक कार्य एपमा लग इन गराउँछ, र यसको हस्ताक्षर यसले हस्ताक्षर गर्ने XML भित्र रहन्छ।

SAML ले तपाईंलाई लगभग हरेक कार्य एपमा लग इन गराउँछ, र यसको हस्ताक्षर यसले हस्ताक्षर गर्ने XML भित्र रहन्छ। भित्री भाग: एप, ब्राउजर र पहिचान प्रदायक बीचको लगइन प्रक्रिया, एउटा प्रमाण कस्तो देखिन्छ, किन क्यानोनिकलाइजेसनले प्रत्येक बाइटमा सहमत हुनुपर्छ, र किन उही बग क्लास २०१२ देखि २०२५ सम्म फर्कदै रहन्छ। ट्रेल अफ बिट्सको "SAML: खराब डिजाइनको एक फ्र्याक्टल" (ह्याकर न्यूजमा ३१२ अंक) बाट प्रेरित।

लिखित संस्करण पढ्नुहोस् (अंग्रेजी) ↗

यो भिडियोले के समेट्छ

  • SAML: भित्रबाटै आफूलाई हस्ताक्षर गर्ने लगइन
  • २००२: चार XML ढाँचा, एक समिति, पूरै उद्योग
  • लगइन प्रक्रिया: एप → पहिचान प्रदायक → तपाईंको ब्राउजर मार्फत फिर्ता
  • प्रमाण: हस्ताक्षरले हस्ताक्षर गर्ने कुरा भित्र रहन्छ
  • क्यानोनिकलाइजेसन: प्रत्येक बाइटमा सहमत हुनुहोस्, नत्र कसैले पनि लगइन गर्न सक्दैन

अनुवादित ट्रान्सक्रिप्ट

मूल अंग्रेजी कथाबाट अनुवादित। उपलब्ध अडियो र क्याप्सनहरू YouTube द्वारा नियन्त्रित हुन्छन्।

SAML: भित्रबाटै आफूलाई हस्ताक्षर गर्ने लगइन

0:00 SAML एउटा XML हो जसले तपाईंलाई स्वामित्वमा रहेका लगभग हरेक कार्य एपमा लग इन गराउँछ, र यसको हस्ताक्षर यसले हस्ताक्षर गर्ने कागजात भित्र रहन्छ, जसरी एक नोटरीले आफूले सिल गरिरहेको खाम भित्र आफ्नो छाप टाँस्छ। एउटा समितिले यसलाई लेखेको दश वर्षपछि, शोधकर्ताहरूले चौध Saml फ्रेमवर्कहरू परीक्षण गरे। एघार वटा असफल भए। र यस हप्ता ट्रेल अफ बिट्सको एउटा पोस्ट जसले यसलाई खराब डिजाइनको एक फ्र्याक्टल भन्यो त्यो ह्याकर न्यूजको मुख्य पृष्ठमा पुग्यो। तीन मिनेटमा: लगइन प्रक्रिया कसरी काम गर्छ, हस्ताक्षर कहाँ लुकेको छ,

0:27 र किन सबैले सहमत भएको समाधान फरक प्रोटोकल हो। यो The Daily Diff, भित्री भाग हो।

२००२: चार XML ढाँचा, एक समिति, पूरै उद्योग

0:34 दुई हजार दुई। ओसिसमा रहेको एक सुरक्षा समितिले चार विक्रेता XML ढाँचाहरूलाई एउटैमा मर्ज गर्छ। विश्वविद्यालयहरूले यसलाई पहिले अपनाउँछन्, त्यसपछि Okta ले यसमा आधारित एउटा कम्पनी बनाउँछ, जुन एउटा समिति कागजात राजस्वमा परिणत भएको सबैभन्दा छिटो तरिका हो। तपाईंले एप खोल्नुहुन्छ।

लगइन प्रक्रिया: एप → पहिचान प्रदायक → तपाईंको ब्राउजर मार्फत फिर्ता

0:46 यसलाई तपाईं को हुनुहुन्छ भन्ने कुनै जानकारी हुँदैन, त्यसैले यसले तपाईंको ब्राउजरलाई पहिचान प्रदायकमा पठाउँछ, जस्तै तपाईंको कम्पनीको Okta। तपाईं त्यहाँ लगइन गर्नुहुन्छ। Okta ले तपाईंको ब्राउजरलाई तपाईं को हुनुहुन्छ भनी बताउने एक हस्ताक्षरित XML कागजात दिन्छ, र ब्राउजरले त्यसलाई फिर्ता पोस्ट गर्छ।

प्रमाण: हस्ताक्षरले हस्ताक्षर गर्ने कुरा भित्र रहन्छ

0:59 त्यो कागजात नै प्रमाण हो। यसले प्रयोगकर्ताको नाम बताउँछ, र हस्ताक्षर यसको भित्रै बस्छ, यसको ID द्वारा प्रमाणमा फर्केर देखाउँदै। र सम्पूर्ण कुरा तपाईंको ब्राउजर मार्फत जान्छ, भन्नुको अर्थ हो, प्रयोगकर्ता मार्फत। यसलाई जाँच गर्न, एपले

क्यानोनिकलाइजेसन: प्रत्येक बाइटमा सहमत हुनुहोस्, नत्र कसैले पनि लगइन गर्न सक्दैन

1:11 हस्ताक्षर गरिएका ठ्याक्कै बाइटहरू पुन: निर्माण गर्छ। यसले हस्ताक्षरलाई फिर्ता काट्छ, खाली ठाउँ र विशेषताको क्रमलाई सामान्य बनाउँछ, र परिणामलाई ह्यास गर्छ। त्यो क्यानोनिकलाइजेसन हो, र यदि दुई पक्ष एकै बाइटले पनि असहमत भए, कसैले पनि लगइन गर्न सक्दैन। एक JSON वेब टोकनले यसलाई फरक तरिकाले गर्छ। हेडर, पेलोड र हस्ताक्षर बीचमा थोप्लाहरूसहित सँगै बस्छन्। पहिले केही काट्नुपर्दैन।

२०१२: परीक्षक र पाठकले फरक तत्वहरू हेर्छन्

1:32 यहाँ समस्या छ। हस्ताक्षर जाँच गर्ने कोड र प्रयोगकर्ता नाम पढ्ने कोड प्रायः दुई फरक टुक्राहरू हुन्छन्। सन् २०१२ मा, On Breaking Saml नामक एउटा पेपरले देखाएको थियो कि तपाईंले हस्ताक्षरित प्रमाणलाई जहाँ पाठकले बेवास्ता गर्छ त्यहाँ सार्न सक्नुहुन्छ, र दोस्रोलाई जहाँ पाठकले हेर्छ त्यहाँ राख्न सक्नुहुन्छ। Salesforce र Shibboleth यसमा फसेका एघार मध्ये थिए। सन् २०१२ मा, On Breaking Saml नामक एउटा पेपरले देखाएको थियो कि तपाईंले हस्ताक्षरित प्रमाणलाई जहाँ पाठकले बेवास्ता गर्छ त्यहाँ सार्न सक्नुहुन्छ, र दोस्रोलाई जहाँ पाठकले हेर्छ त्यहाँ राख्न सक्नुहुन्छ। Salesforce र Shibboleth यसमा फसेका एघार मध्ये थिए। सन् २०१८ मा, Duo ले देखाएको थियो कि एक प्रयोगकर्ता नाम भित्रको टिप्पणीले केही

२०१८ र २०२५: दुई पार्सर, दुई फरक उत्तर

1:55 लाइब्रेरीहरूलाई नामको आधा मात्र पढ्न लगाउन सक्छ, जबकि हस्ताक्षर अझै पनि ठीक देखिन्छ। सन् २०२५ मा, GitHub ले ruby Saml भित्र दुई XML पार्सरहरू एउटै कागजातको बारेमा असहमत भएको पत्ता लगायो। एउटै बग, नयाँ दशक। ट्रेल अफ बिट्सले यसलाई फ्र्याक्टल भन्छ, किनभने तपाईंले जुम गर्ने हरेक स्तरमा

यो किन बिग्रिरहन्छ: खराब डिजाइनको एक फ्र्याक्टल

2:12 एउटै त्रुटि हुन्छ। यो XML मा आधारित छ, हस्ताक्षर भित्र राखिएको छ, र वास्तविक लगइनहरूले स्पेकको लगभग दसौं भाग मात्र प्रयोग गर्छन्। र ह्याकर न्यूजमा शीर्ष जवाफ खरिदकर्ताबाट आउँछ। यदि तपाईंसँग Saml समर्थन छैन भने, म Saml समर्थन भएको उत्पादन भेट्टाउन सक्छु। दुवै सत्य हुन्, जुन समस्या हो। त्यसैले, सोमबार। पहिले OpenID Connect SHIP IT, Fly र Tailscale ले Saml बिना नै

सोमबार: पहिले OIDC, एक मर्मत गरिएको लाइब्रेरी, कडा आकारहरू

2:31 उद्यमहरूलाई बिक्री गर्छन्। यदि ग्राहकले यसलाई बाध्य पार्छ भने, एक मर्मत गरिएको लाइब्रेरी प्रयोग गर्नुहोस्, यसलाई प्याच गरिएको राख्नुहोस्, र Okta वा Google ले नपठाएको जस्ता देखिने सन्देशहरू अस्वीकार गर्नुहोस्। आफ्नै हस्ताक्षर जाँच कहिल्यै नलेख्नुहोस्।

फैसला, भित्री भाग: REVERT

2:43 फैसला, भित्री भाग। REVERT। लगभग पच्चीस वर्ष, एउटै बग क्लास जुन कहिल्यै मर्दैन, र सबैले सहमत भएको समाधान फरक प्रोटोकल हो। गत शनिबार मैले पासकीहरूलाई अलग गरेँ, त्यसैले टिप्पणीहरूमा अर्को के खोल्ने भन्नुहोस्। र आजको लागि भिन्नता यही हो। म Axrisi बाट Niko हुँ। जिम्मेवारीपूर्वक मर्ज गर्नुहोस्।

स्रोतहरू

  1. Trail of Bits, "SAML: A fractal of bad design" (Matt Schwager, Sep 21, 2026)blog.trailofbits.com
  2. Hacker News threadnews.ycombinator.com
  3. Somorovsky et al., "On Breaking SAML: Be Whoever You Want to Be", USENIX Security 2012www.usenix.org
  4. 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
  5. GitHub Security Lab, "Sign in as anyone: Bypassing SAML SSO authentication with parser differentials" (Mar 12, 2025)github.blog

सम्बन्धित भिडियोहरू

under-the-hood · ne · २०२६ सेप्टेम्बर १९

पासकी, भित्री भागमा

पासकी एउटा पासवर्ड हो जुन तपाईंको उपकरणले सिर्जना गर्छ, तपाईंलाई कहिल्यै देखाउँदैन र तपाईं सहित कसैलाई पनि दिन अस्वीकार गर्छ। भित्री भागमा: WebAuthn समारोह (प्रति-साइट कुञ्जी जोडी, चुनौती, हस्ताक्षर),

3:12 ↗
under-the-hood · ne · २०२६ सेप्टेम्बर २३

जब एउटा मोडेल मर्छ, भित्रभित्रै

एक AI मोडेल मर्‍दैन — यसले बन्द हुने मिति पाउँछ, र भोलिपल्ट बिहान, तपाईंको API कलले 404 फर्काउँछ: "मोडेल अप्रचलित भएको छ, यहाँ थप जान्नुहोस्।" भित्रभित्रै: चार-अवस्थाको पाइपलाइन (सक्रिय → लिगेसी → अप्

3:15 ↗
under-the-hood · ne · २०२६ सेप्टेम्बर २१

क्लाउडले RSA-896 फ्याक्टर गर्यो। यहाँ RSA कसरी वास्तवमा टुट्छ

सेप्टेम्बर १९ मा एन्थ्रोपिकका एक इन्जिनियरले RSA-896 — २७० अंकको चुनौती नम्बर — क्लाउड, ओपन-सोर्स CADO-NFS सिभको GPU पोर्ट र दश दिनमा २,०४८ निष्क्रिय GPU मा ~३० GPU-वर्षको साथ फ्याक्टर गरे, कग्निसनको

3:39 ↗
under-the-hood · ne · २०२६ सेप्टेम्बर १८

रिकर्सिभ सेल्फ-इम्प्रुभमेन्ट, भित्री भागमा

गुगल डीपमाइन्डले "ड्रिम-आरएसआई: रिकर्सिभ सेल्फ-इम्प्रुभमेन्ट थ्रु इभोल्भिङ वर्ल्ड्स" प्रकाशित गर्यो — र यस भित्रको कोडिङ मोडेल कहिल्यै परिवर्तन हुँदैन। भित्री भागमा: ६० वर्षदेखि यो वाक्यांशको अर्थ के

4:03 ↗