@tmknom さんの BOOTH:クラウド破産を回避するAWS実践ガイド
を購入して色々AWSの基本設定をしていたのですがMFAの選定で色々考察したのでメモ程度で書き留めておきます。
MFAとは
(Multi-factor Authentication)の略のことで日本語に訳すと「多要素認証」になります。要するにSMS認証や指紋認証とかの認証方式を複数組み合わせた総称です。また、二種類の組み合わせで構成されたモノを「二要素認証」とも呼ばれます。基本的には「通常のパスワード」+「SMS認証・メール認証」の構成が一般的だと思われます。しかし、クラウドサーバー(AWS/GCP)やゲームクライアント(steam)などの「ハッキングされたら壮大な被害を受ける」「ハッキングの対象になりやすいサービス」では「通常のパスワード」+「スマホ認証」(知的認証+所有物認証)の構成で多要素認証を実現される傾向にあるみたいです。
仮想MFA(スマホ認証)
スマホがあればすぐに導入できコスト面も低いのでよく採用されやすいですが「ハードウェアMFAデバイス(ワンタイムパス)」「U2Fセキュリティキー」の方が常に公的なネットワークに接続されているスマホを使った仮想MFAよりセキュリティ性が高くリスクとコストを比較したとき大規模なサービスほど恩恵が受けやすいと私は考えますが個人開発/小規模なサービスだとコストが見合わない場面の方が多いと思うので大規模サービスでなければ仮想MFAの方が賢明な選択だと思います。なので仮想MFAの導入は個人開発/小規模サービス時の想定で選定していきます。
比較
引用:MFAを「Google Authenticator」 から 「Authy」 に乗り換えました
Authy | Google Authenticator | IIJ Smart Key | |
---|---|---|---|
シェア | 〇 | ◎ | △ |
検索性 | 〇 | △ | 〇 |
複数端末管理/バックアップ | 〇 | △ | △ |
PC利用 | 〇 | × | × |
アプリロック | 〇 | × | 〇 |
日本語 | × | 〇 | 〇 |
「Google Authenticator」は最近ローカルなバックアップ機能が追加されたみたいですが未だにクラウドバックアップ機能が実装されないのでおそらくセキュリティ面から考えると今後も実装されないでしょう。しかしその環境だとデバイスの紛失時に対応できません。仮にあらかじめ各種サービスのバックアップコード等を発行してあっても正直手間で復旧作業中は「本当に復旧できるのか?復旧出来なければどうしよう」と思うのは容易に想定でき精神的にも良くありません。なのでデバイス喪失のリスクとクラウドによるバックアップのリスクを考慮したとき前者のリスクの方が大きいです。前述の通りコストがかかってもセキュリティ性を向上させたい状態であれば仮想MFAは向いてないです。これらを踏まえて各種仮想MFAを比較したとき利便性やクラウドバックアップ機能がある「Authy」に軍配が上がります。