Signed HTTP Exchanges

Kinuko Yasuda

Signed HTTP Exchange (أو "SXG") هو مجموعة فرعية من التكنولوجيا الناشئة التي تُعرف باسم حزم الويب، والتي تمكّن الناشرين من نقل المحتوى الخاص بهم بأمان، أي إتاحة إعادة توزيعه من قِبل أطراف أخرى، مع الحفاظ على نزاهة المحتوى وتحديد مصدره. فالمحتوى المحمول له العديد من المزايا، بدءًا من إتاحة إرسال المحتوى بشكل أسرع وحتى تسهيل مشاركة المحتوى بين المستخدمين وتجارب أبسط بلا اتصال بالإنترنت.

إذًا، كيف تعمل عمليات Signed HTTP Exchange؟ وتتيح هذه التقنية للناشر توقيع تبادل HTTP واحد (أي زوج طلب/استجابة)، بالطريقة التي يمكن من خلالها عرض التبادل المُوقَّع من أي خادم تخزين مؤقت. عندما يحمِّل المتصفّح Signed Exchange هذا، يمكنه عرض عنوان URL للناشر بأمان في شريط العناوين لأن التوقيع في التبادل يُعد دليلاً كافيًا على أن المحتوى جاء في الأصل من أصل الناشر.

Signed Exchange: الجوهر

يؤدي هذا الإجراء إلى فصل أصل المحتوى عن مَن يوزّعه. يمكن نشر المحتوى على الويب بدون الاعتماد على خادم أو اتصال أو خدمة استضافة محدّدة. نحن متحمّسون بشأن الاستخدامات المحتملة لآلية SXG، مثل:

  • الجلب المُسبَق للحفاظ على الخصوصية: على الرغم من أنّ الجلب المسبق للموارد (مثل عن طريق rel=prefetch) للانتقال اللاحق يمكن أن يجعل تجربة التنقل أسرع بكثير، إلا أن له أيضًا جوانب سلبية متعلقة بالخصوصية. على سبيل المثال، إنّ موارد الجلب المسبق لعمليات الانتقال من مصادر متعددة ستفصح لموقع الوجهة عن احتمال اهتمام المستخدم بإحدى المعلومات حتى إذا لم يزر المستخدم الموقع الإلكتروني في النهاية. من ناحية أخرى، تسمح آلية SXG بجلب موارد من مصادر متعددة مسبقًا من ذاكرة تخزين مؤقت سريعة بدون الوصول على الإطلاق إلى موقع الوجهة، وبالتالي التواصل مع اهتمام المستخدمين فقط في حال حدوث عملية التنقُّل ووقت حدوثها. نعتقد أنّ هذا الإجراء قد يكون مفيدًا للمواقع الإلكترونية التي تهدف إلى إرسال مستخدميها إلى مواقع إلكترونية أخرى. بشكل خاص، يخطّط محرّك بحث Google لاستخدام هذه الميزة في صفحات نتائج البحث من Google لتحسين عناوين URL لصفحات AMP وتسريع عمليات النقر على نتائج البحث.

  • مزايا شبكة توصيل المحتوى (CDN) بدون التنازل عن التحكّم في المفتاح الخاص لشهادتك: غالبًا ما يؤدي المحتوى الذي أصبح شائعًا بشكل مفاجئ (على سبيل المثال من خلال إضافة رابط من الصفحة الأولى على موقع reddit.com) إلى حمل زائد على الموقع الإلكتروني حيث يتم عرض المحتوى، وإذا كان الموقع صغيرًا نسبيًا، يميل إلى البطء أو حتى عدم توفّره بشكل مؤقت. يمكن تجنُّب هذا الموقف إذا تمت مشاركة المحتوى باستخدام خوادم ذاكرة تخزين مؤقت سريعة وفعّالة، وتتيح آلية SXG تحقيق ذلك بدون مشاركة مفاتيح بروتوكول أمان طبقة النقل (TLS).

تجربة Signed Exchange

تتوفّر آلية Signed Exchange في الإصدار Chrome 73 والإصدارات الأحدث، وكانت متاحة سابقًا كإصدار تجريبي للمصدر.

إنشاء SXG

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

بعد الحصول على شهادة SXG، يمكنك إنشاء ملفات SXG الخاصة بك باستخدام أدوات إنشاء المراجع المنشورة على github.

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

اختبار الميزة محليًا

لإنشاء ملفات SXG لأغراض الاختبار، يمكنك إنشاء شهادة موقَّعة ذاتيًا وتفعيل chrome://flags/#allow-sxg-certs-without-extension ليعالج Chrome ملفات SXG التي تم إنشاؤها باستخدام الشهادة بدون الإضافة الخاصة.

من المفترض أن يعمل الرمز البرمجي التالي إذا تم إعداد الخادم والشهادة وملفات SXG بشكل صحيح:

<!-- prefetch the sample.sxg -->
<link rel="prefetch" href="https://your-site.com/sample.sxg" />

<!-- clicking the link below should make Chrome navigate to the inner
     response of sample.sxg (and the prefetched SXG is used) -->
<a href="https://your-site.com/sample.sxg">Sample</a>

يُرجى العلم أنّ آلية SXG لا تتوافق إلا مع علامة الارتساء (<a>) وlink rel=prefetch في الإصدار 73 من Chrome والإصدارات الأحدث. تجدر الإشارة أيضًا إلى أنّ صلاحية التوقيع محددة إلى 7 أيام لكل مواصفات، لذلك ستنتهي صلاحية المحتوى الموقَّع بسرعة نسبيًا.

تقديم الملاحظات

ويسعدنا تلقّي ملاحظاتك حول هذه التجربة على العنوان webpackage-dev@chromium.org. يمكنك أيضًا الانضمام إلى مناقشة المواصفات أو إبلاغ الفريق عن خطأ في Chrome. ستساعدنا ملاحظاتك بشكل كبير في عملية توحيد المقاييس وستساعدنا أيضًا في معالجة مشاكل التنفيذ.

ملاحظات