[Powered by Google Translate] [Semaine 10]
[David J. Malan] [Université de Harvard]
[C'est CS50.] [CS50.TV]
>> Très bien! C'est CS50, mais pas pour très longtemps.
C'est le début de la semaine 10.
Mercredi, nous avons notre quiz, puis lundi prochain, nous avons un peu de gâteau de fête
comme nous l'avons fait un tour complet tous le chemin du retour de zéro semaine.
Aujourd'hui, nous parlons de l'un de mes sujets favoris, à vrai dire -
celui de la sécurité et de la vie privée et les implications de l'ensemble du matériel et des logiciels
que nous utilisons tous ces jours-ci.
Pour être honnête, il ya beaucoup de menaces là-bas
que si vous n'avez pas vraiment pris le temps de penser à eux,
ils sont en fait assez intimidant.
Affaire au point - si quelqu'un d'entre vous avez déjà téléchargé un morceau de logiciel
à partir d'Internet et installé sur votre ordinateur,
vous avez engagé dans un important degré de confiance, non?
Il n'ya rien avoir empêché Skype, ou Chrome, ou n'importe quel logiciel
vous avez installé sur votre ordinateur, de la simple suppression de tous les fichiers sur votre disque dur;
de télécharger tous les fichiers sur votre disque dur au serveur un gars de bad;
à la lecture de tous vos e-mails, d'intercepter tous vos messages instantanés.
Parce que la réalité est aujourd'hui avec les systèmes d'exploitation les plus modernes
il n'y a vraiment pas grand-chose d'un mur entre les logiciels que nous installons,
et vous et moi sont à peu près juste une sorte de croiser les doigts et la prise sur la foi
que cette application nous avons téléchargé gratuitement, ou cette chose qui est de 99 cents,
est en réalité tout à fait bénigne.
Mais comme nous l'avons vu à travers C, et maintenant PHP et JavaScript
avec cette capacité de nous exprimer par programmation,
vous pouvez faire presque n'importe quoi que vous voulez avec un programme que l'utilisateur lui-même ou elle-même pourrait faire.
>> Donc, aujourd'hui, nous nous concentrons sur ce sujet -
non seulement des menaces mais aussi des défenses.
En effet, dans le monde de la sécurité en général,
il ya un peu de ce jeu du chat et de la souris,
et j'ose dire que les méchants ont presque toujours une longueur d'avance.
Quand il s'agit de tirer parti du matériel et des logiciels sur nos ordinateurs personnels,
nous devons prendre conscience que le méchant a simplement besoin de trouver une simple erreur -
un exploit, un bug - dans un morceau de logiciel que nous avons écrit ou sont en cours d'exécution
pour que lui ou elle de prendre en charge tout notre système.
En revanche, nous - les bons - besoin de patcher et de corriger tous les bugs
et d'éviter toutes ces faiblesses.
Et donc, si j'ose dire, dans l'ensemble, les méchants ont l'avantage.
Quelles sont les classes de ce genre et classes suivantes sont vraiment de
ne sont pas de vous enseigner la façon de mener les batailles que ces méchants font,
mais sur la façon de vous protéger, ou du moins la façon de rendre une décision calculée
que, oui, je sais que ce logiciel pourrait en effet lire tous mes e-mails,
mais je suis d'accord avec cela en raison de la valeur qu'elle m'amène d'autre part.
>> Je suis très heureux d'être accompagné par 2 personnes les plus intelligentes que je connaisse -
Rob Bowden et Nate Hardison.
Rob est sur le point de nous prendre pour une tournée à travers le niveau le plus bas des étiquettes de sécurité -
celui du compilateur qui, jusqu'à maintenant, nous avons tous appris à aimer et faire confiance. Rob Bowden.
[Applaudissements]
>> [Rob] Très bien. David a assez bien pris mon spiel ensemble
que je vais vous présenter avec, mais -
Il ya quelques semaines, vous avez vu l'exemple d'une attaque par débordement de buffer
qui est un exemple de piratage pirate dans un certain morceau de logiciel
qu'ils ne sont pas censés être dans le piratage.
L'autre côté de cette
est parfois, vous disposez d'un logiciel malveillant qui est en elle-même.
Il n'a même pas besoin d'être piraté.
La personne qui a écrit le logiciel veut vous pirater.
>> Disons simplement sauter à droite dans le code,
jeter un oeil à "login.c".
Ici, un programme stupide qui valide un nom d'utilisateur et mot de passe association.
Ici, vous devez certainement être de se familiariser avec de nouveau sur C pour le quiz.
Tout d'abord, nous utilisons pour décrire l'obtenir le nom d'utilisateur,
puis nous utilisons chaîne get pour récupérer le mot de passe,
et puis nous avons quelques vérifications triviales de juste, c'est le nom d'utilisateur "rob"?
Et le mot de passe "thisiscs50»?
Ou, est le nom d'utilisateur "tommy" et le mot de passe "i <3javascript»?
Si l'un d'entre eux est le cas,
puis nous allons juste d'imprimer "Success", puis nous avons accès.
Sinon, nous allons imprimer "invalid login" puis, bien sûr,
puisque la mémoire croquis chaînes malloc, nous identifiant et mot de passe gratuit.
Il s'agit d'un programme de connexion triviale,
et si vous pensez quand vous vous connectez à l'appareil,
il est assez similaire - ou même se connecter à votre ordinateur -
il ya juste un autre programme de connexion qui vous donne accès.
Ici, nous avons la chance d'avoir codé en dur "rob", "thisiscs50», «tommy», «i <3javascript»,
mais probablement il ya un fichier quelque part sur votre système d'exploitation
qui a une liste de noms d'utilisateurs qui peuvent se connecter au système
et une liste de mots de passe associés à ces utilisateurs.
Habituellement, les mots de passe ne sont pas stockés en clair juste comme ça.
Il ya une sorte de cryptage, mais ce sera pour notre exemple.
>> Venir au cours de notre compilateur -
ça va être très simple.
Nous avons besoin de spécifier au moins un fichier que l'on veut compiler,
et puis ici - ces lignes
sont en train de lire un fichier A.
Il lit le fichier entier en un seul gros buffer,
puis nous null-fin à notre tampon comme toujours,
et enfin nous venons de compiler le fichier.
Nous n'allons pas examiner la façon dont la compilation est effectivement mis en œuvre,
mais comme un indice, il appelle simplement Clang.
Nous allons utiliser ce programme pour compiler des choses au lieu de Clang.
Un problème que nous commençons par nous voyons est que nous voulons établir notre compilateur,
mais si nous n'allons pas utiliser Clang, je ne sais pas ce que je vais compiler avec.
Il s'agit d'une question d'ordre général connu sous le nom d'amorçage.
Donc, juste pour cette fois, je vais utiliser pour compiler Clang notre compilateur.
>> Si vous pensez que de GCC et Clang -
ces programmes, ces compilateurs sont constamment mis à jour,
et ces compilateurs sont compilés avec GCC et Clang.
Clang est juste un grand C ou C + +,
de sorte que le compilateur qu'ils utilisent pour compiler c'est Clang.
Ici, maintenant, nous allons nous contenter d'utiliser notre compilateur pour compiler le compilateur,
et on peut même dire - '/ compilateur.', 'compiler.c »,« compile.c', '-o compilateur.
Remarquez ceci est la commande exacte que j'ai couru avant -
il suffit de remplacer Clang par '. / compilateur.
Et maintenant nous avons un autre compilateur, mais c'est exactement la même chose.
Il appelle simplement Clang.
>> Nous allons utiliser notre compilateur pour compiler notre programme de connexion.
Okay - ". / Compilateur login.c-o login".
Donc, undefined reference to "GetString".
Vous avez une "-lcs50". Okay.
Alors maintenant, j'ai de notre programme de connexion.
Il Running - recevoir "S'il vous plaît entrer votre nom d'utilisateur".
Un exemple a été rob. S'il vous plaît entrer votre mot de passe - thisiscs50.
Et le succès! J'ai accès.
L'exécuter à nouveau et saisissant une partie de mot de passe invalide -
ou nom d'utilisateur valide et mot de passe -
Mot de passe incorrect.
Okay. Rien d'intéressant à propos de cette mesure.
Mais, nous allons jeter un oeil à la connexion à nouveau -
et cela va être un exemple un peu trivial,
mais il faut ajouter un autre ici et dire: else if ((strcmp (nom d'utilisateur, "hacker") == 0 &&
strcmp (mot de passe, "LOLihackyou") == 0))
alors maintenant, printf ("Hacked Vous avez maintenant accès \ n!."); bien.
La compilation de cette - compilateur login.c-o login-lcs50 -
connexion fonctionne maintenant - et si je utiliser mon nom d'utilisateur pirate
et mot de passe LOLihackedyou -
Ai-je tort de le taper là avant?
Au-login.c-ihack - je vais ne piraté parce que je pense que je le faire plus tard.
Okay. Recompiler.
Re-fonctionnement - pirate - LOLihackedyou -
Hacked! Vous avez maintenant accès.
>> Il ne semble pas y avoir que beaucoup de différence
parce que c'est la même vérification exacte que je faisais pour les noms d'utilisateur et mots de passe d'autres.
De plus, la grande chose est que si d'autres personnes regarder cette login.c--
dire, si je passe cette option pour mon partenaire, et ils ouvrent ce fichier,
et ils lisent cela, ils vont voir - d'accord, pourquoi avez-vous ces lignes de code ici?
Ce n'est évidemment pas quelque chose qui devrait être dans votre programme.
Dans certains programmes - comme tout logiciel propriétaire qui n'est pas open-source -
vous ne verrez jamais ces lignes de code.
Quelque chose comme Skype ou quelque chose - pour tout ce que vous savez,
Skype est sur votre ordinateur et il n'y a que quelques-uns spécifique nom_utilisateur-password combinaison
qui va se connecter à Skype d'une manière spéciale.
Nous ne savons pas à ce sujet, et les gens ne le savent pas,
parce qu'ils ne reçoivent pas à lire le code source pour voir qu'il ya ce trou.
>> Ce que nous appelons ceci -
mais ce n'est pas un exemple très intelligent -
c'est ce qu'on appelle une porte de derrière.
Si vous pensez à la porte arrière de la maison.
Ici, si je valider avec «rob» les noms d'utilisateur ou de «Tommy,
ce serait comme utiliser la «porte d'entrée».
C'est comme ça que je suis censé connecter en toute sécurité.
Mais si je rentre avec ce nom d'utilisateur et mot de passe -
alors ce n'est l'aide de la "porte de derrière".
Ce n'était pas la façon intentionnelle pour entrer dans le programme,
mais il fonctionne toujours.
Et les gens en général ne sont pas censés connaître ces portes dérobées.
Nous allons améliorer cette situation.
Nous allons revenir à notre login.c cette origine,
et nous allons jeter un oeil à notre nouveau compilateur. Okay.
Tout ici est exactement le même.
Nous vous lisez l'intégralité du fichier dans un buffer.
Tout ici-bas est la même.
Nous venons tout juste compilé le fichier.
Mais maintenant, j'ai ce gros si ici
qui dit que, si le fichier que je me trouve à la compilation est login.c,
puis-je faire quelque chose de spécial.
Qu'est-ce que quelque chose de spécial?
Je vois ici une chaîne appelée "hack",
et en regardant ces lignes de code -
ce sont les mêmes lignes de code - Je suppose que j'ai fait une utilisation «ihack» et non «ihacked 'avant -
en regardant ces lignes de code,
ce sont exactement les mêmes lignes de code que j'avais en login.c avant.
Mais maintenant, au lieu de les avoir dans login.c,
Je vais les mettre dans mon compilateur.
>> Ce sont les lignes de code que je vais à insérer dans login.c.
Ces lignes de code - le tampon qui a initialement retenu mon login.c
ne va plus être assez grand parce que maintenant je veux aussi insérer ce hack
au milieu de mon programme.
Tout cela ne fait que créer un nouveau tampon qui est assez grand -
à la fois pour le fichier d'origine et les lignes de code supplémentaires - le hack - que je tiens à y insérer.
Voici quelque chose à remarquer -
char * pattern = "/ / leur refuser l'accès!"
Si nous regardons en arrière login.c,
nous voyons ici ce commentaire - leur interdire l'accès!
En login.c, ce commentaire a l'air complètement inoffensif,
de sorte que vous ne soupçonnez une intention malveillante avec juste ce commentaire.
Mais dans notre compilateur, nous allons nous pencher spécifiquement pour cette ligne de code,
et puis quand on le trouver -
ces lignes de code sont l'insertion notre hack dans cette position.
Donc, nous sommes itération sur l'ensemble login.c,
nous insérant ce hack exactement où il est dit leur refuser l'accès,
puis nous rassembler - et non l'origine login.c
mais la nouvelle login.c avec ce hack insérée à droite "leur refuser l'accès.
>> Maintenant, je veux compiler mon nouveau compilateur avec ce hack impliqués.
Je ne vais pas utiliser Clang, nous allons donc copier le compilateur que nous utilisions auparavant
et l'utiliser - donc, le compilateur compiler.c compile.c-o evil_compiler.
Maintenant, notre compilateur mal -
si nous utilisons notre compilateur mal à compiler n'importe quel autre fichier,
le fichier compile comme il se doit.
C'est tout à fait normal.
Mais si nous utilisons mal notre compilateur pour compiler connexion -
ainsi, / evil_compiler login.c-o login-lcs50. -
regardant login.c encore, il n'y a absolument rien là-dedans.
C'est notre habitude »si c'est soit voler ou tommy nous sommes dans le cas contraire nous sommes sortis.
Mais lorsque nous gérons notre exécutable, cela fonctionnera comme d'habitude.
Fonctionne à nouveau - pirate, LOLihackyou -
Hacked! Vous avez maintenant accès.
Il suffit de regarder login.c, vous ne penseriez pas quelque chose est erroné.
Mais le compilateur qui est utilisé pour compiler login.c
est spécifiquement conçu pour insérer ce hack dans le programme.
Nous avons seulement changé notre problème initial.
A l'origine, nous avions ces lignes de code dans login.c que si quelqu'un regardait,
ils seraient comme, pourquoi sont-ils ici?
Maintenant, si quelqu'un arrive à regarder notre compilateur,
ils vont regarder ces lignes de code et de dire,
pourquoi sont-ils ici?
Donc, nous n'avons pas complètement résolu notre problème.
Mais nous pouvons utiliser à nouveau ce concept.
>> Jeter un oeil à notre troisième version du compilateur,
c'est la même idée.
Nous avons lu l'intégralité du fichier dans un tampon ici,
nous compiler le fichier ici-bas,
et j'ai une sorte de hack chaîne ici,
mais remarquez le fichier que je suis en train de bidouiller maintenant.
Je suis compiler.c piratage
pas login.c.
Mais que vais-je insérer dans compiler.c?
Je suis d'insérer ce code qui est le code exact dans notre compilateur précédent,
qui visait à insérer du code dans login.c.
Voici notre si login.c fichier strcmp
puis insérez-la dans login.c nos affaires hack.
Ce nouveau compilateur est destiné à créer un compilateur
qui a pour but de compiler connexion avec malice.
Nous allons voir pourquoi cela nous aide.
Tout le reste est le même, donc il fonctionne exactement comme il a travaillé avec notre compilateur précédent.
Nous sommes juste itération sur notre compile.c entier.
Mais maintenant, au lieu de chercher «leur refuser l'accès, '
nous recherchons pour 'compiler le fichier.
Où est compiler le fichier?
En regardant notre compiler.c complètement innocent,
c'est juste ici en bas.
Ce commentaire - compiler le fichier - encore une fois, cela semble tout à fait inoffensif.
Mais, dans notre version malveillante du compilateur,
nous allons - juste avant que le commentaire - insérer ce code
qui a pour but d'insérer du code lors de la compilation login.c.
>> Il ya beaucoup de niveaux d'indirection ici.
Nous allons réellement l'exécuter.
Encore une fois, nous allons copier notre compilateur original.
Maintenant, la compilation - compilateur compiler.c compile.c-o evilest_compiler -
et maintenant evilest_compiler.
Evilest compilateur - si nous l'utiliser pour compiler le compilateur,
nous allons effectivement regarder.
Evilest_compiler - l'amenant plus, tout le chemin du retour à la version 1 de notre compilateur -
version 1 de notre compilateur qui vient d'être lu dans le fichier et de le compiler.
Ici, nous savons que evilest_compiler - lors de la compilation de ce fichier -
va insérer le code ici avant de compiler le fichier,
et que le code va ressembler exactement le code de la deuxième version de notre compilateur
qui a fait ça.
Ce code, qui est destiné à pénétrer connexion,
va être inséré dans notre compilateur par le compilateur evilest.
Nous allons utiliser evilest_compiler pour compiler le compilateur.
Maintenant, nous allons utiliser le compilateur,
revenir sur se connecter,
et rappelez-vous ce login.c n'a absolument rien de suspect dans celui-ci.
Mais en utilisant notre compilateur pour compiler login.c,
rob, thisiscs50, le succès.
Pirate de connexion pour la cause, LOLihackyou, Hacked! Vous avez maintenant accès.
>> Reconnaître que c'était différent de la version 2 de notre compilateur.
Le compilateur que nous utilisons - nous allons revenir - copie de connexion -
nous allons apporter notre compilateur revenir ici.
Retrait compilateur evilest.
Il ne nous reste maintenant, c'est compilateur.
Si nous regardons compiler.c,
il n'y a absolument rien là-dedans qui semble malveillante en aucune façon.
Si nous regardons login.c,
il n'y a absolument rien là-dedans qui ressemble en aucune manière malveillante.
Mais, lorsque nous utilisons notre compilateur pour compiler login.c,
nous obtenons la version piraté de login.c.
Lorsque nous avons utilisé notre compilateur pour compiler une nouvelle version du compilateur,
nous obtenons la version hackable du compilateur.
Maintenant, si nous sortons et distribuer notre exécutable du compilateur,
et personne ne saura qu'il n'y a rien de malveillant à ce sujet.
>> Il s'agit en fait donc dans - je ne me souviens pas de l'année -
Ken Thompson, et il a remporté le prix Turing -
si vous n'êtes pas familier avec le prix Turing, il est presque toujours définie comme la
Prix ​​Nobel de l'informatique, c'est comme ça que je vais le définir.
Ken Thompson a prononcé un discours où il a reçu son prix Turing
appelé «Réflexions sur la confiance confiant."
Au fond, c'est l'idée de son discours.
Sauf qu'au lieu de notre compilateur, il parlait du CCG -
juste un autre compilateur comme Clang -
et ce qu'il disait est, comme notre login.c, notre login.c semble relativement inutile
mais il parlait de la réelle login.c UNIX.
Lorsque vous vous connectez à votre appareil,
il ya un autre programme de connexion qui est en marche.
C'était la connexion qui il parlait.
Il s'agissait essentiellement de son idée.
Il a dit que dans GCC, il pourrait, en théorie, ont planté un bug -
pas un bug mais un code malveillant -
que lors de la compilation de la fonction de connexion - le fichier de connexion -
serait d'insérer une porte de derrière pour qu'il puisse aller à absolument n'importe quel système UNIX dans le monde
et connectez-vous avec un certain nom d'utilisateur et mot de passe spécifique.
À l'époque, le CCG était à peu près au compilateur que tout le monde utilisait pour rien.
Si quelqu'un est arrivé de mettre à jour GCC,
alors ils recompiler GCC en utilisant GCC,
et vous obtenez toujours une mauvaise version de GCC
car il a été spécialement compilé pour reconnaître qu'il a été recompiler le compilateur.
Et si jamais vous utilisez GCC de recompiler un fichier login.c,
il serait alors insérer cette porte dérobée qu'il pouvait utiliser pour se connecter à n'importe quel ordinateur.
>> Ce fut tout théorique, mais - cette circonstance particulière était théorique,
mais les idées sont bien réels.
En 2003, il y avait un exemple similaire où -
nous allons jeter un oeil à ce fichier,
et il n'a absolument rien à voir avec ça fait, mais le bug est similaire.
Ce fichier définit simplement une fonction appelée fracture.
Elle prend un argument a, b un argument,
et l'intention est de faire un divisé par b.
Mais il fait un peu vérification des erreurs,
nous savons que les choses sont bizarres si b se trouve égal à zéro.
Si b est égal à zéro, alors nous découpé dans 2 cas.
Vous pouvez déjà voir le bug.
Le premier cas - si a est zéro, alors que nous faisons zéro divisé par zéro,
et nous venons de dire que c'est indéfini.
Le deuxième cas - si a est non nul,
alors c'est quelque chose comme 1 divisé par zéro, et nous appelons simplement que l'infini.
Sinon nous retourner l'habituel a divisé par b.
Et donc ici, nous sommes à court de ces 3 cas,
et nous fait courir fracture - elle hurle à elle pour moi -
donc, ignorant les avertissements de Clang -
fin de non-fonction void - apparemment je n'ai pas compilé au préalable.
Retourne 0.
Faire partager - tous droits.
Avec. / Fracture, nous voyons 3, Infinity Infinity.
Zéro divisé par zéro ne devrait pas avoir retourné l'infini.
Et si vous n'avez pas compris le bug encore - ou ne pas le voir avant -
nous voyons que nous faisons a = 0.
Probablement que nous voulions dire a == 0. Probablement.
>> Mais, c'était en fait quelque chose qui, encore une fois, en 2003, le noyau Linux -
de sorte que notre appareil utilise le noyau Linux -
tout système d'exploitation Linux utilise le noyau Linux -
si un bug très semblable à celui montré.
L'idée derrière ce bug était -
encore une fois, il y avait juste une fonction qui a été appelé, et il fait un peu de vérification d'erreur.
Il y avait quelques entrées spécifiques que cette erreur de vérification -
il aurait dû être comme tout droit, vous ne pouvez pas appeler cette fonction avec un diviseur de 0.
Donc, je vais juste retourner une erreur.
Sauf, il n'était pas aussi innocente que la fixation d'un juste égal à 0.
Au lieu de cela, cette ligne de code a fini par faire quelque chose de plus comme utilisateur administrateur =.
Ou user = superutilisateur.
C'était une innocente - à première vue - erreur où il aurait été raisonnable que
que je ne voulais signaler quelque chose de spécifique
si l'utilisateur se trouve être l'administrateur de superutilisateur.
Mais puis re-penser, la personne voulait qu'elle ressemble à une simple faute de frappe,
mais si ce code avait été effectivement libérée,
alors que vous auriez pu pirater n'importe quel système en passant un indicateur spécifique -
dans ce cas b = 0 -
et il rendrait automatiquement l'utilisateur de l'administrateur,
et puis il a le plein contrôle.
Ce qui s'est passé en 2003.
>> Il se trouve que la seule raison pour laquelle il a été pris
c'était parce qu'il y est arrivé à avoir un système automatisé
qui a remarqué le changement dans ce fichier
qui n'aurait jamais dû être changé par un humain.
Le fichier ne doit avoir été généré automatiquement.
Il se trouve que quelqu'un a touché -
De plus, la personne qui a voulu pirater touché ce fichier,
et l'ordinateur pris que le toucher.
Donc, ils ont changé cela, et seulement ensuite réalisé ce qu'est une catastrophe, il aurait été
si cela était sorti dans le monde réel.
>> Vous pensez peut-être que - de revenir à notre exemple du compilateur -
même si nous ne voyons pas - en regardant le code source -
que rien de particulier ne va pas,
si l'on fait de regarder le code binaire du compilateur,
nous verrions que quelque chose ne va pas.
Par exemple, si nous courons les cordes fonctionner -
qui va tout simplement de regarder par-dessus un fichier et imprimer toutes les chaînes qu'il peut trouver -
si nous courons cordes sur notre compilateur,
nous voyons que d'une corde qu'il trouve est cet étrange -
else if (strcmp (nom d'utilisateur, "hacker") - blah, blah, blah.
Si quelqu'un se trouve être assez paranoïaque pour ne pas faire confiance à leur compilateur,
ils pourraient courir cordes et voir,
et alors ils savent que quelque chose n'allait pas avec le bon binaire.
Mais, cordes était forcément quelque chose qui a été compilé.
Alors, qui est de dire que notre compilateur n'a pas seulement un code plus spécifique
qui dit que, si les chaînes ne cesse de tourner sur notre compilateur, ne pas afficher la totalité du code malveillant.
>> L'idée même si l'on veut démonter le fichier -
nous avons appris que l'assembleur nous amène à partir du code assembleur à un code machine -
nous pouvons aller dans la direction opposée - objdump-d compilateur -
nous donnera l'assemblage de notre code.
En regardant cela,
il est assez énigmatique, mais si nous le voulions, nous pourrions regarder à travers cette
et la raison, attendez, il se passe quelque chose ici qui ne doit pas être en cours,
et ensuite, nous reconnaissons que le compilateur fait quelque chose de malveillant.
Mais, tout comme les chaînes, qui est de dire objdump n'était pas particulière-tubé.
Fondamentalement, il s'agit de vous ne pouvez pas faire confiance à tout.
Le point du document appelé «Trust Confiant» est
en général, nous faisons confiance à notre compilateur.
Vous compilez votre code et attendez qu'il fasse ce que vous lui demandez de faire.
Mais, pourquoi devriez-vous faire confiance au compilateur?
Vous n'avez pas à écrire le compilateur. Vous ne savez pas ce que le compilateur est forcément en train de faire.
Qui peut dire que vous pouvez lui faire confiance?
Mais même alors, eh bien, peut-être qu'on peut faire confiance au compilateur.
Il ya des dizaines de milliers de personnes qui se sont penchés sur cette question.
Quelqu'un doit avoir reconnu quelque chose n'allait pas avec le compilateur.
>> Et si nous allons juste 1 niveau plus profond?
Il pourrait même être votre processeur.
Aussi ridicule que cela pourrait être,
peut-être il ya quelques voyous employé d'Intel qui crée ces processeurs
que chaque fois que le processeur remarque que vous utilisez une commande
qui est destiné à connecter à l'ordinateur,
le processeur accepter une certaine nom d'utilisateur spécifique et la combinaison mot de passe.
Il serait follement compliqué,
mais quelqu'un pourrait le faire.
À ce moment-là, allez-vous vraiment ouvrir votre ordinateur pour regarder le processeur
et utiliser un microscope pour reconnaître que ces circuits ne sont pas alignés comme il se doit?
Personne ne va jamais rattraper cette erreur.
À un certain moment, il vous suffit d'abandonner et de confiance en quelque chose.
La plupart des gens ne le compilateur confiance à ce point.
C'est-à-dire pas nécessairement que vous devriez.
En regardant une vidéo un peu tristement célèbre -
[Musique dramatique jouer]
[C'est un système UNIX. Je sais que cela.]
[C'est tous les fichiers -]
Elle dit: «C'est un système UNIX. Je le sais."
Remplacer UNIX avec quel que soit votre système d'exploitation préféré est -
Elle aurait pu dire: «C'est un système Windows. je le sais."
C'est une déclaration tout à fait dénué de sens,
mais pour autant que nous sachions, elle arrive à savoir une porte dérobée dans le système UNIX.
Elle sait une combinaison nom d'utilisateur / mot de passe qui sera effectivement laisser
faire ce qu'elle veut.
>> Très bien. La morale d'aujourd'hui est, fondamentalement, vous ne pouvez pas faire confiance à tout.
Même les choses que vous écrivez - vous n'avez pas écrit le compilateur.
Le compilateur pourrait être mauvais.
Même si vous avez fait écrire le compilateur, la seule chose qui exécute le compilateur pourrait être mauvais.
(Rires) Il n'y a pas grand chose que vous pouvez faire.
Le monde est condamné.
Sauvegardez à David!
[Applaudissements]
>> [David] Merci. C'était vraiment déprimant.
Mais, en vérité, Rob est correcte.
Nous n'avons pas vraiment de solution à cela, mais vous êtes sur le point d'obtenir des solutions
à quelques défenses les plus courantes.
En prévision de cela, ce que Nate et je l'ai fait il ya coulisses
est de savoir qu'il ya tant de portables dans cette salle,
nous avons été renifler tout le trafic sans fil en passant par la salle pendant les 20 dernières minutes
cours de conversation de Rob, alors nous allons prendre une pause de 2 minutes ici.
Nate va mettre en place, puis nous allons parler de toutes les choses
nous aurions pu trouver. (Rires)
>> Alors, j'ai peut-être exagéré un peu juste pour le plaisir de l'art dramatique,
mais nous aurions pu renifler tout votre trafic sans fil, car en effet,
c'est aussi simple que ça.
Mais il ya aussi des façons que vous pouvez défendre contre cela, et si avec ça,
Je vous donne Nate Hardison. >> [Nate] Sweet.
(Applaudissements)
>> [Nate] Merci, mec. J'apprécie le cri dehors.
Très bien! C'est la semaine de match. Vous les gars sont excités?
Espérons que ça va être un gros match samedi.
J'imagine que vous les gars à ce point - étant donné que vous avez un quiz mercredi
tout sur le code, et nous avons assisté à une conférence merveilleuse par Rob
avec tout un tas de code C en elle -
sont peut-être un peu fatigué de code.
Dans cette partie, nous sommes en fait ne va pas toucher à aucun code que ce soit.
Nous allons juste de parler d'une technologie que vous utilisez tous les jours,
souvent pour de nombreuses heures par jour,
et nous allons parler des conséquences avec la sécurité qui y sont.
>> Nous avons beaucoup parlé de sécurité tout au long du semestre,
et nous avons commencé avec un peu de crypto.
[Lv Bdoh vwlqng!]
Et tandis que vous les gars sont super excités sans doute à des notes de passage à l'autre
en classe à l'aide d'un chiffrement de César comme celui-ci,
en réalité, il ya un peu plus de plaisir à avoir lorsque vous êtes en train de parler de sécurité
et ce genre de choses.
Aujourd'hui, nous allons couvrir quelques technologies
que les gens utilisent effectivement dans le monde réel pour faire toutes sortes de choses
de renifler des paquets des gens de réellement entrer et
effraction dans les comptes bancaires des gens et tout ça.
Ce sont des outils légitimes que nous parlons
à l'exception peut-être de l'un des outils.
>> Et je veux juste faire une mise en garde rapide.
Lorsque nous parlons de ces choses, nous parlons entre eux afin que vous sachiez ce qui existe,
et vous êtes au courant de la façon d'être en sécurité lorsque vous êtes à l'aide de votre ordinateur.
Mais nous ne voulons certainement pas laisser entendre que vous devez utiliser ces outils
dans votre dortoir ou votre maison parce que vous pouvez exécuter dans beaucoup de grandes questions.
C'est une des raisons que nous avons fait aujourd'hui n'étaient pas renifler vos paquets.
>> Très bien. Lundi dernier, nous avons parlé de cookies, et HTTP et l'authentification,
et comment Firesheep ouvre cette grande porte sur votre compte Facebook,
à votre compte Hotmail - si quelqu'un est encore en utilisant Hotmail -
et de nombreux autres comptes.
Un grand nombre de ce genre de choses va construire au large de ce que,
mais d'abord, je tiens à prendre un tour rapide de la façon dont l'Internet a évolué au fil du temps.
Retour dans les années 90, vous avez peut effectivement se souvenir de brancher
vos ordinateurs avec un seul de ces éléments.
Maintenant, nous ne faisons pas cela tellement plus.
Il s'avère en fait que pour brancher un câble Ethernet sur mon portable,
Je dois maintenant utiliser l'un de ces adaptateurs qui est un peu fou.
>> Au lieu de cela, en 1997, nous avons eu cette nouvelle technologie amusante
est sorti qui est connu sous le nom IEEE 802.11, c'est donc la norme Wi-Fi
L'IEEE est cet organe qui donne toutes sortes de -
publie toutes sortes de normes par rapport aux ordinateurs.
Les 802 normes sont tous sur les technologies Internet.
Donc, 802.3, par exemple, est la norme Ethernet,
802.15.1 je crois que c'est la norme Bluetooth,
et 802.11 est tout au sujet de l'Internet sans fil.
En 1997, ce sont sortis. Il n'a pas très bien compris tout de suite.
Il a fallu attendre 1999 et la norme 802.11b est sorti que tout s'est vraiment populaire.
>> Combien d'entre vous souvenez quand les ordinateurs ont commencé à venir sortir et d'obtenir wi-fi sur eux?
C'était plutôt cool, hein?
Je me souviens avoir mon premier ordinateur portable à l'école secondaire,
et il avait une carte sans fil dans celui-ci.
Mon père me l'a donné et a dit que je devrais l'utiliser pour mes applications des collèges et tout ça,
et je n'avais aucune idée de comment j'allais regarder ce truc en ligne.
Mais heureusement, j'ai eu une carte sans fil, de sorte que c'était plutôt cool.
De nos jours, vous verrez aussi 802.11g qui est l'un de l'autre très populaire
normes sans fil qui est là-bas.
B et g sont assez obsolète à ce point.
Quelqu'un sait-il quelle version plupart des gens sont en ce moment
si ils achètent de nouveaux routeurs sans fil et ce genre de trucs?
N. Exactement. Bingo. Et il s'avère que la norme ca vient de sortir sous forme de projet,
et il ya d'autres versions sur le chemin.
Avec chacune de ces normes que nous gagnons est plus de bande passante,
davantage de données à un rythme plus rapide.
Ces choses-là ne cessent de changer assez rapidement.
Il fait également en sorte que nous devons acheter plus de routeurs et tous ces trucs fun.
>> Parlons un peu de ce que la communication sans fil est en fait à sa base.
Avec Ethernet et ces vieux modems dial-up,
vous avez réellement eu ce genre de choses que vous avez branché sur votre ordinateur,
et puis vous branché à un modem de toutes sortes, et puis vous l'ai branché sur une prise dans le mur.
Vous avez eu cette connexion filaire, pas vrai?
Le point entier de fil est de se débarrasser de ce genre de choses.
Pour ce faire, ce que nous avons est essentiellement
une communication radio où notre routeur sans fil -
désigné par notre petite icône sans fil -
est connecté à Internet avec cette flèche pleine indique une sorte de connexion filaire,
mais lorsque vous vous connectez à votre routeur sans fil
vous êtes réellement en utilisant presque comme un talkie-walkie entre
votre ordinateur et votre routeur sans fil.
Ce qui est vraiment cool à ce sujet est que vous pouvez déplacer.
Vous pouvez transporter votre ordinateur partout Sanders, allez surfer sur le web, ce que vous voulez,
comme vous connaissons et aimons tous,
et vous n'avez pas toujours être branché à rien.
Pour que cela fonctionne, il faut à la fois cette réception et de transmission.
Il est vraiment comme ça talkie-walkie.
>> Ce routeur sans fil - qui Sanders est assis sous ce stade, ici -
est toujours diffusion et de réception, émission et de réception,
et de même, vos ordinateurs sont tous le faire même genre de chose, aussi.
Nous ne pouvons pas l'entendre.
L'autre chose que vous pouvez faire, c'est que vous pouvez avoir plusieurs ordinateurs
parler au même routeur sans fil.
Le plus vous êtes proche d'un routeur - et encore une fois, il s'agit d'une communication radio -
plus vous êtes proche, plus le signal est grande, plus votre ordinateur «entend» le routeur
et peut communiquer avec Internet.
Si vous les gars sont toujours à votre dortoir, à votre maison et vous vous demandez pourquoi votre signal est mauvais,
c'est probablement parce que a). vous n'êtes pas à proximité de votre routeur, ou
b). il ya quelque chose entre vous et votre routeur comme un mur de ciment ou quelque chose
qui ne laisse pas ces ondes radio passer.
>> Parlons un peu pourquoi les méchants comme wi-fi.
Les méchants aiment wi-fi pour plusieurs raisons.
Voici notre homme méchant mauvais là.
Une raison pour laquelle ce méchant aime wi-fi
C'est parce que, par défaut, un grand nombre de routeurs sans fil sont livrés et quand vous les mettre en place,
ils sont en clair.
Cela a été un problème, et il ya eu des cas -
plusieurs instances, maintenant - où les mauvais gars se présente à la maison de quelqu'un,
avis qu'il ya un clair wi-fi à laquelle ils peuvent se connecter.
Ils se connectent au wi-fi, et puis ils commencent télécharger toutes sortes de choses amusantes.
Et ils ne sont pas le téléchargement chatons, ils ne téléchargez pas les chiots.
C'est comme BitTorrent. C'est le méchant de plus méchant.
Il ya eu des cas où le FBI a même été impliqué
penser que la personne qui est propriétaire de la maison est en fait celui
aller là-bas et télécharger des choses qu'ils ne devraient pas l'être.
Ayant clair wi-fi n'est certainement pas quelque chose que vous voulez faire,
si ce n'est de ne pas avoir le FBI viennent frapper à votre porte.
>> Une autre raison pour laquelle les méchants aiment wi-fi
est la raison pour laquelle David a parlé tout à l'heure pendant la pause.
Parce que c'est une communication radio à sa base,
si vous connaissez le canal, vous pouvez écouter la station de radio.
Par exemple, s'il ya un droit de mauvais là assis au milieu à droite à côté du point d'accès,
juste à côté de ce routeur sans fil, le méchant peut écouter tout le trafic sans fil
qui vient de tous ces ordinateurs.
En fait, ces gars-là - ces quelques chanceux qui sont ici au premier rang -
parce qu'ils sont super proche de tous ces routeurs sans fil
qui sont assis juste en dessous de la scène,
ils seraient en mesure d'entendre la circulation de tout le monde dans cette salle entière
si vous êtes connecté au wi-fi et commencer à naviguer à travers ces points d'accès.
Ce n'est pas très difficile de vous asseoir dans une bonne position pour flairer et comprendre
ce que font les autres.
C'est quelque chose à garder à l'esprit, surtout si vous ne savez pas où le point d'accès est,
et vous naviguez mot à dire, dans un Starbucks.
>> Il s'avère que le reniflement et tout cela
n'est pas vraiment si difficile que ça à faire.
Il ya un programme appelé tcpdump qui décharge toutes sortes de trafic TCP
et vous pouvez l'exécuter assez simplement - comme je l'ai fait ce matin.
Voici un peu plus d'un dépotoir, et voici une partie du trafic qui venait au-dessus
mon réseau à la fois.
Vous pouvez voir - si vous strabisme très difficile - il ya un peu de Spotify là-dedans.
En plus de tcpdump - parce que c'est une sorte de douleur à utiliser -
il ya un programme appelé Wireshark qui rassemble tout cela dans une jolie interface graphique.
Wireshark est super pratique si vous passez à suivre des cours de mise en réseau,
il s'agit d'un outil qui vous viennent à l'amour, car il vous permet de disséquer tous les paquets
qui sont flottant autour de là.
Mais il peut aussi être utilisé pour le pire.
C'est très simple il suffit de télécharger ce programme, il démarre,
démarrer une capture réseau, et de voir tout ce qui se passe -
et le filtre et faire toutes sortes de choses amusantes avec elle.
>> L'autre chose que vous pouvez faire avec communication sans fil
est non seulement vous pouvez espionner, mais vous pouvez également apprendre à visser avec le réseau
et injecter vos propres informations pour contrôler l'expérience que d'autres personnes
sur le même réseau sans fil reçoivent.
Jetons un coup d'oeil.
Voici Firesheep - que nous connaissons et aimons la semaine dernière -
qui est celui technologie de l'écoute.
Si, par exemple, nous voulions avoir notre activement go bad guy et s'amuser avec
un de ces ordinateurs,
Dans ce scénario, nous avons reçu un ordinateur en essayant d'aller surfer sur harvard.edu.
Qu'est-ce qui se passe, l'ordinateur envoie d'abord un message au routeur sans fil et dit:
hey, je veux aller www.harvard.edu visite.
Dire pour une raison quelconque, ils essaient d'obtenir des informations sur le jeu ce week-end.
Méchant, car il est assis en plein milieu,
juste à côté de ce point d'accès, peut voir que la communication provenant de l'ordinateur
dans le routeur, et il sait: «Ah! Quelqu'un va harvard.edu." (Méchamment rires)
Il va y avoir cette latence tandis que la communication passe par le routeur
sur l'Internet pour aller chercher la page Web à harvard.edu--
juste comme vous les gars savons tous, après avoir fait vos psets PHP -
et si le méchant a un peu de temps, un peu de fenêtre,
dans laquelle il peut répondre avec quelques trucs.
>> Disons que ce méchant, bien sûr, est un Yaley.
Il répond avec harvardsucks.org. Boo!
Bad, bad guy! Bad Yaley!
Ou pire encore, il pourrait répondre à cela. [Http://youtu.be/ZSBq8geuJk0].
Je vais vous laisser savoir ce que c'est.
C'est en fait une technologie appelée airpwn! qui a fait ses débuts au
l'une des conférences sur la sécurité il ya quelques années.
Avec airpwn! vous êtes en mesure de réellement injecter du trafic vers le réseau.
Les ordinateurs qui tentaient de sortir à Internet et essayer d'arriver à
Google.com, à Facebook.com, à harvard.edu
voir la réponse malveillante venir et assumer immédiatement, d'accord,
C'est la réponse que j'attendais et finissent par obtenir le contenu de
harvardsucks.org ou nameyourfavoriteshocksite.com,
et vous pouvez voir comment les choses vont se détériorer.
>> Toutes ces sortes de choses ne peut se faire
avec ces connexions filaires car avec une connexion filaire
il est difficile d'snoop sur le trafic.
Si je suis un mauvais garçon et une extrémité se trouve votre ordinateur
et sur l'autre extrémité est votre routeur - modem -
la seule façon que je peux obtenir entre cet égard est en fait de raccorder mon ordinateur
quelque part au milieu
ou faire autre chose avec le routeur, en aval quelque chose.
Mais avec sans fil, il peut être aussi facile que de s'asseoir au premier rang d'une salle de classe,
et vous pouvez faire toutes sortes de choses désagréables pour les personnes à l'arrière.
>> Parlons un peu de la façon dont vous pourriez défendre contre certaines de ces choses.
Les personnes qui ont développé les normes sans fil - l'802.11 -
ils ne sont pas des gens stupides par un effort d'imagination.
Il s'agit d'une technologie sympa et quand il a fait ses débuts en 1999,
ils sont venus avec cette norme appelée WEP.
Vous pouvez voir ici lorsque vous essayez de rejoindre un réseau sans fil,
vous avez toutes sortes de différentes options de sécurité.
C'est une sorte de douleur, car il ya 6 tous ensemble
et il n'a jamais fait vraiment de sens dont 1 à y adhérer.
Ce 1 en haut est le premier qui ils sont venus avec WEP appelé.
WEP est l'acronyme de Wired Equivalent Privacy, je crois,
pas Wireless Encryption Protocol qui est un abus de langage commun.
Parce qu'il tente de vous donner équivalent confidentialité et la protection de la sécurité
équivalent à celui d'un réseau filaire
Avec WEP ce qui finit par se produire est,
vous avez un simple mot de passe que vous tapez peu à l'intérieur et qui sert à crypter
l'ensemble de vos communications entre votre ordinateur et votre routeur.
>> Quel est le problème avec WEP si?
Le mot de passe avec cryptage WEP est vraiment court,
et aussi tout le monde utilise ce mot de passe exactement les mêmes,
et il est donc très facile à déchiffrer.
Alors très vite compris que les gens WEP a été un problème,
et la seule raison pour laquelle vous le voyez apparaître encore sur ce petit gars est -
il ya des systèmes plus anciens qui ne utilisent le protocole WEP -
ce que vous devriez plutôt être cherchez sont WPA et WPA2 même des normes
qui ont été libérés par la suite.
Ces systèmes sont un aller beaucoup mieux à la protection sur Internet sans fil.
Cela dit, ils n'ont toujours avoir une certaine hackabilité.
Il existe des outils qui il peut aller le faire.
Une chose en particulier qui peut être désagréable, c'est que
si vous vous connectez et authentifié à un routeur sans fil et que vous utilisez une sorte de
communication cryptée, il s'avère qu'un pirate peut facilement envoyer un seul paquet
pour vous déconnecter du routeur,
et une fois qu'ils vous ont débranché ils peuvent alors écouter -
ils peuvent renifler les paquets que vous essayez de rétablir la connexion avec votre routeur.
Et avec cette information, ils peuvent alors entrer et décrypter le reste de votre communication.
Ce n'est pas par tous les moyens toute sorte de sécurité au-delà de toute imagination.
>> L'autre chose que vous pouvez faire lorsque vous mettez en place des réseaux sans fil
ou que vous les rejoindre est - vous remarquerez que ici quand je me joins à ce réseau,
il demande le nom de mon réseau.
Ceci est également connu sous le nom SSID.
Et vous voyez ici que sur la droite J'ai une boîte qui me montre les SSID disponibles.
Il ya une université Harvard, un CS50, CS50 et un réseau personnel.
Maintenant, combien d'entre vous savais qu'il y avait un réseau personnel autour CS50?
Certains d'entre vous. Vous n'avez pas tous.
Le problème avec cela, bien sûr, c'est que si nous n'avions pas mis en place sur notre liste de SSID,
personne ne l'aurait su à son sujet le plus probable.
Je l'espère. À moins que vous les gars essaient tous de se fissurer dans notre sans fil.
Mais c'est quelque chose que vous pouvez faire c'est vraiment important quand vous mettez en place
un routeur à la maison.
Ce ne sera probablement pas le cas pendant quelques années pour un grand nombre d'entre vous,
mais gardez à l'esprit que le maintien de ce SSID sortir de là et de ne pas le nommer aussi
quelque chose de super-common vous aidera à rester plus sûr à long terme.
>> Un couple final de choses que vous pouvez faire. Le premier est le protocole HTTPS.
Si vous êtes dans un Starbucks, si vous êtes dans un lieu public wi-fi zone
et vous décidez d'accéder à votre compte en banque, accéder à votre compte Gmail, vos contacts Facebook,
assurez-vous que ces connexions vont sur HTTPS.
Il s'agit d'une couche de sécurité supplémentaire, une couche supplémentaire de chiffrement.
La seule chose à garder à l'esprit ici est,
combien d'entre vous avez déjà cliqué sur ce grand écran rouge qui dit,
«Ce site pourrait être mauvais."
Je sais que j'ai.
C'est probablement quand vous êtes tout navigation pour aller voir La patrie ou quelque chose comme ça, non?
Ouais. (Rires) Ouais. Là vous allez. Nous savons qui regarde la patrie.
C'est grand écran rouge là
indique souvent que quelque chose de funky qui se passe.
Parfois, c'est juste le site lui-même est précaire,
mais ce même grand écran rouge apparaît lorsque les gens essaient de
montage réseau des attaques sur vous.
Donc, si vous voyez ce gros écran rouge monter dans un Starbucks,
ne cliquez pas au travers.
Les mauvaises nouvelles. Les mauvaises nouvelles porte.
>> La dernière chose que vous pouvez regarder
est une sorte de VPN.
Ce VPN est disponible par le biais de Harvard - vpn.fas.harvard.edu--
et ce que cela fait est qu'il établit en fait une connexion sécurisée
entre vous et Harvard, entonnoirs votre trafic à travers elle,
et de cette façon si vous êtes assis à un endroit comme un Starbucks
vous pouvez vous connecter à Harvard, obtenir que le trafic en toute sécurité, puis accédez à Harvard.
Encore une fois, n'est pas infaillible. Les gens peuvent obtenir dans le milieu.
Ils peuvent commencer à le briser, mais c'est beaucoup plus sûr que de compter sur la sécurité
de la seule wi-fi.
>> Très bien. En somme,
lorsque vous mettez en place des réseaux sans fil,
quand vous sortez sans fil à utiliser en public -
qu'il s'agisse d'un Starbucks, qu'il s'agisse de Five Guys, que ce soit b.good,
quelque chose comme ça - partout où ils ont accès wi-fi -
être conscient de votre environnement.
Soyez conscient de ce que les gens peuvent faire.
Et être en sécurité. Ne pas accéder à votre compte en banque.
Ce pourrait être un rude réveil si quelqu'un se présente avec votre mot de passe plus tard.
Avec cela, allez pourpre! Et je vais me tourner les choses à David pour dire un dernier mot.
(Applaudissements)
>> [David] j'ai pensé que je devais partager une chose de son expérience personnelle.
Un outil que vous aimeriez jouer avec - si Apple a largement éradiqué cette question
si vous avez mis à jour votre logiciel depuis -
mais à cette fin de ne pas vraiment pouvoir faire confiance aux logiciels que nous utilisons,
et aux points de Nate, être capable de renifler un peu de ce que font les autres
là-bas - c'était un morceau de logiciel qui est sorti il ​​ya environ un an et demi maintenant.
[IPhoneTracker] [http://petewarden.github.com/iPhoneTracker/]
Depuis quelque temps, iTunes - avant iCloud, lorsque vous avez été la synchronisation de vos iPod ou votre iPhone ou
ou vos iPads avec iTunes - dans l'intérêt de sauvegardes,
ce que votre iPhone et ces autres dispositifs ont été faites pour un certain temps est
l'utilisation de données GPS.
>> Vous connaissez tous sans doute que vos iPhones et Androids et Windows téléphones mobiles
et comme ces jours-ci permet de suivre où que vous soyez dans l'intérêt de vous montrer des cartes
et analogues - et ce que Apple et ces autres sociétés ne sont
ils sont généralement suivre presque partout où vous avez réellement été dans l'intérêt de
l'amélioration de la qualité de service.
One, vous pouvez obtenir plus de publicité ciblée et similaires,
mais deux, ils peuvent aussi déterminer où sont les points d'accès sans fil dans le monde,
et cela peut aider à la géo-localisation - sorte de triangulation de la position des gens.
>> Longue histoire courte, nous avions tous été à pied d'antennes pour une certaine quantité de temps.
Malheureusement, Apple avait pris la décision de conception - ou son absence -
de ne pas chiffrer cette information quand il a été sauvegardé être à iTunes.
Et ce que le chercheur en sécurité a été trouvé que c'était juste un énorme fichier XML -
un énorme fichier texte - assis dans le logiciel iTunes peuple,
et si vous étiez juste un peu curieux,
vous pouvez aller fouiller l'histoire de votre conjoint, votre compagnon de chambre de l'histoire,
vos frères et sœurs de l'histoire et autres,
et grâce à certains logiciels libres, vous pouvez tracer l'ensemble de ces coordonnées GPS -
latitude et la longitude.
>> Donc, en fait je l'ai fait avec mon propre téléphone.
J'ai branché mon téléphone, et bien sûr, ma version d'iTunes n'a pas été chiffré à l'époque,
et ce que j'ai pu voir étaient mes propres patrons.
Voici les Etats-Unis et chacun de ces cercles bleus représentent
où je me trouvais avoir été au cours de ces derniers mois de posséder ce téléphone particulier.
Je passe beaucoup de temps, bien sûr, dans le nord-est, un peu de temps en Californie,
un voyage de courte durée au Texas, et si vous zoomez ensuite sur cette -
c'est tout ce genre de belle et intéressante, mais je savais que cela.
La plupart de mes amis le savaient, mais si vous plonger plus profondément,
Vous voyez où je passe le plus clair de mon temps dans le Nord-Est.
Si vous s'accrocher à certaines villes connaissent prospectifs -
cette grande tache d'encre bleue est essentiellement centré sur Boston,
et puis je passe un peu de temps dans la banlieue de Boston rayonnant.
Mais je faisait aussi un peu de la consultation de cette année.
Et cette année, c'est la côte Est, et vous pouvez réellement me voir
et mon iPhone dans ma poche des allers et retours entre Boston et New York
Philadelphie et plus bas, ainsi que passer un peu de temps de vacances
sur le Cap, qui est le petit bras là-bas.
Ainsi, chacun de ces points représente un endroit que j'avais été,
et complètement à mon insu, toute cette histoire était juste assis là
sur mon ordinateur de bureau.
Si vous effectuer un zoom arrière - cette réalité était un peu troublant.
Je n'avais pas souvenir d'avoir jamais été en Pennsylvanie cette année-là.
Mais je pensais un peu plus à ce sujet et j'ai pensé, oh, c'était en fait ce voyage
et bien sûr, mon téléphone m'avait pris.
>> Apple a depuis cette information chiffrée,
mais c'est trop juste témoigne de la quantité d'informations recueillies à propos de nous,
et avec quelle facilité - pour le meilleur ou pour le pire - c'est acceptable.
Un des plats à emporter, espérons de parler de Rob, de parler de Nate
et des visuels petites comme celle d'aujourd'hui est simplement d'être conscient tout le plus de cette
de sorte que, même si - comme au point de Rob - sorte de nous sommes des vissé, non?
Il n'y a pas grand chose à faire quand il s'agit de certaines de ces menaces,
mais à la fin de la journée nous avons confiance en quelque chose ou quelqu'un
si nous voulons réellement utiliser ces technologies.
Au moins, on peut prendre des décisions éclairées et des décisions calculées ou non
nous devrions être vérifier ce compte particulièrement sensible
ou nous devrions être un peu suspecte d'envoi que message instantané
dans un environnement wi-fi comme ça.
>> Donc, avec cela dit, juste un reste quiz, un cours magistral reste.
Nous vous reverrons mercredi puis lundi.
(Applaudissements et des acclamations)
[CS50TV]