二要素認証の設定とログインに成功した。前回のWinAuthを使って。スマホも電話番号も不要でできた。
前回まで
二要素認証用スマホアプリ(ソフトウェアトークン生成器)が必要だったが、スマホを持っていないため断念した。
しかし、WinAuthを使えばスマホ不要らしいと知る。ワンタイムパスワードの生成に成功した。
二要素認証の設定 take1
GitHubで二要素認証を使う設定をする。
- GitHubへ任意ユーザ(仮に
User1
)でログインする - settingsのsecurityページへ遷移する
set up two-factor authoentication
ボタンを押下するSet up using an app
ボタン押下する
- QRコードがあるページに来る
一旦ブラウザから離れる。
- 前回用意したWinAuthを起動する
- ワンタイムパスワードを発行する
ブラウザ(GitHub)に戻る。
- QRコードより下にある
Enter the six-digit code ...
とあるテキストボックスにCtrl+Vでペーストする Continue
ボタンを押下する- ……失敗した。
Tow-factor secret verification failded. Please verify your secret and try angain.
というエラーが画面上部に表示されている。
要するにQRコードから読み取ったotpauth://totp/github.com/ユーザ名?issuer=GitHub&secret=16桁のコード
が不正な値だということか。
QRコードから読み取った値が使えなくなったから再発行しろということだろう。 おそらくQRコードから読み取る16桁コードも、ワンタイムパスワードのように有効期限があるのだろう。
…またWinAuthから設定しなおすことになった。
QRコードのSecretCodeを再発行する
以前のように、もう一度QRコードを画面キャプチャせねばならないのか?面倒すぎる。と思っていたら、テキストでできるっぽい。
enter this text code
というリンクをクリックする- ワンタイムパスワードを発生させるためのSecretCode(16桁コード)が表示されるのでコピーする
otpauth://totp/github.com/ユーザ名?issuer=GitHub&secret=16桁のコード
のうち16桁のコード部分としてペーストする
たとえば、ユーザ名がUser1
、16桁コードが0123456789ABCDEF
だとすると、以下のようになる。
otpauth://totp/github.com/User1?issuer=GitHub&secret=0123456789ABCDEF
OTPを発生させる
新しいSecretCodeをもとに、ワンタイムパスワードを発行させる。
まず、前回のを削除する
- WinAuthを起動する
- 右クリックでメニューを表示する
Delete
を選択する- 警告ダイアログが出るので
はい
を選択する
次に、前回と同じようにotpauth://...
をWinAuthに登録する。
そして、ワンタイムパスワードを生成する。
クリップボードにコピーされているはずである。
二要素認証の設定 take 2
やっと「二要素認証の設定」に戻る。
- GitHubのsecurityページへ戻る
- QRコードより下にある
Enter the six-digit code ...
とあるテキストボックスにCtrl+Vでペーストする Continue
ボタンを押下する
成功した!
リカバリコードのバックアップ
2. Save your two-factor recovery codes
の部分のDownload
ボタンを押下する
github-recovery-codes.txt
ファイルを保存する
大事に保管しておくこと。おそらくデバイス変更時やQRコードのSecretCode紛失時などに陥ったときアカウントを復元できる唯一の手段である。
完了
Enable two-factor authentication
ボタンを押下する
Two-factor authentication successflly enabled!
と表示された。成功
変更
二要素認証の設定を変更するときはどうするか。
- settingsのsecurityページへ遷移する
- 以下のようになっているので
Edit
ボタンを押下する
あとはいろいろいじってみればいい。
- 二要素認証のOFF
- OTPをSMSで受け取る
- リカバリコードの再発行
などができるらしい。長くなるので割愛する。
ログイン
一旦ログアウトして、ログインできるか確かめてみる。
- いつものログイン画面。
- ユーザ名とパスワードを入力して
Sign in
ボタン押下する - すると、もう一つの画面が出た。
- WinAuthで発行された6桁のOTPを入力する
- 問題は、Ctrl+Vでペーストができなかったことである
- 30秒以内に6桁の数字を手入力する必要がある(GitHubユーザなら問題ないかもしれないが)
Verify
ボタンを押下するとログインできる
ついに二要素認証でログインできた!
所感
毎回6桁のOTPを手入力するのが面倒。 30秒以内なので、あせってミスる。
どうにか自動化できないか。 せっかくのセキュリティを犠牲にするかもしれないが。
もしくは公衆回線で使うアカウントだけ二要素認証を使うようにするか。