Сетевая аутентификация Windows - правильный путь - PullRequest
1 голос
/ 17 января 2010

Я собираюсь начать проект, который будет работать как служба Windows, прослушивая входящие соединения и делая некоторые вещи локально, а затем отправляя ответное сообщение. Я понимаю основные понятия, связанные с сокетами и общением по сети, однако действия, которыми занимается служба, могут быть очень легко нарушены. Я хотел бы аутентифицировать человека, подключающегося, предпочтительно, к локальным пользователям Windows на машине, на которой работает служба, чтобы узнать, имеют ли они права администратора Windows / опытного пользователя.

Я знаю, как это сделать, проверьте права, как только у меня будет их информация, но я знаю, что отправка имени пользователя и пароля приложению по сети в открытом виде - нет, нет. Я думал просто зашифровать пароль каким-нибудь секретным ключом, но я знаю, что «пытаться быть умным» - это наихудшая возможная вещь, которую вы можете сделать в криптографии, поэтому я хотел знать, каков «правильный» способ справиться с этой ситуацией.

Ответы [ 3 ]

1 голос
/ 17 января 2010

Моей второй идеей было просто создать общий самозаверяющий сертификат между клиентом и сервером и просто использовать TLS для всего соединения.

0 голосов
/ 17 января 2010

Скотт,

это может быть немного излишним и немного не по теме, но вы рассматривали возможность использования интерфейса веб-службы для обслуживания своих клиентов (вместо использования сырых сокетов)?

Интерфейсы веб-служб ASP .Net просты в реализации, и в итоге вы получите очень четко определенный интерфейс.Они также поддерживают аутентификацию и безопасную связь.

0 голосов
/ 17 января 2010

Я также могу опубликовать то, о чем я думал, если это правильно, так сказать в комментариях.

И клиент, и сервер будут иметь PSK во время выполнения, сервер отправит случайное число клиенту. клиент зашифрует учетные данные с помощью PSK и случайного числа в качестве IV. Он отправит обратно зашифрованный большой двоичный объект и все необходимые ему команды.

Я не беспокоюсь о переигровке или атаках на митм. Я просто хочу аутентифицировать пользователя и не иметь чужих паролей по всей сети.

...