Offtopic: WPA-PSK: Every client connection from AP has own key?

Piotr Zawadzki pzawadzki
Tue May 30 02:30:03 PDT 2006

Dnia poniedzia?ek, 29 maja 2006 14:47, Bryan Kadzban napisa?:
> Beat Meier wrote:
> > If using wpa-psk every client has an other key to encrypt data
> > transfer or all have the same?
> Each client has its own PTK, but (in almost all AP implementations
> anyway) all clients share the same PMK.
> There are two (actually probably three) "levels" of keys.  The PMK is
> used in the 4-way handshake (along with some random data sent in
> plaintext) to generate a PTK, which is used as the "master" for the TKIP
> algorithm.
> > I.e. data transfers can be decrypted from one client which is for an
> > other client?
> If the one client sniffs the 4-way handshake of another client, and the
> AP in use makes you configure one PSK for all clients, then yes, any
> client that knows the PSK/PMK can decrypt unicast frames that are
> intended for another client.  Because the "attacking" client can
> generate the PTK for the "attacked" client, and the PTK is all you need
> to set up TKIP.  (Or CCMP, actually.  It's not immune to this either.)
> > The Preshared key is what is called master key from which the PMK is
> > generated?
> No, the pre-shared key *is* the PMK.  It gets converted to hex (or used
> as hex from the start, if given to the AP or client that way), then used
> as the PMK in the 4-way handshake.  But it's exactly the same keying
> material.
> > Some thread say the all have the same enc. key (only EAP-TLS has
> > different keys) other they have all the own key ...
> Not exactly true.  EAP-TLS does have different PMKs for each client and
> each (re)association, but so does EAP-PEAP (and any other RADIUS method
> that supports key negotiation).
> WPA-PSK is the only setup where clients share PMKs.
> > If every client has an own key where is this key stored i.e. how is
> > this encryption done in hw if every client has own key?
> The PTK is "stored" in the NIC somewhere (or in the driver).  NDIS, for
> instance, has an OID value that you can use to program the PTK into the
> wireless driver, and the driver will either store it away somewhere if
> it does the decryption, or it'll program it into the card if the card
> does the decryption.  I believe Linux Wireless Extensions has a similar
> setup.
> The PMK/PSK itself is stored in the supplicant's config somewhere, if
> you're using PSK mode.  If you aren't, then the supplicant and RADIUS
> server have a conversation, and after the supplicant is authenticated,
> the server sends it a (randomly generated) PMK to use.  It stores this
> in the driver, see above.  The RADIUS server also sends this key to the
> AP, and the AP stores it away.  The 4-way handshake makes sure that both
> ends got the same key.
> > Where can I get more infos about that?
> The IEEE 802.11i spec would be a good place (seeing as it's the standard
> ;-)), but it's probably not that easy to understand.  It took me a week
> or so to finally figure out what it was talking about in several places.
Edney, Arbaugh ,,Real 802.11 security ..."
Piotr Zawadzki
retrieve public key from

More information about the Hostap mailing list