カテゴリー
情報処理

情報セキュリティ(その3)認証技術

ネット上でのコミュニケーションは、相手との直接相対することなく実行できるのが特徴である。

そういう環境下では認証技術というのが重要になる。

認証技術は、通信相手や情報の内容の「正当性」を検証するための技術である。

認証技術はエンティティ認証(利用者・コンピュータ・アプリケーションなどのエンティティを認証)とメッセージ認証(情報を認証)に大別できる。

                

・利用者認証

情報システムの利用者が間違いなく本人であることを検証するための技術を利用者確認(ユーザ認証)といい、本人の知識(記憶)、身体的特徴、所有物などの特徴を用いる。

       

パスワード認証

利用者IDなどの識別符号と本人しか知り得ない情報(文字列)であるパスワードをシステムに登録し、利用者が入力したパスワードと登録されたパスワードを比較して本人認証を行う。

適用が容易な反面、パスワードが一致すれば本人と認識されてしまう。

パスワードは他人に知られてはならないし、推測または解析されないようなパスワードを用いる必要がある。

「良質なパスワード」が満たす特徴としては、以下のようなものがある。

・覚えやすい

・容易に推測可能な利用者の関連情報(氏名、電話番号、誕生日など)に基づかない

・辞書に含まれる語から成り立っていない

・仮パスワードは、最初のログオン時点で変更する

パスワードの管理として、定期的に更新すること、辞書にある単語などは使わない等が挙げられる。

また、パスワードの種類は、Mのn乗( M:文字の種類数、n:桁数)となる。

               

バイオメトリスク認証

バイオメトリスク認証とは生体認証のことである。

指紋、静脈パターン、虹彩(アイリス)、声紋、顔、網膜といった身体的特徴により本人確認を行う技術である。

これらは、忘却や紛失によって認証できなくなることはないが、経年変化や外的要因(外傷、健康状態など)により変化する可能性がある。

そこで、本人拒否率を低くするよう基準を緩くすると、他人が利用者本人と誤認識される確率(他人受入率)が高くなる。

このため、パスワードや持ち物と組み合わせて利用することが多い。

                

所有物を用いた認証(デバイス認証)

利用者の所有物を用いた認証方式には、スマートカード、USBトークン(認識を補助する装置)などを用いたものがある。

建物の入退室管理などに利用されている。

所有者の盗難などにより不正にアクセスされる恐れがあるので、紛失や盗難には十分に注意が必要である。

               

多要素認証

複数の異なる認証方式を組み合わせて認証を行うことを多要素認証といい、二つの認証方式を組み合わせたものを二要素認証という。

二要素認証の例としては、ICカード💳と暗証番号(PIN:Personal identification number)の組合せが挙げられる。

               

パスワードに対する攻撃

他者のパスワードを解析し見破ることをパスワードクラックという。

代表的なものは以下の通り。

辞書攻撃

辞書に載っている単語やその組合せをパスワードとして試行する。

ブルートフォース攻撃(総当たり攻撃)

特定のアカウントに対して全文字の組合せを試行する。

これらについては、良質なパスワードを用いるとともに、一定回数認証に失敗したら当該アカウントを一定期間使用できなくするロックアウトの機能が有効である。

リバースブルートフォース攻撃

こちらはブルートフォース攻撃の反対で、よく使用されるパスワードに対してアカウントを総当たりで試行する。

こちらは同一のアカウントで連続して認証に失敗することないので、アカウントのロックアウトが機能しにくい。

パスワードリスト攻撃

別のサービスやシステムから流出した認証情報を用いて認証情報を使い回しているアカウントを攻撃する。

パスワードは使い回しを避け、個別のパスワードを用いれば防げる攻撃だ。

               

リモートアクセス下での認証技術

ネットワークを介してシステムにアクセスすることをリモートアクセスという。

利用者は認証情報をもつサーバ(認証サーバ)に認証情報を送信し、認証サーバがそれを検証した結果を返す。

ネットワーク上を認証情報が流れるため、盗聴などの危険性があるので対策が必要なのである。

ワンタイムパスワード

ネットワークを通じてパスワードを送る場合、通信経路上でパスワードが盗聴され再利用される可能性がある。

