やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

GitHubで二要素認証してみた

二要素認証の設定とログインに成功した。前回WinAuthを使って。スマホも電話番号も不要でできた。

前回まで

二要素認証用スマホアプリ(ソフトウェアトークン生成器)が必要だったが、スマホを持っていないため断念した。

しかし、WinAuthを使えばスマホ不要らしいと知る。ワンタイムパスワードの生成に成功した。

二要素認証の設定 take1

GitHubで二要素認証を使う設定をする。

  1. GitHubへ任意ユーザ(仮にUser1)でログインする
  2. settingsのsecurityページへ遷移する
  3. set up two-factor authoenticationボタンを押下する 1
  4. Set up using an appボタン押下する
    2
  5. QRコードがあるページに来る
    3

一旦ブラウザから離れる。

  1. 前回用意したWinAuthを起動する
  2. ワンタイムパスワードを発行する 3

ブラウザ(GitHub)に戻る。

  1. QRコードより下にあるEnter the six-digit code ...とあるテキストボックスにCtrl+Vでペーストする
  2. Continueボタンを押下する
  3. ……失敗した。 4

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コードを画面キャプチャせねばならないのか?面倒すぎる。と思っていたら、テキストでできるっぽい。

  1. enter this text codeというリンクをクリックする 1
  2. ワンタイムパスワードを発生させるためのSecretCode(16桁コード)が表示されるのでコピーする 2
  3. otpauth://totp/github.com/ユーザ名?issuer=GitHub&secret=16桁のコードのうち16桁のコード部分としてペーストする

たとえば、ユーザ名がUser1、16桁コードが0123456789ABCDEFだとすると、以下のようになる。 otpauth://totp/github.com/User1?issuer=GitHub&secret=0123456789ABCDEF

OTPを発生させる

新しいSecretCodeをもとに、ワンタイムパスワードを発行させる。

まず、前回のを削除する

  1. WinAuthを起動する
  2. 右クリックでメニューを表示する
  3. Deleteを選択する 1
  4. 警告ダイアログが出るのではいを選択する 2

次に、前回と同じようにotpauth://...をWinAuthに登録する。 そして、ワンタイムパスワードを生成する。 3
クリップボードにコピーされているはずである。

二要素認証の設定 take 2

やっと「二要素認証の設定」に戻る。

  1. GitHubsecurityページへ戻る 1
  2. QRコードより下にあるEnter the six-digit code ...とあるテキストボックスにCtrl+Vでペーストする
  3. Continueボタンを押下する

成功した!

2

リカバリコードのバックアップ

  1. 2. Save your two-factor recovery codesの部分のDownloadボタンを押下する
    1
  2. github-recovery-codes.txtファイルを保存する
    2

大事に保管しておくこと。おそらくデバイス変更時やQRコードのSecretCode紛失時などに陥ったときアカウントを復元できる唯一の手段である。

完了

  1. Enable two-factor authenticationボタンを押下する
    1
  2. Two-factor authentication successflly enabled!と表示された。成功 2

変更

二要素認証の設定を変更するときはどうするか。

  1. settingsのsecurityページへ遷移する
  2. 以下のようになっているのでEditボタンを押下する 1

あとはいろいろいじってみればいい。

  • 二要素認証のOFF
  • OTPをSMSで受け取る
  • リカバリコードの再発行

などができるらしい。長くなるので割愛する。

ログイン

一旦ログアウトして、ログインできるか確かめてみる。

  1. いつものログイン画面。
  2. ユーザ名とパスワードを入力してSign inボタン押下する 1
  3. すると、もう一つの画面が出た。 2
  4. WinAuthで発行された6桁のOTPを入力する
    • 問題は、Ctrl+Vでペーストができなかったことである
    • 30秒以内に6桁の数字を手入力する必要がある(GitHubユーザなら問題ないかもしれないが) 3
  5. Verifyボタンを押下するとログインできる

ついに二要素認証でログインできた!

所感

毎回6桁のOTPを手入力するのが面倒。 30秒以内なので、あせってミスる。

どうにか自動化できないか。 せっかくのセキュリティを犠牲にするかもしれないが。

もしくは公衆回線で使うアカウントだけ二要素認証を使うようにするか。