会員サイト構築の記事
ARTICLE認証機能とは?認証機能の仕組み、導入メリットや実装方法と注意点
認証機能は、主としてWeb上のサービスを正規のユーザーが安全に利用するための認証の仕組みです。ここでは、その実現方法や導入するメリット、導入方法とその安全性について述べると共に導入時の注意点について解説していきます。
目次
認証機能とは?
認証機能について説明すると共に認証を行う要素について解説していきましょう。
認証機能とその目的
認証機能とは、システムへの不正なログインを回避し登録された利用者のみが安全に利用できるような仕組みの提供を目的として、ログインする際にユーザーIDとパスワードをはじめパスコードや生体情報などの各要素を利用して対象のアクセスの正当性を確認する行為のことを指します。
認証を行うための要素
システムへのログイン時などの認証の手段をいくつかの要素に分類することが可能です。
知識要素
知識の要素とは、人の経験や知識に基づき生み出された情報のことをいいます。「小学校のときの最も印象深い先生の名前」「好きな食べ物」「行ってみたい観光地」などがそれにあたります。
しかし知識の要素を認証に使う場合、「子供の誕生日」のように第三者が容易に類推できてしまう数字列や文字列は使用を避けなければなりません。
所有要素
所有の要素とは、スマホやタブレット、PCやオンラインバンキングなどで使われるセキュリティトークンなど、自身で所有するものを指します。スマホやタブレットの電話番号宛にSMSメッセージにより文字列や数字列を送り、この情報を認証画面に入力することにより認証を行うなどの使い方がされます。
生体情報要素
生体情報の要素とは、顔や指紋、静脈、虹彩、声紋など人それぞれ、異なる特性を持つ生体情報を指します。これらの生体情報を使うシステムとして、一例を挙げると入室管理システムが挙げられます。あらかじめデータベース上に登録されているすべての入退出許可者の顔情報と、今、ゲートを通過して行こうとする者の顔情報を比較し瞬時に入室許可の可否を判断しなければなりません。データベース上のデータ量が多ければ多いほど、判定に時間がかかります。従来はコンピュータシステムの処理スピードから、実用的な時間内で判断が可能な人数には限界があり、一部の限定された環境でのみ生体情報は認証手段として利用されていましたが、現在ではコンピュータの処理速度の向上とコストの削減により、次第に多くの場所で採用されつつあります。
認証機能の仕組み
認証機能を実現するための方法はいくつかに分類できます。一要素による認証、二要素による認証、多要素による認証、二段階認証です。
一要素による認証はその名の通り単一の要素のみにより認証を行う、単一ステップの方法でユーザーIDとパスワードによる認証がその代表例です。
二要素による認証は二要素認証と呼ばれ、たとえばユーザーIDとパスワードによる認証に加え、認証三要素のうちの知識の要素を除く所有の要素または生体情報の要素による認証を+1回(段階)行い、合計で2回(段階)の認証を行わせる認証方法です。つまり2回の認証を行い、それぞれの認証は異なる認証要素を使います。仮に2回の認証を同じ認証要素で行った場合、この認証方法を二段階認証と呼びます。二要素認証は二段階認証に含まれます。
多要素による認証は多要素認証と呼ばれ、合計で2回(段階)以上の認証を行わせる認証方法です。従って、二要素認証は多要素認証に含まれます。
二段階認証と多要素認証について
高度な認証の仕組みとして二段階認証と多要素認証について述べ、このような高度な認証が求められる背景について解説していきます。
二段階認証
二段階認証とは2回に分けて認証を行い、これにパスして初めてサイト内のサービスが利用できるような仕組みとして使われる認証方法です。二段階認証の定義に照らせば、単純に2回の認証を行えばいいので異なる2通りのユーザーIDとパスワードを要求しても二段階認証になります。
多要素認証
多要素認証とは認証要素の異なる2種類以上の認証方法を組み合わせて認証を行う方法です。従って、二段階認証と同様に、知識要素を利用したユーザーIDとパスワードを1回目の認証とした場合、2回目の認証は、所有要素もしくは生体情報の要素を利用した認証方法を使います。ワンタイムパスワードやパスコード、生体情報を用いた認証方法などです。異なる要素の認証方法を組み合わせることで、ハッキングされる可能性を大きく低下させることが期待できます。
多要素認証とは?二要素認証との違いや安全性と構築時の手順や注意点
高度な認証が求められる背景
企業のサイトへ外部から侵入され企業内の各種設計情報や秘密情報が盗み出された、などの報道に接する機会が増えています。また、企業が運営する顧客向けサービスを展開する各種サイトにおいて顧客の個人情報を大量に抜き取られた、などのニュースに接することもあります。
2年ほど前に、大手通信キャリアが展開するネット口座がハッキングされる被害にあったとのニュースがありました。当初は「二段階認証を行っていなかった」ことが原因であると言われていましたが、よく調べていくと「二段階認証は行われていた」ことが判明しました。このことから、必ずしも複数回の認証を行えば認証の強度が上がるわけではなく、強度を高める認証方法を選択しなければならないことが分かります。認証の強度を高めるためには、異なる認証要素を組み合わせて認証する二要素認証もしくは多要素認証が効果的なのです。不幸にして1回目の認証を突破されてしまっても、異なる認証要素による2回目の認証まで破られることは現実的にはありえないほどの低確率に抑え込めるようになるからです。
認証機能を導入するメリット
各種SNSやECサイト、情報提供サイトなどWeb上にはさまざまな目的のサイトが存在し、その種類や数はどんどん増えています。ユーザーはこれらのサイトを利用して、好きなときに必要な情報を調べ、サービスを利用し、物品を購入することが極めて容易にできるようになっています。一方、サイト上で管理されているユーザーの個人情報が流出してしまい、その数は〇〇万件といったリアルな情報が生々しく報道されることも多々あります。このような情報を目にすると、利用者は「あそこのサイトは利用するのはやめよう」とか「やはりネット上でクレジットカード情報を入力するのはリスクがあるので物品購入は極力避けるようにしよう」のようにネットの利用に対してブレーキがかかります。このような状況に対してネット上のサイトの各主催者は、「できるだけしっかりとしたユーザー認証を行わなければならない」との気持ちを一層強く持つようになります。
このような社会的な事情を背景として、ネット上における認証機能やこれを実現するシステムへの感心が強くなっています。認証方法は従来からあるユーザーIDとパスワードによる一段階の認証が最もポピュラーですが、これのみですとセキュリティ的に不安が残ることからより安全性の高い認証方法が求められています。そこで、よく利用されている方法は、一段階目の認証は、ユーザーIDとパスワードを利用し、二段階目の認証は、異なる認証要素として所有要素や生体認証要素を使う認証を組み合わせます。たとえば、あらかじめ登録されたメールアドレス宛に、認証管理サーバーから認証用のURLを送りつけます。スマホやタブレット、PCにてメール内に貼り付けられたURLをクリックすることにより認証を完了する方法です。この二段階目の認証方法は所有要素による認証方法です。以上の通り、従来のユーザーIDとパスワードのみによる認証に比較して、安全性を大きく強化することが可能となる二要素認証(または多要素認証)が利用されています。
認証機能の導入と実現手段
認証機能の導入とその実現手段について解説していきましょう。
認証機能の導入
認証機能を使用する対象となるサービスと認証機能を導入する手順について解説していきましょう。
認証機能の対象サービス
認証機能が必要となるWeb上のサービスは、企業がそれぞれの事業運営を支援するための各種業務システムや一般ユーザー向けに各種サービスを提供するサイトにおいてもユーザーへの限定情報やサービスを提供するなどによる囲い込みやユーザーの個人情報やEC機能による決済機能を有するサイトにおいてはユーザーのクレジットカード情報を扱うことなどから多くのサイトにおいて認証機能は必要とされています。中でもユーザーのクレジットカード情報や繊細な個人情報を扱うサイトにおいては、二要素認証や多要素認証などによる認証手段の強化が必要とされています。
認証機能の実現方法
各システム利用時における認証手段はソリューションベンダーから提供されています。これらのソリューションを活用し、ソフトウェアからサーバーまですべてをベンダーに提供してもらう方法がクラウド型ソリューションです。ユーザー企業はシステム側から、認証処理が発生するタイミングでベンダーの提供するソリューションで提供される認証処理APIを呼び出すことによりベンダーのサーバー上における認証ソリューションが実行されます。実行されるとサーバーからの要求に基づき、利用者が認証キーを入力し、これをサーバー内で認証の可否が判断され、その結果が画面上にフィードバックされる流れになります。以上の通り、ユーザー企業側でも最低限のポーティング作業が発生しますが、簡単な対応で認証機能のシステムへの組み込みが可能です。このような作業であっても困難である場合、この部分も含め、ベンダーや第三者である委託業者に開発を依頼する選択肢もあります。
もう一つの方法としてオンプレ型開発があります。自社で認証機能用のサーバーおよびその上で動かすソフトウェアも含め、すべて自社で用意する方法です。この場合ソフトウェアは自社開発とするかベンダーのパッケージソフトウェアを利用するかの選択肢があります。自社ですべて開発する方法であれば、自社の要求仕様に最も近いソリューションとして作り上げることが可能ですが、システム構築の技術力や経験、開発期間が許容できるか、開発人員をアサインできるかなどが可能でなければなりません。
以上の通りクラウド型およびオンプレ型開発を含め、それぞれの利点や欠点を理解した上で、最も適した開発方法を選択する必要があります。
認証機能の実装方法
認証機能の主な実装方法について解説していきましょう。
パスワード、ワンタイムパスワード
パスワードは一般的にユーザーIDとペアで認証手段として用いられる最もポピュラーな手段です。知識要素を使用した方法で、運用方法をしっかりと取り決めた上で利用することが必要です。安易な文字列や数字列の使用はハッキングの原因ともなりかねません。〇文字以上の文字列、英数字や大文字と小文字を最低1回以上は使用する、設定したパスワードは〇カ月以内に変更する、過去に使用したパスワードは使用しない、などのルールにより容易にハッキングされないような運用上の工夫が必要です。
ワンタイムパスワードは、銀行などのオンラインバンキングなどでよく使用されます。セキュリティトークンと呼ばれるUSBメモリスティックと同じような形状をしていて、表面に数桁の数字を表示できるLCDが取付られたものです。一定時間毎に数桁の乱数を発生させ、これをシステムの認証画面へ認証キーとして入力することによりシステムの利用が許可される仕組みです。
パスコード
パスコード認証を行う場合、スマホやタブレット端末などの電話番号をあらかじめ認証システムに登録しておきます。
一般的にパスコード認証の1段目の認証はユーザーIDとパスワードが使われ、これにパスすると二段目の認証手段としてパスコードが使われます。ユーザーIDとパスワードの認証にパスした後、システムは登録されている電話番号宛にショートメッセージ(SMS)を送信します。このメッセージの中に数桁のコードを入れて置きます。コードを受信したユーザーは、認証システムが要求する認証画面に入力することにより認証に成功します。
乱数表認証
ユーザー毎に異なる乱数表を配布します。乱数表には2次元のマス目の中に乱数が埋め込まれています。認証システムにて指定されたマス目の位置の数字を認証キーとして入力する作業を数回繰り返して行うことで認証処理が走り、入力されたすべての文字列に間違いがなければ認証に成功します。乱数表は銀行のオンラインバンキングにて、比較的よく利用されています。
デバイスを利用した認証
USBメモリスティックと同様の形状をしたデバイスをPCに接続します。接続インターフェースはUSBもしくはBluetoothが一般的です。このデバイスを所有していることが正規のユーザーである証であり、システムの利用開始が許可されます。内部処理的には、PCと接続されたデバイスが認証システムと通信し、認証処理が走り、システムに登録されたデバイスであるかのチェックを行い、それが確認されると認証に成功する流れです。
生体情報を利用した認証
人それぞれの生体情報として顔や指紋、静脈や虹彩などを利用した認証方式です。これらの生体情報は、どれをとっても、全く同じである人はいないとの特徴を利用しています。
人の顔は、大きさや形とそれぞれのパーツを含めた全体構成など人それぞれ異なります。よく似た親子や双子であっても、細かく見ていけば違いが必ずあるものです。従って、万人を識別することが可能であることから認証手段として使われます。
指紋は人それぞれ異なる形であることから、比較的容易に確認可能な生体情報として最も古くから利用されている認証方法です。従って、技術的にも成熟しているため、比較的安価に実現可能である特徴を有しています。
静脈はその形状や構成は人によってそれぞれ異なります。また体の表面に出ていないため故意にこの情報を変えることは不可能であることから、生体認証の方法として使われています。
虹彩は、瞳孔の周辺にあるしわで左右の目でその形状が異なります。静脈と同様に体の表面に出ていないため、意図的に虹彩情報を変えることは不可能であることから、生体認証の方法として使われています。
認証機能のセキュリティ面における安全性
最もポピュラーな認証方法はユーザーIDとパスワードによるものです。しかしこの方法ではセキュリティ的な不安が残ることから運用面でカバーしていますが、それでも安心とはいえません。そこでより安全な認証方法とするために二要素認証や多要素認証を使います。ユーザーIDとパスワードに加え、知識要素以外の認証方法として所有要素を利用したパスコード、ワンタイムパスワードや生体情報要素を利用した顔認証、指紋認証、静脈認証、虹彩認証などを二要素目の認証要素として併用することにより認証の強度を高め、安全な認証方法とするのが一般的です。
ログイン認証の仕組みとは?導入の必要性やセキュリティについて詳しく解説
認証機能導入時の注意点
認証機能を導入する際の注意点について解説していきましょう。
認証要素毎の注意点
認証要素毎の注意点について解説していきましょう。
知識認証
人の経験や知識から生み出された数字列や文字列を利用する知識認証では、安易な文字列を使い悪意ある第三者にハッキングされることのないように、しっかりとした運用上のルールを決めたうえで使用しなければなりません。
所有物認証
自ら保有するスマホ、タブレット、PCや銀行から貸与される乱数表やセキュリティトークン、認証用専用デバイスなどを利用する所有物認証は発生させる文字列や各種認証キー情報は、十分に複雑で任所強度も安心できるレベルと考えられます。しかしこれらは、あくまでも「モノ」であるため紛失してしまうと認証できなくなってしまいます。また、これを悪意ある第三者に悪用されると簡単にシステムを利用されてしまいます。従って、これら所有物の管理をしっかり行うことが必須となります。
生体情報認証
人それぞれ異なる特徴を有する生体情報として顔、指紋、静脈、虹彩の各情報を使用する生体情報認証は、第三者がなりすましてシステムに入り込むことは、実質的に不可能と考えられます。それほどの強度を持った認証方法です。しかし、ハンディキャップを持った人がこれらの生体情報を使えないケースが想定されます。このような状況に対応するために、代替の認証手段を用意しておくことが必須となります。
異なる要素の認証方式を使う
認証の強度を上げるためには複数回の認証を行うだけでは不十分です。複数回の認証手段のそれぞれにおいて使用する認証要素を変えなければなりません。これによって、ハッキングの難易度を一気に上げることが可能となります。二要素認証もしくは多要素認証を使用することが有効です。
申請や応募受付の電子化・システム化ならWebフォーム作成システム「SPIRAL®」
当社のご提供する 「Webフォーム作成システムSPIRAL®」は、かんたん操作で自由自在にフォーム作成が行える定額制のWebフォーム作成システムです。 申請や応募の受付だけでなく、その後のステータス管理や応募者用マイページ作成など、受付から管理までをWebシステム化することができます。
受付フォームは画像やPDFなどのアップロードにも対応。拡張子指定や容量制限、入力制限もできるので、自社の要件にあったフォームを構築することができます。また、デザインはテンプレートからの選択の他、HTML、CSS、JavaScriptを利用してカスタマイズも可能です。
申請者用・管理者様にそれぞれマイページを作成し、ステータス管理や申請内容の情報変更をWeb上で行うこともできます。
書類申請、出願・公募受付、補助金・助成金申請、契約加入・更新受付、キャンペーン受付、問い合わせ受付など様々な業界・用途・シーンで延べ11,000社以上のご利用実績がございます。
サービスの詳細については「Webフォーム作成システムSPIRAL®」のページをご覧いただくか、サービス導入をご検討中の方はこちらからぜひお問い合わせください。
まとめ
認証機能の実現方法や導入するメリット、導入方法とその安全性について述べると共に導入時の注意点について解説してきました。ECサイトや各種SNSサイトなどを含め、各種サービスの不正な利用を抑止するために認証技術の高度化や多岐化が今後も進んでいきます。それぞれのシステムに応じてコストや使い勝手を踏まえ、最適なソリューションを選択していきましょう。