
הטקסט המלא של הדקות הראשונות בהרצאה «פתיחת הצפנה של SSL - חלק 1» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, בהרצאה הזאת אנחנו נלמד איך לפתוח הצפנה של SSL, נראה אותה מוצפנת עוברת על הקו ונפתח אותה ואנחנו נכניס פה את התעודת זהות נניח 111 וכתובת אימייל ואנחנו רוצים לגלות תקשורת מוצפנת, שימו לב זה ב-HTTPs פה למעלה, תסתכלו למעלה טוב טוב, זה ב-HTTPs ואני רוצה לגלות את התקשורת
המוצפנת הזאתי, בואו נעשה את זה [email protected] לפני שאני לוחץ אוקיי ושולח את זה לשרת בצורה מוצפנת, אני מפעיל ווייר שארק שיתפוס לי את הפאקטים.
אבל לפני שאני מפעיל ווייר שארק, אני רוצה להגיד לדוודפן שיתפוס את כל המפתחות ההצפנה מתוך הזיכרון לקובץ. אז אני עושה לו תיקיית לוג ריקה והדוודפנים בודקים במשתני סביבה האם יש משתנה מסוים שהם צריכים. תכף אני הולך להראות לכם את המשתני סביבה האלו.
אתם רואים פה זה משתנה סביבה שימו לב משתני סביבה אלו קיימים בכל פרוצס בכל תוכנה שמערכת הפעלה מריצה כדי לראות אותם ויזואלית אנחנו נשתמש בפרוצס של CMD של שורת פקודה כי שם נוכל ממש ממש לראות אותם אבל הם קיימים בכל תוכנה שמורצת כולל הדפדפנים פשוט כדי להראות לכם אני עושה את זה דרך CMD בואו נראה אותם run וניכנס ל-CMD רגיל נבין מה זה משתנה סביבה
אם אתם כותבים set זה כמו משתנה בזיכרון שיש לו איזשהו ערך windir שווה לערך כזה user profile שווה לערך כזה אתם רואים יש הרבה משתני סביבה שעוזרים לנו ולתוכנות האחרות למצוא את הנתיב לדוגמה לפרוגרם פיילס איפה הן מותקנות כמובן שאפשר היה ללכת לרג'יסטרי וגם שם למצוא את המידע הזה פשוט משתני הסביבה האלו היו עוד לפני הרג'יסטרי האמת האמת שהם כאן עוד מימים של
הדוס עוד לפני שהווינדוס הייתה מערכת הפעלה הרי בהתחלה Windows הייתה כמו תוכנת עזר בתוך מערכת הפעלה של הדוס. משתנה הסביבה זה משתנים שהמערכת מקימה וגם אנחנו יכולים לעשות משתנה סביבה משלנו שיעזור לנו.
לדוגמה, set AA שווה 111. ואז כשאנחנו נעשה סט אנחנו נמצא פה שיש משתנה סביבה AA ואפשר להשתמש בו, לעשות אחוז AA. זה משתנה בזיכרון שעובד ב-CMD בעיקר שבא לעזור לנו. עכשיו אנחנו צריכים להוסיף לזה עוד משהו כדי שדבדפן ידע שאנחנו רוצים לעשות דיבאג.
בואו תראו, הדבדפן יודע משהו מאוד מאוד מסוים שהוא מחפש, SSL key log file, כך הוא מחפש את זה. ואנחנו נגיד לו שSSL key log file באיזה תיקייה הוא הולך להיות, ואנחנו נציין לו את הערך, לאן לרשום את כל הSSL key log file.
עכשיו, המתכנתים של הדבדפן בודקים את הערך הזה, כותבים לשם את כל המפתחות ההצפנה של SSL, שה-SSL החדש נקרא TLS דרך אגב. אחרי שאני עשיתי אוקיי, אנחנו עכשיו נלך ונבדוק שהוא באמת מופיע. עכשיו אם תעשו פוסט, אתם תראו שהוא לא מופיע.
אנחנו צריכים לסגור אותו ולפתוח אותו מההתחלה, את ה-CMD, ועכשיו אנחנו צריכים לראות את המשתנה סביבה הזה.
SSL key log file, ואז יש לנו את המשתנה סביבה הזה. עכשיו אני יכול להפעיל דפדפן, אנחנו נסגור ונפתח את הדפדפן עוד פעם, כי יכול להיות שהוא קורא את הערכים האלו רק כשאתה מדליק אותו.
שהתקנתי קובץ הגדרות בhard disk או איזשהו משתנה סביבה, יכול להיות שהוא פשוט לא קרא אותו. נעשה עוד פעם 1,1,1, בואו נעשה פעם 2,2,2 ונעשה פה aa.strudel.gmail.com.
זה אנחנו רוצים לשלוח במוצפן ולהגיד לו שישים את המפתחות ההצפנה בקובץ כדי שנוכל לפתוח את זה. אנחנו נראה את זה גם מוצפן וגם לא מוצפן.
כמובן שהאקר לא יכול לעשות את זה, פעולה כזאת לתפוס את כל המפתחות יכול לעשות רק לקוח קצה אמיתי. המטרה בסרט הזה זה לא לפרוץ את ה-SSL, אלא להבין את ה-SSL.
איך הוא עובד מאחורי הקלעים, מה קורה שם בדיוק. סרט על פריצת SSL יש לנו בנפרד על SSL Strip. נתחיל לתפוס את כל הפאקטים, ולפני שאני אתחיל, אתם יודעים מה? אני אעשה לכם עוד הדגמה.
אנחנו רוצים הרי להיות מומחים ולהבין הכל. ופה נעשה ARP מינוס D, נמחק את כל הטבלת ה-ARP, וגם נעשה IP config flash DNS, גם נמחוק את כל מה שהוא יודע מה-DNS, ונראה גם את השאילתה ל-DNS וגם את השאילתה של ה-ARP.
נכון, לפני שמתחברים צריכים לגלות למי להתחבר, מי זה practicu.com, מה ה-DNS ענה לנו, וגם לגלות את ה-MAC של ראוטר שלי, כדי שהראוטר ירים את הפאקט.
אז אני רוצה להראות לכם גם איך המערכת מזהה את הראוטר וגם איך מזהה את ה-DNS. אז נינקינו את הכל, עושים כניסה, פרטים שגויים, אבל אותי זה לא מעניין, מעניין אותי הפאקטים.
ככה זה נראה, זה מה שעובר על הכבל, ואנחנו מחלקים כל שמונה כאלו. בתים הראשונים זה בעצם ה-MAC של היעד. הבתים הבאים זה ה-MAC של ה-Source. אחרי זה מוסבר מה הולך להיות אחרי ה-MACים.
הולך להיות תקן של IPv4, IP גרסה 4, יכול להיות גם IPv6 שיש לו תקן אחר ויהיו לו שדות אחרים. למה הוא צריך את זה? כדי להבין את מה שהולך להיות אחרי זה.
שימו לב, מה שהולך להיות אחרי זה זה זה. איך להבין את זה? מה זה ה-01100 הזה? איך הוא מבין את זה? בזכות זה שלפני כן אמרנו לו, תקשיב, תפרש את זה לפי החוקים של IPv4 ואז הוא מסתכל על זה והוא מבין איך לפרש את התקשורת הזאת.
עכשיו אם זאת הייתה תקשורת לא תקנית או מוצפנת הוא לא היה מבין איך לפרש את זה כי זה מה שעובר על אחוז 0.1.1.0.1 בואו נראה סתם מה זה לדוגמה הסיבית הבית הראשון אומר שזה באופן כללי IPv4 אני IPv4 כביכול יש פה כפילות זה השכבה הקודמת
אומרת שהולכת להיות IPv4 ופה השכבה החדשה שהוסיפה את הסיביות לפאקט שנשלח ברשת אומרת תקשיבו אני IPv4 אז יש פה איזושהי כפילות והלאה והלאה והלאה יש פה עוד מידע לדוגמה שאנחנו מדברים מ-IP כזה שזה IP המקור ואנחנו רוצים להתקשר ל-IP היעד הזה אחרי זה גם כן יש אחריי מה הולך להיות אחרי ה-IP? הולך להיות פרוטוקול של TCP וקם האורך
של כל הפאקט שהוא ידע איפה הוא מסתיים כל הפאקט כי אחריו יתחיל פאקט הבא חוץ מזה שהוא צריך לדעת יש לו גם איזשהו סימן של סנכרון כזה למקרה שהוא הלך לאיבוד אז יש לו כאלו תווים שמפרידים בין פאקט לפאקט, תווי סנכרון על הקו.
לפני שאני אמשיך לחפור אני רוצה גם להגיד לכם עוד משהו חשוב. אנחנו לא אוהבים להציג את זה ככה 0, 0, 1, 0 לדוגמה. אנחנו רוצים לקחת כל 4 ולפרק אותם ל-XA.
XA זה מספר כמו 1, 2, 3 רק עד 16. למה עד 16? כי כל ארבע סיביות יכולות להצר 16 אפשרויות. אז במקום לרשום דבר כזה, אני הייתי רושם פה 1, 2 אין לי, 4 יש לי. אז הייתי רושם פה מספר 5. אז זה היה 0, 0, 5, 0.
זאת אומרת, כל ארבע אני מפרק אותם לתו 1, אבל לא ישרוני עד 9, אלא ב-X עד 16. למה עד 16? כי יש 16 וריאציות. אז איך אני אכתוב לדוגמה 10? אני במקום מספר 10, אני אכתוב אות A, במקום 11, B, וככה עד אות F.
לדוגמה, מה זה זה? בוא נעשה את זה, נפרק את זה לשני חלקים, ארבע וארבע. זה הערך שלו, של הראשון, זה אחד, זה שתיים שהוא חסר, וארבע, זה גם חמש.
מה זה זה? זה אחד, שתיים, ארבע, ושמונה חסר. אחד, שתיים, ארבע, זה שש. אז זה יהיה שש, זה יהיה חמש, וזה יהיה חמש ואפס. עכשיו שימו לב מה אני אומר לו, תציג לי את זה, את אותו דבר שעבר על הכבל, רק בצורת האקסה.
והנה אנחנו רואים שהוא אותו דבר מציג לי אפס, אפס, חמש, אפס, חמש, שש. ככה זה כתיבה מקוצרת של כל הסיביות האלו. עכשיו הוא לוקח את החמישים הזה באקסה ומנסה לפרש את זה לטבלת אסקי.
טבלת אסקי זה לכל אות יש מספר. אז אנחנו רואים שלדוגמה מספר חמישים זה אות p, מספר חמישים ושש זה אות v. זה תקן איך מייצגים אותיות במחשב, שתדעו מה זה הדבר הזה פה.
עכשיו אף אחד לא אמר שאנחנו עובדים בפאקט הספציפי הזה לפי תווי אסקי, לפי התקן הזה. יש מלא תקנים איזה מספר לשייך לאיזה אות, אבל פה הוא סתם מנסה כי זה תקן ידוע. בואו נראה מה זה ASCII טייבל.
טבלת ASCII זה איך לייצג כל אות במספר. זאת אומרת, נניח אני רוצה אות P, שימו לב, אות P. הנה, אתם רואים, זה 50 באקסה ו-80 במספרים שלנו. אתם רואים, בדצימלי אות P זה 80, אבל כשאנחנו כותבים באקסה אותו מספר, פשוט אחרי 10 ממשיכים עם אותיות ABCDEF, אתם רואים, הנה, אתם יכולים לראות פה עד 15F, ו-16 זה כבר מספר 10.
למה ככה? כדי שיהיה נוח להעביר אחד לאחד, כל ארבע תוויות זה 16 אפשרויות, זה בדיוק אות אחת. טוב, אחרי שהבנו איך עובד הווייר שרק, הבנו שזה בעצם הניסיון כושל שלו, במקרה שלנו, לתרגם את המספרים האלו לאותיות.
למה זה כושל? כי אין לזה באמת משמעות, כי זה כתובת מאק, כן, זה כתובת מאק, זה מספר. עכשיו, אם הייתי שולח קובץ טקסט, או ב-HTTP שולחים טקסט על הקו פתוח, אז הייתה לי איזו משמעות לפירוש הזה, אז בקיצור לעמודה הזאת לא להתייחס.
אחרי שהבנו מה זה הדבר הזה, הבנו שכל שכבה מפורשת לפי התקן, בואו נראה את השכבות, אז יש לנו את השכבה הראשונה שזה המאקים, ברמה הפיזית איזה כרטיס רשת אמור להרים את זה ולאיזה כרטיס רשת צריך לענות, זה מה שמעניין את הכרטיסי רשת, אחרי שהם הרימו את הפאקט שזה הראוטר, הוא מעביר את זה למערכת ההפעלה לשכבת ה-IP ששכבת ה-IP לדוגמה יש לה צ'ק סאם שכל המידע
מגיע תקין האם זה יתפצל לחלקים קטנים כי ראוטר לא יכול להעביר פאקט גדול ויש פה עוד כל מיני שדות שכבת ה-IP אחראית על ניתוב בין הראוטרים היא אחראית על סורס IP דיסטנשן IP אני אישית אוהב לדמות את שכבת ה-IP לנהג משאית שלוקח חבילות בלי לדעת מה יש שמה וכל התפקיד שלו זה לנסוע בכבישים בצמתים
ולהגיע לכתובת היעד ולמסור שם את החבילה. הוא לא מבין מה שיש. כל מה שהוא אחראי זה רק על תעבורה בין הצמתים, בין הראוטרים.
בואו נעבור לשכבת ה-TCP, והשכבת של TCP זה כמו מנהל מחסן שמחלק את כל המידע שהוא קיבל משכבה למעלה למנות קטנות, ממספר אותם ומוודא שהכל הגיע ליעד בסדר הנכון.
הוא עובד מול מנהל המחסן בצד השני, מול TCP בצד השני. אז השכבה הבאה זה TCP UDB שאחראית על תוכן ועל מידע ולא איך הוא יגיע לשם. מי שאחראי על הדרך להגיע ליעד זאת כבר שכבת ה-IP, זה הנהגים.
המנהל מחסן צריך לחלק את הכל לחלקים, למספר ולוודא שכל החלקים הגיעו ואם לא הגיעו לשלוח את זה שוב. זה נקרא לנהל שיחה מסודרת בין שני הצדדים. סשן מסודר. סשן זה אומר שלחנו מידע וקיבלנו אישור על הגעה.
זה נקרא סשן מסודר וזה תפקידו של TCP אפשר גם לא לנהל שיחה מסודרת ולא לוודא הגעה זה נקרא UDP אז יש בעצם שני סוגים של המנהלים TCP ו- UDP בוא ניכנס פנימה לתוך ה- TCP ונראה מה יש שם בפנים הנה אתם רואים היא אומרת שהפאקט הספציפי הזה הוא 2580 2580 זה כמות הבייטים שהוא העביר בשיחה המסודרת הזאת עכשיו שימו לב זאת שיחה מספר 14 שזה
המספור הפנימי שלו, האמת שאיך הוא יודע את המספור הפנימי של זה? סליחה, 14, כי זה לא כתוב בשום מקום. מחברים source port, את הכתובת של התוכנה המסוימת, איזה תוכנה שלחה את זה, כל תוכנה תופסת לעצמה port מסוים.
נניח דפדפן רוצה בו זמנית לשאול שני שרתים, תביא לי תמונה מפה, תביא לי תמונה משם, תביא לי פרסומת, במקביל הוא שואל כמה שרתים מידע לדף שלו, כל תקשורת מול כל שרת תופסת port מסוים.
זאת אומרת פורט זה בעצם מזהה של התוכנה ואפילו מזהה בתוך התוכנה בדיוק מה ביקשתי. אז אתם תראו שאפילו פנייה בדבדפן רגיל מייצרת הרבה פורטים, פותחת הרבה פורטים, כי הוא מתקשר במקביל מול הרבה מקורות.
אתם יכולים דרך אגב לראות את זה פה ב-F12 בדבדפן, אם אתם תלכו לצורך F12 יש לכם פה כלי ניהול ויש פה נטוורק, ואם אני אעשה פה Enter אתם תראו את כל מה שהדבדפן שולח.
אז זה כמו סניפר של הדבדפן עצמו. אתם יכולים לראות פה שכמה פניות הוא עושה, כל אחד כזה זה בקשה שלו לאיזשהו שרת. אתם יכולים גם לראות פה את הבקשות עצמם. לדוגמה הראשונה זה תן לי את העמוד הזה.
אחרי שהוא הביא לו את העמוד הוא אומר תן לי את ה-png הזאת, את התמונה הזאת. זאת אומרת, איך שעשיתי פנייה הוא קיבל דף אחד והתחיל להשלים חלקים. השילוב הזה של IP מקור ופורט מקור, IP יעד ופורט יעד זה בעצם המזהה הייחודי של תקשורת שגם נקרא סורקט.
וויירשארק עושה לי טובה וסופר לי כמה כאלו ייחודיים היו מאז שהתחלתי לתפוס את הפאקטים אה, למה אנחנו רואים פה? פה אנחנו רואים כמה בתקשורת הזאת שזה IP מקור פורט מקור IP עד פורט יעד החיבור הזה, השיחה הזאת מספר 14 במקרה של התפיסת פאקטים הזאת כמה בתים עברו בה אז עברו בה 2580 בתים זה לא אותו מספר לשני הצדדים זאת אומרת קליינט
יכל לשלוח יותר פאקטים או פחות פאקטים והשרת שלח יותר לדוגמא קליינט יכל לעשות גט אחד והשרת הביא לו מלא מלא מלא עמודים או מלא מלא מידע. את המלא מלא מידע מפצלים לכמה פאקטים.
זה בית מספר 2580 שאני שולח לך.