# SAML, under the hood: the signature inside the letter

Published: 2026-09-24

SAML آپ کو تقریباً ہر کام کی ایپ میں لاگ ان کرتا ہے، اور اس کا دستخط اس XML کے اندر رہتا ہے جس پر وہ دستخط کرتا ہے۔ اندرونی طور پر: ایپ، براؤزر اور شناخت فراہم کنندہ کے درمیان لاگ ان ڈانس، ایک دعویٰ کیسا لگتا ہے، کینونیکلائزیشن کو ہر بائٹ پر کیوں متفق ہونا پڑتا ہے، اور اسی بگ کلاس 2012 سے 2025 تک کیوں واپس آتی رہتی ہے۔ Trail of Bits کے "SAML: A fractal of bad design" (ہیکر نیوز پر 312 پوائنٹس) سے متاثر۔

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

## اس ویڈیو میں کیا شامل ہے

- SAML: وہ لاگ ان جو اندر سے خود دستخط کرتا ہے
- 2002: چار XML فارمیٹس، ایک کمیٹی، ایک پوری صنعت
- لاگ ان ڈانس: ایپ → شناخت فراہم کنندہ → آپ کے براؤزر کے ذریعے واپس
- دعویٰ: دستخط اس کے اندر رہتا ہے جس پر وہ دستخط کرتا ہے
- کینونیکلائزیشن: ہر بائٹ پر متفق ہوں، ورنہ کوئی لاگ ان نہیں کر پائے گا

## ابواب

- 0:00 SAML: وہ لاگ ان جو اندر سے خود دستخط کرتا ہے
- 0:34 2002: چار XML فارمیٹس، ایک کمیٹی، ایک پوری صنعت
- 0:46 لاگ ان ڈانس: ایپ → شناخت فراہم کنندہ → آپ کے براؤزر کے ذریعے واپس
- 0:59 دعویٰ: دستخط اس کے اندر رہتا ہے جس پر وہ دستخط کرتا ہے
- 1:10 کینونیکلائزیشن: ہر بائٹ پر متفق ہوں، ورنہ کوئی لاگ ان نہیں کر پائے گا
- 1:32 2012: چیکر اور ریڈر مختلف عناصر کو دیکھتے ہیں
- 1:51 2018 اور 2025: دو پارسرز، دو مختلف جوابات
- 2:08 یہ کیوں ٹوٹتا رہتا ہے: خراب ڈیزائن کا ایک فریکٹل
- 2:27 پیر: OIDC پہلے، ایک برقرار لائبریری، سخت شکلیں
- 2:43 فیصلہ، اندرونی طور پر: REVERT

## ترجمہ شدہ ٹرانسکرپٹ

اصل انگریزی بیان سے ترجمہ کیا گیا۔ دستیاب آڈیو اور کیپشنز یوٹیوب کے زیر انتظام ہیں۔

### SAML: وہ لاگ ان جو اندر سے خود دستخط کرتا ہے

0:00 SAML وہ XML ہے جو آپ کو تقریباً ہر کام کی ایپ میں لاگ ان کرتا ہے جو آپ کے پاس ہے، اور اس کا دستخط اس دستاویز کے اندر رہتا ہے جس پر وہ دستخط کرتا ہے، جیسے ایک نوٹری اپنا سٹیمپ اس لفافے کے اندر لگاتا ہے جسے وہ بند کر رہا ہے۔ ایک کمیٹی کے اسے لکھنے کے دس سال بعد، محققین نے چودہ SAML فریم ورکس کو ٹیسٹ کیا۔ گیارہ ناکام ہو گئے۔ اور اس ہفتے Trail of Bits کی ایک پوسٹ جس میں اسے خراب ڈیزائن کا فریکٹل قرار دیا گیا، ہیکر نیوز کے فرنٹ پیج پر آ گئی۔ تین منٹ میں: لاگ ان ڈانس کیسے کام کرتا ہے، دستخط کہاں چھپا ہوا ہے،

