<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://xinux.net/index.php?action=history&amp;feed=atom&amp;title=WPA3</id>
	<title>WPA3 - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://xinux.net/index.php?action=history&amp;feed=atom&amp;title=WPA3"/>
	<link rel="alternate" type="text/html" href="https://xinux.net/index.php?title=WPA3&amp;action=history"/>
	<updated>2026-08-23T15:04:06Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Xinux Wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://xinux.net/index.php?title=WPA3&amp;diff=72708&amp;oldid=prev</id>
		<title>Thomas.will: Die Seite wurde neu angelegt: „= WPA3-Personal: Der SAE-Handshake =  WPA3-Personal ersetzt den anfälligsten Teil von WPA2: die Ableitung des Schlüssels direkt aus dem Passwort. An seine St…“</title>
		<link rel="alternate" type="text/html" href="https://xinux.net/index.php?title=WPA3&amp;diff=72708&amp;oldid=prev"/>
		<updated>2026-08-15T10:47:45Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „= WPA3-Personal: Der SAE-Handshake =  WPA3-Personal ersetzt den anfälligsten Teil von WPA2: die Ableitung des Schlüssels direkt aus dem Passwort. An seine St…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= WPA3-Personal: Der SAE-Handshake =&lt;br /&gt;
&lt;br /&gt;
WPA3-Personal ersetzt den anfälligsten Teil von WPA2: die Ableitung des Schlüssels direkt aus dem Passwort. An seine Stelle tritt '''SAE''' (''Simultaneous Authentication of Equals''), ein passwortauthentisierter Schlüsselaustausch auf Basis des '''Dragonfly'''-Verfahrens (RFC 7664).&lt;br /&gt;
&lt;br /&gt;
== Grundidee ==&lt;br /&gt;
&lt;br /&gt;
Bei WPA2-PSK gilt vereinfacht &amp;lt;code&amp;gt;PMK = PSK&amp;lt;/code&amp;gt; — der Schlüssel hängt unmittelbar am Passwort. Der mitgeschnittene 4-Wege-Handshake enthält eine MIC, die sich offline gegen eine Passwortliste nachrechnen lässt: einmal mitschneiden, beliebig oft raten. Ein schwaches Passwort fällt in Sekunden.&lt;br /&gt;
&lt;br /&gt;
SAE dreht genau das um. Das Ziel in einem Satz:&lt;br /&gt;
&lt;br /&gt;
: '''Jeder einzelne Passwortversuch soll einen aktiven Kontakt mit dem AP kosten — es soll nichts geben, das man offline durchrechnen kann.'''&lt;br /&gt;
&lt;br /&gt;
Zusätzlich bringt SAE ''Forward Secrecy'' (alte Mitschnitte bleiben auch bei später bekanntem Passwort geschützt) und beidseitige Authentisierung (auch der AP muss die Kenntnis des Passworts beweisen).&lt;br /&gt;
&lt;br /&gt;
== Begriffe ==&lt;br /&gt;
&lt;br /&gt;
;SAE&lt;br /&gt;
:Simultaneous Authentication of Equals — der Handshake von WPA3-Personal. Beide Seiten sind gleichberechtigt und laufen gleichzeitig.&lt;br /&gt;
;Dragonfly&lt;br /&gt;
:Der zugrunde liegende Schlüsselaustausch (RFC 7664), auf dem SAE aufsetzt.&lt;br /&gt;
;PAKE&lt;br /&gt;
:Password-Authenticated Key Exchange — Protokollklasse, die aus einem schwachen Geheimnis (Passwort) einen starken Sitzungsschlüssel macht, ohne das Passwort offline angreifbar zu machen.&lt;br /&gt;
;PWE&lt;br /&gt;
:Password Element — das Passwort, abgebildet auf einen Punkt der elliptischen Kurve. Auf beiden Seiten gleich, weil das Passwort gleich ist.&lt;br /&gt;
;Commit&lt;br /&gt;
:Erste Nachricht: &amp;lt;code&amp;gt;scalar&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;Element&amp;lt;/code&amp;gt;. Legt die eigenen Zufallswerte fest, ohne sie preiszugeben.&lt;br /&gt;
;Confirm&lt;br /&gt;
:Zweite Nachricht: ein HMAC über den bisherigen Austausch. Beweist, dass man dasselbe &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; — und damit dasselbe Passwort — hat.&lt;br /&gt;
;K&lt;br /&gt;
:Das gemeinsame Geheimnis aus dem Commit-Austausch. Auf beiden Seiten identisch, wird nie übertragen.&lt;br /&gt;
;PMK&lt;br /&gt;
:Pairwise Master Key — wird bei WPA3 aus &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; abgeleitet (nicht mehr = Passwort) und speist danach den normalen 4-Wege-Handshake für die Sitzungsschlüssel.&lt;br /&gt;
;ECDLP&lt;br /&gt;
:Elliptic Curve Discrete Logarithm Problem — die „Einbahnstraße“, die verhindert, aus dem öffentlichen &amp;lt;code&amp;gt;scalar&amp;lt;/code&amp;gt; das geheime &amp;lt;code&amp;gt;rand&amp;lt;/code&amp;gt; zurückzurechnen.&lt;br /&gt;
;H2E&lt;br /&gt;
:Hash-to-Element — modernes Verfahren zur PWE-Bildung, das die älteren „hunting and pecking“-Seitenkanäle (Dragonblood) schließt.&lt;br /&gt;
&lt;br /&gt;
== Der Handshake ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:sae-handshake.svg|800px]]&lt;br /&gt;
&lt;br /&gt;
Client (STA) und Access Point kennen beide nur das Passwort — kein Server, keine Zertifikate. Der Ablauf:&lt;br /&gt;
&lt;br /&gt;
# '''PWE bilden''' — beide leiten aus demselben Passwort denselben Punkt &amp;lt;code&amp;gt;PWE&amp;lt;/code&amp;gt; auf der Kurve ab.&lt;br /&gt;
# '''Commit austauschen''' — jede Seite würfelt zwei geheime Zufallszahlen &amp;lt;code&amp;gt;rand&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;mask&amp;lt;/code&amp;gt;, bildet daraus &amp;lt;code&amp;gt;scalar&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;Element&amp;lt;/code&amp;gt; und schickt beides. Ab hier ist es mitschneidbar.&lt;br /&gt;
# '''K berechnen''' — jede Seite kombiniert das empfangene Commit mit dem eigenen &amp;lt;code&amp;gt;rand&amp;lt;/code&amp;gt;. Beide landen beim selben Geheimnis &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt;, das nie gesendet wird.&lt;br /&gt;
# '''Confirm austauschen''' — aus &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; wird &amp;lt;code&amp;gt;KCK&amp;lt;/code&amp;gt; abgeleitet, damit ein HMAC gebildet und gegenseitig geprüft. Passt er beidseitig, steht der &amp;lt;code&amp;gt;PMK&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Danach läuft der gewohnte 4-Wege-Handshake und leitet aus dem PMK die Sitzungsschlüssel (PTK) ab.&lt;br /&gt;
&lt;br /&gt;
„Simultaneous“ heißt: Es gibt kein Client-fragt/Server-antwortet. Beide Seiten erzeugen ihr Commit unabhängig und gleichzeitig — das Protokoll ist symmetrisch.&lt;br /&gt;
&lt;br /&gt;
== Berechnungen ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:sae-berechnung.svg|800px]]&lt;br /&gt;
&lt;br /&gt;
Die Abbildung des Passworts auf einen Kurvenpunkt:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;PWE = f(Passwort)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Commit — &amp;lt;code&amp;gt;scalar&amp;lt;/code&amp;gt; versteckt &amp;lt;code&amp;gt;rand&amp;lt;/code&amp;gt; in der Summe, &amp;lt;code&amp;gt;Element&amp;lt;/code&amp;gt; versteckt &amp;lt;code&amp;gt;mask&amp;lt;/code&amp;gt; auf der Kurve (&amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt; ist die Ordnung der Gruppe, ein öffentlicher Parameter):&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;scalar  = (rand + mask) mod r&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;Element = −mask · PWE&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das gemeinsame Geheimnis — jede Seite rechnet mit dem Commit der Gegenseite und dem eigenen &amp;lt;code&amp;gt;rand&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;K = rand · (scalar_peer · PWE + Element_peer)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Setzt man &amp;lt;code&amp;gt;scalar_peer · PWE + Element_peer = rand_peer · PWE&amp;lt;/code&amp;gt; ein (das &amp;lt;code&amp;gt;mask&amp;lt;/code&amp;gt; hebt sich weg), ergibt sich auf '''beiden''' Seiten dasselbe:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;K = rand_C · rand_A · PWE&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aus &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; werden schließlich &amp;lt;code&amp;gt;KCK&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;PMK&amp;lt;/code&amp;gt; abgeleitet, und der Confirm beweist beidseitig die Kenntnis des Passworts:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;confirm = HMAC(KCK, transcript)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Warum kein Offline-Angriff ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:sae-sicherheit.svg|800px]]&lt;br /&gt;
&lt;br /&gt;
Ein Angreifer schneidet den kompletten Handshake mit. In der Hand hat er dann nur die übertragenen Werte: &amp;lt;code&amp;gt;scalar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Element&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;confirm&amp;lt;/code&amp;gt; beider Seiten.&lt;br /&gt;
&lt;br /&gt;
Um ein geratenes Passwort zu prüfen, müsste er &amp;lt;code&amp;gt;confirm&amp;lt;/code&amp;gt; nachrechnen — dafür braucht er &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt;, und dafür wiederum das geheime &amp;lt;code&amp;gt;rand&amp;lt;/code&amp;gt; der Gegenseite. Das steckt im &amp;lt;code&amp;gt;scalar&amp;lt;/code&amp;gt; verborgen und ist durch das ECDLP nicht rückrechenbar. Es gibt also nichts, wogegen sich ein Rateversuch offline testen ließe.&lt;br /&gt;
&lt;br /&gt;
Die einzige Möglichkeit, ein Passwort zu prüfen, ist ein frischer, aktiver SAE-Lauf gegen den echten AP: ein Versuch = ein Handshake. Der AP kann mitzählen, drosseln und sperren. Aus „Milliarden pro Sekunde offline“ wird „einer nach dem anderen, online, beobachtbar“.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
! WPA2-PSK&lt;br /&gt;
! WPA3-SAE&lt;br /&gt;
|-&lt;br /&gt;
! PMK&lt;br /&gt;
| = PSK (direkt aus dem Passwort)&lt;br /&gt;
| aus dem SAE-Austausch abgeleitet&lt;br /&gt;
|-&lt;br /&gt;
! Im Mitschnitt&lt;br /&gt;
| eine gegen Wortliste testbare MIC&lt;br /&gt;
| nur scalar/Element/confirm — nichts Testbares&lt;br /&gt;
|-&lt;br /&gt;
! Passwort raten&lt;br /&gt;
| offline, beliebig schnell&lt;br /&gt;
| nur online, ein Versuch pro Handshake&lt;br /&gt;
|-&lt;br /&gt;
! Forward Secrecy&lt;br /&gt;
| nein&lt;br /&gt;
| ja — frische Zufallswerte je Sitzung&lt;br /&gt;
|-&lt;br /&gt;
! Rogue-AP&lt;br /&gt;
| Client authentisiert AP nicht wirklich&lt;br /&gt;
| beidseitiger Beweis — ohne Passwort kein Erfolg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Drei Eigenschaften gewinnt WPA3 damit auf einmal: kein Offline-Wörterbuchangriff, Forward Secrecy pro Sitzung und beidseitige Authentisierung. Alle drei fallen direkt aus der PAKE-Konstruktion.&lt;br /&gt;
&lt;br /&gt;
== Angriffe (Ausblick) ==&lt;br /&gt;
&lt;br /&gt;
SAE selbst ist mathematisch robust; angreifbar wird WPA3 an zwei anderen Stellen, die ein eigenes Kapitel bekommen:&lt;br /&gt;
&lt;br /&gt;
;Transition-Mode-Downgrade&lt;br /&gt;
:Läuft ein Netz im WPA2/WPA3-Mischbetrieb, kann ein Angreifer einen Rogue-AP aufstellen, der nur WPA2 anbietet. Der Client fällt zurück — und dann greift der klassische WPA2-Offline-Angriff. Gegenmaßnahme: WPA3-only konfigurieren.&lt;br /&gt;
;Dragonblood&lt;br /&gt;
:Seitenkanäle (Timing/Cache) beim älteren „hunting and pecking“ der PWE-Bildung, über die sich Teilinformationen über das Passwort abgreifen ließen. Mit Hash-to-Element (H2E) geschlossen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* RFC 7664 — Dragonfly Key Exchange&lt;br /&gt;
* Wi-Fi Alliance — WPA3 Specification&lt;br /&gt;
* Vanhoef, Ronen: ''Dragonblood: Analyzing the Dragonfly Handshake of WPA3 and EAP-pwd'' (2019)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:WLAN]]&lt;br /&gt;
[[Kategorie:IT-Sicherheit]]&lt;/div&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
</feed>