Как ограничить веб-службу устройством Windows Phone 7?

#c# #.net #wcf #web-services #windows-phone-7

#c# #.net #wcf #веб-службы #windows-phone-7

Вопрос:

Здравствуйте, я хотел запросить ключи api (идентификаторы клиентов, приложения и т.д.) У веб-службы в созданном мной веб-приложении .NET. Дело в том, что мне нужно сделать этот веб-сервис безопасным, другими словами, только загруженное приложение на wp7 должно иметь возможность запрашивать этот веб-сервис. Есть ли какая-то строка для конкретного устройства, по которой я могу пройти аутентификацию, чтобы убедиться, что устройство WP7 вызывает это?

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

У кого-нибудь есть предложения о том, как это сделать?

Ответ №1:

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

Комментарии:

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

2. Так стоит ли вообще вызывать ее из веб-службы? Или лучше просто хранить его внутри приложения в зашифрованном виде?

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

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

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