NJS Developers

日本情報システム株式会社の開発ブログ

FIDOがパスワードの要らない世界を実現する!

みなさんこんにちは。日本情報システム株式会社 ICTソリューション部の進藤です。
今回は、FIDO、U2F、UAFについてご紹介します。

FIDO(ファイド)とは

FIDOは“Fast IDentity Online”の略で、2012年7月に設立された非営利団体です(FIDO Alliance)。また、この団体が考案した認証規格もFIDOと呼びます。
FIDO Allianceは、パスワードによるログイン認証を廃止するための規格を策定しており、MicrosoftGooglePayPalLenovoなどの大企業が参入しています。
MicroSoftWindows次期バージョンの「Windows 10」において、FIDOの認証方式をサポートすると発表しています。

画像

以前の記事から書かせていただいておりますが、パスワードだけの認証は、さまざまな脅威にさらされる危険性があります。オンラインサービスを提供する企業・団体は、顧客のパスワードが流出する問題を解決するために、2段階認証を取り入れています。しかし、携帯電話やセキュリティトークンから生成されるワンタイムコードを利用するため、それらのデバイスを紛失したり所持していなかったりする場合の利便性が低いと言えます。
スマホのロック解除に利用するマトリクスや指紋認証といった高度な技術がありますが、オンラインサービスの認証もこれらのローカルデバイスによる認証技術を活用できないかと検討され、考案されたのが 【U2F(ユーツーエフ)】と【UAF(ユーエーエフ)】といった規格です。

U2F(ユーツーエフ)とは

U2Fとは、「Universal 2nd Factor」の略であり、現在の2要素認証の技術を進化させた認証です。

U2Fとは「Universal Second Factor」の略であり、現在の2要素認証の技術を進化させた認証のことです。2要素目のキーとして用いているデバイスから公開鍵と秘密鍵のペアとそれらを関連付けるKeyHandleを生成し、その公開鍵とKeyHandleを事前にブラウザ経由で認証サービスに送信し、登録する方式をとっています。 認証の際には、認証サービスがKeyHandleをブラウザ経由でU2F端末に送信し、U2F端末はそのKeyHandleに関連付けられた秘密鍵シグネチャを作成し、それを認証サービスに送信します。認証サービスは事前に登録された公開鍵を利用してそのシグネチャの正当性を確認します。認証サービスから送信されるKeyHandleに関連する秘密キーを見つけられない場合は、U2F端末が反応しない仕組みで、今までのセキュア性に加えさらに中間者攻撃にも強いとされています。

※引用元
FIDO U2F対応CloudGate UNOで「Strong Authentication」というセキュアな世界の実現を目指します。 | 株式会社インターナショナルシステムリサーチ
http://www.isr.co.jp/news/2015416

私自身、最初は「とりあえず複雑な認証なんだろう。」「解説ですら難しい。」という印象でした。
U2Fは、以前、所持情報についてご紹介したICカードなどに用いられてる公開鍵暗号方式に基づいて策定されたそうなので、先に公開鍵暗号方式について調べてみるとわかりやすいかもしれません。
U2Fに対応したセキュリティーキーのモノ自体も安いですし、前回のGoogleアカウント認証でご紹介したように、登録作業もすごく簡単なのでユーザー側の負担は最小限に抑えられていると思います。

UAF(ユーエーエフ)とは

「UAF」とは、Universal Authentication Framework の略であり、FIDO対応のデバイスを用いてパスワードを使わずに行う認証のことです。
これは、デバイスに自分を認証させる情報を登録し、そのデバイスをオンラインサーバで登録するという仕組みです。
この仕組みの最大のポイントは認証を個人の認証とデバイスの認証に分解したということです。
基本的にパスワードを使わないという時点で、知識情報以外の要素で認証するはずで、

  • デバイスと自分を認証させる・・・生体情報認証
  • デバイスとオンラインサーバ・・・所持情報認証

のような認証になるのではないでしょうか。
以前、生体認証についてご紹介しましたが、個人の生体情報が流出してしまうと、その認証での安全性の回復は極めて困難になりますが、このUAFでは、インターネットを経由するのはデバイス情報のみになる為、そのデバイスを紛失する以外に個人の生体情報が流出する可能性は無くなります。
FIDOは、将来的に全ての認証をこのUAFでカバーしたいと考えているそうです。

まとめ

いかがでしたか。
だんだんと難しい言葉が増えてきていますが、わかりやすく説明できていますでしょうか。
次回もセキュリティの話題をご提供します。

YubiKeyを使ったGoogleアカウントの2段階認証

みなさんこんにちは。日本情報システム株式会社 ICTソリューション部の進藤です。
今回は、実際にYubiKeyを使ったGoogleの2段階認証をご紹介します。

準備

以下の2点を用意します。

  • Googleアカウント
  • YubiKey(U2F対応)
yubikey

Yubikey(U2F対応)と1円玉の比較。Yubikeyちっちゃ。

このYubiKeyは、株式会社インターナショナルシステムリサーチ(ISR)様主催の「パスワードのいらない社会へ 認証強化対策セミナー」に参加した際のアンケート回答プレゼントとして頂きました。
セミナーにはYubico社の方も登壇されていました。

手順

※以下の手順は2015年8月現在のものです。
画面や操作手順は変更されている場合がありますのでご了承ください。

1.ログイン

通常のID/PWでGoogleアカウントにログインします。

Google認証

Googleアカウントのログイン画面

2.アカウントの管理、保護、安全対策画面

Googleアカウント全般の設定画面が表示されます。
【ログインとセキュリティ】をクリックします。

Google認証

上記赤枠部分をクリックします

3.Googleへのログイン|パスワードとログイン方法

ログインパスワードやバックアップオプションの管理画面が表示されます。
【2段階認証プロセス】をクリックします。

Google認証

上記赤枠部分をクリックします

4.2段階認証プロセス|セキュリティ キー

2段階認証管理画面が表示されます。ここではセキュリティ キー以外の2段階認証も設定できます。
【セキュリティ キー】タブ内、【管理】をクリックします。

Google認証

上記赤枠部分をクリックします

5.2段階認証プロセス|Security Keys

セキュリティ キーの登録画面が表示されます。
【セキュリティ キーを追加】をクリックします。

Google認証

上記赤枠部分をクリックします

6.2段階認証プロセス|Security Keys

セキュリティ キーの登録手順が表示されます。
画面の手順に従って、YubikeyをパソコンのUSBポートに挿入の上、【登録】をクリックします。

Google認証

YubikeyをUSBポートに挿入し、上記赤枠部分をクリックします

7.2段階認証プロセス|Security Keys

セキュリティ キーの登録完了画面が表示されます。
【登録済み】と表示されていることを確認します。【完了】をクリックします。

Google認証

上記赤枠部分をクリックします

8.2段階認証プロセス|Security Keys

登録したセキュリティキーの情報が表示されます。

Google認証

熊谷市?会社は狭山市ですが・・・ま、山に挟まれた谷じゃ熊も出るだろうし似たようなもんですね。

9.さっそく使ってみる。

一度ログアウトします。
画面右上のアイコンをクリックし、【ログアウト】をクリックします。

Google認証

10.ログイン

ログイン画面が表示されます。
再度パスワードを入力し、【ログイン】をクリックします。

Google認証

11.おおー出た

2段階認証プロセス画面が表示されます。
Yubikeyをタッチします。

Google認証

ログインできれば完了!これでアカウント保護はバッチリ。

まとめ

いかがでしたか。
Googleアカウントは様々なサービスと連携していることもありますので、簡単にセキュリティを高めるにはYubikeyが大変便利です。
次回は、今回の準備で使用したYubiKeyの「U2F」対応というキーワードについて、
詳しくご紹介する予定です。

Googleアカウント、多段階認証・多要素認証マストな件

みなさんこんにちは。日本情報システム株式会社 ICTソリューション部の進藤です。
これから4回にわたり、Googleの2段階認証について掲載していきます。
今回は、Googleの2段階認証の概要をご紹介します。

概要

Googleの2段階認証は、「通常パスワード+コード」または、「通常パスワード+セキュリティキー」の2段階認証(2要素認証)を使用します。 (2段階認証、2要素認証について詳しく知りたい方は以前の記事「多要素認証とは」をご覧ください。)

パスワード+コード「通常パスワード+コード」の場合、通常のパスワードを入力後、携帯電話にコードが送信され(または認証システムのアプリからシークレットキーが生成され)、そのコードを入力する仕組みです。
パスワード+セキュリティキー「通常パスワード+セキュリティキー」の場合、登録されている物理セキュリティキーをUSBポートに接続するだけでログインできます。

Googleの2段階認証について詳しく知りたい方は以下Googleアカウントヘルプをご覧ください。
Google アカウントヘルプ|2 段階認証プロセス
https://support.google.com/accounts/topic/28786?hl=ja&ref_topic=3382253

 

2段階認証が必要な理由

なぜ、2段階認証が必要なのか?

答えは簡単です。 パスワードを盗むことはみなさんが考えている以上に簡単だからです!

パスワードを盗む、というと何やらコンピュータに精通しているマニアがあれやこれや専門知識を駆使していそうなイメージですが、実は案外簡単な方法を用いることが多く、誰でも出来てしまうのではないか、というレベルです。例えば、次のような方法があります。(※いいことありません。決して試さないでください。)

  • パスワードを書いた紙や付箋を盗んだり、背後から見て盗み取る
  • 名前や誕生日、好きな言葉などを次から次へと入力してみる。
  • 桁数が決まっていれば、全ての数字の組み合わせを入力してみる。(総当り攻撃)

パスワードを間違えた回数でロックがかかるような仕組みがない場合、総当り攻撃は特に危険です。
0から9までの4桁の数字の組み合わせは1万しかありませんので、頑張れば人の手でパスワードを割り当てることも可能です。(1万回目ではなく、1回目にアタリを引く可能性もありますので。。)
Googleパスワードは英数字の組み合わせだから大丈夫!という方、最近はディクショナリアタックなるものがあり、パスワードに設定しそうな単語が登録されている不正なシステムを利用することで、6文字のパスワード(21億7678万2336の組み合わせ)が15秒で破られてしまうこともあります。

Googleパスワードが盗まれたらどうなるでしょうか。Googleアカウントのパスワードを盗まれた場合、いわゆる「Googleアカウントが乗っ取られた」状態になります。
今やGoogleアカウントは様々なサービスと連携しています。たとえばショッピングサイトのログインにGoogleアカウントを利用していて、しかもクレジットカード情報をそのサイトに登録していたら・・・簡単にカードを不正利用されてしまいます。
もちろん、メールアカウントを踏み台にして、スパムメールを一斉送信されたり、ウィルスがばらまかれたりといった被害も考えられますので、さんざんな目に遭い、再起不能になることでしょう。

このように、自分のアカウントに重要な情報が登録されている場合、盗まれたことによって起こりうる最悪の事態を知っておかなくてはなりません。すると、ひとつのパスワードだけでは安心できない、多段階認証、多要素認証が必要!という考えに至るはずです。

まとめ

いかがでしたか。簡単ですが、Googleアカウント認証についてご紹介しました。
次回は実際にテスト用Googleアカウントに2段階認証を使ってご紹介していきます。

いまさら聞けない多要素認証(4)所持情報について

みなさんこんにちは。日本情報システム株式会社 ICTソリューション部の進藤です。
今回は、認証の3要素のひとつ所持情報についてご紹介します。

所持情報の概要

所持情報とは、本人しか所持していないもののことをいい、主に身分証明書やクレジットカード、携帯電話、IC(Integrated Circuit)カードなどがあります。
ITっぽいのは抜きにして、家の鍵、銀行の通帳と印鑑などもこれに該当します。

所持情報

ICカード公開鍵暗号方式を利用して、外部から秘密鍵を読み取れなくすることで高いセキュリティが確保されています。内部の情報にアクセスするためには正規の手順を踏むことが必要であり、外部から直接メモリにアクセスして情報を読み出すことが困難な仕組みになっています。

問題点

所持情報は、物理的な"モノ"であるため破損、紛失、盗難といった問題がつきまといます。
しかし、これらの問題は良くも悪くも実例が多いうえ、問題を発見しやすいことから、発行元のサポート対応が早いというのが不幸中の幸いです。
これらの問題に所持者が気づかない場合、悪用、不正アクセス、情報漏えいにつながり、発行元にも相応の負荷が生じます。

運用・管理コスト

所持情報は運用・管理コストがかかります。以下は、クレジットカードを運用・管理するためのプロセスの一例です。

  • 本人へカードの発行
  • 問題発生時、カードの失効、再発行、認証側のカード情報を無効にする
  • 24時間対応受付窓口

カードやそれを読み込むカードリーダーの物理的コストと、上記の一例にあるように、管理・運用面では人件費等のコストが生じます。後者のコストを減らすには、上記プロセスを自動化するなど対応方法はありますが、それはそれで開発コストがかかってしまいます。
つまり、どうやってもコストがかかってしまうというです。

まとめ

いかがでしたか。簡単ですが、3週にわたり認証の3要素をご紹介しました。なんとなくでもイメージできましたでしょうか。
この3要素の性質をふまえ、【知識情報】+【所持情報】の多要素認証プロダクト開発を攻めていこう!ということになり、YubiKeyに辿りついたという経緯です。

しかし、何は無くともセキュリティの重要なポイントは、「使う人の意識ありき」という点にあります。
どんなに素晴らしいセキュリティの仕組みを建付けたとしても、使う人の意識で大きく左右されてしまうことは避けられません。

