Під час автентифікації ви часто стикаєтесь із захистом пароля від нульових знань (ZKPP). Сам EAP є досить загальною основою, і це може включати розкриття ідентичності клієнта, наприклад, перенесення його на наступний рівень аутентифікації, такий як RADIUS.
PACE (BSI TR-03110) - один із прикладів протоколів ZKPP, що використовуються для аутентифікації. EAP-SPEKE - це ще одне.
Захищеність ключа залежить від використання лише частин ключа в обміні між клієнтом і сервером. Клієнт пропонує нешифрований ключ до сервера. Тому сервер-шахрай отримує зашифрований текст і не має своєї простої версії. Це не нульові знання, оскільки за певний час сервер-шахрай може накопичити достатню кількість інформації, щоб зламати шифрування AES-128.
Отже, EAP-PSK не може вважатися прикладом доказу пароля з нульовим знанням, хоча інші запропоновані схеми аутентифікації на основі EAP, такі як EAP-SPEKE, мають це властивість.
Для ілюстрації проблемної частини протоколу EAP-PSK розглянемо потік повідомлень, представлений в RFC 4764.
Перше повідомлення сервер надсилає однорангові:
* Send a 16-byte random challenge (RAND_S). RAND_S was called RA
in Section 3.2
* State its identity (ID_S). ID_S was denoted by A in
Section 3.2.
o Друге повідомлення надсилається одноранговим сервером на:
* Send another 16-byte random challenge (RAND_P). RAND_P was
called RB in Section 3.2
* State its identity (ID_P). ID_P was denoted by B in
Section 3.2.
* Authenticate to the server by proving that it is able to
compute a particular MAC (MAC_P), which is a function of the
two challenges and AK:
MAC_P = CMAC-AES-128(AK, ID_P||ID_S||RAND_S||RAND_P)
o Третє повідомлення надсилається сервером однорангові:
* Authenticate to the peer by proving that it is able to compute
another MAC (MAC_S), which is a function of the peer's
challenge and AK:
MAC_S = CMAC-AES-128(AK, ID_S||RAND_P)
Тут АК - це частина секретного ключа, який використовується на даному етапі і може бути розкритий серверу-шахраю, який здатний розшифрувати AES-128.