Почему у OAuth v2 есть токены доступа и обновления?

Как говорили другие, вы не можете делать то, что вы просите. Если вы описываете проблему, которую пытаетесь решить, может быть, кто-то может помочь? Например. вы пытаетесь однозначно идентифицировать своих пользователей? Можете ли вы использовать cookie или идентификатор сеанса, возможно, вместо IP-адреса?

Изменить Адрес, который вы видите на сервере, не должен быть адресом интернет-провайдера, как вы говорите, это будет огромный диапазон. Адрес для домашнего пользователя в широкополосной сети будет адресом на своем маршрутизаторе, поэтому все устройства внутри дома будут отображаться снаружи одинаковыми, но маршрутизатор использует NAT, чтобы гарантировать, что трафик перенаправляется на каждое устройство правильно. Для пользователей, получающих доступ из офисной среды, адрес может быть одинаковым для всех пользователей. Сайты, использующие IP-адрес для идентификатора, рискуют сделать его очень неправильным - примеры, которые вы даете, хороши, и они часто терпят неудачу. Например, мой офис находится в Великобритании, точка прорыва (где я «появляюсь» в Интернете) находится в другой стране, где находится наш главный ИТ-центр, поэтому из моего офиса мой IP-адрес, похоже, не в Великобритании. По этой причине я не могу получить доступ к только веб-контенту в Великобритании, например, iPlayer BBC). В любой момент времени в моей компании будут сотни или даже тысячи людей, которые, как представляется, обращаются к веб-сайту с одного и того же IP-адреса.

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

Когда вы говорите, что ваш машинный адрес отличается от IP-адреса, указанного в StackOverflow, как вы узнаете свой машинный адрес? Если вы просто смотрите локально с помощью ipconfig или чего-то подобного, я бы ожидал, что он будет отличаться по причинам, изложенным выше. Если вы хотите дважды проверить, что внешний мир думает, посмотрите whatismyipaddress.com / .

Эта ссылка Wikipedia на NAT предоставит вам некоторые фон на этом.

575
задан Wilt 21 December 2016 в 09:41
поделиться

1 ответ

Этот ответ был соединен справкой двух старших devs (John Brayton и David Jennes).

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

Позволяют нам предположить, что нет никакого ключа обновления, и let’s проходят этот пример:

здание А имеет 80 дверей. Все двери открыты с тем же ключом. Ключ изменяется каждые 30 минут.

, Если I’m хакер и получают Ваш ключ, то в конце этих 30 минут, курьер I’ll, что к keymaker и получают новый ключ. I’ll смочь непрерывно открыть все двери независимо от ключевого изменения.

Вопрос: В течение этих 30 минут, сколько взламывания возможностей я имел против ключа? У меня было 80 возможностей взламывания, каждый раз, когда Вы использовали ключ (думайте об этом как о выполнении сетевого запроса и передаче маркера доступа для идентификации). Так that’s 80X поверхность атаки.

Теперь let’s проходят тот же пример, но на этот раз let’s принимают there’s ключ обновления.

здание А имеет 80 дверей. Все двери открыты с тем же ключом. Ключ изменяется каждые 30 минут. Если I’m, хакер и получает Ваш ключ, я могу использовать его в течение 30 минут, но в конце этих 30 минут, отправляя его в keymaker не имеет никакого значения. Если бы я делаю, то keymaker просто сказал бы, что этот ключ истекает. Чтобы смочь расширить мой взлом, я должен был бы взломать курьера к keymaker. У курьера есть отличный ключ (думайте об этом как о маркере обновления).

Вопрос: В течение этих 30 минут, сколько взламывания возможностей я имел против курьера? 80? Нет. У меня только была 1 возможность взламывания. В течение времени курьер общается с keymaker. Так that’s 1X поверхность атаки. У меня действительно было 80 возможностей взламывания против ключа, но они бесполезны после 30 минут.

<час>

сервер А проверил бы маркер доступа на основе учетных данных и подписания (обычно) JWT.

утечка маркера доступа плоха, но после того как она истекает, это больше не полезно для взломщика. Маркерная утечка обновления намного хуже, но по-видимому это менее вероятно. (Я думаю, что существует комната к вопросу, намного ли вероятность маркерной утечки обновления ниже, чем та из утечки маркера доступа, но that’s идея.)

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

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

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

Разделение хорошо для безопасности.

<час>

, О чем не маркер обновления?

способность обновить/отменить уровень доступа через маркеры обновления является побочным продуктом желания использовать маркеры обновления, иначе автономный маркер доступа мог быть отменен или изменять его уровень доступа, когда это истекает, и пользователи получает новый token”

3
ответ дан 22 November 2019 в 22:00
поделиться
Другие вопросы по тегам:

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