このような場合、毎回パスワードが変わるワンタイムパスワード(One Time Password: OTP)が有効である。

                 

チャレンジレスポンス方式

サーバが乱数(チャレンジ)を生成しクライアントに送付する。

クライアントはハッシュ関数などを用いて、チャレンジとパスワードからレスポンス(応答文字列)を生成してサーバに返送する。

サーバは自身でもレスポンスを作成し、クライアントから送られてきたレスポンスと比較し、両者が一致すれば認証に成功ということになる。

チャレンジレスポンス方式では、毎回異なるレスポンスが返され、パスワードそのものはネットワークに流れない(ゼロ知識証明)ので安全性に優れる。

                 

RADIUS

RADIUS(Remote Authentication Dial In User Service)とは、認証情報を一元管理して運用負荷を軽減する仕組みである。

各認証サーバはクライアントから送られてきた認証情報を、認証情報を一元管理するRADIUSサーバに送り、認証結果を得る。

                  

ケルベロス認証(Kerberos認証)

大規模システムでは、サーバが複数台設置されていることが多く、サーバごとに認証を行うと利用者の負担が大きくなってしまう。

そこで、1回認証に成功すれば別のサーバでも認証不要となるシングルサインオン( SSO : Single Sign On )の仕組みが用いられる。

このシングルサインオンを実現する技術の一つがケルベロス認証である。

認証は以下の手順で行う。

①クライアントは認証サーバに認証を要求する。

②認証サーバは初回チケットとセッション鍵を生成してクライアントに送付する。

セッション鍵はパスワードから生成できる「共通鍵」で暗号化されている。(クライアントとサーバの両者が保有)

初回チケットは、セッション鍵やクライアント情報(名前やアドレス)で暗号化されており、認証サーバのみが復号できる。

③クライアントはパスワードから生成した「共通鍵」でセッション鍵を復号する。

このセッション鍵を保有するということは、正当な利用者であることを意味する。

これ以降は、セッション鍵と初回チケットにより、認証処理が省略できる。

④クライアントは、各サーバへの接続を認証サーバに要求する。

その際に、初回チケットと認証子(セッション鍵で暗号化したクライアントの情報)を提示する。

⑤認証サーバは、初回チケットを復号してセッション鍵を取り出し、それを使って認証子を復号する。

認証子が正しく復号できれば、クライアントはパスワードを知っているためセッション鍵が入手できたと判断できる。

⑥認証サーバは、サーバ用のチケットを生成し、クライアントに送付する。

⑦クライアントは、各サーバにチケットを提示し、各サーバはクライアントに接続を許可する。

ケルベロス認証は、“チケット”という認証済みを表す特殊なデータを発行することにより、各サーバが個別に認証することなくアクセス制御できるのである。

なお、チケットには有効期限が設定されており、有効期限内であればクライアントは認証サーバに初回チケットを送付するだけで認証処理を行う必要がない。

これによりシングルサインオンを実現できるのである。

                  

・メッセージ認証

メッセージ認証とは、データ(メッセージ)の改ざんの有無を確認する技術で、ハッシュ関数を用いる。

ハッシュ関数は、任意の大きさのデータから、一定長のデータ(ハッシュ値、メッセージダイジェスト)を生成する関数であり、以下の特徴がある。

ハッシュ値から元のデータの復元困難→一方向性

異なるデータから同じハッシュ値を得るのが困難

どんな入力値でも出力値のサイズは同一

入力値が少しでも変われば、出力値は大きく変わる

ハッシュ関数の特徴から、ハッシュ値が同じであれば元のデータも同じであり、ハッシュ値が異なれば元のデータは異なると判断できる。

ハッシュ関数には、MD-5、SHA-1、SHA-256などがある。

                

メッセージ認証符号( MAC:Messege Authentication Code)

メッセージ認証符号とは、メッセージ認証のためのデータである。

送信者と受信者の双方が共通鍵(MAC鍵)を共有し、元のデータと組み合わせて生成するため、共通鍵を知らない第三者には生成できない。

主なメッセージ認証符号の方式には、共通鍵とハッシュ関数を組み合わせたHMAC(Heyed-Hashing for Message Authentication Code)などがある。

