הסבר | האינטרנט כיום- טלאי על גבי טלאי!
-
בהמשך לפוסט המצוין של אברהם גלסר, רציתי לשתף אתכם בקצת שאני יודע על איך עובד האינטרנט המודרני ולמה הוא טלאי על גבי טלאי. הטקסט נכתב על ידי בן אנוש בלבד, למרות שייתכן שזה נראה כמו AI.
הקדמה
האינטרנט המודרני נוצר לראשונה ב-1969 בבסיס בארה"ב, ברשת בשם ARPANET. היא הוקמה על ידי DARPA של משרד ההגנה האמריקאי על מנת לקשר בין מחשבים באוניברסיטאות. שני מדענים, וינט סרף ומדען מוכשר בשם בוב קאן, המציאו את TCP/IP, שהם מבין פרוטוקולי האינטרנט הבסיסיים ביותר כיום. פרוטוקולים אלו הגדירו כיצד נתונים נארזים ונשלחים ברשת. הם נוצרו על מנת להחליף את NCP, שהיה פרוטוקול אבטחה מוגבל ביכולת שלו לתקשר בין מכשירים ודי מיושן. ב-1978 פוצל פרוטוקול התקשורת לשניים: TCP אחראי על אריזת נתונים ובדיקת שגיאות, ו-IP אחראי על ניתוב כתובות. כמה שנים אחרי זה, ב-1983, רשת ARPANET חייבה את כל המחשבים המחוברים אליה לעבור לעבוד אך ורק עם הפרוטוקולים TCP/IP. אירוע זה ייצב את האינטרנט העולמי כיום.TCP/IP
עכשיו, מכיוון שאף אחד מאותם המדענים לא דמיין לעצמו כיצד האינטרנט ייראה אפילו עשור קדימה, הפרוטוקולים האלו (TCP/IP), שמהווים את ליבת האינטרנט, היו ללא שום מנגנון אבטחה או אימות מובנה, כי המידע בבסיסו הועבר בקובץ טקסט פשוט. מה שאיפשר לכל אדם בעל תוכנת סניפר להאזין למידע שעובר ברשת ולקרוא מידע רגיש כמו סיסמאות, פרטי אשראי וכו', או בצורה יותר מחוכמת – מתקפות מסוג MITM, Spoofing, או ניצול מנגנון לחיצת יד משולשת SYN FLOOD (הצפת השרת בבקשות חיבור, שזה סוג של DDOS), ואפילו גם להזריק קוד זדוני (TCP Session Hijacking).
יותר מאוחר, כשהאינטרנט הפך למסחרי ורץ כבר על מיליוני מכשירים ברחבי העולם, אי אפשר היה להחליף אותו. אז בשביל זה המציאו את טלאי האבטחה כמו SSL/TLS, שזה המנעול בדפדפן שבעצם מצפין את התעבורה מעל הפרוטוקול הפרוץ. שזה אומר שכשאתה גולש בדפדפן באתר שמתחיל ב-HTTPS, אתם משתמשים ב-HTTP על גבי TLS שמגן עליכם מפני נקודת התורפה של TCP/IP. מסיבות אלו בדיוק חשוב מאוד לא לגלוש באתרים ללא סמל מנעול שאינם מאובטחים. יאות לשקול להתייחס ברצינות לאזהרות הדפדפן שלכם.BGP (שיצא ב-1989), שנוצר גם הוא על בסיס אמון מוחלט. הפרוטוקול הזה מנווט את חבילות המידע בין ספקיות האינטרנט השונות בעולם, כמו סיסקו וכו'. אך מכיוון שאין בו אימות מובנה, כל נתב גדול יכול להצהיר הצהרה שקרית שהוא הדרך המהירה ביותר להגיע ליעד מסוים. דבר זה מאפשר לתוקפים או למדינות לבצע מתקפות מסוג BGP Hijacking ולנתב אליהם תעבורת רשת שלמה של מדינות אחרות כדי לצפות בה או לשבש אותה, וזה קורה גם היום.
DNS
קצת יותר מאוחר, בשנת 1983, המציא מדען בשם פול מוקאפטריס משהו שאפשר לכנות אותו כ"ספר הטלפונים של האינטרנט", ה-DNS. ה-DNS עובד בצורה כזאת: מחשבים בשביל לתקשר ביניהם, כפי שכבר אמרנו, צריכים כתובת IP שנראות ככה: 192.0.2.1. מעצם היותנו בני אדם קשה לנו לזכור רצפים ארוכים של מספרים, אבל מאוד קל לזכור את הדומיין google.com. אז מה עושים? פשוט מאוד: המשתמש מקליד כתובת אתר אינטרנט, המחשב תוך שבריר שנייה מתרגם זאת דרך DNS לכתובת דיגיטלית שהמחשב מבין, מבלי להצטרך לזכור רצפי מספרים ארוכים. זה מזכיר קצת את הדרך בה למשל נוצרה אסמבלי. עכשיו, יש בזה כמה בעיות: כאשר מחשב שולח בקשה לשרת DNS, הוא בנוי בצורה כזאת שהמחשב קיבל את התשובה הראשונה שהגיעה אליו חזרה מהשרת תוך כדי שהוא מתעלם מכל השאר. תוקפים יכלו להאזין לתעבורת רשת, לתפוס את הרגע שבקשה נשלחת, ולנתב תשובה מזויפת. אם התשובה המזויפת הייתה מגיעה שבריר שנייה למחשב לפני התשובה המקורית, המחשב היה מקבל אותה ללא כל עוררין, שכן מבחינתו הבקשה הראשונה שחוזרת היא הלגיטימית.בעיה נוספת היא בעיה שהתגלתה ב-2008 על ידי מומחה אבטחה בשם דן קמינסקי. קמינסקי גילה שאפשר לבקש שמות שלא קיימים, כמו example1, example2 וכן הלאה. מכיוון שהשמות האלו לא שמורים בזיכרון, שרת ה-DNS נאלץ לפנות בכל פעם מחדש לשרת המרכזי כדי לקבל תשובה. זה איפשר לתוקפים לשלוח אינספור בקשות ותשובות מזויפות בשנייה עד שהם הצליחו להחדיר לזיכרון השרת מידע כוזב שמשתלט על כל כתובת האתר. לצורך זה המחשבים עברו לשיטות הבאות: שליחת בקשות מאלפי פורטים שונים, ככה שיהיה בלתי אפשרי לנחש מספר סידורי, וגם הוספת חתימה דיגיטלית מוצפנת DNSSEC, שגם הוא, למרבה הצער, עדיין לא מיושם ברחבי העולם, מה שמותיר מיליוני מחשבים פרוצים לאנשים הנכונים. ובזמן האחרון נכנסו גם פרוטוקולים מודרניים כמו DoH, שמצפינים את הבקשות עצמן גם מפני הספקים.
IPv4
הדוגמה הבאה שרציתי להביא זה IPv4. IPv4 הוא פרוטוקול כתובות. הרי כמו שאנחנו יודעים, כל מכשיר שמחובר לאינטרנט צריך שיהיה אפשרות לתקשר איתו. התקשורת בפרוטוקול IPv4 הייתה בצורה כזאת: לכל מכשיר יש מספר מזהה באורך 32 סיביות שנראה ככה למשל: 192.168.1.1. ולפרוטוקול זה יש כמה בעיות: הוא מאפשר עד 4.3 מיליארד כתובות בלבד. בשנות ה-70 זה היה נראה המון, אבל כיום, כשכל בן אדם יש לו מספר מכשירים מלבד מכשירי IoT, זה מזמן לא מספיק (כמו הזיכרון נדיף, מי האמין בשנות ה-70 שיהיה צריך יותר מ-630 KB?). הטלאי לזה היה NAT, טכנולוגיה המאפשרת לנתב שלכם לתקשר באמצעות כתובת אחת מול האינטרנט ולחלק מספר כתובות פנימיות לכל מכשיר בבית. הבעיה: פתרון זה סירבל תעבורת רשת, דרש כוח עיבוד מהנתבים והקשה על תקשורת מקצה לקצה. והבעיה הכי גדולה: בעיית האבטחה. כש-IPv4 נוצר, הוא היה בשימוש של אוניברסיטאות וגופי מחקר ללא שום אבטחה מובנית, בדומה לפרוטוקולים הקודמים. אז היה את הטלאי IPsec, אם כי זה לא היה חלק אינטגרלי ביותר, מה שהקשה על האבטחה. לצורך זה עברו ל-IPv6, שמשתמש ב-128 סיביות, כולל אבטחה מראש וניתוב יעיל, אם כי רוב העולם משתמש בפרוטוקול הקודם עם טלאי NAT, עקב איטיות המעבר של ספקיות אינטרנט רבות, גם בארץ.JavaScript
כשג'אווה סקריפט נוצרה בשנת 1995, היא נכתבה בתוך 10 ימים בלבד (!) על ידי ברנדן אייך במטרה להפוך דפי אינטרנט לקצת יותר דינמיים, כמו להניע תמונות או לבדוק טפסים. אף אחד לא דמיין שעל גבי השפה הזו ירוצו אפליקציות ענק כמו פייסבוק, וורד, או מערכות בנקאיות. כדי לגרום לאינטרנט לעבוד מהר ובצורה מורכבת, יצרו אינספור ספריות, מנועים ומסגרות עבודה שיושבים אחד על גבי השני, כמו React, Node.js ועוד. דפדפן מודרני הוא כבר מזמן לא מציג דפי טקסט, אלא מערכת הפעלה מסורבלת (ממש כמו לינוקס...) שמנסה לתמוך בישן ליד חדש בצורת טלאים.SS7
פרוטוקול SS7 (Signaling System No. 7) פותח עבור רשתות הטלפוניה העולמיות. זהו הפרוטוקול שאחראי על ניתוב שיחות טלפון, הודעות SMS ואימות מכשירים סלולריים בכל העולם. גם הוא נבנה על בסיס אמון בין חברות הטלקום, ללא הצפנה או אימות כלשהו, מה שמאפשר גם כיום להאקרים לצותת לשיחות, ליירט הודעות SMS של אימות דו-שלבי, ולעקוב אחר מיקום של מכשירים בכל העולם בדיוק של מטרים. הטלאי לזה היה Diameter, וכמו שהזכרתי, בגלל תאימות לאחור, כמו הפרוטוקולים הדומים, גם זה לא מיושם מספיק, וגם אם כן, עצם העובדה שיש תאימות לאחור משאירה חורים. אמנם כיום פריצה לזה כמעט ולא אפשרית, אבל אם מישהו יצליח תיאורטית, הוא יכול לקרוא כל הודעת SMS, לנתב כל שיחת טלפון ולאכן מיקום של כל אדם בסנטימטרים.
לכן הפתרון הפשוט זה אפליקציות עם הצפנה מקצה לקצה, כמו וואטסאפ, טלגרם, סיגנל (המעולה).
בנוסף, גם עם כל שכבות האבטחה, יש, וזה קיים היום, גופים שמשחדים חברות סלולר במדינות עולם שלישי לתת להם גישה ל-SS7 העולמי (פריצה מרחוק כמעט ולא אפשרית).בכל מקרה, זה הקצת שאני יודע על כמה שהאינטרנט של היום הוא טלאים על גבי טלאים. אם זה הוסיף ידע למישהו, שמחתי לעזור (מצטער שלא ערכתי מספיק, אין לי די זמן לזה). אשמח להערות ולהארות, אם טעיתי או לא דייקתי במשהו - ספרו לי מה חשבתם.
-
בהמשך לפוסט המצוין של אברהם גלסר, רציתי לשתף אתכם בקצת שאני יודע על איך עובד האינטרנט המודרני ולמה הוא טלאי על גבי טלאי. הטקסט נכתב על ידי בן אנוש בלבד, למרות שייתכן שזה נראה כמו AI.
הקדמה
האינטרנט המודרני נוצר לראשונה ב-1969 בבסיס בארה"ב, ברשת בשם ARPANET. היא הוקמה על ידי DARPA של משרד ההגנה האמריקאי על מנת לקשר בין מחשבים באוניברסיטאות. שני מדענים, וינט סרף ומדען מוכשר בשם בוב קאן, המציאו את TCP/IP, שהם מבין פרוטוקולי האינטרנט הבסיסיים ביותר כיום. פרוטוקולים אלו הגדירו כיצד נתונים נארזים ונשלחים ברשת. הם נוצרו על מנת להחליף את NCP, שהיה פרוטוקול אבטחה מוגבל ביכולת שלו לתקשר בין מכשירים ודי מיושן. ב-1978 פוצל פרוטוקול התקשורת לשניים: TCP אחראי על אריזת נתונים ובדיקת שגיאות, ו-IP אחראי על ניתוב כתובות. כמה שנים אחרי זה, ב-1983, רשת ARPANET חייבה את כל המחשבים המחוברים אליה לעבור לעבוד אך ורק עם הפרוטוקולים TCP/IP. אירוע זה ייצב את האינטרנט העולמי כיום.TCP/IP
עכשיו, מכיוון שאף אחד מאותם המדענים לא דמיין לעצמו כיצד האינטרנט ייראה אפילו עשור קדימה, הפרוטוקולים האלו (TCP/IP), שמהווים את ליבת האינטרנט, היו ללא שום מנגנון אבטחה או אימות מובנה, כי המידע בבסיסו הועבר בקובץ טקסט פשוט. מה שאיפשר לכל אדם בעל תוכנת סניפר להאזין למידע שעובר ברשת ולקרוא מידע רגיש כמו סיסמאות, פרטי אשראי וכו', או בצורה יותר מחוכמת – מתקפות מסוג MITM, Spoofing, או ניצול מנגנון לחיצת יד משולשת SYN FLOOD (הצפת השרת בבקשות חיבור, שזה סוג של DDOS), ואפילו גם להזריק קוד זדוני (TCP Session Hijacking).
יותר מאוחר, כשהאינטרנט הפך למסחרי ורץ כבר על מיליוני מכשירים ברחבי העולם, אי אפשר היה להחליף אותו. אז בשביל זה המציאו את טלאי האבטחה כמו SSL/TLS, שזה המנעול בדפדפן שבעצם מצפין את התעבורה מעל הפרוטוקול הפרוץ. שזה אומר שכשאתה גולש בדפדפן באתר שמתחיל ב-HTTPS, אתם משתמשים ב-HTTP על גבי TLS שמגן עליכם מפני נקודת התורפה של TCP/IP. מסיבות אלו בדיוק חשוב מאוד לא לגלוש באתרים ללא סמל מנעול שאינם מאובטחים. יאות לשקול להתייחס ברצינות לאזהרות הדפדפן שלכם.BGP (שיצא ב-1989), שנוצר גם הוא על בסיס אמון מוחלט. הפרוטוקול הזה מנווט את חבילות המידע בין ספקיות האינטרנט השונות בעולם, כמו סיסקו וכו'. אך מכיוון שאין בו אימות מובנה, כל נתב גדול יכול להצהיר הצהרה שקרית שהוא הדרך המהירה ביותר להגיע ליעד מסוים. דבר זה מאפשר לתוקפים או למדינות לבצע מתקפות מסוג BGP Hijacking ולנתב אליהם תעבורת רשת שלמה של מדינות אחרות כדי לצפות בה או לשבש אותה, וזה קורה גם היום.
DNS
קצת יותר מאוחר, בשנת 1983, המציא מדען בשם פול מוקאפטריס משהו שאפשר לכנות אותו כ"ספר הטלפונים של האינטרנט", ה-DNS. ה-DNS עובד בצורה כזאת: מחשבים בשביל לתקשר ביניהם, כפי שכבר אמרנו, צריכים כתובת IP שנראות ככה: 192.0.2.1. מעצם היותנו בני אדם קשה לנו לזכור רצפים ארוכים של מספרים, אבל מאוד קל לזכור את הדומיין google.com. אז מה עושים? פשוט מאוד: המשתמש מקליד כתובת אתר אינטרנט, המחשב תוך שבריר שנייה מתרגם זאת דרך DNS לכתובת דיגיטלית שהמחשב מבין, מבלי להצטרך לזכור רצפי מספרים ארוכים. זה מזכיר קצת את הדרך בה למשל נוצרה אסמבלי. עכשיו, יש בזה כמה בעיות: כאשר מחשב שולח בקשה לשרת DNS, הוא בנוי בצורה כזאת שהמחשב קיבל את התשובה הראשונה שהגיעה אליו חזרה מהשרת תוך כדי שהוא מתעלם מכל השאר. תוקפים יכלו להאזין לתעבורת רשת, לתפוס את הרגע שבקשה נשלחת, ולנתב תשובה מזויפת. אם התשובה המזויפת הייתה מגיעה שבריר שנייה למחשב לפני התשובה המקורית, המחשב היה מקבל אותה ללא כל עוררין, שכן מבחינתו הבקשה הראשונה שחוזרת היא הלגיטימית.בעיה נוספת היא בעיה שהתגלתה ב-2008 על ידי מומחה אבטחה בשם דן קמינסקי. קמינסקי גילה שאפשר לבקש שמות שלא קיימים, כמו example1, example2 וכן הלאה. מכיוון שהשמות האלו לא שמורים בזיכרון, שרת ה-DNS נאלץ לפנות בכל פעם מחדש לשרת המרכזי כדי לקבל תשובה. זה איפשר לתוקפים לשלוח אינספור בקשות ותשובות מזויפות בשנייה עד שהם הצליחו להחדיר לזיכרון השרת מידע כוזב שמשתלט על כל כתובת האתר. לצורך זה המחשבים עברו לשיטות הבאות: שליחת בקשות מאלפי פורטים שונים, ככה שיהיה בלתי אפשרי לנחש מספר סידורי, וגם הוספת חתימה דיגיטלית מוצפנת DNSSEC, שגם הוא, למרבה הצער, עדיין לא מיושם ברחבי העולם, מה שמותיר מיליוני מחשבים פרוצים לאנשים הנכונים. ובזמן האחרון נכנסו גם פרוטוקולים מודרניים כמו DoH, שמצפינים את הבקשות עצמן גם מפני הספקים.
IPv4
הדוגמה הבאה שרציתי להביא זה IPv4. IPv4 הוא פרוטוקול כתובות. הרי כמו שאנחנו יודעים, כל מכשיר שמחובר לאינטרנט צריך שיהיה אפשרות לתקשר איתו. התקשורת בפרוטוקול IPv4 הייתה בצורה כזאת: לכל מכשיר יש מספר מזהה באורך 32 סיביות שנראה ככה למשל: 192.168.1.1. ולפרוטוקול זה יש כמה בעיות: הוא מאפשר עד 4.3 מיליארד כתובות בלבד. בשנות ה-70 זה היה נראה המון, אבל כיום, כשכל בן אדם יש לו מספר מכשירים מלבד מכשירי IoT, זה מזמן לא מספיק (כמו הזיכרון נדיף, מי האמין בשנות ה-70 שיהיה צריך יותר מ-630 KB?). הטלאי לזה היה NAT, טכנולוגיה המאפשרת לנתב שלכם לתקשר באמצעות כתובת אחת מול האינטרנט ולחלק מספר כתובות פנימיות לכל מכשיר בבית. הבעיה: פתרון זה סירבל תעבורת רשת, דרש כוח עיבוד מהנתבים והקשה על תקשורת מקצה לקצה. והבעיה הכי גדולה: בעיית האבטחה. כש-IPv4 נוצר, הוא היה בשימוש של אוניברסיטאות וגופי מחקר ללא שום אבטחה מובנית, בדומה לפרוטוקולים הקודמים. אז היה את הטלאי IPsec, אם כי זה לא היה חלק אינטגרלי ביותר, מה שהקשה על האבטחה. לצורך זה עברו ל-IPv6, שמשתמש ב-128 סיביות, כולל אבטחה מראש וניתוב יעיל, אם כי רוב העולם משתמש בפרוטוקול הקודם עם טלאי NAT, עקב איטיות המעבר של ספקיות אינטרנט רבות, גם בארץ.JavaScript
כשג'אווה סקריפט נוצרה בשנת 1995, היא נכתבה בתוך 10 ימים בלבד (!) על ידי ברנדן אייך במטרה להפוך דפי אינטרנט לקצת יותר דינמיים, כמו להניע תמונות או לבדוק טפסים. אף אחד לא דמיין שעל גבי השפה הזו ירוצו אפליקציות ענק כמו פייסבוק, וורד, או מערכות בנקאיות. כדי לגרום לאינטרנט לעבוד מהר ובצורה מורכבת, יצרו אינספור ספריות, מנועים ומסגרות עבודה שיושבים אחד על גבי השני, כמו React, Node.js ועוד. דפדפן מודרני הוא כבר מזמן לא מציג דפי טקסט, אלא מערכת הפעלה מסורבלת (ממש כמו לינוקס...) שמנסה לתמוך בישן ליד חדש בצורת טלאים.SS7
פרוטוקול SS7 (Signaling System No. 7) פותח עבור רשתות הטלפוניה העולמיות. זהו הפרוטוקול שאחראי על ניתוב שיחות טלפון, הודעות SMS ואימות מכשירים סלולריים בכל העולם. גם הוא נבנה על בסיס אמון בין חברות הטלקום, ללא הצפנה או אימות כלשהו, מה שמאפשר גם כיום להאקרים לצותת לשיחות, ליירט הודעות SMS של אימות דו-שלבי, ולעקוב אחר מיקום של מכשירים בכל העולם בדיוק של מטרים. הטלאי לזה היה Diameter, וכמו שהזכרתי, בגלל תאימות לאחור, כמו הפרוטוקולים הדומים, גם זה לא מיושם מספיק, וגם אם כן, עצם העובדה שיש תאימות לאחור משאירה חורים. אמנם כיום פריצה לזה כמעט ולא אפשרית, אבל אם מישהו יצליח תיאורטית, הוא יכול לקרוא כל הודעת SMS, לנתב כל שיחת טלפון ולאכן מיקום של כל אדם בסנטימטרים.
לכן הפתרון הפשוט זה אפליקציות עם הצפנה מקצה לקצה, כמו וואטסאפ, טלגרם, סיגנל (המעולה).
בנוסף, גם עם כל שכבות האבטחה, יש, וזה קיים היום, גופים שמשחדים חברות סלולר במדינות עולם שלישי לתת להם גישה ל-SS7 העולמי (פריצה מרחוק כמעט ולא אפשרית).בכל מקרה, זה הקצת שאני יודע על כמה שהאינטרנט של היום הוא טלאים על גבי טלאים. אם זה הוסיף ידע למישהו, שמחתי לעזור (מצטער שלא ערכתי מספיק, אין לי די זמן לזה). אשמח להערות ולהארות, אם טעיתי או לא דייקתי במשהו - ספרו לי מה חשבתם.
@Nils-Sjoberg פוסט יפה מאוד,
630kb
לפי ביל גייטס הוא מעולם לא טען את זה, אבל דברים מכגון הא חוזרים על עצמם במהלך ההיסטוריה (גם של הai) כמה פעמים בווריאציות שונות..דרך אגב חשוב לציין שncp לא היה פרוטקול אבטחה בכלל, להידוע לי.
אלא פרוטקול תקשורת בסיסי, והסיבה שהוא הוחלף הייתה בגלל הבעיה של רשתות מבוזרות, אני טועה? -
@Nils-Sjoberg פוסט יפה מאוד,
630kb
לפי ביל גייטס הוא מעולם לא טען את זה, אבל דברים מכגון הא חוזרים על עצמם במהלך ההיסטוריה (גם של הai) כמה פעמים בווריאציות שונות..דרך אגב חשוב לציין שncp לא היה פרוטקול אבטחה בכלל, להידוע לי.
אלא פרוטקול תקשורת בסיסי, והסיבה שהוא הוחלף הייתה בגלל הבעיה של רשתות מבוזרות, אני טועה?@Nils-Sjoberg פוסט יפה מאוד,
630kb לפי ביל גייטס הוא מעולם לא טען את זה, אבל דברים מכגון הא חוזרים על עצמם במהלך ההיסטוריה (גם של הai) כמה פעמים בווריאציות שונות..דרך אגב חשוב לציין שncp לא היה פרוטקול אבטחה בכלל, להידוע לי.
אלא פרוטקול תקשורת בסיסי, והסיבה שהוא הוחלף הייתה בגלל הבעיה של רשתות מבוזרות, אני טועה?כמעט מדויק הוא לא ידע להתמודד עם חיבור רשתות אישיות ורבות מה שהפך אותו למוגבל מאוד
ונכון עכשיו בדקתי ביל גייטס באמת הכחיש את זה כמה פעמים אם כי תזכור שמערכת ההפעלה של אפולו 11 שקלה עשרות קילו בייט בלבד -
בהמשך לפוסט המצוין של אברהם גלסר, רציתי לשתף אתכם בקצת שאני יודע על איך עובד האינטרנט המודרני ולמה הוא טלאי על גבי טלאי. הטקסט נכתב על ידי בן אנוש בלבד, למרות שייתכן שזה נראה כמו AI.
הקדמה
האינטרנט המודרני נוצר לראשונה ב-1969 בבסיס בארה"ב, ברשת בשם ARPANET. היא הוקמה על ידי DARPA של משרד ההגנה האמריקאי על מנת לקשר בין מחשבים באוניברסיטאות. שני מדענים, וינט סרף ומדען מוכשר בשם בוב קאן, המציאו את TCP/IP, שהם מבין פרוטוקולי האינטרנט הבסיסיים ביותר כיום. פרוטוקולים אלו הגדירו כיצד נתונים נארזים ונשלחים ברשת. הם נוצרו על מנת להחליף את NCP, שהיה פרוטוקול אבטחה מוגבל ביכולת שלו לתקשר בין מכשירים ודי מיושן. ב-1978 פוצל פרוטוקול התקשורת לשניים: TCP אחראי על אריזת נתונים ובדיקת שגיאות, ו-IP אחראי על ניתוב כתובות. כמה שנים אחרי זה, ב-1983, רשת ARPANET חייבה את כל המחשבים המחוברים אליה לעבור לעבוד אך ורק עם הפרוטוקולים TCP/IP. אירוע זה ייצב את האינטרנט העולמי כיום.TCP/IP
עכשיו, מכיוון שאף אחד מאותם המדענים לא דמיין לעצמו כיצד האינטרנט ייראה אפילו עשור קדימה, הפרוטוקולים האלו (TCP/IP), שמהווים את ליבת האינטרנט, היו ללא שום מנגנון אבטחה או אימות מובנה, כי המידע בבסיסו הועבר בקובץ טקסט פשוט. מה שאיפשר לכל אדם בעל תוכנת סניפר להאזין למידע שעובר ברשת ולקרוא מידע רגיש כמו סיסמאות, פרטי אשראי וכו', או בצורה יותר מחוכמת – מתקפות מסוג MITM, Spoofing, או ניצול מנגנון לחיצת יד משולשת SYN FLOOD (הצפת השרת בבקשות חיבור, שזה סוג של DDOS), ואפילו גם להזריק קוד זדוני (TCP Session Hijacking).
יותר מאוחר, כשהאינטרנט הפך למסחרי ורץ כבר על מיליוני מכשירים ברחבי העולם, אי אפשר היה להחליף אותו. אז בשביל זה המציאו את טלאי האבטחה כמו SSL/TLS, שזה המנעול בדפדפן שבעצם מצפין את התעבורה מעל הפרוטוקול הפרוץ. שזה אומר שכשאתה גולש בדפדפן באתר שמתחיל ב-HTTPS, אתם משתמשים ב-HTTP על גבי TLS שמגן עליכם מפני נקודת התורפה של TCP/IP. מסיבות אלו בדיוק חשוב מאוד לא לגלוש באתרים ללא סמל מנעול שאינם מאובטחים. יאות לשקול להתייחס ברצינות לאזהרות הדפדפן שלכם.BGP (שיצא ב-1989), שנוצר גם הוא על בסיס אמון מוחלט. הפרוטוקול הזה מנווט את חבילות המידע בין ספקיות האינטרנט השונות בעולם, כמו סיסקו וכו'. אך מכיוון שאין בו אימות מובנה, כל נתב גדול יכול להצהיר הצהרה שקרית שהוא הדרך המהירה ביותר להגיע ליעד מסוים. דבר זה מאפשר לתוקפים או למדינות לבצע מתקפות מסוג BGP Hijacking ולנתב אליהם תעבורת רשת שלמה של מדינות אחרות כדי לצפות בה או לשבש אותה, וזה קורה גם היום.
DNS
קצת יותר מאוחר, בשנת 1983, המציא מדען בשם פול מוקאפטריס משהו שאפשר לכנות אותו כ"ספר הטלפונים של האינטרנט", ה-DNS. ה-DNS עובד בצורה כזאת: מחשבים בשביל לתקשר ביניהם, כפי שכבר אמרנו, צריכים כתובת IP שנראות ככה: 192.0.2.1. מעצם היותנו בני אדם קשה לנו לזכור רצפים ארוכים של מספרים, אבל מאוד קל לזכור את הדומיין google.com. אז מה עושים? פשוט מאוד: המשתמש מקליד כתובת אתר אינטרנט, המחשב תוך שבריר שנייה מתרגם זאת דרך DNS לכתובת דיגיטלית שהמחשב מבין, מבלי להצטרך לזכור רצפי מספרים ארוכים. זה מזכיר קצת את הדרך בה למשל נוצרה אסמבלי. עכשיו, יש בזה כמה בעיות: כאשר מחשב שולח בקשה לשרת DNS, הוא בנוי בצורה כזאת שהמחשב קיבל את התשובה הראשונה שהגיעה אליו חזרה מהשרת תוך כדי שהוא מתעלם מכל השאר. תוקפים יכלו להאזין לתעבורת רשת, לתפוס את הרגע שבקשה נשלחת, ולנתב תשובה מזויפת. אם התשובה המזויפת הייתה מגיעה שבריר שנייה למחשב לפני התשובה המקורית, המחשב היה מקבל אותה ללא כל עוררין, שכן מבחינתו הבקשה הראשונה שחוזרת היא הלגיטימית.בעיה נוספת היא בעיה שהתגלתה ב-2008 על ידי מומחה אבטחה בשם דן קמינסקי. קמינסקי גילה שאפשר לבקש שמות שלא קיימים, כמו example1, example2 וכן הלאה. מכיוון שהשמות האלו לא שמורים בזיכרון, שרת ה-DNS נאלץ לפנות בכל פעם מחדש לשרת המרכזי כדי לקבל תשובה. זה איפשר לתוקפים לשלוח אינספור בקשות ותשובות מזויפות בשנייה עד שהם הצליחו להחדיר לזיכרון השרת מידע כוזב שמשתלט על כל כתובת האתר. לצורך זה המחשבים עברו לשיטות הבאות: שליחת בקשות מאלפי פורטים שונים, ככה שיהיה בלתי אפשרי לנחש מספר סידורי, וגם הוספת חתימה דיגיטלית מוצפנת DNSSEC, שגם הוא, למרבה הצער, עדיין לא מיושם ברחבי העולם, מה שמותיר מיליוני מחשבים פרוצים לאנשים הנכונים. ובזמן האחרון נכנסו גם פרוטוקולים מודרניים כמו DoH, שמצפינים את הבקשות עצמן גם מפני הספקים.
IPv4
הדוגמה הבאה שרציתי להביא זה IPv4. IPv4 הוא פרוטוקול כתובות. הרי כמו שאנחנו יודעים, כל מכשיר שמחובר לאינטרנט צריך שיהיה אפשרות לתקשר איתו. התקשורת בפרוטוקול IPv4 הייתה בצורה כזאת: לכל מכשיר יש מספר מזהה באורך 32 סיביות שנראה ככה למשל: 192.168.1.1. ולפרוטוקול זה יש כמה בעיות: הוא מאפשר עד 4.3 מיליארד כתובות בלבד. בשנות ה-70 זה היה נראה המון, אבל כיום, כשכל בן אדם יש לו מספר מכשירים מלבד מכשירי IoT, זה מזמן לא מספיק (כמו הזיכרון נדיף, מי האמין בשנות ה-70 שיהיה צריך יותר מ-630 KB?). הטלאי לזה היה NAT, טכנולוגיה המאפשרת לנתב שלכם לתקשר באמצעות כתובת אחת מול האינטרנט ולחלק מספר כתובות פנימיות לכל מכשיר בבית. הבעיה: פתרון זה סירבל תעבורת רשת, דרש כוח עיבוד מהנתבים והקשה על תקשורת מקצה לקצה. והבעיה הכי גדולה: בעיית האבטחה. כש-IPv4 נוצר, הוא היה בשימוש של אוניברסיטאות וגופי מחקר ללא שום אבטחה מובנית, בדומה לפרוטוקולים הקודמים. אז היה את הטלאי IPsec, אם כי זה לא היה חלק אינטגרלי ביותר, מה שהקשה על האבטחה. לצורך זה עברו ל-IPv6, שמשתמש ב-128 סיביות, כולל אבטחה מראש וניתוב יעיל, אם כי רוב העולם משתמש בפרוטוקול הקודם עם טלאי NAT, עקב איטיות המעבר של ספקיות אינטרנט רבות, גם בארץ.JavaScript
כשג'אווה סקריפט נוצרה בשנת 1995, היא נכתבה בתוך 10 ימים בלבד (!) על ידי ברנדן אייך במטרה להפוך דפי אינטרנט לקצת יותר דינמיים, כמו להניע תמונות או לבדוק טפסים. אף אחד לא דמיין שעל גבי השפה הזו ירוצו אפליקציות ענק כמו פייסבוק, וורד, או מערכות בנקאיות. כדי לגרום לאינטרנט לעבוד מהר ובצורה מורכבת, יצרו אינספור ספריות, מנועים ומסגרות עבודה שיושבים אחד על גבי השני, כמו React, Node.js ועוד. דפדפן מודרני הוא כבר מזמן לא מציג דפי טקסט, אלא מערכת הפעלה מסורבלת (ממש כמו לינוקס...) שמנסה לתמוך בישן ליד חדש בצורת טלאים.SS7
פרוטוקול SS7 (Signaling System No. 7) פותח עבור רשתות הטלפוניה העולמיות. זהו הפרוטוקול שאחראי על ניתוב שיחות טלפון, הודעות SMS ואימות מכשירים סלולריים בכל העולם. גם הוא נבנה על בסיס אמון בין חברות הטלקום, ללא הצפנה או אימות כלשהו, מה שמאפשר גם כיום להאקרים לצותת לשיחות, ליירט הודעות SMS של אימות דו-שלבי, ולעקוב אחר מיקום של מכשירים בכל העולם בדיוק של מטרים. הטלאי לזה היה Diameter, וכמו שהזכרתי, בגלל תאימות לאחור, כמו הפרוטוקולים הדומים, גם זה לא מיושם מספיק, וגם אם כן, עצם העובדה שיש תאימות לאחור משאירה חורים. אמנם כיום פריצה לזה כמעט ולא אפשרית, אבל אם מישהו יצליח תיאורטית, הוא יכול לקרוא כל הודעת SMS, לנתב כל שיחת טלפון ולאכן מיקום של כל אדם בסנטימטרים.
לכן הפתרון הפשוט זה אפליקציות עם הצפנה מקצה לקצה, כמו וואטסאפ, טלגרם, סיגנל (המעולה).
בנוסף, גם עם כל שכבות האבטחה, יש, וזה קיים היום, גופים שמשחדים חברות סלולר במדינות עולם שלישי לתת להם גישה ל-SS7 העולמי (פריצה מרחוק כמעט ולא אפשרית).בכל מקרה, זה הקצת שאני יודע על כמה שהאינטרנט של היום הוא טלאים על גבי טלאים. אם זה הוסיף ידע למישהו, שמחתי לעזור (מצטער שלא ערכתי מספיק, אין לי די זמן לזה). אשמח להערות ולהארות, אם טעיתי או לא דייקתי במשהו - ספרו לי מה חשבתם.
@Nils-Sjoberg כתוב יפה ומושך
די קשה להפסיק את רצף הקריאה. -
@Nils-Sjoberg פוסט יפה מאוד,
630kb לפי ביל גייטס הוא מעולם לא טען את זה, אבל דברים מכגון הא חוזרים על עצמם במהלך ההיסטוריה (גם של הai) כמה פעמים בווריאציות שונות..דרך אגב חשוב לציין שncp לא היה פרוטקול אבטחה בכלל, להידוע לי.
אלא פרוטקול תקשורת בסיסי, והסיבה שהוא הוחלף הייתה בגלל הבעיה של רשתות מבוזרות, אני טועה?כמעט מדויק הוא לא ידע להתמודד עם חיבור רשתות אישיות ורבות מה שהפך אותו למוגבל מאוד
ונכון עכשיו בדקתי ביל גייטס באמת הכחיש את זה כמה פעמים אם כי תזכור שמערכת ההפעלה של אפולו 11 שקלה עשרות קילו בייט בלבד@Nils-Sjoberg בכללי זה מטורף שהמקסימום של דוס זה כמה מאות KB..
-
בהמשך לפוסט המצוין של אברהם גלסר, רציתי לשתף אתכם בקצת שאני יודע על איך עובד האינטרנט המודרני ולמה הוא טלאי על גבי טלאי. הטקסט נכתב על ידי בן אנוש בלבד, למרות שייתכן שזה נראה כמו AI.
הקדמה
האינטרנט המודרני נוצר לראשונה ב-1969 בבסיס בארה"ב, ברשת בשם ARPANET. היא הוקמה על ידי DARPA של משרד ההגנה האמריקאי על מנת לקשר בין מחשבים באוניברסיטאות. שני מדענים, וינט סרף ומדען מוכשר בשם בוב קאן, המציאו את TCP/IP, שהם מבין פרוטוקולי האינטרנט הבסיסיים ביותר כיום. פרוטוקולים אלו הגדירו כיצד נתונים נארזים ונשלחים ברשת. הם נוצרו על מנת להחליף את NCP, שהיה פרוטוקול אבטחה מוגבל ביכולת שלו לתקשר בין מכשירים ודי מיושן. ב-1978 פוצל פרוטוקול התקשורת לשניים: TCP אחראי על אריזת נתונים ובדיקת שגיאות, ו-IP אחראי על ניתוב כתובות. כמה שנים אחרי זה, ב-1983, רשת ARPANET חייבה את כל המחשבים המחוברים אליה לעבור לעבוד אך ורק עם הפרוטוקולים TCP/IP. אירוע זה ייצב את האינטרנט העולמי כיום.TCP/IP
עכשיו, מכיוון שאף אחד מאותם המדענים לא דמיין לעצמו כיצד האינטרנט ייראה אפילו עשור קדימה, הפרוטוקולים האלו (TCP/IP), שמהווים את ליבת האינטרנט, היו ללא שום מנגנון אבטחה או אימות מובנה, כי המידע בבסיסו הועבר בקובץ טקסט פשוט. מה שאיפשר לכל אדם בעל תוכנת סניפר להאזין למידע שעובר ברשת ולקרוא מידע רגיש כמו סיסמאות, פרטי אשראי וכו', או בצורה יותר מחוכמת – מתקפות מסוג MITM, Spoofing, או ניצול מנגנון לחיצת יד משולשת SYN FLOOD (הצפת השרת בבקשות חיבור, שזה סוג של DDOS), ואפילו גם להזריק קוד זדוני (TCP Session Hijacking).
יותר מאוחר, כשהאינטרנט הפך למסחרי ורץ כבר על מיליוני מכשירים ברחבי העולם, אי אפשר היה להחליף אותו. אז בשביל זה המציאו את טלאי האבטחה כמו SSL/TLS, שזה המנעול בדפדפן שבעצם מצפין את התעבורה מעל הפרוטוקול הפרוץ. שזה אומר שכשאתה גולש בדפדפן באתר שמתחיל ב-HTTPS, אתם משתמשים ב-HTTP על גבי TLS שמגן עליכם מפני נקודת התורפה של TCP/IP. מסיבות אלו בדיוק חשוב מאוד לא לגלוש באתרים ללא סמל מנעול שאינם מאובטחים. יאות לשקול להתייחס ברצינות לאזהרות הדפדפן שלכם.BGP (שיצא ב-1989), שנוצר גם הוא על בסיס אמון מוחלט. הפרוטוקול הזה מנווט את חבילות המידע בין ספקיות האינטרנט השונות בעולם, כמו סיסקו וכו'. אך מכיוון שאין בו אימות מובנה, כל נתב גדול יכול להצהיר הצהרה שקרית שהוא הדרך המהירה ביותר להגיע ליעד מסוים. דבר זה מאפשר לתוקפים או למדינות לבצע מתקפות מסוג BGP Hijacking ולנתב אליהם תעבורת רשת שלמה של מדינות אחרות כדי לצפות בה או לשבש אותה, וזה קורה גם היום.
DNS
קצת יותר מאוחר, בשנת 1983, המציא מדען בשם פול מוקאפטריס משהו שאפשר לכנות אותו כ"ספר הטלפונים של האינטרנט", ה-DNS. ה-DNS עובד בצורה כזאת: מחשבים בשביל לתקשר ביניהם, כפי שכבר אמרנו, צריכים כתובת IP שנראות ככה: 192.0.2.1. מעצם היותנו בני אדם קשה לנו לזכור רצפים ארוכים של מספרים, אבל מאוד קל לזכור את הדומיין google.com. אז מה עושים? פשוט מאוד: המשתמש מקליד כתובת אתר אינטרנט, המחשב תוך שבריר שנייה מתרגם זאת דרך DNS לכתובת דיגיטלית שהמחשב מבין, מבלי להצטרך לזכור רצפי מספרים ארוכים. זה מזכיר קצת את הדרך בה למשל נוצרה אסמבלי. עכשיו, יש בזה כמה בעיות: כאשר מחשב שולח בקשה לשרת DNS, הוא בנוי בצורה כזאת שהמחשב קיבל את התשובה הראשונה שהגיעה אליו חזרה מהשרת תוך כדי שהוא מתעלם מכל השאר. תוקפים יכלו להאזין לתעבורת רשת, לתפוס את הרגע שבקשה נשלחת, ולנתב תשובה מזויפת. אם התשובה המזויפת הייתה מגיעה שבריר שנייה למחשב לפני התשובה המקורית, המחשב היה מקבל אותה ללא כל עוררין, שכן מבחינתו הבקשה הראשונה שחוזרת היא הלגיטימית.בעיה נוספת היא בעיה שהתגלתה ב-2008 על ידי מומחה אבטחה בשם דן קמינסקי. קמינסקי גילה שאפשר לבקש שמות שלא קיימים, כמו example1, example2 וכן הלאה. מכיוון שהשמות האלו לא שמורים בזיכרון, שרת ה-DNS נאלץ לפנות בכל פעם מחדש לשרת המרכזי כדי לקבל תשובה. זה איפשר לתוקפים לשלוח אינספור בקשות ותשובות מזויפות בשנייה עד שהם הצליחו להחדיר לזיכרון השרת מידע כוזב שמשתלט על כל כתובת האתר. לצורך זה המחשבים עברו לשיטות הבאות: שליחת בקשות מאלפי פורטים שונים, ככה שיהיה בלתי אפשרי לנחש מספר סידורי, וגם הוספת חתימה דיגיטלית מוצפנת DNSSEC, שגם הוא, למרבה הצער, עדיין לא מיושם ברחבי העולם, מה שמותיר מיליוני מחשבים פרוצים לאנשים הנכונים. ובזמן האחרון נכנסו גם פרוטוקולים מודרניים כמו DoH, שמצפינים את הבקשות עצמן גם מפני הספקים.
IPv4
הדוגמה הבאה שרציתי להביא זה IPv4. IPv4 הוא פרוטוקול כתובות. הרי כמו שאנחנו יודעים, כל מכשיר שמחובר לאינטרנט צריך שיהיה אפשרות לתקשר איתו. התקשורת בפרוטוקול IPv4 הייתה בצורה כזאת: לכל מכשיר יש מספר מזהה באורך 32 סיביות שנראה ככה למשל: 192.168.1.1. ולפרוטוקול זה יש כמה בעיות: הוא מאפשר עד 4.3 מיליארד כתובות בלבד. בשנות ה-70 זה היה נראה המון, אבל כיום, כשכל בן אדם יש לו מספר מכשירים מלבד מכשירי IoT, זה מזמן לא מספיק (כמו הזיכרון נדיף, מי האמין בשנות ה-70 שיהיה צריך יותר מ-630 KB?). הטלאי לזה היה NAT, טכנולוגיה המאפשרת לנתב שלכם לתקשר באמצעות כתובת אחת מול האינטרנט ולחלק מספר כתובות פנימיות לכל מכשיר בבית. הבעיה: פתרון זה סירבל תעבורת רשת, דרש כוח עיבוד מהנתבים והקשה על תקשורת מקצה לקצה. והבעיה הכי גדולה: בעיית האבטחה. כש-IPv4 נוצר, הוא היה בשימוש של אוניברסיטאות וגופי מחקר ללא שום אבטחה מובנית, בדומה לפרוטוקולים הקודמים. אז היה את הטלאי IPsec, אם כי זה לא היה חלק אינטגרלי ביותר, מה שהקשה על האבטחה. לצורך זה עברו ל-IPv6, שמשתמש ב-128 סיביות, כולל אבטחה מראש וניתוב יעיל, אם כי רוב העולם משתמש בפרוטוקול הקודם עם טלאי NAT, עקב איטיות המעבר של ספקיות אינטרנט רבות, גם בארץ.JavaScript
כשג'אווה סקריפט נוצרה בשנת 1995, היא נכתבה בתוך 10 ימים בלבד (!) על ידי ברנדן אייך במטרה להפוך דפי אינטרנט לקצת יותר דינמיים, כמו להניע תמונות או לבדוק טפסים. אף אחד לא דמיין שעל גבי השפה הזו ירוצו אפליקציות ענק כמו פייסבוק, וורד, או מערכות בנקאיות. כדי לגרום לאינטרנט לעבוד מהר ובצורה מורכבת, יצרו אינספור ספריות, מנועים ומסגרות עבודה שיושבים אחד על גבי השני, כמו React, Node.js ועוד. דפדפן מודרני הוא כבר מזמן לא מציג דפי טקסט, אלא מערכת הפעלה מסורבלת (ממש כמו לינוקס...) שמנסה לתמוך בישן ליד חדש בצורת טלאים.SS7
פרוטוקול SS7 (Signaling System No. 7) פותח עבור רשתות הטלפוניה העולמיות. זהו הפרוטוקול שאחראי על ניתוב שיחות טלפון, הודעות SMS ואימות מכשירים סלולריים בכל העולם. גם הוא נבנה על בסיס אמון בין חברות הטלקום, ללא הצפנה או אימות כלשהו, מה שמאפשר גם כיום להאקרים לצותת לשיחות, ליירט הודעות SMS של אימות דו-שלבי, ולעקוב אחר מיקום של מכשירים בכל העולם בדיוק של מטרים. הטלאי לזה היה Diameter, וכמו שהזכרתי, בגלל תאימות לאחור, כמו הפרוטוקולים הדומים, גם זה לא מיושם מספיק, וגם אם כן, עצם העובדה שיש תאימות לאחור משאירה חורים. אמנם כיום פריצה לזה כמעט ולא אפשרית, אבל אם מישהו יצליח תיאורטית, הוא יכול לקרוא כל הודעת SMS, לנתב כל שיחת טלפון ולאכן מיקום של כל אדם בסנטימטרים.
לכן הפתרון הפשוט זה אפליקציות עם הצפנה מקצה לקצה, כמו וואטסאפ, טלגרם, סיגנל (המעולה).
בנוסף, גם עם כל שכבות האבטחה, יש, וזה קיים היום, גופים שמשחדים חברות סלולר במדינות עולם שלישי לתת להם גישה ל-SS7 העולמי (פריצה מרחוק כמעט ולא אפשרית).בכל מקרה, זה הקצת שאני יודע על כמה שהאינטרנט של היום הוא טלאים על גבי טלאים. אם זה הוסיף ידע למישהו, שמחתי לעזור (מצטער שלא ערכתי מספיק, אין לי די זמן לזה). אשמח להערות ולהארות, אם טעיתי או לא דייקתי במשהו - ספרו לי מה חשבתם.
@Nils-Sjoberg לא רק האינטרנט ככה, אלא הרבה הרבה דברים.
ובראש וראשונה זה ווינדוס שדורש היום כ"כ הרבה משאבים רק בשביל שנבנתה טלאי על גבי טלאי.
ואגב, איפשהו קראתי שפרוטוקול TCP/IP כבר היה בשימוש על ידי צבא האמריקאית בזמן השואה!! -
@Nils-Sjoberg כתוב יפה ומושך
די קשה להפסיק את רצף הקריאה.@אליעזר-לוי
שמח לשמוע באמת -
@Nils-Sjoberg לא רק האינטרנט ככה, אלא הרבה הרבה דברים.
ובראש וראשונה זה ווינדוס שדורש היום כ"כ הרבה משאבים רק בשביל שנבנתה טלאי על גבי טלאי.
ואגב, איפשהו קראתי שפרוטוקול TCP/IP כבר היה בשימוש על ידי צבא האמריקאית בזמן השואה!!
אתה יודע כמה מחזורי שעון ווינדוס מבזבז רק בשביל להציג חלון גרפי
כמו שאמרתי התשובה לזה שכל המערכות האילו כולל לינוקס אנדוריד וכו צריכות להתאים לכל חומרה אפשרית
קרנל לינוקס המקורי היה 10000 שורות בלבד כיום הוא מעל 30 מליון שורות קוד כי הוא רץ על כל דבר מIOT עד שרתי ממשלות
וכמובן אנדוריד היא בסיס לינוקס -
אתה יודע כמה מחזורי שעון ווינדוס מבזבז רק בשביל להציג חלון גרפי
כמו שאמרתי התשובה לזה שכל המערכות האילו כולל לינוקס אנדוריד וכו צריכות להתאים לכל חומרה אפשרית
קרנל לינוקס המקורי היה 10000 שורות בלבד כיום הוא מעל 30 מליון שורות קוד כי הוא רץ על כל דבר מIOT עד שרתי ממשלות
וכמובן אנדוריד היא בסיס לינוקס -
עד שרתי ממשלות
עד רכבי חלל של נאסא
@המלאך
עד טלפונים מהתקופה שקורנפלקס היה עולה 2 ב20 -
בהמשך לפוסט המצוין של אברהם גלסר, רציתי לשתף אתכם בקצת שאני יודע על איך עובד האינטרנט המודרני ולמה הוא טלאי על גבי טלאי. הטקסט נכתב על ידי בן אנוש בלבד, למרות שייתכן שזה נראה כמו AI.
הקדמה
האינטרנט המודרני נוצר לראשונה ב-1969 בבסיס בארה"ב, ברשת בשם ARPANET. היא הוקמה על ידי DARPA של משרד ההגנה האמריקאי על מנת לקשר בין מחשבים באוניברסיטאות. שני מדענים, וינט סרף ומדען מוכשר בשם בוב קאן, המציאו את TCP/IP, שהם מבין פרוטוקולי האינטרנט הבסיסיים ביותר כיום. פרוטוקולים אלו הגדירו כיצד נתונים נארזים ונשלחים ברשת. הם נוצרו על מנת להחליף את NCP, שהיה פרוטוקול אבטחה מוגבל ביכולת שלו לתקשר בין מכשירים ודי מיושן. ב-1978 פוצל פרוטוקול התקשורת לשניים: TCP אחראי על אריזת נתונים ובדיקת שגיאות, ו-IP אחראי על ניתוב כתובות. כמה שנים אחרי זה, ב-1983, רשת ARPANET חייבה את כל המחשבים המחוברים אליה לעבור לעבוד אך ורק עם הפרוטוקולים TCP/IP. אירוע זה ייצב את האינטרנט העולמי כיום.TCP/IP
עכשיו, מכיוון שאף אחד מאותם המדענים לא דמיין לעצמו כיצד האינטרנט ייראה אפילו עשור קדימה, הפרוטוקולים האלו (TCP/IP), שמהווים את ליבת האינטרנט, היו ללא שום מנגנון אבטחה או אימות מובנה, כי המידע בבסיסו הועבר בקובץ טקסט פשוט. מה שאיפשר לכל אדם בעל תוכנת סניפר להאזין למידע שעובר ברשת ולקרוא מידע רגיש כמו סיסמאות, פרטי אשראי וכו', או בצורה יותר מחוכמת – מתקפות מסוג MITM, Spoofing, או ניצול מנגנון לחיצת יד משולשת SYN FLOOD (הצפת השרת בבקשות חיבור, שזה סוג של DDOS), ואפילו גם להזריק קוד זדוני (TCP Session Hijacking).
יותר מאוחר, כשהאינטרנט הפך למסחרי ורץ כבר על מיליוני מכשירים ברחבי העולם, אי אפשר היה להחליף אותו. אז בשביל זה המציאו את טלאי האבטחה כמו SSL/TLS, שזה המנעול בדפדפן שבעצם מצפין את התעבורה מעל הפרוטוקול הפרוץ. שזה אומר שכשאתה גולש בדפדפן באתר שמתחיל ב-HTTPS, אתם משתמשים ב-HTTP על גבי TLS שמגן עליכם מפני נקודת התורפה של TCP/IP. מסיבות אלו בדיוק חשוב מאוד לא לגלוש באתרים ללא סמל מנעול שאינם מאובטחים. יאות לשקול להתייחס ברצינות לאזהרות הדפדפן שלכם.BGP (שיצא ב-1989), שנוצר גם הוא על בסיס אמון מוחלט. הפרוטוקול הזה מנווט את חבילות המידע בין ספקיות האינטרנט השונות בעולם, כמו סיסקו וכו'. אך מכיוון שאין בו אימות מובנה, כל נתב גדול יכול להצהיר הצהרה שקרית שהוא הדרך המהירה ביותר להגיע ליעד מסוים. דבר זה מאפשר לתוקפים או למדינות לבצע מתקפות מסוג BGP Hijacking ולנתב אליהם תעבורת רשת שלמה של מדינות אחרות כדי לצפות בה או לשבש אותה, וזה קורה גם היום.
DNS
קצת יותר מאוחר, בשנת 1983, המציא מדען בשם פול מוקאפטריס משהו שאפשר לכנות אותו כ"ספר הטלפונים של האינטרנט", ה-DNS. ה-DNS עובד בצורה כזאת: מחשבים בשביל לתקשר ביניהם, כפי שכבר אמרנו, צריכים כתובת IP שנראות ככה: 192.0.2.1. מעצם היותנו בני אדם קשה לנו לזכור רצפים ארוכים של מספרים, אבל מאוד קל לזכור את הדומיין google.com. אז מה עושים? פשוט מאוד: המשתמש מקליד כתובת אתר אינטרנט, המחשב תוך שבריר שנייה מתרגם זאת דרך DNS לכתובת דיגיטלית שהמחשב מבין, מבלי להצטרך לזכור רצפי מספרים ארוכים. זה מזכיר קצת את הדרך בה למשל נוצרה אסמבלי. עכשיו, יש בזה כמה בעיות: כאשר מחשב שולח בקשה לשרת DNS, הוא בנוי בצורה כזאת שהמחשב קיבל את התשובה הראשונה שהגיעה אליו חזרה מהשרת תוך כדי שהוא מתעלם מכל השאר. תוקפים יכלו להאזין לתעבורת רשת, לתפוס את הרגע שבקשה נשלחת, ולנתב תשובה מזויפת. אם התשובה המזויפת הייתה מגיעה שבריר שנייה למחשב לפני התשובה המקורית, המחשב היה מקבל אותה ללא כל עוררין, שכן מבחינתו הבקשה הראשונה שחוזרת היא הלגיטימית.בעיה נוספת היא בעיה שהתגלתה ב-2008 על ידי מומחה אבטחה בשם דן קמינסקי. קמינסקי גילה שאפשר לבקש שמות שלא קיימים, כמו example1, example2 וכן הלאה. מכיוון שהשמות האלו לא שמורים בזיכרון, שרת ה-DNS נאלץ לפנות בכל פעם מחדש לשרת המרכזי כדי לקבל תשובה. זה איפשר לתוקפים לשלוח אינספור בקשות ותשובות מזויפות בשנייה עד שהם הצליחו להחדיר לזיכרון השרת מידע כוזב שמשתלט על כל כתובת האתר. לצורך זה המחשבים עברו לשיטות הבאות: שליחת בקשות מאלפי פורטים שונים, ככה שיהיה בלתי אפשרי לנחש מספר סידורי, וגם הוספת חתימה דיגיטלית מוצפנת DNSSEC, שגם הוא, למרבה הצער, עדיין לא מיושם ברחבי העולם, מה שמותיר מיליוני מחשבים פרוצים לאנשים הנכונים. ובזמן האחרון נכנסו גם פרוטוקולים מודרניים כמו DoH, שמצפינים את הבקשות עצמן גם מפני הספקים.
IPv4
הדוגמה הבאה שרציתי להביא זה IPv4. IPv4 הוא פרוטוקול כתובות. הרי כמו שאנחנו יודעים, כל מכשיר שמחובר לאינטרנט צריך שיהיה אפשרות לתקשר איתו. התקשורת בפרוטוקול IPv4 הייתה בצורה כזאת: לכל מכשיר יש מספר מזהה באורך 32 סיביות שנראה ככה למשל: 192.168.1.1. ולפרוטוקול זה יש כמה בעיות: הוא מאפשר עד 4.3 מיליארד כתובות בלבד. בשנות ה-70 זה היה נראה המון, אבל כיום, כשכל בן אדם יש לו מספר מכשירים מלבד מכשירי IoT, זה מזמן לא מספיק (כמו הזיכרון נדיף, מי האמין בשנות ה-70 שיהיה צריך יותר מ-630 KB?). הטלאי לזה היה NAT, טכנולוגיה המאפשרת לנתב שלכם לתקשר באמצעות כתובת אחת מול האינטרנט ולחלק מספר כתובות פנימיות לכל מכשיר בבית. הבעיה: פתרון זה סירבל תעבורת רשת, דרש כוח עיבוד מהנתבים והקשה על תקשורת מקצה לקצה. והבעיה הכי גדולה: בעיית האבטחה. כש-IPv4 נוצר, הוא היה בשימוש של אוניברסיטאות וגופי מחקר ללא שום אבטחה מובנית, בדומה לפרוטוקולים הקודמים. אז היה את הטלאי IPsec, אם כי זה לא היה חלק אינטגרלי ביותר, מה שהקשה על האבטחה. לצורך זה עברו ל-IPv6, שמשתמש ב-128 סיביות, כולל אבטחה מראש וניתוב יעיל, אם כי רוב העולם משתמש בפרוטוקול הקודם עם טלאי NAT, עקב איטיות המעבר של ספקיות אינטרנט רבות, גם בארץ.JavaScript
כשג'אווה סקריפט נוצרה בשנת 1995, היא נכתבה בתוך 10 ימים בלבד (!) על ידי ברנדן אייך במטרה להפוך דפי אינטרנט לקצת יותר דינמיים, כמו להניע תמונות או לבדוק טפסים. אף אחד לא דמיין שעל גבי השפה הזו ירוצו אפליקציות ענק כמו פייסבוק, וורד, או מערכות בנקאיות. כדי לגרום לאינטרנט לעבוד מהר ובצורה מורכבת, יצרו אינספור ספריות, מנועים ומסגרות עבודה שיושבים אחד על גבי השני, כמו React, Node.js ועוד. דפדפן מודרני הוא כבר מזמן לא מציג דפי טקסט, אלא מערכת הפעלה מסורבלת (ממש כמו לינוקס...) שמנסה לתמוך בישן ליד חדש בצורת טלאים.SS7
פרוטוקול SS7 (Signaling System No. 7) פותח עבור רשתות הטלפוניה העולמיות. זהו הפרוטוקול שאחראי על ניתוב שיחות טלפון, הודעות SMS ואימות מכשירים סלולריים בכל העולם. גם הוא נבנה על בסיס אמון בין חברות הטלקום, ללא הצפנה או אימות כלשהו, מה שמאפשר גם כיום להאקרים לצותת לשיחות, ליירט הודעות SMS של אימות דו-שלבי, ולעקוב אחר מיקום של מכשירים בכל העולם בדיוק של מטרים. הטלאי לזה היה Diameter, וכמו שהזכרתי, בגלל תאימות לאחור, כמו הפרוטוקולים הדומים, גם זה לא מיושם מספיק, וגם אם כן, עצם העובדה שיש תאימות לאחור משאירה חורים. אמנם כיום פריצה לזה כמעט ולא אפשרית, אבל אם מישהו יצליח תיאורטית, הוא יכול לקרוא כל הודעת SMS, לנתב כל שיחת טלפון ולאכן מיקום של כל אדם בסנטימטרים.
לכן הפתרון הפשוט זה אפליקציות עם הצפנה מקצה לקצה, כמו וואטסאפ, טלגרם, סיגנל (המעולה).
בנוסף, גם עם כל שכבות האבטחה, יש, וזה קיים היום, גופים שמשחדים חברות סלולר במדינות עולם שלישי לתת להם גישה ל-SS7 העולמי (פריצה מרחוק כמעט ולא אפשרית).בכל מקרה, זה הקצת שאני יודע על כמה שהאינטרנט של היום הוא טלאים על גבי טלאים. אם זה הוסיף ידע למישהו, שמחתי לעזור (מצטער שלא ערכתי מספיק, אין לי די זמן לזה). אשמח להערות ולהארות, אם טעיתי או לא דייקתי במשהו - ספרו לי מה חשבתם.
-
להלן הטקסט ששלחת, מנוקד בצורה תקנית:
???
פוסט זה נמחק! -
פוסט זה נמחק!
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות