Summary
- يجمع
draft-richer-oauth-oob-authcode-00رمز التفويض معstateيحتفظ به العميل ليصنع قيمة واحدة ينسخها المستخدم؛ وهو مسودة فردية لا وثيقة متبناة في OAuth ولا RFC. - تستخدم صفحة مساعدة HKDF وXOR وchecksum من ثلاثة بايتات، ثم يعكس العميل العملية قبل أن يرسل الرمز المستعاد إلى token endpoint.
- نجاح الاستعادة يثبت اتساقاً شكلياً فقط، لا سرية القناة ولا المُصدر ولا PKCE ولا إصدار token ولا صلاحية المورد ولا النتيجة النهائية.
صفحة لا تستلم صلاحية العميل
يفتح عميل سطر أوامر عنوان التفويض في المتصفح، لكنه قد لا يملك callback يمكن للمتصفح الوصول إليه. تسجل المراجعة 00 صفحة ثابتة بوصفها redirect_uri. يعيد AS إليها code وstate، فتعرض قيمة واحدة، وينقلها المستخدم إلى العميل المنتظر.
لا تحتفظ الصفحة بحالة خلفية، ولا تشارك سراً مع العميل، ولا تطلب token. ولا يحتاج AS إلى فهم الترميز. مهمتها تقليل خلط قيمتين أثناء النقل البشري.
لذلك يظل عرض القيمة ونسخها واستعادتها ومبادلتها أربع وقائع مختلفة.
ماذا يثبت الفحص القصير
يتحول code إلى C. يشتق HKDF من state بترميز UTF-8 وsalt فارغ وINFO متفق عليه تياراً KS بالطول نفسه، ثم تحسب الصفحة E = C XOR KS. تصبح أول ثلاثة بايتات من SHA256(C) هي T، وتُوصل صياغتا T وE بـbase64url من دون padding لتكوين CC.
يعيد العميل الاشتقاق من state الذي خزنه، يستخرج C ويقارن T. يرفض الاختلاف والمدخل القصير الذي لا يتجاوز أحرف checksum الأربعة، ثم يرسل code إلى token endpoint.
لكن T ليس MAC من AS. يستطيع أي شخص استعمال الصفحة مع قيم عشوائية. التطابق لا يحدد من أنشأ القيمة أو أي جلسة حملتها أو هل بقي code صالحاً.
الانكشاف يسبق HKDF
يصل code وstate في GET إلى الصفحة. قد يراهما الخادم وCDN والمرايا والذاكرات الوسيطة قبل الحساب. وتقول المسودة صراحة إن الدوال التشفيرية لا تضيف حماية فوق grant الأساسي ولا تجعل code سرياً.
سرقة القيمتين لا يعالجها CC. والعميل الذي لم يحتفظ بـstate لا يستطيع الاستعادة. وعند تعطل JavaScript يكون fallback هو نسخ URL كاملاً، من دون HKDF.
تُهمل أيضاً معاملات أخرى مثل iss. لا يمكن إدخاله في INFO إلا إذا عرف العميل أن AS يعيده. لذلك يبقى التحقق من issuer قراراً منفصلاً.
OAuth يستمر بعد اللصق
تبقى قواعد RFC 6749 للربط وإعادة التوجيه والعمر والمبادلة. ويظل PKCE محتاجاً إلى verifier الموافق للchallenge. لا ينشئ checksum مصادقة العميل أو الاستخدام الواحد أو إرشادات RFC 9700.
يستخدم RFC 8628 بنية أخرى، حيث يصدر الخادم device code ويقوم العميل بالpolling. تجنب ذلك الدعم قد يقلل الرحلات، لكنه لا يثبت تساوي الأمن أو الاسترداد.
تُبقي Minimum Initial Specification لدى Lu Heng الوعد ضيقاً: تقليل خطأ النسخ. ثم تسأل Running-Code Primacy عما قبله العميل وtoken endpoint وresource server فعلاً. شاشة تعرض سلسلة واحدة لا توحد طبقات الواقع.
المصادر والحدود
- https://datatracker.ietf.org/doc/draft-richer-oauth-oob-authcode/
- https://datatracker.ietf.org/doc/draft-richer-oauth-oob-authcode/history/
- https://heng.lu/minimum-initial-specification-localized-future-decision-voluntary-adoption-internet-coordination-system/
- https://heng.lu/on-reality-layers-symbolic-power-and-why-clarity-feels-so-hostile/
- https://heng.lu/running-code-primary-the-patch-needed-to-preserve-the-internet-original-design/
- https://www.ietf.org/archive/id/draft-richer-oauth-oob-authcode-00.html
- https://www.rfc-editor.org/rfc/rfc4648.html
- https://www.rfc-editor.org/rfc/rfc5869.html
- https://www.rfc-editor.org/rfc/rfc6234.html
- https://www.rfc-editor.org/rfc/rfc6749.html
- https://www.rfc-editor.org/rfc/rfc7636.html
- https://www.rfc-editor.org/rfc/rfc8252.html
- https://www.rfc-editor.org/rfc/rfc8628.html
- https://www.rfc-editor.org/rfc/rfc9700.html
لا تثبت المصادر تبني OAuth أو إجماع IETF أو RFC أو تطبيقاً أو تشغيلاً بينياً أو نشراً أو اكتمال login أو إصدار token أو هجوماً أو نجاح علاج أو نتيجة مورد. يحتفظ مقال RFC 10027 السابق بمشكلة جهاز البدء الخاضع للمهاجم؛ أما هذا النص فيفحص receipt الاستعادة في التدفق الصادق للمراجعة 00.
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات

