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