Transport Layer Security (TLS), או Secure Sockets Layer (SSL) בגרסאות מוקדמות, הם פרוטוקולי אבטחה מרכזיים באינטרנט. כמעט כל שירותים מאובטחים כמו אתרי מסחר, בנקאות מקוונת ודואר אלקטרוני מסתמכים עליהם. הדפדפנים המודרניים תומכים ב‑TLS כדי להצפין ולשמור על שלמות המידע בין לקוח לשרת.
פרוטוקול SSL המקורי פותח על ידי Netscape. גרסה 1.0 לא פורסמה. גרסה 2.0 שוחררה בפברואר 1995, אך הכילה בעיות אבטחה. ב‑1996 עוצבה מחדש גרסה 3.0 בראשות Paul Kocher. גרסה זו שיפרה אלגוריתמים ותמיכה בפרוטוקולים נוספים, והיא הבסיס של SSL/TLS של היום. גרסה זו נרשמה ב‑RFC 6101 למטרות היסטוריות.
TLS נבנה על SSL 3.0 עם שינויים חשובים. למשל נוספה בדיקת אימות חזקת יותר בשם HMAC (פונקציה לבדיקת תקינות מידע) ושיטת גזירת מפתח קריפטוגרפי חדשה שנקראת PRF (פונקציה פסאודו‑אקראית). IETF המליץ על TLS 1.0 ב‑1999. מאז פורסמו גרסאות נוספות: 1.1 ב‑2006, 1.2 ב‑2008, ו‑TLS 1.3 שזכתה לתקינה באוגוסט 2018.
לפי מודל OSI, TLS פועל בין שכבת התעבורה לשכבת היישום. בפועל הוא מתיישב מעל TCP ומשמש ל־HTTP, FTP, SMTP ועוד. TLS מסתמך על שכבת הקו שמתחתיו לסדר ולהעברה. הפרוטוקול מחולק לשתי שכבות עיקריות, וההחלפה הראשונית שנקראת "לחיצת היד" (handshake) משיגה שלושה יעדים מרכזיים:
- הסכמה על "חבילת צופן", כלומר אילו אלגוריתמים ואורך מפתחות ישתמשו.
- יצירת סוד משותף ממנו נגזרים מפתחות שיחה.
- אימות זהות הצדדים; בדרך כלל מאמתים את השרת בלבד.
במשא ומתן על גרסה הלקוח בדרך כלל מציע את הגרסה העדכנית ביותר שהוא תומך בה. אם הלחיצה נכשלת, מתבצעת הורדה בגרסאות (downgrade) עד שלשני הצדדים יש גרסה משותפת. נקודת תורפה כאן היא האפשרות להתערבות פעילה של תוקף שמאלץ הורדה לגרסה חלשה כדי לפגוע באבטחה.
בהליך ההתחברות קיימים מסרים שונים: S מציין מסר מאומת מהשרת, C מציין אימות לקוח אופציונלי, E מציין שימוש במפתחות ארעיים (Ephemeral) לדיפי‑הלמן, ו‑R פירושו חידוש שיחה. זוג המסרים ChangeCipherSpec/Finished מסמן את המעבר למצב מוצפן.
צוות הצפנה (cipher suite) מורכב משלושה חלקים עיקריים: הצפנה סימטרית (למהצפין את התוכן), אימות (להבטיח שהמידע לא שונה), והחלפת מפתחות (איך הצדדים מסכימים על מפתח סודי). TLS תומך במגוון אלגוריתמים סימטריים ובשיטות אימות כמו HMAC ו‑GOST. החלפת מפתחות נעשית עם שיטות כמו RSA, Diffie‑Hellman (DH), DHE (DH ארעי), ECDH (DH על עקום אליפטי) ו‑ECDHE (ארעי על עקום אליפטי). המצב הארעי (Ephemeral) נותן forward secrecy, כלומר פריצה עתידית של מפתח לא תחשוף שיחות קודמות.
אורך המפתחות עלה עם הזמן. לאחר חשיפות כמו פרשת סנודן חברות גדולות המליצו לעבור למפתחות חזקים יותר. בגוגל הודיעו ב‑2013 על מעבר למפתחות 2048 סיביות בשרתים שלהם.
DTLS הוא התאמת TLS לרשתות מבוססות דטא‑גרם, כמו תקשורת על גבי UDP. DTLS מתמודד עם איבוד וסידור מחדש של חבילות. DTLS 1.2 פורסמה ב‑2012. גרסאות מוקדמות של DTLS מבוססות על גרסאות מתאימות של TLS.
נודעו מספר התקפות כנגד יישומים של SSL/TLS. דוגמה היסטורית היא התקפת דניאל בלייכנבכר מ‑1998, שחשפה חשש מסוג "padding oracle" נגד שימוש ב‑RSA עם פורמט PKCS#1. הפתרון כולל טיפול זהיר בשגיאות כדי לא לחשוף מידע ולשמור על אמינות היישום.
התקפות ידועות נוספות כוללות:
- BEAST (2011): ניצול חולשה ב‑SSL/TLS ישן כדי לגנוב ערכי עוגיות. גרסאות TLS מודרניות לא נוטות להיחשף לכך.
- CRIME (2012): ניצול דחיסה כדי לדלות מידע מתוך עוגיות מאובטחות.
- Lucky 13 (2013): התקפת תיזמון נגד בדיקת ה‑MAC בגרסאות ישנות ובמצב CBC.
- POODLE (2014): התקפת padding oracle נגד SSL 3.0 שניצלה אפשרות הורדה בגרסה; הפתרון העיקרי היה להסיר תמיכה ב‑SSL 3.0 או להוסיף העדפה נגד הורדות‑גרסה.
- FREAK (2015): התקפת אדם באמצע שמכריחה שימוש במפתחות חלשים מסוג Export RSA.
- "בר מצווה" (Bar Mitzvah): מתייחסת לבעיות בצופן RC4, שהוביל להסרתו מרשימות הצפנים.
- Logjam (2015): בעיות ביישום Diffie‑Hellman שהאפשרו הורדה לגרסאות חלשות ולניצול מספרים ראשוניים נפוצים; התיקון כלל העלאת אורך מפתחות וסינון פרמטרים חלשים.
הלקח המרכזי הוא שיישום נכון, בחירת אלגוריתמים מודרניים ועדכונים שוטפים קריטיים לשמירה על ביטחון TLS.
TLS (Transport Layer Security) היא שיטה שמגנה על תקשורת באינטרנט. שיטה זו מצפינה מידע בין דפדפן לשרת. הרבה אתרים בטוחים משתמשים בה, למשל חנויות ובנקים מקוונים.
SSL היה השם הישן. גרסה 1 לא שוחררה. גרסה 2 יצאה ב‑1995. ב‑1996 שיפרו ועיצבו את גרסה 3.
TLS יצא כשדרוג של SSL. גירסאות צמחו עם השנים. הגרסה המתקדמת ביותר הוגדרה בתקנות ב‑2018.
TLS עובד בין החלק שמעביר מידע לחלק שבו הרשת מדברת עם התוכנה. התחברות בטוחה מתחילה ב"לחיצת יד". בלחיצת היד מסכימים על שיטות ההצפנה, יוצרים סוד משותף ומאמתים מי הצדדים. בדרך כלל מאמתים את השרת.
צופן הוא הכלי שמצפין את המידע. יש שלושה חלקים: איך מצפינים, איך בודקים שלא שינו, ואיך מחליפים מפתחות. יש שיטות ישנות וחלשות שצריך להפסיק להשתמש בהן. שיטות ארעיות (Ephemeral) מונעות שאם פרצו פעם אחת הם יחשפו שיחות ישנות.
DTLS הוא TLS שמתאים להעברת חבילות קצרות ברשת (UDP). הוא יודע להתמודד עם חבילות שאיבדו או הגיעו בסדר שונה.
חוקרים גילו כמה חולשות במהלך השנים. שמות של התקפות מוכרות הם BEAST, CRIME, Lucky 13, POODLE, FREAK, Logjam. כל התקפה מנצלת חולשה שונה. הפתרון בדרך כלל הוא לעדכן תוכנות, להפסיק תמיכה בגרסאות ישנות ולהשתמש באלגוריתמים חזקים.
חשוב לזכור: עדכונים נכונים ובחירה בשיטות מודרניות שומרים על המידע בטוח.
תגובות גולשים