2012-06-08 3 views
3

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

+0

Какое значение действительное у вас используется? Вы конкретно имеете в виду веб-транзакции? –

+0

вам придется приложить немного усилий .... –

+0

по действующим средствам говорят на http-сервере, мы хотим, чтобы только наши развитые клиенты подключались, а не другие, пишущие некоторые пользовательские клиенты, могу ли я использовать какой-то секретный ключевой механизм ? – user243655

ответ

0

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

0

Если вы готовы обработать полный хладор сертификата X.509, TLS provides options to authenticate client certificates as well.

При этом ваши клиенты могут только аутентифицироваться, если у них установлен правильный сертификат клиента.

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

1

Вы хотите внедрить взаимную аутентификацию - где сервер и клиент оба уверены в подлинности личности друг друга.

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

Отрывок из ссылки:

При отправке сообщения с взаимной аутентификации, подключение возможно только, если клиент доверяет сертификат сервера и сервер доверяет сертификату клиента. Процесс обмена сертификатами и настройки свойств соединения называется квитированием Secure Sockets Layer (SSL). Подробнее см. В разделе «Обзор протокола SSL» в Справочном руководстве по расширению Java Secure Socket Extension (JSSE).

http://developers.sun.com/appserver/reference/techart/mutual_auth.html

0

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

Вы можете использовать обфускацию кода для защиты распределенного кода и шифрования для защиты сетевого трафика.

0

Ваш вопрос не очень ясен. Когда вы говорите, предварительно одобренный, означает ли это заранее зарегистрированный? Если да, у вас будут свои учетные данные (которые могут быть именем пользователя/паролем или IP-адресом и т. Д.) Для проверки при подключении к серверу.

Если этот HTTP-сервер предназначен для использования только определенной группой пользователей, вы можете размещать внутренне (интрасеть) или разрешать только одобренные IP-адреса в брандмауэре.