2010-09-20 4 views
1

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

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

Замечание: Я использую .NET и нашел этот класс - RSACryptoServiceProvider полезным, но любая независимая от фундамента идея была бы высоко оценена.

Спасибо.

+0

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

+0

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

+0

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

ответ

2

Вообще говоря, ваш веб-сервис может отправить случайное значение некоторых байтов (вызов) и ожидать действительного ответа на него (ответ). . ответом может быть дайджест SHA256 для вызова и некоторые секретные байты, встроенные в приложение (соль). Пример .NET-кода here.

Смежные вопросы