עברנו ל lets encrypt

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

1. מהו CA

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

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

במקרה של האתר הזה חברה בשם StartCom שיושבת באילת הנפיקה עבורי תעודה ייחודית שרק אני יכול להשתמש בה. כשאתם מגיעים לאתר השרת אוטומטית שולח את התעודה וכך הדפדפן שלכם יודע שחברת StartCom מעידה שזהו אכן אתר tocode המקורי.

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

2. צרות של סינים

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

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

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

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

במקום זה חברה סינית בשם WoSign החליטה על רעיון אחר. הם קנו את חברת StartCom האילתית והשתמשו במנגנון שלה כדי להנפיק תעודות SHA1 שיראו כאילו הונפקו בעבר עם תאריך פג-תוקף מאוד רחוק לעתיד. כלומר הנפיקו ב 2016 תעודת SHA1 שנראה היה שהגיעה מ 2015 או 2014, ולכן התעודה תרגום להצגת המנעול בדפדפנים ישנים וחדשים כאחד.

3. מה עושים עכשיו

כשהתכסיס התגלה חברת Mozilla היצרנית של Firefox היתה הראשונה להגיב והכריזה שהיא תסרב לקבל תעודות של StartCom או WoSign למשך שנה. חברת גוגל שעומדת מאחורי דפדפן Chrome מיהרה להצהיר על כוונה דומה וכך הגענו למצב שדפדפנים חדשים לא יציגו מנעול בגלישה לאתרים שמשתמשים בתעודות של StartCom שהונפקו החל מאוקטובר האחרון.

ניצלתי את ההזדמנות כדי להעביר את tocode ואת שאר האתרים שלי לתעודות של letsencrypt. זוהי חברת CA מתחרה, שכמו StartCom גם היא מציעה תעודות בחינם, עם ההבדל ש letsencrypt שמה דגש על אוטומציה ועל פיתוח setup בו כל שרת יחדש לעצמו את התעודות אחת ל-3 חודשים. בינתיים זה עובד, אבל המבחן האמיתי יגיע בעוד שלושה חודשים כשנראה שהשרת באמת חידש לעצמו את התעודות.

למידע נוסף מוזמנים לקרוא את הפוסט של גוגל משבוע שעבר בנושא:
https://security.googleblog.com/2016/10/distrusting-wosign-and-startcom.html

או את זה של מוזילה שפורסם שבוע לפני כן:
https://blog.mozilla.org/security/2016/10/24/distrusting-new-wosign-and-startcom-certificates/

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

Hello,
...
some of your certificates will expire soon:
...
You will need to get new ones and our new ones will be effected by Mozilla and Chrome decision.