公開日:2007年9月26日
独立行政法人情報処理推進機構
セキュリティセンター
本ページの情報は2007年9月時点のものです。
記載の資料は資料公開当時のもので、現在は公開されていないものも含みます。
アクセス制御は、許可された人物のみがデータやプログラムにアクセスできるようユーザのシステム利用に一定の制限をかける仕組みである。これはシステムのセキュリティ確保の目的で積極的に構築されるべき機能であり、重要なものである。アクセス制御の設計・実装に不備があったり機能そのものが欠如していると、システムおよびその中のデータが侵害を受ける。
アクセス制御は、本人認証とアクセス認可の2段階からなる
本人認証は、アクセスしてきている人物がどのユーザであるかを識別し、その人物が本人であることを確認する手続きである。
本人認証には複数の方式があるが、どの方式の場合も次のふたつのものをユーザから受け取って判定を行う。
本人認証には複数の方式がある。
よくある本人認証方式として、ユーザIDと固定パスワードを用いる方式がある。固定パスワードとは、本人認証手続きのたびに値が変化することのないパスワードのことである。
固定パスワードには、次のようなパスワード破りの手口およびそれらへの対策が知られている。
バリエーション: 辞書攻撃、総当たり攻撃
→ 対策:アカウントのロック
→ 対策の迂回手口:
リバース攻撃=パスワードを固定して、ユーザIDを次々と変えてログインを試みる
→ 対策:パスワードの変更。
自身のログイン履歴を参照可能にして他者の使用に気づけるようにする
→ 対策:固定パスワード以外の認証方式を使う、あるいは併用する
→ 対策:登録簿上のパスワードはハッシュ値あるいは暗号化された値にする
→ 対策の迂回手口:ハッシュ値破り
→ 対策:ユーザ登録簿を隠す
パスワードに毎回同じ値を用いたとしても、ネットワーク上を毎回同じ認証データが流れないように工夫された方式。
サーバがチャレンジと呼ばれるデータをクライアントに送り、クライアントはユーザが入力したパスワードとこのチャレンジの値に特定の演算を施してレスポンスをサーバに返す。
本人認証手続きを行うごとに異なるパスワードを使い、二度と同じものを使わない方式。パスワードを生成するトークン(小さなデバイス)やソフトウェアモジュールを使う。ワンタイム・パスワードには次のようなバリエーションがある。
SSL、あるいはTLSを用い、サーバ側、クライアント側ともディジタル証明書を使う方式。
生物学的特徴を測定し数値化するデバイスを使い、そこで得られるパラメータを本人確認に用いる方式。
ユーザがいったん本人認証に合格したら、合格したことを示すデータ──ここでは「認証結果データ」と呼ぶことにする──を十分安全に扱う必要がある。
認証結果データは、ユーザ本人や第三者の手の届かない、安全な場所に保持することが重要である。
認証結果データをユーザによる閲覧・書き変えの可能な記録媒体に置いていると、他のユーザを示す値への書き変えを行ってなりすましを行う機会を与えることになる。
ソフトウェア・システム内に安全に認証結果データを保持できる場合は、その値としてユーザIDや整数値等の単純な値を使い、それをそのまま置いておくことができる。しかし、認証結果データをユーザの目に触る場所に置かざるをえない場合、次のような考慮が必要となる。