Есть ли способ воспроизвести функциональность кнопки "Сохранить учетные данные" в меню "Настройки 802.1x" с помощью Windows API? Или какой-либо другой способ навсегда сохранить учетные данные PEAP для профиля беспроводной сети.
Я пробовал использовать функцию WlanSetProfileEapXmlUserData для установки MsChapV2:Username и MsChapV2:Password. Он кэширует учетные данные, но не сохраняет их постоянно.
UPD: удалось найти пользовательские данные, хранящиеся в HKLM\SOFTWARE\Microsoft\Wlansvc\UserData\Profiles\{GUID}, но они зашифрованы. Я предполагаю, что CryptProtectData используется для его шифрования. Если бы я только знал, какая соль используется.
Ответ 1 · рейтинг 3 · pupkinsen
HKLM\SOFTWARE\Microsoft\Wlansvc\UserData\Profiles\{GUID}\MSMUserData содержит данные, относящиеся к учетным данным PEAP. Он зашифрован с помощью CryptProtectData. Расшифровка дала нам бинарный блоб, который, к счастью, легко понять. Он содержит имя пользователя и, возможно, домен входа в систему в виде обычного текста. Информация о пароле снова шифруется с помощью функции CryptProtectData и помещается ближе к концу большого двоичного объекта.
Шифрование выполняется без флага LOCAL_MACHINE, поэтому только пользователь локальной системы может генерировать новые учетные данные. После того, как вы поместите его в раздел реестра, Windows считает, что у вас есть сохраненный набор учетных данных, и никогда не будет запрашивать их даже в случае неудачной аутентификации.
Ответ 2 · Andrea Giudiceandrea
Дополнительную информацию о схеме шифрования учетных данных WPA2-Enterprise MSMUserData можно найти в моем ответе https://superuser.com/a/1259271/780533 на вопрос "Как найти защищенные учетные данные EAP беспроводной сети, хранящиеся в Windows 7?" вопрос. В частности, "нечитаемые символы" (обратите внимание, что они начинаются с 01 00 00 00 d0 8c 9d df ...), следующие за именем пользователя в расшифрованном MSMUserData, являются зашифрованным паролем, поэтому вам необходимо снова расшифровать его с помощью CryptProtectData.