EAP-SAKE

What is Expansion of EAP-SAKE?

EAP-SAKE stands for Extensible Authentication Protocol – Shared-secret Authentication and Key Establishment.

What is EAP-SAKE?

EAP-SAKE is an EAP method that provides mutual authentication and key derivation using a pre-shared secret, without relying on public key infrastructure (PKI).

Why is EAP-SAKE useful?

  • Avoids complexity of certificates or asymmetric cryptography.

  • Lightweight and suitable for constrained devices or environments.

  • Provides mutual authentication and key derivation.

  • More secure than simple password-based methods.

How it works?

  • Based on a challenge-response mechanism using a shared secret.

  • Involves exchange of random nonces and authentication tokens.

  • Key derivation is performed after successful mutual verification.

  • MACs (Message Authentication Codes) ensure integrity and authenticity.

Where is EAP-SAKE used?

  • Environments where certificate management is undesirable or too heavy.

  • Embedded systems or IoT applications.

  • Wireless or VPN networks needing pre-shared key authentication.

Which OSI layer does this protocol belong to?

  • Operates at the Application Layer (Layer 7).

  • Encapsulated within EAP which rides over lower layers (like EAPOL or RADIUS).

IS EAP-SAKE Windows specific?

  • No, it is not Windows-specific.

  • Platform-independent, though not natively supported in many Windows clients.

IS EAP-SAKE Linux Specific?

  • No, but it may require custom implementation or patching on Linux clients (e.g., wpa_supplicant or FreeRADIUS).

Which Transport Protocol is used by EAP-SAKE?

  • Transported via EAP.

  • Underlying protocols: EAPOL, RADIUS (typically over UDP), or Diameter (over TCP).

Which Port is used by EAP-SAKE?

  • Standard RADIUS ports: * UDP 1812 (Authentication) * UDP 1813 (Accounting)

Is EAP-SAKE using Client server model?

  • Yes.

  • Client: Supplicant device

  • Server: Authentication server (e.g., RADIUS)

Whether EAP-SAKE protocol uses certificates?

  • No.

  • It relies only on pre-shared symmetric keys.

How many frame exchanges are seen during connection for EAP-SAKE protocol?

  • Typically involves 4–6 EAP messages, depending on the implementation and configuration.

Whether EAP-SAKE Protocol uses client certificates?

  • No, it does not use client certificates.

Whether EAP-SAKE Protocol uses Server Certificates?

  • No, it does not use server certificates.

IS EAP-SAKE Protocol depends on TCP?

  • No direct dependency.

  • May use TCP if backend protocol (e.g., Diameter) is configured that way.

IS EAP-SAKE Protocol depends on UDP?

  • Yes, when used with RADIUS, it typically relies on UDP 1812.

What are the roles involved when testing EAP-SAKE Protocol?

  • Supplicant (Client)

  • Authenticator (e.g., AP or switch)

  • Authentication Server (e.g., FreeRADIUS with EAP-SAKE support)

Does EAP-SAKE Protocol work with FreeRADIUS server on Linux?

  • Yes, but it may require enabling or configuring the eap-sake module.

  • Not commonly enabled by default.

Does EAP-SAKE Protocol work with Internal radius server of hostapd?

  • No, hostapd’s internal RADIUS server is too limited.

  • External RADIUS (like FreeRADIUS) is required.

What is the RFC version use for EAP-SAKE Protocol?

  • Defined in RFC 4763.

During Connection Procedure which EPoL Packets are encrypted?

  • EAPOL packets are not encrypted at Layer 2.

  • However, authentication payloads are integrity protected via MACs using the shared secret.

Can you Explain different stages of Connection Procedure for EAP-SAKE Protocol?

  • Stage 1: EAP Identity exchange

  • Stage 2: Server sends random challenge and authentication ID

  • Stage 3: Client responds with its own random nonce and MAC

  • Stage 4: Server verifies and replies with final MAC

  • Stage 5: Success message sent after mutual verification

What is the final output of Connection Procedure?

  • Generation of a shared Master Session Key (MSK).

  • Optionally an Extended Master Session Key (EMSK) is also derived.

What is the format of the key generate after the connection procedure?

  • MSK is 64 bytes (512 bits).

  • EMSK is also 64 bytes (optional, for future re-authentication or derivations).

