Проблема безопасности - разрешение авторизованной аутентификации без пароля - PullRequest
0 голосов
/ 17 февраля 2010

Это наша установка - у наших клиентов будет сервер базы данных с нашей базой данных и несколько клиентов, использующих наш интерфейс. У нас есть несколько служб WCF, позволяющих клиентам запрашивать информацию из базы данных, и каждый сеанс WCF проходит проверку подлинности с использованием имени пользователя / пароля, хранящихся (зашифрованных) в базе данных. Все это прекрасно работает и используется уже пару лет.

Мы добавили возможность входа в систему с помощью USB-сканера отпечатков пальцев, подключенного к клиентским ПК. Для этого мы сохраняем шаблон отпечатков пальцев каждого пользователя в базе данных, а затем загружаем их все на устройство. Затем устройство может сказать нам, какой пользователь подарил свой палец.

Каков наилучший способ безопасной проверки подлинности нашего клиента по отпечаткам пальцев через службу WCF без использования пароля пользователя и без открытия системы для атаки неавторизованных пользователей?

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

Это хорошая идея? Может ли злоумышленник просто передать то же сообщение, чтобы начать несанкционированный сеанс?

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

Мы используем C # и ориентируемся только на Windows.

1 Ответ

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

Вы можете использовать сертификат x509, хранящийся на клиенте, чтобы предоставить учетные данные клиента, необходимые для службы WCF. Это будет работать так же, как защита сервера через SSL-сертификаты.

Некоторая информация о работе с сертификатами:

Следует предостеречь, что вам, очевидно, придется управлять распространением и действительностью сертификатов.

Другая альтернатива - использовать учетную запись Windows клиента для аутентификации, если клиентский компьютер находится в том же домене:

Некоторая информация о работе с учетной записью Windows:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...