All language subtitles for 2022_cybersecurity-720p-en

af Afrikaans
ak Akan
sq Albanian
am Amharic
ar Arabic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bem Bemba
bn Bengali
bh Bihari
bs Bosnian
br Breton
bg Bulgarian
km Cambodian
ca Catalan
ceb Cebuano
chr Cherokee
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
ee Ewe
fo Faroese
tl Filipino
fi Finnish
fr French
fy Frisian
gaa Ga
gl Galician
ka Georgian
de German
el Greek
gn Guarani
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ia Interlingua
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
rw Kinyarwanda
rn Kirundi
kg Kongo
ko Korean
kri Krio (Sierra Leone)
ku Kurdish
ckb Kurdish (Soranî)
ky Kyrgyz
lo Laothian
la Latin
lv Latvian
ln Lingala
lt Lithuanian
loz Lozi
lg Luganda
ach Luo
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mfe Mauritian Creole
mo Moldavian
mn Mongolian
my Myanmar (Burmese)
sr-ME Montenegrin
ne Nepali
pcm Nigerian Pidgin
nso Northern Sotho
no Norwegian
nn Norwegian (Nynorsk)
oc Occitan
or Oriya
om Oromo
ps Pashto
fa Persian
pl Polish
pt-BR Portuguese (Brazil)
pt Portuguese (Portugal)
pa Punjabi
qu Quechua
ro Romanian
rm Romansh
nyn Runyakitara
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
sh Serbo-Croatian
st Sesotho
tn Setswana
crs Seychellois Creole
sn Shona
sd Sindhi
si Sinhalese
sk Slovak
sl Slovenian
so Somali
es Spanish
es-419 Spanish (Latin American)
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
tt Tatar
te Telugu
th Thai
ti Tigrinya
to Tonga
lua Tshiluba
tum Tumbuka
tr Turkish
tk Turkmen
tw Twi
ug Uighur
uk Ukrainian Download
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
wo Wolof
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: 0 00:00:00,000 --> 00:01:17,581 [MUSIC PLAYING] 1 00:01:17,581 --> 00:01:20,791 SPEAKER: All right.This is SC50. 2 00:01:20,791 --> 00:01:23,351 And this is First Year Family Weekends here at Harvard, 3 00:01:23,351 --> 00:01:26,651 so welcome to all of the moms and dads, brothers, sisters, cousins, aunts, 4 00:01:26,651 --> 00:01:28,621 uncles, grandparents, and beyond. 5 00:01:28,621 --> 00:01:31,441 CS50 here is Harvard University's introduction 6 00:01:31,441 --> 00:01:33,721 to the intellectual enterprises of computer science 7 00:01:33,721 --> 00:01:35,191 and the arts of programming. 8 00:01:35,191 --> 00:01:37,651 And what that means is that what we've been doing in here, 9 00:01:37,651 --> 00:01:40,921 over the past several weeks, is introducing students 10 00:01:40,921 --> 00:01:44,943 to computational thinking, the process of cleaning up one's thoughts 11 00:01:44,943 --> 00:01:47,401 and expressing oneself all the more correctly, all the more 12 00:01:47,401 --> 00:01:49,381 precisely, and ultimately translating those thoughts, 13 00:01:49,381 --> 00:01:52,021 of course, to a computer in the form of programming, which 14 00:01:52,021 --> 00:01:54,361 is where we've spent quite a bit of time-- programming, 15 00:01:54,361 --> 00:01:56,311 writing code-- over the past several weeks. 16 00:01:56,311 --> 00:01:59,791 But toward that end, we've also been equipping students 17 00:01:59,791 --> 00:02:01,621 with some basic building blocks. 18 00:02:01,621 --> 00:02:05,371 You might already know, if a parent, that computers only somehow speak 19 00:02:05,371 --> 00:02:08,521 zeros and ones, even if you're not necessarily a computer person yourself 20 00:02:08,521 --> 00:02:09,691 or know what that means. 21 00:02:09,691 --> 00:02:13,171 But with those zeros and ones can we represent numbers and letters 22 00:02:13,171 --> 00:02:15,031 and colors and videos and more. 23 00:02:15,031 --> 00:02:18,061 And in fact, your child perhaps sitting next to you 24 00:02:18,061 --> 00:02:20,161 could perhaps tell you what today's message says. 25 00:02:20,161 --> 00:02:22,261 Here, we have 64 light bulbs on stage. 26 00:02:22,261 --> 00:02:24,871 And if you look at eight of them at a time, 27 00:02:24,871 --> 00:02:27,361 there's a pattern of bulbs that are either on or off 28 00:02:27,361 --> 00:02:31,531 that, if you know the code so to speak, can you actually convert these bits-- 29 00:02:31,531 --> 00:02:34,111 these zeros and ones in light bulb form-- 30 00:02:34,111 --> 00:02:36,443 to today's particular message. 31 00:02:36,443 --> 00:02:38,401 Now, before we begin, we thought we'd make this 32 00:02:38,401 --> 00:02:41,851 as engaging, as interactive as possible. 33 00:02:41,851 --> 00:02:45,721 Rather than focus on any assumptions of prior computing knowledge, 34 00:02:45,721 --> 00:02:47,821 you need know nothing today other than how 35 00:02:47,821 --> 00:02:51,641 to operate, for instance, your own phone or a laptop or desktop or the like. 36 00:02:51,641 --> 00:02:54,041 And indeed, we'll assume a general audience. 37 00:02:54,041 --> 00:02:56,731 And in this Halloween week, will we also see 38 00:02:56,731 --> 00:03:01,261 if we can't scare you a little bit into practicing better practices when 39 00:03:01,261 --> 00:03:04,948 it comes specifically to the security or cybersecurity of the device 40 00:03:04,948 --> 00:03:07,531 you carry with you every day in your pocket, use on your desk, 41 00:03:07,531 --> 00:03:09,094 on your laptop, or beyond. 42 00:03:09,094 --> 00:03:11,011 So if you haven't already, whether you're here 43 00:03:11,011 --> 00:03:14,761 in person or tuning in online, go to this URL 44 00:03:14,761 --> 00:03:19,451 here, which will lead you to an interactive polling tool. 45 00:03:19,451 --> 00:03:22,831 Any phone or laptop or desktop suffices. 46 00:03:22,831 --> 00:03:25,381 If it's a little easier than typing in this URL, 47 00:03:25,381 --> 00:03:29,551 you can just scan this code with your phone's camera. 48 00:03:29,551 --> 00:03:31,411 Take a moment to just open your camera. 49 00:03:31,411 --> 00:03:33,421 And hopefully, if you're at a good enough angle 50 00:03:33,421 --> 00:03:35,171 and we've made this thing big enough, this 51 00:03:35,171 --> 00:03:38,371 is a two-dimensional bar code or QR code embedded 52 00:03:38,371 --> 00:03:40,271 in which is that exact same URL. 53 00:03:40,271 --> 00:03:43,021 We're increasingly seeing this throughout the world as a mechanism 54 00:03:43,021 --> 00:03:45,451 for doing what many of you are doing right now, linking 55 00:03:45,451 --> 00:03:46,981 the physical world to the virtual. 56 00:03:46,981 --> 00:03:50,259 But that URL, again, is simply this one here. 57 00:03:50,259 --> 00:03:52,051 And in a moment, you'll see on your screen. 58 00:03:52,051 --> 00:03:53,971 It's OK if you weren't quite able to get that working. 59 00:03:53,971 --> 00:03:56,461 Feel free to glance to the left or to the right of you 60 00:03:56,461 --> 00:03:57,721 for someone else who did. 61 00:03:57,721 --> 00:04:00,781 Let me go ahead and full-screen a question just 62 00:04:00,781 --> 00:04:05,221 to ask of everyone here as we focus today on cybersecurity. 63 00:04:05,221 --> 00:04:08,821 Is your phone secure? 64 00:04:08,821 --> 00:04:12,031 Whether an Android phone, an iPhone, or anything else, 65 00:04:12,031 --> 00:04:15,001 if you're holding it in your hand right now here in person or online, 66 00:04:15,001 --> 00:04:19,111 you should see three possible answers-- yes or no or unsure. 67 00:04:19,111 --> 00:04:21,571 We've got over 300 responses come in already. 68 00:04:21,571 --> 00:04:24,001 In a moment, I'll flip over and reveal the results 69 00:04:24,001 --> 00:04:29,371 and see if we can't see how much work we have to do together here today. 70 00:04:29,371 --> 00:04:30,311 A few more seconds. 71 00:04:30,311 --> 00:04:33,091 Almost up to 400 answers. 72 00:04:33,091 --> 00:04:34,128 Almost up to 400. 73 00:04:34,128 --> 00:04:35,461 It's OK if those keep coming in. 74 00:04:35,461 --> 00:04:39,001 I'm going to toggle back and show the results in just a moment here. 75 00:04:39,001 --> 00:04:40,861 And the results are now in. 76 00:04:40,861 --> 00:04:45,559 According to a response rate of over 400, it looks like 36% of you 77 00:04:45,559 --> 00:04:48,101 don't need what we're about to do here today, which is great. 78 00:04:48,101 --> 00:04:51,601 We'll see if we can't poke some holes though and maybe some assumptions you 79 00:04:51,601 --> 00:04:52,441 all are making. 80 00:04:52,441 --> 00:04:56,851 31%, 32% maybe of you are saying no, your phone 81 00:04:56,851 --> 00:04:58,771 is not secure, so so glad you came. 82 00:04:58,771 --> 00:05:01,781 And then understandably, to another third of you are unsure. 83 00:05:01,781 --> 00:05:03,871 So in very good company today, and we'll see 84 00:05:03,871 --> 00:05:07,711 if we can't open the eyes of everyone in each of these disparate audiences. 85 00:05:07,711 --> 00:05:11,011 Well, let's consider first for a moment exactly how we 86 00:05:11,011 --> 00:05:13,651 might think about the security of our phones, representative 87 00:05:13,651 --> 00:05:15,131 of just any computing device. 88 00:05:15,131 --> 00:05:17,761 And in fact, everything we discuss today could be extrapolated 89 00:05:17,761 --> 00:05:19,798 to laptops and desktops and servers. 90 00:05:19,798 --> 00:05:21,631 But all of us being so familiar with phones, 91 00:05:21,631 --> 00:05:23,401 let's start with phones themselves. 92 00:05:23,401 --> 00:05:25,651 Now, odds are you have on your phone, like so many 93 00:05:25,651 --> 00:05:29,641 other things in your life, a password or a passcode. 94 00:05:29,641 --> 00:05:33,181 And in fact, without raising your hands and, therefore, leaking information, 95 00:05:33,181 --> 00:05:36,061 think to yourself, well, what is my password or passcode? 96 00:05:36,061 --> 00:05:38,110 It's probably four digits. 97 00:05:38,110 --> 00:05:39,451 It's maybe four letters. 98 00:05:39,451 --> 00:05:40,591 Maybe it's even longer. 99 00:05:40,591 --> 00:05:41,811 Maybe it's even nothing. 100 00:05:41,811 --> 00:05:43,561 And I think maybe, from the chart earlier, 101 00:05:43,561 --> 00:05:47,251 we can assume that we have a third of each of those possible responses. 102 00:05:47,251 --> 00:05:49,561 So a password of course, is this super common mechanism 103 00:05:49,561 --> 00:05:53,971 that you and I are all using all the time to keep our devices secure. 104 00:05:53,971 --> 00:05:55,603 But do passwords keep things secure? 105 00:05:55,603 --> 00:05:57,811 Like how many of you, thinking about your phone right 106 00:05:57,811 --> 00:06:01,511 now and that specific password, might think it's secure? 107 00:06:01,511 --> 00:06:05,191 And if so, why do you think it's secure? 108 00:06:05,191 --> 00:06:08,594 We have at least 33% of you are ready to say that your password's secure. 109 00:06:08,594 --> 00:06:09,511 Don't want to know it. 110 00:06:09,511 --> 00:06:13,951 But why might it be, in your mind, secure? 111 00:06:13,951 --> 00:06:15,571 Why might you think it's secure? 112 00:06:15,571 --> 00:06:19,291 Or more generally, what makes your password secure? 113 00:06:19,291 --> 00:06:20,006 AUDIENCE: Random. 114 00:06:20,006 --> 00:06:20,881 SPEAKER: It's random. 115 00:06:20,881 --> 00:06:21,381 OK. 116 00:06:21,381 --> 00:06:22,061 So it's random. 117 00:06:22,061 --> 00:06:23,741 So random letters and numbers and the like. 118 00:06:23,741 --> 00:06:26,221 And that's great, because it's not just a word in the dictionary 119 00:06:26,221 --> 00:06:27,871 that someone could guess and type in. 120 00:06:27,871 --> 00:06:29,671 Downside, of course, I daresay is that it 121 00:06:29,671 --> 00:06:32,401 might take you as well as anyone else quite a bit of time 122 00:06:32,401 --> 00:06:34,651 to guess or figure out what or just to remember 123 00:06:34,651 --> 00:06:36,331 what it is, if it was indeed random. 124 00:06:36,331 --> 00:06:38,971 But randomness is going to be a primitive that really actually helps 125 00:06:38,971 --> 00:06:39,471 us. 126 00:06:39,471 --> 00:06:41,851 Unfortunately, you and I and really the whole world 127 00:06:41,851 --> 00:06:44,641 are not very good even at passwords, as omnipresent 128 00:06:44,641 --> 00:06:47,761 as they are as a defense against adversaries. 129 00:06:47,761 --> 00:06:56,111 In fact, if we look at the most common passwords from the past year, in 2020, 130 00:06:56,111 --> 00:06:58,801 I thought we'd share with you some of those results. 131 00:06:58,801 --> 00:07:01,291 This is the result of security researchers having 132 00:07:01,291 --> 00:07:05,671 found big exploited, compromised databases, analyzing them 133 00:07:05,671 --> 00:07:07,771 for what passwords are in them and then inferring 134 00:07:07,771 --> 00:07:10,651 from that what the most common passwords you and I are all using. 135 00:07:10,651 --> 00:07:14,611 Unfortunately, in 2020, the most common password, according to one measure, 136 00:07:14,611 --> 00:07:17,911 was one, two, three, four, five, six. 137 00:07:17,911 --> 00:07:18,701 [LAUGHING] 138 00:07:18,701 --> 00:07:20,041 Now, funny, yes. 139 00:07:20,041 --> 00:07:22,591 But if you're seeing your password on the screen already, 140 00:07:22,591 --> 00:07:24,091 not so funny perhaps. 141 00:07:24,091 --> 00:07:25,141 [LAUGHING] 142 00:07:25,141 --> 00:07:29,761 The number two password was not much better. 143 00:07:29,761 --> 00:07:33,961 Number three, picture one presumably for a device, 144 00:07:33,961 --> 00:07:36,121 a website that requires that it not just be a word, 145 00:07:36,121 --> 00:07:38,551 it have at least one number, which this person took-- 146 00:07:38,551 --> 00:07:40,981 these hundreds of thousands of people took literally. 147 00:07:40,981 --> 00:07:44,581 Password was number four this past year. 148 00:07:44,581 --> 00:07:46,561 1, 2, 3, 4, 5, 6, 7, 8. 149 00:07:46,561 --> 00:07:50,111 1, 1, 1, 1, 1, 1, really not trying hard there. 150 00:07:50,111 --> 00:07:53,101 1, 2, 3, 1, 2, 3, varying it a little bit. 151 00:07:53,101 --> 00:07:55,393 1, 2, 3, 4, 5, was number eight. 152 00:07:55,393 --> 00:07:58,171 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 was number nine. 153 00:07:58,171 --> 00:08:01,861 And then number 10, in 2020, was "senha," which-- 154 00:08:01,861 --> 00:08:03,751 any Portuguese speakers here-- means? 155 00:08:03,751 --> 00:08:04,096 AUDIENCE: Password. 156 00:08:04,096 --> 00:08:04,441 AUDIENCE: Password. 157 00:08:04,441 --> 00:08:05,281 SPEAKER: Password. 158 00:08:05,281 --> 00:08:06,101 Means "password." 159 00:08:06,101 --> 00:08:06,601 [LAUGHING] 160 00:08:06,601 --> 00:08:08,981 So made the list twice in this case. 161 00:08:08,981 --> 00:08:12,511 So one take away already today should be, if your password's on this list, 162 00:08:12,511 --> 00:08:16,231 like probably you're in one of those other 33% 163 00:08:16,231 --> 00:08:17,801 whereby we can do better than this. 164 00:08:17,801 --> 00:08:18,301 Why? 165 00:08:18,301 --> 00:08:19,471 I mean, really the obvious. 166 00:08:19,471 --> 00:08:22,711 If you're in this list, there's so many bad guys, 167 00:08:22,711 --> 00:08:25,961 so to speak, out there that are going to try guessing your password first. 168 00:08:25,961 --> 00:08:26,461 Why? 169 00:08:26,461 --> 00:08:30,061 Because just statistically, if they try 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 7, 170 00:08:30,061 --> 00:08:32,551 8, 9, they're just going to get into a lot of devices 171 00:08:32,551 --> 00:08:35,844 quickly, because they're just so commonly used, those passwords. 172 00:08:35,844 --> 00:08:37,261 You don't want to be on this list. 173 00:08:37,261 --> 00:08:41,041 Ideally, you want to be random, but we want to somehow balance randomness 174 00:08:41,041 --> 00:08:42,931 with memorability so that you don't actually 175 00:08:42,931 --> 00:08:45,391 keep forgetting your password, which, of course, defeats 176 00:08:45,391 --> 00:08:47,591 the whole point of these things in the first place. 177 00:08:47,591 --> 00:08:51,031 But in a class like this, CS50 and computer science more generally, 178 00:08:51,031 --> 00:08:57,361 let's be a little more thoughtful as to what we mean by a device being secure. 179 00:08:57,361 --> 00:08:58,861 Like what does it mean to be secure? 180 00:08:58,861 --> 00:09:01,903 And can we even slap some numbers on it so that we can make measurements, 181 00:09:01,903 --> 00:09:04,201 so that we can ideally compare and contrast 182 00:09:04,201 --> 00:09:07,601 one system versus another, one password versus another 183 00:09:07,601 --> 00:09:11,381 so it's not just our instincts arguing that my password is better than these, 184 00:09:11,381 --> 00:09:13,381 but how can you quantify that perhaps? 185 00:09:13,381 --> 00:09:14,551 Well, let's start simply. 186 00:09:14,551 --> 00:09:16,861 A lot of Android phones and iPhones these days 187 00:09:16,861 --> 00:09:20,161 require minimally that you have a four-digit passcode. 188 00:09:20,161 --> 00:09:22,921 You're minimally encouraged to have at least this bar 189 00:09:22,921 --> 00:09:26,221 set so that you're not having no passcode altogether. 190 00:09:26,221 --> 00:09:30,091 So if you do have a four-digit passcode, well, 191 00:09:30,091 --> 00:09:32,401 let me go ahead and ask this question. 192 00:09:32,401 --> 00:09:37,561 How much time might it take to go about cracking, so to speak-- that is, 193 00:09:37,561 --> 00:09:38,611 figuring out-- 194 00:09:38,611 --> 00:09:41,499 what a four-digit passcode is? 195 00:09:41,499 --> 00:09:42,541 In fact, let me go ahead. 196 00:09:42,541 --> 00:09:45,499 If you want to pull up your devices again, you should see on the screen 197 00:09:45,499 --> 00:09:46,621 this question now. 198 00:09:46,621 --> 00:09:49,201 How long might it take to crack-- 199 00:09:49,201 --> 00:09:51,421 that is, figure out, guess-- 200 00:09:51,421 --> 00:09:52,956 a four-digit passcode? 201 00:09:52,956 --> 00:09:54,331 For instance, on someone's phone. 202 00:09:54,331 --> 00:09:57,961 A few seconds, a few minutes, a few hours, a few days? 203 00:09:57,961 --> 00:10:00,331 Thinking here, from the adversarial perspective, 204 00:10:00,331 --> 00:10:03,061 if someone got ahold of your phone somehow, 205 00:10:03,061 --> 00:10:09,811 how long do they need to get into your phone if it has a four-digit passcode? 206 00:10:09,811 --> 00:10:13,471 A few seconds, few minutes, few hours, few days? 207 00:10:13,471 --> 00:10:16,661 Got about 300 responses so far. 208 00:10:16,661 --> 00:10:19,831 Let's give folks another few seconds here. 209 00:10:19,831 --> 00:10:20,981 Another few seconds here. 210 00:10:20,981 --> 00:10:21,481 All right. 211 00:10:21,481 --> 00:10:22,461 Up to 350 or so. 212 00:10:22,461 --> 00:10:25,211 In a moment, let me go ahead and flip screens over to the results. 213 00:10:25,211 --> 00:10:27,161 So we'll see the preliminary results here. 214 00:10:27,161 --> 00:10:31,651 And if I now pull this screen up, we see that 50% of you 215 00:10:31,651 --> 00:10:34,201 claim that it's going to take only a few seconds. 216 00:10:34,201 --> 00:10:36,501 Few of you say, about a third, fewer of you 217 00:10:36,501 --> 00:10:40,091 are saying that it takes a few minutes, few hours, and even a few days. 218 00:10:40,091 --> 00:10:41,341 Well, let's answer that first. 219 00:10:41,341 --> 00:10:44,731 Because honestly, if it's already a few days or even longer, 220 00:10:44,731 --> 00:10:47,591 our work is here probably already pretty done. 221 00:10:47,591 --> 00:10:50,941 Unfortunately, the problem with things like four-digit passcodes 222 00:10:50,941 --> 00:10:53,911 is that anyone who grabs your phone-- you step out of the room, 223 00:10:53,911 --> 00:10:57,611 you leave it behind, you lose it-- they could certainly mimic your input device 224 00:10:57,611 --> 00:11:01,651 and just use their finger pretending to be you, trying 0, 0, 0, 0. 225 00:11:01,651 --> 00:11:02,281 Nope. 226 00:11:02,281 --> 00:11:03,781 0, 0, 0, 1. 227 00:11:03,781 --> 00:11:04,351 Nope. 228 00:11:04,351 --> 00:11:05,771 0, 0, 0, 2. 229 00:11:05,771 --> 00:11:06,271 Nope. 230 00:11:06,271 --> 00:11:07,901 And it's a little slow, to be fair. 231 00:11:07,901 --> 00:11:12,451 It would take me a while to count all the way up to 9,999. 232 00:11:12,451 --> 00:11:14,921 That's 10,000 total possibilities there. 233 00:11:14,921 --> 00:11:18,501 But let's go ahead and consider exactly how else you could do it. 234 00:11:18,501 --> 00:11:21,561 For instance, here is an example of, in computer science, 235 00:11:21,561 --> 00:11:23,151 what we call a "brute force attack." 236 00:11:23,151 --> 00:11:26,721 And just an adversary using their finger is a brute force attack 237 00:11:26,721 --> 00:11:28,611 if they're trying all possible passcodes. 238 00:11:28,611 --> 00:11:32,798 The problem is, even if your passcode is way at the end of the list of numbers, 239 00:11:32,798 --> 00:11:34,881 eventually they're going to get it by brute force. 240 00:11:34,881 --> 00:11:38,361 Sort of like in yesteryear, using a battering ram or the like to brute 241 00:11:38,361 --> 00:11:41,211 force your way into a building, a castle, or the like. 242 00:11:41,211 --> 00:11:44,221 In software sense, it just means trying all possibilities. 243 00:11:44,221 --> 00:11:46,221 And you don't even have to just use your finger. 244 00:11:46,221 --> 00:11:46,721 Right? 245 00:11:46,721 --> 00:11:49,461 Anyone with some programming savvy, who's good with hardware, 246 00:11:49,461 --> 00:11:51,001 could maybe do something like this. 247 00:11:51,001 --> 00:11:52,611 Here's a quick video I'll hit play on. 248 00:11:52,611 --> 00:11:53,361 No sound. 249 00:11:53,361 --> 00:11:56,751 But a little bit of a robot that has an Android phone underneath it, 250 00:11:56,751 --> 00:12:01,101 and it's got a little robotic finger that's doing the work for you. 251 00:12:01,101 --> 00:12:03,291 You can step out of the room now as the adversary. 252 00:12:03,291 --> 00:12:07,401 Let the robot do its work trying 0, 0, 0, 0 through 9, 9, 9, 9. 253 00:12:07,401 --> 00:12:10,921 And ultimately, presumably get into that phone. 254 00:12:10,921 --> 00:12:15,831 So let's see if we can't quantify then exactly how fast the human or the robot 255 00:12:15,831 --> 00:12:16,426 could get in. 256 00:12:16,426 --> 00:12:18,301 Well, how many total possibilities are there? 257 00:12:18,301 --> 00:12:20,301 That's the right way to begin thinking about it. 258 00:12:20,301 --> 00:12:23,241 If you have 10 digits for the first one, 0 through 9, 259 00:12:23,241 --> 00:12:26,251 and then another 10 possibilities, another 10, another 10, 260 00:12:26,251 --> 00:12:30,381 the total number of possibilities, of course, between 0, 0, 0, 0 and 9, 9, 9, 261 00:12:30,381 --> 00:12:31,611 9 is 10,000-- 262 00:12:31,611 --> 00:12:33,901 10 times 10 times 10 times 10-- 263 00:12:33,901 --> 00:12:37,611 which gives us that much of a search space, a universe of possible 264 00:12:37,611 --> 00:12:39,831 passcodes to choose among. 265 00:12:39,831 --> 00:12:43,161 Unfortunately, you can do even better than your own finger 266 00:12:43,161 --> 00:12:44,211 or even that robot. 267 00:12:44,211 --> 00:12:48,051 Anyone in CS50 now who knows a bit of programming and languages called "C" 268 00:12:48,051 --> 00:12:52,783 or "Python" or anything else could open up a programming window and actually 269 00:12:52,783 --> 00:12:53,991 just start writing some code. 270 00:12:53,991 --> 00:12:54,908 And so let me do that. 271 00:12:54,908 --> 00:12:57,081 What you're seeing here, if a family member, 272 00:12:57,081 --> 00:12:59,481 is a programming environment called "Visual Studio Code" 273 00:12:59,481 --> 00:13:01,856 that students have been using for the past several weeks. 274 00:13:01,856 --> 00:13:04,608 Up here, we have a tabbed window where we can type our code. 275 00:13:04,608 --> 00:13:06,441 Down here, we have what's called a "terminal 276 00:13:06,441 --> 00:13:09,891 window" where I can type commands to make the computer run that code. 277 00:13:09,891 --> 00:13:11,631 And then over here is just a menu bar. 278 00:13:11,631 --> 00:13:15,051 So crack.py means I'm going to write a program to crack-- 279 00:13:15,051 --> 00:13:18,861 that is, figure out passwords-- using this language called "Python." 280 00:13:18,861 --> 00:13:21,201 And even though most CS50 students wouldn't 281 00:13:21,201 --> 00:13:23,721 know what code to start writing, they'd have 282 00:13:23,721 --> 00:13:27,511 to look up some of what I'm about to do, it's only going to be a few lines. 283 00:13:27,511 --> 00:13:31,311 So I'm going to go up here and say from string import digits. 284 00:13:31,311 --> 00:13:33,171 This is a fancy way of saying, hey, Python. 285 00:13:33,171 --> 00:13:34,941 Give me access to all decimal digits. 286 00:13:34,941 --> 00:13:38,161 It just avoids my having to type out 0 through 9 manually. 287 00:13:38,161 --> 00:13:38,661 All right. 288 00:13:38,661 --> 00:13:43,051 Then I'm going to say from either tools import product. 289 00:13:43,051 --> 00:13:46,051 This is another feature of Python that CS50 students, for the most part, 290 00:13:46,051 --> 00:13:48,111 have not yet seen that just says, hey, Python. 291 00:13:48,111 --> 00:13:51,781 Give me the ability to do like the cross product of a whole bunch of numbers. 292 00:13:51,781 --> 00:13:55,641 So these 10 times these 10 times these 10 times these 10. 293 00:13:55,641 --> 00:13:57,451 And then what am I going to do with that? 294 00:13:57,451 --> 00:14:03,351 Well, for each possible passcode in the product of those digits repeated 295 00:14:03,351 --> 00:14:06,831 four times, I'm going to go ahead and, for now, let's just 296 00:14:06,831 --> 00:14:08,751 print out what the passcode is. 297 00:14:08,751 --> 00:14:11,139 In other words, assume that I am now the adversary. 298 00:14:11,139 --> 00:14:12,931 I don't want to waste time using my finger. 299 00:14:12,931 --> 00:14:15,891 I don't have a robot that I made, but I am good at writing software. 300 00:14:15,891 --> 00:14:18,861 And heck, I've got like a USB or a lightning cable in my bag 301 00:14:18,861 --> 00:14:22,341 that I could connect your phone to my Mac or PC. 302 00:14:22,341 --> 00:14:24,741 And I could just have my code that I'm writing now 303 00:14:24,741 --> 00:14:27,801 send all the possible codes from laptop to phone 304 00:14:27,801 --> 00:14:31,011 to automate this process just using the little port at the bottom of all 305 00:14:31,011 --> 00:14:31,821 of our phones. 306 00:14:31,821 --> 00:14:34,641 Well, let me go ahead and maximize this so-called terminal 307 00:14:34,641 --> 00:14:37,371 window, which is, again, where I'm going to run this code. 308 00:14:37,371 --> 00:14:39,741 And again, the question a moment ago was, does it 309 00:14:39,741 --> 00:14:41,781 take seconds, minutes, hours, days? 310 00:14:41,781 --> 00:14:44,571 Well, let me go ahead and run Python of crack.py. 311 00:14:44,571 --> 00:14:47,781 I'm pretending, for the moment, that I did grab that cable from my bag 312 00:14:47,781 --> 00:14:49,041 and plug it into the phone. 313 00:14:49,041 --> 00:14:53,421 Hitting Enter and it didn't actually do anything. 314 00:14:53,421 --> 00:14:54,831 That was not supposed to happen. 315 00:14:54,831 --> 00:14:55,441 [LAUGHING] 316 00:14:55,441 --> 00:14:59,421 So in CS50, we spent a lot of time introducing students to bugs, 317 00:14:59,421 --> 00:15:01,191 which are mistakes in programs. 318 00:15:01,191 --> 00:15:04,581 Sometimes, not so deliberate. 319 00:15:04,581 --> 00:15:08,221 Let me go ahead and apologize. 320 00:15:08,221 --> 00:15:10,701 Let me open this file. 321 00:15:10,701 --> 00:15:12,801 This didn't technically happen. 322 00:15:12,801 --> 00:15:13,491 OK. 323 00:15:13,491 --> 00:15:14,701 Python. 324 00:15:14,701 --> 00:15:15,201 There we go. 325 00:15:15,201 --> 00:15:17,771 OK. 326 00:15:17,771 --> 00:15:20,554 In CS50, we now will run the code here. 327 00:15:20,554 --> 00:15:23,471 And I'm going to go ahead and run a command called Python of crack.py. 328 00:15:23,471 --> 00:15:25,761 I had the file in the wrong location a moment ago. 329 00:15:25,761 --> 00:15:29,571 And this is the equivalent, on a Mac or PC, of double-clicking an icon. 330 00:15:29,571 --> 00:15:30,071 Here we go. 331 00:15:30,071 --> 00:15:33,281 Is it seconds, minutes, hours, or days? 332 00:15:33,281 --> 00:15:36,851 Barely one second to try all 10,000 possibilities. 333 00:15:36,851 --> 00:15:40,061 You can't even see them all on the screen, but this printed out 0, 0, 0, 334 00:15:40,061 --> 00:15:42,677 0 all the way down, of course, to 9, 9, 9, 9. 335 00:15:42,677 --> 00:15:44,231 Plug in that cable and boom. 336 00:15:44,231 --> 00:15:47,231 The adversary doesn't need to be in that room for very long 337 00:15:47,231 --> 00:15:49,521 in order to get into that phone. 338 00:15:49,521 --> 00:15:50,021 All right. 339 00:15:50,021 --> 00:15:51,251 So what would be better than? 340 00:15:51,251 --> 00:15:56,351 Like clearly, four-digit passcodes, bad if you have someone in your life 341 00:15:56,351 --> 00:15:59,621 who has a finger or a robot or the ability to write code. 342 00:15:59,621 --> 00:16:02,201 And unfortunately, because of us, you now all 343 00:16:02,201 --> 00:16:04,841 have someone in the family with at least the third of those. 344 00:16:04,841 --> 00:16:08,171 How might we do better than this? 345 00:16:08,171 --> 00:16:10,361 What's better than a four-digit passcode? 346 00:16:10,361 --> 00:16:11,631 Anyone? 347 00:16:11,631 --> 00:16:12,131 Yeah. 348 00:16:12,131 --> 00:16:13,021 AUDIENCE: Six digits. 349 00:16:13,021 --> 00:16:13,291 SPEAKER: OK. 350 00:16:13,291 --> 00:16:14,086 So six digits. 351 00:16:14,086 --> 00:16:15,851 Heck, or seven digits or eight digits. 352 00:16:15,851 --> 00:16:16,351 Why? 353 00:16:16,351 --> 00:16:19,021 Because that's going to make, of course, the passcode longer, which means 354 00:16:19,021 --> 00:16:21,188 we're going to have to try more possibilities, which 355 00:16:21,188 --> 00:16:23,791 doesn't mean that the adversary is fundamentally stopped. 356 00:16:23,791 --> 00:16:26,341 But it is going to slow them down. 357 00:16:26,341 --> 00:16:28,711 It's going to take them more time probabilistically 358 00:16:28,711 --> 00:16:30,541 to get to your passcode. 359 00:16:30,541 --> 00:16:34,211 And it in a sense then increases the cost to the adversary. 360 00:16:34,211 --> 00:16:36,181 And indeed, that's the theme in cybersecurity, 361 00:16:36,181 --> 00:16:40,351 raising the cost to the adversary, either financially or time-wise 362 00:16:40,351 --> 00:16:41,039 or the like. 363 00:16:41,039 --> 00:16:42,581 Just like in the real physical world. 364 00:16:42,581 --> 00:16:43,561 Most of you go home. 365 00:16:43,561 --> 00:16:44,911 You lock your doors at night. 366 00:16:44,911 --> 00:16:47,461 You might have invested in a better deadbolt than another. 367 00:16:47,461 --> 00:16:48,211 Why is that? 368 00:16:48,211 --> 00:16:51,271 You really just want to be more secure than the house next door. 369 00:16:51,271 --> 00:16:54,571 You want to make sure that it takes too much time, too much effort, 370 00:16:54,571 --> 00:16:57,301 too much risk to the adversary to get into your home. 371 00:16:57,301 --> 00:17:00,301 And that's, again, what cybersecurity is all about. 372 00:17:00,301 --> 00:17:03,691 To say my phone is secure is sort of nonsensical. 373 00:17:03,691 --> 00:17:07,321 To say that your phone is more secure than someone else's, that's really 374 00:17:07,321 --> 00:17:09,361 a reasonable, fair statement to make. 375 00:17:09,361 --> 00:17:11,011 So I like this instinct. 376 00:17:11,011 --> 00:17:13,141 Let's see if we can't make things a little harder. 377 00:17:13,141 --> 00:17:14,808 And actually, let's go one step further. 378 00:17:14,808 --> 00:17:17,561 Rather than just numbers, you've probably noticed, on your phones, 379 00:17:17,561 --> 00:17:19,081 you can use letters of the alphabet, too. 380 00:17:19,081 --> 00:17:20,873 If you click the right option on the phone, 381 00:17:20,873 --> 00:17:22,751 you can start typing in words and letters. 382 00:17:22,751 --> 00:17:24,331 So how might we do that instead? 383 00:17:24,331 --> 00:17:27,691 Well, let's transition to four-letter passcodes. 384 00:17:27,691 --> 00:17:29,191 Four-letter passcodes. 385 00:17:29,191 --> 00:17:35,041 And if we do four-letter passcodes where the letters of the alphabet, 386 00:17:35,041 --> 00:17:38,251 for instance, are A through Z in English alone, 387 00:17:38,251 --> 00:17:41,881 let's go ahead and ask this question here 388 00:17:41,881 --> 00:17:44,286 if you have four letters of the alphabet. 389 00:17:44,286 --> 00:17:45,661 So let's not increase length yet. 390 00:17:45,661 --> 00:17:48,481 Let's just change to a bigger vocabulary. 391 00:17:48,481 --> 00:17:51,871 Now, we have A through Z instead of 0 through 9. 392 00:17:51,871 --> 00:17:54,451 How many four-letter passcodes are possible? 393 00:17:54,451 --> 00:17:56,911 How big is that universe that the adversary is going 394 00:17:56,911 --> 00:17:59,731 to have to search via brute force? 395 00:17:59,731 --> 00:18:05,771 So I'm seeing a lot of 7 millions, a bunch of 52,000s, 26,000s, 10,000s, 396 00:18:05,771 --> 00:18:09,971 9,999, a few smaller numbers here. 397 00:18:09,971 --> 00:18:11,521 Hopefully, it's not this low, right. 398 00:18:11,521 --> 00:18:15,301 Because we've already set the bar at 10,000 possibilities for numbers alone. 399 00:18:15,301 --> 00:18:18,211 Hopefully, if we've got English letters, A through Z, 400 00:18:18,211 --> 00:18:20,101 we can at least do better than 10,000. 401 00:18:20,101 --> 00:18:24,131 So I think we'll start to see maybe some of these bars change a little bit. 402 00:18:24,131 --> 00:18:27,121 But we've got 60% of you proposing 7 million. 403 00:18:27,121 --> 00:18:29,051 Well, let's go to the math. 404 00:18:29,051 --> 00:18:32,311 So here we might have a way of thinking about this, 405 00:18:32,311 --> 00:18:33,871 both uppercase and lowercase. 406 00:18:33,871 --> 00:18:36,961 Even better if you consider it that way, lowercase A through Z, 407 00:18:36,961 --> 00:18:40,561 uppercase A through Z. That's 52 possibilities for the first digit 408 00:18:40,561 --> 00:18:44,491 times 52 times 52 times 52, or 52 to the fourth power. 409 00:18:44,491 --> 00:18:48,011 That indeed gives you 7 million-plus possibilities. 410 00:18:48,011 --> 00:18:48,511 All right. 411 00:18:48,511 --> 00:18:50,136 Well, let's now translate this to code. 412 00:18:50,136 --> 00:18:53,641 That already sounds way better, 10,000 versus 7 million. 413 00:18:53,641 --> 00:18:55,981 This is definitely going to slow that hacker down. 414 00:18:55,981 --> 00:18:59,611 Well, let's consider exactly how fast or slow it might now be. 415 00:18:59,611 --> 00:19:02,171 Let me go into my crack.py program. 416 00:19:02,171 --> 00:19:05,311 And let me make a little tweak so that, instead of just using digits, 417 00:19:05,311 --> 00:19:07,351 this time I'm going to use letters-- 418 00:19:07,351 --> 00:19:10,231 otherwise, known as Ascii letters, as CS50 students will know. 419 00:19:10,231 --> 00:19:13,621 That just means familiar English letters of the alphabet. 420 00:19:13,621 --> 00:19:16,891 And I'm going to change my code to use these Ascii letters, four 421 00:19:16,891 --> 00:19:18,991 of them still, instead of digits alone. 422 00:19:18,991 --> 00:19:20,191 And that's the only change. 423 00:19:20,191 --> 00:19:23,401 Now, I'm going to pretend to plug my phone that I just stole from someone 424 00:19:23,401 --> 00:19:25,351 into a USB or a lightning cable. 425 00:19:25,351 --> 00:19:28,201 Let me maximize my window just so we can see things a bit more. 426 00:19:28,201 --> 00:19:30,811 Let me run Python of crack.py now, and let's 427 00:19:30,811 --> 00:19:36,151 consider how long it takes to do 7 million possible codes. 428 00:19:36,151 --> 00:19:36,651 OK. 429 00:19:36,651 --> 00:19:37,881 Slower. 430 00:19:37,881 --> 00:19:39,081 Slower. 431 00:19:39,081 --> 00:19:41,851 Can't dramatically just say in one breath that we're done, 432 00:19:41,851 --> 00:19:44,991 but we're already at the Gs and then the Hs. 433 00:19:44,991 --> 00:19:46,903 And it's kind of flying by. 434 00:19:46,903 --> 00:19:49,611 This is where the adversary is probably getting nervous in the TV 435 00:19:49,611 --> 00:19:50,451 show or movie. 436 00:19:50,451 --> 00:19:50,691 Right? 437 00:19:50,691 --> 00:19:52,611 Someone is tiptoeing around in the other room. 438 00:19:52,611 --> 00:19:53,903 You don't want them to come in. 439 00:19:53,903 --> 00:19:56,211 You only have this much time to crack the code. 440 00:19:56,211 --> 00:20:02,661 And we're at the Rs, the Ss, the Ts, Us, Vs. So this feels like, what a minute 441 00:20:02,661 --> 00:20:03,231 or so? 442 00:20:03,231 --> 00:20:07,131 It's a good number of seconds, but it's still pretty brief, 443 00:20:07,131 --> 00:20:08,911 certainly if someone has the ability to. 444 00:20:08,911 --> 00:20:10,641 And now, we've got to do the capital letters, too. 445 00:20:10,641 --> 00:20:12,951 Certainly, if someone has the ability not to just secretly do it 446 00:20:12,951 --> 00:20:15,801 like in Hollywood in the next room but just take it with them 447 00:20:15,801 --> 00:20:20,611 and do it over the course of a minute or two at home, this seems to be faster. 448 00:20:20,611 --> 00:20:21,111 Sorry. 449 00:20:21,111 --> 00:20:24,515 This seems to be slower, because we're trying so many more possibilities. 450 00:20:24,515 --> 00:20:27,831 But if the adversary takes your phone, has it long enough, 451 00:20:27,831 --> 00:20:29,604 this doesn't feel like terribly long. 452 00:20:29,604 --> 00:20:31,021 So what might be better than this? 453 00:20:31,021 --> 00:20:33,181 Let's take it one step further. 454 00:20:33,181 --> 00:20:35,121 What might be better than four letters? 455 00:20:35,121 --> 00:20:38,103 What do most websites ask you to add to the mix? 456 00:20:38,103 --> 00:20:39,311 AUDIENCE: Special characters. 457 00:20:39,311 --> 00:20:40,291 SPEAKER: So special characters. 458 00:20:40,291 --> 00:20:40,441 Right? 459 00:20:40,441 --> 00:20:42,011 And those things are darn annoying. 460 00:20:42,011 --> 00:20:42,511 Right? 461 00:20:42,511 --> 00:20:45,361 Because sometimes, they even tell you what letters or punctuation 462 00:20:45,361 --> 00:20:46,406 symbols you have to use. 463 00:20:46,406 --> 00:20:48,781 And then you type one and, oh, it's not on the damn list. 464 00:20:48,781 --> 00:20:49,823 I mean, it's frustrating. 465 00:20:49,823 --> 00:20:50,341 Why? 466 00:20:50,341 --> 00:20:53,381 Well, it's going to raise the bar, though, to the adversary. 467 00:20:53,381 --> 00:20:55,548 And that's, indeed, going to be the goal here, again 468 00:20:55,548 --> 00:20:58,291 just to increase the cost or time required for the adversary 469 00:20:58,291 --> 00:21:02,131 so that it doesn't finish like it did just now, after a couple of minutes. 470 00:21:02,131 --> 00:21:04,381 But it's going to keep going and going hopefully, such 471 00:21:04,381 --> 00:21:06,151 that they're going to lose interest in your phone 472 00:21:06,151 --> 00:21:08,371 and go try to crack into someone else's, presumably. 473 00:21:08,371 --> 00:21:09,461 So let's try this. 474 00:21:09,461 --> 00:21:13,681 Let me now go over to one other question here. 475 00:21:13,681 --> 00:21:17,141 And this question will now just be-- let's go from four characters. 476 00:21:17,141 --> 00:21:20,371 How about let's take it one step further and mix the two ideas here? 477 00:21:20,371 --> 00:21:23,611 More digits and longer passcodes. 478 00:21:23,611 --> 00:21:27,101 How many eight character passcodes are possible? 479 00:21:27,101 --> 00:21:31,741 And by character, as a CS50 will know, I mean number or letter 480 00:21:31,741 --> 00:21:33,601 or punctuation symbol now. 481 00:21:33,601 --> 00:21:37,231 And there's like 32 or so standard punctuation symbols, so we're 482 00:21:37,231 --> 00:21:39,031 up to a good set of numbers now. 483 00:21:39,031 --> 00:21:42,691 How many eight-character passcodes do you think are possible? 484 00:21:42,691 --> 00:21:45,901 Million, billion, trillion, quadrillion, or quintillion? 485 00:21:45,901 --> 00:21:48,911 All of which, of course, are better than 10,000 possibilities. 486 00:21:48,911 --> 00:21:51,204 So we're in a whole different space now. 487 00:21:51,204 --> 00:21:53,371 Looks like these answers are coming in a little more 488 00:21:53,371 --> 00:21:57,061 slowly, perhaps as folks think about this. 489 00:21:57,061 --> 00:22:02,821 Is 10 digits plus 52 letters plus 32 punctuation symbols. 490 00:22:02,821 --> 00:22:05,591 Much more secure, it would seem. 491 00:22:05,591 --> 00:22:06,091 All right. 492 00:22:06,091 --> 00:22:08,041 We're up to 230 responses. 493 00:22:08,041 --> 00:22:12,181 Give folks another second or so. 494 00:22:12,181 --> 00:22:15,181 If you're trying to do the math, 10 plus 52 plus 32, 495 00:22:15,181 --> 00:22:19,001 that's going to give you 94 possibilities for each of the digits. 496 00:22:19,001 --> 00:22:19,501 All right. 497 00:22:19,501 --> 00:22:25,461 We're just about at our 350. 498 00:22:25,461 --> 00:22:25,961 All right. 499 00:22:25,961 --> 00:22:27,391 I'm going to toggle over the screen here. 500 00:22:27,391 --> 00:22:30,121 Going to click over to the results, show them in just a second on the screen 501 00:22:30,121 --> 00:22:30,621 now. 502 00:22:30,621 --> 00:22:32,491 And this is an interesting distribution. 503 00:22:32,491 --> 00:22:34,533 I think some of you perhaps have the instinct now 504 00:22:34,533 --> 00:22:36,041 of just go for the biggest one. 505 00:22:36,041 --> 00:22:37,511 [LAUGHING] 506 00:22:37,511 --> 00:22:41,581 It's not quintillion, nice as that would be. 507 00:22:41,581 --> 00:22:43,851 Maybe it's quadrillion, trillion, billion, or million. 508 00:22:43,851 --> 00:22:45,101 We have more of a split there. 509 00:22:45,101 --> 00:22:47,161 So let's consider the math. 510 00:22:47,161 --> 00:22:50,221 So if we've got eight characters, and I claim 511 00:22:50,221 --> 00:22:52,231 that that's 94 possibilities for each. 512 00:22:52,231 --> 00:22:57,751 10 digits, 52 letters, 32 punctuation symbols. 513 00:22:57,751 --> 00:23:00,811 That's 94 to the eighth power, essentially. 514 00:23:00,811 --> 00:23:04,501 And that indeed is six quadrillion possibilities. 515 00:23:04,501 --> 00:23:06,901 Now, that's crazy big at this point. 516 00:23:06,901 --> 00:23:09,601 I daresay we're pretty safe from the human finger now. 517 00:23:09,601 --> 00:23:11,611 We're probably pretty safe from that robot, 518 00:23:11,611 --> 00:23:13,111 which is going to take a while, too. 519 00:23:13,111 --> 00:23:15,751 But Macs and PCs are pretty darn fast. 520 00:23:15,751 --> 00:23:19,591 And God forbid the adversary have a big server, use the cloud, so to speak, 521 00:23:19,591 --> 00:23:21,931 and really use a big expensive machine. 522 00:23:21,931 --> 00:23:26,971 How long does it take to get into six quadrillion possible passcodes? 523 00:23:26,971 --> 00:23:28,511 Well, how might we think about this? 524 00:23:28,511 --> 00:23:30,219 Suppose, just for the sake of discussion, 525 00:23:30,219 --> 00:23:32,731 it takes the adversary one second per code. 526 00:23:32,731 --> 00:23:35,101 Just so we have some unit of measure to start with. 527 00:23:35,101 --> 00:23:39,359 One second per code, which means, in the worst case, 528 00:23:39,359 --> 00:23:41,401 the adversary really gets screwed and my passcode 529 00:23:41,401 --> 00:23:47,011 is like 9, 9, 9, 9, 9, 9, 9 or with a lot of crazy punctuation symbols in it. 530 00:23:47,011 --> 00:23:49,681 If each passcode takes a second to guess, 531 00:23:49,681 --> 00:23:52,811 how long is it going to take the adversary if, in the worst case, 532 00:23:52,811 --> 00:23:56,341 they spend six quadrillion seconds? 533 00:23:56,341 --> 00:24:00,861 How many hours or minutes or days or-- 534 00:24:00,861 --> 00:24:01,593 AUDIENCE: A lot. 535 00:24:01,593 --> 00:24:02,301 SPEAKER: --years? 536 00:24:02,301 --> 00:24:03,351 I'm hearing a lot. 537 00:24:03,351 --> 00:24:05,361 A lot is in fact correct. 538 00:24:05,361 --> 00:24:06,681 I did do the math. 539 00:24:06,681 --> 00:24:09,801 The adversary, if they're lucky and get all this way, 540 00:24:09,801 --> 00:24:13,761 they're going to be 193,000 years old by the time they 541 00:24:13,761 --> 00:24:16,701 get to all of those possible passcodes. 542 00:24:16,701 --> 00:24:17,721 So this sounds alluring. 543 00:24:17,721 --> 00:24:20,421 And in fact, let's just change our code one final time just 544 00:24:20,421 --> 00:24:23,181 to get a sense of how this might look and behave. 545 00:24:23,181 --> 00:24:26,251 In this version here, let me go back into my code 546 00:24:26,251 --> 00:24:30,051 and let me change this now to use, not just Ascii letters, but digits. 547 00:24:30,051 --> 00:24:32,241 And I'm going to add in punctuation. 548 00:24:32,241 --> 00:24:34,371 For CS50 students, there is, again, this library 549 00:24:34,371 --> 00:24:37,371 called the string library that lets you just import all of these symbols 550 00:24:37,371 --> 00:24:37,954 automatically. 551 00:24:37,954 --> 00:24:40,941 So we don't have to type out every character on my keyboard manually. 552 00:24:40,941 --> 00:24:44,061 And then down here, I'm going to take the product of those Ascii letters 553 00:24:44,061 --> 00:24:47,421 again, plus those digits, plus the punctuation 554 00:24:47,421 --> 00:24:50,001 repeated eight times I claim this time. 555 00:24:50,001 --> 00:24:52,011 I'm going to now increase the size of my window 556 00:24:52,011 --> 00:24:53,594 just so we can see more on the screen. 557 00:24:53,594 --> 00:24:56,841 Rerun the code, and this is going to take 558 00:24:56,841 --> 00:24:59,901 us some hundreds of thousands of years. 559 00:24:59,901 --> 00:25:01,611 So we won't run to the end of this demo. 560 00:25:01,611 --> 00:25:03,261 Now, we seem to be in a better place. 561 00:25:03,261 --> 00:25:03,761 All right. 562 00:25:03,761 --> 00:25:05,301 So what's the takeaway here? 563 00:25:05,301 --> 00:25:08,511 Clearly, you should use a passcode, a password 564 00:25:08,511 --> 00:25:12,051 that's eight characters with letters and numbers and punctuation. 565 00:25:12,051 --> 00:25:14,251 Yes? 566 00:25:14,251 --> 00:25:14,879 OK. 567 00:25:14,879 --> 00:25:15,671 There's a mix here. 568 00:25:15,671 --> 00:25:16,471 Some of you are saying yes. 569 00:25:16,471 --> 00:25:17,011 Some are no. 570 00:25:17,011 --> 00:25:18,261 How about someone who says no. 571 00:25:18,261 --> 00:25:20,231 Why? 572 00:25:20,231 --> 00:25:20,781 Why no? 573 00:25:20,781 --> 00:25:21,281 Yeah. 574 00:25:21,281 --> 00:25:22,409 AUDIENCE: Recapture. 575 00:25:22,409 --> 00:25:23,201 SPEAKER: Recapture. 576 00:25:23,201 --> 00:25:23,441 OK. 577 00:25:23,441 --> 00:25:24,461 So there's other mechanisms. 578 00:25:24,461 --> 00:25:25,503 More on that in a second. 579 00:25:25,503 --> 00:25:26,441 Other instincts? 580 00:25:26,441 --> 00:25:27,725 Yeah. 581 00:25:27,725 --> 00:25:30,771 AUDIENCE: The computers are much faster than just one code per second. 582 00:25:30,771 --> 00:25:31,313 SPEAKER: Yes. 583 00:25:31,313 --> 00:25:34,041 I'm kind of cheating with my verbal simplification here. 584 00:25:34,041 --> 00:25:37,149 Even this computer is way faster than one code per second. 585 00:25:37,149 --> 00:25:39,441 So it's not going to be hundreds of thousands of years. 586 00:25:39,441 --> 00:25:41,871 Might be tens of thousands of years or hundreds of years, 587 00:25:41,871 --> 00:25:44,431 but it's not going to be quite as dramatic as this. 588 00:25:44,431 --> 00:25:46,337 So that's a concern. 589 00:25:46,337 --> 00:25:49,295 AUDIENCE: Can't some passwords be made secure 590 00:25:49,295 --> 00:25:51,669 where you can guess a certain number every hour? 591 00:25:51,669 --> 00:25:52,211 SPEAKER: Yes. 592 00:25:52,211 --> 00:25:54,141 So maybe there's other mechanisms. 593 00:25:54,141 --> 00:25:57,973 So maybe we don't have to be so extreme as to introduce all of this randomness, 594 00:25:57,973 --> 00:25:58,931 as was proposed before. 595 00:25:58,931 --> 00:26:02,201 Because honestly, there's this theme in computer science, too, and really 596 00:26:02,201 --> 00:26:03,941 information technology of trade-offs. 597 00:26:03,941 --> 00:26:04,441 Right? 598 00:26:04,441 --> 00:26:08,261 Sure, I can use a really big random password. 599 00:26:08,261 --> 00:26:10,751 But my God, I'm going to end up writing it on my monitor 600 00:26:10,751 --> 00:26:13,991 on a post-it note, which I suspect statistically some of you 601 00:26:13,991 --> 00:26:15,101 are guilty of. 602 00:26:15,101 --> 00:26:15,731 Right? 603 00:26:15,731 --> 00:26:18,431 And you shouldn't necessarily just blame yourself 604 00:26:18,431 --> 00:26:20,321 or your colleague who's doing this. 605 00:26:20,321 --> 00:26:23,261 Like this is a symptom perhaps of bad IT policy. 606 00:26:23,261 --> 00:26:25,751 If we don't have necessarily very usable systems, 607 00:26:25,751 --> 00:26:29,351 maybe we shouldn't blame the human for forgetting their very random password. 608 00:26:29,351 --> 00:26:33,081 Maybe we shouldn't require the human to have a very random password. 609 00:26:33,081 --> 00:26:33,941 So what could we do? 610 00:26:33,941 --> 00:26:36,431 A couple of technical mechanisms were just proposed. 611 00:26:36,431 --> 00:26:40,624 Let's go down this road of how we might try to defend against this. 612 00:26:40,624 --> 00:26:43,041 And I'll keep this running just for fun in the background. 613 00:26:43,041 --> 00:26:45,611 Let me switch back over to a Visual here now 614 00:26:45,611 --> 00:26:47,381 that we've considered that many codes. 615 00:26:47,381 --> 00:26:50,231 What if we do something that some of your own phones 616 00:26:50,231 --> 00:26:54,491 already have that slow the adversary down? 617 00:26:54,491 --> 00:26:57,471 And some of you might have seen, on your iPhone, a screen like this. 618 00:26:57,471 --> 00:26:58,571 Let me zoom in. 619 00:26:58,571 --> 00:26:59,711 IPhone is disabled. 620 00:26:59,711 --> 00:27:00,971 Try again in one minute. 621 00:27:00,971 --> 00:27:03,561 Has anyone locked themselves out of their phone like this? 622 00:27:03,561 --> 00:27:04,751 I have. 623 00:27:04,751 --> 00:27:07,871 I mean, it's embarrassing to admit, but it's not leaking any information. 624 00:27:07,871 --> 00:27:08,371 All right. 625 00:27:08,371 --> 00:27:10,281 So many of you have done that already. 626 00:27:10,281 --> 00:27:12,581 But why is this actually a compelling feature? 627 00:27:12,581 --> 00:27:15,161 Just to be clear, annoying as this might be, 628 00:27:15,161 --> 00:27:17,321 because you probably don't want your phone locked 629 00:27:17,321 --> 00:27:21,731 at the very moment you're trying to get into it, why might it be a good thing? 630 00:27:21,731 --> 00:27:23,014 Yeah. 631 00:27:23,014 --> 00:27:24,431 Let's go somewhere else if we may. 632 00:27:24,431 --> 00:27:25,839 Yeah, in back. 633 00:27:25,839 --> 00:27:26,936 AUDIENCE: Slows down. 634 00:27:26,936 --> 00:27:27,561 SPEAKER: Sorry? 635 00:27:27,561 --> 00:27:29,221 AUDIENCE: Slows down your response. 636 00:27:29,221 --> 00:27:30,679 SPEAKER: It slows down the process. 637 00:27:30,679 --> 00:27:32,011 It annoys you, to be fair. 638 00:27:32,011 --> 00:27:36,001 Like you pay a bit of this price, but it really slows down the adversary. 639 00:27:36,001 --> 00:27:39,391 Now, they're going to be able to type in not one code per second but one 640 00:27:39,391 --> 00:27:41,413 code per minute, a 60 times difference. 641 00:27:41,413 --> 00:27:43,621 That's really going to force them to pump the brakes. 642 00:27:43,621 --> 00:27:46,531 And unless that adversary is after you specifically, 643 00:27:46,531 --> 00:27:48,781 odds are they're going to go take someone else's phone 644 00:27:48,781 --> 00:27:51,781 or lose interest because you've raised the bar high enough to their 645 00:27:51,781 --> 00:27:52,471 getting in. 646 00:27:52,471 --> 00:27:55,798 On Android, if you do this, it depends on the operating system version. 647 00:27:55,798 --> 00:27:57,631 Here, might be something similar on Android. 648 00:27:57,631 --> 00:27:58,381 Too many attempts. 649 00:27:58,381 --> 00:27:59,041 Try again later. 650 00:27:59,041 --> 00:28:00,121 I mean, this is even more annoying. 651 00:28:00,121 --> 00:28:02,251 It doesn't even tell you when to try again later, 652 00:28:02,251 --> 00:28:05,161 but it does slow down the adversary. 653 00:28:05,161 --> 00:28:08,711 So if you don't have features like this enabled, you should. 654 00:28:08,711 --> 00:28:12,421 And if you're particularly security conscious or paranoid even, 655 00:28:12,421 --> 00:28:14,401 you can even enable a feature on these phones 656 00:28:14,401 --> 00:28:18,701 nowadays where they self-destruct, so to speak, after 10 wrong guesses. 657 00:28:18,701 --> 00:28:19,201 Right? 658 00:28:19,201 --> 00:28:20,131 Why 10? 659 00:28:20,131 --> 00:28:23,221 The presumption is, among Apple and Google and others, 660 00:28:23,221 --> 00:28:26,761 that, if you type your passcode 10 times wrong, 661 00:28:26,761 --> 00:28:28,711 you're probably not who you say you are. 662 00:28:28,711 --> 00:28:30,061 You're probably someone else. 663 00:28:30,061 --> 00:28:32,701 Although if you're a little groggy first thing in the morning 664 00:28:32,701 --> 00:28:35,281 or if you've been out late and having a good time, 665 00:28:35,281 --> 00:28:40,871 you might not be a high enough threshold to protect your phone from you. 666 00:28:40,871 --> 00:28:44,101 And so there, too, is this trade-off again, and that's an extreme one. 667 00:28:44,101 --> 00:28:48,571 If your phone deletes itself, which is what I meant by self-destruct, then 668 00:28:48,571 --> 00:28:50,761 that might actually be to your detriment. 669 00:28:50,761 --> 00:28:54,211 Unless you have backups and all of that, but that's another technology 670 00:28:54,211 --> 00:28:55,271 question altogether. 671 00:28:55,271 --> 00:28:56,611 So there, too, this theme of trade-offs. 672 00:28:56,611 --> 00:28:59,491 You raise the bar to the adversary, but you've got to pay the price. 673 00:28:59,491 --> 00:29:01,781 You're not going to get any such feature for free. 674 00:29:01,781 --> 00:29:02,281 All right. 675 00:29:02,281 --> 00:29:06,931 What's another mechanism that many of us increasingly, thankfully, are doing? 676 00:29:06,931 --> 00:29:09,601 Might be when you log into a website, like Gmail, 677 00:29:09,601 --> 00:29:12,241 to have two-factor authentication. 678 00:29:12,241 --> 00:29:14,491 Sometimes, called "two-step authentication." 679 00:29:14,491 --> 00:29:17,251 I mean, how many of you use two-factor or two-step authentication 680 00:29:17,251 --> 00:29:18,411 with at least one account? 681 00:29:18,411 --> 00:29:18,911 All right. 682 00:29:18,911 --> 00:29:20,101 So that's amazing. 683 00:29:20,101 --> 00:29:23,181 How many of you use it with all of your accounts? 684 00:29:23,181 --> 00:29:23,681 All right. 685 00:29:23,681 --> 00:29:25,141 Fewer of us. 686 00:29:25,141 --> 00:29:27,671 And there, too, that's not necessarily the wrong answer. 687 00:29:27,671 --> 00:29:28,171 Right? 688 00:29:28,171 --> 00:29:30,781 I have a lot of stupid websites that I have accounts on, 689 00:29:30,781 --> 00:29:32,521 like I bought something once on them. 690 00:29:32,521 --> 00:29:33,781 I don't really care about it. 691 00:29:33,781 --> 00:29:36,781 So there's a judgment call there in terms of what you really care about. 692 00:29:36,781 --> 00:29:39,811 But maybe your financial websites, your health care websites, 693 00:29:39,811 --> 00:29:42,571 or anything that's mildly sensitive to you probably 694 00:29:42,571 --> 00:29:45,491 should be raising the bar to the adversary by enabling this. 695 00:29:45,491 --> 00:29:46,291 So what is this? 696 00:29:46,291 --> 00:29:50,221 Particularly for those of you who didn't raise your hand, someone else, what is 697 00:29:50,221 --> 00:29:53,301 two-factor or two-step authentication? 698 00:29:53,301 --> 00:29:54,051 What's two-factor? 699 00:29:54,051 --> 00:29:54,739 Yeah. 700 00:29:54,739 --> 00:29:57,781 AUDIENCE: When you have to use your phone to verify that it's really you. 701 00:29:57,781 --> 00:29:57,991 SPEAKER: Yeah. 702 00:29:57,991 --> 00:30:00,511 So when you have to pull out your phone and verify that it's really you. 703 00:30:00,511 --> 00:30:01,651 And in the corporate world, you might have 704 00:30:01,651 --> 00:30:03,901 a little dongle, a key fob on your keychain 705 00:30:03,901 --> 00:30:05,291 that's got a little number on it. 706 00:30:05,291 --> 00:30:07,861 But generally speaking, two-factor authentication 707 00:30:07,861 --> 00:30:10,351 is all about, indeed, a second factor. 708 00:30:10,351 --> 00:30:12,331 It's kind of oversimplified as two steps, 709 00:30:12,331 --> 00:30:15,421 but it's really key technologically that it be a different factor. 710 00:30:15,421 --> 00:30:18,031 It is not two-factor authentication if you just 711 00:30:18,031 --> 00:30:21,148 have two passwords that you have to remember, because both of those 712 00:30:21,148 --> 00:30:22,231 could be forgotten by you. 713 00:30:22,231 --> 00:30:24,251 Both of those could be stolen by someone else 714 00:30:24,251 --> 00:30:26,543 if you write them down on the post-it note or the like. 715 00:30:26,543 --> 00:30:30,211 Two-factor authentication is about having a fundamentally different factor 716 00:30:30,211 --> 00:30:33,451 available to you so that the odds that someone 717 00:30:33,451 --> 00:30:36,781 get at something you know, like your password, and something you have, 718 00:30:36,781 --> 00:30:39,451 like your phone, is just much, much smaller 719 00:30:39,451 --> 00:30:43,011 than the threat of just figuring out something you know, like a password 720 00:30:43,011 --> 00:30:43,511 alone. 721 00:30:43,511 --> 00:30:45,469 So the factor is something that's fundamentally 722 00:30:45,469 --> 00:30:47,171 different from the other thing. 723 00:30:47,171 --> 00:30:49,441 And so once you configure this, the user typically 724 00:30:49,441 --> 00:30:52,171 sees a screen like this, for instance, in the context of Gmail. 725 00:30:52,171 --> 00:30:53,926 The screens vary here at Harvard and Yale. 726 00:30:53,926 --> 00:30:56,551 Students are familiar with something called "Duo mobile," which 727 00:30:56,551 --> 00:30:57,941 is the exact same idea. 728 00:30:57,941 --> 00:31:01,591 And they typically use one-time codes, six digits thereabouts. 729 00:31:01,591 --> 00:31:03,571 And you can only use that code once. 730 00:31:03,571 --> 00:31:06,691 And the idea is it's texted to you or pushed to your device 731 00:31:06,691 --> 00:31:09,421 so that you and only you can use it. 732 00:31:09,421 --> 00:31:13,041 Does this fundamentally secure your account? 733 00:31:13,041 --> 00:31:18,371 Is this enough, to just have a good password and two-factor authentication? 734 00:31:18,371 --> 00:31:22,430 Does that keep the adversaries out altogether? 735 00:31:22,430 --> 00:31:24,483 AUDIENCE: Not if someone wants to get in. 736 00:31:24,483 --> 00:31:25,691 SPEAKER: Not if someone what? 737 00:31:25,691 --> 00:31:27,051 AUDIENCE: Really wants to get in. 738 00:31:27,051 --> 00:31:27,321 SPEAKER: OK. 739 00:31:27,321 --> 00:31:28,911 Not if someone really wants to get in. 740 00:31:28,911 --> 00:31:32,691 Then you have other problems are certainly of concern, 741 00:31:32,691 --> 00:31:35,811 but you do want to ideally keep most adversaries at bay. 742 00:31:35,811 --> 00:31:36,591 And there are two. 743 00:31:36,591 --> 00:31:38,551 All we're doing is like raising the bar. 744 00:31:38,551 --> 00:31:39,051 Right? 745 00:31:39,051 --> 00:31:41,421 There's nothing stopping someone in physical proximity 746 00:31:41,421 --> 00:31:44,691 to me stealing my phone and getting into all of those accounts I just 747 00:31:44,691 --> 00:31:45,771 raised my hand about. 748 00:31:45,771 --> 00:31:48,681 But you at least protect yourself against the billions 749 00:31:48,681 --> 00:31:50,931 of other potential adversaries in the world that 750 00:31:50,931 --> 00:31:53,941 are geographically not near us, so you at least narrow the threat. 751 00:31:53,941 --> 00:31:55,251 So that's a good thing. 752 00:31:55,251 --> 00:31:56,391 But what else could we do? 753 00:31:56,391 --> 00:31:59,013 Because I feel like it's not fair for us to say, all right. 754 00:31:59,013 --> 00:31:59,721 Everyone go home. 755 00:31:59,721 --> 00:32:02,631 Start using better passwords-- longer, more complicated. 756 00:32:02,631 --> 00:32:04,311 Because again, there's this trade-off. 757 00:32:04,311 --> 00:32:07,491 We don't want to send everyone home essentially with a pad of post-it notes 758 00:32:07,491 --> 00:32:10,504 to then counterbalance what's an unrealistic expectation. 759 00:32:10,504 --> 00:32:12,921 So how many of you, perhaps with a show of physical hands, 760 00:32:12,921 --> 00:32:15,801 use a password manager already? 761 00:32:15,801 --> 00:32:17,991 This is something practical we can equip you with. 762 00:32:17,991 --> 00:32:18,491 OK. 763 00:32:18,491 --> 00:32:19,911 So that was relatively few hands. 764 00:32:19,911 --> 00:32:23,721 And those of you who are in the habit still of memorizing your password, 765 00:32:23,721 --> 00:32:27,981 or worse, writing down the password, there are better solutions today. 766 00:32:27,981 --> 00:32:29,961 But here, too, there's going to be a caveat. 767 00:32:29,961 --> 00:32:31,881 There's no clear win necessarily. 768 00:32:31,881 --> 00:32:34,131 A password manager is a piece of software 769 00:32:34,131 --> 00:32:36,711 that you install on your Mac or PC or your phone that 770 00:32:36,711 --> 00:32:38,331 manages your passwords for you. 771 00:32:38,331 --> 00:32:41,661 And these come either built into the operating system. 772 00:32:41,661 --> 00:32:43,251 Windows has credential manager. 773 00:32:43,251 --> 00:32:45,411 Mac OS has something called "keychain." 774 00:32:45,411 --> 00:32:48,441 There's third-party software like 1password or LastPass. 775 00:32:48,441 --> 00:32:51,194 Companies and universities often have site licenses 776 00:32:51,194 --> 00:32:54,111 so that students in particular can use these kinds of things for free, 777 00:32:54,111 --> 00:32:56,528 but the ones that come with your operating system or phone 778 00:32:56,528 --> 00:32:57,981 are themselves already free. 779 00:32:57,981 --> 00:33:00,811 And not using them is really the missed opportunity here. 780 00:33:00,811 --> 00:33:02,489 So what is a password manager? 781 00:33:02,489 --> 00:33:04,531 It's a program that, yes, manages your passwords. 782 00:33:04,531 --> 00:33:05,811 But it does a few things more. 783 00:33:05,811 --> 00:33:08,451 It generates passwords for you, typically. 784 00:33:08,451 --> 00:33:10,701 I mean, honestly, it's been years since I have 785 00:33:10,701 --> 00:33:13,011 chosen my own password on a website. 786 00:33:13,011 --> 00:33:16,011 I instead click a button in my password manager software 787 00:33:16,011 --> 00:33:19,131 or I use a keyboard shortcut to generate something 788 00:33:19,131 --> 00:33:23,281 that's eight characters, heck, maybe 16, 24, 32 characters long. 789 00:33:23,281 --> 00:33:27,381 I don't care because the software's job is to manage that password for me. 790 00:33:27,381 --> 00:33:30,921 That is, the software remembers this crazy long password for me. 791 00:33:30,921 --> 00:33:33,921 And better yet, it comes with a button or a keyboard 792 00:33:33,921 --> 00:33:37,531 shortcut that will automatically fill out forms for me on the web. 793 00:33:37,531 --> 00:33:41,091 When I say log me in, it will grab my password from my computer, 794 00:33:41,091 --> 00:33:42,741 plug it in, and voila. 795 00:33:42,741 --> 00:33:43,701 I'm logged in. 796 00:33:43,701 --> 00:33:47,871 The upside of this is that, even if that website is compromised 797 00:33:47,871 --> 00:33:51,321 and my password leaks out, I'm not using that password presumably 798 00:33:51,321 --> 00:33:54,561 anywhere else because the software's job is generally to create 799 00:33:54,561 --> 00:33:57,021 unique passwords for each website. 800 00:33:57,021 --> 00:34:00,021 And it's not going to be guessed via brute force, 801 00:34:00,021 --> 00:34:03,171 by one of you writing code, because it's just too long. 802 00:34:03,171 --> 00:34:06,771 Probabilistically, we're all going to be gone by the time your computer finishes 803 00:34:06,771 --> 00:34:08,491 trying to crack it. 804 00:34:08,491 --> 00:34:09,449 So what's the downside? 805 00:34:09,449 --> 00:34:10,533 I mean, this sounds great. 806 00:34:10,533 --> 00:34:13,581 If the software generates passcodes for you and plugs them in for you, 807 00:34:13,581 --> 00:34:16,021 where's the downside? 808 00:34:16,021 --> 00:34:16,521 Anyone? 809 00:34:16,521 --> 00:34:17,350 Yeah. 810 00:34:17,350 --> 00:34:19,433 AUDIENCE: If you're using somebody else's computer 811 00:34:19,433 --> 00:34:22,728 and you need to access it, then you don't know the password. 812 00:34:22,728 --> 00:34:23,311 SPEAKER: Yeah. 813 00:34:23,311 --> 00:34:25,381 If you use someone else's computer or you're 814 00:34:25,381 --> 00:34:28,563 in like a library environment, a lab environment, 815 00:34:28,563 --> 00:34:30,271 you don't have your passwords accessible. 816 00:34:30,271 --> 00:34:32,701 Now, there's a way to mitigate that so long as you 817 00:34:32,701 --> 00:34:34,441 sync the same software to your phone. 818 00:34:34,441 --> 00:34:36,871 You might have to pay another $1.99 or $20 819 00:34:36,871 --> 00:34:38,641 to have the same software on your phone. 820 00:34:38,641 --> 00:34:41,011 You can at least mitigate that by sharing the passcodes 821 00:34:41,011 --> 00:34:42,241 across your devices. 822 00:34:42,241 --> 00:34:43,171 Not as user-friendly. 823 00:34:43,171 --> 00:34:46,321 You're going to have to now manually type out this really long password 824 00:34:46,321 --> 00:34:49,081 and that, too, is annoying if you get one character wrong. 825 00:34:49,081 --> 00:34:50,761 But that's one way to mitigate that. 826 00:34:50,761 --> 00:34:51,624 Other concerns? 827 00:34:51,624 --> 00:34:54,791 AUDIENCE: If someone cracks the code, then they now have all your passwords. 828 00:34:54,791 --> 00:34:56,201 SPEAKER: That's maybe the biggest threats. 829 00:34:56,201 --> 00:34:58,841 I mean, you're kind of putting all of your proverbial eggs 830 00:34:58,841 --> 00:34:59,981 in the same basket. 831 00:34:59,981 --> 00:35:03,821 If someone now gets into my password manager, which I should stipulate 832 00:35:03,821 --> 00:35:07,001 is supposed to itself have a really big long password 833 00:35:07,001 --> 00:35:10,841 that I do have to remember, but only one such long password, 834 00:35:10,841 --> 00:35:12,561 I mean, then I'm really out of luck. 835 00:35:12,561 --> 00:35:16,851 Now, every single account I own is compromised except for those 836 00:35:16,851 --> 00:35:18,101 that at least have two-factor. 837 00:35:18,101 --> 00:35:20,801 Unless the adversary also steals my phone or my key fob. 838 00:35:20,801 --> 00:35:22,133 Other concerns? 839 00:35:22,133 --> 00:35:25,239 AUDIENCE: If someone is like [INAUDIBLE].. 840 00:35:31,701 --> 00:35:32,421 SPEAKER: Exactly. 841 00:35:32,421 --> 00:35:35,541 If someone gets physical access to your device, honestly in general, 842 00:35:35,541 --> 00:35:36,396 all bets are off. 843 00:35:36,396 --> 00:35:39,021 And this is why some of today's listeners are really important. 844 00:35:39,021 --> 00:35:42,973 It's only going to matter when you first lose your phone or someone walks off 845 00:35:42,973 --> 00:35:44,181 with your laptop or the like. 846 00:35:44,181 --> 00:35:46,056 There are certain things you can do to defend 847 00:35:46,056 --> 00:35:47,961 against that inevitability, dare say. 848 00:35:47,961 --> 00:35:49,881 But you want to make sure that, if you are 849 00:35:49,881 --> 00:35:52,220 using some of these solutions like a password manager, 850 00:35:52,220 --> 00:35:57,021 that that long primary password you use for it is itself really hard to guess. 851 00:35:57,021 --> 00:36:00,141 And I would say, I'm OK with you writing that down even 852 00:36:00,141 --> 00:36:01,901 but putting it in like a safe deposit box 853 00:36:01,901 --> 00:36:03,651 or hiding it somewhere in the house that's 854 00:36:03,651 --> 00:36:05,841 just very low probability of someone finding. 855 00:36:05,841 --> 00:36:08,970 Because the other problem with putting all of your eggs in one basket, 856 00:36:08,970 --> 00:36:13,701 if you forget your password, then you lose everything. 857 00:36:13,701 --> 00:36:16,471 And that, too, seems like a pretty serious price to pay. 858 00:36:16,471 --> 00:36:19,881 But this is a constant battle in computing nowadays, usability 859 00:36:19,881 --> 00:36:22,281 and security and finding that inflection point. 860 00:36:22,281 --> 00:36:24,571 But there, too, you can be selective. 861 00:36:24,571 --> 00:36:25,071 Right? 862 00:36:25,071 --> 00:36:27,661 I called out financial information, health information, 863 00:36:27,661 --> 00:36:29,151 your personal email, your calendar. 864 00:36:29,151 --> 00:36:31,861 Anything that's mildly more sensitive to you or important, 865 00:36:31,861 --> 00:36:34,461 raise the bar at least on those accounts even 866 00:36:34,461 --> 00:36:38,931 if you're not quite ready to go all in on all of these other factors. 867 00:36:38,931 --> 00:36:41,721 Well, let's consider then where we're using these passwords. 868 00:36:41,721 --> 00:36:43,971 Consider just a couple of specific examples. 869 00:36:43,971 --> 00:36:44,871 Email, of course. 870 00:36:44,871 --> 00:36:47,151 Gmail is the example I used earlier. 871 00:36:47,151 --> 00:36:49,431 Gmail and email accounts, more generally, 872 00:36:49,431 --> 00:36:51,101 are increasingly offering us features. 873 00:36:51,101 --> 00:36:52,851 And in fact, there's one that I thought we 874 00:36:52,851 --> 00:36:55,011 could highlight as an example of something 875 00:36:55,011 --> 00:36:58,101 that, as a CS50 student, a CS50 family member, 876 00:36:58,101 --> 00:37:01,311 you should really start viewing the world with a more 877 00:37:01,311 --> 00:37:03,741 skeptical eye, a little more paranoid eye, 878 00:37:03,741 --> 00:37:06,471 and not necessarily just believe things that websites say. 879 00:37:06,471 --> 00:37:09,021 I mean, it's mostly meaningless when a website says-- 880 00:37:09,021 --> 00:37:11,421 sometimes, with a pretty little logo or emblem-- 881 00:37:11,421 --> 00:37:13,551 our website is secure. 882 00:37:13,551 --> 00:37:14,851 What does that even mean? 883 00:37:14,851 --> 00:37:16,701 And it's again, all about relativity. 884 00:37:16,701 --> 00:37:19,791 And even Gmail, I daresay somewhat irresponsibly, 885 00:37:19,791 --> 00:37:21,441 has this feature in recent years. 886 00:37:21,441 --> 00:37:23,061 Confidential mode. 887 00:37:23,061 --> 00:37:26,721 Is anyone-- if you're using G Suite or Google Apps at work or workspace 888 00:37:26,721 --> 00:37:29,859 nowadays-- in the habit of using confidential mode? 889 00:37:29,859 --> 00:37:30,651 I mean, it sounds-- 890 00:37:30,651 --> 00:37:30,861 OK. 891 00:37:30,861 --> 00:37:32,451 No one's using this, so this is great. 892 00:37:32,451 --> 00:37:34,933 And I worry now that I'm introducing you to a feature 893 00:37:34,933 --> 00:37:36,391 that you shouldn't necessarily use. 894 00:37:36,391 --> 00:37:39,501 But all this time, if you're a Gmail user, 895 00:37:39,501 --> 00:37:42,081 there is, along the little menu bar, an icon 896 00:37:42,081 --> 00:37:43,706 that lets you enable confidential mode. 897 00:37:43,706 --> 00:37:45,289 And later tonight, play around for it. 898 00:37:45,289 --> 00:37:47,671 Just look for it, and you'll see exactly this screenshot, 899 00:37:47,671 --> 00:37:48,891 which I took yesterday. 900 00:37:48,891 --> 00:37:52,131 According to Google, recipients won't have the option to forward, 901 00:37:52,131 --> 00:37:54,871 copy, print, or download this email. 902 00:37:54,871 --> 00:37:55,371 Right? 903 00:37:55,371 --> 00:37:57,111 Great for lawyers, it would seem. 904 00:37:57,111 --> 00:37:58,041 Great for business. 905 00:37:58,041 --> 00:38:00,501 Great for private correspondence. 906 00:38:00,501 --> 00:38:03,531 But why is this perhaps a bit misleading? 907 00:38:06,201 --> 00:38:08,391 Where should the skepticism come from here? 908 00:38:08,391 --> 00:38:10,711 Even a company like Google, I dare say, they've 909 00:38:10,711 --> 00:38:13,731 probably buried the caveats that I'm hinting at under the Learn More. 910 00:38:13,731 --> 00:38:15,241 But unfortunately, that might be too late. 911 00:38:15,241 --> 00:38:15,741 Yeah. 912 00:38:15,741 --> 00:38:16,881 In back. 913 00:38:16,881 --> 00:38:19,381 AUDIENCE: Will they be able to take screenshots of the mail? 914 00:38:19,381 --> 00:38:19,591 SPEAKER: Yeah. 915 00:38:19,591 --> 00:38:20,461 I mean, those of you who know how to take 916 00:38:20,461 --> 00:38:21,811 a screenshot, that's the simplest way. 917 00:38:21,811 --> 00:38:23,311 If you don't know how to do that, well, here's a phone. 918 00:38:23,311 --> 00:38:26,531 I can just take a picture of what it is I see on the screen. 919 00:38:26,531 --> 00:38:28,681 And so these are software defenses that are 920 00:38:28,681 --> 00:38:31,771 in place that essentially disable the Forward button, 921 00:38:31,771 --> 00:38:33,219 disable the Print button. 922 00:38:33,219 --> 00:38:35,011 But honestly, as you probably already know, 923 00:38:35,011 --> 00:38:37,711 once something is already digital, I mean, it's out there. 924 00:38:37,711 --> 00:38:39,241 And there are other ways to get it. 925 00:38:39,241 --> 00:38:42,283 It might not be as high quality if you're taking out your phone to do it, 926 00:38:42,283 --> 00:38:44,611 but you should view things like this with skepticism. 927 00:38:44,611 --> 00:38:47,111 And even I, when I occasionally receive something like this, 928 00:38:47,111 --> 00:38:50,221 I kind of roll my eyes but regret that the user thinks what they're 929 00:38:50,221 --> 00:38:52,771 doing is consistent with this language. 930 00:38:52,771 --> 00:38:54,011 But it isn't necessarily. 931 00:38:54,011 --> 00:38:57,301 And so indeed, in part, from an introduction to computer science, 932 00:38:57,301 --> 00:39:00,688 you begin to get a little scared from what's going on out there. 933 00:39:00,688 --> 00:39:03,271 Because there are so many different threats and so many things 934 00:39:03,271 --> 00:39:05,221 that you can't, in fact, do. 935 00:39:05,221 --> 00:39:09,631 And the onus is, unfortunately, often on us users to read between the lines 936 00:39:09,631 --> 00:39:11,644 and see what actually is possible. 937 00:39:11,644 --> 00:39:14,311 Here's another one that you might be more in the habit of using, 938 00:39:14,311 --> 00:39:18,151 incognito mode or private mode in Chrome or Safari 939 00:39:18,151 --> 00:39:19,961 or Firefox or Edge or the like. 940 00:39:19,961 --> 00:39:24,031 What does incognito mode do, if familiar? 941 00:39:24,031 --> 00:39:24,961 What's incognito mode? 942 00:39:24,961 --> 00:39:25,726 Yeah. 943 00:39:25,726 --> 00:39:28,981 It doesn't log locally what you're doing. 944 00:39:28,981 --> 00:39:30,941 It doesn't log locally what you're doing. 945 00:39:30,941 --> 00:39:31,441 Exactly. 946 00:39:31,441 --> 00:39:34,561 Most people here probably generally know about things called cookies, even 947 00:39:34,561 --> 00:39:36,301 if you're not quite sure how they work. 948 00:39:36,301 --> 00:39:39,421 But they're like these little remnants or bread crumbs 949 00:39:39,421 --> 00:39:42,961 you leave behind when visiting websites that allow the websites to keep track 950 00:39:42,961 --> 00:39:45,121 of who you are in some sense. 951 00:39:45,121 --> 00:39:48,421 According to Google here, when you're using incognito mode, 952 00:39:48,421 --> 00:39:50,491 Chrome won't save your browsing history. 953 00:39:50,491 --> 00:39:51,811 So that's good. 954 00:39:51,811 --> 00:39:55,321 Cookies and site data, information entered into forms. 955 00:39:55,321 --> 00:39:58,501 But to their credit, they do disclaim that your activity might still 956 00:39:58,501 --> 00:40:01,921 be visible to the websites you visit, your employer or school, 957 00:40:01,921 --> 00:40:03,406 your internet service provider. 958 00:40:03,406 --> 00:40:05,281 So they're getting better at at least helping 959 00:40:05,281 --> 00:40:07,981 you evaluate by giving more of the facts whether you 960 00:40:07,981 --> 00:40:09,691 do or don't want to do this. 961 00:40:09,691 --> 00:40:14,461 But this doesn't mean that the websites you're visiting, indeed, 962 00:40:14,461 --> 00:40:15,271 don't know who you. 963 00:40:15,271 --> 00:40:17,363 Are all of our computers have unique addresses, 964 00:40:17,363 --> 00:40:20,071 these things called IP addresses that you might have heard about. 965 00:40:20,071 --> 00:40:22,501 In CS50, we'll explore these in another week's time. 966 00:40:22,501 --> 00:40:26,341 Your computer is constantly leaking information that 967 00:40:26,341 --> 00:40:28,691 could be used to infer who you were. 968 00:40:28,691 --> 00:40:30,751 So this is really just best left when you 969 00:40:30,751 --> 00:40:34,321 don't want to accidentally, on like a friend's computer or a lab computer, 970 00:40:34,321 --> 00:40:35,448 remain logged in. 971 00:40:35,448 --> 00:40:38,531 Because cookies are typically used to just remember that you've logged in. 972 00:40:38,531 --> 00:40:41,161 So if you use a friend's computer, you use incognito mode 973 00:40:41,161 --> 00:40:42,301 and just close the window. 974 00:40:42,301 --> 00:40:42,801 Boom. 975 00:40:42,801 --> 00:40:44,161 You're effectively logged out. 976 00:40:44,161 --> 00:40:49,501 But even as Google disclaims, there's other caveats there, too. 977 00:40:49,501 --> 00:40:52,801 So what else might we keep in mind? 978 00:40:52,801 --> 00:40:55,621 Let's consider one other big one that's another thing 979 00:40:55,621 --> 00:41:00,301 to start looking for increasingly in order to keep yourself secure, 980 00:41:00,301 --> 00:41:02,191 and this one's a little more technical. 981 00:41:02,191 --> 00:41:03,241 Encryption. 982 00:41:03,241 --> 00:41:06,481 And as CS50 students will know, this is something you can implement in code. 983 00:41:06,481 --> 00:41:08,064 And in fact, let me ask this question. 984 00:41:08,064 --> 00:41:11,221 What does it mean to encrypt something? 985 00:41:11,221 --> 00:41:14,994 Think back to pset2 and Caesar and the like. 986 00:41:14,994 --> 00:41:16,411 Let me look a little farther back. 987 00:41:16,411 --> 00:41:18,786 Almost any student hands should theoretically be up here. 988 00:41:18,786 --> 00:41:19,532 Yeah. 989 00:41:19,532 --> 00:41:22,418 AUDIENCE: You can substitute characters [INAUDIBLE] 990 00:41:22,418 --> 00:41:25,173 so that you can't read it as the first ones. 991 00:41:25,173 --> 00:41:25,881 SPEAKER: Exactly. 992 00:41:25,881 --> 00:41:28,941 Encryption is all about substituting one letter for another 993 00:41:28,941 --> 00:41:32,031 and generally scrambling the appearance of some message 994 00:41:32,031 --> 00:41:35,151 up so that the recipient knows how to reverse that process 995 00:41:35,151 --> 00:41:36,651 and see what you actually sent. 996 00:41:36,651 --> 00:41:40,011 But anyone intervening in between you can't actually 997 00:41:40,011 --> 00:41:41,751 see the information between you. 998 00:41:41,751 --> 00:41:48,341 So just to impress the parents in the room, any students, what does this say? 999 00:41:48,341 --> 00:41:49,391 We're not ending here. 1000 00:41:49,391 --> 00:41:50,561 AUDIENCE: This was CS50. 1001 00:41:50,561 --> 00:41:51,818 SPEAKER: This was CS50. 1002 00:41:51,818 --> 00:41:53,901 That's what it would say, but notice the scramble. 1003 00:41:53,901 --> 00:41:56,621 Let me go back and forth, back and forth. 1004 00:41:56,621 --> 00:42:06,371 In this message, t becomes u, h becomes i, i becomes j, s becomes t. 1005 00:42:06,371 --> 00:42:10,724 This is what we called a few weeks ago, in CS50, a rotational cipher a Caesar 1006 00:42:10,724 --> 00:42:12,641 cipher, that literally does, as you described, 1007 00:42:12,641 --> 00:42:14,531 substitutes one letter for the next. 1008 00:42:14,531 --> 00:42:16,781 But it does so in a very predictable way. 1009 00:42:16,781 --> 00:42:18,871 A becomes B, B becomes C, and so forth. 1010 00:42:18,871 --> 00:42:22,121 And we also talked, weeks ago, that you don't have to keep it that simplistic. 1011 00:42:22,121 --> 00:42:24,581 You can use a bigger mathematical formula 1012 00:42:24,581 --> 00:42:27,671 to make it at least harder for some adversary to figure out. 1013 00:42:27,671 --> 00:42:33,161 But you and I, as users these days, are constantly thankfully using encryption. 1014 00:42:33,161 --> 00:42:36,461 You probably generally know that you should be hoping for, 1015 00:42:36,461 --> 00:42:38,051 expecting this these days. 1016 00:42:38,051 --> 00:42:39,761 Like HTTPS is a good thing. 1017 00:42:39,761 --> 00:42:42,041 S means secure, literally. 1018 00:42:42,041 --> 00:42:45,341 And any website that has that in its URL indicates 1019 00:42:45,341 --> 00:42:49,031 to you that you and the website are having an encrypted, 1020 00:42:49,031 --> 00:42:51,041 a scrambled communication, which means, if you 1021 00:42:51,041 --> 00:42:53,411 type in your password, your credit card information, 1022 00:42:53,411 --> 00:42:57,461 anything else personally, no one between you theoretically, points A and B, 1023 00:42:57,461 --> 00:43:00,431 should be able to know what it is you've typed into that web page. 1024 00:43:00,431 --> 00:43:02,861 The web page absolutely can, because they 1025 00:43:02,861 --> 00:43:06,701 have the ability to decrypt that information, to reverse the process. 1026 00:43:06,701 --> 00:43:09,651 But at least encryption is generally a good thing. 1027 00:43:09,651 --> 00:43:12,881 But today, let's take that one step further and encourage you all 1028 00:43:12,881 --> 00:43:16,421 to be looking for, expecting, if you will, as consumers increasingly 1029 00:43:16,421 --> 00:43:19,571 in the coming years, something better than encryption alone 1030 00:43:19,571 --> 00:43:22,541 but end-to-end encryption. 1031 00:43:22,541 --> 00:43:26,094 And you're starting to hear about, read about this a little bit more. 1032 00:43:26,094 --> 00:43:27,761 But it's perhaps a little less familiar. 1033 00:43:27,761 --> 00:43:33,221 Someone in the room, who's familiar, what is end-to-end encryption? 1034 00:43:33,221 --> 00:43:34,371 Let me give folks a moment. 1035 00:43:34,371 --> 00:43:39,231 What is end-to-end encryption? 1036 00:43:39,231 --> 00:43:39,731 OK. 1037 00:43:39,731 --> 00:43:41,477 Yeah. 1038 00:43:41,477 --> 00:43:46,297 AUDIENCE: It's where you always try [INAUDIBLE].. 1039 00:43:46,297 --> 00:43:49,496 WhatsApp encrypts a message on one side and sends it 1040 00:43:49,496 --> 00:43:51,121 where it's encrypted on the other side. 1041 00:43:51,121 --> 00:43:51,704 SPEAKER: Good. 1042 00:43:51,704 --> 00:43:54,161 So it's when an app, like WhatsApp, encrypts a message, 1043 00:43:54,161 --> 00:43:57,131 but it's encrypted all the way to the other side, to the recipient. 1044 00:43:57,131 --> 00:43:59,491 Even though Facebook, in this case, owns WhatsApp, 1045 00:43:59,491 --> 00:44:03,061 even though your message is going through Facebook or MetaServers, 1046 00:44:03,061 --> 00:44:05,731 they do not have theoretically the ability 1047 00:44:05,731 --> 00:44:09,361 to decrypt your message, whatever chat message you've sent to a friend. 1048 00:44:09,361 --> 00:44:13,981 They are just sending seemingly random zeros and ones all the way to the end 1049 00:44:13,981 --> 00:44:15,811 user who can then decrypt it. 1050 00:44:15,811 --> 00:44:19,271 If you're an iPhone user, iMessage, for instance, does this automatically. 1051 00:44:19,271 --> 00:44:22,218 So long as your text messages are blue and not green, 1052 00:44:22,218 --> 00:44:25,051 that means you're using iMessage in Apple's platform that does this. 1053 00:44:25,051 --> 00:44:27,061 But let's focus perhaps on something that's 1054 00:44:27,061 --> 00:44:30,701 been all too familiar to most of us over this past year, Zoom. 1055 00:44:30,701 --> 00:44:31,201 Right? 1056 00:44:31,201 --> 00:44:33,271 Zoom actually took some flack some months ago. 1057 00:44:33,271 --> 00:44:35,063 Because in their marketing literature, they 1058 00:44:35,063 --> 00:44:37,111 were advertising end-to-end encryption. 1059 00:44:37,111 --> 00:44:41,281 They were not implementing end-to-end encryption, at least initially. 1060 00:44:41,281 --> 00:44:43,703 This was probably marketing gone awry, not quite 1061 00:44:43,703 --> 00:44:45,661 understanding what end-to-end encryption means. 1062 00:44:45,661 --> 00:44:46,921 They were using encryption. 1063 00:44:46,921 --> 00:44:50,071 And what that meant is that, if I were having a meeting with a colleague 1064 00:44:50,071 --> 00:44:52,691 or you were sitting in on a class with a teacher, 1065 00:44:52,691 --> 00:44:57,301 you might have an encrypted connection-- all of you-- to Zoom centrally, 1066 00:44:57,301 --> 00:45:01,081 but they had the ability-- early on and still now if you leave this feature 1067 00:45:01,081 --> 00:45:01,591 off-- 1068 00:45:01,591 --> 00:45:05,731 to decrypt that information and see and listen to theoretically anything 1069 00:45:05,731 --> 00:45:08,341 going on in that meeting or that classroom. 1070 00:45:08,341 --> 00:45:11,641 Now, technologically, there's not really a good defense against that 1071 00:45:11,641 --> 00:45:13,411 if using that older approach. 1072 00:45:13,411 --> 00:45:14,941 All it really is is policy. 1073 00:45:14,941 --> 00:45:18,521 Or hopefully, there's rules in place, there's contracts in place that say, 1074 00:45:18,521 --> 00:45:21,001 well, yeah, that's possible, but don't do that. 1075 00:45:21,001 --> 00:45:24,631 End-to-end encryption is a stronger guarantee for you 1076 00:45:24,631 --> 00:45:27,716 that circumvents that risk altogether by ensuring 1077 00:45:27,716 --> 00:45:30,841 that, if you're tuning into that class or you're logging into that meeting, 1078 00:45:30,841 --> 00:45:33,691 all of the zeros and ones are going through Zoom servers, 1079 00:45:33,691 --> 00:45:37,151 just like Facebook's, but only the end users-- 1080 00:45:37,151 --> 00:45:39,901 only the students and teachers, only the colleague and colleague-- 1081 00:45:39,901 --> 00:45:44,251 can actually decrypt and see and hear what it is that's being said. 1082 00:45:44,251 --> 00:45:47,469 And if you're one who schedules Zoom meetings, you can actually see this. 1083 00:45:47,469 --> 00:45:50,011 For instance, here's a screenshot that I took yesterday, too, 1084 00:45:50,011 --> 00:45:52,171 scheduling like a Zoom meeting for today. 1085 00:45:52,171 --> 00:45:55,441 And you'll see that you can choose the day and the time, the password. 1086 00:45:55,441 --> 00:45:55,951 Haha. 1087 00:45:55,951 --> 00:45:59,191 And also down here, the encryption level. 1088 00:45:59,191 --> 00:46:02,701 And by default, it's typically enhanced encryption, which is stupid. 1089 00:46:02,701 --> 00:46:03,866 Like enhanced encryption. 1090 00:46:03,866 --> 00:46:04,741 It's just encryption. 1091 00:46:04,741 --> 00:46:08,201 And in fact, it's sort of worse encryption than the other checkbox, 1092 00:46:08,201 --> 00:46:10,991 which is end-to-end encryption. 1093 00:46:10,991 --> 00:46:12,301 But there's this little caveat. 1094 00:46:12,301 --> 00:46:14,941 And here, too, consistent with this reality in computing, 1095 00:46:14,941 --> 00:46:16,111 there's always a trade-off. 1096 00:46:16,111 --> 00:46:16,611 Right? 1097 00:46:16,611 --> 00:46:19,141 It's not all upside and all win. 1098 00:46:19,141 --> 00:46:21,661 Several features will be automatically disabled 1099 00:46:21,661 --> 00:46:23,611 when using end-to-end encryption, including 1100 00:46:23,611 --> 00:46:25,861 cloud recording and some phone stuff. 1101 00:46:25,861 --> 00:46:28,531 I mean, that's already kind of a big loss for a class, 1102 00:46:28,531 --> 00:46:31,201 for instance, a conference that wants to keep the sessions. 1103 00:46:31,201 --> 00:46:32,461 But it kind of makes sense. 1104 00:46:32,461 --> 00:46:32,961 Right? 1105 00:46:32,961 --> 00:46:35,821 If the data is encrypted between all of the end users 1106 00:46:35,821 --> 00:46:39,539 and, therefore, Zoom has no eyes into the data or ears, 1107 00:46:39,539 --> 00:46:42,331 then it makes sense that they can't record it for you in the cloud. 1108 00:46:42,331 --> 00:46:45,631 Because it's completely, completely scrambled to them, too. 1109 00:46:45,631 --> 00:46:49,291 So a good primitive to have in place but also something 1110 00:46:49,291 --> 00:46:52,261 that you need to sacrifice in terms of usability. 1111 00:46:52,261 --> 00:46:55,051 Well, in our final moments here, let me flip back over 1112 00:46:55,051 --> 00:46:57,241 to where our hacking tool is. 1113 00:46:57,241 --> 00:47:01,171 It would seem that eight characters is doing really well, because we still 1114 00:47:01,171 --> 00:47:03,521 got three As at the beginning of this. 1115 00:47:03,521 --> 00:47:05,621 So that might be, in fact, one take away. 1116 00:47:05,621 --> 00:47:08,671 And in fact, let me flip over and proposed three pieces of homework 1117 00:47:08,671 --> 00:47:09,571 for everyone here. 1118 00:47:09,571 --> 00:47:12,094 One, use a password manager, the one that's 1119 00:47:12,094 --> 00:47:14,011 built into your phone or your operating system 1120 00:47:14,011 --> 00:47:15,541 or pay a little something more for something 1121 00:47:15,541 --> 00:47:17,191 that you might like a little better. 1122 00:47:17,191 --> 00:47:21,511 Two, use two-factor authentication for more of your accounts. 1123 00:47:21,511 --> 00:47:23,576 Maybe not all but at least more of your accounts, 1124 00:47:23,576 --> 00:47:25,201 and that's certainly a net improvement. 1125 00:47:25,201 --> 00:47:28,681 And then three, use not just encryption but end-to-end encryption. 1126 00:47:28,681 --> 00:47:32,371 And unfortunately, these features are not all quite as simple as, oh, well, 1127 00:47:32,371 --> 00:47:35,131 let me just check the box and turn on something 1128 00:47:35,131 --> 00:47:38,281 that's always been available to me, because it's not always been available. 1129 00:47:38,281 --> 00:47:40,984 And Zoom, only once they got in trouble for this, 1130 00:47:40,984 --> 00:47:43,651 did they acquire some other company that implements this feature 1131 00:47:43,651 --> 00:47:45,551 and then add it to their software. 1132 00:47:45,551 --> 00:47:48,571 But as users, as consumers, as parents, as students, 1133 00:47:48,571 --> 00:47:52,591 considering choosing one tool or another because of these features 1134 00:47:52,591 --> 00:47:54,781 is really something you are empowered to do. 1135 00:47:54,781 --> 00:47:56,761 And do not use those tools that you don't think 1136 00:47:56,761 --> 00:47:59,473 meet some threshold of comfort for you. 1137 00:47:59,473 --> 00:48:01,681 For more on this and computer science more generally, 1138 00:48:01,681 --> 00:48:05,073 any of you can take CS50 online at edx.org/cs50. 1139 00:48:05,073 --> 00:48:06,281 It's been so nice to see you. 1140 00:48:06,281 --> 00:48:07,323 Happy to chat one-on-one. 1141 00:48:07,323 --> 00:48:09,601 But otherwise, have a wonderful day here on campus. 1142 00:48:09,601 --> 00:48:11,031 This was CS50. 1143 00:48:11,031 --> 00:48:12,881 [APPLAUSE] 1144 00:48:12,881 --> 00:48:45,000 [MUSIC PLAYING] 91797

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.