الخلاصة

  • يحمي TLS 1.3 المحتوى وبايت نوع داخلي غير صفري وأصفار الحشو النهائية معاً. يختار المرسل الحشو، ويتحقق منه المستقبل ثم يزيله قبل تسليم المحتوى. لا يكتسب الحشو معنى تطبيقياً.
  • يثبت الالتقاط طول النص المشفر والاتجاه والوقت، لكنه لا يفصل المحتوى والنوع والحشو وكلفة AEAD. لذلك لا يثبت السجل الأكبر وحده أن رسالة التطبيق أكبر.
  • يستطيع الحشو تجميع بصمات الأحجام وصنع حركة تغطية، لكنه لا يمحو التوقيت وعدد السجلات والاستجابات والتجزئة وزمن المعالجة. يلزم سجل الطرف والسياسة ذات النسخة والحدود المتفاوض عليها وإثبات الرفض.

رقم دقيق حاز سلطة زائدة

ظهر السجل الأكبر قرب عملية حساسة، فاعتُبر فرق حجمه جسماً إضافياً للطلب ودليلاً على فعل بشري. لم يكن في الحساب خطأ حسابي.

لكن سجل الطرف احتوى الحقيقة الناقصة: callback يضيف أصفاراً حتى الحد التالي للكتلة، ومكوّن آخر قد يرسل Application Data فارغ المحتوى في فترات السكون. استهلكت البايتات عرض النطاق فعلاً، إلا أنها لم تكن كلها بيانات المستخدم.

وقع الخطأ حين مُنح دليل طبقة النقل حق تقرير الدلالة التي لا تظهر إلا بعد فك الحماية وإزالة الحشو.

موضع انتهاء المحتوى

يتكون TLSInnerPlaintext من المحتوى، ثم ContentType غير صفري، ثم سلسلة أصفار. تُشفّر البنية كلها وتُوثق. أما النوع الخارجي فيبدو Application Data، فلا يكشف النوع الداخلي للمراقب.

بعد نجاح AEAD، يفحص المستقبل النص الواضح المعاد فقط، بدءاً من نهايته. يتجاوز الأصفار حتى يجد أول بايت غير صفري، وهو النوع الداخلي، وما قبله هو المحتوى. إن لم يجد بايتاً غير صفري فعليه إنهاء الاتصال بتنبيه unexpected_message.

عند هذه الخطوة توجد سلطة تحديد الحد. يستلم التطبيق المحتوى بعد نزع الحشو. ولا تتحول الأصفار الموثقة إلى أمر أو هوية أو اعتماد أو إذن.

لحركة التغطية قواعد محددة

يجوز أن يكون محتوى Application Data بطول صفر. يستطيع المرسل إنشاء سجل ذي حجم معقول عند غياب بايتات التطبيق، فلا تعود رؤية الحركة دليلاً مباشراً على وقوع نشاط.

لا تمتد الرخصة إلى Handshake وAlert. لا يصبح الجسم الفارغ رسالة صحيحة بمجرد إحاطته بالحشو، ويجب رفضه. فالحجم لا ينشئ انتقالاً في حالة البروتوكول.

كما أن التغطية لا تضمن الخصوصية الكاملة. قد تكشف الاستجابة أو زمن المعالجة أو الدفعة أو الإغلاق العمل الحقيقي. يضعف الحشو إشارة واحدة، ولا يلغي بقية الإشارات.

الأصفار تستهلك الحد أيضاً

يشمل الحد المحتوى والنوع والحشو. وإذا تفاوض الطرفان على record_size_limit أصغر، انطبق الحد المستلم على TLSInnerPlaintext كاملاً.

لا تضمن سياسة تطلب 1024 بايت النتيجة نفسها دائماً. يحتل المحتوى مساحة، وقد يقتطع التنفيذ مقدار الحشو أو يجزئ المحتوى على نحو آخر. يحسب OpenSSL المتاح ويمنع تجاوز الحد الأقصى.

لذلك قد تصبح الرسالة نفسها سجلاً واحداً أو عدة سجلات أو حجماً أدنى من الفئة المطلوبة. لا يكفي الاسم التجاري للسياسة ولا طول النص المشفر لإعادة بناء الطريق.

وجود الآلية لا يثبت تشغيل السياسة

