Signed HTTP Exchange

קינוקו יאסודה

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

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

Signed Exchange: המהות

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

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

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

התנסות עם Signed Exchange

Signed Exchanges זמינים ב-Chrome 73 ואילך, ובעבר היו זמינים כגרסת מקור לניסיון.

יצירת ה-SXG

כדי ליצור קובצי SXG במקור (כבעלי תוכן דיגיטלי), אתם צריכים מפתח אישור כדי לחתום על החתימה, והאישור צריך לכלול תוסף"CanSignHttpExchanges" מיוחד שיעובד כ-SXG חוקי. החל מנובמבר 2018, DigiCert היא רשות האישורים היחידה שתומכת בתוסף הזה. בדף הזה אפשר לבקש את האישור שמתאים ל-SXG.

אחרי שתקבלו אישור ל-SXG, תוכלו ליצור נכסי SXG משלכם באמצעות הכלים ליצירת הפניות שפורסמו ב-github.

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

בדיקת התכונה באופן מקומי

כדי ליצור מפתחות SXG למטרות בדיקה, אפשר ליצור אישור בחתימה עצמית ולאפשר ל-chrome://flags/#allow-sxg-certs-without-extension לעבד את ה-SXG ב-Chrome עם האישור בלי התוסף המיוחד.

אם השרת, האישורים ומפתחות ה-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. המשוב שלכם יעזור לנו מאוד בתהליך הסטנדרטיזציה וגם יעזור לנו לטפל בבעיות בהטמעה.

משוב