Я работаю над небольшим сервисом, доступным с клиента на Windows Phone 8 и/или WinRT-устройстве, для которого требуется умеренная степень безопасности. Моя цель - создать службу, которая работает в Windows Azure.WCF с HTTPS и Windows Phone 8
Мое приложение требует аутентификации, которая проверяет две вещи: 1) Подлинность клиента полномочий 2) пользователя клиента
Шаг 1) мне нужно быть уверенным в достаточной степенью, что приложение вызова службы является , на самом деле, мое клиентское приложение.
Этап 2) Пользователь должен иметь учетную запись в системе, которая может быть аутентифицирована. Я могу реализовать аутентификацию, просто создав метод Login() в интерфейсе (если только не будет лучшего способа). Однако для этого связь между клиентом и сервером должна быть безопасной, так как я не хочу, чтобы мое имя пользователя и пароль были не зашифрованы.
Мое настоящее представление заключается в том, что реализация его как службы WCF, вероятно, будет способом, поскольку у меня может быть интерес к переносу на другие платформы на стороне клиента, и быстрый взгляд показал мне, что это несколько поддерживается.
Однако, поскольку я новичок во всех этих сертификатах shenanigans, мой вопрос заключается в том, могу ли я использовать самозаверяющие сертификаты для обеспечения моего соединения? Только мой сервер и мой клиент должны иметь возможность проверить подлинность. Кроме того, любые указания на то, как это делается в случае WP8 + Windows Azure?
Еще одна сделка заключается в том, что при условии, что отличный хакер нарушит мою программу с клиентского оборудования, может ли он взять сертификат и использовать его для создания своего собственного клиента для входа в систему с его именем/паролем и выполнением действий, выполняемых моим оригинальный клиент? Или есть способ предотвратить это на стороне клиента? Другими словами, может ли мой сервер быть уверенным в подлинности клиентского программного обеспечения на основании наличия действительного сертификата, подписанного мной?