1 00:00:00,000 --> 00:00:02,750 [Powered by Google Translate] [Εβδομάδα 10] 2 00:00:02,750 --> 00:00:04,750 [David J. Malan] [Πανεπιστήμιο του Χάρβαρντ] 3 00:00:04,750 --> 00:00:07,000 [Αυτό είναι CS50.] [CS50.TV] 4 00:00:08,520 --> 00:00:13,240 >> Εντάξει! Αυτό είναι CS50, αλλά όχι για πολύ μεγαλύτερο χρονικό διάστημα. 5 00:00:13,240 --> 00:00:14,740 Αυτή είναι η αρχή της εβδομάδας 10. 6 00:00:14,740 --> 00:00:18,780 Την Τετάρτη έχουμε κουίζ μας, και στη συνέχεια την επόμενη Δευτέρα έχουμε κάποια εορταστική τούρτα 7 00:00:18,780 --> 00:00:22,030 όπως έχουμε έρθει πλήρης κύκλος σε όλη τη διαδρομή από το μηδέν πίσω εβδομάδα. 8 00:00:22,030 --> 00:00:25,200 Σήμερα, μιλάμε για ένα από τα αγαπημένα μου θέματα, να πούμε την αλήθεια - 9 00:00:25,200 --> 00:00:29,000 ότι από την ασφάλεια και την προστασία της ιδιωτικής ζωής και τις επιπτώσεις του συνόλου του υλικού και του λογισμικού 10 00:00:29,000 --> 00:00:31,000 ότι όλοι χρησιμοποιούν αυτές τις μέρες. 11 00:00:31,000 --> 00:00:33,300 Για να είμαι ειλικρινής, υπάρχουν πολλά εκεί έξω απειλές 12 00:00:33,300 --> 00:00:35,430 ότι αν δεν έχετε πραγματικά σταμάτησε για να σκεφτεί για αυτούς, 13 00:00:35,430 --> 00:00:36,920 είναι πραγματικά πολύ δύσκολο. 14 00:00:36,920 --> 00:00:40,070 Υπόθεση στο σημείο - αν κάποιος από εσάς έχετε κατεβάσει ποτέ ένα κομμάτι του λογισμικού 15 00:00:40,070 --> 00:00:42,660 μακριά από το Διαδίκτυο και να εγκατασταθεί στον υπολογιστή σας, 16 00:00:42,660 --> 00:00:45,220 έχετε ασχολούνται σε μεγάλο βαθμό από την εμπιστοσύνη, έτσι δεν είναι; 17 00:00:45,220 --> 00:00:50,220 Δεν υπάρχει τίποτα που εμπόδισε το Skype, ή Chrome, ή οποιοδήποτε κομμάτι του λογισμικού 18 00:00:50,220 --> 00:00:54,770 που έχετε εγκαταστήσει στον υπολογιστή σας, από απλά διαγράφοντας όλα τα αρχεία στο σκληρό δίσκο σας? 19 00:00:54,770 --> 00:00:58,260 από το φόρτωμα όλων των αρχείων στο σκληρό δίσκο σας στο διακομιστή κάποιου κακός του? 20 00:00:58,260 --> 00:01:01,650 από την ανάγνωση όλων των e-mail σας? να υποκλέψουν όλα τα άμεσα μηνύματα σας. 21 00:01:01,650 --> 00:01:05,040 Επειδή η πραγματικότητα είναι σήμερα με πιο σύγχρονα λειτουργικά συστήματα 22 00:01:05,040 --> 00:01:10,040 πραγματικά δεν είναι πολύ ενός τοίχου ανάμεσα σε προγράμματα λογισμικού που θα εγκατασταθούν, 23 00:01:10,040 --> 00:01:14,220 και εσείς και εγώ είναι λίγο πολύ ακριβώς το είδος της σταυρώνοντας τα δάκτυλά σας και λαμβάνοντας την πίστη 24 00:01:14,220 --> 00:01:17,750 ότι η εν λόγω εφαρμογή θα κατεβάσετε δωρεάν, ή εκείνο το πράγμα που είναι 99 σεντ, 25 00:01:17,750 --> 00:01:20,140 είναι στην πραγματικότητα εντελώς καλοήθη. 26 00:01:20,140 --> 00:01:23,090 Αλλά, όπως έχουμε δει έως Γ, και τώρα PHP και JavaScript, 27 00:01:23,090 --> 00:01:25,420 με αυτή την ικανότητα να εκφραζόμαστε programatically, 28 00:01:25,420 --> 00:01:30,300 μπορείτε να κάνετε τίποτα που θέλετε με ένα πρόγραμμα που ο ίδιος ο χρήστης ή η ίδια θα μπορούσε να κάνει. 29 00:01:30,300 --> 00:01:32,390 >> Έτσι, σήμερα έχουμε επικεντρωθεί σε αυτό το θέμα - 30 00:01:32,390 --> 00:01:35,360 όχι μόνο κάποιες απειλές αλλά και άμυνες. 31 00:01:35,360 --> 00:01:37,540 Πράγματι, στον κόσμο της ασφάλειας εν γένει, 32 00:01:37,540 --> 00:01:39,040 υπάρχει το είδος του αυτό το παιχνίδι της γάτας με το ποντίκι, 33 00:01:39,040 --> 00:01:41,990 και τολμώ να πω τα κακά παιδιά έχουν σχεδόν πάντα ένα πόδι. 34 00:01:41,990 --> 00:01:45,880 Όταν πρόκειται για την αξιοποίηση του υλικού και του λογισμικού για προσωπικούς υπολογιστές δική μας, 35 00:01:45,880 --> 00:01:51,250 πρέπει να συνειδητοποιήσουμε ότι ένας κακός χρειάζεται απλά να βρείτε ένα απλό λάθος - 36 00:01:51,250 --> 00:01:56,150 ένα εκμεταλλεύονται, ένα bug - σε ένα κομμάτι του λογισμικού που έχετε γράψει ή εκτελούνται 37 00:01:56,150 --> 00:01:58,280 προκειμένου για αυτόν ή αυτήν να αναλάβει ολόκληρο το σύστημα μας. 38 00:01:58,280 --> 00:02:02,870 Αντίθετα, εμείς - οι καλοί - πρέπει να επιδιορθώσει και να διορθώσετε όλα αυτά τα σφάλματα 39 00:02:02,870 --> 00:02:04,900 και την αποφυγή όλων αυτών των αδυναμιών. 40 00:02:04,900 --> 00:02:07,870 Και έτσι, τολμώ να πω σε γενικές γραμμές, οι κακοί έχουν το πλεονέκτημα. 41 00:02:07,870 --> 00:02:10,840 Τι μαθήματα όπως αυτό και τα επόμενα μαθήματα είναι πραγματικά για 42 00:02:10,840 --> 00:02:14,830 δεν είναι να σας διδάξει για το πώς να διεξάγουν τις μάχες που κάνουν αυτές οι κακοί, 43 00:02:14,830 --> 00:02:18,220 αλλά είναι για το πώς να προστατεύσετε τον εαυτό σας ή τουλάχιστον πώς να κάνει μια υπολογισμένη απόφαση 44 00:02:18,220 --> 00:02:22,970 ότι ναι, το ξέρω αυτό το κομμάτι του λογισμικού θα μπορούσε να διαβάσει πράγματι κάθε ένα από τα e-mail μου, 45 00:02:22,970 --> 00:02:27,040 αλλά είμαι εντάξει με ότι λόγω της αξίας που μου φέρνει από την άλλη πλευρά. 46 00:02:27,040 --> 00:02:31,060 >> Είμαι πολύ ευτυχής να ενωθεί με 2 από τα πιο έξυπνα άτομα που γνωρίζω - 47 00:02:31,060 --> 00:02:33,060 Rob Bowden και Nate Hardison. 48 00:02:33,060 --> 00:02:36,850 Rob είναι για να μας πάρουν για μια περιήγηση μέσα από το χαμηλότερο επίπεδο των ετικετών ασφαλείας - 49 00:02:36,850 --> 00:02:42,470 ότι από το μεταγλωττιστή που, μέχρι τώρα, όλοι έχουμε αγαπήσει και εμπιστεύονται. Rob Bowden. 50 00:02:42,470 --> 00:02:47,790 [Χειροκροτήματα] 51 00:02:47,790 --> 00:02:50,280 >> [Rob] Εντάξει. Ο David έχει λάβει λίγο πολύ όλη μου κουβεντιάζω 52 00:02:50,280 --> 00:02:52,320 ότι ήμουν έτοιμος να εισαγάγει με, αλλά - 53 00:02:52,320 --> 00:02:58,070 Αρκετές εβδομάδες πριν, είδες το παράδειγμα μιας επίθεσης ρυθμιστικό-υπερχείλιση 54 00:02:58,070 --> 00:03:01,900 η οποία είναι ένα παράδειγμα ενός hacking χάκερ σε κάποιο κομμάτι του λογισμικού 55 00:03:01,900 --> 00:03:06,060 ότι δεν έπρεπε να hacking σε. 56 00:03:06,060 --> 00:03:09,690 Η άλλη πλευρά της παρούσας 57 00:03:09,690 --> 00:03:14,470 είναι μερικές φορές έχετε λογισμικό που είναι κακόβουλο και αυτή η ίδια. 58 00:03:14,470 --> 00:03:17,070 Δεν χρειάζεται καν να είναι hacked. 59 00:03:17,070 --> 00:03:20,670 Το πρόσωπο που έγραψε το λογισμικό που θέλει να χαράξει. 60 00:03:20,670 --> 00:03:22,190 >> Ας άλμα δικαίωμα σε κώδικα, 61 00:03:22,190 --> 00:03:28,560 ρίχνοντας μια ματιά στο "login.c". 62 00:03:28,560 --> 00:03:33,390 Εδώ, μια ανόητη πρόγραμμα που επικυρώνει ένα όνομα χρήστη και κωδικό πρόσβασης συνδυασμό. 63 00:03:33,390 --> 00:03:39,420 Εδώ θα πρέπει σίγουρα να πάρει άνετα με το C και πάλι για το κουίζ. 64 00:03:39,420 --> 00:03:43,470 Πρώτον, χρησιμοποιούμε πάρει χορδές για να περιγράψει το όνομα χρήστη, 65 00:03:43,470 --> 00:03:46,280 τότε είμαστε χρησιμοποιώντας get string για να αρπάξει τον κωδικό πρόσβασης, 66 00:03:46,280 --> 00:03:50,680 και στη συνέχεια να έχουμε κάποια ασήμαντα ελέγχους ακριβώς, είναι το όνομα «ληστέψει»; 67 00:03:50,680 --> 00:03:52,710 Και είναι ο κωδικός πρόσβασης "thisiscs50"; 68 00:03:52,710 --> 00:03:56,900 Ή, είναι το όνομα "Tommy" και τον κωδικό "i <3javascript"; 69 00:03:56,900 --> 00:03:58,980 Εάν ένα από αυτά είναι η περίπτωση, 70 00:03:58,980 --> 00:04:01,980  τότε είμαστε ακριβώς πρόκειται να εκτυπώσετε "επιτυχία", και στη συνέχεια να έχουμε πρόσβαση. 71 00:04:01,980 --> 00:04:07,690 Διαφορετικά, θα πάμε να εκτυπώσετε "άκυρο login" και, στη συνέχεια, φυσικά, 72 00:04:07,690 --> 00:04:11,120  από τη μνήμη σκίτσο malloc χορδές, έχουμε δωρεάν το όνομα χρήστη και τον κωδικό πρόσβασης. 73 00:04:11,120 --> 00:04:15,560 Αυτό είναι ένα ασήμαντο πρόγραμμα σύνδεσης, 74 00:04:15,560 --> 00:04:18,110 και αν το σκεφτείτε, όταν συνδεθείτε στη συσκευή, 75 00:04:18,110 --> 00:04:22,350 είναι αρκετά παρόμοιες - ή ακόμα και τη σύνδεση στον υπολογιστή σας - 76 00:04:22,350 --> 00:04:24,930 υπάρχει μόνο κάποια σύνδεση πρόγραμμα που σας δίνει πρόσβαση. 77 00:04:24,930 --> 00:04:31,840 Εδώ, τυχαίνει να έχουν hard-coded «ληστεύουν», «thisiscs50», «Τόμι», «i <3javascript», 78 00:04:31,840 --> 00:04:34,950 αλλά ίσως υπάρχει κάποια αρχείο κάπου για το λειτουργικό σας σύστημα 79 00:04:34,950 --> 00:04:38,690 η οποία έχει μια λίστα με ονόματα που μπορούν να συνδεθούν με το σύστημα 80 00:04:38,690 --> 00:04:41,740 και μια λίστα με τους κωδικούς πρόσβασης που συνδέονται με τις εν λόγω usernames. 81 00:04:41,740 --> 00:04:46,090 Συνήθως δεν είναι μόνο οι κωδικοί πρόσβασης αποθηκεύονται σε απλό κείμενο σαν αυτό. 82 00:04:46,090 --> 00:04:50,360 Υπάρχει κάποιου είδους κρυπτογράφηση, αλλά αυτό θα το κάνει για μας παράδειγμα. 83 00:04:50,360 --> 00:04:57,000 >> Ερχόμενοι πάνω στο compiler μας - 84 00:04:57,020 --> 00:05:00,780 πρόκειται να είναι πολύ απλή. 85 00:05:00,780 --> 00:05:04,800 Θα πρέπει να καθορίσετε τουλάχιστον κάποιο αρχείο που θέλουμε να καταρτίζουν, 86 00:05:04,800 --> 00:05:10,200 και τότε εδώ - αυτές οι γραμμές 87 00:05:10,200 --> 00:05:12,520 διαβάζουν μόνο ένα αρχείο. 88 00:05:12,520 --> 00:05:16,080 Είναι διαβάζει ολόκληρο το αρχείο σε ένα μεγάλο buffer, 89 00:05:16,080 --> 00:05:19,000 και τότε θα τερματίσει null-ρυθμιστικό μας, όπως πάντα, 90 00:05:19,000 --> 00:05:21,000 και τελικά θα συγκεντρώνουν μόλις το αρχείο. 91 00:05:21,000 --> 00:05:24,090 Εμείς δεν πάμε να δούμε πώς μεταγλώττιση εφαρμόζεται στην πράξη, 92 00:05:24,090 --> 00:05:26,820 αλλά ως έναν υπαινιγμό, καλεί μόνο Clang. 93 00:05:26,820 --> 00:05:32,370 Εμείς πάμε για να χρησιμοποιήσετε αυτό το πρόγραμμα για την κατάρτιση πράγματα αντί του Clang. 94 00:05:32,370 --> 00:05:39,260 Ένα πρόβλημα που έχουμε αρχίσει με είναι που βλέπουμε θέλουμε να καταρτίζουν compiler μας, 95 00:05:39,260 --> 00:05:43,620 αλλά αν δεν πρόκειται να χρησιμοποιήσετε Clang, δεν ξέρω τι Πάω να συγκεντρώσει με. 96 00:05:43,620 --> 00:05:46,700 Αυτό είναι ένα γενικό ζήτημα είναι γνωστή ως bootstrapping. 97 00:05:46,700 --> 00:05:53,080 Έτσι, απλά αυτή τη φορά, Πάω να χρησιμοποιήσει Clang για την κατάρτιση compiler μας. 98 00:05:53,080 --> 00:05:58,800 >> Αν νομίζετε ότι του Συμβουλίου Συνεργασίας του Κόλπου και Clang - 99 00:05:58,800 --> 00:06:03,200 τα προγράμματα αυτά, αυτές οι μεταγλωττιστές ανανεώνεται συνεχώς, 100 00:06:03,200 --> 00:06:10,010 και αυτές οι μεταγλωττιστές καταρτίζονται με τη χρήση του GCC και Clang. 101 00:06:10,010 --> 00:06:14,890 Clang είναι μόνο ένα μεγάλο C ή C + + πρόγραμμα, 102 00:06:14,890 --> 00:06:19,510 έτσι τον compiler που χρησιμοποιούν για την κατάρτιση που είναι Clang. 103 00:06:19,510 --> 00:06:26,820 Εδώ, τώρα, είμαστε ακριβώς πρόκειται να χρησιμοποιεί μεταγλωττιστή μας για την κατάρτιση compiler μας, 104 00:06:26,820 --> 00:06:33,830 και μπορούμε να πούμε ακόμη - '/ compiler. »,« compiler.c »,« compile.c »,« o-compiler ». 105 00:06:33,830 --> 00:06:37,250 Παρατηρήστε αυτό είναι η ακριβής εντολή έτρεξα πριν από - 106 00:06:37,250 --> 00:06:41,330 απλώς αντικαταστήσει με Clang ». / μεταγλωττιστή». 107 00:06:41,330 --> 00:06:44,990 Και τώρα έχουμε ένα άλλο compiler, αλλά είναι ακριβώς το ίδιο. 108 00:06:44,990 --> 00:06:47,510 Καλεί μόλις Clang. 109 00:06:47,510 --> 00:06:55,050 >> Εμείς πάμε για να χρησιμοποιήσετε μεταγλωττιστή μας για την κατάρτιση του προγράμματος σύνδεσης μας. 110 00:06:55,050 --> 00:07:03,030 Εντάξει - ". / Compiler login.c-o login". 111 00:07:03,030 --> 00:07:06,160 Έτσι, αόριστη αναφορά σε "GetString". 112 00:07:06,160 --> 00:07:11,250 Πήρε μια "-lcs50". Εντάξει. 113 00:07:11,250 --> 00:07:13,790 Έτσι, τώρα έχω το πρόγραμμα σύνδεσης μας. 114 00:07:13,790 --> 00:07:16,790 Τρέχοντας το - λαμβάνουν "Παρακαλώ εισάγετε το όνομα χρήστη σας". 115 00:07:16,790 --> 00:07:22,140 Ένα παράδειγμα ήταν ληστέψει. Παρακαλώ εισάγετε τον κωδικό σας - thisiscs50. 116 00:07:22,140 --> 00:07:24,930 Και η επιτυχία! Έχω πρόσβαση. 117 00:07:24,930 --> 00:07:28,350 Τρέχοντας ξανά και εισάγοντας κάποια λάθος κωδικό - 118 00:07:28,350 --> 00:07:30,350 ή άκυρο όνομα χρήστη και τον κωδικό πρόσβασης - 119 00:07:30,350 --> 00:07:32,860 άκυρη σύνδεσης. 120 00:07:32,860 --> 00:07:37,740 Εντάξει. Τίποτα ενδιαφέρον σχετικά με αυτό μέχρι σήμερα. 121 00:07:37,740 --> 00:07:43,100 Αλλά, ας ρίξουμε μια ματιά στο login ξανά - 122 00:07:43,100 --> 00:07:47,850 και αυτό πρόκειται να είναι μια κάπως ασήμαντο παράδειγμα, 123 00:07:47,850 --> 00:07:59,330 αλλά ας προσθέσουμε ένα άλλο εδώ και να πω, αλλιώς αν ((strcmp (όνομα, "χάκερ") == 0 && 124 00:07:59,330 --> 00:08:14,510 strcmp (κωδικός πρόσβασης, "LOLihackyou") == 0)) 125 00:08:14,510 --> 00:08:26,280 έτσι και τώρα, printf ("Hacked Τώρα έχετε πρόσβαση \ n!.")? εντάξει. 126 00:08:26,280 --> 00:08:36,240 Μεταγλώττιση αυτό - compiler login.c-o-σύνδεση lcs50 - 127 00:08:36,240 --> 00:08:40,190 τώρα τρέχει σύνδεσης - και αν μπορώ να χρησιμοποιήσω το όνομα χρήστη μου χάκερ 128 00:08:40,190 --> 00:08:44,740 και τον κωδικό πρόσβασης LOLihackedyou - 129 00:08:44,740 --> 00:08:47,780 Μήπως μπορώ να πληκτρολογήσετε λάθος εκεί πριν; 130 00:08:47,780 --> 00:08:52,990 Στο login.c--ihack - I'll δεν hacked γιατί νομίζω ότι το κάνουμε αυτό αργότερα. 131 00:08:52,990 --> 00:08:56,270 Εντάξει. Recompiling. 132 00:08:56,270 --> 00:09:01,500 Re-λειτουργία - hacker - LOLihackedyou - 133 00:09:01,500 --> 00:09:03,650 Hacked! Τώρα έχετε πρόσβαση. 134 00:09:03,650 --> 00:09:06,580 >> Δεν φαίνεται να είναι ότι η μεγάλη διαφορά 135 00:09:06,580 --> 00:09:10,890 γιατί είναι το ίδιο ακριβής έλεγχος έκανα για άλλα ονόματα χρήστη και κωδικούς πρόσβασης. 136 00:09:10,890 --> 00:09:17,720 Πλέον, το μεγάλο πράγμα είναι ότι εάν άλλοι άνθρωποι ματιά σε αυτό το login.c-- 137 00:09:17,720 --> 00:09:24,020 ας πούμε, αν περάσει αυτό το off στο συνεργάτη μου, και ανοίξει αυτό το αρχείο, 138 00:09:24,020 --> 00:09:29,870 και που διαβάζουν αυτό, θα δείτε - εντάξει, γιατί δεν έχετε αυτές τις γραμμές του κώδικα εδώ; 139 00:09:29,870 --> 00:09:33,320 Αυτό προφανώς δεν είναι κάτι που θα πρέπει να είναι στο πρόγραμμά σας. 140 00:09:33,320 --> 00:09:41,590 Σε ορισμένα προγράμματα - όπως και κάθε ιδιόκτητο λογισμικό που δεν είναι open-source - 141 00:09:41,590 --> 00:09:46,200 δεν μπορείτε ποτέ να δείτε αυτές τις γραμμές κώδικα. 142 00:09:46,200 --> 00:09:50,440 Κάτι σαν το Skype ή κάτι - για όλα όσα ξέρετε, 143 00:09:50,440 --> 00:09:57,600 Το Skype είναι στον υπολογιστή σας και υπάρχει μόνο κάποια συγκεκριμένη όνομα χρήστη-κωδικό συνδυασμός 144 00:09:57,600 --> 00:10:01,580 που θα συνδεθείτε με το Skype με κάποιο ιδιαίτερο τρόπο. 145 00:10:01,580 --> 00:10:04,230 Δεν ξέρουμε γι 'αυτό, και οι άνθρωποι δεν το γνωρίζουν, 146 00:10:04,230 --> 00:10:09,640 επειδή δεν έχετε να διαβάσετε το πηγαίο κώδικα για να δείτε ότι υπάρχει αυτή η τρύπα. 147 00:10:09,640 --> 00:10:11,800 >> Αυτό που λέμε αυτό - 148 00:10:11,800 --> 00:10:16,530 αν και αυτό δεν είναι ένα πολύ έξυπνο παράδειγμα - 149 00:10:16,530 --> 00:10:18,970 αυτό ονομάζεται πίσω πόρτα. 150 00:10:18,970 --> 00:10:22,320 Αν νομίζετε ότι από την πίσω πόρτα του σπιτιού σας. 151 00:10:22,320 --> 00:10:26,640 Εδώ, αν μπορώ να επικυρώσω με «ληστέψει» τα ονόματα χρηστών ή «Tommy», 152 00:10:26,640 --> 00:10:28,580 αυτό θα ήταν σαν τη χρήση του "πόρτα". 153 00:10:28,580 --> 00:10:33,700 Αυτός είναι ο τρόπος που είμαι υποτίθεται για να συνδεθείτε με ασφάλεια. 154 00:10:33,700 --> 00:10:37,630 Αλλά αν μπαίνω με αυτό το όνομα χρήστη και τον κωδικό πρόσβασης - 155 00:10:37,630 --> 00:10:40,630 τότε αυτό είναι με τη χρήση του "πίσω πόρτα". 156 00:10:40,630 --> 00:10:42,810 Δεν ήταν η πρόθεση τρόπος για να μπει στο πρόγραμμα, 157 00:10:42,810 --> 00:10:45,350 αλλά εξακολουθεί να λειτουργεί. 158 00:10:45,350 --> 00:10:49,160 Και δεν είναι οι άνθρωποι γενικά υποτίθεται ότι πρέπει να ξέρετε για αυτές τις πίσω πόρτες. 159 00:10:49,160 --> 00:10:53,050 Εμείς πάμε για να βελτιωθεί αυτό. 160 00:10:53,050 --> 00:10:55,610 Ας επανέλθει στο αρχικό αυτό login.c μας, 161 00:10:55,610 --> 00:11:05,510 και ας ρίξουμε μια ματιά στο νέο compiler μας. Εντάξει. 162 00:11:05,510 --> 00:11:08,460 Τα πάντα εδώ είναι ακριβώς το ίδιο. 163 00:11:08,460 --> 00:11:10,460 Είμαστε ανάγνωση ολόκληρο το αρχείο σε ένα ρυθμιστικό. 164 00:11:10,460 --> 00:11:14,400 Τα πάντα εδώ κάτω είναι το ίδιο. 165 00:11:14,400 --> 00:11:16,180 Θα καταρτίζονται μόνο το αρχείο. 166 00:11:16,180 --> 00:11:19,770 Αλλά τώρα έχω αυτό το μεγάλο, αν εδώ 167 00:11:19,770 --> 00:11:24,140 που λέει ότι, αν το αρχείο που τυχαίνει να είναι login.c κατάρτιση, 168 00:11:24,140 --> 00:11:27,390 τότε να κάνω κάτι το ιδιαίτερο. 169 00:11:27,390 --> 00:11:29,900 Τι είναι αυτό το κάτι ιδιαίτερο; 170 00:11:29,900 --> 00:11:33,820 Βλέπω εδώ κάποια σειρά που ονομάζεται «hack», 171 00:11:33,820 --> 00:11:35,950 και κοιτάζοντας αυτές τις γραμμές κώδικα - 172 00:11:35,950 --> 00:11:41,990 αυτές είναι οι ίδιες γραμμές κώδικα - Υποθέτω ότι έκανα χρήση »ihack» και όχι «ihacked» πριν - 173 00:11:41,990 --> 00:11:44,240 κοιτάζοντας αυτές τις γραμμές κώδικα, 174 00:11:44,240 --> 00:11:47,880 ότι είναι οι ίδιες ακριβώς γραμμές του κώδικα που είχα στο login.c πριν. 175 00:11:47,880 --> 00:11:51,130 Αλλά τώρα, αντί να τους login.c, 176 00:11:51,130 --> 00:11:54,290 Πάω να τους θέσουν σε compiler μου. 177 00:11:54,290 --> 00:12:00,240 >> Αυτές είναι οι γραμμές του κώδικα Πάω να θέλετε να εισάγετε σε login.c. 178 00:12:00,240 --> 00:12:06,350 Αυτές οι γραμμές κώδικα - το ρυθμιστικό που πραγματοποιήθηκε αρχικά login.c μου 179 00:12:06,350 --> 00:12:11,080 δεν είναι πλέον πρόκειται να είναι αρκετά μεγάλο, γιατί τώρα θέλω να εισάγετε επίσης αυτό το hack 180 00:12:11,080 --> 00:12:12,940 στη μέση του προγράμματός μου. 181 00:12:12,940 --> 00:12:16,350 Όλα αυτά που κάνει είναι να δημιουργεί ένα νέο ρυθμιστικό που είναι αρκετά μεγάλο - 182 00:12:16,350 --> 00:12:22,020 τόσο για το αρχικό αρχείο και τις επιπλέον γραμμές κώδικα - το hack - που θέλω να τοποθετήσετε εκεί. 183 00:12:22,020 --> 00:12:24,920 Εδώ είναι κάτι να παρατηρήσετε - 184 00:12:24,920 --> 00:12:29,200 char * μοτίβο = "/ / να αρνηθεί πρόσβαση σε αυτά!" 185 00:12:29,200 --> 00:12:33,760 Αν κοιτάξουμε πίσω στο login.c, 186 00:12:33,760 --> 00:12:37,690 βλέπουμε εδώ κάτω αυτό το σχόλιο - τους αρνείται την πρόσβαση! 187 00:12:37,690 --> 00:12:42,360 Σε login.c, αυτό το σχόλιο φαίνεται τελείως αβλαβές, 188 00:12:42,360 --> 00:12:48,270 έτσι δεν θα υποπτεύεστε οποιαδήποτε κακόβουλη πρόθεση με ακριβώς αυτό το σχόλιο. 189 00:12:48,270 --> 00:12:55,600 Αλλά σε compiler μας, ειδικά πρόκειται να δούμε για αυτή τη γραμμή του κώδικα, 190 00:12:55,600 --> 00:12:57,600 και στη συνέχεια, όταν θα το βρείτε - 191 00:12:57,600 --> 00:13:03,330 αυτές οι γραμμές κώδικα τοποθετείτε hack μας σε αυτή τη θέση. 192 00:13:03,330 --> 00:13:06,910 Έτσι, έχουμε την επανάληψη καθ 'όλη τη login.c, 193 00:13:06,910 --> 00:13:12,080 είμαστε προσθέτοντας την αμυχή ακριβώς εκεί που λέει να αρνηθεί πρόσβαση σε αυτά, 194 00:13:12,080 --> 00:13:15,890 και στη συνέχεια να είμαστε σύνταξη - όχι το αρχικό login.c 195 00:13:15,890 --> 00:13:20,340 αλλά η νέα login.c με το hack τοποθετηθεί δεξιά στο "τους αρνείται την πρόσβαση. 196 00:13:20,340 --> 00:13:29,190 >> Τώρα θέλω να καταρτίσει νέο compiler μου με αυτό το hack που εμπλέκονται. 197 00:13:29,190 --> 00:13:36,900 Είμαι δεν πρόκειται να χρησιμοποιήσετε Clang, οπότε ας αντιγράψει τον compiler που χρησιμοποιείται πριν από την 198 00:13:36,900 --> 00:13:48,420 και να τις χρησιμοποιούν - έτσι, compiler compiler.c compile.c-o evil_compiler. 199 00:13:48,420 --> 00:13:50,870 Τώρα το κακό compiler μας - 200 00:13:50,870 --> 00:13:54,310 αν χρησιμοποιήσουμε το κακό μας μεταγλωττιστή για την κατάρτιση οποιοδήποτε άλλο αρχείο, 201 00:13:54,310 --> 00:13:57,980 το αρχείο θα συντάξει όπως θα έπρεπε. 202 00:13:57,980 --> 00:13:59,980 Είναι απολύτως φυσιολογικό. 203 00:13:59,980 --> 00:14:06,870 Αλλά αν χρησιμοποιήσουμε το κακό μας μεταγλωττιστή για την κατάρτιση σύνδεσης - 204 00:14:06,870 --> 00:14:14,920 έτσι, / evil_compiler login.c-o-σύνδεση lcs50. - 205 00:14:14,920 --> 00:14:21,310 κοιτάζοντας login.c πάλι, δεν υπάρχει απολύτως τίποτα εδώ. 206 00:14:21,310 --> 00:14:25,770 Είναι συνηθισμένο μας αν είναι είτε ληστέψει ή tommy είμαστε μέσα, αλλιώς είμαστε έξω ». 207 00:14:25,770 --> 00:14:31,620 Αλλά όταν τρέξουμε το εκτελέσιμο μας, αυτό θα λειτουργήσει ως συνήθως. 208 00:14:31,620 --> 00:14:36,640 Τρέξιμο και πάλι - χάκερ, LOLihackyou - 209 00:14:36,640 --> 00:14:39,000 Hacked! Τώρα έχετε πρόσβαση. 210 00:14:39,000 --> 00:14:43,560 Απλά κοιτάζοντας login.c, δεν θα σκεφτούμε κάτι είναι λάθος. 211 00:14:43,560 --> 00:14:46,960 Αλλά ο compiler που είναι που χρησιμοποιούνται για την κατάρτιση login.c 212 00:14:46,960 --> 00:14:53,820 είναι ειδικά σχεδιασμένο για να εισάγετε αυτό το hack στο πρόγραμμα. 213 00:14:53,820 --> 00:14:57,320 Έχουμε μετακινηθεί μόνο αρχικό μας πρόβλημα. 214 00:14:57,320 --> 00:15:02,880 Αρχικά, είχαμε αυτές τις γραμμές του κώδικα σε login.c ότι αν κάποιος άλλος κοίταξε τους, 215 00:15:02,880 --> 00:15:05,470 θα ήθελα να είναι όπως, γιατί είναι αυτά εδώ; 216 00:15:05,470 --> 00:15:09,550 Τώρα, αν κάποιος τυχαίνει να δούμε compiler μας, 217 00:15:09,550 --> 00:15:12,140 θα δούμε σε αυτές τις γραμμές κώδικα και να πω, 218 00:15:12,140 --> 00:15:15,290 γιατί είναι αυτά εδώ; 219 00:15:15,290 --> 00:15:17,210 Έτσι, δεν έχουμε λύσει πλήρως το πρόβλημα μας. 220 00:15:17,210 --> 00:15:22,510 Αλλά μπορούμε να χρησιμοποιήσουμε αυτή την ιδέα και πάλι. 221 00:15:22,510 --> 00:15:26,260 >> Ρίχνοντας μια ματιά στην τρίτη έκδοση μας της μεταγλώττισης, 222 00:15:26,260 --> 00:15:32,500 Είναι η ίδια ιδέα. 223 00:15:32,500 --> 00:15:36,240 Έχουμε διαβάσει ολόκληρο το αρχείο σε ένα ρυθμιστικό μέχρι εδώ, 224 00:15:36,240 --> 00:15:39,660 θα καταρτίσει το αρχείο εδώ κάτω, 225 00:15:39,660 --> 00:15:44,220 και έχω κάποια αμυχή σε σειρά εδώ, 226 00:15:44,220 --> 00:15:47,710 αλλά το αρχείο παρατηρήσετε ότι είμαι πραγματικά hacking τώρα. 227 00:15:47,710 --> 00:15:52,260 Είμαι hacking compiler.c 228 00:15:52,260 --> 00:15:54,590 δεν login.c. 229 00:15:54,590 --> 00:15:57,780 Αλλά τι είμαι εισάγοντας compiler.c; 230 00:15:57,780 --> 00:16:04,600 Είμαι εισάγοντας τον κωδικό αυτό που είναι η ακριβής κωδικός στην προηγούμενη μεταγλωττιστής μας, 231 00:16:04,600 --> 00:16:10,540 η οποία είχε ως στόχο να εισάγετε τον κωδικό στο login.c. 232 00:16:10,540 --> 00:16:13,360 Εδώ είναι αν login.c μας αρχείο strcmp 233 00:16:13,360 --> 00:16:19,370 και στη συνέχεια τοποθετήστε σε login.c πράγματα hack μας. 234 00:16:19,370 --> 00:16:26,010 Αυτό το νέο compiler έχει ως στόχο να δημιουργήσει ένα μεταγλωττιστή 235 00:16:26,010 --> 00:16:30,390 το οποίο προορίζεται για την κατάρτιση login κακόβουλα. 236 00:16:30,390 --> 00:16:34,320 Θα δούμε γιατί αυτό μας βοηθάει. 237 00:16:34,320 --> 00:16:40,630 Όλα τα άλλα είναι το ίδιο, έτσι ώστε να λειτουργεί ακριβώς όπως λειτούργησε με την προηγούμενη compiler μας. 238 00:16:40,630 --> 00:16:45,550 Είμαστε απλώς επανάληψη σε ολόκληρο compile.c μας. 239 00:16:45,550 --> 00:16:48,190 Τώρα, όμως, αντί να ψάχνει για «τους αρνείται την πρόσβαση, ' 240 00:16:48,190 --> 00:16:51,490 ψάχνουμε για «τη σύνταξη του αρχείου." 241 00:16:51,490 --> 00:16:53,750 Πού καταρτίσει το αρχείο; 242 00:16:53,750 --> 00:16:57,210 Κοιτάζοντας εντελώς αθώα compiler.c μας, 243 00:16:57,210 --> 00:17:01,340 Είναι εδώ κάτω δεξιά στο κάτω μέρος. 244 00:17:01,340 --> 00:17:06,500 Αυτό το σχόλιο - τη σύνταξη του αρχείου - και πάλι, που μοιάζει εντελώς ακίνδυνη. 245 00:17:06,500 --> 00:17:11,599 Αλλά, σε κακόβουλα δική μας εκδοχή του μεταγλωττιστή, 246 00:17:11,599 --> 00:17:16,550 πρόκειται να - ακριβώς πριν από αυτό το σχόλιο - εισάγετε τον κωδικό αυτό 247 00:17:16,550 --> 00:17:20,690 η οποία έχει ως στόχο να εισάγετε τον κωδικό κατά την κατάρτιση login.c. 248 00:17:20,690 --> 00:17:25,589 >> Υπάρχουν πολλά επίπεδα εμμεσότητας εδώ. 249 00:17:25,589 --> 00:17:29,760 Ας τρέξει πραγματικά. 250 00:17:29,760 --> 00:17:37,360 Και πάλι, θα αντιγράψετε πρωτότυπο compiler μας. 251 00:17:37,360 --> 00:17:48,260 Τώρα, μεταγλώττιση - compiler compiler.c compile.c-o evilest_compiler - 252 00:17:48,260 --> 00:17:52,640 και τώρα evilest_compiler. 253 00:17:52,640 --> 00:17:59,200 Evilest compiler - αν χρησιμοποιήσουμε ότι για την κατάρτιση compiler μας, 254 00:17:59,200 --> 00:18:01,550 Ας δούμε πραγματικά. 255 00:18:01,550 --> 00:18:13,230 Evilest_compiler - φέρνοντας το πάνω, όλος ο τρόπος πίσω στην έκδοση 1 του μεταγλωττιστή μας - 256 00:18:13,230 --> 00:18:19,640 έκδοση 1 του compiler μας, η οποία είχε μόλις διαβάσει το αρχείο και να το μεταφράσει. 257 00:18:19,640 --> 00:18:24,780 Εδώ, γνωρίζουμε ότι evilest_compiler - όταν καταρτίζει αυτό το αρχείο - 258 00:18:24,780 --> 00:18:29,890 πρόκειται να εισάγετε τον κωδικό εδώ πριν από τη σύνταξη του φακέλου, 259 00:18:29,890 --> 00:18:38,510 και ότι ο κώδικας πρόκειται να δούμε ακριβώς όπως τον κωδικό από την δεύτερη έκδοση του compiler μας 260 00:18:38,510 --> 00:18:42,240 που το έκανε αυτό. 261 00:18:42,240 --> 00:18:46,450 Αυτός ο κωδικός, η οποία έχει ως στόχο να σπάσει σε σύνδεση, 262 00:18:46,450 --> 00:18:56,480 πρόκειται να εισαχθεί compiler μας από τον compiler evilest. 263 00:18:56,480 --> 00:19:08,600 Ας χρησιμοποιήσουμε evilest_compiler για την κατάρτιση compiler μας. 264 00:19:08,600 --> 00:19:15,040 Τώρα θα χρησιμοποιήσουμε μεταγλωττιστή, 265 00:19:15,040 --> 00:19:19,460 επανέλθει πάνω για να συνδεθείτε, 266 00:19:19,460 --> 00:19:25,280 και να θυμάστε αυτό login.c έχει απολύτως τίποτα ύποπτο σε αυτό. 267 00:19:25,280 --> 00:19:35,250 Αλλά με τη χρήση compiler μας για την κατάρτιση login.c, 268 00:19:35,250 --> 00:19:38,430 ληστεύουν, thisiscs50, επιτυχία. 269 00:19:38,430 --> 00:19:44,350 Χάκερ login Ας, LOLihackyou, Hacked! Τώρα έχετε πρόσβαση. 270 00:19:44,350 --> 00:19:49,710 >> Αναγνωρίστε ότι αυτό ήταν διαφορετικό από την έκδοση 2 του μεταγλωττιστή μας. 271 00:19:49,710 --> 00:20:00,500 Ο compiler που χρησιμοποιούμε - ας προχωρήσουμε πίσω - από αντίγραφο σύνδεσης - 272 00:20:00,500 --> 00:20:01,880 ας μας φέρει πίσω compiler εδώ. 273 00:20:01,880 --> 00:20:06,360 Αφαίρεση compiler evilest. 274 00:20:06,360 --> 00:20:08,970 Όλοι έχουμε μείνει τώρα είναι compiler. 275 00:20:08,970 --> 00:20:10,950 Αν κοιτάξουμε compiler.c, 276 00:20:10,950 --> 00:20:16,840 δεν υπάρχει απολύτως τίποτα εκεί που φαίνεται σε κάθε κακόβουλο τρόπο. 277 00:20:16,840 --> 00:20:22,390 Αν κοιτάξουμε login.c, 278 00:20:22,390 --> 00:20:28,790 δεν υπάρχει απολύτως τίποτα εδώ που μοιάζει κακόβουλο με οποιονδήποτε τρόπο. 279 00:20:28,790 --> 00:20:34,600 Όμως, όταν χρησιμοποιούμε compiler μας για την κατάρτιση login.c, 280 00:20:34,600 --> 00:20:38,840 παίρνουμε την hackable έκδοση του login.c. 281 00:20:38,840 --> 00:20:41,850 Όταν χρησιμοποιείται compiler μας να καταρτίσει μια νέα έκδοση του μεταγλωττιστή, 282 00:20:41,850 --> 00:20:46,620 παίρνουμε την hackable έκδοση του μεταγλωττιστή. 283 00:20:46,620 --> 00:20:51,790 Τώρα αν πάμε έξω και να διανέμουν εκτελέσιμο compiler μας, 284 00:20:51,790 --> 00:20:59,280 και κανείς δεν θα ξέρει ότι δεν υπάρχει τίποτα κακόβουλο γι 'αυτό. 285 00:20:59,280 --> 00:21:04,680 >> Αυτό είναι στην πραγματικότητα τόσο σε - δεν μπορώ να θυμηθώ το έτος - 286 00:21:04,680 --> 00:21:10,350 Ken Thompson, και κέρδισε το βραβείο Turing - 287 00:21:10,350 --> 00:21:15,600 αν είστε εξοικειωμένοι με το Βραβείο Turing, είναι σχεδόν πάντα ορίζεται ως η 288 00:21:15,600 --> 00:21:20,160 Βραβείο Νόμπελ της επιστήμης των υπολογιστών, έτσι ώστε να είναι το πώς θα το καθορίσει. 289 00:21:20,160 --> 00:21:24,100 Ken Thompson έδωσε μια ομιλία, όταν έλαβε το Turing Award του 290 00:21:24,100 --> 00:21:27,150 που ονομάζεται "Σκέψεις για Εμπιστοσύνη Trust." 291 00:21:27,150 --> 00:21:30,710 Βασικά, αυτή ήταν η ιδέα της ομιλίας του. 292 00:21:30,710 --> 00:21:35,050 Εκτός αντί της μεταγλώττισης μας, μιλούσε για GCC - 293 00:21:35,050 --> 00:21:37,250 ακριβώς ένα άλλο compiler όπως Clang - 294 00:21:37,250 --> 00:21:45,600 και τι έλεγε είναι, όπως login.c μας, login.c μας φαίνεται σχετικά άχρηστο 295 00:21:45,600 --> 00:21:50,190 αλλά μιλούσε για την πραγματική UNIX login.c. 296 00:21:50,190 --> 00:21:53,050 Όταν συνδεθείτε στη συσκευή σας, 297 00:21:53,050 --> 00:21:56,070 υπάρχει κάποια σύνδεση πρόγραμμα που εκτελείται. 298 00:21:56,070 --> 00:21:58,080 Αυτή ήταν η σύνδεση που μιλούσε για. 299 00:21:58,080 --> 00:22:02,420 Αυτό ήταν ουσιαστικά η ιδέα του. 300 00:22:02,420 --> 00:22:09,080 Είπε ότι το ΣΣΚ, που θεωρητικά θα μπορούσε να φυτευτεί ένα bug - 301 00:22:09,080 --> 00:22:12,290 δεν είναι bug, αλλά ένα κακόβουλο κώδικα - 302 00:22:12,290 --> 00:22:16,860 ότι κατά την κατάρτιση του λειτουργία σύνδεσης - η σύνδεση αρχείο - 303 00:22:16,860 --> 00:22:23,700 θα εισάγετε μια πίσω πόρτα, έτσι ώστε θα μπορούσε να πάει σε οποιαδήποτε απολύτως UNIX σύστημα στον κόσμο 304 00:22:23,700 --> 00:22:27,360 και συνδεθείτε με κάποιο συγκεκριμένο όνομα χρήστη και τον κωδικό πρόσβασης. 305 00:22:27,360 --> 00:22:33,710 Εκείνη την εποχή, GCC ήταν λίγο πολύ ο compiler ότι ο καθένας που χρησιμοποιούνται για τίποτα. 306 00:22:33,710 --> 00:22:36,460 Αν κάποιος έτυχε να ενημερώσετε Συμβουλίου Συνεργασίας του Κόλπου, 307 00:22:36,460 --> 00:22:40,880 τότε θα μεταγλωττίσετε GCC χρησιμοποιώντας GCC, 308 00:22:40,880 --> 00:22:44,500 και θα πάρετε ακόμα μια κακή έκδοση του GCC 309 00:22:44,500 --> 00:22:50,140 διότι ακριβώς που συγκεντρώνονται για να αναγνωρίσει ότι ήταν recompiling τον compiler. 310 00:22:50,140 --> 00:22:57,360 Και αν χρησιμοποιείτε ποτέ GCC να μεταγλωττίσετε ένα αρχείο login.c, 311 00:22:57,360 --> 00:23:03,550 τότε θα τοποθετήσετε το πίσω πόρτα που θα μπορούσε να χρησιμοποιήσει για να συνδεθείτε σε οποιονδήποτε υπολογιστή. 312 00:23:03,550 --> 00:23:08,750 >> Αυτό ήταν όλο θεωρητικό, αλλά - ότι η συγκεκριμένη περίσταση ήταν θεωρητική, 313 00:23:08,750 --> 00:23:12,440 αλλά οι ιδέες είναι πολύ πραγματικές. 314 00:23:12,440 --> 00:23:18,250 Το 2003, υπήρχε ένα παρόμοιο παράδειγμα όπου - 315 00:23:18,250 --> 00:23:21,290 θα ρίξουμε μια ματιά σε αυτό το αρχείο, 316 00:23:21,290 --> 00:23:25,870 και δεν έχει απολύτως τίποτα να κάνουν πραγματικά με αυτό, αλλά το σφάλμα είναι παρόμοια. 317 00:23:25,870 --> 00:23:29,390 Αυτό το αρχείο καθορίζει απλώς μια λειτουργία που ονομάζεται χάσμα. 318 00:23:29,390 --> 00:23:31,780 Παίρνει ένα επιχείρημα a, b ένα επιχείρημα, 319 00:23:31,780 --> 00:23:34,270 και η πρόθεση είναι να κάνει μια δια b. 320 00:23:34,270 --> 00:23:37,230 Αλλά κάνει κάποιο έλεγχο σφαλμάτων, 321 00:23:37,230 --> 00:23:40,070 έτσι ξέρουμε ότι τα πράγματα είναι περίεργο, αν συμβεί β να ισούται με μηδέν. 322 00:23:40,070 --> 00:23:44,900 Αν b είναι μηδέν, τότε αυτό χωρίζεται σε 2 περιπτώσεις. 323 00:23:44,900 --> 00:23:46,900 Μπορείτε να δείτε ήδη το σφάλμα. 324 00:23:46,900 --> 00:23:51,840 Η πρώτη περίπτωση - αν είναι μηδέν, τότε κάνουμε μηδέν δια μηδέν, 325 00:23:51,840 --> 00:23:54,300 και εμείς απλώς να πω ότι είναι απροσδιόριστη. 326 00:23:54,300 --> 00:23:56,250 Η δεύτερη περίπτωση - εάν ένας δεν είναι μηδέν, 327 00:23:56,250 --> 00:24:00,580 τότε είναι κάτι σαν 1 διαιρείται με το μηδέν, και καλούμε απλώς ότι το άπειρο. 328 00:24:00,580 --> 00:24:03,730 Αλλιώς θα επιστρέψει το συνηθισμένο μια διαιρεμένη από b. 329 00:24:03,730 --> 00:24:06,390 Και έτσι εδώ, είμαστε λειτουργίας των εν λόγω 3 περιπτώσεις, 330 00:24:06,390 --> 00:24:13,740 και διατρέχουμε πραγματικά χάσμα - το φωνάζει για μένα - 331 00:24:13,740 --> 00:24:21,330 έτσι, αγνοώντας τις προειδοποιήσεις της Clang - 332 00:24:21,330 --> 00:24:24,500 τέλος του μη-κενό λειτουργία - προφανώς δεν είχα καταρτίσει αυτό εκ των προτέρων. 333 00:24:24,500 --> 00:24:26,500 Επιστροφή 0. 334 00:24:26,500 --> 00:24:28,900 Κάντε χωρίζουν - εντάξει. 335 00:24:28,900 --> 00:24:32,470 Με. / Χάσμα, βλέπουμε 3, Infinity, Infinity. 336 00:24:32,470 --> 00:24:39,150 Μηδέν δια μηδέν δεν θα έπρεπε να επιστρέψει το άπειρο. 337 00:24:39,150 --> 00:24:42,840 Και αν δεν έχετε καταλάβει το σφάλμα ακόμη - ή δεν το είδα πριν από - 338 00:24:42,840 --> 00:24:46,800 βλέπουμε ότι κάνουμε ένα = 0. 339 00:24:46,800 --> 00:24:52,610 Μάλλον θα σήμαινε == 0. Πιθανώς. 340 00:24:52,610 --> 00:24:58,640 >> Όμως, αυτό ήταν πραγματικά κάτι που, και πάλι, το 2003, ο πυρήνας του Linux - 341 00:24:58,640 --> 00:25:02,260 έτσι συσκευή μας χρησιμοποιεί τον πυρήνα του Linux - 342 00:25:02,260 --> 00:25:05,550 οποιοδήποτε λειτουργικό σύστημα Linux χρησιμοποιεί τον πυρήνα του Linux - 343 00:25:05,550 --> 00:25:11,610 έτσι ένα bug πολύ παρόμοιο με αυτό εμφανίστηκε. 344 00:25:11,610 --> 00:25:15,180 Η ιδέα πίσω από αυτό το σφάλμα ήταν - 345 00:25:15,180 --> 00:25:18,820 και πάλι, υπήρχε μόνο κάποια λειτουργία που ονομάζεται, και το έκανε ένα κομμάτι του ελέγχου σφάλματος. 346 00:25:18,820 --> 00:25:24,300 Υπήρξαν κάποιες συγκεκριμένες εισόδους ότι αυτό το σφάλμα ελέγχου - 347 00:25:24,300 --> 00:25:30,210 θα έπρεπε να ήταν σαν, εντάξει, δεν μπορείτε να καλέσετε τη λειτουργία αυτή με διαιρέτης του 0. 348 00:25:30,210 --> 00:25:35,070 Έτσι, Πάω να επιστρέψει μόνο κάποιο λάθος. 349 00:25:35,070 --> 00:25:38,090 Εκτός, δεν ήταν τόσο αθώα, όπως ακριβώς ο καθορισμός ίση με 0. 350 00:25:38,090 --> 00:25:46,920 Αντ 'αυτού, αυτή η γραμμή του κώδικα καταλήξαμε να κάνουμε κάτι περισσότερο σαν χρήστης = διαχειριστή. 351 00:25:46,920 --> 00:25:50,500 Ή χρήστη = superuser. 352 00:25:50,500 --> 00:25:59,170 Ήταν ένα αθώο - με την πρώτη ματιά - λάθος που θα μπορούσε να ήταν απλώς λογικό 353 00:25:59,170 --> 00:26:01,560 ότι Ήθελα μόνο να αναφέρουν κάτι συγκεκριμένο 354 00:26:01,560 --> 00:26:05,150 αν ο χρήστης έτυχε να είναι ο διαχειριστής υπερχρήστης. 355 00:26:05,150 --> 00:26:11,220 Αλλά στη συνέχεια εκ νέου το σκέφτομαι, το πρόσωπο που ήθελε να μοιάζει με ένα απλό τυπογραφικό λάθος, 356 00:26:11,220 --> 00:26:14,330 αλλά αν αυτός ο κώδικας όντως κυκλοφορήσει, 357 00:26:14,330 --> 00:26:21,580 τότε θα ήταν σε θέση να χαράξει σε κάθε σύστημα με το πέρασμα μια συγκεκριμένη σημαία - 358 00:26:21,580 --> 00:26:25,200 στην περίπτωση αυτή b = 0 - 359 00:26:25,200 --> 00:26:28,020 και θα κάνει αυτόματα το χρήστη ο διαχειριστής, 360 00:26:28,020 --> 00:26:30,400 και στη συνέχεια να έχει τον πλήρη έλεγχο. 361 00:26:30,400 --> 00:26:32,540 Αυτό συνέβη το 2003. 362 00:26:32,540 --> 00:26:35,700 >> Είναι ακριβώς έτσι συνέβη ότι ο μόνος λόγος που πιάστηκε 363 00:26:35,700 --> 00:26:39,200 ήταν επειδή συνέβη να υπάρχει κάποια αυτοματοποιημένο σύστημα 364 00:26:39,200 --> 00:26:41,540 που παρατήρησε την αλλαγή σε αυτό το αρχείο 365 00:26:41,540 --> 00:26:44,560 η οποία δεν έπρεπε να έχει αλλάξει από έναν άνθρωπο. 366 00:26:44,560 --> 00:26:47,580 Το αρχείο θα πρέπει να έχει δημιουργηθεί αυτόματα. 367 00:26:47,580 --> 00:26:49,780 Είναι ακριβώς έτσι συνέβη ότι κάποιος αγγίξει - 368 00:26:49,780 --> 00:26:52,460 καλά, το πρόσωπο που ήθελε να χαράξει αγγίξει αυτό το αρχείο, 369 00:26:52,460 --> 00:26:55,450 και ο υπολογιστής που αλιεύονται ότι η επαφή. 370 00:26:55,450 --> 00:27:01,750 Έτσι, άλλαξε αυτό και μόνο αργότερα συνειδητοποίησε τι καταστροφή θα ήταν 371 00:27:01,750 --> 00:27:04,830 αν αυτό είχε πάρει έξω στον πραγματικό κόσμο. 372 00:27:04,830 --> 00:27:08,220 >> Ίσως να σκέφτεται ότι - επιστρέφουν για παράδειγμα compiler μας - 373 00:27:08,220 --> 00:27:14,290 ακόμα κι αν δεν μπορούμε να δούμε - κοιτάζοντας το πηγαίο κώδικα - 374 00:27:14,290 --> 00:27:17,490 ότι κάτι ιδιαίτερο είναι λάθος, 375 00:27:17,490 --> 00:27:25,460 αν θέλουμε πραγματικά να κοιτάξουμε στο δυαδικό κώδικα του μεταγλωττιστή, 376 00:27:25,460 --> 00:27:28,670 θα δούμε ότι κάτι δεν πάει καλά. 377 00:27:28,670 --> 00:27:31,260 Για παράδειγμα, αν τρέξουμε λειτουργούν οι χορδές - 378 00:27:31,260 --> 00:27:34,930 το οποίο είναι ακριβώς πρόκειται να δούμε πάνω από ένα αρχείο και να εκτυπώσετε όλες τις χορδές που μπορεί να βρει - 379 00:27:34,930 --> 00:27:37,990 αν τρέξουμε χορδές για compiler μας, 380 00:27:37,990 --> 00:27:42,400 βλέπουμε ότι μια σειρά που βρίσκει είναι το περίεργο - 381 00:27:42,400 --> 00:27:45,500 else if (strcmp (όνομα, "χάκερ") - μπλα, μπλα, μπλα. 382 00:27:45,500 --> 00:27:52,570 Αν κάποιος έτυχε να είναι παρανοϊκός ώστε να μην εμπιστεύονται τους compiler, 383 00:27:52,570 --> 00:27:56,690 θα μπορούσε να τρέξει χορδές και να δούμε αυτό, 384 00:27:56,690 --> 00:28:00,430 και τότε θα ξέρετε ότι υπάρχει κάτι λάθος με το πραγματικό δυαδικό. 385 00:28:00,430 --> 00:28:07,250 Όμως, αναπόφευκτα χορδές ήταν κάτι που συντάχθηκε. 386 00:28:07,250 --> 00:28:11,590 Έτσι, ο οποίος είναι να πούμε ότι compiler μας δεν έχει μόνο πιο ειδικό κωδικό 387 00:28:11,590 --> 00:28:19,240 που λέει, αν χορδές είναι πάντα λειτουργούν με compiler μας, δεν εξάγει όλα αυτά κακόβουλο κώδικα. 388 00:28:19,240 --> 00:28:23,980 >> Η ίδια ιδέα με αν θέλουμε να απο-συναρμολόγηση στο αρχείο - 389 00:28:23,980 --> 00:28:30,440 μάθαμε ότι ο assembler μας φέρνει από τον κώδικα συναρμολόγησης σε κώδικα μηχανής - 390 00:28:30,440 --> 00:28:36,010 μπορούμε να πάμε προς την αντίθετη κατεύθυνση - objdump-d compiler - 391 00:28:36,010 --> 00:28:38,770 θα μας δώσει τη συναρμολόγηση του κώδικα μας. 392 00:28:38,770 --> 00:28:41,730 Κοιτάζοντας αυτό, 393 00:28:41,730 --> 00:28:47,480 είναι αρκετά αινιγματικός, αλλά αν θέλαμε, θα μπορούσαμε να δούμε μέσα από αυτό 394 00:28:47,480 --> 00:28:51,700 και λόγο, περιμένετε, υπάρχει κάτι που συμβαίνει εδώ που δεν πρέπει να συμβαίνει, 395 00:28:51,700 --> 00:28:59,380 και τότε θα αναγνωρίσουμε ότι ο compiler κάνει κάτι κακόβουλο. 396 00:28:59,380 --> 00:29:03,950 Αλλά, ακριβώς όπως χορδές, ποιος μπορεί να πει objdump δεν ήταν ειδικού κάλυκα. 397 00:29:03,950 --> 00:29:11,380 Βασικά, έρχεται κάτω σε σας δεν μπορείτε να εμπιστεύεστε τίποτα. 398 00:29:11,380 --> 00:29:14,310 Το σημείο του χαρτιού που ονομάζεται "Εμπιστοσύνη Trust" είναι 399 00:29:14,310 --> 00:29:17,900 σε γενικές γραμμές, εμπιστευόμαστε compiler μας. 400 00:29:17,900 --> 00:29:21,700 Μπορείτε μεταγλωττίσετε τον κωδικό σας και αναμένουμε ότι θα κάνει ό, τι του ζητήσει να κάνει. 401 00:29:21,700 --> 00:29:26,440 Αλλά, γιατί θα πρέπει να εμπιστεύονται τον compiler; 402 00:29:26,440 --> 00:29:32,120 Δεν έχετε γράψει τον compiler. Δεν ξέρετε τι ο compiler είναι κατ 'ανάγκη πραγματικά να κάνει. 403 00:29:32,120 --> 00:29:36,870 Ποιος μπορεί να πει ότι μπορείτε να εμπιστευθείτε; 404 00:29:36,870 --> 00:29:40,050 Αλλά ακόμα και τότε, καλά, ίσως μπορούμε να εμπιστευτούμε τον compiler. 405 00:29:40,050 --> 00:29:44,670 Υπάρχουν δεκάδες χιλιάδες άνθρωποι που έχουν μελετήσει σε αυτό. 406 00:29:44,670 --> 00:29:51,360 Κάποιος πρέπει να έχουν αναγνωρίσει κάτι ήταν επάνω με το μεταγλωττιστή. 407 00:29:51,360 --> 00:29:55,100 >> Τι θα συμβεί αν μπορούμε να φύγουμε 1 επίπεδο πιο βαθιά; 408 00:29:55,100 --> 00:29:59,450 Θα μπορούσε ακόμη και να τον επεξεργαστή σας. 409 00:29:59,450 --> 00:30:01,250 Όπως γελοίο όπως θα μπορούσε ενδεχομένως να είναι, 410 00:30:01,250 --> 00:30:06,690 ίσως υπάρχει κάποια απατεώνων υπάλληλος της Intel που δημιουργεί αυτούς τους επεξεργαστές 411 00:30:06,690 --> 00:30:12,400 ότι κάθε φορά που ο επεξεργαστής παρατηρεί ότι τρέχετε κάποια εντολή 412 00:30:12,400 --> 00:30:14,570 Αυτό είναι γραφτό να συνδεθείτε με τον υπολογιστή, 413 00:30:14,570 --> 00:30:19,230 ο επεξεργαστής θα δεχτεί κάποιο συγκεκριμένο όνομα χρήστη και κωδικό πρόσβασης συνδυασμό. 414 00:30:19,230 --> 00:30:21,530 Θα εξωφρενικά περίπλοκη, 415 00:30:21,530 --> 00:30:24,790 αλλά κάποιος θα μπορούσε να το κάνει. 416 00:30:24,790 --> 00:30:29,350 Σε εκείνο το σημείο, είστε πραγματικά πρόκειται να ανοίξει τον υπολογιστή σας για να δείτε τον επεξεργαστή 417 00:30:29,350 --> 00:30:35,970 και χρησιμοποιούν ένα μικροσκόπιο για να αναγνωρίσει ότι δεν είναι αυτά τα κυκλώματα που παρατάσσονται όπως θα έπρεπε να είναι; 418 00:30:35,970 --> 00:30:39,730 Κανείς δεν πρόκειται ποτέ να πιάσει αυτό το σφάλμα. 419 00:30:39,730 --> 00:30:45,570 Σε κάποιο σημείο, απλά πρέπει να παραιτηθεί και να εμπιστεύονται κάτι. 420 00:30:45,570 --> 00:30:48,390 Οι περισσότεροι άνθρωποι δεν εμπιστεύονται τον compiler σε αυτό το σημείο. 421 00:30:48,390 --> 00:30:55,760 Δηλαδή δεν είναι απαραίτητο ότι θα έπρεπε. 422 00:30:55,760 --> 00:30:59,350 Κοιτάζοντας κάπως κακόφημο βίντεο - 423 00:30:59,350 --> 00:31:09,280 [Δραματική μουσική παίζει] 424 00:31:09,280 --> 00:31:13,270 [Πρόκειται για ένα σύστημα UNIX. Το ξέρω αυτό.] 425 00:31:13,270 --> 00:31:14,470 [Είναι όλα τα αρχεία -] 426 00:31:14,470 --> 00:31:18,950 Είπε, "Είναι ένα σύστημα UNIX. Ξέρω αυτό." 427 00:31:18,950 --> 00:31:21,760 Αντικαταστήστε το UNIX με ό, τι αγαπημένο λειτουργικό σας σύστημα είναι - 428 00:31:21,760 --> 00:31:25,230 θα μπορούσε να πει, "Είναι ένα σύστημα των Windows. ξέρω αυτό." 429 00:31:25,230 --> 00:31:29,710 Είναι μια εντελώς ανούσια ανακοίνωση, 430 00:31:29,710 --> 00:31:34,450 αλλά για όλα τα γνωρίζουμε, που συμβαίνει να γνωρίζουν μια πίσω πόρτα στο σύστημα UNIX. 431 00:31:34,450 --> 00:31:38,840 Ξέρει κάποιο όνομα χρήστη / κωδικό πρόσβασης συνδυασμό, που στην πραγματικότητα θα την αφήσει να 432 00:31:38,840 --> 00:31:41,540 κάνει ό, τι θέλει. 433 00:31:41,540 --> 00:31:49,000 >> Εντάξει. Η ηθική του σήμερα είναι βασικά δεν μπορείτε να εμπιστευθείτε τίποτα. 434 00:31:49,000 --> 00:31:52,620 Ακόμα και πράγματα που γράφω - δεν έχετε γράψει το μεταγλωττιστή. 435 00:31:52,620 --> 00:31:53,870 Ο compiler θα μπορούσε να είναι κακό. 436 00:31:53,870 --> 00:31:59,140 Ακόμα κι αν είχα γράψει τον compiler, το πράγμα που τρέχει ο compiler θα μπορούσε να είναι κακό. 437 00:31:59,140 --> 00:32:05,210 (Γέλια) Δεν υπάρχει πολύ που μπορείτε να κάνετε. 438 00:32:05,210 --> 00:32:09,050 Ο κόσμος είναι καταδικασμένη. 439 00:32:09,050 --> 00:32:11,570 Back τον David! 440 00:32:11,570 --> 00:32:19,540 [Χειροκροτήματα] 441 00:32:19,540 --> 00:32:21,340 >> [Ντέιβιντ] Ευχαριστώ. Αυτό ήταν πραγματικά θλιβερό. 442 00:32:21,340 --> 00:32:23,910 Αλλά πράγματι, ο Rob είναι σωστή. 443 00:32:23,910 --> 00:32:27,150 Δεν έχουμε πραγματικά μια λύση σε αυτό, αλλά είστε έτοιμος να πάρετε κάποιες λύσεις 444 00:32:27,150 --> 00:32:29,150 σε ορισμένες πιο κοινή άμυνα. 445 00:32:29,150 --> 00:32:31,170 Εν αναμονή του αυτό, ό, τι Nate και έχω κάνει εκεί παρασκηνιακός 446 00:32:31,170 --> 00:32:33,950 ξέρει ότι υπάρχουν τόσα πολλά φορητούς υπολογιστές σε αυτό το δωμάτιο, 447 00:32:33,950 --> 00:32:37,020 έχουμε όλα sniffing του ασύρματου κυκλοφορία που διέρχεται από αυτό το δωμάτιο για τα τελευταία 20 λεπτά 448 00:32:37,020 --> 00:32:39,260 κατά τη διάρκεια της ομιλίας του Rob, έτσι θα πάμε να ρίξουμε μια 2 λεπτά διάλειμμα εδώ. 449 00:32:39,260 --> 00:32:41,740 Nate πρόκειται να συσταθεί, και στη συνέχεια θα πάμε να μιλήσουμε για όλα τα πράγματα 450 00:32:41,740 --> 00:32:46,380 θα μπορούσαμε να είχαμε βρεθεί. (Γέλιο) 451 00:32:46,380 --> 00:32:51,990 >> Έτσι, μπορεί να είχα υπερβολικές λίγο μόνο για χάρη του δράματος, 452 00:32:51,990 --> 00:32:55,990 αλλά θα μπορούσε να είχε sniffing όλων των ασύρματων κίνηση σας, διότι πράγματι, 453 00:32:55,990 --> 00:32:57,240 είναι τόσο εύκολο. 454 00:32:57,240 --> 00:32:59,790 Αλλά υπάρχουν επίσης τρόποι με τους οποίους μπορείτε να υπερασπιστεί ενάντια σε αυτό, και έτσι με αυτό, 455 00:32:59,790 --> 00:33:03,160 Σας δίνω Nate Hardison. >> [Nate] Γλυκό. 456 00:33:03,160 --> 00:33:06,300 (Χειροκροτήματα) 457 00:33:06,300 --> 00:33:08,650 >> [Nate] Ευχαριστώ, φίλε. Εκτιμώ την κραυγή έξω. 458 00:33:08,650 --> 00:33:12,790 Εντάξει! Είναι εβδομάδων παιχνίδι. Είστε ενθουσιασμένος παιδιά; 459 00:33:12,790 --> 00:33:16,670 Ας ελπίσουμε ότι πρόκειται να είναι ένα μεγάλο παιχνίδι το Σάββατο. 460 00:33:16,670 --> 00:33:20,220 Φαντάζομαι ότι εσείς σε αυτό το σημείο - δεδομένου ότι έχετε ένα κουίζ την Τετάρτη 461 00:33:20,220 --> 00:33:24,430 τα πάντα για τον κωδικό, και κάθισε ακριβώς μέσα από μια υπέροχη διάλεξη από τον Rob 462 00:33:24,430 --> 00:33:25,850 με ένα σωρό κώδικα C σε αυτό - 463 00:33:25,850 --> 00:33:28,330 είναι ίσως λίγο κουρασμένος από κώδικα. 464 00:33:28,330 --> 00:33:32,180 Σε αυτό το μέρος, είμαστε στην πραγματικότητα δεν πρόκειται να αγγίξει κανένα απολύτως κώδικα. 465 00:33:32,180 --> 00:33:36,960 Είμαστε ακριβώς πρόκειται να μιλήσουμε για μια τεχνολογία που χρησιμοποιείτε κάθε μέρα, 466 00:33:36,960 --> 00:33:39,790 συχνά για πολλές, πολλές ώρες την ημέρα, 467 00:33:39,790 --> 00:33:46,220 και θα μιλήσουμε για τις επιπτώσεις με ασφάλεια ότι υπάρχουν. 468 00:33:46,220 --> 00:33:48,960 >> Έχουμε μιλήσει πολύ για την ασφάλεια κατά τη διάρκεια του εξαμήνου, 469 00:33:48,960 --> 00:33:53,030 και ξεκίνησε με ένα μικρό κομμάτι της κρυπτογραφίας. 470 00:33:53,030 --> 00:33:55,030 [Bdoh lv vwlqng!] 471 00:33:55,030 --> 00:33:57,890 Και ενώ εσείς είστε πιθανώς υπερ-ενθουσιασμένος για να περνούν τις σημειώσεις ο ένας στον άλλο 472 00:33:57,890 --> 00:33:59,890 στην τάξη χρησιμοποιώντας μια cipher Caesar όπως αυτό, 473 00:33:59,890 --> 00:34:03,870 Στην πραγματικότητα, υπάρχει κάποια πιο διασκεδαστικό να είχε όταν είστε πραγματικά μιλάμε για την ασφάλεια 474 00:34:03,870 --> 00:34:05,870 και τέτοιου είδους πράγματα. 475 00:34:05,870 --> 00:34:09,090 Σήμερα, θα πάμε για να καλύψει μερικές τεχνολογίες 476 00:34:09,090 --> 00:34:13,650 ότι οι άνθρωποι χρησιμοποιούν πραγματικά στον πραγματικό κόσμο για να κάνει όλα τα είδη των πραγμάτων 477 00:34:13,650 --> 00:34:18,360 από εισπνοή πακέτα των ανθρώπων πραγματικά να πηγαίνει μέσα και 478 00:34:18,360 --> 00:34:20,409 σπάσιμο σε τραπεζικούς λογαριασμούς των ανθρώπων και όλα αυτά. 479 00:34:20,409 --> 00:34:23,460 Αυτά είναι νόμιμα εργαλεία που μιλάμε για 480 00:34:23,460 --> 00:34:26,320 με την εξαίρεση των ενδεχομένως, ένα εργαλείο. 481 00:34:26,320 --> 00:34:28,889 >> Και θέλω απλώς να κάνω μια γρήγορη αποποίηση ευθυνών. 482 00:34:28,889 --> 00:34:34,909 Όταν μιλάμε για αυτά τα πράγματα, μιλάμε για αυτούς, έτσι ώστε να ξέρετε τι υπάρχει εκεί έξω, 483 00:34:34,909 --> 00:34:39,389 και να είστε ενήμεροι για το πώς να είναι ασφαλείς όταν χρησιμοποιείτε από τον υπολογιστή σας. 484 00:34:39,389 --> 00:34:44,000 Αλλά εμείς σίγουρα δεν θέλουμε να σημαίνει ότι θα πρέπει να χρησιμοποιήσετε αυτά τα εργαλεία 485 00:34:44,000 --> 00:34:48,090 στο dorm σας ή το σπίτι σας, γιατί μπορεί να τρέξει σε πολλά μεγάλα ζητήματα. 486 00:34:48,090 --> 00:34:52,760 Αυτός είναι ένας λόγος σήμερα ότι στην πραγματικότητα δεν ήταν sniffing πακέτων σας. 487 00:34:52,760 --> 00:35:01,300 >> Εντάξει. Την περασμένη Δευτέρα, μιλήσαμε για τα cookies, και HTTP, και ταυτότητας, 488 00:35:01,300 --> 00:35:05,920 και πώς ανοίγει αυτό το Firesheep μεγάλη πόρτα στο λογαριασμό σας στο Facebook, 489 00:35:05,920 --> 00:35:08,670 στο λογαριασμό Hotmail σας - αν κάποιος το χρησιμοποιεί ακόμα το Hotmail - 490 00:35:08,670 --> 00:35:12,360 και πολλούς άλλους λογαριασμούς. 491 00:35:12,360 --> 00:35:16,980 Πολλά από αυτά τα πράγματα πρόκειται να χτίσει μακριά από αυτό, 492 00:35:16,980 --> 00:35:22,070 αλλά πρώτα, θέλω να πάρω μια γρήγορη περιήγηση για το πώς το Διαδίκτυο έχει εξελιχθεί με την πάροδο του χρόνου. 493 00:35:22,070 --> 00:35:27,490 Επιστροφή στη δεκαετία του '90, εσείς θα μπορούσε να υπενθυμίσουμε στην πραγματικότητα συνδέοντας 494 00:35:27,490 --> 00:35:29,880 υπολογιστές σας με ένα από αυτά. 495 00:35:29,880 --> 00:35:32,640 Τώρα εμείς δεν το κάνουμε αυτό τόσο πολύ πια. 496 00:35:32,640 --> 00:35:37,230 Αποδεικνύεται πράγματι ότι, προκειμένου να συνδέσετε ένα καλώδιο Ethernet στο laptop μου, 497 00:35:37,230 --> 00:35:41,710 Τώρα πρέπει να χρησιμοποιήσετε ένα από αυτούς τους προσαρμογείς που είναι το είδος της τρελό. 498 00:35:41,710 --> 00:35:47,580 >> Αντ 'αυτού, το 1997 είχαμε αυτή τη νέα, διασκεδαστική τεχνολογία 499 00:35:47,580 --> 00:35:54,960 βγήκε αυτό που είναι γνωστό ως IEEE 802.11, έτσι αυτό είναι το πρότυπο ασύρματης internet 500 00:35:54,960 --> 00:36:00,430 Το IEEE είναι αυτό που διέπουν το σώμα που δίνει από όλα τα είδη της - 501 00:36:00,430 --> 00:36:04,770 δημοσιεύει όλα τα είδη των προτύπων σε σχέση με ηλεκτρονικούς υπολογιστές. 502 00:36:04,770 --> 00:36:08,780 Τα 802 πρότυπα είναι όλα σχετικά με τις τεχνολογίες του Διαδικτύου. 503 00:36:08,780 --> 00:36:12,690 Έτσι 802,3, για παράδειγμα, είναι το Ethernet πρότυπο, 504 00:36:12,690 --> 00:36:17,120 802.15.1 πιστεύω ότι είναι το πρότυπο Bluetooth, 505 00:36:17,120 --> 00:36:19,540 802,11 και είναι όλα σχετικά με ασύρματη σύνδεση στο Internet. 506 00:36:19,540 --> 00:36:24,150 Το 1997, αυτό βγήκε. Δεν είναι αρκετά πιάσει αμέσως. 507 00:36:24,150 --> 00:36:30,200 Δεν ήταν μέχρι το 1999 και το πρότυπο 802.11b βγήκε ότι μόλις έγινε πολύ δημοφιλής. 508 00:36:30,200 --> 00:36:36,330 >> Πόσοι από εσάς θυμάστε όταν οι υπολογιστές άρχισαν να έρχονται και να πάρει wi-fi για αυτούς; 509 00:36:36,330 --> 00:36:38,330 Αυτό ήταν το είδος δροσερό, ε; 510 00:36:38,330 --> 00:36:41,260 Θυμάμαι ότι είχα πάρει το πρώτο φορητό υπολογιστή μου στο γυμνάσιο, 511 00:36:41,260 --> 00:36:44,250 και είχε μια κάρτα ασύρματου σε αυτό. 512 00:36:44,250 --> 00:36:49,580 Ο μπαμπάς μου το έδωσε σε μένα και έλεγε ότι εγώ θα πρέπει να το χρησιμοποιήσετε για εφαρμογές κολέγιο μου και όλα αυτά, 513 00:36:49,580 --> 00:36:53,030 και δεν είχα καμία ιδέα για το πώς ήμουν έτοιμος να αναζητήσετε αυτό το online πράγματα. 514 00:36:53,030 --> 00:36:54,640 Αλλά ευτυχώς, είχα μια ασύρματη κάρτα, έτσι ώστε να ήταν αρκετά δροσερό. 515 00:36:54,640 --> 00:37:04,090 Σήμερα, θα δείτε επίσης 802.11g το οποίο είναι ένα από το άλλο πολύ δημοφιλές 516 00:37:04,090 --> 00:37:06,090 ασύρματα πρότυπα που είναι εκεί έξω. 517 00:37:06,090 --> 00:37:08,660 Τόσο b και g είναι αρκετά ξεπερασμένο σε αυτό το σημείο. 518 00:37:08,660 --> 00:37:12,580 Ο καθένας ξέρει τι έκδοση περισσότεροι άνθρωποι είναι αυτή τη στιγμή 519 00:37:12,580 --> 00:37:15,110 αν είστε αγοράζοντας νέα ασύρματων routers και τέτοιου είδους πράγματα; 520 00:37:15,110 --> 00:37:24,290 Ν. Ακριβώς. Bingo. Και αποδεικνύεται ότι η ac πρότυπο μόλις βγαίνει σε μορφή σχεδίου, 521 00:37:24,290 --> 00:37:28,050 και υπάρχουν και άλλες εκδόσεις στο δρόμο. 522 00:37:28,050 --> 00:37:31,190 Με κάθε ένα από αυτά τα πρότυπα τι είμαστε κερδίζει είναι μεγαλύτερο εύρος ζώνης, 523 00:37:31,190 --> 00:37:33,900 περισσότερα δεδομένα με ταχύτερο ρυθμό. 524 00:37:33,900 --> 00:37:36,260 Αυτά τα πράγματα αλλάζουν διαρκώς αρκετά γρήγορα. 525 00:37:36,260 --> 00:37:39,880 Καθιστά, επίσης, έτσι ώστε να πρέπει να αγοράσει περισσότερους δρομολογητές και όλα αυτά τα πράγματα διασκέδασης. 526 00:37:39,880 --> 00:37:48,160 >> Ας μιλήσουμε για το τι ασύρματη επικοινωνία είναι πραγματικά στον πυρήνα του. 527 00:37:48,160 --> 00:37:51,790 Με Ethernet και τα παλιά dial-up μόντεμ, 528 00:37:51,790 --> 00:37:55,780 είχατε πραγματικά αυτά τα πράγματα που έχετε συνδέσει στον υπολογιστή σας, 529 00:37:55,780 --> 00:37:59,820 και στη συνέχεια θα συνδεθεί σε ένα μόντεμ του είδους, και στη συνέχεια να το συνδέσει σε μια υποδοχή στον τοίχο σας. 530 00:37:59,820 --> 00:38:01,820 Είχες την ενσύρματη σύνδεση, έτσι δεν είναι; 531 00:38:01,820 --> 00:38:06,030 Το όλο νόημα του ασύρματου είναι να απαλλαγούμε από αυτά τα πράγματα. 532 00:38:06,030 --> 00:38:10,300 Για να το κάνετε αυτό, αυτό που έχουμε είναι ουσιαστικά 533 00:38:10,300 --> 00:38:13,960 ένα ραδιοεπικοινωνίας όπου ασύρματο δρομολογητή μας - 534 00:38:13,960 --> 00:38:16,230 που ορίζεται από λίγο εικονίδιο ασύρματης μας - 535 00:38:16,230 --> 00:38:21,730 είναι συνδεδεμένος στο Internet με αυτό το συμπαγές βέλος δείχνει κάποια ενσύρματη σύνδεση, 536 00:38:21,730 --> 00:38:24,640 αλλά όταν συνδέεστε στο ασύρματο router σας 537 00:38:24,640 --> 00:38:29,190 είστε πραγματικά χρησιμοποιώντας σχεδόν σαν ένα walkie-talkie μεταξύ 538 00:38:29,190 --> 00:38:31,960 υπολογιστή σας και του ασύρματου δρομολογητή σας. 539 00:38:31,960 --> 00:38:35,150 Αυτό που είναι πραγματικά δροσερό για αυτό είναι ότι μπορείτε να μετακινηθείτε. 540 00:38:35,150 --> 00:38:40,900 Μπορείτε να μεταφέρετε τον υπολογιστή σας σε όλη Sanders, να σερφάρετε στο διαδίκτυο, ό, τι θέλετε, 541 00:38:40,900 --> 00:38:43,240 ακριβώς όπως όλοι ξέρουμε και αγαπάμε, 542 00:38:43,240 --> 00:38:46,030 και δεν πρέπει ποτέ να συνδεθεί με τίποτα. 543 00:38:46,030 --> 00:38:53,880 Για να λειτουργήσει αυτό, έχουμε αυτή την τόσο λήψης και διαβίβασης. 544 00:38:53,880 --> 00:38:56,060 Είναι πραγματικά σαν το walkie-talkie. 545 00:38:56,060 --> 00:39:03,800 >> Αυτό το ασύρματο router - η οποία σε Sanders κάθεται κάτω από αυτό το στάδιο, ακριβώς εδώ - 546 00:39:03,800 --> 00:39:06,590 είναι πάντα μετάδοση και λήψη, μετάδοση και λήψη, 547 00:39:06,590 --> 00:39:09,330 και επίσης, τους υπολογιστές σας κάνουν όλοι το ίδιο είδος του πράγματος, πάρα πολύ. 548 00:39:09,330 --> 00:39:12,840 Εμείς απλά δεν μπορούμε να το ακούσω. 549 00:39:12,840 --> 00:39:17,900 Το άλλο πράγμα που μπορείτε να κάνετε είναι να μπορείτε να έχετε πολλούς υπολογιστές 550 00:39:17,900 --> 00:39:22,200 μιλώντας στο ίδιο ασύρματο δρομολογητή. 551 00:39:22,200 --> 00:39:25,680 Όσο πιο κοντά βρίσκεστε σε ένα router - και πάλι, αυτό είναι ένα ραδιοεπικοινωνίας - 552 00:39:25,680 --> 00:39:30,320 όσο πιο κοντά είσαι, τόσο το καλύτερο σήμα σας είναι, τόσο το καλύτερο υπολογιστή σας "ακούει" το router 553 00:39:30,320 --> 00:39:32,460 και μπορούν να επικοινωνούν με το Internet. 554 00:39:32,460 --> 00:39:39,520 Αν εσείς είστε πάντα στο dorm σας, στο σπίτι σας και αναρωτιέστε γιατί το σήμα σας είναι κακό, 555 00:39:39,520 --> 00:39:42,230 είναι πιθανώς επειδή α). δεν είστε πολύ κοντά στο router σας, ή 556 00:39:42,230 --> 00:39:46,930 β). υπάρχει κάτι μεταξύ σας και του δρομολογητή σας, όπως έναν τοίχο τσιμέντο ή κάτι 557 00:39:46,930 --> 00:39:50,720 που δεν αφήνει αυτά τα ραδιοκύματα περνούν. 558 00:39:50,720 --> 00:39:57,850 >> Ας μιλήσουμε λίγο για τους οποίους κακούς, όπως wi-fi. 559 00:39:57,850 --> 00:40:02,980 Bad παιδιά αγαπούν wi-fi για μερικούς λόγους. 560 00:40:02,980 --> 00:40:06,670 Εδώ είναι άσχημη κακός μας εκεί. 561 00:40:06,670 --> 00:40:10,660 Ένας λόγος για τον οποίο αυτή η κακός αγαπά wi-fi 562 00:40:10,660 --> 00:40:18,770 Είναι επειδή, από προεπιλογή, πολλά ασύρματων routers και έρχονται όταν τους έχει συσταθεί, 563 00:40:18,770 --> 00:40:20,950 από όπου και αν μη κρυπτογραφημένα. 564 00:40:20,950 --> 00:40:23,970 Αυτό ήταν ένα πρόβλημα, και έχουν υπάρξει περιπτώσεις - 565 00:40:23,970 --> 00:40:28,210 πολλαπλές εμφανίσεις, τώρα - όπου κακός εμφανίζεται στο σπίτι κάποιου, 566 00:40:28,210 --> 00:40:32,630 παρατηρεί ότι υπάρχει ένα μη κρυπτογραφημένο wi-fi στην οποία μπορούν να συνδεθούν. 567 00:40:32,630 --> 00:40:37,350 Θα συνδεθεί με το wi-fi, και στη συνέχεια να ξεκινήσει η λήψη όλων των ειδών τα πράγματα διασκέδασης. 568 00:40:37,350 --> 00:40:40,890 Και δεν είστε λήψη γατάκια, από όπου και αν δεν είναι το κατέβασμα κουτάβια. 569 00:40:40,890 --> 00:40:44,610 Αυτό είναι όπως το BitTorrent. Αυτό είναι το άσχημο της πιο βρώμικα. 570 00:40:44,610 --> 00:40:48,740 Υπήρξαν περιπτώσεις κατά τις οποίες το FBI έχει ακόμα αναμιχθεί 571 00:40:48,740 --> 00:40:52,390 νομίζοντας ότι το πρόσωπο που κατέχει το σπίτι είναι στην πραγματικότητα το ένα 572 00:40:52,390 --> 00:40:56,090 πάω εκεί έξω και τη λήψη πράγματα που πραγματικά δεν πρέπει να είναι. 573 00:40:56,090 --> 00:41:00,730 Έχοντας χωρίς κρυπτογράφηση wi-fi δεν είναι σίγουρα κάτι που θέλετε να κάνετε, 574 00:41:00,730 --> 00:41:06,340 αν όχι μόνο για να έχουν το FBI έρχεται χτυπήσει στην πόρτα σας. 575 00:41:06,340 --> 00:41:09,910 >> Ένας άλλος λόγος για τον οποίο κακούς αγάπη wi-fi 576 00:41:09,910 --> 00:41:13,870 είναι ο λόγος για τον οποίο ο David μίλησε νωρίτερα κατά τη διάρκεια του διαλείμματος. 577 00:41:13,870 --> 00:41:17,240 Επειδή είναι ένα ραδιοεπικοινωνίας στον πυρήνα του, 578 00:41:17,240 --> 00:41:22,460 αν γνωρίζετε το κανάλι, μπορείτε να ακούσετε το ραδιοφωνικό σταθμό. 579 00:41:22,460 --> 00:41:31,870 Για παράδειγμα, αν υπάρχει μια κακή δεξιά εκεί που κάθεται στη μέση ακριβώς δίπλα στο σημείο πρόσβασης, 580 00:41:31,870 --> 00:41:36,830 ακριβώς δίπλα σε αυτό το ασύρματο router, ο κακός μπορεί να ακούσει σε όλα τα σχετικά με την ασύρματη κίνηση 581 00:41:36,830 --> 00:41:40,240 που έρχεται από όλες αυτές υπολογιστές. 582 00:41:40,240 --> 00:41:44,590 Στην πραγματικότητα, αυτά τα παιδιά - οι λίγοι τυχεροί που είναι εδώ στην πρώτη σειρά - 583 00:41:44,590 --> 00:41:47,610 επειδή είναι εξαιρετικά κοντά σε όλα αυτά τα ασύρματους δρομολογητές 584 00:41:47,610 --> 00:41:49,950 που κάθονται ακριβώς κάτω από τη σκηνή, 585 00:41:49,950 --> 00:41:53,780 θα είναι σε θέση να ακούσουν την κυκλοφορία του καθενός σε αυτό το ολόκληρο δωμάτιο 586 00:41:53,780 --> 00:41:59,480 αν είστε συνδεδεμένοι στο wi-fi και να ξεκινήσετε την περιήγηση μέσα από αυτά τα σημεία πρόσβασης. 587 00:41:59,480 --> 00:42:03,740 Δεν είναι πολύ δύσκολο να τον εαυτό σας να καθίσει σε μια καλή θέση για να οσφραίνομαι και να καταλάβω 588 00:42:03,740 --> 00:42:07,030 ό, τι άλλοι άνθρωποι κάνουν. 589 00:42:07,030 --> 00:42:10,830 Είναι κάτι που πρέπει να θυμάστε, ειδικά εάν δεν είστε σίγουρος, όπου το σημείο πρόσβασης είναι, 590 00:42:10,830 --> 00:42:15,010 και είστε περιήγηση λόγο, σε ένα Starbucks. 591 00:42:15,010 --> 00:42:17,360 >> Αποδεικνύεται ότι η εισπνοή και όλα αυτά 592 00:42:17,360 --> 00:42:19,440 δεν είναι πραγματικά όλα αυτά σκληρά για να κάνουμε. 593 00:42:19,440 --> 00:42:25,430 Υπάρχει ένα πρόγραμμα που ονομάζεται tcpdump που χωματερές όλα τα είδη της κίνησης TCP 594 00:42:25,430 --> 00:42:29,910 και μπορείτε να το τρέξει αρκετά απλά - όπως ακριβώς έκανα σήμερα το πρωί. 595 00:42:29,910 --> 00:42:32,810 Εδώ είναι ένα μικρό κομμάτι από μια χωματερή, και εδώ είναι ένα μέρος της κυκλοφορίας που έρχονται πάνω 596 00:42:32,810 --> 00:42:34,960 δίκτυο μου εκείνη την εποχή. 597 00:42:34,960 --> 00:42:41,500 Μπορείτε να δείτε - αν στραβισμός πραγματικά δύσκολο - υπάρχει ένα μικρό κομμάτι του Spotify εκεί. 598 00:42:41,500 --> 00:42:44,050 Στην κορυφή του tcpdump - γιατί αυτό είναι το είδος του πόνου στη χρήση - 599 00:42:44,050 --> 00:42:48,860 υπάρχει ένα πρόγραμμα που ονομάζεται Wireshark που δέσμες όλα αυτά σε ένα όμορφο γραφικό περιβάλλον. 600 00:42:48,860 --> 00:42:51,970 Το Wireshark είναι υπερ-βολικό οπότε αν πάτε να πάρετε μαθήματα δικτύωσης, 601 00:42:51,970 --> 00:42:56,780 αυτό είναι ένα εργαλείο που θα έρθει στην αγάπη, δεδομένου ότι σας βοηθά να αναλύσουμε όλα τα πακέτα 602 00:42:56,780 --> 00:42:59,400 που επιπλέουν γύρω εκεί έξω. 603 00:42:59,400 --> 00:43:01,810 Αλλά μπορεί επίσης να χρησιμοποιηθεί για την κακή. 604 00:43:01,810 --> 00:43:05,810 Είναι πολύ απλό απλά να κατεβάσετε αυτό το πρόγραμμα, μπότα επάνω, 605 00:43:05,810 --> 00:43:09,300 ξεκινήσετε μια καταγραφή του δικτύου, και να δείτε όλα όσα συμβαίνουν - 606 00:43:09,300 --> 00:43:14,130 και να φιλτράρετε και να κάνει όλα τα είδη της διασκέδασης πράγματα με αυτό. 607 00:43:14,130 --> 00:43:17,930 >> Το άλλο πράγμα που μπορείτε να κάνετε με ασύρματη επικοινωνία 608 00:43:17,930 --> 00:43:25,380 δεν είναι μόνο να σας αφουγκράζομαι, αλλά μπορείτε επίσης να μάθετε πώς να βιδώσετε με το δίκτυο 609 00:43:25,380 --> 00:43:31,020 ένεση και τις δικές σας πληροφορίες για τον έλεγχο της εμπειρίας ότι οι άλλοι άνθρωποι 610 00:43:31,020 --> 00:43:35,140 στο ίδιο ασύρματο δίκτυο είναι να πάρει. 611 00:43:35,140 --> 00:43:37,140 Ας ρίξουμε μια ματιά σε αυτό. 612 00:43:37,140 --> 00:43:40,700 Εδώ είναι Firesheep - που ξέρουμε και αγαπάμε από την περασμένη εβδομάδα - 613 00:43:40,700 --> 00:43:43,590 η οποία είναι ότι η τεχνολογία υποκλοπών. 614 00:43:43,590 --> 00:43:50,360 Αν, για παράδειγμα, θέλαμε να έχουμε ενεργά κακή πάει ο τύπος και το χάος γύρω μας με 615 00:43:50,360 --> 00:43:52,690 ένα από αυτούς τους υπολογιστές, 616 00:43:52,690 --> 00:43:58,380 σε αυτό το σενάριο έχουμε έναν υπολογιστή που προσπαθεί να πάει στο surf harvard.edu. 617 00:43:58,380 --> 00:44:04,690 Αυτό που συμβαίνει είναι, ο υπολογιστής στέλνει πρώτα ένα μήνυμα στο ασύρματο router και λέει, 618 00:44:04,690 --> 00:44:07,920 Γεια σου, θέλω να πάω www.harvard.edu επίσκεψη. 619 00:44:07,920 --> 00:44:10,610 Πείτε για κάποιο λόγο που προσπαθείτε να πάρετε πληροφορίες σχετικά με το παιχνίδι αυτό το Σαββατοκύριακο. 620 00:44:10,610 --> 00:44:14,940 Κακός, αφού κάθεται ακριβώς στη μέση, 621 00:44:14,940 --> 00:44:18,730 ακριβώς δίπλα σε εκείνο το σημείο πρόσβασης, μπορεί να δει ότι η επικοινωνία που προέρχεται από τον υπολογιστή 622 00:44:18,730 --> 00:44:26,170 στο router, και ξέρει, "Aha! Κάποιος πρόκειται να harvard.edu." (Κακία γέλια) 623 00:44:26,170 --> 00:44:33,870 Υπάρχει πρόκειται να είναι αυτή η καθυστέρηση, ενώ η επικοινωνία πηγαίνει από το router 624 00:44:33,870 --> 00:44:37,780 έξω στο Διαδίκτυο για να πάει βρείτε στην ιστοσελίδα στο harvard.edu-- 625 00:44:37,780 --> 00:44:42,020 ακριβώς όπως εσείς όλοι γνωρίζουμε μετά από να κάνει PHP psets σας - 626 00:44:42,020 --> 00:44:45,680 και έτσι ο κακός έχει λίγο χρόνο, λίγο από το παράθυρο, 627 00:44:45,680 --> 00:44:49,410 στο οποίο μπορεί να ανταποκριθεί με κάποια πράγματα. 628 00:44:49,410 --> 00:44:53,660 >> Ας πούμε ότι αυτό το κακό, βέβαια, είναι ένα Yaley. 629 00:44:53,660 --> 00:44:59,990 Εκείνος απαντά με harvardsucks.org. Boo! 630 00:44:59,990 --> 00:45:02,300 Κακός, κακός! Bad Yaley! 631 00:45:02,300 --> 00:45:06,020 Ή ακόμη χειρότερα, θα μπορούσε να απαντήσει με αυτό. [Http://youtu.be/ZSBq8geuJk0]. 632 00:45:06,020 --> 00:45:09,530 Θα σας αφήσω να παιδιά να καταλάβω τι είναι αυτό. 633 00:45:09,530 --> 00:45:14,840 Αυτό είναι πραγματικά μια τεχνολογία που ονομάζεται Airpwn! η οποία έκανε το ντεμπούτο του στο 634 00:45:14,840 --> 00:45:18,950 ένα από τα συνέδρια ασφαλείας σε λίγα χρόνια πίσω. 635 00:45:18,950 --> 00:45:25,190 Με Airpwn! είστε σε θέση να εισφέρει στην πραγματικότητα πίσω κίνηση στο δίκτυο. 636 00:45:25,190 --> 00:45:30,060 Οι υπολογιστές που προσπαθούν να βγουν στο Internet και να προσπαθούν να πείσουν για 637 00:45:30,060 --> 00:45:33,090 Google.com, να Facebook.com, να harvard.edu 638 00:45:33,090 --> 00:45:39,190 δείτε το κακόβουλο απάντηση έρθει και να αναλάβει αμέσως, εντάξει, 639 00:45:39,190 --> 00:45:43,550 αυτή είναι η απάντηση που περίμενα και στο τέλος να πάρει από το περιεχόμενο 640 00:45:43,550 --> 00:45:48,860 harvardsucks.org ή nameyourfavoriteshocksite.com, 641 00:45:48,860 --> 00:45:55,270 και μπορείτε να δείτε πόσο γρήγορα τα πράγματα θα επιδεινωθούν. 642 00:45:55,270 --> 00:46:00,190 >> Όλα αυτά τα είδη των πραγμάτων δεν μπορεί να γίνει 643 00:46:00,190 --> 00:46:05,870 με αυτές τις ενσύρματες συνδέσεις, διότι με ενσύρματη σύνδεση 644 00:46:05,870 --> 00:46:08,710 είναι δύσκολο να κατασκοπεύω για την κυκλοφορία. 645 00:46:08,710 --> 00:46:13,020 Αν είμαι κακός και στο ένα άκρο είναι ο υπολογιστής σας 646 00:46:13,020 --> 00:46:14,460 και στο άλλο άκρο είναι router σας - μόντεμ σας - 647 00:46:14,460 --> 00:46:20,180 ο μόνος τρόπος που μπορώ να πάρει στο μεταξύ εν προκειμένω είναι να splice πραγματικά τον υπολογιστή μου 648 00:46:20,180 --> 00:46:22,180 σε κάπου στη μέση 649 00:46:22,180 --> 00:46:26,820 ή να κάνει κάτι άλλο με το router, κάτι κατάντη. 650 00:46:26,820 --> 00:46:33,360 Αλλά με ασύρματο, μπορεί να είναι τόσο εύκολο όσο κάθεται στην πρώτη σειρά της μια τάξη, 651 00:46:33,360 --> 00:46:38,200 και μπορείτε να κάνετε όλα τα είδη των δυσάρεστα πράγματα για τους ανθρώπους στο πίσω μέρος. 652 00:46:38,200 --> 00:46:41,570 >> Ας μιλήσουμε για το πώς μπορεί να υπερασπιστεί ενάντια μερικά από αυτά τα πράγματα. 653 00:46:41,570 --> 00:46:46,860 Οι άνθρωποι που ανέπτυξαν τα πρότυπα ασύρματης - το 802,11 - 654 00:46:46,860 --> 00:46:50,820 δεν είναι χαζός ανθρώπους από οποιοδήποτε τέντωμα της φαντασίας. 655 00:46:50,820 --> 00:46:56,110 Αυτό είναι δροσερό τεχνολογία και όταν έκανε το ντεμπούτο του το 1999, 656 00:46:56,110 --> 00:47:00,780 που βγήκε με αυτό το πρότυπο που ονομάζεται WEP. 657 00:47:00,780 --> 00:47:03,360 Μπορείτε να δείτε εδώ κατά την προσπάθειά σας και να συμμετέχετε σε ένα ασύρματο δίκτυο, 658 00:47:03,360 --> 00:47:07,450 έχετε όλα τα είδη των διαφορετικών επιλογών ασφαλείας. 659 00:47:07,450 --> 00:47:11,800 Αυτό είναι το είδος του πόνου, γιατί υπάρχουν 6 όλοι μαζί 660 00:47:11,800 --> 00:47:14,790 και ποτέ δεν έχει πραγματικά νόημα που 1 για να συμμετέχουν. 661 00:47:14,790 --> 00:47:19,190 Αυτό το 1 στην κορυφή είναι η πρώτη που ήρθε με ονομάζεται WEP. 662 00:47:19,190 --> 00:47:27,960 WEP σημαίνει Wired Equivalent Privacy, πιστεύω, 663 00:47:27,960 --> 00:47:31,730 δεν Wireless πρωτόκολλο κρυπτογράφησης το οποίο είναι ένα κοινό ψευδεπίγραφος. 664 00:47:31,730 --> 00:47:36,170 Επειδή προσπαθεί να σας δώσει ισοδύναμη προστασία της ιδιωτικής ζωής και της προστασίας της ασφάλειας 665 00:47:36,170 --> 00:47:40,590 ισοδύναμη προς εκείνη ενός ενσύρματου δικτύου 666 00:47:40,590 --> 00:47:46,710 Με WEP τι καταλήγει να συμβαίνει είναι, 667 00:47:46,710 --> 00:47:52,300 έχετε ένα απλό, λίγο κωδικό πρόσβασης που πληκτρολογείτε σε αυτό και χρησιμεύει για την κρυπτογράφηση 668 00:47:52,300 --> 00:47:56,210 Όλες οι επικοινωνίες μεταξύ του υπολογιστή σας και σας δρομολογητή σας. 669 00:47:56,210 --> 00:47:58,210 >> Ποιο είναι το πρόβλημα με WEP όμως; 670 00:47:58,210 --> 00:48:01,470 Ο κωδικός πρόσβασης με WEP είναι πολύ μικρή, 671 00:48:01,470 --> 00:48:04,900 και, επίσης, ότι ο καθένας χρησιμοποιεί το ίδιο ακριβώς κωδικό πρόσβασης, 672 00:48:04,900 --> 00:48:07,610  και γι 'αυτό είναι πολύ εύκολο να αποκρυπτογραφήσει. 673 00:48:07,610 --> 00:48:10,580 Έτσι, πολύ γρήγορα οι άνθρωποι καταλάβει ότι το WEP ήταν ένα πρόβλημα, 674 00:48:10,580 --> 00:48:16,100 και ο μόνος λόγος που βλέπετε να εμφανιστούν ακόμα σε αυτό το μικρό τύπος είναι - 675 00:48:16,100 --> 00:48:18,890 υπάρχουν ορισμένα παλαιότερα συστήματα που χρησιμοποιούν WEP - 676 00:48:18,890 --> 00:48:25,710 τι θα πρέπει, αντί να ψάχνει για είναι το WPA και WPA2, ακόμη και πρότυπα 677 00:48:25,710 --> 00:48:29,130 που κυκλοφόρησαν αργότερα. 678 00:48:29,130 --> 00:48:35,040 Τα συστήματα αυτά είναι πολύ καλύτερα να πάει σε προστασία για ασύρματη σύνδεση στο Internet. 679 00:48:35,040 --> 00:48:41,090 Τούτου λεχθέντος, εξακολουθούν να μην έχουν κάποια hackability. 680 00:48:41,090 --> 00:48:44,010 Υπάρχουν εργαλεία έξω εκεί που μπορεί να πάει να το κάνετε αυτό. 681 00:48:44,010 --> 00:48:47,490 Ένα πράγμα ιδιαίτερα που μπορεί να είναι δυσάρεστο είναι ότι 682 00:48:47,490 --> 00:48:55,370 εάν συνδέσετε και επικυρώνονται με έναν ασύρματο δρομολογητή και χρησιμοποιούν κάποιο είδος του 683 00:48:55,370 --> 00:49:00,940 κρυπτογραφημένη επικοινωνία, αποδεικνύεται ότι ένας χάκερ μπορεί να στείλει εύκολα ένα ενιαίο πακέτο 684 00:49:00,940 --> 00:49:03,990 για να αποσυνδεθείτε από το router, 685 00:49:03,990 --> 00:49:07,220 και από τη στιγμή που έχουν αποσυνδεθεί μπορείτε να μπορούν στη συνέχεια να ακούσετε σε - 686 00:49:07,220 --> 00:49:11,800 μπορούν να μυρίσουν τα πακέτα, όπως την προσπάθειά σας να αποκατασταθεί η σύνδεση με το router σας. 687 00:49:11,800 --> 00:49:16,800 Και με αυτές τις πληροφορίες μπορούν στη συνέχεια να πάνε μέσα και να αποκρυπτογραφήσει το υπόλοιπο της επικοινωνίας σας. 688 00:49:16,800 --> 00:49:24,580 Αυτό δεν είναι κατά κανένα τρόπο οποιοδήποτε είδος των ασφαλών πέρα ​​από κάθε φαντασία. 689 00:49:24,580 --> 00:49:30,060 >> Το άλλο πράγμα που μπορείτε να κάνετε όταν την εγκατάσταση ασύρματων δικτύων 690 00:49:30,060 --> 00:49:35,460 ή είστε τους ενώνει είναι - θα παρατηρήσετε ότι εδώ όταν είμαι συνδέει αυτό το δίκτυο, 691 00:49:35,460 --> 00:49:37,640 ζητά για το όνομα του δικτύου μου. 692 00:49:37,640 --> 00:49:41,060 Αυτό είναι επίσης γνωστό ως το SSID. 693 00:49:41,060 --> 00:49:48,610 Και βλέπετε ότι εδώ στα δεξιά έχω ένα κουτί που μου δείχνει τα διαθέσιμα SSID. 694 00:49:48,610 --> 00:49:52,690 Υπάρχει ένα Πανεπιστήμιο του Χάρβαρντ, ένα CS50, CS50 και ένα δίκτυο προσωπικού. 695 00:49:52,690 --> 00:49:59,180 Τώρα, πόσοι από εσάς ήξερε υπήρχε CS50 δίκτυο Προσωπικό γύρω; 696 00:49:59,180 --> 00:50:01,910 Κάποιοι από εσάς. Δεν είναι όλα από εσάς. 697 00:50:01,910 --> 00:50:08,800 Το πρόβλημα με αυτό, φυσικά, είναι ότι αν δεν είχαμε θέσει αυτό επάνω στη λίστα μας SSID, 698 00:50:08,800 --> 00:50:10,930 κανείς δεν θα έπρεπε να γνωρίζει γι 'αυτό πιο πιθανό. 699 00:50:10,930 --> 00:50:16,090 Ελπίζω. Εκτός αν εσείς όλοι προσπαθούν να σπάσουν σε ασύρματα μας. 700 00:50:16,090 --> 00:50:18,700 Αλλά αυτό είναι κάτι που μπορείτε να κάνετε για αυτό είναι πολύ σημαντικό όταν είστε δημιουργία 701 00:50:18,700 --> 00:50:20,280 ένα router στο σπίτι. 702 00:50:20,280 --> 00:50:22,820 Αυτό πιθανώς δεν θα συμβεί για λίγα χρόνια για πολλούς από εσάς, 703 00:50:22,820 --> 00:50:29,010 αλλά δεν έχετε κατά νου ότι η διατήρηση SSID ότι από εκεί και δεν κατονομάζεται επίσης 704 00:50:29,010 --> 00:50:34,630 κάτι σούπερ-κοινό θα βοηθήσει να σας κρατήσει πιο ασφαλές σε μακροπρόθεσμη βάση. 705 00:50:34,630 --> 00:50:38,070 >> Ένα τελευταίο ζευγάρι από τα πράγματα που μπορείτε να κάνετε. Το ένα είναι HTTPS. 706 00:50:38,070 --> 00:50:44,760 Αν είστε σε ένα Starbucks, αν είστε σε ένα δημόσιο wi-fi περιοχή 707 00:50:44,760 --> 00:50:52,620 και εσείς αποφασίσετε να έχετε πρόσβαση στον τραπεζικό σας λογαριασμό, η πρόσβαση στο Gmail σας, σας στο Facebook, 708 00:50:52,620 --> 00:50:56,140 βεβαιωθείτε ότι οι συνδέσεις που πηγαίνει πέρα ​​από HTTPS. 709 00:50:56,140 --> 00:50:59,800 Είναι ένα πρόσθετο στρώμα της ασφάλειας, ένα πρόσθετο στρώμα της κρυπτογράφησης. 710 00:50:59,800 --> 00:51:01,520 Το ένα πράγμα που πρέπει να θυμάστε είναι εδώ, 711 00:51:01,520 --> 00:51:04,740 πόσοι από εσάς έχετε ποτέ κάνει κλικ μέσα από αυτό το μεγάλο, κόκκινο οθόνη που λέει, 712 00:51:04,740 --> 00:51:07,480 "Αυτή η ιστοσελίδα μπορεί να είναι κακή." 713 00:51:07,480 --> 00:51:09,710 Ξέρω ότι έχω. 714 00:51:09,710 --> 00:51:13,090 Είναι μάλλον όταν είστε όλοι περιήγηση να πάω να δω Πατρίδα ή κάτι τέτοιο, έτσι δεν είναι; 715 00:51:13,090 --> 00:51:19,900 Ναι. (Γέλια) Ναι. Ορίστε. Ξέρουμε ποιος παρακολουθεί Πατρίδα. 716 00:51:19,900 --> 00:51:24,540 Η μεγάλη, κόκκινη οθόνη εκεί 717 00:51:24,540 --> 00:51:28,600 συχνά δείχνει ότι funky κάτι συμβαίνει. 718 00:51:28,600 --> 00:51:32,530 Μερικές φορές είναι ακριβώς η ίδια η ιστοσελίδα είναι επισφαλής, 719 00:51:32,530 --> 00:51:35,520 αλλά το ίδιο μεγάλη, κόκκινη οθόνη εμφανίζεται όταν οι άνθρωποι προσπαθούν να 720 00:51:35,520 --> 00:51:37,520 mount δίκτυο επιτίθεται σε σας. 721 00:51:37,520 --> 00:51:40,220 Έτσι, αν δείτε ότι οι μεγάλες, κόκκινο οθόνη καταλήξουμε σε ένα Starbucks, 722 00:51:40,220 --> 00:51:42,440 Μην κάνετε κλικ μέσα από αυτό. 723 00:51:42,440 --> 00:51:45,350 Άσχημα νέα. Άσχημα νέα φέρει. 724 00:51:45,350 --> 00:51:51,490 >> Το τελευταίο πράγμα που μπορείτε να δείτε 725 00:51:51,490 --> 00:51:54,120 είναι κάποιο είδος του VPN. 726 00:51:54,120 --> 00:52:00,280 Αυτό το VPN είναι διαθέσιμο μέσω του Χάρβαρντ - vpn.fas.harvard.edu-- 727 00:52:00,280 --> 00:52:03,260 και τι είναι αυτό που κάνει είναι να δημιουργεί πραγματικά μια ασφαλή σύνδεση 728 00:52:03,260 --> 00:52:06,460 ανάμεσα σε εσάς και το Χάρβαρντ, χοάνες κυκλοφορία σας μέσα από αυτό, 729 00:52:06,460 --> 00:52:12,160 και με αυτόν τον τρόπο, αν κάθεστε σε ένα μέρος όπως ένα Starbucks 730 00:52:12,160 --> 00:52:19,030 μπορείτε να συνδεθείτε στο Χάρβαρντ, να πάρει ότι η ασφαλής κυκλοφορία, και στη συνέχεια, περιηγηθείτε από το Χάρβαρντ. 731 00:52:19,030 --> 00:52:21,950 Και πάλι όχι, αλάνθαστη. Οι άνθρωποι μπορούν να πάρουν στη μέση. 732 00:52:21,950 --> 00:52:25,850 Μπορούν να αρχίσουν να το σπάσει, αλλά αυτό είναι πολύ πιο ασφαλή από ό, τι εμπιστεύονται την ασφάλεια, 733 00:52:25,850 --> 00:52:28,620 του wi-fi και μόνο. 734 00:52:28,620 --> 00:52:32,570 >> Εντάξει. Εν ολίγοις, 735 00:52:32,570 --> 00:52:34,580 όταν την εγκατάσταση ασύρματων δικτύων, 736 00:52:34,580 --> 00:52:37,250 όταν βγείτε έξω για να χρησιμοποιήσετε το ασύρματο στο δημόσιο - 737 00:52:37,250 --> 00:52:43,430 είτε πρόκειται για ένα Starbucks, είτε πρόκειται για Five Guys, είτε πρόκειται για b.good, 738 00:52:43,430 --> 00:52:46,440 κάτι τέτοιο -, όπου και αν έχουν wi-fi - 739 00:52:46,440 --> 00:52:48,440 να αντιλαμβάνεται το περιβάλλον σας. 740 00:52:48,440 --> 00:52:50,440 Να είστε ενήμεροι για το τι μπορούν να κάνουν οι άνθρωποι. 741 00:52:50,440 --> 00:52:53,890 Και να είναι ασφαλές. Μην πρόσβαση στον τραπεζικό σας λογαριασμό. 742 00:52:53,890 --> 00:52:58,740 Θα μπορούσε να είναι ένα απότομο ξύπνημα, εάν κάποιος εμφανίζεται με τον κωδικό πρόσβασής σας αργότερα. 743 00:52:58,740 --> 00:53:05,480 Με αυτό, πηγαίνετε βυσσινί! Και Πάω να γυρίσει τα πράγματα πίσω πάνω στον David για μια τελευταία λέξη. 744 00:53:05,480 --> 00:53:11,270 (Χειροκροτήματα) 745 00:53:11,270 --> 00:53:14,360 >> [Ντέιβιντ] σκέφτηκα να μοιραστώ κάτι από την προσωπική εμπειρία. 746 00:53:14,360 --> 00:53:19,940 Ένα εργαλείο που μπορεί να αρέσει να παίζουν με - αν και η Apple έχει εξαλειφθεί σε μεγάλο βαθμό αυτό το θέμα 747 00:53:19,940 --> 00:53:22,710 αν έχετε ενημερώσει το λογισμικό σας από - 748 00:53:22,710 --> 00:53:26,670 αλλά προς το σκοπό αυτό, του πραγματικά δεν είναι σε θέση να εμπιστεύονται το λογισμικό που χρησιμοποιούμε, 749 00:53:26,670 --> 00:53:33,270 και στα σημεία Nate, να είναι σε θέση να μυρίζει αρκετά ένα κομμάτι από ό, τι άλλοι άνθρωποι κάνουν 750 00:53:33,270 --> 00:53:37,010 εκεί έξω - αυτό ήταν ένα κομμάτι του λογισμικού που βγήκε περίπου ένα χρόνο-και-α-μισό πριν από τώρα. 751 00:53:37,010 --> 00:53:39,010 [IPhoneTracker] [http://petewarden.github.com/iPhoneTracker/] 752 00:53:39,010 --> 00:53:41,010 Εδώ και αρκετό καιρό, το iTunes - πριν από iCloud, όταν ήταν συγχρονισμό iPods ή iPhones σας ή σας 753 00:53:41,010 --> 00:53:45,570 ή iPads σας με το iTunes - προς το συμφέρον των αντιγράφων ασφαλείας, 754 00:53:45,570 --> 00:53:48,340 τι το iPhone σας και άλλες συσκευές αυτές έχουν κάνει για κάποιο χρονικό διάστημα είναι 755 00:53:48,340 --> 00:53:50,340 κάνοντας χρήση των δεδομένων GPS. 756 00:53:50,340 --> 00:53:52,710 >> Γνωρίζετε ίσως ότι τα iPhones και τα Androids σας και τα Windows κινητά τηλέφωνα 757 00:53:52,710 --> 00:53:55,410 και τα παρόμοια, αυτές τις μέρες να παρακολουθείτε όπου θα είναι προς το συμφέρον της δείχνοντάς σας χάρτες 758 00:53:55,410 --> 00:53:59,440 και παρόμοια - και ό, τι η Apple και οι άλλες εταιρείες που κάνουν είναι 759 00:53:59,440 --> 00:54:02,650 που συνήθως παρακολουθούν σχεδόν παντού έχετε πράγματι προς το συμφέρον της 760 00:54:02,650 --> 00:54:05,380 βελτίωση της ποιότητας των παρεχόμενων υπηρεσιών. 761 00:54:05,380 --> 00:54:07,170 Ένα, μπορείτε να πάρετε περισσότερες στοχευμένες διαφημίσεις και τα παρόμοια, 762 00:54:07,170 --> 00:54:10,740 αλλά δύο, μπορούν επίσης να καταλάβουμε πού υπάρχουν wireless hotspots στον κόσμο, 763 00:54:10,740 --> 00:54:14,780 και αυτό μπορεί να βοηθήσει με geo-location - είδος του τριγωνισμού της θέσης των ανθρώπων. 764 00:54:14,780 --> 00:54:18,520 >> Μεγάλη ιστορία σύντομη, όλοι μας είχαν τα πόδια κεραίες για κάποιο χρονικό διάστημα. 765 00:54:18,520 --> 00:54:22,180 Δυστυχώς, η Apple είχε κάνει την απόφαση σχεδιασμού - ή η απουσία του - 766 00:54:22,180 --> 00:54:26,590 δεν την κρυπτογράφηση των πληροφοριών όταν είναι αντίγραφα ασφαλείας στο iTunes. 767 00:54:26,590 --> 00:54:30,330 Και ό, τι ο ερευνητής ασφαλείας που διαπιστώθηκε ήταν ότι αυτό ήταν απλά ένα τεράστιο αρχείο XML - 768 00:54:30,330 --> 00:54:33,810 ένα τεράστιο αρχείο κειμένου - κάθεται στο iTunes το λογισμικό των ανθρώπων, 769 00:54:33,810 --> 00:54:35,400 και αν ήταν ακριβώς λίγο περίεργος, 770 00:54:35,400 --> 00:54:38,990 θα μπορούσατε να πάτε σπρώχνει γύρω από την ιστορία της συζύγου σας, την ιστορία συγκάτοικος σας, 771 00:54:38,990 --> 00:54:41,050 ιστορία αδελφός σας και τα παρόμοια, 772 00:54:41,050 --> 00:54:44,590 και χάρη σε κάποιο ελεύθερο λογισμικό, μπορείτε να σχεδιάσετε όλες αυτές τις συντεταγμένες GPS - 773 00:54:44,590 --> 00:54:46,590 γεωγραφικό πλάτος και μήκος. 774 00:54:46,590 --> 00:54:48,590 >> Έτσι, έκανα πραγματικά αυτό με το δικό μου τηλέφωνο. 775 00:54:48,590 --> 00:54:51,210 Έχω συνδέσει στο τηλέφωνό μου, και αρκετά βέβαιος, έκδοση του iTunes μου δεν ήταν κρυπτογραφημένα κατά τη χρονική στιγμή, 776 00:54:51,210 --> 00:54:53,900 και ό, τι ήμουν σε θέση να δω ήταν δικά μου σχέδια. 777 00:54:53,900 --> 00:54:56,970 Εδώ είναι οι Ηνωμένες Πολιτείες και το καθένα από αυτά τα μπλε κύκλους αντιπροσωπεύει 778 00:54:56,970 --> 00:55:01,670 όπου έτυχε να έχουν πάνω τους προηγούμενους μήνες από την ιδιοκτησία αυτό το συγκεκριμένο τηλέφωνο. 779 00:55:01,670 --> 00:55:04,940  Ξοδεύω πολύ χρόνο, βέβαια, μέχρι στα βορειοανατολικά, λίγο χρόνο στην Καλιφόρνια, 780 00:55:04,940 --> 00:55:08,690 μια βραχύβια ταξίδι στο Τέξας, και στη συνέχεια, αν κάνετε ζουμ σε αυτό - 781 00:55:08,690 --> 00:55:11,120 όλα αυτά είναι είδος ωραία και ενδιαφέρουσα, αλλά ήξερα αυτό. 782 00:55:11,120 --> 00:55:13,890 Οι περισσότεροι φίλοι μου ήξεραν αυτό, αλλά αν έχετε βουτήξει σε πιο βαθιά, 783 00:55:13,890 --> 00:55:17,090 βλέπετε όπου περνάω τον περισσότερο χρόνο μου στα βορειοανατολικά. 784 00:55:17,090 --> 00:55:20,330 Αν μάνταλο επάνω μερικά γνωστά εμφάνιση πόλεις - 785 00:55:20,330 --> 00:55:24,670 αυτό το μεγάλο, μπλε κηλίδα μελανιού είναι επικεντρωμένη πάνω Βοστώνη, 786 00:55:24,670 --> 00:55:29,510 και στη συνέχεια να περάσουν λίγο χρόνο έξω στα προάστια ακτινοβολεί έξω από τη Βοστόνη. 787 00:55:29,510 --> 00:55:32,780 Αλλά έκανα επίσης αρκετά ένα κομμάτι της διαβούλευσης εκείνο το έτος. 788 00:55:32,780 --> 00:55:36,090 Και φέτος είναι η ανατολική ακτή, και μπορείτε να δείτε με πραγματικά 789 00:55:36,090 --> 00:55:41,920 και το iPhone μου στην τσέπη μου που ταξιδεύουν πέρα ​​δώθε μεταξύ της Βοστώνης και της Νέας Υόρκης 790 00:55:41,920 --> 00:55:47,510 Φιλαδέλφεια και πιο κάτω, καθώς και τις δαπάνες λίγο από το χρόνο των διακοπών 791 00:55:47,510 --> 00:55:50,340 στο ακρωτήριο, το οποίο είναι το μικρό βραχίονα εκεί έξω. 792 00:55:50,340 --> 00:55:53,030 Έτσι, κάθε μία από αυτές τις στιγμές αντιπροσωπεύει κάποιο μέρος που είχε, 793 00:55:53,030 --> 00:55:56,970 και τελείως εν αγνοία μου, όλη αυτή η ιστορία ήταν απλά κάθεται εκεί 794 00:55:56,970 --> 00:55:58,410 στον επιτραπέζιο υπολογιστή μου. 795 00:55:58,410 --> 00:56:00,470 Αν σμίκρυνση - αυτό πραγματικά ήταν λίγο ανησυχητικό. 796 00:56:00,470 --> 00:56:04,190 Δεν είχα καμία ανάμνηση του έχουν ποτέ βρεθεί στην Πενσυλβάνια το εν λόγω έτος. 797 00:56:04,190 --> 00:56:07,840 Αλλά αν και είναι λίγο πιο δύσκολο γι 'αυτό και κατάλαβα, OH, ήταν στο γεγονός ότι το ταξίδι 798 00:56:07,840 --> 00:56:11,160 και αρκετά βέβαιος, το τηλέφωνό μου με είχε αλιευθεί. 799 00:56:11,160 --> 00:56:14,180 >> Η Apple έχει κρυπτογραφούνται από αυτές τις πληροφορίες, 800 00:56:14,180 --> 00:56:17,380 αλλά αυτό είναι πάρα πολύ απλά απόδειξη για το πόσο οι πληροφορίες που συλλέγονται για εμάς, 801 00:56:17,380 --> 00:56:20,850 και πόσο εύκολα - προς το καλύτερο ή προς το χειρότερο - είναι αποδεκτό. 802 00:56:20,850 --> 00:56:23,340 Ένα από τα take-aways ελπίζουμε από την ομιλία του Rob, από την ομιλία του Nate 803 00:56:23,340 --> 00:56:27,370 και λίγο γραφικά, όπως αυτή σήμερα είναι ακριβώς για να είναι ακόμα πιο επίγνωση αυτής της 804 00:56:27,370 --> 00:56:31,160 έτσι ώστε ακόμη και αν - ως προς το σημείο του Rob - we're είδος βιδωθεί, έτσι δεν είναι; 805 00:56:31,160 --> 00:56:33,920 Δεν είναι πολλά που μπορούμε να κάνουμε, όταν πρόκειται για ορισμένες από αυτές τις απειλές, 806 00:56:33,920 --> 00:56:37,130 αλλά στο τέλος της ημέρας θα πρέπει να εμπιστεύονται κάτι ή κάποιος 807 00:56:37,130 --> 00:56:38,510 αν θέλουμε να χρησιμοποιήσουμε πραγματικά αυτές τις τεχνολογίες. 808 00:56:38,510 --> 00:56:43,150 Τουλάχιστον μπορούμε να προβαίνουν σε ενημερωμένες αποφάσεις και οι αποφάσεις που υπολογίζονται ή όχι 809 00:56:43,150 --> 00:56:46,390 θα πρέπει πραγματικά να ελέγξει αυτό το ιδιαίτερα ευαίσθητο λογαριασμό 810 00:56:46,390 --> 00:56:49,330 ή θα πρέπει πραγματικά να υποψιάζομαι ότι αποστολή ελαφρώς άμεσο μήνυμα 811 00:56:49,330 --> 00:56:52,180  σε ένα wi-fi περιβάλλον σαν αυτό. 812 00:56:52,180 --> 00:56:54,990 >> Έτσι, με ότι είπε, παραμένει μόνο ένα κουίζ, παραμένει μια διάλεξη. 813 00:56:54,990 --> 00:56:57,740 Θα σας δούμε την Τετάρτη έπειτα Δευτέρα. 814 00:56:57,740 --> 00:57:02,100 (Χειροκροτήματα και επευφημίες) 815 00:57:02,100 --> 00:57:06,100 [CS50TV]