Chromium用。
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch 2018-06-27
- Chromium 65.0.3325.181
アドオン
方法
- インストール
- 登録
- コード生成
1. インストール
- ブラウザ起動
- authenticatorにアクセスする
インストール
をクリックする- ブラウザ上部に
Authenticator
のボタンができる
2. 登録
- ブラウザ上部の
Authenticator
ボタンをクリックする Edit
(鉛筆アイコン)をクリックする
+
(追加)をクリックする
手動入力
をクリックする
アカウント名
とシークレット
に各サービスから取得した任意の値を入力する
- 算出方式を選択する(タイムベース(TOTP)で大体OKだろうが各サービスに合わせる)
OK
ボタンをクリックする
3. コード生成
- ブラウザ上部の
Authenticator
ボタンをクリックする - 登録したアカウントのコードが表示されている
- クリックするとコピーされる
あとはコードを入力するサイトにペーストすればいい。30秒ごとにコードが変化するので予めサイトを用意しておくと良い。
問題
- 登録しづらい
- セキュリティ下がる
登録しづらい
登録時、Authenticator
のエディタを開いたままコピペできない。
アカウント名
とシークレット
を入力するとき、それぞれを他のテキストエディタ等からコピーしようとウィンドウを移動させると、Authenticator
のエディタ画面が閉じてしまう。
対策
- A
アカウント名
とシークレット
を予めまとめてクリップボードにコピーしておく - B
authenticator
のエディタ画面で一旦適当な値を入力して保存し、エクスポートし、値を変更してインポートする
Aのほうが楽だが、今回は authenticator
アドオンの機能確認もしたいのでBにする。
B. インポート案
- ブラウザ上部の
Authenticator
ボタンをクリックする Edit
(鉛筆アイコン)をクリックする
+
(追加)をクリックする
手動入力
をクリックする
- 適当な値を入力して保存する(アカウント名:
ACCOUNT
, シークレット:SECRET
)
設定
をクリックする
エクスポート/インポート
をクリックする
バックアップファイルのダウンロード
をクリックする
authenticator.json
ファイルがダウンロードされる- テキストエディタでファイルを開き、
account
とsecret
の値を任意に変更する - ブラウザ上部の
Authenticator
ボタンをクリックする 設定
、エクスポート/インポート
、バックアップのインポート
をクリックする
- ブラウザで
Authenticator
の新しいタブが開くのでバックアップのインポート
をクリックする
- 編集した
authenticator.json
を選択してOpen
ボタンをクリックする 成功しました。
と表示される
以下、バックアップファイルの書式。
authenticator.json
{ "44c7be48226ebad5dca8216674cad62b": { "account": "ACCOUNT", "counter": 0, "encrypted": false, "hash": "44c7be48226ebad5dca8216674cad62b", "index": 0, "issuer": "", "secret": "SECRET", "type": "totp" } }
セキュリティ下がる
authenticatorを使えばすぐにコードを入力できて便利だが、セキュリティの強度は下がる。
バックアップファイル
たとえばバックアップファイルやデータを抜き取られる可能性がある。離席時に操作されたり、遠隔操作されたらアウト。
アカウント名
おそらくアカウント名にはサービスとアカウント名を入力するだろう。つまり、サービス、アカウント名、トークン(コード)が紐付いてしまう。
ブラウザ一元管理
ブラウザには標準でパスワード管理機能がある。authenticatorでトークンも保存してしまうと、サービス、アカウント名、パスワード、トークンが紐付いたデータが揃ってしまう。
要するに、ブラウザで一元管理してしまっているのが問題。ブラウザからデータを抜き取られたらアカウントが乗っ取られる。
本来の二要素認証はスマホなどPCとは別のデバイスに分散するからこそセキュリティを保てる。
アドオンの危険性
Stylishというアドオンが裏でユーザの閲覧URLを盗み取っていたというニュースがあった。アドオンならそんなこともできてしまうらしい。authenticatorは大丈夫なの? 今は大丈夫でもいつかこっそりアップデートで変更されたりしない? それをどうやって判断すればいいの?
設定
、ソースコード
で実装を確認できそう。でもインストールされたものと違うかもしれない。SHAで一致確認したり、通信を監視するなどしないと安全確認ができない。
DropBoxへ自動バックアップ
設定
の項目にDropBoxへ自動バックアップ
とある。鍵であるトークンをオンラインストレージにアップロードしてしまうのは危険ではないのか?
利便性とセキュリティリスクはトレードオフ。どちらかを取ればどちらかを失う。理解して使うべき。
私は使いたくない。そもそもトークンは自分のみが持っているべき。わざわざ外部サービスにアップロードなどして漏洩したらどうするの。
代わりにUSBメモリを使ってバックアップファイルを別マシンに移したり、ファイアウォールを立ててLAN内通信で受け渡すのが安全。
二要素認証とは?
そもそも二要素認証とは? 本人確認する手段のひとつである。
多要素認証
アクセス権を得るのに必要な本人確認のための要素(証拠)を複数、ユーザーに要求する認証方式である。
従来はパスワードだけだった。多要素認証はパスワードに加え、トークンや生体認証を使う。
二要素認証(2FA)、二段階認証、ワンタイムパスワード(OTP)などともいう。
以前
GitHubで二要素認証しようと試みたことがある。
スマホ持ってないし、電話番号も渡したくなかった。そこでトークンから6桁のコードを算出するツールを用いた。
WindowsならWinAuth
、Linuxなど他のOSならpyotp
というツールを使った。これと同じことができるのが今回のauthenticator。