Поддержка U2F без расширения U2F Chrome

Я начал возиться с U2F, и он выглядит многообещающе. Получил себе несколько ключей безопасности и начал копаться в этом. Мне удалось создать работающий демонстрационный веб-сайт регистрации/входа, который хорошо работает с использованием токенов U2F и расширения U2F Chrome.

Однако... и здесь возникает мой вопрос: я также зарегистрировал ключ безопасности для своей учетной записи Google и сразу же был поражен тем фактом, что он работает без использования расширения U2F Chrome. На самом деле я выполнил всю регистрацию и вход в Google, даже не установив расширение. Как это возможно? Я прочитал (некоторые из) спецификации FIDO и увидел, что может быть два уровня API: высокий, который представляет собой пространство имен u2f, предоставляемое расширением, и низкий, который включает использование API MessagePort. Может быть, так делает Google? (также пытался сделать chrome.runtime.connect(...) сам, но объект chrome.runtime не определен на моей веб-странице)

Любой указатель в правильном направлении будет оценен и имеет большую ценность в данный момент, поскольку в этом молодом проекте под названием U2F не так много ресурсов.


person Mihai Caracostea    schedule 26.11.2014    source источник


Ответы (1)


Chrome вносит в белый список домены Google. На данный момент домены, не принадлежащие Google, должны использовать расширение. Однако, по словам Google, это изменится «очень скоро» — это задокументировано здесь и упоминается разработчиком Google на этом веб-семинаре.

Изменить. Расширение больше не требуется для Chrome 41. Вы можете протестировать его здесь (Примечание: при доступе из более ранней версии Chrome или не через HTTPS сайт вернется к использованию расширения).

person minisu    schedule 27.11.2014
comment
Вау... не ожидал! Помните, я говорил, что chrome.runtime не определен? Что ж, если я получаю доступ к той же html-странице через URL-адрес google.com (test.google.com указывает на мой сервер через файл hosts), теперь доступен chrome.runtime... - person Mihai Caracostea; 28.11.2014
comment
Вебинар дает правильный ответ на этот вопрос, а именно: для доменов Google Chrome обеспечивает поддержку по своей сути, для доменов, отличных от Google, требуется расширение. Однако... в следующие месяцы Google Chrome включит в свое ядро ​​поддержку и всех других доменов. Таким образом, это будет до свидания с требованием расширения U2F. А до тех пор... нам просто нужно подождать... Я считаю расширение слишком громоздким для обычного пользователя. - person Mihai Caracostea; 28.11.2014
comment
Я только что отредактировал ответ. Chrome 41 больше не требует расширения. - person minisu; 27.01.2015
comment
..но это еще не в стабильной версии. - person Xan; 27.01.2015
comment
Спасибо! Отличная информация! Я был весь счастлив, когда увидел обновление своего Chrome с 39 до 40 и бросился к журналу изменений. Облом! Тем не менее, приятно слышать, что в следующей основной версии расширение отсутствует. Теперь ждем его стабильной версии и появления других основных браузеров. - person Mihai Caracostea; 27.01.2015
comment
Хорошие новости! Протестировал релизную версию 41 и все хорошо, без расширения. Ваше здоровье! - person Mihai Caracostea; 18.04.2015
comment
Chrome v45 по-прежнему не предоставляет глобальный window.u2f даже на этом демонстрационном сайте Yubico или на любом другом сайте, реализующем https. Вместо этого на страницу необходимо вставить сценарий полифилла, который взаимодействует со встроенным внутренним расширением, доступ к которому осуществляется через chrome.runtime — сначала это не очевидно, поэтому в примерах появляется u2f. - person simbolo; 11.10.2015