تحدد مواصفة TLS 1.3 الحالية الترميز والتحقق، ولا تفرض حجم كتلة أو توزيعاً أو وتيرة تغطية عالمية. قد يعرف التطبيق حدود رسائله الحساسة بصورة أفضل، بينما يبقى حشو Handshake وAlert المشفرين في طبقة TLS.

لا يضيف OpenSSL حشواً افتراضياً. يتيح حجماً ثابتاً أو callback قبل تشفير كل سجل مكتوب، ويمكن فصل Application Data عن Handshake وAlert. وقد يتعارض callback مع kernel TLS.

يوفر GnuTLS حشواً لكل إرسال واستعلاماً عن إخفاء الطول. وجود الواجهة أو تسجيل IANA يثبت الإمكان، لا التفعيل ولا المقدار الفعلي ولا مكسب الخصوصية.

الزمن يعبر الطبقات

قد يعتمد وقت إزالة الحشو على طوله. يقدم GnuTLS الخيار GNUTLS_SAFE_PADDING_CHECK لتقليل هذه الإشارة مقابل كلفة أداء.

بعد ذلك يحلل التطبيق المحتوى ويخصص الذاكرة ويستدعي التخزين ويولد الرد. يمكن أن تتغير هذه الأعمال بحسب البيانات ولو عالجت المكتبة الحشو بزمن ثابت.

لذلك لا تعد TLS بدفاع شامل ضد تحليل الحركة. تحتاج الضمانات الأقوى إلى تعاون التطبيق والبروتوكول الأعلى وحركة إضافية وتأخير. عبارة «الحشو مفعّل» تصف وظيفة، لا نتيجة خصوصية نهائية.

يحدد التركيب موضع الحشو

توصي EAP-TLS 1.3 بحشو السجل لتقليل تسرب أحجام الشهادات. وتقرّب ECH طول ClientHello الداخلي وفق قاعدة مستقلة، وتشير إلى رسائل Handshake مشفرة أخرى قد تحتاج حشو TLS. يبدأ كلاهما بتحديد ما يراد إخفاؤه.

يميز HTTP/3 بين حشو التطبيق والإطارات المحجوزة وحشو النقل. يستخدم QUIC رسائل مصافحة TLS لكنه لا يحمل سجلات TLS العادية. لذلك لا يثبت callback في TLS حشو حزم QUIC.

وتوضح مجموعات TLS ذات السلامة فقط حداً آخر: يمكن توثيق الحشو من دون تشفير، لكنه عندئذ لا يخفي طول النص الواضح. لا تمنح الأصفار السرية وحدها.

ما يحق للمراقب قوله

يثبت الالتقاط السلبي الطرفين والاتجاه والوقت وطول النص المشفر والتعبئة وإعادة الإرسال. ولا يرى النوع الداخلي أو طول المحتوى أو الحشو أو المعنى مباشرة.

العبارة المنضبطة هي: «أرسل الطرف N بايت محمية عند الزمن T». ويمكن لسجل الطرف أن يضيف: «استلم C بايت، وطبق السياسة P بنسختها V، وأضاف Z، فأنتج طولاً داخلياً I ونصاً مشفراً N تحت الحد L».

من دون هذا الوصل يدعم التوزيع فرضية، لا نسبة فعل أو حجم كائن أو أمر إلى المستخدم.

دليل يصمد بعد الحادث

سجّل الاتصال والاتجاه والتسلسل وإصدار TLS ونمط الحماية والنوع الداخلي وطول المحتوى قبل الحشو والمقدار المطلوب والمطبق والطولين الداخلي والمشفر والحد والتجزئة وإصدار المكتبة وحالة kernel TLS ونسخة السياسة.

قس عرض النطاق والتأخير وCPU وفئات الأحجام وترابط الردود ونسبة التغطية. افصل Application Data عن Handshake وAlert.

اختبر رفض نص واضح كله أصفار، وHandshake وAlert فارغين، والطلبات المفرطة، والسجلات فوق الحد. وبعد التراجع أثبت اختفاء callback وتوزيع الأحجام الخاص به.

الحقل الحاسم لا تراه الشبكة: طول المحتوى قبل الحشو. بدونه يبقى الطول المرئي دليلاً شبكياً، لا سلطة تطبيقية.

المصادر