in

中小製造業へ向けた情報セキュリティ講座_その8_認証について①

はじめに

第八回~第十回は、認証についてお話できればと思います。
今回は、パスワード認証とワンタイムパスワードについてお話します。

アクセスコントロール

アクセスコントロールとは、ユーザーの「識別」「認証」「権限管理」を行うことを指します。
このアクセスコントロールを実装しているシステム構成を、認証システムといいます。

識別

どのユーザーがアクセスしようとしているのか認識することを、識別といいます。
ユーザーの識別を行うことで、システム利用の可否や、機能・データに対する権限を判断します。
一般的には、ユーザーIDなどが識別に用いられます。

認証

ユーザーが間違いなく本人であり、正当な利用権限を持っているかを確認するための行為を、認証といいます。
認証の方法には、本人しか知りえない情報を用いる知識による認証や、指紋や声紋など固有の生体情報を用いるバイオメトリクス認証があります。

権限管理

識別されたユーザーがアクセスして良いデータ・良くないデータを区分し、アクセスしてはいけないデータにアクセスできないようにユーザーの権限を設定してコントロールすることを、権限管理といいます。

色々な認証手法

ここからは、色々な認証の手法について紹介していきます。

パスワード認証

ユーザーIDとパスワードを組み合わせたものが、パスワード認証です。
システムへの実装が簡単なため、多くのシステムで利用されています。

クリアテキスト認証

古くからあるパスワード認証方式で、ログインする際にサーバーに対して平文でユーザーIDとパスワードを送信します。
もともとは通信回線上での使用を想定していない方式であるため、ネットワーク上の盗聴に対する配慮がなく、現代ではセキュリティ強度の低いモデルであるといえます。

チャレンジレスポンス認証

クリアテキスト認証の脆弱性を解消したのがチャレンジレスポンス認証です。
チャレンジレスポンス認証では、以下の手順を踏んで認証を行います。

  1. クライアントがユーザーIDを送信する
  2. サーバーがチャレンジコードをクライアントに送信する
  3. クライアントはパスワードとチャレンジコードからハッシュ値を生成し、サーバーに返信する
  4. サーバーは、サーバー側で生成したハッシュ値と返信されたハッシュ値を比較する

このような手順を踏むことで、ネットワーク上にはチャレンジコードとハッシュ値だけが流れることとなり、パスワードを流さずにすみます。
チャレンジコードは使い捨てのため、たとえ盗聴されたとしても次回のログイン時には使用できず、不正アクセスを実行することはできません。

ワンタイムパスワード

ワンタイムパスワードとは、ログインするごとにパスワードを変更する方式です。
パスワードそのものを使い捨てにするため、万が一パスワードが漏洩した場合でも、そのパスワードを不正アクセスに利用することができません。

S/KEY

S/KEYは、チャレンジレスポンス認証を応用したもので、シード・シーケンス番号を利用する点が特徴です。

  1. (事前準備)クライアントがパスフレーズを登録する
  2. (事前準備)サーバー側で、パスフレーズとあわせてシーケンス番号を登録する
  3. クライアントがユーザーIDを送信する
  4. サーバーがチャレンジコード(シーケンス番号・シード)をクライアントに送信する
  5. クライアントはパスフレーズ+シードを(シーケンス番号-1)回ハッシュ処理することでワンタイムパスワードを生成し、サーバーに返信する
  6. サーバーは、サーバー側で(シーケンス番号)回ハッシュ処理したワンタイムパスワードと、返信されたワンタイムパスワードをもう1回ハッシュ処理したワンタイムパスワードを比較する

S/KEYはチャレンジレスポンス認証と比較して、以下の点でセキュリティ強度が向上しています。

  • 最後のハッシュ処理をサーバー側で行うため、構成が複雑
  • 通信ごとにシーケンス番号を減らし、0になったらクライアントにパスフレーズを変更させる

しかし、登録したパスフレーズそのものが漏洩してしまった場合はセキュリティが破綻してしまう点は、チャレンジレスポンス認証と変わりません。

時刻同期方式

時刻同期方式では、チャレンジコードをやり取りせず、時刻をトリガーにしてワンタイムパスワードを生成します。
クライアント側では、時刻からパスワードを生成するトークンと呼ばれるパスワード生成機構を使用します。

  1. クライアントは、トークンで生成したパスワード(トークンコード)と個人情報番号(PIN)からワンタイムパスワードを生成し、サーバーに送信する
  2. サーバーは、クライアントと同じ時刻から精製したパスワード・個人情報番号をもとにワンタイムパスワードを生成し、返信されたワンタイムパスワードと比較する

ネットワーク上に余分な情報が流れないため、S/KEYよりもセキュリティの強度は高くなっています。
しかしぜんていとして 、各サーバー・各クライアントで時刻の同期が取れていなければ運用ができないという欠点があります。

おわりに

今回は、パスワード認証とワンタイムパスワードについてお伝えしました。
ワンタイムパスワードはセキュリティ強度の高い認証方式ですが、S/KEYにおいて登録したパスフレーズを紛失してしまった場合や、時刻同期方式においてトークンを紛失したりPINを流出させてしまった場合には、セキュリティを維持することができません。
どのような方式を取り入れても、使用するクライアントのセキュリティの意識が甘ければ意味がないということを、心に留めておいてください。

Written by Masahide Yasui

What do you think?

未だ知られていない?問題解決でのロジカルシンキング

中小製造業へ向けた情報セキュリティ講座_その9_認証について②