全1672文字
PR

 「認証」に対して、何か複雑で難しいものだというイメージを持っている人は多いだろう。ネットワーク管理者の中には「できれば避けて通りたい」と思っている人もいるのではないだろうか。

 しかし、認証の基本的な考え方自体はごくシンプルだ。「通信しようとしている相手が本物かどうか」を確認する作業にすぎない。

 まず、通信相手が本物かどうかを確かめたい人(またはコンピューター)は、本物であるかどうかが不明な通信相手に対して「本物である証拠」を要求する(図1)。この要求を受けた通信相手は証拠を返信する。その証拠が正しいことを確認できれば通信相手が本物だと分かり、認証が完了する。

図1●認証の基本的な考え方はシンプル
図1●認証の基本的な考え方はシンプル
認証は、通信相手(人またはコンピューター)が本物かどうかを確認する作業だ。そのために「本物である証拠」を利用する。攻撃者はこの証拠を偽造することでなりすましを狙う。
[画像のクリックで拡大表示]

 その際に使う証拠は、偽造が難しいものであるほど安全性が高まる。もし攻撃者がこの証拠を偽造できれば、本物の通信相手になりすませてしまうからだ。

 認証の仕組みが複雑になりがちな理由の一端がここにある。偽造を防ぐために様々な仕組みを導入すると、どうしてもシステム全体の複雑度が上がってしまう。

対象は人かコンピューター

 認証の対象となる通信相手は、人の場合とコンピューターの場合がある(図2)。

図2●認証の対象となる通信相手
図2●認証の対象となる通信相手
サーバーがユーザーを確認する「ユーザー認証」、サーバーがデバイスを確認する「デバイス認証」、ユーザーがサーバーを確認する「サーバー認証」などがある。この特集では主にユーザー認証を取り上げる。
[画像のクリックで拡大表示]

 通信相手が人の場合の代表例が、サーバーがユーザーを確認する「ユーザー認証」である。ユーザーがサーバーやサービスにアクセスしたときに、正しいユーザーかどうかを確認するものだ。単に「認証」と表現した場合はユーザー認証を指すことが多い。

 一方、通信相手がコンピューターの場合は、サーバーがデバイスを確認する「デバイス認証」やユーザーがサーバーを確認する「サーバー認証」などがある。

 デバイス認証では、ユーザーがサーバーへのアクセスに利用しているパソコンやスマートフォンといったデバイスが正しいかどうかを確認する。

 サーバー認証では、アクセスしているサーバーが正しいサーバーかどうかをユーザーが確認する。攻撃者は偽のサーバーを用意して、ユーザーの情報を盗んだりウイルスに感染させたりするといった攻撃を行う場合がある。サーバー認証でそうした攻撃を防ぐ。