0:27 اور ہر کوئی جس فکس پر متفق ہے وہ ایک مختلف پروٹوکول کیوں ہے۔ یہ The Daily Diff ہے، اندرونی طور پر۔

### 2002: چار XML فارمیٹس، ایک کمیٹی، ایک پوری صنعت

0:34 دو ہزار دو۔ Oasis کی ایک سیکورٹی کمیٹی چار وینڈر XML فارمیٹس کو ایک میں ضم کرتی ہے۔ یونیورسٹیاں پہلے اسے اپناتی ہیں، پھر Okta اس پر ایک کمپنی بناتا ہے، سب سے تیزی سے ایک کمیٹی دستاویز کا آمدنی میں تبدیل ہونا۔ آپ ایپ کھولتے ہیں۔

### لاگ ان ڈانس: ایپ → شناخت فراہم کنندہ → آپ کے براؤزر کے ذریعے واپس

0:46 اسے معلوم نہیں ہوتا کہ آپ کون ہیں، لہذا یہ آپ کے براؤزر کو شناخت فراہم کنندہ کی طرف بھیجتا ہے، مثلاً آپ کی کمپنی کا Okta۔ آپ وہاں لاگ ان کرتے ہیں۔ Okta آپ کے براؤزر کو ایک دستخط شدہ XML دستاویز دیتا ہے جو بتاتا ہے کہ آپ کون ہیں، اور براؤزر اسے واپس پوسٹ کرتا ہے۔

### دعویٰ: دستخط اس کے اندر رہتا ہے جس پر وہ دستخط کرتا ہے

0:59 وہ دستاویز دعویٰ (assertion) ہے۔ یہ صارف کا نام بتاتا ہے، اور دستخط اس کے اندر ہوتا ہے، اس کی ID کے ذریعے دعویٰ کی طرف اشارہ کرتا ہے۔ اور پوری چیز آپ کے براؤزر کے ذریعے جاتی ہے، یعنی، صارف کے ذریعے۔ اسے چیک کرنے کے لیے، ایپ

### کینونیکلائزیشن: ہر بائٹ پر متفق ہوں، ورنہ کوئی لاگ ان نہیں کر پائے گا

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 پر بنایا گیا ہے، دستخط لفافے میں بند ہے، اور حقیقی لاگ ان شاید تفصیلات کا دسواں حصہ استعمال کرتے ہیں۔ اور ہیکر نیوز پر سب سے اوپر کا جواب خریدار کی طرف سے آتا ہے۔ اگر آپ کے پاس SAML سپورٹ نہیں ہے، تو میں ایسا پروڈکٹ تلاش کر سکتا ہوں جس میں ہو۔ دونوں سچ ہیں، جو کہ مسئلہ ہے۔ تو، پیر۔ SHIP OpenID Connect پہلے، Fly اور Tailscale بغیر SAML کے کاروباری اداروں کو فروخت کرتے ہیں۔

### پیر: OIDC پہلے، ایک برقرار لائبریری، سخت شکلیں

2:31 بغیر SAML کے کاروباری اداروں کو فروخت کرتے ہیں۔ اگر کوئی صارف اسے مجبور کرتا ہے، تو ایک برقرار لائبریری استعمال کریں، اسے پیج رکھیں، اور ایسے پیغامات کو مسترد کریں جو Okta یا Google کے بھیجے ہوئے پیغامات جیسے نہ ہوں۔ کبھی بھی اپنی دستخط چیک نہ لکھیں۔

### فیصلہ، اندرونی طور پر: REVERT

2:43 فیصلہ، اندرونی طور پر۔ REVERT۔ تقریباً پچیس سال، ایک بگ کلاس جو کبھی نہیں مرتی، اور ہر کوئی جس فکس پر متفق ہے وہ ایک مختلف پروٹوکول ہے۔ گزشتہ ہفتے میں نے پاسکیز کو الگ کیا، تو مجھے بتائیں کہ اگلی بار تبصروں میں کیا کھولوں۔ اور آج کے لیے بس یہی فرق ہے۔ میں 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
