72
アプリで二要素認証の手間を省く

私は、Private I の初期のコラムで、2 要素認証 (2FA)、つまり 2 段階認証について強調してきました。これは、ほとんどの人が面倒と管理の煩わしさからアカウントに対するこの追加保護の使用を避け、アクセスがロックされたり、不必要な追加手順が必要になったりすると考えているためです。

しかし、2FAは底なしの穴のある障害物競走ではありません。むしろインフルエンザの予防接種のようなものです。体調が悪くなく、感染する心配もなければ、予防接種を省略しても構いません。しかし、現在のワクチンでカバーされている系統のインフルエンザに感染し、痛みや発熱で2週間寝込んでしまい、同僚全員に感染させてしまった場合、予防接種はさほど役に立ちません。

バックアップと同様に、予防策を講じるということは、全く良い気分ではありません。アカウントが破られる可能性があったのに破られなかった時に初めて、ほっとする安堵感を覚えるのです。第二要素がなければ誰も自分のアカウントに侵入できないという安心感のもと、パスワードリセットのメッセージが次々と届くようになった時はどうでしょうか?パスワードの破られが相次いでいるというニュースを聞いても、自分は影響を受けていない時はどうでしょうか?それはまるで慰めのようなものです。

消費者や中小企業、そして多くの大企業向けの現代の2FAシステムは、キーフォブなどのハードウェアキーの使用を避けています。こうしたデバイスを持ち歩かなければならないことが、過去に人々が2FAを敬遠した理由の一つであることは間違いありません。特に、ウェブサイトや会社ごとに1つずつ必要だったからです!私は今でもeBay/PayPalや株取引用のキーフォブを使っていますが、紛失したことはありません。しかし、常に管理し、安全に保管しておく必要があります。そのため、ほとんどのサービスでは、限定的な使用期限のコードを生成する認証アプリの使用を必須にするか、オプションとして提供しています。

アプリはSMSよりも優れている

Googleは、こうしたアプリの先駆けとして広く普及したGoogle Authenticatorを提供し、一般の人々がSMS送信に頼ることなく2要素認証を利用できるようにしました。SMSは安全性が高いとは考えられていません。個人や機関が無線経由であろうと集中システムであろうと、SMSを傍受する方法は数多く存在します。(先週、YosemiteのContinuityを使ったSMS転送機能について書きましたが、SMS転送は、同じiCloudアカウントにログインし、この機能が有効になっているMacやiOSデバイスに、2要素認証用のSMSコードを送信します。限られたケースではリスクが高まりますが、簡単に軽減できます。)

デュオセックiOSアプリ

DuoSec のアプリは、Google が広く採用しているプロトコルを使用してセキュリティ トークンを生成するだけでなく、独自のシステムを使用して直接認証メッセージを渡すこともできます。

これらのリスクは、ほとんどの(全員ではない)人にとっては最小限、あるいは全く存在しないものですが、SMSには多くの制限や癖があります。サービスが送信したと思われるメッセージが、30分後に届いたり、全く届かなかったりすることもあります。自宅の携帯電話サービスが利用可能な国や地域以外を旅行すると、SMSの送信ごとに高額な料金を支払わなければならなかったり、SMSを全く受信できなかったりすることもあります。インターネットは使えるのに携帯電話が届かない田舎にいる可能性もあります。これは、休暇中に驚くほど何度も経験したことです。認証アプリは、これらの理由から、優れた代替手段となります。

認証アプリを使った2FAの設定手順はサイトによって異なるようで、多くのサイトではアプリベースのコードかSMSのどちらかを選択できます。中には両方に対応しているサイトもあります。Twitterは唯一例外で、SMSか自社開発のTwitterアプリのいずれかしか利用できず、サードパーティ製アプリは利用できません。(Appleの2段階認証は、SMS対応の電話番号と信頼できるデバイスが必要で、iCloud、iOS、Mac OS Xのいずれの場合でも独自の認証手段で認証を行います。)

コードマスター