Where the use of PMK generated by the Connection Procedure?

  • The PMK (derived from MSK) is used by the Authenticator (e.g., AP) to generate encryption keys like PTK.

  • Enables secure data communication in WPA2-Enterprise/WPA3-Enterprise environments.

  • In this section, you are going to learn

  • Terminology

  • Version Info

  • rfc details

  • Run AP mode operation with hostapd

AP : Download hostapd

Note

  • Make sure internet is available in laptop to download hostapd package

test:~$ wget http://w1.fi/releases/hostapd-2.9.tar.gz

AP: Install required packages

test:~$ sudo apt install libnl-genl-3-dev libnl-3-dev libdbus-glib-1-dev

AP : Extract hostapd

test:~$ tar -xzvf hostapd-2.9.tar.gz

AP : Change directory to hostapd

test:~$ cd hostapd-2.9/hostapd/

AP : Check the current working directory using pwd command

Note

  • Make sure your current working directory is hostapd

test:~$ pwd
/home/test/hostapd-2.9/hostapd

AP : Copy the contents of defconfig file to .config file

Note

  • .config file is required for make to start compilation of hostapd

test:~$ sudo cp defconfig .config

AP : Complile hostapd

Note

  • Compile hostapd by running make command

test:~$ make

AP : Check for the binaries created

Note

  • Make sure hostapd and hostapd_cli are present

test:~$ ls
hostapd
hostapd_cli

AP : Create a hostapd.conf file in /etc/hostapd folder with below content

test:~$ sudo vim /etc/hostapd/hostapd.conf

ctrl_interface=/var/run/hostapd
interface=enp0s8
driver=wired
logger_stdout=1
logger_stdout_level=1
ieee8021x=1
eap_server=1
eap_user_file=/etc/hostapd/hostapd.eap_user
eap_reauth_period=3600
auth_algs=1
macaddr_acl=0

AP : Create a file eap_user in /etc/hostapd/ folder with below content

test:~$ sudo vim /etc/hostapd/hostapd.eap_user

AP : Run hostapd

test:~$ sudo ./hostapd /etc/hostapd/hostapd.conf
enp0s8: interface state UNINITIALIZED->ENABLED
enp0s8: AP-ENABLED

STA : Download wpa_supplicant

Note

  • Make sure internet is available in laptop to download supplicant package

test:~$ wget https://w1.fi/releases/wpa_supplicant-2.9.tar.gz

STA: Install required packages

test:~$ sudo apt install libnl-genl-3-dev libnl-3-dev libdbus-glib-1-dev

STA : Extract wpa_supplicant

test:~$ tar -xvf wpa_supplicant-2.9.tar.gz

STA : Change directory to wpa_supplicant

test:~$ cd wpa_supplicant-2.9/wpa_supplicant/

STA : Check the current working directory using pwd command

Note

  • Make sure your current working directory is wpa_supplicant

test:~$ pwd
/home/test/wpa_supplicant-2.9/wpa_supplicant

STA : Copy the contents of defconfig file to .config file

Note

  • .config file is required for make to start compilation of supplicant

test:~$ cp defconfig .config

STA : Compile wpa_supplicant

Note

  • Compile supplicant by running make command.

test:~$ make

STA: You might get errors while make regarding openssl headers in that case install the openssl headers and then do make clean and then do make again.

test:~$ sudo apt install libssl-dev
test:~$ make clean
test:~$ make

STA : Check for the binaries created

Note

  • Make sure wpa_supplicant and wpa_cli are present

test:~$ ls
wpa_supplicant
wpa_cli

STA: Copy required certificates from hostapd to wpa_supplicant

STA : Create wpa_supplicant.conf

test:~$ sudo vim wpa_supplicant.conf

ctrl_interface=/run/wpa_supplicant
update_config=1
network={
key_mgmt=WPA-EAP
eap=SAKE
identity="user2"
password="b7962e84c816c4a1644f1366344338aa"
}

STA : Run wpa_supplicant

test:~$ sudo ./wpa_supplicant -D wired -i enp0s8 -c wpa_supplicant.conf
enp0s8: CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully

STA: Test

test:sudo ./wpa_cli -i enp0s8
> status
  • setup

  • setup

  • packet details

  • usecases

  • features

  • Reference links