次回は、Googleアカウント認証についてご紹介する予定です。

いまさら聞けない多要素認証(3)知識情報について

みなさんこんにちは。日本情報システム株式会社 ICTソリューション部の進藤です。
今回は、認証の3要素のひとつ、知識情報についてご紹介します。

知識情報の概要

知識情報とは、本人しか知り得ない情報のことをいいます。パスワード認証など、最も普及・利用されている基本的な認証要素です。
本人が記憶している情報を認証側にも置いて一致させるだけといったシンプルな仕組みの為、汎用性が高くコストも低いのが特徴です。開発者目線でも、ほとんどのプログラマが実装できるほどシンプルなものだと思っています。

知識情報を利用した認証の例

主な知識情報には以下のものがあります。

  • パスワード・・・キーワードや、アルファベット・数字の組み合わせ
  • マトリクス・・・使い捨てパスワードのひとつで、表にある文字や数値の位置を利用する
  • ナレッジベース・・・秘密の質問と答え

メリット

導入しやすくコストが安いので、 比較的簡単にさまざまなシステムで利用できます。
ひとつのパスワードで不安という場合にはパスワードと秘密の質問、というように多段階認証方式をとることで、セキュリティレベルを上げることも可能です。

デメリット

他の認証要素よりも簡単に導入できる為、セキュリティに問題が出てきてしまいます。

覚えられない

セキュリティを高くするために、定期的にパスワードを変更したり、長いパスワードを設定したりします。
ところが、パスワード自体を覚えられず、結果メモ書きをしてソーシャルエンジニアリングの被害に遭ってしまう事例があります。

※ソーシャル・エンジニアリング
ソーシャル・エンジニアリングとは、人間の心理的な隙や、行動のミスにつけ込んで個人が持つ秘密情報を入手する方法のこと。ソーシャル・ワークとも呼称される。
フリー百科事典 ウィキペディアより

漏えいしやすい

パスワード認証におけるパスワードには、全ての英数字の組み合わせを試す「総当たり攻撃」 や、偽サイトに誘導してIDとパスワードの入力を求める「フィッシング」などさまざまな攻撃手法もあることから、セキュリティ的にはとても問題があるといえます。開発者側は、パスワードを暗号化や、ワンタイムパスワード認証、秘密の質問といった多段階認証を活用することでセキュリティを高めることは可能ですが、それでもユーザー側の手間も考えると知識情報だけで認証を行うには限界があるでしょう。

パスワードの後にあれやこれや聞かれる図

セキュリティのためとはいえ、質問攻めも面倒です。

漏えい期間が長い

パスワードが漏えいしたことを本人が気づくまで、パスワードは不正に利用され続けます。
また、パスワードが漏えいしたことを知らせる機能が少ないというのも問題点です。

まとめ

いかがでしたか?簡単ですが、知識情報のご紹介をしました。
シンプルなゆえセキュリティ面にも不安な点が多いですが、汎用性、コスト面であらゆるシステムにも対応できるので、用途がなくなることはなさそうな気がします。
次回は所持情報についてご紹介する予定です。

いまさら聞けない多要素認証(2)生体情報について

みなさんこんにちは。日本情報システム株式会社 ICTソリューション部の進藤です。
「多要素認証とは?」というテーマで前回から連載しておりますが、今回は認証の3要素のひとつ、「生体情報」についてご紹介します。

生体認証の概要

生体情報とは、主に顔や声紋、指紋、静脈など生物固有の情報です。 本人以外が持ち合わせない情報であるため、原理的に「なりすまし」が極めて困難であり、高いセキュリティを実現できる認証要素です。
最近では、銀行でも「静脈認証」が採用され、広く普及しています。

生体認証の種類

主な生体認証には以下のものがあり、それぞれにメリット・デメリットがあります。また、コストも異なります。

  • 指紋認証・・・指の指紋を使用した認証方法。
  • 静脈認証・・・指の静脈を使用した認証方法。
  • 声紋認証・・・声を使用した認証方法。
  • 虹彩認証・・・目の虹彩を使用した認証方法。
  • 手形認証・・・手の形を使用した認証方法。
  • 顔認証・・・顔を使用した認証方法。

メリット

わざわざ覚える必要が無いこと、忘却や紛失の恐れが無いことが最大のメリットです。これは、利用者だけではなく、管理上のメリットでもあります。
また、複製・偽造、なりすましが難しいため、安全性が高くなります。(指紋など、複製可能な一部の生体認証は除く)

デメリット

時間の経過によって生体情報が変化した場合や、ケガや先天性欠損の方の対応が十分ではない状況です。
また、生体情報もデータです。 そのデータが盗まれた場合、解析され突破される危険性はあります。生体情報は、個人の身体そのものを固有の情報としており、変わることがほとんどありません。 その情報が漏えいした場合、安全性の回復は非常に困難になります。

生体認証の登録

認証システムに生体情報を用いる場合もそう簡単ではありません。
たとえば、指紋を採取しデータ化する場合、採取時の微妙な位置、角度、体調などで都度データが変わります。 システムは、指紋採取時のサンプルデータからノイズや一時的な要素、不要なものをすべて排除し、数学的な比較に使用できる特徴だけを残そうとします。
これは「スケルトン」と呼ばれるもので、このスケルトンでさえも確率の観点からでしかオリジナルと一致できません。 もちろん採取回数を増やせばその分データパターンは得られ精度は向上すると思いますが、比例して管理側やユーザー側の負荷が生じてきます。
照合率のしきい値を決めるのも難しいのではないでしょうか。

認証登録

何度も指紋採取されるのも楽ではありません。

中程度のセキュリティシステムでは、10,000回のうち1回は他人を認証し、50回に1回は本人をブロックするのが普通と考えられています。

まとめ

いかがでしたか。 簡単ですが、指紋認証を例に生体情報のご紹介をしました。
生体認証については、まだまだ奥が深いです。私もわからないことだらけです。。

いまさら聞けない多要素認証(1)多要素認証の概要

みなさんこんにちは。日本情報システム株式会社 ICTソリューション部の進藤です。
今回から、多要素認証についてご紹介していきます。

概要

多要素認証とは、本人確認をする要素が複数であることをいいます。
まんまですね。
おそらく、ほとんどの方が経験しているものです。
身近な例では、ATMでお金を引き出す際に用いられています。お金を引き出すときに必要なものは、【キャッシュカード】と【暗証番号】の2つになります。キャッシュカードのみ、または暗証番号のみではお金は引き出せません。両方が揃って初めてお金が引き出せます。これが多要素認証です。

多要素認証(英:Multi-Factor Authentication)とは、利用者の本人認証時に「複数の要素を用いて確認する」ことをいう。一般的な認証には「ID」と「パスワード」の組み合わせが広く使われているが、何らかの方法でこれらを他人に取得されてしまうと、本人に「なりすまし」て、システムやネットワークにログインされてしまう危険性がある。そのため、IDとパスワード以外に、別の認証要素を組み合わせることで、なりすましのリスク低減を図る。
多要素認証 | キーワード事典 | マルウェア情報局
http://canon-its.jp/eset/malware_info/term/ta/006.html

認証の要素

本人確認の要素として、その人固有の情報(固有情報)でなければあまり意味がありません。
固有情報は、主に生体情報、所持情報、知識情報に分類され、これらを【認証の3要素】といいます。

生体情報 利用者自身の特性。
顔認識・指紋・声紋・虹彩・静脈認証など。
所持情報 利用者が持っているもの。
ICカード・ハードウェアトークン・携帯電話など
知識情報 利用者のみ知っている情報。
パスワード・秘密の質問・ワンタイムパスワードなど

3要素については次回以降詳しくご紹介しますが、 この3つの要素のいずれかを組み合わせることにより多要素認証となります。 ひとつの要素内で、複数回の認証を行えばその分セキュリティは担保されますが、 それは多要素認証とは言い切れません。パスワードとシークレットコードを打つような認証がありますが、これは「多段階認証」という言葉のほうが適切ですね。(最近ではどちらも同じ意味合いで使われているものなので、 そこまで気にして使い分ける必要もありませんが。。)
さまざまなシステムでは、いまだに「ID+パスワード」の組み合わせが用いられています。 どちらも本人が記憶してる情報(知識情報)を入力することで、認証します。万が一、「ID+パスワード」が他人に盗まれてしまった場合は、もちろん盗んだ人も認証に成功してしまいます。
「ID+パスワード」という要素(知識情報)に、指紋認証の要素(生体情報)を追加した場合、「ID+パスワード」が知られても、本人の指紋がなければ認証されることはありません。
多要素認証は、上記の例のように複数の要素を組み合わせてセキュリティレベルを上げるのが目的です。

画像

まとめ

いかがでしたでしょうか。
簡単に多要素認証についてご紹介しましたが、ご理解頂けたでしょうか。
次回は3要素のひとつである、「生体情報」についてより詳しくご紹介する予定です。

PAGE TOP