Placeholder Image

Subtitles section Play video

  • Dr. Steve Bagley: - So on Monday the 16th of October, 2017,

  • two researchers of the Belgian University released

  • information of an exploit that they've found

  • for the security mechanism used on all major

  • Wi-Fi connections these days.

  • So this is WPA, the encryption protocol that was

  • brought in to replace the early one,

  • WEP, which was basically useless.

  • So this one has been proven to be mathematically correct.

  • It's been proven to be mathematically

  • secure and so it was thought

  • that you wouldn't be able to attack it. And for the last 15 years or so

  • there's been a few fringe effects that you could exploit to get certain things,

  • but in general, it's secure. Until yesterday ?

  • The way that WPA works is that

  • when the client, your computer, connects to the base station initially starts off

  • unencrypted and very quickly they exchange a series of messages between the two

  • which get them so they've agreed on a key that they're going to use to encrypt the message.

  • And so to understand how this attack works we need to understand how those messages are transmitted,

  • and then how that's used to encrypt the data, which is why I brought Mike

  • along to sort of help talk about the encryption side of things

  • Hello, Mike

  • Dr. Make Pound: - Hello!

  • What am I doing here?

  • - So what we've got open on the computer here is I

  • set wireshark going when I turned on my Wi-Fi card

  • It's captured a series of packets and what we can see here

  • is there are four packets of information that are sent

  • between the computer and the access point and

  • These effectively agree the shared key that they're going to use.

  • now this isn't the password you put into your Wi-Fi router.

  • One of the interesting things that this attack works

  • without ever necessarily getting hold of your password.

  • So we end up with four messages that are being sent between the base station and

  • Your computer to establish those things.

  • So if we have a look at them,

  • we got our computer here, and we have

  • The access point here, or the base station

  • and we've associated with it,

  • so the first thing to set up the encryption is that the access point

  • sends a message across, and we'll call this Message 1.

  • This contains various information in there including a random number

  • which is used, and a counter which is used for something else.

  • But we won't go into too much detail

  • And then we reply with our random number which is Message 2

  • They send Message 3 which contains a bit more information, and then we send

  • Message 4 which basically says,

  • "Yep. I got that. The communication is now established."

  • Now the way the Krack Attack works is by sitting in the middle you have another computer,

  • which is your malicious actor

  • which is going to sit there to try and break into this encryption, and he has to sit in such a way that he can

  • know when Message 3 is sent and stop Message 4 being sent back

  • - Sean: What does he do? Block it or something?

  • - Dr. Bagley: I mean basically the way this works

  • Is that you need to cause Message 3 to be received by the computer

  • more than once in a way that you know about

  • and you've got access to things and if you do that you can start capturing data

  • and you can use some of the techniques that Mike's going to talk about

  • to decrypt the information.

  • So one way you could do it is you could perhaps

  • splat a bit of noise on to the Wi-Fi signal at that point.

  • There are easy ways where you pretend to be

  • a base station and quickly send a message saying,

  • "Switch to me on a different channel because I've got better communications here,"

  • which means you receive it

  • And the other base station doesn't and then it sends it out

  • and you could sort of forward it on.

  • So there's various ways you could probably

  • push this into into use, but basically once you've got in here, and you caused this to be resent

  • it causes parts of the values that the computer uses to encrypt the messages

  • To be reset as well and once you've done that you can get into a position where you can actually start to

  • decrypt the messages.

  • Dr Mike Pound: - When the client receives message 3,

  • That's a moment it thinks right I've got my keys now. I can store them away ready for encryption

  • The problem is that if the access point doesn't receive message 4, it thinks

  • Oh well something must have happened to it. So I'll send message 3 again to make sure the client got it .

  • The bugs that these researchers have found is that if message 3 gets resent, it restores the key

  • and in doing so also resets all of the other cryptographic variables it's been working with, which is a real problem

  • In particular it's a problem when you reset something called the nonce, or a number used once.

  • So the way we usually encrypt in WPA is through AES, advanced encryption standard

  • and we do it in counter mode generally speaking because it's quite fast so

  • If you think back to the video we did on

  • XOR and

  • Stream ciphers we basically use AES as a stream cipher so we have an ever-increasing counter

  • Let's say it starts at one, and we encrypt these numbers with our AES block cipher

  • Here's our key coming in here

  • So this one when encrypted using this key will produce a block of AES encrypted data that's random.

  • So basically we're generating here a set of random numbers that goes on like this from the first block

  • and then the second, and then the third and so on all the way along

  • But it's not a truly random thing because if I know the key and I can still get want to generate the same, yeah

  • And so I mean, that's about

  • Unfortunate is the problem with cryptography is that we couldn't ever use truly random because we wouldn't be able to decrypt it again

  • We have our message bits, which are you know naught, 1, 1, naught, something different

  • And we XOR these together one bit at a time

  • And that's how we encrypt and the nice thing is to decrypt we basically regenerate

  • This key stream and do the exact process again

  • we XOR our ciphertext and get our message back out. Now counter mode is very very fast and

  • It's perfectly secure if your block cipher produces nicely random bits

  • unless

  • You reuse the numbers in which case it's completely broken. In this attack, remember,

  • We're resetting the nonce because we're sending message 3 the client sees this and goes,

  • "Oh I better restart my encryption from start from scratch again."

  • So this number goes back to one, or goes back to zero somewhere at the beginning, and so we're generating the exact same key stream

  • multiple times

  • We start by cryptic some data using the key starting at 1 2 3 4 and then it gets reset

  • and we encrypt some different data with 1 2 3 4

  • Q: So normally it doesn't go around like 1 2 3 4, 1 2 3 4. It literally keeps --

  • It will just keep counting up and obviously the theoretical limit will be the

  • 128-bit number that you're trying to store. That's unlikely to happen in the time you're connected to the Wi-Fi

  • But it's a theoretical possibility

  • If they use one multiple times you can probably work out what? -- yeah,

  • so if you imagine that we've used one multiple times

  • The same keys been used, because the key didn't get changed, then the same key stream of zeros and ones have been XOR our message

  • and that's very very weak when we use the same key twice we can essentially nullify the key by XOR in two messages together and

  • Then we do a very similar process become something called crib dragging so we will come up with hypothetical bits of plaintext

  • we think let's say the word HTML or

  • Someone's login name or something like this, and we will slide it over the message until

  • It gets a hit and at that point

  • We know not only where it is

  • But also what the keystream bits for that position were. So it's not a completely trivial process

  • But on our computer it can be bruteforced incredibly quickly. If you reuse the same

  • counter twice with the same key in something like counter mode

  • It's such a huge problem because basically you can extract plaintext bits from multiple messages

  • Once you've started to do that then you've got some idea of what we've sent you might be able to predict what they're going to

  • send and sort of get in and start doing replay attacks and things like this or

  • injecting information in, but we've done all this without even knowing what the key was. So it's an interesting part of encryption where

  • You aren't necessarily secure just because the key is secret right and in this case very much not the case

  • The other issue is that some of these modes you can extract the

  • Authentication key as well so when we talked about HMAC

  • We had a secret key that we used to make sure the message hadn't been interfered with. Well, if we can find that key

  • Which you can using this attack, then you can start to forge your own messages. Start to, let's say, add in TCP packets of

  • HTML that conveniently holds some JavaScript that runs some ransomware for example, and then you know you're in business

  • And we've done that without knowing what the key is. One question

  • What would happen if this key was zero?

  • Here when we're generating this counter what happen if the key was zero. If the key is zero

  • Then you're encrypting one with zeros it will still produce a random output, but it'll produce a random output

  • That's always the same, and we will know what it is

  • So we could we could guess the key stream. And if we knew were in the key stream then

  • We could generate the right values generate the right packets. The way this

  • Plays out is on certain operating systems. It basically has no effect so Windows. IOS. It seems because of the way they

  • Follow or don't quite follow the standard it seems that this has limited effect.

  • There are still ways you can attack things, but it has a limited effect

  • So you'll say people on Windows laptops and on iOS devices should be alright?

  • They are safer than other devices the problem comes with them

  • The program that does it in Linux and on certain Android friends so the implementation used on Linux and Android

  • That clears the key out of memory which is a good thing to do because if you're sitting in a coffee shop when you go

  • After buy a coffee it's not

  • impossible to plug the device quickly, a Thunderbolt device to do it into the side of the machine and copy the

  • bit of memory out of there, which is perhaps got the key in it

  • And then we can decrypt your traffic so that makes sense the problem is that

  • When you replay message 3

  • Which you need to do to make the attack work

  • That also resets the counter, the things that Mike's talked about, and it now uses the key which is 0 to

  • Start encrypting these things so actually you end up with a known sequence of counters being generated

  • Which means that you can then as well as decrypt the messages you can sort of

  • insert data into that message stream and start sending things to you that you perhaps weren't expecting to get. So on certain operating systems, it's

  • Relatively benign on others it's more dangerous

  • But it's also worth remembering that we should still use WPA2 to encrypt things because the alternative is that you have no security

  • And that even if someone does come and do this they could do exactly the same by unplugging your base station and plugging in

  • a new device into the Ethernet the other side of that

  • and listen there anyway, so it's the risk, it needs to be patched

  • It'll be patched, and then we can all go back to using Wi-Fi and browsing the web

  • Those leaks happen all the time and so passwords are being just dumped into the internet all the time, so there's this password list called RockYou

  • Which is a bit of a game changer in password cracking if that's a thing like-- 50

  • But this is the IBM pc/xt the model 51 60 which came out two years later in 1983

  • So this is really what the first PC was like--

Dr. Steve Bagley: - So on Monday the 16th of October, 2017,

Subtitles and vocabulary

Click the word to look it up Click the word to find further inforamtion about it