לדלג לתוכן

HTTP מול HTTPS - מה ההבדל, ולמה זה חשוב לכם יותר ממה שחשבתם

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

HTTP - השפה שהאינטרנט מדבר בה

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

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

HTTPS - אותו דבר, אבל עם מעטפה נעולה

HTTPS הוא בדיוק אותו פרוטוקול HTTP, רק שהוא עובר דרך שכבת הצפנה שנקראת TLS (בעבר נקראה SSL). ה-S בסוף המילה עומד בדיוק על זה - Secure.

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

בפועל, HTTPS נותן לכם שלושה דברים חשובים:

  • הצפנה - Encryption. התוכן שעובר בין הדפדפן לשרת מוצפן, כך שגם אם מישהו מיירט את התעבורה, הוא רואה רק ג'יבריש.
  • אימות - Authentication. אתם יכולים לוודא שאתם באמת מדברים עם השרת האמיתי של האתר, ולא עם שרת מתחזה שמנסה להתחזות לו (למשל בהתקפת man-in-the-middle).
  • שלמות - Integrity. אתם יכולים להיות בטוחים שהמידע לא שונה בדרך על ידי מישהו שיירט אותו.

איך ההצפנה קורית בפועל, בקצרה

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

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

אז למה זה חשוב לכם בפועל

אם אתם גולשים ברשת WiFi ציבורית בבית קפה בלי HTTPS, כל מי שיושב באותה רשת ויודע קצת לתפעל כלי כמו Wireshark יכול לראות בדיוק מה אתם שולחים. עם HTTPS, גם אם מישהו מריח (sniffing) את התעבורה שלכם, כל מה שהוא רואה זה בלוק מוצפן.

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

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

למה זה בסיס שכל אחד ברשתות חייב להבין

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

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

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

יש שאלה בדרך? בואו לדיסקורד, יש שם קהילה שלמה שתעזור.

הצטרפו לקהילה בדיסקורד

לסיכום

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