رسميًا الآن: TLS 1.3 معترف به كمعيار

كتبنا سابقًا أن مجلس هندسة الإنترنت (IETF) وافق على إصدار جديد من TLS - 1.3. في الأسبوع الماضي ، تم الاعتراف بالبروتوكول كمعيار. اليوم - دعنا نتحدث عن قدراته.


/ photo Charles Dyer CC

ميزات TLS 1.3


بدأوا العمل على تحديث البروتوكول في عام 2014. بشكل غير رسمي ، انتهى العمل على TLS 1.3 في مارس من هذا العام ، لكن المهندسين احتاجوا لبضعة أشهر أخرى لإجراء فحوصات إضافية.

يدعي المبدعون أن الإصدار الأخير من TLS 1.3 أكثر أمانًا وإنتاجية: يتم إغلاق جميع نقاط الضعف المعروفة في TLS 1.2 (اليوم) في خوارزميات التشفير ، وعملية "المصافحة" أسرع مرتين من سابقتها. أضاف المطورون أيضًا سرية إلى الأمام وميزات جديدة مثل 0-RTT.

جعل TLS 1.3 أكبر عدد من التغييرات الهامة في تاريخ البروتوكول. لهذا السبب ، اقترح البعض أن يطلق عليها TLS 2.0.

الآن بعد أن تمت الموافقة رسميًا على الإصدار الجديد من بروتوكول TLS 1.3 ( RFC 8446 ) ، يبقى تنفيذه لجميع اتصالات الشبكة.

صعوبات التنفيذ


TLS لديه نوع من التوافق مع الإصدارات السابقة. عندما يتم إنشاء اتصال بين العميل والخادم ، يتم تبادل الإصدارات المدعومة من البروتوكول ويتم تحديد الإصدار الذي يمكن للطرفين العمل معه. ومع ذلك ، لا يتم استخدام هذه الميزة في كل مكان. مع ظهور TLS 1.3 ، تم قطع اتصال أكثر من 3٪ من الخوادم التي تدعم TLS 1.2 بدلاً من إرسال رقم الإصدار المعتمد للعميل.

حدثت مشكلة مماثلة مع العقد المتوسطة (الوسط). نظرًا لحقيقة أن TLS لم تتغير كثيرًا ، فقد رفضت أشياء مثل جدران الحماية و NAT وموازنات التحميل العمل مع الإصدار الجديد من البروتوكول.

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


/ photo Christopher Sessums CC

اتضح أن البروتوكول السابق عفا عليه الزمن ، لكنه لن يعمل على إدخال بروتوكول جديد افتراضيًا. يمكن العثور على المزيد حول هذا الموضوع ، على سبيل المثال ، في دراسة العام الماضي من IEEE ( PDF ).

تم العثور على الحل بواسطة David Benjamin ، الذي يعمل على Chromium. واقترح إخفاء الرسالة الأولى من عميل يدعم TLS 1.3 كرسالة TLS 1.2. وعملت: توقف 3٪ من الخوادم عن قطع الاتصال. بالنسبة للمواقع الوسيطة ، اقترح كايل نيكريتز من Facebook استخدام نفس النهج. أدى هذا إلى تقليل عدد الأعطال بنسبة 6.5٪ في Chrome و 2٪ في Firefox.

للتحقق مما إذا كانت الصناديق المتوسطة متوافقة مع الإصدار الجديد من البروتوكول ، يمكنك استخدام الاختبار المطور في Cloudflare.

كيفية تبسيط التنفيذ


وفقًا لـ Eric Rescorla ، أحد مطوري مواصفات TLS و HTTPS ، بشكل عام ، فإن تنفيذ TLS 1.3 ليس بالأمر الصعب. حاول المجلس الهندسي جعل هذه العملية بسيطة قدر الإمكان. يستخدم TLS 1.3 المفاتيح والشهادات نفسها المستخدمة في TLS 1.2. يسمح هذا للعميل والخادم بإنشاء اتصال تلقائيًا عبر TLS 1.3 إذا كان كلاهما يدعم الإصدار الجديد من البروتوكول.

بالإضافة إلى ذلك ، هناك عدد من المكتبات التي يمكن أن تساعدك على نشر البروتوكول بشكل أسرع. على سبيل المثال ، في بداية الأسبوع الماضي ، حول Facebook مكتبة TLS 1.3 Fizz إلى مصدر مفتوح . يقلل الفوران من وقت الاستجابة عند نقل البيانات ، وكذلك الحمل على وحدة المعالجة المركزية.

أعد المطورون دليلاً حول كيفية بدء استخدام Fizz على Ubuntu 16.04 LTS. إنه في المستودع الرسمي على GitHub (يحتوي أيضًا على دليل لنظام MacOS).

تحتاج أولاً إلى تثبيت ما يلزم من الحماقة والاعتمادات libsodium :

sudo apt-get install \ g++ \ cmake \ libboost-all-dev \ libevent-dev \ libdouble-conversion-dev \ libgoogle-glog-dev \ libgflags-dev \ libiberty-dev \ liblz4-dev \ liblzma-dev \ libsnappy-dev \ make \ zlib1g-dev \ binutils-dev \ libjemalloc-dev \ libssl-dev \ pkg-config \ libsodium-dev 

بعد ذلك ، تحتاج إلى بناء وتثبيت حماقة:

 git clone https://github.com/facebook/folly mkdir folly/build_ && cd folly/build_ cmake configure .. make -j $(nproc) sudo make install 

ثم يمكنك المتابعة لتثبيت Fizz:

 cd ../.. git clone https://github.com/facebookincubator/fizz mkdir fizz/build_ && cd fizz/build_ cmake configure ../fizz make -j $(nproc) sudo make install 

بالإضافة إلى Fizz ، هناك مكتبات أخرى على الشبكة ، على سبيل المثال ، wolfSSL أو GnuTLS أو rustls .

بروتوكول المستقبل


لحل مشكلة "تعظم" البروتوكول أخيرًا ، اقترح ديفيد بنجامين بالإضافة إلى الإصدار الرسمي من المعيار استخدام عدد من تنويعاته ، والتي سيتم إصدارها كل ستة أسابيع (جنبًا إلى جنب مع إصدار إصدارات جديدة من Chrome). وبالتالي ، ستكون الخوادم والعقد المتوسطة مطلوبة للامتثال لجميع قواعد إنشاء الاتصال ، وإلا لن يتمكن معظم العملاء من الاتصال بالخدمات.

ونتيجة لذلك ، يأمل المطورون في تجنب الأعطال المحتملة في تحميل صفحات الويب ، بالإضافة إلى مشاكل مماثلة مع الإصدارات المستقبلية من TLS.

من المتوقع أن يزداد الأمن الإجمالي للشبكة بشكل كبير بعد إدخال TLS 1.3. يجب على المكتبات التي تسهل نشر نسخة جديدة من البروتوكول أن تساهم في التوزيع الشامل.



ملاحظة: مواد أخرى من مدونة IaaS لشركتنا:




ما نقوم به في IT-GRAD - المجالات الرئيسية:

البنية التحتية الافتراضية (IaaS) | استضافة PCI DSS | كلاود FZ-152

Source: https://habr.com/ru/post/ar420521/


All Articles