Signed HTTP Exchange

Kinuko Yasuda

חתימה HTTP Exchange (או SXG) היא קבוצת משנה של הטכנולוגיה החדשה שנקראת חבילות אינטרנט, שמאפשרת לבעלי תוכן דיגיטלי להפוך את התוכן שלהם לנייד בצורה בטוחה, כלומר להיות זמינה להפצה מחדש על ידי גורמים אחרים, תוך שמירה על תקינות התוכן והשיוך שלו. לתוכן נייד יש יתרונות רבים, החל מהעברת תוכן מהירה יותר ועד שיתוף תוכן בין משתמשים, וחוויות אופליין פשוטות יותר.

אז איך פועלות Exchange HTTP Exchanges? הטכנולוגיה הזו מאפשרת לבעלי תוכן דיגיטלי לחתום על חילופי HTTP בודדים (כלומר, צמד של בקשה/תגובה), באופן שבו ניתן לשלוח את ההחלפה החתומה מכל שרת ששומר במטמון. כשהדפדפן טוען את ההחלפה החתומה הזו, הוא יכול להציג בבטחה את כתובת ה-URL של בעל האתר בסרגל הכתובות, כי החתימה ב-Exchange היא הוכחה מספקת לכך שהתוכן במקור הגיע מהמקור של בעל האתר.

החלפה חתומה: המהות

הפעולה הזו מפרידה את מקור התוכן מהמפיץ. אפשר לפרסם את התוכן באינטרנט בלי להסתמך על שרת, על חיבור או על שירות אירוח ספציפיים. אנחנו שמחים על השימושים האפשריים של SXG, כמו:

  • שליפה מראש (prefetch) כדי לשמור על הפרטיות: אחזור מראש של משאבים (למשל באמצעות קישור rel=prefetch) לניווט נוסף יכול לגרום לתהליך הניווט להרגיש הרבה יותר מהיר, אבל יש לו גם חסרונות שקשורים לפרטיות. לדוגמה, בשליפה מראש (prefetch) של קישורים בין מקורות שונים באתר היעד, המערכת תחשוף את המידע שהמשתמשים עשויים להתעניין בו, גם אם בסופו של דבר הוא לא ביקר באתר. לעומת זאת, SXG מאפשר שליפה מראש (prefetch) של משאבים ממקורות שונים ממטמון מהיר בלי להגיע לאתר היעד, וכך להעביר את תחומי העניין של המשתמשים רק אם וכאשר הניווט מתבצע. אנחנו מאמינים שהשינוי יכול להועיל לאתרים שהמטרה שלהם היא לשלוח את המשתמשים שלהם לאתרים אחרים. באופן ספציפי, Google מתכננת להשתמש באפשרות הזו בדפי תוצאות החיפוש של Google כדי לשפר את כתובות ה-URL של AMP ולזרז את תהליך הקליקים על תוצאות החיפוש.

  • היתרונות של CDN בלי לוותר על השליטה במפתח הפרטי של האישור: תוכן שמופיע פתאום בפופולריות (למשל מקושר מהדף הראשון של reddit.com) יוצר עומס יתר על האתר שבו התוכן מוצג. אם האתר קטן יחסית, הוא נוטה להאט או אפילו להפוך ללא זמין באופן זמני. אפשר להימנע ממצב כזה אם משתפים את התוכן באמצעות שרתי מטמון מהירים וחזקים, ו-SXG מאפשר זאת בלי לשתף את מפתחות ה-TLS.

התנסות עם המרות חתומות

המרות חתומות זמינות ב-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 ב-Chrome 73 ואילך. חשוב גם לשים לב שתוקף החתימה מוגבל ל-7 ימים לכל מפרט, כך שהתוקף של התוכן החתום יפוג במהירות יחסית.

שליחת משוב

נשמח לקבל ממך משוב על הניסוי הזה בכתובת webpackage-dev@chromium.org. תוכלו גם להצטרף לדיון על המפרט או לדווח לצוות על באג ב-Chrome. המשוב שלכם יעזור לנו מאוד בתהליך הסטנדרטיזציה וגם יעזור לנו לטפל בבעיות הטמעה.

משוב