Я ссылаюсь на эту прекрасную статью http://www.thebuzzmedia.com/designing-a-secure-rest-api-without-oauth-authentication/, в которой говорится о безопасности, подобной Amazon для веб-службы. Однако мне задали вопрос в команде, зачем нам это нужно, если мы уже используем HTTPS. Я не смог ответить, так как мне действительно кажется, что они могут быть правы, хотя интуиция говорит мне об обратном.
Также есть ли места при предоставлении услуг REST, где HTTPS может не работать? Понравились сторонние сайты?
Если у кого-то есть опыт защиты веб-сервисов через общедоступные веб-сайты, пожалуйста, расскажите немного о своем опыте.
Заранее спасибо.
РЕДАКТИРОВАТЬ: Чтобы уточнить, я не говорю об аутентификации пользователя, но больше о аутентификации клиента. Аутентификация пользователя может быть принята как обычный текст по HTTPS + REST.
Меня беспокоит то, что это по-прежнему позволяет кому-либо использовать веб-сервис без моего клиента, чтобы получить к нему доступ, поскольку все является открытым текстом, хотя через HTTPS конечная точка клиента все еще может использовать мой веб-сервис без клиентского приложения.
Ответы:
Почему мы должны предоставить Gmail - или любому другому сайту с учетными записями пользователей - наше имя пользователя и пароль, если он уже использует HTTPS? Ответ такой же, как ответ на ваш вопрос.
HTTPS обеспечивает, прежде всего, зашифрованное соединение между сервером и клиентом.
Если сервер не дает каждому пользователю сертификат , сервер не может доверять клиенту без какого-либо другого метода аутентификации.
источник
HTTPS очень хорошо предотвращает подслушивание и атаки «человек посередине». Как это шифрует весь трафик для сеанса.
Но так как большинство людей используют сертификаты по умолчанию, которые поставляются с их браузером, и не имеют ни малейшего представления, как создать собственный личный сертификат или настроить браузер для его использования.
Это делает HTTPS довольно бесполезным для аутентификации пользователя, за исключением защиты диалога аутентификации от прослушивания и т. Д.
источник
HTTPS - это защита канала, а не доказательство того, кто является вызывающим абонентом, или многих других вещей, которые вам необходимо учитывать. Аутентификация, авторизация и шифрование транспортного уровня - это лишь малая часть того, что вам нужно учитывать. Многие из известных уязвимостей, связанных с веб-приложениями, очень сильно относятся к REST apis. Вы должны учитывать проверку ввода, взлом сеанса, неуместные сообщения об ошибках, внутренние уязвимости сотрудников и так далее. Это большая тема.
Роберт
источник
Вы можете использовать подход клиентских SSL-сертификатов и отделить безопасность от API. Большим недостатком этого подхода являются накладные расходы на эксплуатацию, которые будут дорогостоящими, поскольку все больше и больше клиентов потребляют ваш API.
В любом случае, базовая аутентификация HTTP прекрасно подходит для подавляющего большинства общедоступных сервисов.
источник