素人が調べただけなので責任持てません。
前回
パスワードだけだとアカウント・ハックされる場合がある。
観点
- 二段階認証ってなに?
- パスワードだけと比べて効果はどれくらい?
- 二段階認証すべきなのはどういうとき?
二段階認証とは
パスワードの他にワンタイムパスワード(OTP)も必要とする認証方法。
しくみ
ログインするとき、以下のような流れになる。
OTPを生成する方法
2種類ある。
- 電話
- 認証アプリ(Googole Authenticator)
- 認証アプリ(OTP自前計算)
電話
電話にOTPが来る。それをPCで入力する。
- ログインするたびに以下のリスクやコストが発生する
- SMSや通話の電波を傍受される
- SMS受信料(音声通話料)
- 入力が面倒
- PCと電話の両方必要
- 電話の電池が切れていたら?
ただし、PCと電話の両機が揃わないとログインできない。セキュリティは高い。
登録
OTP生成
認証アプリ(OTP自前計算)
PCにインストールした認証アプリでOTPを生成する。電話の受信は不要。
登録
(はてなが勝手にキーワードURLを生成するせいで図が壊れる……)
OTP生成
効果は?
- ソーシャルエンジニアリング対策
- 通信傍受対策
- 外出時、無線LAN接続してログインしたときに電波を傍受されパスワード、OTPを知られる
ハックされるとしたら?
- OTP生成シークレット値を知られる
- 認証後の通信を乗っ取られる
結論
二段階認証は覗き見されたときの対策になる。
ただし、シークレット値を知られるとアカウント・ハックされる。通信時にシークレット値が覗き見されることはない。ただしシークレット値を保存したデバイスを覗かれたら知られる。
結局、ネットワーク対策とデバイス接触への対策が必要となる。これはパスワードだけのときと同じ。
スマホが危険
特に危険なのがスマホ。小型のため物理的に紛失や盗難されやすく、広域無線Wi-Fiを使う。パスワードや二段階認証では防げないものへのリスクが全部ある。
対策
接触対策は生体認証で。ネットワーク対策はファイアウォールを使う。以下のようなアプリがあるらしい。
また、紛失・盗難対策として、紛失防止タグがある。
デバイスが自分から何メートル以上離れたらブザーが鳴って知らせてくれる。BlueTooth接続が切れた場所・時刻を追跡できる。
破られる
ただし、生体認証があっても本体を盗まれ、分解されて記憶装置からデータをコピーされたらシークレット値を知られうる。
ここまでくると、どうにもできない。ファイルシステムの暗号化などで時間稼ぎをしている間に、他のデバイスでパスワード変更などの措置をとるしかない。
諸悪の根源は人
- 忘却
- パスワードを忘れる
- デバイスを置き忘れる
- 盗難
- 他者から盗もうとする欲
- 世に己のハック能力を知らしめんとする自己顕示欲
- 世に混沌をもたらさんとする愉快犯
生きている以上、これらを完全に無くすことはできまい。生者目線では解決不能。