説明

ユーザを認証する方法、ユーザ端末を認証する装置、及びユーザ端末を認証する認証サーバ

【課題】ユーザ端末及び認証サーバを備える通信システムにおいて、改良されたユーザを認証する方法を提供する。
【解決手段】認証サーバは2種類のnonce値、すなわちシステムにおいて一意の専用nonce値及びシステム内のユーザ間で共有される共通nonce値を記憶することができる。認証サーバが、ユーザ端末からアクセス要求を受信する。次に、認証サーバが、アクセス要求への応答としてユーザ端末に送信すべき第1のnonce値の種類を判断するために所与の基準を使用する。所与の基準が満たされる場合には専用nonce値が送信され、満たされない場合には共通nonce値が送信される。次に、認証サーバは、第2のnonce値及び第1のnonce値に対する応答コードを含む応答をユーザ端末から受信する。次に、認証サーバは、応答コードが正しいか否か、及び第2のnonce値が第1のnonce値に対応するか否かを判断する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信システムにおいてユーザを認証する方法に関する。特に、本発明は、例えばリクエストフォーコメント(RFC)2617に規定されるようなダイジェスト認証方式に基づく改良された認証方法に関する。
【背景技術】
【0002】
ダイジェスト認証方式は、セッション確立プロトコル(SIP)において、ボイスオーバインターネットプロトコル(VoIP)ユーザの認証(credential)をネゴシエートするために使用される。これは、元々はハイパーテキスト転送プロトコル(HTTP)に向けて設計され、RFC2617において規定されたものである。ユーザを認証し、制限付きウェブエリアへのアクセスを提供するためにインターネットにおいて広く使用されている。
【0003】
以下の説明は、クライアントコンピュータがダイジェスト認証方式に従ってサーバへのアクセスを要求する状況の一例である。典型的なトランザクションは以下のステップから成る。
− クライアントが、認証が必要なページを要求する。ただし、ユーザ名及びパスワードを提供することはしない。通常、これはユーザが単にアドレスを入力しただけか、又はページへのリンクを辿っただけだからである。
− サーバがいわゆる「401」レスポンスコードで応答し、認証領域(authentication realm)及びnonceと呼ばれるランダムに生成され1回限り使用される値を提供する。realmは、ユーザに表示される文字列であり、ユーザにどのユーザ名及びパスワードを使用するべきかを知らせる。この文字列は、通常少なくとも認証を行うホストの名称を含み、さらに、アクセスすることができるユーザのコレクションを含むことができる。nonceは、401レスポンスが生成される都度、一意に生成されるべきサーバにより規定されるデータ文字列である。
− この時点で、クライアントが認証領域をユーザに提示し、ユーザ名及びパスワードの入力を促す。この時点で、ユーザはキャンセルすることを決定することができる。
− ユーザ名及びパスワードが供給されると、クライアントは同じ要求を再送信するが、応答コード(response code)及びnonceを含む認証ヘッダを追加する。基本的には、応答コードは、提供されたnonce、ユーザ名、及びパスワードからクライアントにより計算されるハッシュ値である。
− サーバは、返された応答コードをチェックし、認証を受け入れ、要求されたウェブページが返される。応答コードが正しくない場合、サーバは「401」レスポンスコードを返すことができ、クライアントはユーザに再び入力を促し、応答を再び送信する。
【0004】
この方式はステートレスに実施することができる。ステートレスとは、サーバが、ユーザ応答が正しいか否かを判断するために、認証方式に関連するいかなる情報も記憶する必要がないことを意味する。しかしながら、HTTPが伝送制御プロトコル(TCP)を介して送られる場合、TCPコンテキストが新しい各接続に割り振られるため、実施は完全にステートレスなわけではない。
【0005】
ダイジェスト認証方式は試行回数を制限しない。応答コードが正しくない場合、サーバはその都度常に、新しいnonce値と共に401メッセージを返す。
【0006】
SIPプロトコルへのダイジェスト認証方式の適用が、RFC3261に記載されている。RFC2617に規定されるプロトコルを変更しない、幾つかの小さな変更が適用されている。しかしながら、SIPはユーザデータグラムプロトコル(UDP)を介して送られるため、ダイジェスト認証方式を完全にステートレスに実施することができる。この認証の方法は、SIPクライアント及びサーバの実施態様の大半でサポートされている。
【0007】
この方式は主に、REGISTERメッセージ及びINVITEメッセージを認証するためにSIPにおいて使用される。しかしながら、SUBSCRIBE等の他の種類のメッセージもこの方式を使用することにより認証することができる。
【0008】
図1は、認証が成功する場合の典型的なSIP登録シーケンスを示す。ステップ101において、クライアントがREGISTER又は単にREGとも呼ばれる登録開始メッセージをサーバに送信する。次にステップ102において、サーバは、nonce値と共に「401」レスポンスメッセージを返す。このメッセージはチャレンジと呼ばれる。これを受信すると、クライアントは応答(response)を計算し、ステップ103において、新しいREGISTERメッセージをサーバに送信する。メッセージは、応答コード値及びステップ102においてサーバが送信したnonce値と同一に保たれるnonce値を含む。このメッセージはREG−Aとも呼ばれる。サーバはREG−Aメッセージを受信すると応答をチェックし、ステップ104において「200」OKメッセージをクライアントに送信して登録が成功したことを通知する。
【0009】
ダイジェスト認証方式は、総当たり攻撃に対してロバストである。ユーザ名及びチャレンジ応答からパスワードを再発見することは困難である。しかしながら、それでも幾つかの攻撃が可能である。
【0010】
第1の種類の攻撃はメッセージフラッド(message flooding)である。この攻撃を選択する場合、攻撃者は、サーバ資源を使い果して他の全ユーザに対してサービス拒否(DoS)の状態にすることを欲する。攻撃元を隠蔽するために、攻撃者はスプーフィングされたIPアドレスを使用することができる。これは、基本的なIPアドレスフィルタリングを適用してサーバをフラッドから守ることを阻止する。
【0011】
登録開始メッセージフラッドは、必要なものは有効なユーザ名のみであるため、誰でも発行することができる。情報(場合によっては、ディレクトリが公開されている)を収集した攻撃者は、この非常に基本的な攻撃を成し遂げることができる。認証の実行に使用されるアルゴリズムは、システムが攻撃されている間、有効なユーザ(すなわち、チャレンジを解決することができるユーザ)が自身を登録することを妨げてはならない。
【0012】
認証登録(REG−A)メッセージフラッドは、サーバにより提示されたチャレンジを解決するためにユーザのパスワードを知る必要がある。また、攻撃しているマシン内の返信メッセージを解析してnonceを得る必要もある。これは、IPアドレスのスプーフィングを防ぐ。しかしながら、大半のSIP登録サーバでは、nonce値はゆっくりと更新されるため、nonce値を何人かの攻撃者間で共有することができ、IPスプーフィングがやはり可能である。認証アルゴリズムは、この種の攻撃が健全なユーザ、すなわちパスワードが秘密に保たれているユーザの認証を妨げてはならないことに注意を払う必要がある。
【0013】
第2の種類の攻撃は中間者攻撃であり、より厳密にはリプレイ攻撃である。これは、認証サーバ内のnonce値の変更が遅い可能性があることを利用して、同じnonce値及び応答(response)値を使用してREG−Aメッセージを返信することから成る。攻撃が成功した場合、サーバは正当なユーザと同じ信用を与え、攻撃者は被害者に課金されるサービスを自由に使用することができる。
【0014】
ダイジェスト認証方式は、SIP登録サーバにおいて幾つかの方法で実施することができる。実際、RFC2617は、認証サーバがどのようにnonceを選択するべきかを示していない。
【0015】
第1の方法はステートレス手法に基づく。nonceは所与の期間中に生成され、この時間中、全ユーザによって使用される。この方法は、資源消費の観点からは効率的であるが、nonceが一定のままである間に幾つかのリプレイ攻撃が可能である。
【0016】
第2の方法はステートフル手法に基づく。新たに入力されたあらゆる要求毎に固有のnonceが生成される。これは、新たに開かれたダイアログに関連付けられるコンテキストに記憶され、そのダイアログが終了されるまで保持される。主な問題は、特にSIPサーバがフラッド攻撃されているときに、相当なメモリ資源が消費されることである。コンテキストを解放するために「コンテキストコレクタ(context collector)」も実施しなければならないが、SIPではタイマ値が長い(最長で2分)ため、コレクタはあまり効率的には成り得ない。
【0017】
第3の方法は、受信する要求毎に、その要求の実際の情報(sensible information)を考慮して、固有のnonceを生成することを提案する。この情報は、REGメッセージ及びREG−Aメッセージで同一に保たれる。SIP登録メッセージの場合、これは例えば、コンタクトフィールドと成り得る。この方法は、サーバをリプレイ攻撃から保護する。この方法の主な欠点は、nonce生成が、処理されるメッセージの種類に依存し、サーバが実行する処理から独立にできないことである。さらに、この方法では、実際の情報を得るために深いメッセージ構文解析が必要である。この動作は多くの中央演算処理装置(CPU)の資源を消費し、そのため、このメカニズムはREGメッセージフラッドに対して脆弱である。
【0018】
BEA Systems Inc.による米国特許出願公開第2006/0184681号には、装置通信にリアルタイム双方向通信レイヤを提供する企業装置用のコンピュータアーキテクチャが開示されている。IDベースの通信レイヤが、装置と企業との間の相互認証及び暗号化を可能にすることにより、安全なエンドツーエンドテレメトリ及び通信制御を提供する。一意のIDが各装置、ユーザ、及びアプリケーションに割り当てられて、セキュリティサービスが提供される。一意のIDはネットワークアドレスから独立している。セキュリティ情報及びネットワークアドレスを一意のIDに関連付けることができる。また、nonceチャレンジに基づく認証方法も開示されている。
【0019】
【特許文献1】米国特許出願公開第2006/0184681号
【発明の開示】
【発明が解決しようとする課題】
【0020】
本発明は、上記攻撃に対する脆弱性がより低い改良されたダイジェスト認証方法を提供することを目的とする。
【課題を解決するための手段】
【0021】
本発明の第一の態様によれば、ユーザ端末及び認証サーバを備える通信システムにおいてユーザを認証する方法であって、認証サーバは、システムにおいて一意の専用nonce値及び定まった期間中一定の値をとり当該認証サーバにより管理される全てのユーザに共通である共通nonce値を含む2種類のnonce値を記憶することができる、ユーザを認証する方法が提案される。当該ユーザを認証する方法は、認証サーバにより実行される、
− ユーザ端末からアクセス要求を受信するステップと、
− アクセス要求への応答としてユーザ端末に送信すべき第1のnonce値の種類を判断するために所与の基準を使用するステップと、
− 基準が満たされる場合には専用nonce値のうちの1つを送信し、満たされない場合には共通nonce値のうちの1つを送信するステップと、
− 第1のnonceをメモリに記憶するステップと、
− ユーザ端末から応答を受信するステップであって、当該応答は第2のnonce値及びnonce値への応答コードを含む、受信するステップと、
− 応答コードが正しいか否か、及び第2のnonce値が認証サーバにより送信された第1のnonce値に対応するか否かを判断するステップと
を含む。
【0022】
従って、本発明は、ダイジェスト認証をサポートするあらゆるSIPクライアントに対応するnonce値を生成してチェックするメカニズムを提案する。本発明の主な利点は、認証サーバを以下の攻撃から保護できることである。
− 登録開始(REG)メッセージフラッド又は認証登録(REG−A)メッセージフラッドによるグローバルDoS、
− 1組のユーザに対するDoS、これは何人かのターゲットユーザがサービスへアクセスすることを阻止する、及び
− リプレイ攻撃
【0023】
さらに、提案するメカニズムはIPアドレススプーフィングに対処することができ、ネットワークアドレス変換(NAT)に対してトランスペアレントである。
【0024】
本発明の第2の態様によれば、認証サーバのコンピュータ手段にロードされて実行されると、第一の態様による方法を実施する命令を含むコンピュータプログラム製品がさらに提供される。
【0025】
本発明の第3の態様によれば、通信システムにおいてユーザ端末を認証する装置であって、当該装置は、システムにおいて一意の専用nonce値及び定まった期間中一定の値をとり当該装置により管理されるすべてのユーザに共通である共通nonce値を含む2種類のnonce値を記憶することができ、当該装置は、
− ユーザ端末から、アクセス要求及び応答コード等のメッセージを受信する受信機と、
− ユーザ端末からのアクセス要求への応答としてユーザ端末に送信すべき第1のnonce値の種類を判断するために所与の基準を使用するプロセッサであって、所与の基準が満たされる場合には専用nonce値のうちの少なくとも1つを送信するように構成され、満たされない場合には共通nonce値のうちの少なくとも1つを送信するように構成され、さらに、nonce値への応答としてユーザ端末から受信される第2のnonce値及び応答コードを含む応答が正しいか否かを判断するように構成される、プロセッサと
を備える、装置が提供される。
【0026】
本発明の他の特徴及び利点が、添付図面を参照して、非限定的で例示的な実施形態の以下の説明から明らかになろう。
【発明を実施するための最良の形態】
【0027】
本発明のいくつかの実施形態について、添付図面を参照してより詳細にこれより説明する。以下の説明では、本発明の実施形態はREGISTERメッセージ及びSIP登録サーバの文脈の中で説明されるが、本発明は、ダイジェスト認証及びSIP又はUDP等のコネクションレスプロトコルを利用するあらゆるシステムに同等に適用することが可能である。
【0028】
図2は、この教示を適用することができる一環境を示す。図2にはクライアント装置201が示される。この場合では、クライアント装置201はデスクトップコンピュータである。これは同様に、他のネットワーク要素にアクセスすることができる任意の他の装置であってもよい。以下の説明では、提案される認証方法は、SIPサーバ203の前にある装置又は論理モジュールで実施される。この装置は認証フィルタ202と呼ばれる。認証フィルタ202は、要求を認証する役割、及び認証セキュリティを強化し且つSIPサーバ203での認証処理のコストを低減するために、認証された要求のみをSIPサーバ203に転送する役割を担う。これは、サーバ203がフラッド攻撃に直面する場合に特に重要である。このため、認証フィルタ202は入力されるSIPトラフィックのフィルタとみなすことができ、SIPサーバ203とは異なる場所に配置された物理的なサーバとすることができる。別法として、認証フィルタ202は単にソフトウェアで実施してもよく、SIPサーバ203に物理的に統合される。さらに、提案する方法は、サーバ203で実行される処理から独立している。
【0029】
提案する方法は、背景の項で述べた第1のnonce生成方法及び第2のnonce生成方法の両方を混合する。図3を参照すると、クライアント201がまず、ステップ301において、REGメッセージを認証フィルタ202に送信する。システムが攻撃されていない間は、REGメッセージが受信されると、専用nonce Ndが生成される。同じ方法で、nonce Ndが新しいあらゆる入力要求毎に割り当てられる。次に、ステップ302において、Nd値がクライアント201に送信される。ステップ303において、クライアント201はこれに応答して、REG−Aメッセージを送信する。ここで、認証フィルタ202は返されたNd値と生成した元のNd値とを比較することができる。認証フィルタ202は、REGメッセージを受信すると、少なくともREG−Aメッセージを受信するまで、生成したNd値をテーブルに一時的に記憶する。認証が成功した場合、ステップ304において、認証フィルタ202はREGメッセージをサーバ203に転送する。このフィルタリングシーケンスは簡易認証方法(simple authentication method)と呼ばれる。
【0030】
図4は、システムが処理する要求数が大きすぎる、すなわち、システムが攻撃下にあり、Nd値を記憶するメモリ空間を取得することができない状況を説明している。この場合、共通nonce Ncが使用され、認証フィルタ202により「401」メッセージにおいて応答される。ステップ401において、クライアント201はREGメッセージを認証フィルタ202に送信する。認証フィルタ202は、メッセージを受信すると、Nd nonce値を作成し、この値のためのメモリ空間があるか否かをチェックする。無い場合には、Ncと呼ばれる共通nonce値を使用し、ステップ402において、この値を「401」メッセージでクライアントに送信する。実際には、Ncに基づくチャレンジの解決により、クライアントがフラッド攻撃者ではないことが証明される。クライアント201はこれに応答して、ステップ403において、Nc値及び算出した応答ハッシュ値を含むREG−Aメッセージを送信する。次に、認証フィルタ202は、返されたNc値及び応答(response)が正しいか否かを検証する。このステップは事前認証(pre-authentication)と呼ばれる。
【0031】
クライアント201が共通nonceに基づいてチャレンジを解決した場合、専用nonce Ndが生成され、認証フィルタ202のメモリ空間に保存される。ステップ404において、認証フィルタ202により、Nd nonceと共に「401」メッセージが返送される。従って、システムはステップ404において送信される要求により高い信用を与えることができ、好ましくは、Nd値を記憶するためのメモリ空間を割り当てることができる。次に、ステップ405において、クライアント201は第2のREG−Aメッセージを認証フィルタ202に送信する。今回のREG−Aメッセージは、Nd値を含むと共に対応する応答ハッシュ値も含む。最後に、認証フィルタ202はクライアントにより送信された情報が正しいことを検証し、ステップ406において、REGメッセージをサーバ203に送信する。このフィルタリングシーケンスは二重認証方法(double authentication method)と呼ばれる。
【0032】
二重認証方法は、2種類のnonce値、すなわち定まった期間、例えば1秒間にわたって一定であり、認証フィルタ202により管理される全ユーザに共通である共通nonce Nc値、及びユーザ名等のプライベートID又はエンドポイント(例えばデュプレット(duplet)IPソースアドレス/UDPソースポート)に固有の幾つかの専用nonce値Ndを使用する。両方のnonce値はランダムに生成され、その都度異なる値をとると仮定することができる。Ncは、Ncの正当性を評価するために受信REG−Aメッセージと比較される単一のグローバル値を使用して認証フィルタ202に保持される。
【0033】
Ndテーブルと呼ばれる単一のテーブルが、簡易認証方法及び二重認証方法の両方においてNd値を記憶するために使用される。Ndテーブルは、例えばハッシュテーブルとすることができる。しかしながら、先に説明したように、二重認証手順の幾つかの要求に割り当てられるNd値は、簡易認証方法のそれよりも高い信用を有する。従って、Ndテーブルが使用するメモリの管理のために、二重認証手順の要求には優先権が与えられる。特に、メモリが不足している場合、簡易認証方法の要求に使用されているメモリの一部を、二重認証手順の要求に再割り当てすることができる。
【0034】
Ndテーブル内でのメモリロケーションは、認証方法の種類に従って異なる方法でインデックス付けされる。インデックス付けは、REG−Aメッセージを受信した時に、Ndテーブルに記憶されているNd値を検索するために使用される。二重認証方法では、ステップ403の終了時において、クライアントがNc値に基づいてチャレンジを解決したばかりであるため、システムはユーザ名を識別している。従って、ユーザ名を安全に使用して、Ndテーブルにインデックス付けすることができる。反対に、簡易認証手順では、ユーザ名が、REGメッセージにおいて特定されないか、又は安全に識別されない。そのため、IPアドレス、UDPソースポート、及び生成されたnonce Nd値がNdテーブルのインデックス付けに使用される。
【0035】
ユーザ名に基づくインデックス付けは、攻撃者がたった1つの有効なユーザ名を使用してNdテーブルを埋めることを防ぐ。実際には、同一のレコードが、単一の識別されたユーザにより送信される全ての要求に使用される。この特徴は、二重認証方法の要求に優先権が適用されるため、特に重要である。攻撃検出及び両手順間の切り替えは、Ndテーブル内での衝突(collision)の検出により引き起こされる。
【0036】
専用nonceは有効期限(time-limited validity)を有する。期限が切れると、記憶されているnonceを削除することができ、このnonceを伝えるそれ以降のメッセージは無効とみなされる。
【0037】
ユーザ名によりインデックス付けされるnonce値、すなわち二重認証方法の場合、専用nonce値は、チャレンジが解決されるか、又は有効性が切れるまで変更することができない。この特徴は、攻撃者が特定のユーザに対してDoS攻撃を仕掛けるのを防ぐ。実際、もし仮に、新しい要求を受信する度に専用nonce値が変更されるとしたら、攻撃者は、正当なターゲットユーザがチャレンジを解決する前に、認証フィルタ202にnonce値を絶えず変更させるように強制することができてしまう。
【0038】
認証が成功すると、要求はサーバ203に転送され、処理される。認証フィルタ202が、同一のNd nonce値及び正しいチャレンジ応答を有する要求を繰り返し受信する場合には、そのメッセージは転送されず、異なるNd nonceが生成されて、その要求に割り当てられる。次に、この新しいnonce値を有する「401」メッセージがクライアント201に返される。これは、UDPを介したSIPプロトコルの反復メカニズムを乱すが、攻撃者によるリプレイ攻撃を防ぐ。
【0039】
優先権は二重認証方法の要求に付与される。これは、優先ビットがNdテーブルの各レコード又はエントリに付加されることによる。簡易認証方法の場合、優先ビットはセットされない。衝突が発生する場合、レコードは変更されず、Nc nonce値が使用される。その結果、システムはその要求のみに対して二重認証手順に切り替わる。二重認証手順の場合、優先ビットがセットされる。衝突の場合、使用されているレコードの優先ビットがセットされていなければ、レコードは上書きされる。その他の場合には、レコードは変更されず、クライアント201へのチャレンジのための返信「401」メッセージには、記憶されているNd値が使用される。
【0040】
両方の認証方法において、チャレンジが解決される場合、Ndテーブルの各レコードに付加される認証ビットAを使用することにより専用nonce Ndに印が付けられる。
【0041】
認証フィルタ202がチャレンジ応答をチェックした結果が肯定であり、且つAビットが既にセットされている場合、メッセージはサーバ203に転送されないが、新しい専用nonceが生成される。これはリプレイ攻撃を防ぐ。新しいnonce値NdをNdテーブルに書き込む際に、Aビットがセットされているレコードで衝突が発生する場合、レコードは新しいNd値で上書きされる。
【0042】
時間情報が各レコードに付加され、専用nonceの作成時刻を示す。時間情報がレコードに記憶されるので、記憶されている専用nonce Ndの有効期限が切れているか否かを検討することにより、古すぎるnonceを有するレコードを上書きすることができる。
【0043】
nonce値Ndは、2つの異なるハッシュ関数を使用してインデックス付けされるNdテーブルに記憶される。第1の関数H1は簡易認証方法に使用され、クライアントのIPアドレス、UDPクライアントポート、及びNdそれ自身から計算される。認証フィルタ202がREGメッセージを受信した場合、H1を使用して新しいエントリをテーブルに追加することができる。
【0044】
第2の関数H2は二重認証方法に使用され、ユーザ名から計算される。共通nonce Nc及び有効な応答(response)を有するREG−Aメッセージを受信した場合、H2を使用して新しいエントリがテーブルに追加される。H1及びH2は、テーブルに新しい専用nonce値を書き込むために、又はREG−Aメッセージに含まれるnonceが正当であるかを検証するために使用される。
【0045】
Ndテーブルのインデックス付けは、H1ハッシュ関数及びH2ハッシュ関数の性質により一様に分布する。理想的には、H1及びH2はランダムで一様な出力を有し、両者は独立している。H1及びH2が独立し且つランダムであれば、Ndテーブル内の衝突率は、テーブルのインデックス付けに使用される異なるハッシュ関数の数に依存しない。従って、2つの異なるハッシュ関数が、ハッシュ関数の性質を変更することなくNdテーブルにアクセスすることができる。
【0046】
以下のテーブルに上述した情報をまとめる。
【0047】
【表1】

【0048】
Ndテーブル内の各レコードは以下の情報を含む。
− 有効性ビット(V):レコードが使用されているか否かを示す
− 優先ビット(P):レコードの優先権を示す
− 認証ビット(A):認証が成功したか否かを示す
− 専用nonce値(Nd)
− タイムスタンプ値:レコード挿入日を示し、レコードが古すぎるので上書き可能であるか否かを判断するために使用される
【0049】
高い優先権、すなわちP=1を有するレコードは、Aがセットされている場合又は有効期限が切れている場合を除き、上書きすることはできない。低い優先権、すなわちP=0を有するレコードは、事前認証が成功した場合(二重認証方法)に上書きすることができる。タイムスタンプは、レコード挿入日を示す代わりに、レコードの有効性失効日を示すこともできる。
【0050】
図5は、Ndテーブルの一例を示す。この場合、テーブル内に2つのレコードしかないため、システムの負担は僅かでしかない。見て取れるように、各エントリにおいて、Vビットは1にセットされ、対象であるメモリロケーションが専有されていることを示す。さらに、2番目のレコードの場合、認証ビットも1にセットされている。これは、クライアントによる対応する要求がすでに承認されている、すなわち正しいと検証されているため、このメモリロケーションを上書きしてもよいことを意味する。
【0051】
次に、クライアント201からの要求が受信されてから認証プロセスが終了するまでの、本発明の一実施形態によるプロセスを説明するフローチャートを示す図6aを参照する。まず、ステップ601において、認証フィルタ202がアクセス要求メッセージを受信する。この場合では、アクセス要求メッセージは、REGメッセージ又はREG−Aメッセージのいずれかである。メッセージを受信すると、ステップ602において、認証フィールドがあることを利用してメッセージの種類を判断する。すなわち、受信メッセージがREGメッセージであるか、それともREG−Aメッセージであるかを判断する。
【0052】
受信メッセージがREGメッセージである場合、ステップ603において、専用nonce値Ndが生成される。これは図3及び図4のフィルタ202が要求を受信する(それぞれ301及び401)状況に対応する。Nd値は、新しいREGメッセージが受信される度に生成される。次にステップ604において、H1関数を使用して、このNd値のNdテーブル内でのメモリロケーションを計算する。次にステップ605において、H1関数を使用することにより算出されたメモリロケーションとテーブル内のレコードとの間に衝突があるか否かが判断される。これは、H1関数によりインデックス付けされたレコードにおいて、V=0又はA=1という条件が満たされるか否かを判定することにより行うことができる。これらの条件のうちの一方が満たされる場合、テーブル内での衝突はない。テーブル内での衝突がない場合、ステップ606において、Nd値は「401」メッセージでクライアントに送信される。これはステップ302に対応する。ステップ607において、Aビット及びPビットが0にセットされ、Vビットが1にセットされるようにレコードが更新される。換言すれば、レコードに低い優先権が書き込まれ、このメモリロケーションが使用されており、認証がまだ成功していないことを示す。衝突がある場合、すなわち条件V=0又はA=1が満たされない場合、共通nonce値Ncが使用され、ステップ608において、「401」メッセージでクライアント201に送信される。これは、ステップ402に対応する。
【0053】
ステップ602において、メッセージの種類がREG−Aであると判断される場合、ステップ610において、認証フィルタ202が受信したnonce値が、認証フィルタ202に記憶されている現在のNc値と比較される。この実施形態では、Ncは、Ndテーブルから独立した単一のメモリストレージに記憶される。受信したnonce値が認証フィルタ202に記憶されているNcに等しいと判断される場合、ステップ611において、クライアント201から受信されたチャレンジ応答が正しいか否かを判定する。チャレンジ応答が正しいとは、クライアント201からの応答コード及びnonce値が両方とも正しいことを意味する。チャレンジへの応答が正しくない場合、ステップ612において、認証フィルタ202は「403」メッセージをクライアント201に送信する。これは、認証フィルタ202がREG−Aメッセージフラッド攻撃下にある可能性があり、認証手順がアボートされたことを意味する。
【0054】
一方、チャレンジ応答が正しいと判断される場合、ステップ613において、Ndテーブル内でのインデックスがH2関数を使用して計算される。この計算はクライアント201のユーザ名に基づく。次にステップ615において、Ndテーブル内において、テーブル内のレコードとテーブル内でのメモリロケーションを示す算出されたインデックスとの間で衝突があるか否かがチェックされる。これは、V=1、P=1、及びA=0の条件が満たされているか否かを判断することにより行われる。これら全ての条件が満たされる場合、衝突があることを意味し、メモリロケーションが既に使用されていて、優先ビットがセットされていて、認証がまだ成功していない。次にステップ620において、時間の比較が行われる。時間の比較により、現在のメモリロケーションがまだ使用されている、すなわち有効期限がまだ切れていないことが示される場合、ステップ621において、ハッシュテーブルに記憶されているNd nonceが「401」メッセージを使用してクライアント201に再送信される。レコードは変更されないまま保たれる。この特徴は、攻撃者が連続して要求を送信して特定のユーザの専用nonceを変更し、認証フィルタ202におけるこのユーザの認証を妨害することを防ぐ。
【0055】
ステップ620での時間の比較により、H2関数を使用することで得られるメモリロケーションがもはや使用されていないことが示される場合、ステップ616において、新しいnonce Ndが生成される。これは、ステップ617において、「401」メッセージでクライアント201に送信される。ステップ618において、V=1、P=1、及びA=0となるようにレコードが更新される。ステップ615において、V=1、P=1、又はA=0の条件うちの少なくとも1つが満たされないと判断される場合、Ndテーブル内において衝突がない、すなわち計算されたメモリロケーションがテーブル内で空いていると判断することができ、次に、ステップ616、617、及び618が実行される。ステップ618又は621から、プロセスは再びステップ601に続くことができる。
【0056】
ステップ610において、クライアント201から受信したnonce値がテーブルに記憶されているNc値に対応しないと判断される場合、手順がステップ630に続く図6bを参照する。ステップ630において、クライアント201から受信したnonce値は、H1により指し示される記憶されているnonce値と比較される。ステップ631において、H1関数により指し示されるレコードがV=1且つP=0であり、且つ受信nonceがレコードに記憶されているnonce値に対応するか否かが判断される。V=1且つP=0であり、受信nonce値がレコードに記憶されているnonce値に対応する場合、ステップ635において、有効期限が切れているか否かが判断される。ステップ635は、図3において、認証フィルタ202が、ステップ303において送信されたREG−Aメッセージをクライアント201から受信した状況に対応する。期限がまだ切れておらず、且つ受信nonceが認証フィルタ202に記憶されているnonceと同一である場合、ステップ636において、認証フィルタ202はチャレンジへの応答を計算する。次に、ステップ637において、クライアント201により送信されたチャレンジ応答が算出されたチャレンジ応答と比較され、それにより、クライアント201により送信されたチャレンジ応答が正しいか否かを判断することができる。
【0057】
これが、チャレンジが解決される最初のときである場合、すなわちA=0の場合、要求は認証されたとみなされ、ステップ638において、サーバ203に転送される。次に、Aビットが認証に成功したことを示す1にセットされる。これが最初ではない場合、すなわちA=1の場合、ステップ640において、レコードは無効化され、新しい専用nonce値Nd’が生成され、テーブル内のH2により指し示されるインデックスに追加される。次にステップ641において、V=1、P=1、及びA=0となるようにレコードが更新され、生成されたNd’が「401」メッセージでクライアント201に送信される。チャレンジ応答が正しくない場合、ステップ642において、「403」メッセージがクライアント201に返される。
【0058】
ステップ631において、要件V=1且つP=0が満たされない場合、又はnonce比較の結果が否定である場合、ステップ645において、H2により指し示されるレコードが検討される。ステップ645は、図4において、認証フィルタ202が、ステップ405においてクライアント201から送信されたREG−Aメッセージを受信した状況に対応する。ステップ646において、テーブル内において衝突があるか否かが判断される。これは、Vビットが1に等しく且つPビットが1に等しいか否かを判断することにより行われる。これが成立しない場合、又は有効期限が切れている場合、ステップ647において、Nc nonce値を含む「401」メッセージがクライアント201に返送される。ステップ646において衝突が検出される場合、すなわちV=1且つP=1である場合、ステップ648において、時間比較が実行されて、対象であるメモリロケーションがまだ使用されているか否かが検出される。期限がまだ切れていない場合、ステップ649において、受信nonce値はNdテーブルに記憶されているnonce値と比較される。これらの2つのnonce値が一致する場合、手順はステップ636に続く。これらの2つのnonce値が一致しない場合、ステップ650において、Ndテーブルに記憶されているnonce値Ndが「401」メッセージでクライアントに再送信される。一方、ステップ648において、期限が切れていると判断される場合、ステップ647において、Nc nonce値を含む「401」メッセージがクライアント201に返送される。ステップ638、641、647、及び650から、プロセスは再びステップ601に続くことができる。
【0059】
上に提示した認証アルゴリズムの主なパラメータは、Ndテーブルのサイズである。本発明の教示によれば、事前認証手順があるため、このテーブルをREGフラッド攻撃により単純に埋めることはできない。さらに、攻撃者が数人のユーザのパスワードを知ることによりそれらのユーザをコントロールすることができる場合、攻撃者はそれらのユーザしか妨害しない。何故ならば、H2関数の使用により、攻撃者が他のユーザを妨害することが阻止されるためである。
テーブルは、2つのパラメータを使用してサイズ決めされるべきである。
−同時に登録を望むユーザの数。これはデータベース内のユーザ(すなわち、顧客)の数に関係する。
−登録手順の平均持続時間、すなわちnonceをNdテーブルに記憶しておくべき時間。これは、専用nonce値の有効期限を正しく設定することにより制御することができる。
【0060】
認証アルゴリズムは、SIPサーバ203又はゲートウェイの前にある、フィルタリング装置202において実施することができる。別法として、認証アルゴリズムは、1つ又は複数のSIPサーバ203を保護するフィルタリング装置として、SIPサーバ203において直接実施してもよい。この場合、フィルタとSIPサーバとの間でのダイジェスト認証を完全にディセーブルすることができる。
【0061】
より一般的には、提案するメカニズムは、UDPを介して実行されRFC2617に規定されるダイジェスト認証を使用するあらゆるプロトコルに適用することが可能である。さらに、フラッド攻撃に対抗するためにTCPコンテキスト解放方法(TCP context free method)、例えばSYNクッキーと組み合わせて、TCPを介して実行されるプロトコルにも適用することが可能である。
【0062】
本発明は、認証フィルタ202のコンピュータ手段にロードされて実行されると、本発明の実施形態の任意の方法のステップを実施することができるコンピュータプログラム製品にも等しく関連する。
【0063】
本発明は、上記方法のステップを実施するように構成される認証フィルタ202にも等しく関連する。コンピュータプログラムは、認証フィルタ202により実行されるように構成することができる。
【0064】
本発明を図面及び上記説明において詳細に図示し説明したが、このような図及び説明は制限ではなく説明又は例示とみなされるべきであり、本発明は開示された実施形態に制限されない。
【0065】
特許請求する本発明の実施に際して、図面、本開示、及び添付の特許請求の範囲の研究から、開示した実施形態の他の変形も当業者により理解され、実施が可能である。例えば、攻撃の検出は、認証フィルタ202で受信するアクセス要求数の検出に基づいてもよい。これは、REGメッセージを受信する都度、専用nonce値Ndを生成するのを防ぐ。特許請求の範囲では、「備える(含む)(comprising)」という言葉は、他の要素又はステップを除外せず、不定冠詞「a」又は「an」は複数を除外しない。単一のプロセッサ又は他のユニットが、特許請求の範囲に記載される幾つかの項目の機能を満たすことができる。単に、異なる特徴が異なる相互に従属する請求項に記載されるということは、これらの特徴の組み合わせを有利に使用できないことを示すものではない。特許請求の範囲内のあらゆる参照符号は、本発明の範囲を制限するものとして解釈されるべきではない。
【図面の簡単な説明】
【0066】
【図1】SIPクライアントとSIP登録サーバとの間の認証を伴う典型的なSIP登録シーケンスのフローチャートである。
【図2】本発明の教示を適用することが可能な一環境を示すブロック図である。
【図3】本発明の一実施形態による簡易認証手順を示すフローチャートである。
【図4】本発明の一実施形態による二重認証手順を示すフローチャートである。
【図5】本発明の一実施形態によるハッシュテーブルの構造を示す図である。
【図6a】本発明の一実施形態による認証方法を示すフローチャートである。
【図6b】本発明の一実施形態による認証方法を示すフローチャートである。