HMACでは、元のデータと共通鍵で連結などの演算を行った結果からハッシュ値を生成し、メッセージ認証符号として元のデータに付加する。

受信側で生成したハッシュ値が、送信側で生成したものと一致すれば、メッセージは改ざんされてないと判断できる。

                

・ディジタル署名

ディジタル署名とは、メッセージ認証に加えて送信者が「本人であること」を確かめる技術である。

これには公開鍵暗号方式を用いる。

データの作成者を証明し、データが改ざんされてないことを保証する。

以下の手順で生成していく。

①送信者側は、送信するデータのハッシュ値1を生成する。

②送信者側は、送信者の秘密鍵でハッシュ値1を暗号化してディジタル署名を生成する。

③ディジタル署名をデータに付加して受信者側に送信する。

④受信者側は、付加された署名を送信者の公開鍵で復号し、元のハッシュ値1を得る。

⑤受信者側は、受信したデータからハッシュ値2を生成する。

⑥受信者は、ハッシュ値1とハッシュ値2を比較する。両者が一致していれば、データは送信者本人が送信し、かつ、改ざんされてないことが証明できる。

ディジタル署名では、送信者の公開鍵で復号できたことが、送信者の秘密鍵で暗号化されたことを裏付けるため、メッセージ認証とエンティティ認証を同時に実現できる。

また送信者は自身が署名したデータを送ってないと主張することもできないので、否認防止性も実現できる。

                  

PKI(Public Key Infrastructure)

ディジタル署名では、署名を復号する公開鍵が、確かに通信相手本人のものであることを前提としている。

この前提が崩れると署名自体が成立しない。

そこで公開鍵の正当性を証明することが必要になる。この証明は当事者以外の信頼できる第三者機関が行う。

この機関を認証局(CA : Certificate Authority)とよぶ。

CAは利用者からの求めに応じて、電子証明書(ディジタル証明書)を発行する。

これは通信相手の公開鍵などを含む証明用のデータにCAの署名を施したもので、電子証明書から入手した公開鍵はCAにより正当性が保証されたものである。

このように証明書を利用して安全に公開鍵暗号を利用する仕組みをPKI(Public Key Infrastructure 公開鍵基盤)という。

PKIは公開鍵の正当性を保証するための基盤(インフラ)に過ぎない。

PKIを用いたアプリケーションプロトコルには、TTL/SSLやS/MIMEがある。

               

ディジタル証明書の仕組み

ディジタル証明書には、公開鍵や認証局(CA)のディジタル署名などが含まれている。

CAのディジタル署名について、それ自体が信頼できるか否かが重要だ。

CAが別のCAに証明書を発行できるのだが、この場合にはCAが階層構造となり、署名を検証するためには署名した上位のCAの証明書が必要だ。

階層構造では、最上位にあたるルートCAの証明書(ルート証明書)は、やはりCA自身によって署名されている。

つまりルートCAさえ信頼できれば、その下位に位置するCAはすべて信頼できると考えれる。

また、証明書には有効期限(開始時刻と終了時刻から構成される)が設定されており、この期間内にない証明書は有効と認められない。

証明書の有効期間内であっても、証明書の内容を変更する必要が生じることもある。

こういう場合、新しい内容の証明書を発行するとともに、古い証明書が使われないよう無効にする必要がある。

これを失効という。

記載内容(ドメイン名など)の変更や、鍵ペアの再発行などの事由により失効する。

入手した証明書が有効であるか確認するための手段としては、CAにより定期的に公開されるCRL(Certificate Revocation List : 証明書手段リスト)を確認する方法がある。

                            

・終わりに

率直に言って、10月の応用情報技術者試験には不十分な準備で臨むことになりそうである。

今回ダメでも次に繋がる勉強をしていきたい。

という訳で、このブログである。

単にテキストを読んでまとめてるだけの内容だが、ただ問題集を解くだけよりは全然楽しいし、いつでも見直すことができるので次に繋がるかな?

作成者: advance

豊洲市場の水産荷受会社(セリ販売する会社)に勤務してます。
勤務時間が夜中から昼までです。
夜の活動は自粛?して、午後の早い時間帯に勉強に励み、税理士試験に合格しました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です