【高校情報1】認証と認可 情報セキュリティ・FIDO・SSO・MAC・二要素認証【情報処理技術者】
■■はじめに■■
認証技術はいろいろありますが、認証とは? から説明動画作成しました。
サイトごとにパスワードを変えるとかは、(管理観点で)現実的にかなり厳しくなってきているので、FIDOなどこれからのパスワードレス時代の要素も取り込みました。
セキュリティ関連は、数年前の常識が今の非常識になるので、常に最新情報の把握が必要です。
■■解説動画■■
■資料ダウンロード■
情報教育の底上げが目的なので、資料を修正して、
学校・塾(営利目的含む)の授業等で利用して頂いて問題ありません。
私への連絡不要ですが、利用する際には、
YouTubeチャンネル・情報Ⅰ動画教科書・IT用語動画辞典を
紹介してもらえると嬉しいです。
https://toppakou.com/info1/download/99_資料/13_認証認可.pptx
■■文字おこし■■
今日は認証と認可について試験で問われるこのような技術用語について体系的に説明します。
まず、「認証」と聞いて、IDとパスワードを入れてログインすることを思い浮かべる方が多いと思います。
認証とは、人に限らず、対象の正しさを証明や確認する行為のことです。
ここでいう対象とは、人だったり、サーバーだったり、クライアントパソコンだったり様々です。
そして対象を特定する方法として、大きく3種類があります。
知識情報
生体情報
所持情報 です。
それぞれについて説明ししていきます。
まず、知識認証は、その情報を知っていればログインできる認証になります。
代表的な例としてIDとパスワードを知っていればログインできるサイトが多いですが、このIDとパスワードの認証も知識認証の代表例になります。
次に生体認証(バイオメトリクス認証)です。
生体認証という言葉は有名ですが、身体的特徴や行動的特徴(癖)の情報を用いて行う認証のことになります。
身体的特徴の具体的な例としては、指紋や顔、DNA、目の網膜、虹彩、音声などがあります。最近は体臭の科学的な成分構成をもとに行う認証も研究されているようです。
行動の特徴についての具体的な例としては、筆跡、まばたき、歩行などがあります。
次に所持認証です。
本人しか持っていない物で認証するというものです。
最近はスマートフォンの普及率が上がったことにより、とあるサイトにログインする場合は、スマートフォンのショートメッセージサービスであるSMSに認証コードを送って、その認証コードを入れさせるというパターンが増えています。
このコードは1回しか使えない、使い捨てパスワードの役割をします。この1回限りのパスワードのことをワンタイムパスワードどいいます。
現実の世界では、家に入るためには鍵が必要ですよね。
逆に言えば、鍵を無くしたら本人でも家に入れなくなるし、盗難の場合は第三者が家に入れてしまうリスクもあります。
最近問題になっているのが、知識認証で用いられるパスワードの使いまわしです。
とあるサイトAのIDとパスワードを他のサービスでも使いまわしている方は実際のところ多いと思います。
仮にサイトAのIDとパスワードが漏洩した場合、攻撃者はいろんなサイトでその組み合わせを試して不正アクセスに成功するパターンも増えてきています。
その対策として、2要素認証というものがあります。
先ほど説明した知識、生体、所持の2つの要素を組み合わせる認証になります。
例えば、まず知識認証のIDとパスワードを入力した後、所持認証としてスマートフォンに認証コードを送ってその認証が通ったら初めてログインできるというものです。
2要素認証は同じ要素内では2要素となりません。
例えば指紋と虹彩2つの認証でも、同じ生体認証の範囲なので2要素にはなりません。
ただ、似た言葉で、二段階認証というものがあります。
これは、二つの段階を経て認証を行うことで、これはID、パスワードによる認証と誕生日など同じ要素内でも使われる認証になります。
最近は、色んなWebサービスがあふれているから、パスワードを一人で数十管理して忘れてしまう方も多いと思います。
ある意味パスワード地獄ですね。
そんなパスワード地獄の救世主がFIDOという技術です。
FIDOは簡単に言えば、パスワードレスでサービスにログインできる仕組みで最近はそれに対応したスマートフォン端末等も増えてきています。
FIDOでは公開鍵暗号方式による電子署名を利用します。
事前準備として
FIDO対応認証機器は、公開鍵と秘密鍵の鍵ペアを生成します。
そして認証サーバ側に公開鍵を登録します。
――――
サービスを利用したいユーザは認証サーバーにログイン要求をします。
そしてサーバ側はランダムな文字列のチャレンジコードを送信します。
そして、認証器は生体認証などで本人を認証します。
認証OKの場合は、チャレンジコードを秘密鍵で電子署名して認証サーバに送付します。
認証サーバは、事前準備時に受け渡された認証機器の公開鍵で復号し自らの送ったチャレンジコードと突き合わせ一致すれば、ログインを許可します。
ここでFIDOの利点は
利便性と安全性を両立する生体認証が使えるということ
生体認証がOKなら、送られてきたチャレンジコードを秘密鍵で暗号化するので、生体情報自体は通信経路上を流れないというメリットがあります。
FIDOの普及が進んでくると、パスワード地獄脱却の日が近いかもしれません。
混同しやすい点として
FIDO自体はパスワードレス認証を実現する仕組みでその上に生体認証やハードウェア認証、文字認証などがのっているイメージで、FIDOと生体認証は別レイヤーになります。
もう一つ覚えておいてほしい用語にシングルサインオン 略してSSOがあります。
これは、一度のユーザ認証処理によって独立した複数のサービスが利用可能になるものです。
例えばサービスAの認証が通った場合は、サービスBやCについてユーザは再度認証する必要がなく他サイトのサービスを利用できます。
ユーザーのアカウント情報を格納するサーバーを認証サーバと言います。
Webサービスの認証フローの代表例としては認証サーバーとしてデータベースサーバを使うことが多いです。
ユーザーはブラウザ経由でWebサーバにアクセスして、Webサーバ自体はユーザ情報は保持しておらず、認証サーバであるデータベースサーバにIDとパスワードの情報を問い合わせ認証処理を行います。
無線LANの場合はIEEE802.1Xという認証規格があります。
クライアントパソコンやスマートフォンは無線LANアクセスポイントに接続する時に認証情報を交換します。この時の認証情報を交換するプロトコルをEAPといいます。
そしてアクセスポイントは認証サーバのRADIUSサーバとの間で認証情報を交換します。
この時の認証情報を交換するプロトコルをRADIUSといいます。
今は、サービスを利用する側の認証について説明しましたが、サービスを提供する側の認証もあります。
以前の動画で詳しく説明していますが、HTTPS通信でサーバ認証を行います。
HTTPSではサーバは通信の際に、第三者機関が発行したサーバ証明書をクライアントに渡し、クライアント側はそのサーバ証明書が本当に信用できるかを検証しています。
ブラウザから警告が無ければ、そのサーバの認証が通ったということになります。
その他の認証として、メッセージ認証があります。
やり取りするデータのことをIT用語でメッセージと言います。
つまり、メッセージ認証はデータが途中で改ざんされていないかを確認できるものになります。
まず、メッセージの送信側は送るデータからハッシュ関数を用いてハッシュ値を求めます。
このハッシュ値をメッセージ認証コードを略してMACといいます。
そして、メッセージとMACを受信側に送付します。
受信側は受信したデータからハッシュ関数を用いてハッシュ値を求めます。
そのハッシュ値と送られてきたMACを突き合わせて、一致すればメッセージが改ざんされていないということが分かります。
ただこの方式にはリスクがあります。
通信経路上に悪意を持った人がいて、データを改ざんし、その改ざんしたデータに対してMACを求めそれも含めて送付した場合。改ざんされたデータをもとに作られたMACなので、送信先の検証時には改ざんされていないということになってしまします。
この問題点を解決するためにセキュリティ向上させた技術がHMACです。
事前準備としてMAC鍵と呼ばれる、共通の鍵を何らかの方法で共有しておきます。
この鍵は秘密情報なので漏らしてはいけません。
送信側はMAC鍵と送信したいデータを合わせた形でハッシュ関数に入れてハッシュ値を求めます。この時のハッシュ値をHMACと言います。
そしてHMACとメッセージを合わせて送ります。
受信側もMAC鍵を持っているのでメッセージとMAC鍵を合わせた形でハッシュ値を求めます。その値が一致すれば改ざんされていないことが分かります。
この方法だと通信経路上で悪意を持った人が改ざんしたとしても、MAC鍵は持っていないので正しいHMAC値が算出できません。
さらに、通信相手しか持っていない鍵とメッセージでハッシュ値を求めているので、送信相手が本物であるという証明も一緒にできます。
認証について説明しましたが、混同しやすい用語に認可があります。
認証は、対象の正しさを証明や確認する行為のことでしたが、認可は何かしらの権限や権利を与えることになります。
例えば、ATMの例で考えていきましょう。
まず、キャッシュカードと暗証番号で本人確認つまり認証が行われます。
ただ、一日の利用限度額は人によって異なりますよね。いくらまで下せるかの権限を与えることが認可になります。
同じWebサービスでも人によって、使えるサービスが違いますよね
認証と認可の違いについて押さえておきましょう。
今回は認証、認可についての概要を説明しました。
さらに掘り下げて個々の技術を知りたい方はIT用語動画辞典をご活用ください。
特にまさるの勉強部屋のまさるさんが出している、FIDOの動画は見ごたえがあります。
最後までご視聴ありがとうございました。