Lab Abbr
Lab Abbr
Changhua He
Stanford University
March 24th, 2005
[email protected]
Outline
WLAN Security Overview
Wireless Local Area Networks
Wireless threats
Wireless security history
IEEE 802.11i Standard
Finite-state Verification of 4-Way Handshake
More Insecurities and Improvements
Modular Proof of Security
Conclusions
802.11 Infrastructure Network
Wired
Network
802.11 Association
EAP/802.1X/RADIUS Authentication
MSK
4-Way Handshake
Data Communication
Outline
WLAN Security Overview
IEEE 802.11i Standard
Finite-state Verification of 4-Way Handshake
Murφ Model Checker
Modeling the 4-way handshake
Attacks and solutions
More Insecurities and Improvements
Modular Proof of Security
Conclusions
Finite-State Verification
Powerful methodology
Used in protocol and software verifications
No requirements on implementations
• Comparing to static analysis and dynamic tracing
Challenges
Requires complete understanding of what you check
State space reduction techniques
Many tools available
Generic model checking:
• Murφ, Spin, SMV
Automatic model generation model checking:
• Pathfinder, Bandera, Verisoft
Murφ Model Checker
Informal
Formal Intruder
Protocol
Protocol Model
Description
Analysis
Find error Tool
Specify security
conditions and run Murj
Diagnosing Errors
Bad abstraction
Removed too much detail from the protocol when
constructing the abstract model
Add the piece that fixes the bug and repeat
Genuine attack
Yay! Hooray!
Attacks found by formal analysis are usually quite strong
• Independent of specific cryptographic schemes
• Independent of implementations, etc.
Test an implementation of the protocol, if available
The 4-Way Handshake
Supplicant Authenticator
Auth/Assoc Auth/Assoc
802.1X Blocked 802.1X Blocked
PMK PMK
AA, ANonce, sn, msg1
PTK Derived
SPA, SNonce, SPA RSN IE, sn, msg2, MIC
PTK Derived
Random GTK
AA, ANonce, AA RSN IE, GTK, sn+1, msg3, MIC
SPA, sn+1, msg4, MIC
->
PTK Derived
SPA, SNonce, SPA RSN IE, sn, msg2, MIC
PTK Derived
SPA, SNonce, SPA RSN IE, sn, msg2, MIC
AA, ANonce[1], sn, msg1 PTK Derived
Random GTK
AA, ANonce[n], sn, msg1
Random-Drop
Queue:
Randomly drop a
stored entry to
adopt the state
for the incoming
Message 1 if the
queue is filled.
Not so effective
4-Way Blocking: Solution 2
Authenticate Message 1
To reuse the algorithms/hardware, set nonces to special
values, e.g., 0, and derive PTK.
Calculate MIC for Msg 1 using the derived PTK
Good solution if PMK is fresh
If PSK and cached PMK, replay attacks !
Add a monotonically increasing global sequence counter
Use local time in authenticator side
Sufficient space in Message 1 ( 8-octet sequence field )
No worry about time synchronization
Performance Degradation
4-Way Blocking: Solution 4
Combined solution
Supplicant re-use SNonce
Store one entry of ANonce and PTK for the first Message 1
If nonce in Message 3 matches the entry, use PTK directly;
otherwise derive PTK again and use it.
Advantages
Eliminate the memory DoS attack
Ensure performance in “friendly” scenarios
Only minor modifications on the algorithm in the Supplicant
• No modifications on the packet format
Adopted by TGi
Simple solution, but not immediate
Practical considerations, not designing a new protocol
Reflection Attack
Adversary Legitimate
Impersonates Devices
Communicating Authenticator and
Peers Supplicant
{A1, Nonce1, sn, msg1}
{A2, Nonce1, sn, msg1}
{A1, Nonce2, RSN IE, sn, msg2, MIC}
{A2, Nonce2, RSN IE, sn, msg2, MIC}
{A1, Nonce1, RSN IE, GTK, sn+1, msg3, MIC}
{A2, Nonce1, RSN IE, GTK, sn+1, msg3, MIC}
{A1, sn+1, msg4, MIC}
{SPA, sn+1, msg4, MIC}
Private
Data
Alice’s information
Protocol
Private data
Sends and receives
Formalizing the Approach
Abstraction based on Dolev-Yao Model [1983]
“Black-box” cryptography
No partial knowledge, no statistical tests
Language for protocol description
Arrows-and-messages are informal
“Cord” program for each protocol role: terms & actions
Protocol Semantics
How does the protocol execute?
Protocol, initial configuration, run
Protocol logic
Stating security properties
Proof system
Formally proving security properties
Cords: 4-Way Handshake
Authenticator = Supplicant =
(X, Y, PMKXY)[ (Y, PMKXY)[
new x; receive X, Y, z;
send X, Y, x, m1; match z/x, m1;
receive Y, X, z; new y;
match z/y,m2,Hash(PTKXY,y,m2); send Y, X, y, m2,Hash(PTKXY,y,m2);
send X,Y,x,m3,Hash(PTKXY,x,m3); receive X, Y, z;
receive Y, X, z; match z/x,m3,Hash(PTKXY,x,m3);
match z/m4, Hash(PTKXY, m4) send Y, X, m4, Hash(PTKXY, m4)
]X ]Y
Authenticator: 4-Way Handshake
Pre-condition
Has(X, PMKXY) Has(Y, PMKXY) (Has(Z, PMKXY) (Z = X Z = Y))
Secret Key Agreement
Honest(X) Honest(Y)
Has(X, PTKXY) Has(Y, PTKXY) (Has(Z, PMKXY) (Z = X Z = Y))
Session Authentication
Y. Honest(X) Honest(Y)
Send(X, X, Y, x, m1) Receive(Y, X, Y, x, m1)
Send(Y, Y, X, y, m2, Hash(PTKXY,y,m2))
Receive(X, Y, X, y, m2, Hash(PTKXY,y,m2))
Send(X, X, Y, x, m3, Hash(PTKXY,x,m3))
Receive(Y, X, Y, x, m3, Hash(PTKXY,x,m3))
Send(Y, Y, X, m4, Hash(PTKXY, m4))
Receive(X, Y, X, m4, Hash(PTKXY, m4))
Protocol Composition
Composition
Convenient for analyzing large protocols and systems
Not only for proving things, but also for building systems
Non-destructive combination
Ensure that the combined parts do not degrade each
other’s security
Assumptions about the environment: invariance assertions
Additive combination:
Accumulate security properties of combined parts,
assuming they do not interfere
Properties achieved by individual protocol roles
Invariants of one component must be
satisfied by any other components
802.11i Proved Properties
EAP-TLS
Mutual authentication: actions matched in order
Secret key achieved: known and only known to peers
The 4-Way Handshake
Session authentication: actions matched in order
Secret key agreement: fresh PTK derived
Group Key Handshake
Session authentication: actions matched in order
Secret group key: group key distributed
802.11i components compose safely
Answering the question
[http://www.pacwireless.com]
Temporal Key Integrity Protocol
Re-use legacy hardware: RC4 for encryption
Michael algorithm for MIC
“Dolev-Yao” Model