Как создать QR-код для Google Authenticator, который правильно показывает эмитента, отображаемого над OTP?

Итак, мне известна документация по этому вопросу, найденная здесь: Формат URI ключа аутентификатора Google

Когда я следую этому примеру с этой страницы:

otpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&issuer=Example

И я "склеиваю" его в URL Google Charts, таким образом:

https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&issuer=Example

Он отобразит действительный QR-код, и если я отсканирую его с помощью своего приложения Google Authenticator на своем телефоне, он начнет генерировать действительные OTP.

Однако на дисплее телефона для записи, созданной с помощью QR-кода, я получаю OTP, а под ним - "Пример:alice@google.com". Я хочу, чтобы над OTP отображался "Пример", а под OTP - "alice@google.com". Я не могу не заметить, что так делают все профессионально созданные приложения. Например, Google, Wordpress, Amazon и т. Д. Название компании находится над OTP, а имя пользователя отображается под OTP. Да, это чисто косметическая проблема, но я хочу сделать это правильно.

Кто-нибудь может предложить мне подсказку?

7 ответов

Решение

Просто понял это.

Как оказалось, мне нужно было закодировать все специальные символы в "oauth", то есть "$", "%", "=" и т. Д.

Таким образом, используя тот же URL-адрес Google Charts, как и раньше, но кодируя эти символы, вот так:

https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/Example%3Aalice%40google.com%3Fsecret%3DJBSWY3DPEHPK3PXP%26issuer%3DExample

И это работает правильно.

Ответы, рекомендующие использование Google Charts, абсолютно ужасны с точки зрения информационной безопасности. По сути, это общий секрет TOTP, а также ваше имя пользователя (alice@google.com) и эмитент (Example) со сторонней компанией, не имеющей юридического обязательства хранить их в тайне, и делающей это в течение GET запрос! При этом вы нарушаете не только каждое предположение, лежащее в основе многофакторной аутентификации, но и, скорее всего, политику информационной безопасности вашей организации. Он аннулирует любую добавленную стоимость MFA, так как единственный фактор, который защищает вас от взлома вашей учетной записи в случае взлома пароля, сам по себе нарушен.

Просто используйте любой генератор QR-кода, если он обрабатывает ваши данные локально.

НИКОГДА НЕ ИСПОЛЬЗУЙТЕ ОНЛАЙН QR-ГЕНЕРАТОРОВ ДЛЯ СЕКРЕТОВ МИДЫ

В Linux я бы порекомендовал библиотеку python-qrcode, которая может печатать ваш QR-код, используя символы ASCII на консоли.

pip install qrcode

Затем:

qr "otpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&issuer=Example

Я использую другой способ, используя локальную установку qrencode:

qrencode -o- -d 300 -s 10 "otpauth://totp/YOUR_IDENTIFICATION?secret=YOUR_SECRET" | display

Таким образом, я могу восстановить библиотеку ключей потерянного аутентификации mt из того, что было на моем ноутбуке.

Просто хочу отметить, что более новые версии для Google Authenticator будут использовать issuer параметр, задокументированный здесь:

https://github.com/google/google-authenticator/wiki/Key-Uri-Format

например:

https://chart.googleapis.com/chart?chs=200x200&cht=qr&chl=otpauth%3A//totp/User%2540Realm%3Fsecret%3DKO5DE2YD3Q2ZXEOO%26issuer%3DIssuer%2520Name&choe=UTF-8

Вы можете использовать 2fa-qr.

Написано на javascript. Исходный код доступен, скачайте и запустите в браузере в автономном режиме, ничего не устанавливая.

FTW, используйте qrenco . Вы можете сделать это из командной строки с помощью cURL или просто сделать это в своем браузере. Не нужно ничего устанавливать. Бесплатный безлимитный сервис. Пример использования:

      curl -Ls -X GET 'https://qrenco.de/otpauth://totp/stackoverflow:StackOverFlowUSER?secret=U29tZSBrZXkgZnJvbSBzb21lIHdlYnNpdGUK?issuer=stackoverflow'

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

Перейдите в Настройки-> Изменить настройки учетной записи-> Двухэтапная проверка-> Приложение для аутентификации (по умолчанию)-> Нажмите на правку (изменить символ в левом углу)-> Изменить телефон. Здесь вы получите QR-код. Сканируйте со своего телефона сканер штрих-кода.

Валай

Другие вопросы по тегам