Безопасность схем аутентификации REST

225
задан Community 23 May 2017 в 01:47
поделиться

4 ответа

REST означает работать со стандартами сети, и стандартом для "безопасной" передачи в сети является SSL. Что-либо еще будет довольно броским, и потребуйте дополнительного усилия по развертыванию для клиентов, которые должны будут иметь библиотеки шифрования в наличии.

, После того как Вы соглашаетесь на SSL, нет действительно, ничто не полагает требуемый для аутентификации в принципе. Можно снова пойти с веб-стандартами и использовать HTTP Основной автор (имя пользователя и секретный маркер, отправленный наряду с каждым запросом), поскольку это намного более просто, чем тщательно продуманный протокол подписания и все еще эффективно при контексте безопасного соединения. Просто необходимо быть уверены, что пароль никогда не пробегается через простой текст; таким образом, если пароль когда-либо получается по соединению простого текста, Вы могли бы даже отключить пароль и отправить разработчику по почте. Необходимо также удостовериться, что учетные данные не зарегистрированы нигде на получение, так же, как Вы не зарегистрировали бы регулярный пароль.

Обзор HTTP является более безопасным подходом, поскольку он предотвращает секретный проводимый маркер; вместо этого, это - хеш, который сервер может проверить на другом конце. Хотя это может быть излишество для менее чувствительных приложений, если Вы приняли упомянутые выше меры предосторожности. В конце концов, пароль пользователя уже передается в простом тексте, когда они входят в систему (если Вы не делаете некоторое необычное шифрование JavaScript в браузере), и аналогично их cookie по каждому запросу.

Примечание, что с API, для клиента лучше передать маркеры - случайным образом сгенерированные строки - вместо пароля разработчик, входит в веб-сайт с. Таким образом, разработчик должен смочь войти в Ваш сайт и генерировать новые маркеры, которые могут использоваться для проверки API.

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

(Обновленный для покрытия последствий устанавливания связи, только для SSL.)

60
ответ дан mahemoff 23 November 2019 в 03:55
поделиться

Или Вы могли использовать известное решение этой проблемы и использовать SSL. Самоподписанные сертификаты являются бесплатными, и это - персональное право проекта?

8
ответ дан wowest 23 November 2019 в 03:55
поделиться

Если Вы требуете хеша тела как один из параметров в URL, и тот URL подписывается через закрытый ключ, то атака "человек посередине" только смогла бы заменить тело содержанием, которое генерирует тот же хеш. Легкий сделать со значениями хэш-функции MD5 теперь, по крайней мере, и когда SHA-1 повреждается, ну, в общем, Вы получаете изображение.

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

5
ответ дан ZaDDaZ 23 November 2019 в 03:55
поделиться

Помните, что Ваши предложения мешают клиентам связываться с сервером. Они должны понять Ваше инновационное решение и зашифровать данные соответственно, эта модель не так хороша для общедоступного API (если Вы не amazon\yahoo\google..).

Так или иначе, если бы необходимо зашифровать содержимое тела, я предложил бы, чтобы Вы проверили существующие стандарты и решения как:

шифрование XML (стандарт W3C)

безопасность XML

1
ответ дан LiorH 23 November 2019 в 03:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: