מה זה HSTS?

HSTS היא כותרת תגובת אבטחת אינטרנט. השם הוא ראשי תיבות של "HTTP Strict Transport Security". תפקידה של כותרת HSTS היא לאלץ דפדפנים להתחבר לאתרים באמצעות HTTPS.

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

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

לכותרת HSTS יש שני חלקים חובה ושניים אופציונליים. שם הכותרת "Strict-Transport-Security" ולאחר מכן אופרטור "max-age" והערך שניהם חובה. לפעמים נעשה שימוש בזוג אופרטורים אחר, "includeSubDomains" ו-"preload".

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

הרעיון הוא שבמשך הזמן של טיימר זה, שמתאפס עם כל טעינת עמוד עוקב, הדפדפן ידרוש חיבור HTTPS וידחה כל משאבי HTTP. זה מגן מפני התקפות "אדם באמצע", שבהן האקר בינך לבין שרת האינטרנט יכול לתמרן את התגובות שאתה מקבל.

הנקודה העיקרית שבה זה מגן עליך היא החיבור הראשון. בדרך כלל, כאשר אתה מתחבר לאתר אינטרנט, אתה יכול לבקש את אתר ה-HTTP ולאחר מכן לעבור אל אתר ה-HTTPS. לרוע המזל, האקר בעמדה של אדם באמצע יכול למנוע את השדרוג הזה ל-HTTPS ואז יכול לגנוב או לנטר את הפעילות שלך באתר. עם זאת, ברגע שכותרת ה-HSTS נראתה על ידי הדפדפן, הדפדפן שלך יבצע אפילו את החיבור הראשון דרך HTTPS, ויגן עליך מפני האקרים.

HSTS גם מונע טעינת משאבים לא מאובטחים אשר עלולים להשתנות בזדון על ידי תוקף אם הם נמסרו באמצעות HTTP.

האופרטור "includeSubDomains" משמש כדי לציין שהכותרת צריכה לחול גם על כל תת-הדומיינים של האתר.

רשימת הטעינה המוקדמת של HSTS

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

טיפ: נדרש "גיל מקסימלי" של שנה או יותר כדי להתווסף לרשימת הטעינה המוקדמת של HSTS.

בעיות עם HSTS

אחת הנקודות העיקריות של HSTS היא שהוא מציג הודעת שגיאה אם ​​יש בעיות כלשהן בחיבור ה-HTTPS. כאמצעי זהירות נוסף, משתמשים לא אמורים להיות מסוגלים לעקוף הודעות שגיאה HSTS, כפי שהם יוכלו לעשות עם שגיאות HTTPS רגילות.

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

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

טיפ: אפשר גם להגדיר "גיל מקסימלי" של 0, זה בעצם מסיר את רשומת ה-HSTS השמורה מכל מי שרואה אותה. זה יכול לעזור אם יש בעיה, אבל זה ישפיע רק כאשר ואם הם יחליטו לנסות שוב.