【認証技術.001】認証の仕組み①
佐藤@IT雑貨屋です。
ネットワークの普及に伴い、その上で動くサービスを利用する際、本人である事の真正性を確認する事が、とても重要になってきました。インターネットの黎明期では、ID/PASSによる認証で事足りていましたが、今ではその真正性を確認するために様々な技術が確立されています。
◆認証の種類
この認証の技術には、大きく分けて2種類あります。
①Authentication(二者間認証)
認証される者(被認証者)について、認証が必要な場所(認証場所)で直接認証を行います。通常のサーバログインなどのように、あらかじめ認証情報を認証場所で保管しておき、認証者からの情報をもとに認証の可否を決定します。
②Certification(三者間認証)
被認証者と認証場所とは別に、認証する者(認証者)が存在し、認証者が認証を行う方法です。認証者が信頼できる機関である必要があり、PKI(Public Key Infrastructure:公開鍵基盤)はこの仕組みを利用しています。
◆認証の対象
認証を行う時には、認証対象に応じて様々な方法を用います。以下に主な認証対象を示します。
①本人認証
システムなどを利用する人を認証します。人の認証とも呼ばれ、通常は単に認証というと、この本人認証を指します。
②機器認証
機器や機械など物を認証します。IoT(Internet of Things)におけるハードウェア認証等があります。
➂内容認証
データの内容などが正しい事を認証します。代表例として送信メッセージを認証するメッセージ認証などがあります。ハッシュ関数などで改竄を検知し、データの正当性確認を行います。金銭のやり取りでは送金内容認証などと明記する事もあります。
④時刻認証
時刻を加えて認証する事で、データの内容と時間の両方を認証します。そのデータが特定の時点で存在していた事(存在性)と、その時点からデータ改竄されていない事(完全性)を確認できます。
◆認証の三要素
本人認証を行う時に使用する要素には、大きく以下の3種類があります。
1.記憶:ある情報を持っていることによる認証
例)パスワード、暗証番号など
2.所持:ある物をもっている事による認証
例)ICカード、電話番号、秘密鍵など
3.生体:身体的な特徴による認証
例)指紋認証、虹彩、静脈認証など
この要素はどの要素が優れているというものではなく、それぞれ一長一短あります。そのために、3要素のうち2要素を組み合わせて2要素認証(多要素認証または複数要素認証)とする事が主流になってきています。
◆AAAフレームワーク
AAAフレームワークとは、以下の頭文字(A)で表わされるセキュリティ機能を設定する枠組みを言います。
・Authentication(認証)
正当なユーザであるか、アクセスを許可するかどうかを決定します。認証は「成功」か「失敗」の何れかとなります。
・Authorization(認可)
認証が成功したユーザに対して、データなどのリソースにアクセス建を与えるかどうかを決定します。またユーザごとに、どのリソースに許可を与えるのか、読み取り・書込みなどの権限を与えるのかを決定します。
・Accounting(課金)
ユーザのアクセス情報を収集する事です。どのくらいの時間ログインしたのか、どのリソースを利用したのかなどの情報をもとに、ユーザへの課金を管理します。
認証を行う場合、ユーザの認証とリソースなどへのアクセスは分けて考える必要があります。
◆デジタル署名
公開鍵暗号方式は、暗号化の目的以外にも利用する事ができます。本人の秘密鍵をもっている事が当の本人であるという証明になります。送信者の秘密鍵で暗号化し、それを受け取った受信者が、送信者の公開鍵で複合する事で、確かに本人だという真正性を確認する事ができます。
さらにハッシュ関数を組み合わせることで、データの介在を検出する事も出来ます。この方法をデジタル署名と言います。
このデジタル署名のアルゴリズムには以下のものがあります。
①RSA
公開鍵暗号方式のアルゴリズムであるRSAをデジタル署名に用いたものです。メッセージのエンコード(圧縮)を組み合わせてRSA-PSSがよく利用されています。
②DSA(Digital Signature Algorithm)
離散対数問題の困難性に基づくデジタル署名方式です。
➂ECDSA(Elliptic Curve Digital Signature Algorithm)
DSAについて、楕円曲線暗号を用いるようにしたものです。