الخلاصة
- بدأ TLS بسقف 16 KiB، ثم سمح للعميل باختيار جزء أصغر يطبّق في الاتجاهين. أخفى هذا التماثل أن استقبال سجل محمي كامل هو غالباً عبء الذاكرة الحاسم.
- حوّل RFC 8449 الحجم إلى تصريحَي استقبال مستقلين: يعلن كل طرف ما يستطيع استقباله، ويكيّف المرسل السجلات المتجهة إليه فقط.
القدرة تتغير عندما ينعكس الاتجاه
يمكن لمستشعر أن يمرر plaintext تدريجياً إلى عتاد التشفير ويخرج ciphertext فوراً. أما عند الاستقبال فلا ينبغي أن يسلّم plaintext إلى التطبيق قبل توثيق السجل المحمي كاملاً. إذا أطلق مقدمة مزورة مبكراً، فقد ينفذ التطبيق فعلاً لا يستطيع فشل التحقق المتأخر سحبه.
حجم السجل يوزع التكلفة: المرسل يختار مقدار ما يضعه في الوحدة المحمية، والمستقبِل يوفر الذاكرة الذرية لحفظها والتحقق منها. استخدام البروتوكول نفسه لا يعني امتلاك العتاد نفسه. جعل RFC 8449 الرقم وصفاً لقدرة المستقبِل بدلاً من اعتباره خاصية متناظرة للقناة.
السقف العام والحل الأول
يقسم TLS 1.2 بيانات الطبقات العليا إلى TLSPlaintext لا يتجاوز 2^14 بايت. قد تمتد رسالة واحدة عبر سجلات عدة، أو تجتمع رسائل من النوع نفسه في سجل واحد. لذلك لا يساوي حد سجل TLS حد رسالة التطبيق أو مقطع TCP أو حزمة IP.
تقلل السجلات الكبيرة كلفة الرؤوس والعمل التشفيري، لكنها تفرض استعداداً لأسوأ حالة. وقد يزيد الضغط والحماية حجم الكائن على السلك. في جهاز محدود الذاكرة يصبح buffer الاستقبال جزءاً رئيسياً من التصميم.
أدخلت مواصفة 2006 ثم RFC 6066 امتداد max_fragment_length. يطلب العميل 512 أو 1024 أو 2048 أو 4096 بايت، ويعيد الخادم القيمة نفسها إن وافق. بعدها يجزئ الطرفان بيانات التطبيق ورسائل handshake ضمن الحد نفسه، ويستمر الاتفاق في الجلسة واستئنافها وفق ذلك التصميم.
رأى ملف إنترنت الأشياء RFC 7925 فيه فائدة واضحة: لا يحتاج العميل المحدود إلى buffer يقبل سجلات TLS/DTLS العادية ذات 16 KiB. أصبح القيد الداخلي معلومة مشتركة.
رقم واحد أخفى مستقبِلَين مختلفين
لم يعبّر الامتداد القديم عن 16384؛ أقصى قيمة كانت 4096. وقد يخفض عميل قادر الأداء بلا حاجة، لأن السجلات الأصغر تضيف رؤوساً وتوسّعاً تشفيرياً وعملاً متكرراً. كما لم يستطع الخادم أن يعلن حداً ذاتياً أصغر. اقترح العميل رقماً واحداً للاتجاهين.
لكن القيد غالباً قيد استقبال. يمكن للطرف أن يشفّر ويرسل تدريجياً، ولا يستطيع توثيق سجل وارد كبير من دون حفظه كاملاً. بدا الرقم المشترك محايداً، لكنه دمج قدرتين ومنع الخادم من الكلام.
record_size_limit يتجه نحو من يعلنه
القيمة الجديدة هي أكبر plaintext محمي يقبل الطرف المعلن استقباله في سجل. يجب على النظير احترامها عند الإرسال إليه. وفي الاتجاه المعاكس يستطيع المعلن إرسال سجلات أكبر ما دام يحترم تصريح الطرف الآخر وسقف إصدار TLS.
يمكن لاتصال واحد حمل حدين. يطلب الجهاز الصغير ردوداً صغيرة، لكنه قد يرسل سجلاً أكبر إلى خدمة واسعة الذاكرة. ويستطيع الخادم المحدود إعلان حاجته. حتى الطرف غير المحدود يُنصح بعرض الامتداد كي يتيح للآخر التصريح.
إذا تلقى TLS سجلاً محمياً فوق الحد، ينهي الاتصال بتنبيه record_overflow قاتل؛ ويجوز لـ DTLS إسقاط السجل. القيمة دون 64 غير قانونية، لكن 64 ليست توصية. السجلات الصغيرة جداً تزيد العمل وتخفض throughput وقد توسع خطر حجب الخدمة.
ما الذي يدخل في الحساب
في TLS 1.2 وما قبله يشمل الحد مدخل الضغط والتشفير، بينما يعالج padding الذي تضيفه الخوارزمية بصورة مختلفة. في TLS 1.3 يشمل TLSInnerPlaintext كله: المحتوى ونوعه الداخلي وpadding السجل. إخفاء نمط الطول يستهلك إذاً من ميزانية الاستقبال نفسها.
الرسائل غير المحمية خارج الامتداد. وعند الاستئناف أو renegotiation القديمة يعاد التفاوض، ويتبع الحد handshake الذي أنشأ مفاتيح حماية السجل.
ليس قياساً للمسار
قد يؤدي حد صغير وPMTU صغيرة إلى وحدات أصغر، لكنهما دليلان مختلفان. حد السجل يأتي من الطرف ويثبت في handshake؛ أما PMTU فتأتي من المسار، تحد الحزم وقد تتغير. ويمكن جمع سجلات DTLS صغيرة عدة في datagram UDP واحد.
ولا يحد الامتداد استجابة HTTP أو سلسلة شهادات أو رسالة تطبيق؛ يمكنها عبور سجلات عدة. ولا يَعِد بقدرة CPU أو bandwidth أو حجم code أو البطارية أو حل كل نقص في الذاكرة. إنه يحدد واجباً ذرياً واحداً.
تضع IANA اليوم record_size_limit رقم 28 في Recommended، بينما max_fragment_length رقم 1 غير موصى به. يثبت السجل الحالة المعيارية، لا نسبة التنفيذ ولا الحجم الأفضل.
لم يحتج TLS إلى مساواة الجهازين. احتاج إلى أن يصرّح كل مستقبِل بحده الحقيقي، وأن يلتزم المرسل به في الاتجاه الذي تقع فيه التكلفة.
المصادر وحدود الدليل
تعتمد المقالة على RFC 4366 وRFC 5246 وRFC 6066 وRFC 7925 وRFC 8446 وRFC 8449 وسجل IANA. لا تقيس هذه المصادر الانتشار الحالي أو RAM المنتجات أو قيمة مثلى عامة.
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
