Лучший способ хранения статического пароля на автоматизированном клиенте - PullRequest
1 голос
/ 14 декабря 2009

Я строю систему, состоящую из множества клиентов, подключающихся к серверу. Клиенты автоматически отправляют данные на сервер через вызов веб-службы. Я создал механизм аутентификации для того, чтобы клиенты проходили аутентификацию на сервере, поэтому только аутентифицированные клиенты могут загружать данные. Проблема в том, что я жестко запрограммировал пароль в коде клиента, и он доступен, если кто-то использует отражатель. В этом сценарии, где у меня нет ввода пользователя, каков наилучший способ хранения статического пароля на клиенте? Спасибо (Версия .Net на клиенте - 2.0, а версия .net на сервере - 3.5)

Ответы [ 4 ]

1 голос
/ 14 декабря 2009

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

Как они аутентифицируются, чтобы стать "аутентифицированными клиентами"?

Может кто-то просто скопировать ваше приложение на свой домашний компьютер, и теперь он является аутентифицированным клиентом?

Это похоже на огромный контроль безопасности, если вы пытаетесь решить, кто может загружать файлы, основываясь на значении в вашей сборке.

Если вы можете выполнять проверку на основе IP, если вы хотите избежать паролей и механизмов входа в систему.

1 голос
/ 14 декабря 2009

Вы смотрели на http://msdn.microsoft.com/en-us/library/system.security.cryptography.protecteddata.aspx?

Кроме того, ваши веб-сервисы WCF? Если это так, вы можете использовать взаимный сертификат безопасности. Это гораздо надежнее, чем пароль.

НТН

1 голос
/ 14 декабря 2009

У вас есть несколько методов, которые вы можете использовать, но один из самых простых для реализации - это зашифровать пароль и затем просто сохранить его в app.config для приложения, которое развертывается для пользователя.

0 голосов
/ 14 декабря 2009

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

Однако ваша система аутентификации звучит не слишком безопасно. Даже если вы действительно зашифровали пароль, если пароль всегда один и тот же, было бы так же просто, как перехватить пакеты, чтобы выяснить, что необходимо отправить на ваш сервер для аутентификации. Потому что перед отправкой его нужно будет расшифровать.

Вы должны были бы перейти по SSL как минимум.

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

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

...