Должен ли секретный ключ для Google Authenticator храниться в секрете? - PullRequest
0 голосов
/ 25 октября 2018

Я использую pyotp https://github.com/pyotp/pyotp для интеграции моего приложения с Google Authenticator.

В документации предлагается использовать qrious https://github.com/neocotic/qrious, это нормально и работает хорошо.По сути, qrious может генерировать QR-код исключительно в браузере.В этом случае URI инициализации передается генератору QR-кода, и из него создается QR-код.

Меня удивляет то, что URI инициализации содержит секретный ключ, и все же мы отправляем этот URIдо конца клиента будет превращен в QR-код с помощью Qrious.Таким образом, секретный ключ не является секретным, потому что он был отправлен клиенту.

Я бы ожидал, что секретный ключ никогда не должен отправляться из серверной части - что я не понимаю?

# generate a base32 secret key
>>> pyotp.random_base32()
'55OZSEMXLL7VAUZP'
# make a provisioning_URI
>>> provisioning_URI = pyotp.totp.TOTP('55OZSEMXLL7VAUZP').provisioning_uri('someperson@example.org',issuer_name="FooCorporation")
>>> provisioning_URI
'otpauth://totp/FooCorporation:someperson%40example.org?secret=55OZSEMXLL7VAUZP&issuer=FooCorporation'
>>>

Provision_URI отправляется в браузер для превращения в QR-код - но он включает в себя секретный ключ - конечно, это не безопасно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...