いろいろやってみるにっき

なんとか自分の会社を立ち上げるところまで漕ぎ着けた、てきとーに生きている奴の日記

関連記事を探すときは、読んだ記事と同じカテゴリをクリックしてください。

記事のカテゴリは記事タイトル下に表示されています。カテゴリ一覧はサイドバーにあります。


2段階認証とするよりも、複数の要素や経路を使う認証は「2(多)要素認証」「2(多)経路認証」とするべきではないだろうか

……と思うのでタイトルにまとめてみた。

本来付けようとしていたタイトルは『2段階認証という用語を多く見聞きするようになったが、セキュリティ強度的に意味がある2段階認証と、セキュリティ強度的にあまり意味が無いダメな2段階認証があり、マーケティング的にも複数の要素や経路を使う認証は正しく「2(多)要素認証」「2(多)経路認証」と分けるべきではないだろうか。』140文字。140文字だとこれだけで1ツイート分。ということで59文字まで削った。あまりに長いタイトルは、はてなブログの記事公開時シェアでサイレントでエラーになるし(実験済み)。

 

2段階認証でもいいんだけど、あまりセキュリティ強度が上がらないケースがある。例えばあのサービスの場合。

f:id:shigeo-t:20141024034922p:plain

同じサイトでアカウントとPINとパスワードを管理していたら、流出するときはまとめて流出する可能性がある。まとめて流出したら、、、まあ2段階にした意味ないよね。

また流出が無いとしても、それぞれブルートフォースアタック*1が可能であれば、破られるのは時間の問題。

パスワード1個よりもセキュリティ強度は高いけど、利用者の手間暇が増える割には効果が薄い。パスワードは他サイトから漏れてのリスト型攻撃だとしても、PINも同じように漏れていたら?パスワードを複数サイトで使い回す人間なら、PINも使い回す可能性が高い。

パスワードではなくPINと呼ぶ場合、桁数が少なく文字種も少ないものを設定するよう指定されることが多い(例えば数字4桁とか)ので、PINがブルートフォースを許していたら、PINの流出が無くても、パスワードのリスト型攻撃と合わせ技で一本。

 

今回、GoogleMicrosoftが相次いで「2段階認証」を打ち出してきたが、「2段階認証」という単語に違和感を覚えるとともに、ダメな「2段階認証」と一緒にされてしまうことに危惧を覚えるので、ちょっと書いておきたい。まあ、こういうところでちまちま書いていても仕方ないんだけど。

 

まずGoogle。中身に入る前に一つ。タイトル眺めてて気づいたけど、USBってなんだよw。「キー」の二文字を省略する意味ないだろ。このタイトルを書いた奴、このタイトルでOK出した奴には減俸処分が必要だと思うよ、ITmediaというメディアとしては。ITリテラシーが無いことを拡散しちゃまずいだろビジネス的に。一般人じゃないんだから。


記事は短いけど、ちょっと引用する。太字下線はオレ。

 Googleアカウントでは携帯端末に送信される確認コードを使った2段階認証サービスも利用できる。しかし、一層の安全性向上を求めるユーザーのために、物理的なハードウェアを使った2段階認証サービスを提供することにした。

 

 Security KeyはFIDO Allianceのオープンプロトコル「Universal 2nd Factor(U2F)」を実装。PCのコンピュータのUSBポートに差し込んで使用する。GoogleのWebブラウザ「Chrome」との組み合わせで利用でき、ログインしたWebサイトが本物のGoogleサイトであることを確認した場合にのみ動作する。

元々の技術はFIDO Allianceの技術を使っているようだが、Universal 2nd Factorという名称。そう、和訳をすると「汎用的な2要素」。FIDO Allianceは分かっていて2要素認証とネーミングしたのに、使ったGoogleが「2段階認証」とネーミングしてしまって台無し。

ちなみになんでこの場合「2要素」かと言うと、元々のパスワード(1要素目)に加えてSecurity Keyという2つめの要素(=2要素目)が加わっているから。

f:id:shigeo-t:20141024043438p:plain

Security Keyとパスワードが揃わないとログインできない。ということはパスワードが流出したり、ブルートフォースアタックされるとしても、Security Keyも同一攻撃者に盗まれたりしない限り、不正利用される恐れはない。

 

なぜこういう用語に突っ込むかというと、使う用語で普及に結構影響があるから。

 

昔話だが、ある技術を拡販しているときの話。顧客先で説明する際、オレは正しく「USBキー」と呼んでいて、バカ営業は「USBメモリー」と呼んでいた。そもそも拡販していた技術(サービス)はセキュリティ関連商品そのものではないが、「USBキー」を使うことで従来技術よりもサービス全体としてセキュリティは高い。またターゲット顧客はセキュリティに対して気を使い、必要な対価なら払う気がある企業群。

結果は歴然。同時に担当している期間、100:0でオレが圧勝。何倍とかという差ではなく、無限大の差。まあ当然ではある。ターゲット顧客は全て「USBメモリー」の業務利用を禁止しており、商品にUSBメモリー」が含まれる時点で検討対象外。いや、オレは何度も注意したし、同席している時は否定しましたよ。形状はUSBメモリー」に見えるけどUSBメモリー」ではないし、USBメモリー」ではないことに意味があるんだと。当該営業はこの程度の話さえ理解する能力に欠けたみたいだが。

 

大きな桃が流れてきたり、竜宮城に行けたり、鶴が恩返ししない昔話は、ここでおしまい。

 

続いてMicrosoft

こちらも引用する。

 Windows 10の2段階認証の1つ目は端末自体で、2つ目はPINコード、あるいは指紋になる。ユーザーはWindowsにログインするすべての端末を登録することもできるが、例えば1台のスマートフォンを登録しておけば、そのスマートフォンBluetoothあるいはWi-Fiで接続した端末からログインできる。

 

 つまり、PINコードあるいは指紋を登録した指と、登録済み端末の両方を盗まれない限り、自分以外がサービスにログインすることはできないことになる。

この場合、2要素(スマートフォン)に加え2経路(BluetoothWi-Fi)でもある。

f:id:shigeo-t:20141024044659p:plain

WebサイトじゃなくWindows 10が動作するPCなので、2経路目はBluetoothWi-Fiということになっている。1経路目はPINか指紋である。PC本体のキーボードか指紋認証機構を使うことになる。2つの経路を使うだけでクラックできる可能性は相当低くなる。記事だけではPINの仕様が記事から分からないのが気になるが。

PINを長く複雑にしておいて、指紋認証ということで設定しておくと、登録した指と登録したスマートフォンと両方を持って行かれない限り、不正にログインされることはほぼない。≪登録した指と登録したスマートフォンと両方≫なんて、もう強盗傷害のレベル。

 

今回のMicrosoftの仕組みは割と好きなパターンなんだが、ポイントは以下。

  • Security Keyという専用のデバイスではなく、現在多くの人にとって必携であるスマートフォンでよい。追加で何かの購入不要。
  • BluetoothWi-Fiによるスマートフォン接続設定は一度必要だが、あとはWindows 10にログインするPCと通信できるエリアにスマートフォンがあればよい。
  • 指紋認証ならこれまたログイン時は簡単。最初の登録もあまり難しくはない。
  • しかも相当セキュリティ強度が高い

 

PCで動作するWindows 10なので2経路目はBluetoothWi-Fiだが、Webサイトなどで2経路認証する場合、スマホLTEなどで勝手に別経路で通信してくれると2経路認証が可能。リアルタイム・マン・イン・ザ・なんちゃら(MITMとかMITBとか)に有効である。乱数表とかワンタイムパスワードトークンとか(下記) 、 

オンラインゲーム用ワンタイムパスワードトークン 「BRUCE KEY」ブルースキー

オンラインゲーム用ワンタイムパスワードトークン 「BRUCE KEY」ブルースキー

 

面倒なので早くインターネットバンキング等に普及して欲しい。

  

やはりネーミングとして、世の中にダメな「2段階認証」がある(そして、割と多い)以上、そのイメージに引っ張られるのはマーケティング上もまずいと思う。  

UPEK TrueMe USB指紋認証装置

UPEK TrueMe USB指紋認証装置

 

 

*1:Brute-force attack/総当たり攻撃