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

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

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

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

otpauth://totp/Example:[email protected]?secret=JBSWY3DPEHPK3PXP&issuer=Example

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

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

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

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

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

Ответ 1

  Предупреждение: передача вашего начального TOTP третьим сторонам нарушает основополагающее предположение о многофакторной аутентификации, заключающееся в том, что TOTP семя это секрет.

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

Как выяснилось, мне нужно было закодировать все специальные символы в "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

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

Ответ 2

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

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

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

Ответ 3

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

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

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

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

pip install qrcode

Тогда:

qr "otpauth://totp/Example:[email protected]?secret=JBSWY3DPEHPK3PXP&issuer=Example

enter image description here

Ответ 5

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

Валай