認証
認証は、コンピュータシステムを利用する個人が、本当に利用する権限を保持しているか否かを確認するために行われます。システムでは多くの場合、ネットワーク越しに認証を行うため、方法を工夫しなければなりません。
そこで多く利用されるようになったのが、知識による認証で一般的にはパスワードとして実装されます。
固定式パスワード方式
ユーザIDとそれに対応するパスワードを入力させ、本人であるか否かを認証するパスワード認証方式です。簡便である一方、一度パスワードが漏れてしまうと利用に耐えなくなります。
パスワードを不正に取得しようとする攻撃には次のようなものがあります。
辞書攻撃
辞書にある単語を片っ端から入力し、パスワードを割り出す手法。対策として、辞書にある単語は使わずランダムな文字列でパスワードを設定するなどの方法がある。
ブルートフォース攻撃
総当り攻撃とも呼ばれ、考えられるすべてのパスワードを入力し、ログインを試みる手法。対策として、ログインの試行回数に制限を設けるなどの方法がある。
チャレンジレスポンス認証
ネットワーク上でパスワード認証を利用する際の脆弱性を解消するために登場したのがチャレンジレスポンス認証です。
チャレンジレスポンス認証の手順
- クライアントはサーバにユーザIDを送信し、認証を要求する。
- サーバはチャレンジコード(使い捨ての乱数)を返信する。
- クライアントはチャレンジコードとパスワードからハッシュ値を生成し、サーバに送信する。
- サーバはチャレンジコードとパスワードからハッシュ値を生成し、クライアントから受け取ったハッシュ値と比較する。ハッシュ値が一致していればクライアントを認証する。
チャレンジレスポンス認証では、チャレンジコードとハッシュ値だけがネットワーク上を流れるため、盗聴に対して安全な認証方法であるといえます。
ワンタイムパスワード
ワンタイムパスワード(OTP : One Time Password)方式は、ログインのたびに生成される使い捨てのパスワードを使う方式です。
時刻を利用する時刻同期方式や、チャレンジレスポンス方式を利用したS/KEY方式などが実用化されています。
シングルサインオン
シングルサインオンは、ユーザ認証を一度だけ行うことで、許可された複数のサーバへのアクセスについても認証する技術です。
Cookie型
サーバは認証のための情報を生成してクライアントに送信する。クライアントはこれを保存し、他のサーバへはこの認証情報を自動的に送ることで、認証を受けることができる。
リバースプロキシ型
ユーザはリバースプロキシサーバにアクセスし、認証を受ける。ユーザはリバースプロキシサーバを通じて他のサーバに接続するため、各サーバの認証はリバースプロキシサーバが自動的に代行する。
SAML型
アプリケーション連携を行うためのXMLの仕様。利用するサービスがSAMLに対応していれば、HTMLなどを用いて複数のサービス間で認証情報が自動的にやり取りされる。
バイオメトリクス認証
バイオメトリクス認証は、個人ごとに異なる身体的・行動的特徴を利用して認証を行う技術です。代表的なものとして、人間の指紋が個々人で異なることを利用した指紋認証があります。
この他にも、声を利用した声紋認証、虹彩の紋様を利用した虹彩認証などがあります。
その他の利用者認証方法
リスクベース認証
普段と異なる環境(IPアドレス, Webブラウザなど)からの認証要求に対して追加の認証(秘密の質問など)を行う方法。
Kerberos方式
最初にIDとパスワードで認証を行い、以降はチケット(ユーザを識別し、アクセスを許可する暗号化されたデータ)を使って認証する。シングルサインオンに標準対応している。
2要素認証
パスワードなどの"知識"による認証、ICカードなどの"所有"による認証、指紋などの"特徴"による認証の3つの中から2つを組み合わせて認証を行う。
CAPTCHA認証
歪めたり一部を隠したりした画像から文字を判読させ入力させることで、人間以外による自動入力を排除する。