כשאנו גולשים באתר, אנו תמיד מחפשים את סימן המנעול הקטן בכרום או בפיירפוקס שמראה שהחיבור בינינו לבין האתר מוצפן. כלומר שאיש לא יכול לקרוא או לשנות את התקשורת בינינו לבין האתר. HTTPS עובד עם הצפנה א-סימטרית – כלומר הצפנה המאפשרת החלפת מפתח בין שני גורמים כשיש תווך עויין ביניהם. אחרי ההצפנה הא-סימטרית מוחלף מפתח של הצפנה סימטרית והתקשורת מאובטחת. אנו מוגנים להלכה מהתקפת Man In The Middle – בראשי תבות MITM. התקפה שבמסגרתה תוקף בעצם מתלבש על התקשורת בינינו לבין השרת ומאזין לה או משנה אותה. זה נשמע נורא סייבר סייברי אבל זה בהחלט קורה – או על ידי השכן שהשתלט לנו על הראוטר, בעל בית הקפה או – ברוב המקרים – המדינה שמנסה לצנזר אותנו. המגן והפתרון הוא https שמגן על התקשורת בינינו לבין האתר.
אם אתם לא מבינים ולו רק באופן שטחי איך https עובד אז יש את ההסבר המאוד פשוט הזה של נעם רותם בבלוג שלו. אם אתם רוצים להעמיק קצת – אז מאמר שלי על הצפנה א-סימטרית והצפנה סימטרית.
אבל אם התקנו – באמצעות הספק שלנו – תעודת SSL באתר – האם כל ההצפנות שוות? האם זה אומר שאנחנו יכולים לנוח על זרי הדפנה? התשובה היא: לא. לא כל תעודות האבטחה תקינות, לא כל השרתים והפרוטוקולים אותו דבר. ישנן תעודות או יישומים של תעודות שיאפשרו התקפת MITM. דוגמה טובה היא התקפת ROBOT שהיא חולשה שיש על השרת ושפותחת פתח ל-MITM. חולשה נוספת וידועה היא שימוש בגורם מאשר לא תקין או שנפסל מסיבות אלו ואחרות או שימוש במפתח הצפנה מיושן שקל לפצח אותו.
דפדפנים כל הזמן מוקשחים ולעתים תעודת אבטחה לא מספיק טובה יכולה לגרום לאתר לא להיות מאובטח וגולשים שינסו להכנס לאתר/מערכת שלכם יקבלו אזהרה. זו הסיבה שמדי פעם מוטב לנטר את מצב תעודת האבטחה והיישום שלה באתר. אחד הכלים הטובים והפשוטים ביותר לבצע את הבדיקה הוא הכלי של SSL Labs. כל מה שצריך לעשות זה להכניס את כתובת האתר וללחוץ על שיגור. אחרי כמה דקות תקבלו דו״ח עם ציון ודרכים לשפרו וכמובן שעדיף שיהיה ציון גבוה ככל האפשר.
תמיר זגמן, אחד מעוקבי בטוויטר, גילה שאישור האבטחה של האתר הזה הוא B בלבד. דבר שמהווה חולשת אבטחה. הוא שלח לי קישור לבדיקה וצילום מסך של הבדיקה.
הציון היה נמוך לא בגלל יישום לא תקין של התעודה על השרת, לא בגלל שהתעודה לא חתומה כמו שצריך – אלא בגלל שהשרת תומך בתקן ישן של אבטחה שנקרא TLS 1.0 ו-TLS 1.1. מדובר בפרוטוקול שבעצם מכתיב לדפדפן איך לנהל את תהליך ההצפנה וחילופי המפתחות עם השרת. ובדיוק כמו כל פרוטוקול, יש לו גרסאות כשגרסאות 1.0 וגרסאות 1.1 נחשבות מיושנות. אם השרת תומך בפרוטוקול הזה, תוקפים יכולים לבצע מתקפה באמצעות החולשות בפרוטוקול. איזו מתקפה? MITM ובכך לעקוב אחר הגולשים שנכנסים לאתר או לשנות את תוכנו כפי שהם רואים אותם. בדיוק בשביל זה יש המלצה להשתמש בפרוטקולים טובים יותר של TLS 1.2.
אז למה לא? כי התקן הזה מיושן אבל נדרש על ידי דפדפנים מיושנים – ובייחוד אקספלורר 8-10. אם אני לא אתמוך ב-TLS 1.1, אקספלורר 10 ומטה עלולים שלא לעבוד.
מצד שני, שימוש ב-TLS 1.1 ו TLS 1.0 עלולים לסכן תיאורטית את השאר. אז מצטער גולשי אקספלורר (אין כאלו פה). כי הפרוטוקול הישן הזה עלול להיות מנוצל על ידי תוקפים שיתקפו באמצעותו התקפת MITM. יש כאן קישור מעניין עם הסברים למי שרוצה להעמיק. אבל בגדול – עדיף שלא להשתמש ב-TLS 1.0\1.1. וגם – אפילו אם אני לא חושש מהתקפה כזו – למה לי לשדר חוסר רצינות? גם מראית עין היא חשובה.
שינוי הפרוטוקולים הנתמכים נעשה בדרך כלל על ידי ספק האחסון. כיוון שאני משתמש בקלאודפלייר – כל מה שהייתי צריך לעשות זה להכנס לחשבון שלי שם עבור שמות המתחם שלי (בחלק של SSL) ולשנות את הפרוטוקולים הנתמכים ל TLS מגרסה 1.2 ומעלה.
מייד אחרי שעשיתי את זה, הבדיקה החוזרת הראתה לי כבר ציון שנראה הרבה יותר טוב.
וזהו – ואני חושב שזו דוגמה נהדרת לכך שלכל אחד – גם לי כמובן – יכול ליצור בטעות חורי אבטחה או חולשות אבטחה. אין אף אחד חסין מהעניין הזה. השאלה היא מה עושים אחרי שזה קורה. האם מבטלים בנפנוף יד ואומרים ש״זה לא מהותי״? או שבאמת בוחנים את הבעיה ומנסים לפתור אותה? אני יודע באיזה צד אני נמצא. המון המון תודה וכבוד רב לתמיר זגמן שמצא ונתן לי מתנה גדולה שהיא הערה בנוגע לאבטחת האתר. 🙏
אם אתם גם מצאתם משהו באתר שלי (או שרוצים למצוא) – יש בתחתית קישור והסבר על מציאת חורי אבטחה.
7 תגובות
"ברוב המקרים – המדינה שמנסה לצנזר אותנו."
בישראל?? לא נראה לי שאתה מתכוון לזה.. ואם לא, כדאי לכתוב שבמדינות מסוימות זה כך.. אחרת זה מטעה.
לצערי בישראל לא מעט גופים מפעילים צנזורה. מזיר"ה ועד המשטרה. גם הצבא מצנזר.
תודה!
לחסוך קצת גוגל –
למי שמריץ שרת IIS משלו:
https://support.solarwinds.com/SuccessCenter/s/article/Disable-TLS-1-0-or-1-1-in-the-registry-or-using-IIS-Crypto-in-the-Dameware-server?language=en_US
ואז אם גם יש RDP:
https://dispel.io/blog/forcing-rdp-to-use-tls-encryption/
(אל תבטלו את RC4).
ראשית-
תודה על הפוסטים-
מקצועיים, מעניינים ועניניים,
מאד נהנית:)
שנית-
שאלה על הפוסט האחרון 'חורי אבטחה בתעודות HTTPS'-
למה אתר כמו שלך מצריך אבטחה (ועוד A+…)?
האם לא רק אתרים עם אמצעי תשלום או עם חסיון כלשהוא צריכים אבטחה והצפנה??
כלומר,
האם אתרים לקריאת תוכן וכדומה צריכים הגנה? וגלישה בטוח? ולמה?
כל אתר שסומכים עליו מספיק צריך הצפנה.
אדגים עם מקרה תיאורטי של בנק ״מלעוני״.
בנק מלעוני מרים אתר תדמיתי בלבד. לא ב-HTTPS. כשחוקר אבטחה המתמחה בסייבר מטומטם שקוראים לו רז בן-ניק (שם בדוי) בא בשאלות, מנהל האבטחה של בנק מלעוני טוען שמדובר באתר תדמיתי בלבד ואין שום טעם לשים HTTPS.
תוקף מארגון האקרים אנונימיים משתלט על הראוטר של שדה התעופה כך שכל התנועה אל/מאל האתר של בנק מלעוני חשופה לו באמצעות התקפה פשוטה של MITM שאפשר לעשות גם עם רספברי פיי. הוא משגר הודעת סמס שכל מי שטס או נוחת היום ונכנס משדה התעופה לאתר של בנק מלעוני מקבל 1000$. כל האנשים שנכנסים מהווי פיי של שדה התעופה מגיעים לאתר של בנק מלעוני, אתר תדמית, אבל קופץ בו פופאפ שמכריז על כך שמי שנכנס זכה ב-1000 דולר. כל מה שצריך זה רק להכניס את פרטי כרטיס האשראי ותמונת עירום. ״אבל חשבתי שזה רק אתר תדמית״, אמר מנהל האבטחה של בנק מלעוני בבכי.
כמו תמיד מחכים ומובן- תודה רבה.
באתרי מסחר או כאלה שיש בהם מסירת מידע מובן למה חשוב שיש את כל האבטחה. למה זה חשוב באתר מסוג בלוג? מה פוטנציאל הנזק?
כתבתי בתגובה לתגובה שלמעלה למה *כל* אתר צריך לדעתי https. במיוחד כשזה קל ובחינם.