2014-09-02 2 views
-2

Я пишу API, который будет размещен без поддержки SSL, и мне нужен способ аутентификации запросов. У каждого клиента был бы другой идентификатор, но если запросы были разрешены с этим, любой, у кого есть пакетный сниффер, может подделывать запросы. Можно ли создать безопасную систему БЕЗ использования SSL?Проверка подлинности API без SSL

(Некоторые мысли я включали OAuth, это может быть реализовано?)

Большое спасибо

+0

Почему вы не можете использовать SSL ??? – ircmaxell

+0

@ircmaxell мой (бесплатный) веб-хост не позволяет этого. Я не собираюсь получать хост с SSL. –

+0

Если ваш * бесплатный * веб-хост не поддерживает SSL, возможно, вы не должны запускать что-либо с конфиденциальными данными на нем. – Dan

ответ

2

У каждого клиента криптографически подписывает его запросы с ключом клиента конкретным. Проверьте подпись на сервере.

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

Это также будет проблемой, если вы будете обслуживать клиентский код без SSL. Но эй, это просто API, который вы строите. Возможно, код, который взаимодействует с ним, обслуживается через HTTPS. Или, может быть, код хранится локально на клиенте.

Я чувствую, что многие люди собираются жаловаться на этот ответ.

+0

Спасибо! Код не является проблемой, у меня есть полный контроль над клиентом и сервером. Если бы мне пришлось жестко закодировать общедоступные/закрытые ключи на клиентах/сервере, то до тех пор, пока входящее сообщение от клиента будет декодировать одним из ключей, это законное сообщение. Будет ли это решающим ключом? –

+0

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

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