ネスぺテキスト_6章:セキュリティー_認証システム
1.認証とは
認証とは、ネットワークシステムを利用するユーザが、そのシステムを利用するための正当な権限を持っているかを確認する行為の事。ネットワーク上で適切な認証を行うためには、工夫が必要になってくる。
2.パスワード認証
パスワード認証は、ユーザIDとパスワードを組み合わせた、最も基本的な認証技術である。システムへの実装も簡単なため、幅広く用いられている。
パスワード認証の方法には、以下のようなものがある。
クリアテキスト認証
古くからあるパスワード認証方法。ログイン先のサーバに対し、ユーザIDとパスワードを平文で送信する。もともとはローカルノード内の通信で用いられていたモデルであるため、ネットワーク上の盗聴にたいしては無防備な方法であり、現在のネットワーク環境下ではセキュリティ強度が低いモデルであると言える。
チャレンジレスポンス認証
パスワード認証がネットワーク上で利用されることになったことで開発された、クリアテキスト認証の脆弱性を解消した方式。認証の流れは以下の通り。
・クライアントからユーザIDを送信
・サーバはチャレンジコードを生成し、クライアントに送信
・クライアントとサーバは、あらかじめ互いに保存してあるパスワードと生成されたチャレンジコードを用いてハッシュ値を生成
・クライアントからハッシュ値を送信
・サーバは自身の生成したハッシュ値を受信したものと比べ、ユーザ認証を行う。
チャレンジコードとハッシュ値しかネットワーク上を流れることはなく、仮に盗聴されたとしてもチャレンジコードはログイン毎に変わるため、不正なアクセスを抑制できる。また、チャレンジコードやハッシュ値を暗号化することで、セキュリティ強度をさらに高めることができる。
チャレンジレスポンス認証を採用した実装技術としてCHAPがある。
ワンタイムパスワード
ログインするごとにパスワードを変更する認証方式のこと。
実装例として以下の方法がある。
S/KEY
基本的な手順はチャレンジレスポンス方式と同じ。チャレンジコードはシーケンス番号とシードから成り、シーケンス番号分だけハッシュ処理をすることでワンタイムパスワードを生成する。クライアント側では(シーケンス番号-1)回しか演算をせず、最後の1回はサーバ側で行うようにすることでセキュリティ強度を向上させている。
時刻同期方式
チャレンジコードの代わりに時刻をトリガとして、ワンタイムパスワードを生成する。時刻からワンタイムパスワードを生成する機構をトークンと呼び、USBメモリやクライアントノードにインストールするソフトウェアとして提供される。ネットワーク上に余分な情報を流さないという利点があるが、クライアント・サーバ間で時刻同期をしている必要がある。
3.バイオメトリクス認証
複製が困難な人間の生体情報を用いて本人認証を行う方式。認証情報の置忘れや盗難の心配が少ないため、次世代認証技術として注目されている。
バイオメトリクス認証の方法には、以下のようなものがある。
指紋
指紋の形をトポロジーとして認識することで個人を識別する。単体だと、樹脂素材によるコピーなどによりセキュリティシステムを突破されてしまうため、体温や皮脂成分などと併用して認証する方法が検討されている。
虹彩
指紋よりもコピーがしにくいとされている。実装する場合にはゴーグル型の識別装置をのぞき込むようなものが多い。指紋に比べ、ユーザからの拒否反応が少ないともいわれている。
声紋
音声をエンベロープパターンとしてプロットすると、個人に特有な波形を得ることができる。指紋や虹彩に比べると採取に際するユーザからの拒否反応が小さいとされているが、体調の変化や加齢によって本人であっても認証不可となることがあるため、識別能力においては他の方式に劣る。
4.シングルサインオン
クッキーやリバースプロキシによって実装されるシームレスな認証方式のこと。利用者の利便性とセキュリティ確保を両立する上で重要な技術。
Cookieによる認証
Cookie:サーバがクライアントに送るテキスト情報のこと。
履歴情報や認証情報をCookieとしてクライアント側に保存し、サーバからの要求があれば返信する。コンピュータを共有する場合には他のユーザにクッキー情報を閲覧されてしまう恐れがある。
あるクッキーを呼び出せるのは、そのクッキーを保存したサーバ及び同一ドメインのサーバのみであるため、クッキー認証で別ドメイン間のシングルサインオンを実装することはできない。
リバースプロキシによる認証
各サーバの認証に用いるユーザID・PWやデジタル証明書をリバースプロキシサーバが保持することで、各サーバへのログインを代行する。そのため、クライアントはリバースプロキシサーバにログインすれば、以降の認証が不要になる。SAMLと組み合わせることで別ドメインへのシングルサインオンが可能になる。
5.認証・認可プロトコル
OAuth2.0
アプリケーション同士の連携を目的としたプロトコル。ユーザIDやパスワードではなく、連携したいコンテンツの使用権のみをアプリケーションに与えるように考えられている。基本的な流れは下記の通り
・アプリAからユーザにコンテンツ使用許可を要求
・ユーザからアプリAに使用許可
・アプリAは受信した許可情報を認可サーバへ転送
・認可サーバはアクセストークンをアプリAに発行
・アプリAはアクセストークンをアプリBに転送
・アプリBからアプリAにコンテンツを送付
OpenID Connect
Oauth2.0を拡張したプロトコル。OAuthでは認可を行うだけだったが、それに加えて認証を行えるようにして、利用者のアイデンティティ情報を安全に交換することを可能にした。
SAML
OASISによって規格化された、アイデンティティ情報、認証情報、認可情報を交換するためのプロトコル。認証情報を提供するIdPとサービスを提供するSPから成る。ドメインをまたいだSSOの実装が可能。
関連
投稿者
user@example.com