I'm sure that by now most InfoSec-lovers have heard about KRACK. If you haven't, check out this great explaination by a fellow StackExchanger.

It's a new attack on WPA2 which allows for decryption and forging of packets in certain (and certainly quite a lot of them) scenarios by abusing a flaw in the 4-way-handshake.

Reading the research paper, I still don't understand why this attack is possible. I understood how we may abuse retransmission of message 3 during a 4-way-handshake to force key reinstallation.

Why does key reinstallation (or more specifically a client nonce reset) allow for decryption or forging?


1 Answer 1


This is because of being able to figure out the keystream for a given key and nonce when you can get both to be reused and the stream contains predictable information.

In many ciphers, a key is used to produce a series of ones and zeros that are xor'd with the data to produce an encrypted value. This string of ones and zeros is known as the keystream. If you are able to reuse a nonce and the keystream isn't altered based on the content of previous plaintext blocks, then you can look for known packets to appear in the content. When these known packets occur, you will see a predictable pattern occur and will be able to determine that you know that portion of the keystream.

By repeating the process, you eventually can gain more and more knowledge of the keystream and can then read or manipulate anything found on a known portion of the keystream. RC4 is EXTREMELY vulnerable to nonce reuse as it is a pure xor'd keystream. Similarly CTR modes of AES will be extremely susceptible. AES CBC-MAC will be a bit less impacted, however doing constant key resetting could potentially bypass the chaining due to always using the same set of initial blocks, so some information leakage would potentially still be possible, especially for the attacker faking a new client where racing will not be a factor.

  • I still don't get it. If you use AES-CBC, each plaintext block is encrypted with the same AES session key(presumably part of the PTK). Imho it's a blockwise plain text attack against AES. If I'm not right, could you elaborate exactly how the WPA2 AES CBC mode is vulnerable (with KRACK and nonce-reset)? thank you. Commented Oct 17, 2017 at 14:00
  • 1
    @user1931751 - the session key is not leaked, only the keystream. This is a replay attack. The attacker tells the client to reset the key it is using to a previously provided value. It has no idea what key it is asking it to use, just that it knows it will use the same key and nonce. Knowing a keystream doesn't help you determine the key that was used to make the keystream, otherwise knowing the plaintext of one message would allow you to determine the key and nonce's would be worthless. Since CBC will only have a matching keystream for the first block, it provides limited protection. Commented Oct 17, 2017 at 14:07
  • I got your point with gaining more and more bits of the key stream by plain text un-xor-ing. Looking at en.wikipedia.org/wiki/…, where does the key stream come in? Could you cite the source where this affects WPA2 AES CBC? Thank you. Commented Oct 17, 2017 at 14:10
  • @user1931751 I'm not sure exactly what you are asking at this point. Would you possibly be able to hop in chat. Commented Oct 17, 2017 at 14:12
  • Sorry if this is obvious but, if you use HTTPS, won't the attacker just decrypt data that is already encrypted? Commented Oct 17, 2017 at 16:36

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .