バルスと多要素認証とDuoSecurityについて

バルス!

唐突ですが皆様、いま考えられる最高の認証システムの実例をご存知でしょうか?

それはスタジオジブリ最初の劇場アニメに出てくる、天空の城ラピュタの自爆装置です。

劇中にラピュタの滅びの呪文というのがありまして、この呪文を主役のシータ(とパズー)が物語の最後に使うんですが、呪文という割には非常に短くて「バルス」の一言で天空の城ラピュタが崩壊します。

いやいやそんな一言で崩壊したら危ないだろ、うっかり寝言でバルスとか言ってしまったらどうするんだよと思ってしまうんですが(ちなみにラピュタ起動の呪文は長くて「リーテ・ラトバリタ・ウルス、アリアロス・バル・ネトリール」逆に長くて忘れそう、というか間違いそう・・・)、実はバルスの発動にはいくつか条件があって


(1)ラピュタ王家の血筋を持つシータが(備える要素)

(2)飛行石と呼ばれる、先祖代々伝わる宝石を持って(持つ要素)

(3)玉座の間で(場所要素)

(4)「バルス」と呪文を唱える(知っている要素)


こと、つまり多要素認証によって発動するのです!

ほぼ完ぺきな認証システムということがお分かり頂けるかと思います。次項からはラピュタ自爆装置起動に必要な(だけじゃないですが)、多要素認証について具体的に説明させていただきます。


多要素認証ってなんだ!?

少し前にスマートフォン決済サービスの不正利用に関する記者会見で話題になった多要素(二要素)認証についてのお話です。実際のところ多要素認証について全部理解しているという方はなかなかいないでしょう。しかし、たとえばAppleのサービスや各種銀行のオンライン口座では徐々に必須になりつつあり、特にAppleIDではしつこく(?)使用を要求されてくるため、全く知らない見たことも聞いたこともない、という人はあまりいないのではないでしょうか。

ではいったい多要素認証とはなんなのでしょうか?


ここであえて誤解を恐れず簡単に言ってしまうと

「パスワードだけでは危ないので、もう一つの"方法"で本人確認を行う」

というものです。


ところでなぜもう一つの方法が必要なのでしょうか?なぜ多要素認証が必要なのでしょう?今までのパスワードだけでダメなの?

確かにインターネットが普及する前、コンピュータによるサービス提供が一般的になる前はパスワードによる認証で十分な時代がありました。もちろんその頃にも

・誕生日など類推できるものにしない

・複雑なパスワードにする

・パスワードは紙に書かない

等の注意事項はありましたが、それでも特に問題なく運用されていたわけです。

しかしインターネットの爆発的な普及によって、もっと具体的言ってしまうと提供されるサービスの爆発的な増大によって、パスワードの流出という問題が頻発するようになってきました。これはたとえば悪意のあるハッカーによるシステムに対するハッキングであったり、悪質なサービス提供者側の意図的な流出であったり、マルウェア(キーロガー)による覗き見だったりするわけです。ここで流出したパスワードはそのシステム自体はもちろんパスワードの使いまわしをしていた場合に全く別のサービスに対してもログインが可能となってしまいます。

そしてもしパスワード以外の認証手段をとっていなかった場合、悪意のある第三者によってたとえ地球の裏側からでも簡単にアカウントが乗っ取られ、銀行口座であれば勝手に送金されたり、ショッピングサイトであれば勝手に高価な品物やポイントカードを購入されたり、金銭的にかなりの大打撃を受けることになってしまうわけです。

しかし多要素認証を設定しておけば、流出したパスワードだけではログインもできないため、上記のような被害を防ぐことができるのです。


さまざまな認証手段

さて多要素認証の重要性はお分かり頂いたかと思います、ではそもそも認証する要素には実際にどういったものがあるのでしょうか。

それは「知っていること」「持っていること」「備えていること」の大きく3つに分類されます。


知識

まず一つ目は「知っていること」の要素として挙げられるもの、知識です。これは主にパスワード、パスフレーズで代表される基本的かつ長年使われている手段で、認証の際に知っている文字列を入力し、システム側で記録しているものと合致するかどうか照合するものです。いわゆる「開けゴマ!」といった呪文もこれに該当するのではないかと思います。パスワード・パスフレーズは使用するユーザ(ID)に文字列を割り当てていくだけで使用可能で、ユーザによる変更も容易なためコンピュータシステムの初期からずっと使用されてきました。単体の認証手段としてはかなり強固にすることは可能ですが、昨今のインターネットサービスの急速な普及によって単体での使用は危険になりつつあるのはすでに述べたとおりです。

メリットとしては運用が容易、人に教えることができる。といったものになるでしょう。デメリットとして忘れてしまう可能性がある、逆に人に教えることができてしまうというようなものがあります。

[具体例]

・パスワード/パスフレーズ

・暗証番号

・呪文


所持

次に「持っていること」としての認証手段で所持があります。これはたとえばUSBポートに差して使用するドングルであったり、ワンタイムパスワードを生成するハードウェアトークンであったり、本人所有のスマートフォンに送るSMSメッセージであったり、十分に複雑で記憶することが困難な乱数表だったり、つまり所有していることが本人の証、もしくは利用許可の証というものです。古くは物理的な鍵も相当すると思います。

メリットとしては認証要素を渡すだけで利用者を特定できることや、物によっては複製可能といったものがあります。デメリットとしては紛失したり使用する際に別の場所に置き忘れたりすると利用できなくなり、また複製可能というのも逆にデメリットになる可能性はあります。

[具体例]

・SMS認証(携帯電話・スマートフォンに送るメッセージ)

・ソフトウェアトークン(Google AuthenticatorやAuthyなどのソフトウェア)

・ハードウェアトークン(RSAのSecureIDトークンやU2F準拠のトークン、GoogleのTITANセキュリティーキーなど)

・飛行石


特徴

さらに「備えていること」による認証手段として、認証者本人に由来する「特徴」があります。これ例えば入退室管理に使用される静脈認証であったり、スマートフォンで一般的になりつつある指紋認証・顔認証であったり、認証者本人以外には持ち合わせていない手段を登録して認証するものです。

メリットとしては本人由来の特徴を利用するので覚えたり持っていたりする必要がないというものがあり、デメリットとしては認証に失敗する可能性が他の手段より高いというものがあります。個人的な話で恐縮ですが筆者はデータセンターで採用されている指紋認証の認識率が極端に悪く、数人で入退室するときにいつも他の人を待たせてしまい心苦しい思いをしてました・・・・。

[具体例]

・指紋(iPhoneのTouchIDやPixel Inprintなど)

・顔(iPhoneのFaceID)

・静脈(手のひらの静脈のパターンを認証に使う、認証装置に手をかざします)

・虹彩(目の中にある模様を読み取って認証に使う、認証装置を覗き込んで使います)

・王家の血


(場所)

Wikipediaを参照すると、「場所」も認証手段として挙げられており、これは特定の端末や地域からのアクセスに制限するものを想定しています。特に特定の端末からしかアクセスできないというネットワーク的に制限する方法は最強かと思いますが、どちらかというと認証手段というよりもアクセス制限に属すると思われますし、実際に不特定多数の人が あまり実用的とは言えないと思われるので補助的な手段になるかと考えます。

[具体例]

・GPS情報

・物理的アクセス制限

・玉座の間


実際どうなの?

ユーザとしてMFAを使用するものというのはどういったものがあるのでしょうか?実例を挙げて説明しましょう。

Amazon.co.jp(.com)

インターネット通販サイトとしてあまりにも便利ですので、かなりの人が使っているのではないと思うAmazonです。仮にAmazonのアカウントが乗っ取られた場合、特にクレジットカードを登録していた場合の被害はかなりのものになります。ギフト券を大量に買われてしまったら容易に換金されてしまうのではないでしょうか。よって多要素認証の設定は事実上必須ではないかと思います。

Amazonは多要素認証に

・第1手段

・バックアップ手段

(わかりにくいですが・・・)の設定が必須で、それぞれ

・SMS認証

・ソフトウェアトークン

・音声のコールバック

