Предоставляют ли веб-браузеры способ идентификации уникального экземпляра его установки? - PullRequest
0 голосов
/ 11 мая 2019

Я пытаюсь решить классический подход к тому, как пользовательский токен входа хранится в веб-браузерах. По умолчанию любой, кто может получить доступ к консолям разработчика браузера, может получить содержимое в полях пароля, просмотрев содержимое HTML элемента ввода или используя javascript.

Из-за этого, если по ошибке кто-то встретит ваш пароль для входа, он / она может использовать его в любом браузере для доступа к вашим данным с сервера.

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

Следовательно, сгенерированный сервером вход в систему может быть действительным только на клиенте, который сгенерировал идентификатор, реальный пароль никогда не сохраняется на клиенте, а используется только при первой попытке входа в систему на клиенте, который не имеет действительного идентификатора сервера , У пользователя будет возможность аннулировать все сгенерированные сервером проходы.

Чтобы это работало, мне нужен уникальный токен из браузера, так что если на компьютере установлено 10 экземпляров одного и того же браузера за промежуток времени менее 1 секунды, идентификатор этого браузера никогда не будет прежним .

У меня вопрос, можно ли получить такой уникальный идентификатор из браузера? Любое предложение о том, как это сделать, также приветствуется.

1 Ответ

1 голос
/ 16 мая 2019

Как правило, вы не можете однозначно идентифицировать установку браузера так, как вы описали. Частично это защищает конфиденциальность пользователей от отслеживания в Интернете.

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

В такой системе, когда учетная запись настроена для одноразовых паролей, пользователь и служба делятся секретом. Позже, когда пользователь входит в систему, ему предлагается ввести одноразовый пароль, который он генерирует с помощью специального программного обеспечения, изолированного от клиента, и в идеале на другом устройстве. Например, пользователь может использовать приложение Google Authenticator на смартфоне, чтобы сгенерировать код, который он вводит в браузере своего компьютера.

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

Универсальная аутентификация 2-го фактора - это еще один подход к блокировке работы регистраторов ключей, основанный на некоторых параллельных концепциях. (То есть он также использует одноразовый код, сгенерированный с секретом, который надежно хранится, а не раскрывается на клиенте.)

...