【特許請求の範囲】
【請求項1】
ユーザ端末(201)及び認証サーバ(202)を備える通信システムにおいてユーザを認証する方法であって、前記認証サーバは、前記システムにおいて一意の専用nonce値及び定まった期間中一定の値をとり前記認証サーバ(202)により管理される全てのユーザに共通である共通nonce値を含む2種類のnonce値を記憶することができ、前記ユーザを認証する方法は、前記認証サーバ(202)により実行される、
前記ユーザ端末(201)からアクセス要求を受信するステップ(301、401)と、
前記アクセス要求への応答として前記ユーザ端末(201)に送信すべき第1のnonce値の種類を判断するために所与の基準を使用するステップ(605)であって、前記所与の基準が満たされる場合には前記専用nonce値を送信し、満たされない場合には前記共通nonce値を送信する、所与の基準を使用するステップと、
前記ユーザ端末(201)から応答を受信するステップ(303、403)であって、前記応答は第2のnonce値及び前記認証サーバ(202)により送信されるnonce値への応答コードを含む、受信するステップと、
前記応答コードが正しいか否か、及び前記第2のnonce値が前記認証サーバ(202)により送信された前記第1のnonce値に対応するか否かを判断するステップと
を含む、ユーザを認証する方法。
【請求項2】
前記所与の基準は、
前記認証サーバ(202)が前記専用nonce値を生成すること(603)、
前記生成された専用nonce値のメモリロケーションを求めること(604)、及び
前記メモリロケーションが空いている場合、前記所与の基準が満たされると結論づけること
を含む、請求項1に記載の方法。
【請求項3】
前記専用nonce値は、前記認証サーバ(202)によりランダムに生成される、請求項2に記載の方法。
【請求項4】
前記所与の基準は、
単位時間内で受信した前記アクセス要求数を求めること、及び
前記単位時間内で受信した前記アクセス要求数が所定の閾値未満の場合、前記所与の基準が満たされると結論づけること
を含む、請求項1に記載の方法。
【請求項5】
前記応答コードは、前記認証サーバ(202)から受信される前記nonce値並びに前記ユーザのパスワード及びユーザ名に基づいて、前記ユーザ端末(201)により計算される、請求項1〜4のいずれか1項に記載の方法。
【請求項6】
前記所与の基準が満たされる場合、前記専用nonce値への前記応答コードが正しく且つ前記第2のnonce値が前記第1のnonce値に対応すると判断された後、前記アクセス要求をサーバ(203)に転送すること(304)をさらに含む、請求項1〜5のいずれか1項に記載の方法。
【請求項7】
前記応答コードが正しくない、又は前記第2のnonce値が前記第1のnonce値に対応しないと判断される場合、前記アクセス要求を拒絶すること(612、642)をさらに含む、請求項1〜6のいずれか1項に記載の方法。
【請求項8】
前記所与の基準が満たされる場合、
前記専用nonce値はテーブルに記憶され、
前記テーブル内でのメモリロケーションは、前記ユーザ端末(201)のインターネットプロトコルソースアドレス、前記ユーザ端末(201)のユーザデータグラムプロトコルソースポート、及び前記専用nonce値を使用することによりインデックス付けされる、
請求項1〜7のいずれか1項に記載の方法。
【請求項9】
前記所与の基準が満たされない場合、前記共通nonce値への前記応答コードが正しく且つ前記第2のnonce値が前記第1のnonce値に対応すると判断された後、
前記専用nonce値を生成すること、
前記生成された専用nonce値を前記ユーザ端末(201)に送信すること(404)、
前記ユーザ端末(201)から第2の応答コードを受信すること(405)、
前記第2の応答コードが正しいことを検証すること、及び
前記アクセス要求を前記サーバ(203)に転送すること(406)
をさらに含む、請求項1〜5又は7のいずれか1項に記載の方法。
【請求項10】
前記所与の基準が満たされない場合、前記共通nonce値への前記応答コードが正しく且つ前記第2のnonce値が前記第1のnonce値に対応すると判断された後、
前記専用nonce値はテーブルに記憶され、
前記テーブル内でのメモリロケーションは、前記ユーザ端末(201)のユーザ名を使用することによりインデックス付けされる、
請求項1〜5、7、又は9のいずれか1項に記載の方法。
【請求項11】
前記テーブル内での前記メモリロケーションにインデックス付けする方法に関わりなく、単一のテーブルが使用される、請求項8又は10に記載の方法。
【請求項12】
前記共通nonce値及び前記専用nonce値は有効期限を有する、請求項1〜11のいずれか1項に記載の方法。
【請求項13】
前記テーブルの特定のメモリロケーション内のそれぞれのエントリには優先ビット、認証ビット、及びタイムスタンプが関連付けられ、
前記優先ビットがセットされていない場合、
前記認証ビットにより対応する前記要求が既に承認されていることが示される場合、又は
前記タイムスタンプにより現在の前記エントリがもはや有効ではないことが示される場合、
前記それぞれのエントリは新しいnonce値で上書きすることができる、請求項8、10、又は11に記載の方法。
【請求項14】
前記優先ビットは、前記共通nonce値への前記応答コードが正しいと判断され且つ前記第2のnonce値が前記第1のnonce値に対応すると判断されている場合にセットされ、その他の場合はセットされない、請求項13に記載の方法。
【請求項15】
前記認証ビットは、前記アクセス要求がサーバ(203)に転送されている場合にセットされ、転送されていない場合にセットされない、請求項13に記載の方法。
【請求項16】
前記認証サーバ(202)のコンピュータ手段にロードされて実行されると、請求項1〜15のいずれか1項に記載の方法のステップを実施する命令を含むコンピュータプログラム製品。
【請求項17】
通信システムにおいてユーザ端末(201)を認証する装置であって、前記装置は、前記システムにおいて一意の専用nonce値及び定まった期間中一定の値をとり前記装置により管理される全てのユーザに共通である共通nonce値を含む2種類のnonce値を記憶することができ、前記装置は、
前記ユーザ端末からメッセージを受信する受信機と、
前記ユーザ端末(201)からのアクセス要求への応答として前記ユーザ端末(201)に送信すべき第1のnonce値の種類を判断するために所与の基準を使用するプロセッサであって、前記所与の基準が満たされる場合には前記専用nonce値を送信するように構成され、満たされない場合には前記共通nonce値を送信するように構成され、さらに、前記第1のnonce値への応答として前記ユーザ端末(201)から受信される第2のnonce値及び応答コードを含む応答が正しいか否かを判断するように構成される、プロセッサと
を備える、ユーザ端末(201)を認証する装置。
【請求項18】
前記共通nonce値及び前記専用nonce値を記憶するように構成されるメモリをさらに備える、請求項17に記載の装置。
【請求項19】
前記ユーザ端末(201)を認証する認証サーバであって、請求項17又は18に記載の装置を備える、認証サーバ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6a】
image rotate

【図6b】
image rotate


【公開番号】特開2008−252879(P2008−252879A)
【公開日】平成20年10月16日(2008.10.16)
【国際特許分類】
【外国語出願】
【出願番号】特願2008−46388(P2008−46388)
【出願日】平成20年2月27日(2008.2.27)
【出願人】(503163527)ミツビシ・エレクトリック・インフォメイション・テクノロジー・センター・ヨーロッパ・ビーヴィ (175)
【氏名又は名称原語表記】MITSUBISHI ELECTRIC INFORMATION TECHNOLOGY CENTRE EUROPE B.V.
【住所又は居所原語表記】Capronilaan 46, 1119 NS Schiphol Rijk, The Netherlands
【Fターム(参考)】