を適用できます。バックアップ手段は第1手段が使えない時のために使います。


基本的には

A)知識

B)所持

を利用した多要素認証に相当します。

ところでAmazonでは二“段階”認証としていますが、やっていることは多要素認証です。これまで“多要素”認証としていましたが、実際のところは多要素認証≒二要素認証で、二段階認証は言葉の定義がかなりあいまいに使用されているようです。

またSMS認証についてはNIST(米国立標準技術研究所)が

“いま現在は使用可能だが将来的には使用しないほうがよい“

としているため、できればソフトウェアトークンの使用を前提にした方がよいかと思います。


AppleID

実施していないと中々しつこく要求してくるAppleの多要素認証ですが、基本として使用するAppleIDとそれに紐づいたパスワードのほかに、信頼するデバイスに対する認証コード送信を使用します。これは

A)知識

B)所持

を利用した多要素認証で、B)所持のデバイスに対して認証コードを送って多要素認証をするものです。デバイスとしては通信可能なApple製品であればなんでもOKというAppleの閉じた製品群のアドバンテージを生かしたもので、非常にわかりやす仕組かかと思います。もちろんApple製品が一つしかない場合はSMS認証やコールバックによる認証といった代替手段はあります。

ただ認識しておかないといけない点として、「使用している端末」に認証コードが送られてくるというものがあります。これ何かというと、たとえば信頼済みのデバイスに登録しておくと、ログインしている端末自体にも多要素認証のコードが送られてくるというものです。通常は問題ないのですが、デバイスがマルウェアなどによる遠隔操作で乗っ取られている場合は、危険な状況です。これが全くダメなのかというと単純なパスワード流出の対策としては有効ですし、セキュリティというのはあくまでも利便性とのトレードオフですので十分有用ではないかと思います。


AWS

お買い物サイトのAmazon.co.jpと混同しそうですが、パブリッククラウドとしてのAmazon Web Serviceの方です。さすがにセキュリティ第一を謳っているAWSだけあって各種デバイスが使えます。多要素認証が所有によって行われているためバックアップ手段としては登録済みのメールが使用されます。

多要素認証として使用可能な手段は以下の通りです。

・仮想MFAデバイス

 ⇒GoogleAuthenticatorやAuthy

・ユニバーサル第 2 因子(U2F)セキュリティーキー

  ⇒ハードウェアトークン、USBに差して使います。

・キーホルダータイプのMFAデバイス

 ⇒ハードウェアトークン、ワンタイムパスワード生成して使用します。

・ハードウェアのディスプレイカードMFAデバイス

 ⇒ハードウェアトークン、こちらもワンタイムパスワードを使用します。

・SMS MFA デバイス

 ⇒SMS認証です。

いずれも

A)知識

B)所持

を利用した多要素認証になります。


天空の城ラピュタ

最初にお伝えした通りです。


Duo Security

ここまでの説明で認証の要素と実際の適用例についてはお分かり頂けたかと思います。多要素認証を使い始めると多少不便ではありますが、パスワードだけでは非常に心もとなくなってくるものです。ただ、いろいろなサービスがそれぞれの多要素認証を使用すると、現在の主流は「所持」ですから、持っていなくてはいけないデバイスがやたら増えてきて、パスワードが多すぎて覚えきれない!どころの話ではなくなってきます。できれば1個で使いまわしたい・・・。

残念ながらコンシューマ向けではこれからですが、実はエンタープライズ向けではすでにあります。

それがCISCOのDuo Securityです。Duo Securityは「持つ要素」として独自のモバイルアプリが使用できるほか、他社のハードウェアトークンやSMS認証、「備える要素」としてTouchIDなどの指紋認証といったいろいろな認証手段を追加し、それをシングルサインオン(SSO)に適用してさまざまなアプリケーション・システムに対してシンプルでセキュアなアクセスを提供できるのです。

実はほかにもいろいろな機能があるDuoSecurityですが、日本ではこれから提供が開始されますので、公開が可能になり次第このblogでもご提供できればと思います。

川口 将生(かわぐち まさお)

人気記事

会社情報