Должен ли я принять меры для предотвращения чтения пароля при вызове CreateProcessWithLogonW?
Много программ, таких как runas
на Windows и su
on * nix принимает меры, чтобы гарантировать, что пользователи не будут делать глупых вещей, таких как запись паролей в пакетных файлах, гарантируя, что пароль не может быть передан ему или предоставлен в качестве аргумента.
На работе есть задача, которую неоднократно требуется выполнять другому сотруднику, для чего требуется войти в систему под учетной записью администратора домена. Я пишу приложение-заглушку, которая вызывает CreateProcessWithLogonW
чтобы сделать это, не имея возможности увидеть простой текстовый пароль и не предоставляя им пароль администратора.
Меня беспокоит то, что пароль, скорее всего, будет отображаться в виде простого текста в исполняемом файле, если он открывается с помощью шестнадцатеричного редактора (или даже обычного текстового редактора). Должен ли я принять меры для обеспечения того, чтобы пароль был создан в этом приложении в запутанном виде?
Например, начните с такой структуры:
typedef struct _MYPASS
{
unsigned int first4;
unsigned int next4;
unsigned short next2;
unsigned char last1;
} MYPASS;
Затем выполните арифметику с битами, чтобы сгенерировать ASCII, соответствующий паролю входа в систему.
Является ли это излишним для внутреннего применения?
1 ответ
Как насчет разделения exe и пароля с помощью Password Vault? -> Как сохранить и получить учетные данные из диспетчера учетных данных Windows Vault?
Не помогает против внутренней работы, но в случае, если exe попадает в дикую природу.