/
September 2016 Dan Harkins, HPE September 2016 Dan Harkins, HPE

September 2016 Dan Harkins, HPE - PowerPoint Presentation

ella
ella . @ella
Follow
343 views
Uploaded On 2022-07-01

September 2016 Dan Harkins, HPE - PPT Presentation

Slide 1 PKEX issue in 80211ai Date 20160913 Authors September 2016 Dan Harkins HPE Slide 2 Abstract This presentation discusses the PKEX issues September 2016 Dan Harkins HPE ID: 928382

pkex key 2016 attack key pkex attack 2016 public harkins slide maca macb exchange september dan hpe nonceb noncea

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "September 2016 Dan Harkins, HPE" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

September 2016

Dan Harkins, HPE

Slide 1

PKEX issue in 802.11ai

Date: 2016-09-13

Authors:

Slide2

September 2016

Dan Harkins, HPE

Slide 2

Abstract

This presentation discusses the PKEX issues.

Slide3

September 2016

Dan Harkins, HPE

Slide 3

PKEX Exchange

Intended to allow two parties to exchange a “raw” public key for use with FILS public key authenticationUses a password to authenticate the exchange and encrypt the exchanged public keys

Slide4

PKEX

Exchange

Slide

4

Dan Harkins, HPE

September 2016

s

B

P

B

=

s

B

*G

s

A

P

A

=

s

A

*G

Pwe

= F(pw)

m

A

= H(

macA)CA = PA + mA*Pwe

CA

CB

m’B = H(macB)P’B = CB - m’B*Pwe if (min(nonceA, nonceB) == nonceA x = H(nonceB|| nonceA) k = Kdf(x, "PKEX Key Confirmation", CB || CA || macB || macA || F(S))else x = H(nonceA || nonceB) k = Kdf(x, "PKEX Key Confirmation", CA || CB || macA || macB || F(S))checkA = HMAC(k, PA || P’B || macA|| macB)

checkA

After the exchange: - Alice has Bob’s public key PB and has validated its ownership to that of the owner of the shared secret - Bob has Alice’s public key PA and has validated its ownership to that of the owner of the shared secret

Bob

Alice

shared secretpw

Pwe = F(pw)mB = H(macB)CB = PB + mB*Pwe

m’A = H(macA)P’A = CA - m’A*Pwe if (min(nonceB, nonceA) == nonceB x = H(nonceA || nonceB) k = Kdf(x, "PKEX Key Confirmation", CA || CB || macA || macB || F(S))else x = H(nonceB|| nonceA) k = Kdf(x, "PKEX Key Confirmation", CB || CA || macB || macA || F(S)) checkB = HMAC(k, PB || P’A || macB|| macA)

checkB

Validate checkB == HMAC(k, PB || PA || macB|| macA)

Validate checkA == HMAC(k, PA || P’B || macA|| macB)

Slide5

September 2016

Dan Harkins, HPE

Slide 5

What’s the Problem?

Only truly secure when the same public key is not used in multiple PKEX runsRunning PKEX multiple times with the same public key opens up two attacks:Off-line dictionary attack to determine the password(s) usedMan-in-the-middle attack to insert an adversary’s public key

Slide6

Off-line Dictionary Attack

Adversary watches two exchanges in which she knows that the same public key was used both times (let’s say from “Alice”)

CA1

= PA + Q

A1 = PA + (mA*Pwe1)

CA2 = PA

+ QA2 = PA

+

(m

A

*Pwe2)

Therefore, adversary knows C

A1

- C

A2

=

Q

A1

- QA2 Adversary can go offline and check all N2 password combinations where N is number of possible passwordsBirthday paradox makes this an O(N) attack not O(N2

)Slide 6Dan Harkins, HPESeptember 2016

Slide7

Off-line Dictionary Attack

If the adversary learns the password after the exchange is over the so what? Keys are exchanged, nothing is subverted

If dictionary attack can be done in real-time though, the exchange can be subverted by inserting the adversary’s public key into the exchangeDictionary attacks are getting faster and faster

Slide 7Dan Harkins, HPE

September 2016

Slide8

Man-in-The-Middle Attack

Adversary knows that the same key is being used a second time (let’s say by “Bob”)

Adversary gets C1, modifies C2 = C =

PB + QB

by determining QB (knows PB) and inserts adversary’s keyBut adversary cannot decrypt

PA to complete attack because she doesn’t know QA

To determine QA, it is necessary to take a discrete logarithm from an unknown root

An Nth root equation where N is

a 256-bit number!

Extremely unlikely this compute power is readily available

But the fix is easy, add the password to the KDF

Slide

8

Dan Harkins, HPE

September 2016

Slide9

Man-in-The-Middle Attack

There is an easier attack but it requires both parties to exchange the same key multiple times

There is really no reason why people would do PKEX twice with the same keys– if they exchanged their keys once what’s the point?

Somewhat of a contrived attack, but the fix is the same, add the password to the KDFSlide 9

Dan Harkins, HPESeptember 2016

Slide10

Conclusion

The Man-In-The-Middle attack is an easy fixThe dictionary attack is more severe

802.11 has a history of releasing security protocols with flaws– PSK mode, WEPIt is possible to replace PKEX with something that does not suffer from the problems presented here

PKEX is not critical to FILS, it’s optional and it’s still possible exchange “raw” public keys in a manner outside the scope of the standard.Let’s just get rid of PKEX

Slide 10Dan Harkins, HPESeptember 2016

Slide11

September 2016

Dan Harkins, HPE

Slide 11

References