Google Authenticator、Authy、DuoSec Security はいずれも Google の標準トークンプロトコルをサポートしています。このプロトコルでは、2 段階認証で保護しているサイトからシードキーを受け取り、アプリがそのキーと現在の時刻または増分可能なカウンターを使用して 6 桁のコードを生成できます。私の経験では、30 秒ごとに更新される時間ベースのコードしか見たことがありません。カウンターのカウントは 1 回しか使用できず、時間ベースのコードは限られた時間のみ有効です。(Google Authenticator は無料です。その他のアプリのソフトウェアは基本使用または個人使用は無料で、中小企業や大企業のユーザーから収益を得ています。)

フェイスブックの2要素認証

Facebook 独自のアプリでもコードを生成できます。 

多くのサイトがGoogleのプロトコルをサポートしており、互換性のある認証アプリも利用可能です。有名な企業としては、Amazon Web Services、Dropbox、Facebook、Hover、LastPass、Linode、Tumblrなどが挙げられます。

コードをシードするために、サイトは通常QRコードを生成します。QRコードは情報をエンコードした2次元タグで、多くのジョークの的となっています(日本では大人気です!)。しかし、画面からランダムな文字や数字をスマートフォンに取り込む効率的な方法です。一部のサイトでは、ASCII文字と数字で書かれたコードも提供されています(キーの長さは80ビットです)。これらのアプリはデバイスのセキュリティに依存しており、デフォルトでは二次的なセキュリティメカニズムは有効になっていません。AuthyだけがパスコードまたはTouch IDによるアプリのセキュリティ保護を許可していますが、これはユーザーが有効にする必要があります。

パスワードでログインし、2要素認証を求められたらアプリを起動して対応するコードを入力します。多くのサイトでは、認証アプリを設定してログイン認証に使用すると、ブラウザやデバイスを信頼できるものとしてマークできます。マークの有効期間は永久的、または一定期間(通常は30日間)です。2要素認証(2FA)を導入しているほとんどのサイトでは、サイトのセキュリティ設定からクリックするだけで、信頼できるデバイスやブラウザをすべて取り消したりログアウトしたりできます。これは、セキュリティ侵害を受けたり、自分が管理していると思っていたコンピューターやモバイル端末に誰かがアクセスしたのではないかと心配な場合に役立ちます。(これは認証アプリを使用しているかどうかに関わらず当てはまります。)

欠点

これらの認証アプリの最大の問題は? それは、コードを生成するためのキーを失くしてしまうことです!私はGoogle Authenticatorを初めて使用し、その後iPhoneを復元しなければならなかった時に、このことを痛感しました。フルバックアップを取っていたにもかかわらず、Authenticatorはキーを復元可能な形で保存してくれません。たとえiTunesのパスワード保護されたiOSのフルバックアップを使ってもです。キーを再入力しなければなりません。

オーシー

Authy のようなアプリは、多数のサイト、さらには複数のプラットフォームで動作します。

Authyは、同じアカウントに登録されたデバイス間でデータを同期し、キーやその他の設定をクラウドにバックアップすることで、この問題を回避します。これは便利で、たとえセキュリティ対策が何らかの形で突破されたとしても、追加リスクは驚くほど少なくなります。同期するのは1要素だけだからです。これも2FAのもう一つの利点です。(Authyのパスワードを誰かが解読する可能性は考えられますが、その場合は信頼できるデバイスの1つも必要になります。そのデバイスは別のPINや指紋で保護できます。その可能性はかなり低くなります。)

Authyに限らず、別途バックアッププランを用意しておく必要があります。利用するサービスによっては、リカバリーコード、ワンタイムログインコード、または初期キーの保存方法が提供されます。これらのコードは必ず暗号化し、パスワードやコンピューターにアクセスした人が2FAリカバリー情報にもアクセスできないようにしてください。私はYojimboと1Passwordを使用しています。どちらも強力な暗号化オプションを備えており、それぞれ異なる強力なパスワードを設定しています。

面倒な手続きのせいで2段階認証の導入をためらっているなら、これらの認証アプリが、もう1要素を追加する勇気を与えてくれることを願っています。まるで薬を飲むような気分ですが、個人のセキュリティ耐性を高める最も確実な方法です。完璧ではありませんが、確実に強化できます。そして、アカウントを他人に知られずに済みます。