WinAuth を使って Slack の2要素認証を設定する
SMS による 2 要素認証は安全じゃない、ということで代替ツールを使うことに。WinAuth。
2要素認証ってなに?
ログイン時に ID/PASS 以外に、もう一つ何かを使うという認証方式。略語では 2FA と書く。
そういえば過去記事でまとめてた(「二段階認証」という言葉を使っているが):
設定手順
(1) WinAuth を入手する
GitHub の Releases · winauth/winauth よりダウンロードする。
Beta よりも Stable(安定版)が良いだろう。2018/11/05 現在では 3.5.1 が最新の Stable。
また、インストールが面倒くさい場合は zip ファイルをダウンロードする。本記事では zip ファイルで進める。
(2) WinAuth を起動
展開すると WinAuth.exe という実行ファイルが一つだけ存在する。これを適当なディレクトリに配置する。
(3) Slack の2要素認証を設定してみる
まずは WinAuth 画面。
- Add ボタン > Google で「Add Google Authenticator」ダイアログを開く
- Name と Icon は適当に
ここで Slack 側の 2 要素認証画面に移る。
- 設定画面はこの辺
https://(ワークスペース名).slack.com/account/settings?msg=verified_two_factor#two_factor
を開く
- 認証画面を開くと、Step 3 つから成る画面が出る
- このバーコードをスキャンできませんか? → 時間ベースキーを表示。これをコピー。
WinAuth 画面に戻る。
- コピーした時間ベースキーを貼り付ける
- Verify Authenticator ボタンクリック
- 「3. Verify the following... 」の欄に確認コードが出ることを確認して、OK ボタンを押す
パスワード設定画面が出るので、必要ならする。これをしておくと、他人が WinAuth を起動した時も(パスワード入れないと使えないので)悪用されずに済む。
あとは WinAuth 側で登録したばかりの Authenticator から 6 桁のコードを表示して、Slack 側に入力する。XXX XXX
ではなく XXXXXX
と 6 文字で入れる(スペースは入れない)。
(余談) このコード、時間が経つたびに別のコードに変化していくが、問題はない。このコードの生成は(たぶん時刻をキーにして) WinAuth 側と Slack 側で同じアルゴリズムが使われているので、Slack 側でもちゃんと認識できる。というより、このように一定時間ごとに変化するコードを使うところこそがこの方式のセキュリティの肝。
Q&A
Q: WinAuth のデータはどこに保存される?
Ans: %appdata%\winauth\winauth.xml
中身は以下のような感じ。
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <WinAuth version="3.5"> <alwaysontop>false</alwaysontop> <usetrayicon>false</usetrayicon> <notifyaction>Notification</notifyaction> <startwithwindows>false</startwithwindows> <autosize>true</autosize> <left>250</left> <top>553</top> <width>0</width> <height>0</height> <WinAuthAuthenticator id="xxxxxxxx-..." type="WinAuth.GoogleAuthenticator"> <name>Google</name> <created>xxxxxxxxxxxxx</created> <autorefresh>false</autorefresh> <allowcopy>false</allowcopy> <copyoncode>false</copyoncode> <hideserial>false</hideserial> <skin></skin> <authenticatordata encrypted="y">XXXXXXXX...</authenticatordata> </WinAuthAuthenticator> </WinAuth>