
הטקסט המלא של הדקות הראשונות בהרצאה «מבנה תעודה ב-SSL» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, בהרצאה הזאת אנחנו נבין בדיוק איך עובד SSL ואיך הוא מונה התחזות ולמה הוא כל כך כל כך חשוב. הרעיון של SSL זה להצפין את כל התקשורת וגם לבדוק מי מהצד השני, שזה שמהצד השני מצפין את כל התקשורת הוא מקור אמין.
ולמה הוא מקור אמין? כי מי שנתן לו תעודה דיגיטלית בדק אותו ואני סומך על האבא הזה שבדק אותו. ושימו לב לי בתוך המחשב אם אני אכתוב MMC ואכנס לתוך Add Remove Snappings שזה כלי ניהול כמו חגורה שלי עם כל הכלים ואני רוצה את הכלי של Certificates ויש פה Certificate לכל יוזר בנפרד ויש ברמת
מחשב לכולם ואני רוצה עכשיו ברמת מחשב לראות את הרשימה המשותפת יש לי פה בתוך הרשימה הזאת Trusted Root CA Trusted Root זה האבות האלו שכולם סומכים עליהם והמחשב שלי בפרט והרשימה הזאת מתעדכנת דרך Windows updates, דרך העדכונים של ה-Windows המחשב שלי סומך על המנפיקים האלו שהם בדקו כמו שצריך למי הם נותנים את התעודה
הם מבקשים ממך תעודת עסק, הם בודקים לך אימייל, הם מוודאים שאתה זה אתה והם אחראים כספית אם הם לא עשו את הבדיקה הזאת כמו שצריך אז התעודה בעצם משיגה שני דברים.
א', האבא שמנפיק לי את התעודה זה מישהו ידוע כמו חברת סימנטק לדוגמה, או וריסיין, זה חברות שכולם סומכים עליהם שהם בודקים למי הם נותנים תעודות ולא סתם מחלקים תעודות.
זה הדבר הראשון שאני יודע שמהצד השני גורם שאני סומך עליו, ואם הגורם הזה סתם הנפיק לעצמו תעודה ואני לא סומך עליו, תקפוץ להודעת אזהרה אדומה שאומרת תיזהר, התעודה הזאת ניתנה על ידי גורם לא ידוע.
עכשיו, כדי שהגורמים האלו יבדקו אותך וייתנו לך תעודה, זה גם עולה כסף, וזה עולה הרבה כסף, כן? זה כמה מאות דולרים עולה לכל שנה. וגם אתה צריך להוכיח שאתה זה אתה, וגם לשלם כמה מאות דולרים פר תעודה.
הם אחראים כלפי הלקוחות שהבן אדם שהם נתנו לו תעודה הוא באמת בן אדם אמיתי, ולידי, והחברה נורמלית. אז שוב אני חוזר, כשהקליינט מקבל מהשארת תעודה חזרה, שימו לב, הנה הוא מקבל בשלב שני, הוא ביקש בשלב הראשון תעודה ובשלב השני קיבל חזרה.
הוא בודק את הוולידציה שלה, שהתעודה עדיין בתוקף, שהיא לא נפסלה. אפשר לפסול תעודה, נניח התחלת לגנוב כסף, לאנשים יפסלו לך תעודה.
מה זה אומר יפסלו תעודה? יפרסמו אותה ברשימת הפסולים. תכף אני אראה לכם איפה זה. שהיא ב-Trusted, זה אומר שמי שהנפיק לך אותו נמצא אצלי ברשימה של אלו שאני סומך עליהם, שהיא חתומה דיגיטלית על ידי המנפיק, זה שהנפיק לי אותה חתם עליה דיגיטלית ואנחנו בסוף נחזור למה זה חתימה דיגיטלית.
אז בואו נראה את התעודה הזאת, בואו נראה איפה אני רואה את התעודה הזאת, לדוגמה באתר של פרקטיקיו, אני התחברתי פה, שימו לב, ב-HTTPS, כתבתי במפורש ואני לוחץ על האייקון של אינפורמיישן ואני יכול לראות פה את הסרטיפיקייט שהוא ולידי, שהוא חוקי.
קודם כל שהוא ניתן לאתר practical.com ואני נכנס לאתר PracticU.com, שלא יצא מצב שאני קיבלתי זכות לאתר PracticU.com, ואני פתאום מתחזה לבנק לאומי.
אז התעודה חייבת להיות אותו שם כמו שאתה מתחבר, זה לא תעודה להכל, זו תעודה רק לאתר מסוים, ואם אני ארצה להיות האקר עם התעודה הזאת, אז אני יכול להיות האקר רק על האתר של עצמי, אני לא יכול להתחזות לבנק, כי הדבדפן בודק שהשם פה והשם פה הם אותו דבר, הוא בודק שמי שנתן לי את התעודה זה חברה שנקראת Rapid SSL
ופה אנחנו יכולים לראות שלפרקטיקיו.קום נתנה אותו Rapid SSL שלהם נתן דיג'י סרט והדיג'י סרט ו-Rapid SSL נמצאים אצלי ברשימה של ה-Trusted שראינו פה. זאת אומרת שהמחשב שלי לא מקפיץ להודעה אדומה בגלל שהדיג'י סרט נמצא פה אצלי וגם אצלכם ובכל מחשב.
אם אני אמחק עכשיו את ערוץ EA הזה מהרשימה, אז תקפוץ להודעה דומה, שתגיד, תקשיב, התעודה הזאת הגיעה ממקור לא אמין. אז די ג'ירות האלו בדקו את חברת פרקטיקיו ונתנו להם תעודה.
ודבר שלישי, שהתאריך שלה עדיין לא פג תוקף. אתם רואים ביוני, בחודש השישי, עד שלישי לשישי, עד שלישי ליוני 2019, אני אצטרך לקנות בכסף עוד תעודה ולהחליף אותה בשרת.
אז בתעודה אנחנו בודקים שהיא ניתנה למקור המין על ידי גורם מתאים ומי שחתם על התעודה הזאת ומי שהנפיק אותה זה מישהו שמוסמך. בואו נראה מה יש בתוך התעודה עכשיו. בתוך התעודה אנחנו רואים פה שיש לה מספר סריאלי, מספר סידורי וככה אפשר גם לפסול אותה לפי המספר הזה.
באיזה אלגוריתם הצפנה הזה יש כל מיני שיטות הצפנה שאלגוריתם עצמו הוא לא סודי, הוא ידוע. מה שסודי זה המפתח ותכף נראה את המפתח. אישור זה מי נתן לי אותה Rapid SSL, זו החברה שנתנה לי אותה, באיזה תאריך היא נתנה לי? ב-17 לנובמבר 2018. עד מתי היא נתנה לי אותה? עד 3 ליוני 2019. עבור איזה שם אני רשאי להשתמש בתעודה הזאת?
רק עבור PracticU.com. אני לא יכול להיות בנק הפועלים ובנק לאומי. כל מה שאני אעשה לא נכון עם התעודה הזאת, זה לקפוץ הודעה אדומה לדפדפן ללקוחות שלי. וזה המפתח הפאבליקי, זה המפתח, שימו לב, 308201 זה המפתח שאיתו מצפינים הודעות שרוצים לשלוח אליי.
זה מפתח הצפנה שכדי לפתוח אותו צריך את הפרייבט קי שלי יש ורק לי יש אותו שזה גם מספר ארוך כל זה מספר ארוך שתאמינו ואם אנחנו נלך עכשיו לאתר אחר יהיה לו מספר ארוך אחר המפתח של הפאבליקי והפרייבט קי הם נוצרו ביחד בו זמנית וכל פאבליקי יש לו את הפרייבט קי שלו זה זוג מפתחות שהם צמודים
אחד לשני רק אחד אני נותן לאנשים בחוץ באינטרנט את הפאבליקי ואת הפרייבט קי משאיר אצלי ומי שלוקח את הפאבליקי הזה מתוך התעודה ומצפין לי איתו את ההודעות את השם והסיסמה את הלוגין רק אתר פרקטיקי יוכל לפתוח אותו כי רק לאתר פרקטיקי יש מפתח תואם שנקרא פרייבט קי אז למעשה
אנחנו מייצרים זוג מפתחות ואת את המפתח של הפאבליקי שולחים לנציגות העולמית, משלמים להם כסף, שיחתמו לי שאני זה אני. ככה מתבצע התהליך.
אז עוד פעם, אנחנו מייצרים זוג מפתחות ואז את הפאבליקי מביאים לרשות החותמת, לאבא הזה, שיחתום על המפתח שלי ואחרי שהוא חותם אני מתחיל להשתמש.
אבל את הפרייבט כי אני לעולם לא שולח לאף אחד. בואו נראה את הבקשה הזאת, איך זה מתבצע. אנחנו עכשיו בווינדרוס 10, נכון? בואו נתקין עכשיו בווינדוס 10, בהוספה עשרה של תוכנות, נתקין שרת IS, שרת Web, כאילו אנחנו אתר Web לגיטימי.
עכשיו, אתם חייבים להבין את הלוגיקה, בגלל זה אני מדגים לכם, שתראו איך זה עובד ממש. כאנשי אבטחת מידע, כאנשים שעובדים בתחום, אתם חייבים להבין איך SSL עובד על זה מבפנים, כי כל הזמן השתמשו בזה.
אז אני בווינדוס 10 רגיל, לא במשהו מתוחכם, לא מדבר איתכם על שרתים, להדליק אפשרויות של Windows ובתוך Windows 10 יש שרת IS, שרת ה-Web. אז אני אתקין אותו, לא משנה פה איזה רכיבים יש ואיזה תתי רכיבים יש, אנחנו לא הולכים להיכנס לכל זה, נעשה הכל ברירת מחדל ולא ניכנס פה לדקויות, יש לנו קורס מנהלי רשת ששם אני כבר מסביר
הרבה יותר. נתקין שרת Web שנקרא במיקרוסופט IS בעולם של לינוקס הוא נקרא Apache, ולמעשה יש הרבה שרתי Web, כל התפקיד שלהם זה להזין ללקוחות בפורט 8443 של SSL ולקבל תקשורת ולענות להם עם דפי האינטרנט.
עכשיו אנחנו רוצים לראות איך התהליך של SSL קורה וממש להבין אותו. אז עד שהוא מתקין לי, בואו נראה מה יש לנו פה במצגת. אז שלב ראשון, הקליינט ביקש להתחבר SSLית.
השלב השני, השרת ענה לו עם התעודה הזאת שראינו. הקליינט בדק שהתעודה היא ולידית, זה אומר היא בתוקף, היא לא פסולה, היא ניתנה על ידי גורם שהוא Trusted, שאפשר לסמוך עליו והוא נמצא אצלי ברשימת אלו שהמחשב הספציפי שלי סומך עליו, שהיא חתומה דיגיטלית ואף אחד לא שינה אותה,
שהיא שלמה, והשם Domain Name הוא תואם. אחרי שיש לי ודאות ואימון בתעודה הזאת, אני מייצר מפתח הצפנה סימטרי, איזשהו מפתח שאיתו גם סוגרים הודעה וגם פותחים הודעה. זה מפתח נורא פשוט, זה אלגוריתם נורא פשוט של פתיחת וסגירת הודעות, שזה אותו מפתח גם סוגר וגם פותח.
ועל ידי ה-Public Key הזה שקיבלנו בתעודה הדיגיטלית, אני מעביר את המפתח הסימטרי לשרת. עכשיו שימו לב, בשביל מה פתאום יש מפתח סימטרי?
אני אסביר לכם, בסוף התקשורת, שימו לב, זה השלב האחרון דרך אגב, בסוף התקשורת תהיה כולה מוצפנת במפתח סימטרי. למה? כי זה הרבה יותר מהיר, הרבה יותר פשוט להצפין למפתח סימטרי ולפתוח איתו.
אז אנחנו רוצים את כל התקשורת מוצפנת במפתח סימטרי. אבל יש לנו בעיה שאם האקר היה מאזין פה באמצע והיינו מעבירים את המפתח סימטרי הזה סתם בתקשורת רגילה בהתחלה בהתחלה של השיחה אז האקר יכול היה לפתוח את הכל.
הרי מה יש לנו? איזה בעיה יש לנו? להעביר את המפתח הסימטרי הזה בין הקליינט לשרת כשאקר יושב לנו על הקו ומאזין לכל התקשורת אז את המפתח הסימטרי יש לנו בעיה להעביר אותו ואנחנו מאוד רוצים שהתקשורת תהיה סימטרית אבל אנחנו לא רוצים פיזית לנסוע לבן אדם הביתה ולהביא לו usb עם מפתח סימטרי נכון אז כדי
שהאקר שמאזין פה לא יבין כלום את המפתח הסימטרי אנחנו מעבירים אותו על ידי public key וprivate key שזה למעשה מפתחות א-סימטריים מה זה אומר שזה מפתחות א-סימטריים?
זה אומר שאחד סוגר השני פותח public סוגר private פותח אם private היה סוגר רק public היה פותח למעשה יש זוג מפתחות שיש ביניהם קשר מתמטי שמאוד מאוד קשה לעלות על מפתח השני אם אתה יודע רק את הראשון יש ביניהם קשר מתמטי ודרך אגב אחד הדברים שהכי מפחדים מהם שהמחשבים
יהיו כל כך חזקים שיוכלו לפענח את זה מהר זה דרך אגב בעיה במחשבים הקוואנטום החדשים שככה עכשיו המציאו שהם יכולים למצוא את הקשר המתמטי ולפתוח את זה ויש כאלו שאומרים שממשלת ארצות הברית יש לה מלא מחשבים מחוברים ביחד והם יודעים בכל זאת לפתוח את ההצפנה ויש כאלו שאומרים שהם עדיין לא יודעים לפתוח.
אז אנחנו רוצים את כל התקשורת במפתח סימטרי שזה אותו מפתח שפותח סוגר כדי להעביר אותו לצד השני אנחנו משתמשים בפאבליקי שראינו כדי לנעול את המפתח הסימטרי הזה בהודעה מוצפנת, שרק מי שיש לו את הפרייבט-קי יפתח אותה.
ולפני שאנחנו עושים את כל התהליך הזה של הפאבליק-פרייבט-קי, אנחנו גם על הדרך בודקים שמי שבצד השני הוא אכן טראסטד, הוא אכן נבדק והוא נאמן והוא לא מתחזה.
אנחנו בודקים גם את הזהות של הצד השני וגם עושים איתו תקשורת שרק אני והוא נוכל להבין. למעשה, אני כקליינט מבקש ממנו את הפאבליק-קי, הוא מחזיר לי את הפאבליקי שלו, ואני עם הפאבליקי שלו שולח לו מפתח סימטרי.
אחרי ששלחתי לו מפתח סימטרי, אנחנו מתחילים תקשורת מוצפנת סימטרית. עכשיו תשאלו אותי, למה האקר לא יכול לתפוס את המפתח הסימטרי הזה, הצהוב הזה, שיצפין את כל ההודעות בעתיד?
כי המפתח הסימטרי הזה עטוף ומוצפן ומעורבב, ויש לו ג'יבריש עם הפאבליקי. הבנתם? הפאבליקי הזה שקיבלנו, שימו לב, הפאבליקי הזה שקיבלנו אותו, זוכרים? שראינו אותו?
בואו נראה אותו עוד פעם. הפאבליקי הזה, אנחנו לוקחים את המפתח הסימטרי שהלקוח ממציא לכל סשן בנפרד, לכל חיבור הוא ממציא מפתח חדש.
הוא לוקח את המפתח הסימטרי שאיתו אנחנו רוצים לנהל את כל הסשן שלנו, את כל השיחה, ומעביר לצד השני את המפתח ההוא מוצפן עם הפאבליקי הזה.
ברגע שאני מעביר אותו מוצפן עם הפאבליקי הזה, האקר שמאזין באמצע לא יכול לפתוח את זה. למה הוא לא יכול לפתוח את ההודעה? כי כדי לפתוח את ההודעה הוא צריך את הפרייבט שנשאר בשרת.
כל מה שמוצפן בפאבליק אפשר לפתוח רק עם הפרייבט. הפרייבט הרי נשאר בשרת ולעולם לא נשלח לאף אחד. זה מידע סופר סודי.
אז בגלל שזה מידע סופר סודי, האקר שמאזין על הקו לא יוכל בכלל להבין מהו המפתח הסימטרי שמוצפן על ידי מפתח אסימטרי. אז הבנו שSSL עושה שני דברים, מצפין הכל וגם בודק זהות עכשיו בוא נראה דוגמה בוא נראה מה קורה request finish הוא רוצה restart טוב בוא נעשה לו restart ואני אחזור אליכם אחרי ה-restart נראה איך כל התהליך
הזה קורה טוב אנחנו עכשיו אחרי ה-restart נעשה לבד תעודה נבקש לבד תעודה נראה איך זה נראה