Еще раз об аутентификации без пароля.

Тема в разделе "WASM.WIN32", создана пользователем ormoulu, 30 мар 2011.

  1. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    По следам этого.
    Конечная задача такая: аутентифицировать Васю Пупкина с целью выполнить некие действия от его лица, при этом нельзя в каком-либо [восстановимом] виде хранить пароль Васи Пупкина.
    В лоб эта задача не решается.

    Думаю о двух теоретически возможных путях:
    1. Сохранять некий "криденшл", из которого невозможно получить пароль Васи Пупкина, но который возможно использовать для аутентификации, скажем, как-нибудь хитро передав его, например, в AcquireCredentialsHandle.
    2. Добавить собственный провайдер аутентификации.

    Прошу какой-нибудь информации на эти темы, направьте плз в нужную сторону.
     
  2. irrona

    irrona Member

    Публикаций:
    0
    Регистрация:
    26 май 2004
    Сообщения:
    178
    Адрес:
    Тирасполь
    хэш

    Хэшируешь пароль, оригинал пароля удаляешь, до конца сессии пользуешься хэшэм. Пароль из хэша невосстановим.
     
  3. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    А если система была перезагружена?

    Можно поподробнее про хеш?
     
  4. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    причем тут хэш. где он сможет пользоваться им?

    Сделай себе конфиг с записями типа "пользователь-задача". на старте проверяей если пользователи совпадают, имперсонируйся и запускай задачу. Или ты хочешь выполнять задачу даже когда загружен не тот пользователь что нужно?
     
  5. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    И даже когда не загружено ни одного пользователя.
     
  6. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    Тогда нужен пасс. А зачем такая привязка к пользователю если есть админ-права, может легче пропатчить ф-цию какую-то чтобы она возвращала что процесс запущен от того кто тебе нужен?
     
  7. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Слишком много придется патчить.
    К тому же, нужна проверка прав доступа к объектам, правильные записи в системном логе, и т.п.
     
  8. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    драйвером наверное можно напрямую пропатчить токен-обджект но задачка нетривиальная
    я не слышал про такое
    и даже если сделать - будет это некомпатибабельно
    легче в 1000 раз пассворд заиметь и вызвать логонюзер
     
  9. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Логонюзер и керберос иже с ним, хады, требуют плейнтекст пароль, в этом и состоит основная проблема и требование - чтобы его не было на машине в восстановимом виде.
     
  10. roman_pro

    roman_pro New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    291
    На ум приходит разве что трюк с патчем MSV1_0.DLL чтобы она хавала белиберду вместо пароля. Правда не знаю получится ли например из службы пропатчить в памяти, вызвать LogonUser с белибердой вместо пароля и отменить патч, ибо патчить на диске - это грязный хак и фактически отключение авторизации как таковой.
     
  11. h0t

    h0t Member

    Публикаций:
    0
    Регистрация:
    3 апр 2011
    Сообщения:
    735
    Я перехватывал RtlCompareMemory в CSRSS.exe, и вбиваем любой пароль, потом убеждаемся что хеш в параметре RtlCompareMemory такой какой мы ождаем - возвращаем 0 и все) аутентификация пройдена)