[Powered by Google Translate] [שבוע 10] [הדוד י מלאן] [אוניברסיטת הרווארד] [זה CS50.] [CS50.TV] הכל בסדר! זה CS50 אבל לא לעוד הרבה זמן. זו היא ההתחלה של שבוע 10. ביום רביעי יש לנו שלנו החידון, ולאחר מכן ביום שני הבא יש לנו עוגה חגיגית כפי שאנו מגיעים להשלמת המעגל כל הדרך חזרה מהשבוע אפס. היום, אנחנו מדברים על אחד הנושאים החביבים עליי, למען אמת - זה של אבטחה ופרטיות, ואת ההשלכות של כל החומרה והתוכנה שכולנו משתמשים בימים אלה. אם להיות כן, יש הרבה איומים בחוץ שאם לא ממש עצר אותך לחשוב עליהם, הם בעצם די מרתיעים. מקרה לדוגמה - אם מישהו מכם אי פעם שהוריד פיסת התוכנה מהאינטרנט והתקין אותו במחשב שלך, שעוסק במידה רבה של אמון, נכון? אין שום דבר שמנע סקייפ, או כרום, או כל פיסת התוכנה התקנת על המחשב שלך, מפשוט למחוק את כל הקבצים בכונן הקשיח; מלהעלות את כל הקבצים בכונן הקשיח שלך לשרת של איזה בחור רע; מקריאה כל האימיילים שלכם; מליירט את כל המסרים המיידיים שלך. כי המציאות היא היום עם רוב מערכות הפעלה המודרניות באמת אין הרבה של קיר בין תוכנות שאנו מתקינים, ואתה ואני פחות או יותר רק סוג של הצלבת האצבעות שלנו ולוקח על אמונה שאפליקציה שהורדנו בחינם, או שדבר זה 99 הסנאט, הוא למעשה לב לחלוטין. כפי שראינו עד ג', ועכשיו PHP ו-JavaScript אבל, עם יכולת זו כדי להביע את עצם על ידי תוכניות, אתה יכול לעשות כל מה שאתה רוצה עם תכנית שמשתמש עצמו יכול לעשות. לכן, היום אנחנו מתמקדים בנושא זה - לא רק איומים אלא גם הגנה. אכן, בעולם של ביטחון באופן כללי, יש סוג של המשחק הזה של חתול והעכבר, ואני מעז לומר את הרעים כמעט תמיד יש לו רגל. כשזה מגיע לניצול של חומרה ותוכנה במחשבים האישיים שלנו, אנחנו צריכים להבין שאיש רע פשוט צריך למצוא טעות אחת פשוטה - 1 לנצל, באג אחד - בפיסת תוכנה שכתבנו או שמותקן כדי לו או לה להשתלט על כל המערכת שלנו. לעומת זאת, אנחנו - החבר 'ה הטוב - צריכים לתקן ולתקן את כל הבאגים האלה ולהימנע מכל החולשות האלה. וכך, אני מעז לומר באופן כללי, את הרעים יש את היתרון. מה שיעורים כאלה והשיעורים הבאים הם באמת על לא על ללמד אותך איך לנהל את הקרבות שהרעים האלה לעשות, אלא על איך להגן על עצמך או לפחות איך לקבל החלטה מחושבת שכן, אני יודע שזה חתיכת תוכנה אכן יכולה לקרוא כל אחד מהמיילים שלי, אבל אני בסדר עם זה בגלל הערך שהוא מביא אותי מצד השני. אני מאוד שמח להיות הצטרפתי 2 של האנשים החכמים ביותר שאני מכיר - רוב אודן ונייט Hardison. רוב הוא עומד לקחת אותנו לסיור ברמה הנמוכה ביותר של תגי ביטחון - זה של המהדר שעד עכשיו, כולנו נגיע לאהבה ואמון. רוב אודן. [מחיאות כפות] [רוב] בסדר. הדוד לקח את כל הנאום שלי פחות או יותר שאני הולך להציג ב, אבל - לפני מספר שבועות, שראית בדוגמא של התקפת חוצץ הצפה וזה דוגמה של פריצת האקרים לתוך חתיכת חלק מתוכנה שהם לא אמורים להיות פריצה ל. הצד השני של זה לפעמים יש לך תוכנה שהיא זדוני בפני עצמו. זה אפילו לא צריך להיות פרוץ. מי שכתב את התוכנה שרוצה לחתוך אותך. בואו פשוט לקפוץ ישר לתוך קוד, לקיחת מבט "login.c". הנה, תכנית טיפשית שמאמתת את שם משתמש וסיסמא של שילוב. כאן אתה בהחלט צריך להיות מקבל בנוח עם C שוב לחידון. ראשית, אנחנו משתמשים כדי לתאר את מחרוזות שם המשתמש, אז אנחנו משתמשים במחרוזת להגיע לאחוז את הסיסמה, ואז יש לנו כמה בדיקות טריוויאליות של ממש, הוא שם המשתמש "לשדוד"? והאם הסיסמה "thisiscs50"? או, הוא שם המשתמש של "טומי" והסיסמה "i <3javascript"? אם אחד מאלה הוא פני דברים,  אז אנחנו פשוט הולכים להדפיס "הצלחה", ולאחר מכן יש לנו גישה. אחרת, אנחנו הולכים להדפיס "חוקי התחברות" ואז, כמובן,  מאז הזיכרון של malloc מחרוזות הסקיצה, אנחנו שם משתמש וסיסמא חינם. זוהי תכנית התחברות טריוויאלי, אם אתה חושב על כאשר אתה נכנסת למכשיר ו, זה די דומה - או אפילו להיכנס למחשב שלך - יש רק איזה תכנית התחברות אשר נותנת לך גישה. הנה, אנחנו במקרה יש בקוד 'לשדוד', 'thisiscs50 "," טומי "," אני <3javascript', אבל כנראה יש איזה קובץ במקום כלשהו במערכת ההפעלה שלך שבו יש רשימה של שמות משתמשים שיכולים להתחבר למערכת ורשימה של סיסמות משויכות לשמות משתמשים אלה. בדרך כלל הם לא רק הסיסמות מאוחסנות בטקסט כזה. יש סוג מסוים של הצפנה, אבל זה יעשה לדוגמא שלנו. היא התקרבה אלינו המהדר - זה הולך להיות מאוד פשוט. אנחנו צריכים לציין לפחות חלק קובץ שאנו רוצים לקמפל, והנה - קווים אלה פשוט קוראים קובץ. הוא קורא את הקובץ כולו למאגר אחד גדול, ואז אנחנו null-לסיים חיצנו כמו תמיד, ולבסוף פשוט לקמפל את הקובץ. אנחנו לא הולכים להסתכל על איך לקמפל מיושמים בפועל, אבל כרמז, זה פשוט קורא קלאנג. אנחנו הולכים להשתמש בתכנית זו כדי לקמפל דברים במקום קלאנג. אחת בעיות שאנחנו מתחילים עם זה שאנחנו רואים אנחנו רוצים לקמפל המהדר שלנו, אבל אם אנחנו לא הולכים להשתמש קלאנג, אני לא יודע מה אני הולך להדר עם. זוהי בעיה כללית ידועה כמנוף. אז, רק הפעם, אני הולך להשתמש קלאנג לקמפל המהדר שלנו. אם אתה חושב של GCC וקלאנג - תוכניות אלה, המהדרים האלה כל זמן מתעדכנים, והמהדרים הללו מחושבים באמצעות GCC וקלאנג. צלצול הוא פשוט גדולה C או C + + תכנית אחת, כך המהדר הם משתמשים כדי לקמפל כי הוא קלאנג. כאן, עכשיו, אנחנו רק הולכים להיות באמצעות מהדרנו לקמפל המהדר שלנו, ואנחנו אפילו יכולים לומר - '/ מהדר. "," compiler.c', 'compile.c', '-o מהדר ". הודעה זו הפקודה המדויקת רצתי לפני - פשוט להחליף קלאנג עם '. / מהדר ". ועכשיו יש לנו מהדר אחר, אבל זה בדיוק אותו הדבר. זה פשוט קורא קלאנג. אנחנו הולכים להשתמש במהדר שלנו כדי לקמפל תכנית ההתחברות שלנו. אוקיי - "כניסה / מהדר login.c-O.". לכן, התייחסות לבלתי מוגדרת "GetString". קבל "lcs50". אוקיי. אז עכשיו יש לי תכנית ההתחברות שלנו. מפעיל אותו - תקבל "הזן את שם המשתמש שלך". דוגמה אחת הייתה שודדת אותו. אנא הכנס את הסיסמה שלך - thisiscs50. והצלחה! יש לי גישה. מפעיל אותו שוב ולהיכנס כמה סיסמא לא חוקית - או שם משתמש וסיסמא לא חוקי - כניסה לא חוקי. אוקיי. שום דבר מעניין בזה עד כה. אבל, בואו נסתכל על כניסה שוב - וזה הולך להיות קצת דוגמה טריוויאלית, אבל בואו נוסיף פה עוד ואומרים, אם אחר ((strcmp (שם משתמש, "האקר") == 0 && strcmp (סיסמא, "LOLihackyou") == 0)) אז עכשיו, printf ("Hacked כעת יש לך גישת \ n!".); בסדר. ליקוט זה - מהדר login.c-o-כניסת lcs50 - כעת פועל כניסה - ואם אני משתמש בשם המשתמש שלי ההאקר והסיסמה LOLihackedyou - האם אני מקליד את זה לא נכון שם קודם? בlogin.c-ihack - אני אעשה פרוצים כי אני חושב שאני עושה את זה מאוחר יותר. אוקיי. Recompiling. הפעלה חוזרת - האקר - LOLihackedyou - Hacked! כעת יש לך גישה. לא נראה שיהיה הרבה הבדל בגלל זה אותו הסימון המדויק שאני עושה לשמות משתמש וסיסמות אחרים. חוץ מזה, הדבר הגדול הוא שאם אנשים אחרים מסתכלים על זה login.c-- אומר, אם אני עובר את זה לשותף שלי, והם פותחים את הקובץ הזה, והם קוראים את זה, הם יראו - בסדר, למה יש לך את השורות האלה של קוד כאן? וברור שזה לא משהו שצריכה להיות בתכנית שלך. בתוכניות מסוימות - כמו כל תוכנת קניינית שאינה קוד פתוח - אתה לא יכול לראות את השורות האלה של קוד. משהו כמו סקייפ או משהו - לכל מה שאתה יודע, סקייפ היא במחשב שלך ויש רק כמה שילוב ספציפי שם משתמש-סיסמא אשר להתחבר לסקייפ בצורה מסוימת. אנחנו לא יודעים על זה, ואנשים לא יודעים על זה, כי הם לא מקבלים לקרוא sourcecode לראות שיש החור הזה. מה שאנחנו קוראים לזה - למרות שזה לא דוגמה מאוד חכמה - זה נקרא דלת אחורית. אם אתה חושב על הדלת האחורית של הבית שלך. כאן, אם אני מאמת עם 'לשדוד' את שמות המשתמש או 'טומי' זה יהיה כמו שימוש "הדלת הקדמית". זאת הדרך שאני אמורה מאובטח למערכת. אבל אם אני נכנסתי עם שם משתמש וסיסמא זה - אז זה באמצעות "דלת האחורית". זה לא היה מכוון הדרך להיכנס לתכנית, אבל זה עדיין עובד. ואנשים בכלל לא אמור לדעת על דלתות האחוריות אלה. אנחנו הולכים לשפר את זה. בואו נחזור לזה login.c המקורי שלנו, ובואו נסתכל על המהדר החדש שלנו. אוקיי. הכול כאן למעלה הוא בדיוק אותו הדבר. אנחנו קוראים את הקובץ כולו למאגר. כל דבר כאן למטה הוא אותו הדבר. אנחנו פשוט חברנו את הקובץ. אבל עכשיו יש לי זה גדול אם בפה שאומר, אם הקובץ שאני במקרה שהם עורכים הוא login.c, אז אני עושה משהו מיוחד. מהו משהו מיוחד ש? אני רואה כאן איזה מייתר נקרא 'גרזן', ומסתכל על הקווים האלה של קוד - אלו הם את שורות קוד - אני מניח שעשיתי שימוש 'ihack' ולא 'ihacked' לפני - מסתכל על השורות האלה של קוד, הם הקווים המדויקים את הקוד שהיה לי בlogin.c לפני. אבל עכשיו, במקום שיש להם בlogin.c, אני הולך להכניס אותם למהדר שלי. אלו הן השורות של קוד שאני עומד רצונך להוסיף לlogin.c. שורות אלה של קוד - מקור החיץ שנערך login.c כבר לא הולך להיות גדול מספיק כי עכשיו אני רוצה גם להכניס את זה גרזן באמצע התכנית שלי. כל זה עושה הוא יצירת חיץ חדש שהוא גדול מספיק - גם לקובץ המקורי וקווים הנוספים של קוד - הגרזן - שאני רוצה להכניס לשם. הנה משהו ששם לב - char * דפוס = "/ / מאפשר להם גישה!" אם אנחנו מסתכלים אחורה בlogin.c, אנו רואים כאן למטה תגובה זו - מאפשר להם גישה! בlogin.c, הערה זו נראית לגמרי לא מזיקה, כך שלא היית חושד בכל כוונת זדון רק עם הערה זו. אבל במהדר שלנו, אנחנו דווקא הולכים לחפש את שורת קוד הזאת, ואז כשמוצאים אותו - שורות אלה של קוד מכניסות הגרזן שלנו למצב הזה. אז, אנחנו iterating מעל כל login.c, אנו החדרת גרזן שבדיוק שבו כתוב מאפשר להם גישה, ואז אנחנו הידור - לא login.c המקורי אבל login.c החדש עם גרזן שהוכנס נכון ב'מאפשר להם גישה. ' עכשיו אני רוצה לקמפל המהדר החדש שלי עם גרזן שמעורב. אני לא הולך להשתמש קלאנג, אז בואו נעתיק את המהדר נהגנו לפני ולהשתמש בזה - ולכן, המהדר compiler.c compile.c-o evil_compiler. עכשיו המהדר הרע שלנו - אם אנחנו משתמשים במהדר הרע שלנו כדי לקמפל כל קובץ אחר, קובץ לקמפל כמו שצריך. זה נורמלי לחלוטין. אבל אם אנחנו משתמשים במהדר הרע שלנו כדי לקמפל כניסה - כך, / evil_compiler login.c-o-כניסת lcs50. - מסתכל login.c שוב, אין שום דבר כאן. זה הרגיל שלנו 'אם זה או לשדוד או טומי אנחנו ב, אחר שאנחנו לא שם ". אבל כאשר אנחנו מפעילים ההפעלה שלנו, זה יעבוד כרגיל. לפעול שוב - האקר, LOLihackyou - Hacked! כעת יש לך גישה. פשוט מסתכל על login.c, לא היית חושב שמשהו לא בסדר. אבל המהדר שנעשה בה שימוש כדי לקמפל login.c היא תוכננה במיוחד כדי להכניס את זה גרזן לתכנית. אנחנו כבר עברנו את הבעיה המקורית שלנו בלבד. במקור, היו לנו את השורות האלה של קוד בlogin.c שאם מישהו אחר הביט בם, הם יהיו כמו, למה אלה כאן? עכשיו, אם מישהו קורה למסתכל המהדר שלנו, הם ייראו בשורות האלה של קוד ואומרים, מדוע הם אלה כאן? אז, עדיין לא פתרו את הבעיה שלנו לחלוטין. אבל אנחנו יכולים להשתמש ברעיון הזה שוב. לקיחת מבט הגרסה השלישית של המהדר, זה אותו הרעיון. אנחנו קוראים את הקובץ כולו לחוצץ עד כאן, אנו עורכים את הקובץ כאן למטה, ויש לי איזה גרזן מחרוזת בפה, אבל שים לב שהקובץ שאני בעצם פריצה עכשיו. אני compiler.c פריצה לא login.c. אבל מה שאני מכניס לתוך compiler.c? אני מחדיר את הקוד הזה שהוא הקוד המדויק במהדר הקודם שלנו, שהיה אמור להכניס קוד לlogin.c. הנה אם login.c קובץ strcmp ולאחר מכן להוסיף לתוך login.c דברי הגרזן שלנו. מהדר חדש זו נועד ליצור מהדר אשר מיועד לקמפל כניסת זדון. אנחנו נראה למה זה עוזר לנו. כל השאר הוא אותו הדבר, אז זה עובד בדיוק כפי שעבד עם המהדר הקודם שלנו. אנחנו רק iterating מעל כל compile.c. אבל עכשיו במקום לחפש 'מאפשר להם גישה' אנחנו מחפשים "לקמפל את הקובץ. ' איפה לקמפל את הקובץ? כאשר מסתכלים על compiler.c לחלוטין החף מהפשע שלנו, זה ממש כאן למטה בתחתית. הערה זו - לקמפל את הקובץ - שוב, שנראה לגמרי לא מזיק. אבל, בגרסה הזדונית שלנו המהדר, אנחנו הולכים - ממש לפני שהתגובה - להכניס את הקוד שנועד להכניס את הקוד כאשר הרכיב login.c. יש הרבה רמות של דרכים עוקפות כאן. בואו ממש להפעיל אותו. שוב, אהיה להעתיק המהדר המקורי שלנו. עכשיו, הידור - המהדר compiler.c compile.c-o evilest_compiler - ועכשיו evilest_compiler. מהדר המרושע ביותר מאז - אם אנחנו משתמשים בזה כדי לקמפל המהדר שלנו, בואו באמת נראים. Evilest_compiler - מביא על זה, כל הדרך חזרה לגרסת 1 של המהדר שלנו - גרסת 1 של מהדרנו שפשוט היה לקרוא בקובץ ולעבד אותו. הנה, אנחנו יודעים שevilest_compiler - כשזה הידור קובץ זה - הוא הולך להכניס קוד ממש כאן לפני לקמפל את הקובץ, וקוד שהוא הולך להיראות בדיוק כמו הקוד מהגרסה השנייה של מהדרנו שעשה את זה. קוד זה, שנועד לפרוץ לכניסה, הולך להיות מוכנסים לתוך המהדר שלנו על ידי מהדר המרושע ביותר מאז. הבה נשתמש evilest_compiler לקמפל המהדר שלנו. כעת אנו נשתמש מהדר, תבואו חזרה לכניסה, ולזכור login.c זה אין שום דבר חשוד בזה. אבל תוך שימוש במהדרנו לקמפל login.c, לשדוד, thisiscs50, הצלחה. ההאקר בואו כניסה, LOLihackyou, Hacked! כעת יש לך גישה. להכיר בכך שזה היה שונה מגרסה 2 של המהדר שלנו. המהדר אנחנו משתמשים - בואו להעביר חזרה - עותק מכניסה - בואו נביא מהדרנו לחזור לכיתה. הסרת מהדר המרושע ביותר מאז. כל שנותרנו לנו כרגע הוא מהדר. אם נסתכל על compiler.c, אין שום דבר בפנים שנראה זדוני בכל דרך. אם נסתכל על login.c, אין שום דבר שנראה כאן בזדון בכל דרך. אבל, כאשר אנו משתמשים במהדר שלנו כדי לקמפל login.c, אנחנו מקבלים את גרסת hackable של login.c. כאשר השתמשו במהדרנו לקמפל גרסה חדשה של המהדר, אנחנו מקבלים את גרסת hackable של המהדר. עכשיו, אם אנחנו יוצאים החוצה ולהפיץ הפעלת המהדר שלנו, ואף אחד לא יודע שיש משהו זדוני על זה. זו בעצם כל כך ב-- אני לא זוכר שנה - קן תומפסון, והוא זכו בפרס טיורינג - אם אינם מכיר את פרס טיורינג, הוא כמעט תמיד מוגדר כ פרס נובל למדעי מחשב, אז זה איך אני אגדיר את זה. קן תומפסון נשא נאום שבו קבל את פרס טיורינג בשם "הרהורים על אמון אמון." בעיקרון, זה היה הרעיון של נאומו. אלא שבמקום המהדר שלנו, שהוא מדבר על GCC - רק מהדר אחר כמו קלאנג - ומה שהוא אומר הוא, כמו login.c, login.c נראה יחסית חסר תועלת אבל הוא מדבר על UNIX login.c בפועל. בעת כניסה למכשיר שלך, יש איזה תכנית כניסה שבו פועלת. זה היה הכניסה שהוא מדבר. זה היה בעצם הרעיון שלו. הוא אמר כי בGCC, בתאוריה הוא יכל לשתול באג - לא באג אבל קוד זדוני - שכאשר הרכיב את פונקצית ההתחברות - קובץ הכניסה - הייתה תוקע את דלת אחורית כדי שהוא יוכל ללכת ללחלוטין כל מערכת יוניקס בעולם ולהתחבר עם שם משתמש וסיסמא מסוימים ספציפיים. באותו הזמן, היה די הרבה GCC למהדר שכולם משמש לשום דבר. אם מישהו קרה לעדכן GCC, אז הם היו הידור מחדש באמצעות GCC GCC, ואתה עדיין תקבל גרסה רעה של GCC כי זה נערך במיוחד כדי להכיר בכך שזה היה recompiling המהדר. ואם אי פעם להשתמש GCC להדר קובץ login.c, אז זה יהיה להכניס דלת אחורית זה שהוא יכול להשתמש בו כדי להתחבר לכל מחשב. כל זה היה תיאורטי, אלא - שנסיבות מסוימות היו תיאורטיות, אבל הרעיונות הם אמיתיים מאוד. בשנת 2003, לא הייתה דוגמה דומה שבו - אנחנו נסתכל על קובץ זה, ויש לו בעצם שום דבר לעשות עם זה, אבל הבאג הוא דומה. קובץ זה פשוט מגדיר פונקציה שנקראת פרד. זה לוקח טיעון, ב ויכוח, והכוונה היא לעשות מחולקת ב. אבל היא עושה חלק בדיקת שגיאות, כך שאנחנו יודעים דברים מוזרים קורה אם b שווה אפס. אם b הוא אפס, ואז לפצל את זה ל 2 מקרים. ייתכן שכבר ראה את הבאג. המקרה הראשון - אם הוא אפס, אז אנחנו עושים אפס מחולקים באפס, ואנחנו רק אומרים שזה לא מוגדר. המקרה השני - אם הוא לא אפס, אז זה משהו כמו 1 חלקי אפס, ואנחנו רק קוראים שאינסוף. אחר אנחנו חוזרים כרגיל מחולקים ב. אז הנה, אנחנו רצים 3 מקרים אלה, ואנחנו באמת לרוץ פער - זה צועק את זה בשבילי - זאת, מתעלם אזהרות של הצלצול - סוף הפונקציה שאינה מבוטלת - כנראה אני לא לקמפל את זה לפני כן. להחזיר 0. הפוך מחלק - בסדר. עם. פער /, אנו רואים 3, אינפיניטי, אינפיניטי. אפס מחולק באפס לא היה צריך חזר אינסוף. ואם לא הבין עדיין את הבאג - או לא ראית את זה קודם - אנחנו רואים שאנחנו עושים = 0. כנראה שהתכוונ ו == 0. כנראה שכן. אבל, זה היה באמת משהו שיש, שוב, בשנת 2003, בקרנל של לינוקס - אז המכשיר שלנו משתמש בקרנל של לינוקס - כל מערכת הפעלת לינוקס משתמשת בקרנל של לינוקס - כך באג דומה מאוד לזה הגיע. הרעיון מאחורי הבאג הזה היה - שוב, לא הייתה רק חלק הפונקציה שקראה לה, וזה עשה קצת בדיקת שגיאות. היו כמה כניסות ספציפיות ששגיאה זו הבדיקה - זה היה צריך להיות כמו, בסדר, אתה לא יכול לקרוא לפונקציה זו במחלק של 0. אז, אני הולך רק כדי להחזיר איזו שגיאה. חוץ מזה, זה לא היה תמים כפי שרק הגדרה שווה 0. במקום זאת, הקו הזה של קוד בסופו עושה משהו דומה יותר למשתמש = מנהל מערכת. או משתמש = משתמש על. זה היה חף מפשע - במבט הראשון - טעות שבו אולי סתם סביר שאני רוצה רק לדווח על משהו ספציפי אם המשתמש קרה להיות המנהל משתמש על. אבל אז שוב אני חושב על זה, האדם רצה שזה ייראה כמו טעות דפוס פשוט, אבל אם הקוד הזה בעצם שוחרר, אז אתה הייתי יכול לפרוץ לכל מערכת על ידי העברת דגל ספציפי - במקרה זה ב = 0 - וזה באופן אוטומטי יגרום למשתמש את המנהל, ואז יש לו שליטה מלאה. זה קרה בשנת 2003. זה פשוט כל כך קרה, שהסיבה היחידה שנתפסה היה כי יש במקרה איזה מערכת אוטומטית שהבחין בשינוי בקובץ זה שמעולם לא היה צריך להיות שונים על ידי אדם. הקובץ צריך להיות רק שנוצר באופן אוטומטי. זה פשוט כל כך קרה שמישהו נגע - כן, האדם שרוצה לפרוץ קובץ שנגע, והמחשב שנתפס נוגע ללב. אז, הם שינו את זה ורק מאוחר יותר הבינו מה אסון זה היה אם זה כבר יצא אל העולם האמיתי. אולי אתה חושב ש-- חוזר לדוגמא המהדר שלנו - למרות שאנחנו לא יכולים לראות - מסתכלים sourcecode - כל דבר שבפרט הוא שגוי, אם אנחנו באמת מסתכלים על הקוד בינארי של מהדר, הייתי רואה שמשהו לא בסדר. כדוגמה, אם אנו מפעילים את המייתרים לתפקד - שרק הולך להסתכל על קובץ ולהדפיס את כל המחרוזות שהוא יכול למצוא - אם אנחנו רצים על מייתרי המהדר שלנו, אנו רואים שמחרוזת אחת שהוא מוצא זה מוזר - אחר אם (strcmp (שם משתמש, "האקר") - בלה, בלה, בלה. אם אזדמן למישהו פרנואיד מספיק כדי לא לסמוך על מהדרם, הם יכולים לרוץ מייתרים ורואים את זה, ואז הם היו יודעים שיש משהו לא בסדר בינארי בפועל. אבל, מייתרים היו משהו בלתי נמנע שנערך. אז מי אומר שהמהדר שלנו לא רק צריך קוד מיוחד יותר שאומר, אם מייתרים הוא אי פעם לרוץ על המהדר שלנו, לא כל פלט של קוד הזדוני. אותו הרעיון עם אם אנחנו רוצים דיס להרכיב את הקובץ - למד שהמאסף מביא אותנו מקוד הרכבה לקוד מכונה - אנחנו יכולים ללכת בכיוון ההפוך - מהדר objdump-ד - ייתן לנו את ההרכבה של הקוד שלנו. כאשר מסתכלים על זה, זה די מסתורי, אבל אם אנחנו רוצים, אנחנו יכולים להביט בזה והסיבה, חכה, יש משהו שקורה בכאן שלא צריך ללכת על, ואז אנחנו מכירים בכך שהמהדר עושה משהו זדוני. אבל, בדיוק כמו מחרוזות, מי יכול לומר objdump לא היה מיוחד, בדק. בעיקרון, זה מגיע עד כדי שאתה לא יכול לסמוך על שום דבר. הנקודה של העיתון להיקרא "אמון בטח ב" היא באופן כללי, אנחנו סומכים על המהדר שלנו. אתה לקמפל את הקוד שלך ומצפה שזה יעשה את מה שאתה מבקש לעשות את זה. אבל, למה אתה נותן אמון במהדר? אתה לא כתבת את המהדר. אתה לא יודע מה המהדר הוא בהכרח בעצם עושה. מי אמר שאתה יכול לסמוך עליו? אבל אפילו אז, טוב, אולי אנחנו יכולים לסמוך למהדר. יש עשרות אלף אנשים שהסתכלו על זה. מישהו כנראה זיהה שמשהו קורה עם המהדר. מה אם רק אצא לרמה 1 עמוק יותר? זה אפילו יכול להיות המעבד שלך. מגוחך ככל שזה בכלל יכול להיות, אולי יש קצת עובד סורר באינטל שיוצר המעבדים האלה כי בכל פעם שהמעבד מבחין שאתה מפעיל כמה פקודה שאמורה להתחבר למחשב, המעבד מוכן לקבל שם משתמש ספציפי ושילוב סיסמא. זה יהיה מסובך בפראות, אבל מישהו יכול לעשות את זה. בשלב זה, אתה באמת הולך לפתוח את המחשב שלך להסתכל על המעבד ולהשתמש במיקרוסקופ כדי להכיר בכך שמעגלים אלו אינם בשורה כמו שהם צריכים להיות? אף אחד לא הולך לתפוס את השגיאה ש. בשלב מסוים, אתה פשוט צריך לוותר ולסמוך על משהו. רוב האנשים סומכים על המהדר בשלב זה. כלומר לא בהכרח שאתה צריך. כאשר מסתכלים על וידאו במקצת לשמצה - [מוסיקה דרמטית לשחק] [זו מערכת יוניקס. אני יודע את זה.] [זה כל הקבצים -] היא אמרה, "זו מערכת יוניקס. אני יודע את זה." החלף UNIX עם כל מה שמערכת ההפעלה האהובה עליך היא - היא הייתה יכולה לומר, "זה מערכת של Windows. אני יודע את זה." זה משפט חסר משמעות לחלוטין, אבל לכל מה שאנחנו יודעים, היא יודעת שקורית לדלת אחורית למערכת יוניקס. היא יודעת כמה שילוב של שם משתמש / סיסמא שתהיה למעשה לתת לה לעשות מה שהיא רוצה. בסדר. מוסר ההשכל של היום הוא בעצם שאתה לא יכול לסמוך על שום דבר. אפילו דברים שאתה כותב - אתה לא כתבת את המהדר. המהדר יכול להיות רע. גם אם עשית לכתוב מהדר, הדבר שפועל למהדר יכול להיות רע. (צוחק) אין הרבה שאתה יכול לעשות. העולם נחרץ. בחזרה לדוד! [מחיאות כפות] [דוד] תודה. זה היה מדכא מאוד. אבל אכן, רוב הוא נכון. אנחנו לא באמת צריכים פתרון לזה, אבל אתה עומד לקבל כמה פתרונות לחלק מההגנות נפוצות יותר. בציפייה זו, מה שיאט ואני כבר עושים מאחורי קלעים יש זה לדעת שיש כל כך הרבה מחשבים ניידים בחדר הזה, אנחנו כבר מרחרחים את כל התעבורה האלחוטית הולכת לחדר הזה במשך 20 הדקות האחרונות במהלך שיחתו של רוב, ולכן אנחנו הולכים לקחת הפסקה של 2 דקות כאן. נייט הולך להקים, ואז אנחנו הולכים לדבר על כל הדברים היינו יכול למצוא. (שחוק) לכן, יכול להיות שהגזמתי קצת רק בשביל דרמה, אבל אנחנו יכולים כבר מרחרחים את כל התעבורה האלחוטית שלך, כי אכן, זה כל כך קל. אבל יש גם הדרכים בן ניתן להתגונן מפני זה, ולכן עם זה, אני אתן לך נייט Hardison. >> [נייט] מתוק. (מחיאות כפות) [נייט] תודה, גבר. אני מעריך את הצעקה החוצה. הכל בסדר! זה שבוע משחק. האם אתם מתרגשים? אני מקווה שזה הולך להיות משחק גדול ביום שבת. אני מתאר לעצמי שחבר 'ה בנקודה זו - בהתחשב בעובדה שיש לך חידון ביום רביעי הכל על קוד, ואנחנו פשוט ישבנו בהרצאה נפלאה על ידי רוב עם כל חבורה של קוד C בזה - הם אולי קצת עייפים מקוד. בחלק זה, אנחנו באמת לא מתכוונים לגעת בשום קוד כלשהו. אנחנו רק הולכים לדבר על טכנולוגיה שאתה משתמש בכל יום, לעתים קרובות שעות רבות, רבות ביום, ונדברנו על השלכות עם ביטחון שיש בעולם. כבר דברנו הרבה על ביטחון במהלך הסמסטר, ויצאנו לדרך עם קצת אנוסים. [Bdoh lv vwlqng!] ובעוד אתם הם סופר נרגשים כנראה כדי להעביר פתקים זה לזה בכיתה בצופן קיסר כמו זה, במציאות, יש עוד כמה כיף היה להיות כשאתה בעצם מדבר על ביטחון וסוג כזה של דברים. היום, אנחנו הולכים כדי לכסות כמה טכנולוגיות שאנשים באמת להשתמש בעולם האמיתי כדי לעשות כל מיני דברים מרחרוח המנות של אנשים שממש הולך וב פריצה לחשבונות הבנק של אנשים וכל זה. אלה הם כלים לגיטימיים שאנחנו מדברים על למעט אולי כלי אחד. ואני רק רוצה לעשות את ויתור מהיר. כאשר אנו מדברים על הדברים האלה, אנחנו מדברים על אותם כך שאתה יודע מה יש שם בחוץ, ואתה מודע לאיך להיות בטוח כשאת את השימוש במחשב. אבל אנחנו בהחלט לא רוצים לרמוז שאת צריכה להשתמש בכלים אלה בחדר שלך או בביתך, כי אתה יכול לרוץ לתוך המון בעיות גדולות. זה היום אחת סיבות שאנחנו בעצם לא מרחרחים החבילות שלכם. בסדר. ביום שני האחרון, דברו על עוגיות, וHTTP ואימות, ואיך פותח את הדלת Firesheep הגדול הזה בחשבון שלך בפייסבוק, לחשבון Hotmail שלך - אם מישהו עדיין משתמש בוטמייל - וחשבונות רבים אחרים. הרבה דברים זה הולך לבנות את זה, אבל קודם כל, אני רוצה לקחת את הסיור מהיר של איך האינטרנט התפתח במשך זמן. בשנתי ה -90, אתם אולי נזכרתם בעצם חיבור המחשבים שלך עם אחד מאלה. עכשיו אנחנו לא עושים את זה כל כך הרבה יותר. למעשה מתברר שכדי לחבר את כבל Ethernet למחשב הנייד שלי, עכשיו יש לי להשתמש באחד מהמתאמים הללו שהם סוג של טירוף. במקום זאת, בשנת 1997 הייתה לנו טכנולוגיה חדשה, הכיף יצאתי שהוא ידוע כIEEE 802.11, אז זה בתקן האינטרנט האלחוטי IEEE הוא זה גוף שלטוני שנותן את כל מינים - מפרסם כל מיני סטנדרטים ביחס למחשבים. את 802 תקנים כולם על טכנולוגיות אינטרנט. אז 802.3, למשל, הוא תקן Ethernet, 802.15.1 אני מאמין בתקן Bluetooth, ו802.11 הם כל האינטרנט על האלחוטי. בשנת 1997 זה לא יצא. זה לא ממש תופס באופן מיידי. זה לא היה עד 1999 ותקן 802.11b יצא שהתחיל ממש פופולרי. כמה מכם זוכר מתי מחשבים התחילו לצאת ומקבלים Wi-Fi עליהם? זה היה די מגניב, הא? אני זוכר שקבלתי את המחשב נייד הראשון שלי בתיכון, והיה לו כרטיס אלחוטי בזה. האבא שלי נתן לי ואמרתי שאני צריך להשתמש בו עבור היישומים האקדמיים שלי וכל זה, ולא היה לי מושג איך אני הולכת לחפש באינטרנט החומר הזה. אבל למרבה המזל, היה לי כרטיס אלחוטי, כך שהיה די מגניב. כיום, אתה תראה גם 802.11g שהוא אחד מהשני ממש פופולרי תקנים אלחוטיים שיש שם בחוץ. התשובות ב 'וג' הם מיושנים למדי בשלב זה. מישהו יודע מה גרסה רוב האנשים הם על עכשיו אם הם קונים נתבים אלחוטיים חדשים ולכל מיני דברים? נ 'בדיוק. בינגו. ומתברר שac הסטנדרטי פשוט יוצא בצורת טיוטה, ויש גרסות אחרות בדרך. עם כל אחד מהסטנדרטים האלה מה שאנחנו צוברים יותר רוחב פס, נתונים נוספים בקצב מהיר יותר. הדברים האלה משתנים די מהר. זה גם עושה את זה כל כך שיש לנו כדי לקנות נתבים נוספים וכל זה כיף. בואו נדבר על מה שתקשורת אלחוטית היא למעשה בליבה שלה. עם Ethernet ואלה מודמים בחיוג ישנים, אתה בעצם היה החומר הזה שאתה מחובר למחשב שלך, ואז אתה מחובר למודם של מינים, ואז אתה חברת אותו לשקע בקיר שלך. היה לך חיבור קווים זה, נכון? כל הנקודה האלחוטית היא להיפטר מהחומר הזה. כדי לעשות את זה, מה שיש לנו הוא במהות תקשורת רדיו שבו נתב האלחוטי שלנו - יועד על ידי האייקון של הרשת האלחוטי הקטן שלנו - הוא מחובר לאינטרנט עם חץ מוצק זה המציין איזה חיבור קווים, אבל כאשר אתה מתחבר אל הנתב האלחוטי אתה בעצם משתמש כמעט כמו מכשיר קשר שבין המחשב לבין הנתב האלחוטי שלך. מה באמת מגניב על זה אתה יכול לנוע. אתה יכול לשאת את המחשב שלך בכל רחבי סנדרס, ללכת לגלוש באינטרנט, מה שאתה רוצה, בדיוק כמו שכולכם יודעים ואוהבים, ואתה אף פעם לא צריך להיות מחובר לשום דבר. כדי שזה יעבוד, יש לנו גם קבלה והעברה זו. זה באמת כמו שמכשיר קשר. זה נתב אלחוטי - שבסנדרס יושב מתחת שלב זה, ממש כאן - תמיד לשדר וקבלה, שידור וקבלה, וכמו כן, המחשבים שלך כל עושים את זה אותו דבר, יותר מדי. אנחנו פשוט לא יכולים לשמוע אותו. הדבר השני שאתה יכול לעשות הוא שאתה יכול להיות מספר מחשבים מדבר עם אותו נתב האלחוטי. אתה קרוב יותר לנתב - ושוב, זה תקשורת רדיו - אתה קרוב יותר, כך טוב יותר את האות שלך היא, טוב יותר את המחשב שלך "שומע" את הנתב ויכול לתקשר עם האינטרנט. אם אתם אי פעם בחדר שלך, בבית שלך ואתה תוהה למה האות שלך רעה, זה כנראה בגלל). אתה לא כל כך קרוב אל הנתב שלך, או ב). יש משהו בינך לבין הנתב שלך כמו קיר בטון או משהו שלא נותן לגלי הרדיו האלה לעבור. בואו נדבר קצת על מדוע בחורים רעים כמו Wi-Fi. רעים אוהבים Wi-Fi במשך כמה סיבות. הנה הבחור הרע המגעיל שלנו שם. סיבה אחת למה האיש הרע הזה אוהב Wi-Fi הוא כי, כברירת מחדל, הרבה נתבים אלחוטיים לבוא וכשאתה מגדיר אותם, הם לא מוצפנים. זו הייתה בעיה, והיו מקרים - מופעים מרובים, עכשיו - שבו איש רע מופיע לביתו של מישהו, שם לב שיש לא מוצפן Wi-Fi שאליו הם יכולים להתחבר. הם מתחברים לאינטרנט האלחוטי, ואז הם יתחילו להוריד כל מיני דברים כיפיים. והם לא מורידים גורים, הם לא מורידים גורים. זה כמו ביטורנט. זה מגעיל של הנבזי. היו מקרים שבי-FBI אף הסתבך חושב שהאדם שמחזיק בבית הוא למעשה אחד יוצא לשם והוריד את מה שהם באמת לא צריכים להיות. לאחר שלא מוצפן Wi-Fi הוא בהחלט לא משהו שאתה רוצה לעשות, אם רק לא לקבל את ה-FBI באים לדפוק בדלת שלך. סיבה נוספת מדוע רעים אוהבים Wi-Fi הסיבה לכך שהדוד דבר עליו לעיל בהפסקה. כי זה תקשורת רדיו בליבתו, אם אתה יודע את הערוץ, אתה יכול להקשיב לתחנת הרדיו. לדוגמה, אם יש ממש רע שם ישב באמצע הימין ליד נקודת הגישה, ממש ליד שנתבו אלחוטי, הבחור הרע יכול להאזין לכל התעבורה האלחוטית שמגיע מכל המחשבים האלה. למעשה, החבר 'ה האלה - אלה כמה מזל שנמצאים כאן בשורה הראשונה - כי הם סופר קרוב לכל אלה נתבים האלחוטיים שיושבים ממש מתחת לבמה, הם יהיו מסוגלים לשמוע את התנועה של כולם בכל החדר הזה אם אתה מחובר לאינטרנט אלחוטי, ולהתחיל לגלוש דרך נקודתי גישה אלה. זה לא מאוד קשה לשבת את עצמך בעמדה טובה כדי להריח ולהבין מה שאנשים אחרים עושים. זה משהו שכדאי לזכור, במיוחד אם אתה לא בטוח איפה נקודת הגישה היא, ואתה גולש לומר, בסטארבקס. מתברר שמרחרח וכל זה היא לא באמת כל כך קשה לעשות. יש תכנית בשם tcpdump שמשליך כל מיני תעבורת TCP ואתה יכול להפעיל את זה די פשוט - בדיוק כמו שעשיתי הבוקר. הנה קצת מזבלה, והנה חלק מהתנועה שמגיעה על הרשת שלי באותו הזמן. אתה יכול לראות - אם פזילה קשה באמת - יש קצת Spotify לשם. על גבי tcpdump - כי זה סוג של כאב לשימוש - יש תכנית בשם זה שכל חבילות עד Wireshark בממשק נחמד. Wireshark הוא סופר שימושי כך שאם אתה הולך על לקחת שיעורים ברשת, זה כלי שאתה תגיע לאהבה שכן הוא מסייע לך לנתח את כל המנות שמרחפים שם בחוץ. אבל זה יכול לשמש גם למטרות רעות. זה פשוט מאוד פשוט להוריד תכנית זו, לאתחל אותו, להתחיל לכידת רשת, ולראות את כל מה שקורה - ולסנן ולעשות כל מיני דברי כיף עם זה. הדבר השני שאתה יכול לעשות עם תקשורת אלחוטית לא רק אתה יכול לצותת אבל אתה יכול גם ללמוד איך לדפוק עם הרשת ולהזריק את הפרטים שלך כדי לשלוט בחוויה שאנשים אחרים באותה הרשת אלחוטית מקבלים. בואו נסתכל על זה. הנה Firesheep - מה שאנחנו יודעים ואוהבים מהשבוע האחרון - והוא שטכנולוגית הציתות. אם, למשל, רציתי באופן פעיל לסיבוב שלנו הרע הבחור ולהתעסק עם אחד מהמחשבים האלה, בתרחיש זה יש לנו מחשב מנסה ללכת לגלוש לharvard.edu. מה שקורה הוא, המחשב שולח הודעה 1 לנתב האלחוטי ואומר, היי, אני רוצה ללכת www.harvard.edu ביקור. אומר משום מה הם מנסים להשיג מידע על המשחק בסוף השבוע הזה. איש רע, שכן הוא יושב ממש באמצע, ממש סמוך לנקודת הגישה, ניתן לראות שתקשורת מגיעה מהמחשב אל הנתב, והוא יודע, "אהה! מישהו כבר harvard.edu." (רשעות צוחק) יש הולך להיות זה השהיה בעוד התקשורת עוברת מהנתב מחוץ לאינטרנט ללכת למצוא את דף האינטרנט בharvard.edu-- בדיוק כמו שאתם יודעים לאחר עושים psets PHP שלך - וכן האיש הרע יש קצת זמן, קצת חלון, שבו הוא יכול להגיב עם חומר כלשהו. בואו נגיד שאיש רע זה, כמובן, הוא Yaley. הוא מגיב בharvardsucks.org. בו! , בחור רע רע! Yaley הרע! או אפילו יותר גרוע, הוא עלול להגיב עם זה. [Http://youtu.be/ZSBq8geuJk0]. אני אתן לכם להבין מה זה. זו בעצם טכנולוגיה הנקראת Airpwn! אשר לראשונה ב אחד כנסי אבטחה לפני כמה שנים. עם Airpwn! אתה יכול למעשה להזריק תנועה בחזרה לרשת. המחשבים שניסו לצאת לאינטרנט ומנסים להגיע ל Google.com, לFacebook.com ל, harvard.edu ראה תגובה הזדונית לבוא ולהניח מייד, בסדר, זה התגובה שאני מחכה ולסופו של דבר מקבל תוכן מ harvardsucks.org או nameyourfavoriteshocksite.com, ואתה יכול לראות כמה מהר דברים ידרדרו. כל דברים אלו לא ניתן לעשות זאת עם חיבורים חוטיים האלה כי עם חיבור קווים קשה לחטט בתנועה. אם אני בחור רע ועל קצה אחד הוא המחשב שלך ועל הקצה השני הוא הנתב שלך - המודם שלך - הדרך היחידה שאני יכול לקבל בחיבור בין שהיא למעשה לסדר את המחשב שלי באיזשהו מקום באמצע או לעשות משהו אחר עם הנתב, מורד משהו. אבל עם אלחוטי, זה יכול להיות קל כמו שישב בשורה הקדמית של כיתה, ואתה יכול לעשות כל מיני דברים מגעילים לאנשים בגב. בואו נדבר על איך אפשר להתגונן מפני חלק מהדברים האלה. האנשים שפתחו את התקנים האלחוטיים - 802.11 - הם לא אנשי טיפשים בכל למתוח את הדמיון. זוהי טכנולוגיה מגניבה וכאשר הוא הוצג לראשונה בשנת 1999, הם יצאו עם התקן הזה שנקרא WEP. אתם יכולים לראות כאן בעת ​​ניסיון ולהצטרף לרשת אלחוטית, יש לך כל מיני אפשרויות אבטחה שונות. זה סוג של כאב כי כולם ביחד 6 וזה אף פעם לא באמת הגיוני ש1 להצטרף. זה 1 בראש הוא הראשון שהם עלו עם שם WEP. WEP עומד לפרטיות שווה Wired, אני מאמין, לא פרוטוקול הצפנה אלחוטי שהוא מופרך מיסודו משותף. מכיוון שהיא מנסה לתת לך שוות ערך פרטיות והגנה בטחונית שווה לזו של רשת חוטית עם WEP מה קורה בסופו, יש לך סיסמא פשוטה, קטנה שהקלדת ושבמשמש להצפנה כל התקשורת שלך בין המחשב לבין הנתב שלך. מה הבעיה עם WEP אף? הסיסמה עם WEP היא באמת קצרה, וגם כולם משתמש באותה סיסמא בדיוק,  ואז זה באמת קל לפענוח. אז מהר מאוד אנשים הבינו שWEP היה בעיה, והסיבה היחידה שאתה רואה אותו מופיע עדיין על הבחור הקטן הזה היא - יש כמה מערכות ישנות יותר, שכן משתמשות ב-WEP - מה שאתה צריך במקום להיות מחפש הם WPA ו-WPA2 אפילו סטנדרטים ששוחררו בהמשך. מערכות אלו הן דרכים הרבה יותר טובות בהגנה באינטרנט אלחוטי. עם זאת, עדיין יש להם כמה hackability. ישנם כלים שם בחוץ, כי יכול ללכת לעשות את זה. דבר אחד במיוחד שיכול להיות מגעיל הוא כי אם אתה מתחבר ומאומת הנתב אלחוטי ומשתמשים כלשהו תקשורת מוצפנת, מתבררת שהאקר יכול בקלות לשלוח חבילה אחת כדי לנתק אותך מהנתב, ומרגע שניתקתי אותך ואז הם יכולים להקשיב ב-- הם יכולים להריח את המנות האלה כפי שאתה מנסה להקים מחדש את החיבור לנתב. ועם המידע הזה אז הם יכולים להיכנס ולפענח את שאר התקשורת שלך. זה לא בכל אמצעי כלשהו מאובטח מעבר לכל הדמיון. הדבר השני שאתה יכול לעשות כשאתה מגדיר את הרשתות אלחוטיות או שאתה מצטרף אליהם הוא - שמת לב שכאן כשאני מצטרף לרשת זו, הוא מבקש את השם של הרשת שלי. זה ידוע גם בשם ה-SSID. ואתה רואה כאן שמצד ימין יש לי קופסה שמראה לי את SSIDs הזמין. יש אוניברסיטת הרווארד, CS50, ורשת צוות CS50. עכשיו, כמה מכם ידע שיש רשת צוות CS50 מסביב? חלק מכם. לא כולכם. הבעיה עם זה, כמובן, היא שאנחנו לא לשים את זה ברשימה של SSIDs, אף אחד לא היה יודע על זה כנראה. אני מקווה. אלא אם כן אתם כולם מנסים לפצח לתוך אלחוטיים שלנו. אבל זה משהו שאתה יכול לעשות את זה באמת חשוב כשאתה מגדיר הנתב בבית. זה כנראה לא יקרה לכמה שנים להרבה מכם, אך יש לזכור כי השמירה שSSID משם ולא גם שיום זה משהו סופר נפוץ-יעזור לך להיות בטוח יותר בטווח הארוך. זוג סופי של דברים שאתה יכול לעשות. אחת הוא HTTPS. אם אתה בבית קפה, אם אתה בשטח ציבורי Wi-Fi ואתה מחליט לגשת לחשבון הבנק שלך, לגשת Gmail שלך, שלך בפייסבוק, לוודא שהחיבורים הללו הולכים מעל HTTPS. זה שכבה נוספת של אבטחה, שכבה נוספת של הצפנה. הדבר אחד שכדאי לזכור כאן הוא, כמה מכם אי פעם שלחצו שבמסך הגדול, האדום שאומר, "אתר זה עלול להזיק מאוד." אני יודע שיש לי. זה כנראה כשאתה גולש כל ללכת לראות מולד או משהו כזה, נכון? כן. (קהל צוחק) כן. הנה לך. אנחנו יודעים שמסתכלים על מולדת. , שהמסך גדול האדום ממש שם לעתים קרובות מצביע על כך שמשהו פאנקי קורה. לפעמים זה רק האתר עצמו הוא חסר ביטחון, אבל אותו מסך גדול, אדום עולה כאשר אנשים מנסים הר הרשת תוקפת אותך. אז אם אתה רואה שמסך גדול, אדום עלה בסטארבקס, אל תלחץ על דרכו. חדשות רעות. חדשות רעות נושאה. הדבר האחרון שאתה יכול להסתכל על הוא סוג של VPN. VPN זה זמין באמצעות הרווארד - vpn.fas.harvard.edu-- ומה זה עושה זה בעצם יוצר חיבור מאובטח בינך והרווארד, משפכי התנועה שלך דרכו, וכך, אם אתה יושב במקום כמו סטארבקס אתה יכול להתחבר לרווארד, שמקבל תנועה בטוחה ולאחר מכן לגלוש מאוניברסיטת הרווארד. שוב, אינו חסין תקלות. אנשים יכולים לקבל באמצע. הם יכולים להתחיל לשבור אותו, אבל זה הרבה יותר בטוח מאשר להסתמך על הביטחון של Wi-Fi בלבד. בסדר. לסיכום, כשאתה מגדיר את רשתות אלחוטיות, כאשר אתם יוצאים לשימוש אלחוטי בציבור - בין אם מדובר בסטארבקס, בין אם זה חמש חבר 'ה, אם זה B.Good, משהו כזה - כל מקום שיש להם Wi-Fi - להיות מודע לסביבה שלך. להיות מודע למה שאנשים יכולים לעשות. ותהיה בטוח. לא לגשת לחשבון הבנק שלך. זה יכול להיות התעוררות גסה אם מישהו בא עם הסיסמה שלך בהמשך. עם זאת, עבור ארגמן! ואני הולך להפוך את הדברים בחזרה מעל לדוד למילה אחרונה. (מחיאות כפות) [דוד] חשבתי שאני רוצה לחלוק דבר אחד מניסיונו אישי. כלי שאולי תרצה לשחק עם - למרות שאפל חסלה את הבעיה במידה רבה אם עדכנת את התוכנה שלך מאז - אבל לקראת סוף זה לא באמת היה מסוגל לסמוך על תוכנה שאנו משתמשים, והנקודות של נייט, להיות מסוגל להריח לא מעט ממה שאנשים אחרים עושים בחוץ - זה היה חלק מתוכנה שיצא כשנה וחצי לפני עכשיו. [IPhoneTracker] [http://petewarden.github.com/iPhoneTracker/] במשך זמן מה, iTunes - לפני iCloud, כאשר היו סינכרון האייפוד או האייפון שלך או שלך או אייפדים עם iTunes - בריבית של גיבויים, מה-iPhone שלך ​​והמכשירים אחרים אלה כבר עושים לקצת זמן הוא עשיית שימוש בנתוני ה-GPS. כולכם יודעים אולי שמכשירי iPhone שלך ​​ואנדרואידים והטלפונים הניידים של Windows וכמו בימים אלה יכול לעקוב היכן אתה בעניין של מראה לך מפות ודומה - גם מה שאפל וחברות אחרות אלה לעשות הוא הם בדרך כלל לעקוב כמעט בכל מקום שאתה כבר ממש בעניין של שיפור איכות השירות. אחד, אתה יכול לקבל יותר מפרסום ממוקד וכדומה, אלא שניים, הם יכולים גם להבין איפה יש נקודות חמות אלחוטיות בעולם, וזה יכול לעזור עם מיקום הגיאוגרפי - סוג של טריאנגולציה של המיקום של אנשים. סיפור ארוך קצר, כולנו כבר הלכו אנטנות לכמות מסוימת של זמן. למרבה הצער, אפל עשה את החלטת העיצוב - או היעדרה - לא כדי להצפין את המידע הזה כשזה היה להיות מגובה ל-iTunes. ומה חוקר האבטחה גילה שזה היה רק ​​קובץ XML ענק - קובץ טקסט ענק - יושב בתוכנת iTunes של אנשים, אם היית רק קצת סקרנים ו, אתה יכול ללכת לחטט ההיסטוריה של בן הזוג שלך, ההיסטוריה של השותף שלך, ההיסטוריה של האח שלך וכמו, והודות לכמה תוכנות חופשיות, אתה יכול לתכנן את כל אלה קואורדינטות GPS - קווי אורך ורוחב. אז, אני ממש עשיתי את זה עם הטלפון שלי. חברתי את הטלפון שלי, ואכן, הגרסה של iTunes שלי לא הייתה מוצפנת בזמן, ומה שאני יכולתי לראות היו דפוסים שלי. הנה ארצות הברית ובכל אחד מהעיגולים הכחולים האלה מייצג שם יצאתי לי כבר מעל החודשים הקודמים אלה של בעלות על הטלפון המסוים הזה.  אני מבלה הרבה זמן, כמובן, בצפון המזרח, קצת זמן בקליפורניה, טיול קצר לטקסס, ואם לאחר מכן להתמקד בזה - זה כל הסוג של קנס ומעניין, אבל ידעתי את זה. רוב החברים שלי ידע את זה, אבל אם אתה לצלול עמוק יותר, אתה רואה בו אני מבלה את רוב הזמן שלי בצפון המזרח. אם אתה נצמד לכמה ערים נראות מוכרות - הכתם הזה הגדול, כחול הדיו מרוכז למעשה על בוסטון, ואז אני מבלה את מעט זמן בפרברים קורנים מבוסטון. אבל אני גם עושה לא מעט התייעצות באותה השנה. והשנה היא החוף המזרחי, ואתה ממש יכול לראות אותי ואת האייפון שלי בכיס שלי נוסע הלוך ושוב בין בוסטון וניו יורק ופילדלפיה בהמשך, כמו גם הוצאות קצת זמן חופשה על הכף, שהיא הזרוע הקטנה בחוץ. לכן, כל אחת מהנקודות הללו מייצג מקום שהייתי, ולחלוטין בלי שידעתי, כל ההיסטוריה הזאת הייתה פשוט יושבת שם במחשב השולחני שלי. אם זום החוצה - זה בעצם היה קצת מטריד. אני לא זוכר את שהייתי אי פעם בפנסילבניה שנה שבפרט. אבל למרות שקצת יותר קשה על זה ואני לא הבנתי, הו, זה היה בעובדה שטיול ואכן, הטלפון שלי היה תופס אותי. אפל מוצפנת המידע הזה מאז, אבל גם את זה הוא רק עדות לכמות מידע הנאסף עלינו, ואיך בקלות - לטוב ולרע - זה מקובל. אחד מ- aways לקחת תקווה משיחתו של רוב, מהשיחה של נייט וחזותי קטנים כמו היום זה רק להיות מודע לכל זה יותר כך שלמרות ש-- כאל הנקודה של רוב - סוג אנחנו גוף של דפוק, נכון? אין הרבה שאנחנו יכולים לעשות כשזה מגיע לחלק מהאיומים האלה, אבל בסופו של היום יש לנו לסמוך על משהו או מישהו אם אנחנו רוצים באמת להשתמש בטכנולוגיות אלה. לפחות אנחנו יכולים להיות קבלת החלטות מושכלות והחלטות מחושבות או לא אנחנו באמת צריכים לבדוק את החשבון הזה הרגיש במיוחד או שצריך לשלוח שקצת חושדים הודעה מיידית  בסביבת Wi-Fi ככה. אז, עם שאמר, רק אחד שרידי בחנים, הרצאה אחת נשארה. ניראה אותך ביום רביעי ואז ביום שני. (מחיאות כפות ותרועות) [CS50TV]