0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

コマンドラインのGoogle Authenticatorのotpauthをパスワードマネージャに登録するときの注意点

Last updated at Posted at 2018-12-25

パスワードマネージャにGoogle Authenticatorの情報を登録する

パスワードマネージャはQRコードを読み取って、OTPを表示できる。

パスワードマネージャは最近は高機能化されてきて、バーコードをスキャンしてワンタイムパスワードを表示できるような機能をもっているものも出てきています。

これで2要素認証といえるかどうか、という議論はあります。2 段階 認証ではありますが、OTPはパスワードマネージャが表示するものなので、マスターパスワードを入れれば表示が可能となってしまいます。この場合、目的は2要素認証なのですが、結果として利用側としては 1要素認証 になってしまいます。この点には注意が必要です。パスワードマネージャは指紋認証などの「パスワードではない」認証方法を利用すれば、これは 2要素認証 と言えるかもしれません。

ubuntuに導入できるgoogle-authenticator

他方、ログインに2段階認証を導入する場合、google-authenticatorが一番手軽に導入できるものだと思うのですが、google-authenticatorをコマンドラインから起動しても、ターミナル上に表示されたQRコードは、少なくともデスクトップ版の1passwordバーコードスキャナでは大きすぎて読めませんでした。

とはいえ、QRの上部にはURLが書かれているのですが、このotpauthは URLエンコードされている ため、そのままコピーしてパスワードマネージャに登録すると、使えないotpauthとなってしまいます。(当然、このまま登録しても、誤ったothauthのため、ログインできなくなります)

otpauth以下の部分は、そのままパスワードマネージャに登録するときにはURLデコードが必要 です。具体的には、以下の文字列を置換します。以下の3文字くらいしかないと思いますが、それ以外にもあれば、当然デコードが必要です。
(何カ所かありますから、全部デコードしてくださいね)

置換前 置換後
%3F ?
%26 &
%3D =

簡単なスクリプトで置換してしまう。

ということで、非常に簡単ではありますが、スクリプトを書いてみました。なんということはなく、上記3種類を勝手に置換するだけです。

起動するときには、引数にgoogle-authenticatorから出力されているURLのうち、otpauth以降を与えるのですが、前後に[']を付けるようにしてください。
(味も素っ気もないスクリプトですが、手動置換だと忘れそうなので作ってみました)

使用方法:
encode-otpauth.py 'otpauth://hogehoge%3Fhogehoge%26hogehoge%3D'

encode_otpauth.py
# !/usr/bin/python3
import sys
args = sys.argv

args[1] = args[1].replace("%3F", "?")
args[1] = args[1].replace("%26", "&")
args[1] = args[1].replace("%3D", "=")

print("input password manager below otpauth for 2FA")
print(args[1])

参考となったURL

google-authenticatorそのものの導入:https://orebibou.com/2016/07/ubuntu-16-04-lts%E3%81%A7google-authenticator%E3%81%AB%E3%82%88%E3%82%8B%E3%83%AF%E3%83%B3%E3%82%BF%E3%82%A4%E3%83%A0%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E7%94%A8%E3%81%84%E3%81%9Fss/

URLデコード(といいつつ、結果としてシンプルなコードにしてしまいましたが):https://note.nkmk.me/python-urllib-parse-quote-unquote/

2要素認証と2段階認証:https://cryptomo.jp/2018/11/two-factor-authentication/

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?