説明

認証方法、システム、サーバ、およびクライアント

認証を処理するための方法は、サーバが起動メッセージ乱数を使用して起動メッセージを生成し、起動メッセージ乱数を使用することによって生成されたその起動メッセージを端末に伝送し、その端末は、起動メッセージ乱数を抽出することができ、その起動メッセージ乱数が有効であるとその端末が判定した場合、その起動メッセージ乱数を使用してダイジェストを生成し、その起動メッセージ乱数を使用することによって生成された起動メッセージ認証し、認証に成功した場合、その端末は、起動メッセージによって指示されたサーバにセッション要求を開始し、そのセッション要求はセッションIDを含む。対応するシステム、サーバ、および端末も提供する。本発明を適用することにより、DSプロトコルおよびDMプロトコルを使用する端末およびサーバの認証プロセスをより安全にすることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本出願は、発明の名称を“Authentication Method, System, Server, and Client”とする2007年11月8日に中国特許庁に出願された中国特許出願第200710170309.5号、および発明の名称を“Authentication Method, System, Server, and Client”とする2007年11月27日に中国特許庁に出願された中国特許出願第200710195462.3号の優先権を主張し、参照によりその全体が本明細書に組み込まれる。
【0002】
本発明は、通信技術に関し、具体的にはデータ同期(DS)プロトコルおよびデバイス管理(DM)プロトコルに基づく認証方法、ならびにシステム、サーバ、およびクライアントに関する。
【背景技術】
【0003】
同期マークアップ言語(SyncML)は、個人情報および企業間データを複数のプラットフォームとネットワークとの間で同期させるために開発されたプロトコルである。このSyncMLプロトコルは、関係するエンティティ間の一連の動作を定義し、そのような動作を伝送するための1組のメッセージフォーマットを定義する。このSyncMLに基づいて、OMA(オープンモバイルアライアンス)が、DSプロトコルおよびDMプロトコルを開発している。
【0004】
DSプロトコルは、個人情報および企業間データを複数のプラットフォームとネットワークとの間で同期させることができる。このDSプロトコルは、モバイルデバイスまたはアプリケーションサーバとネットワークサーバとの間のデータを同期するため、もしくは2台のPC(パーソナルコンピュータ)間のデータを同期するために一般に利用される。
【0005】
DMプロトコルは、管理命令データをネットワークからクライアントにダウンロードし、そのクライアントのソフトウェアおよびハードウェアを更新し、構成し、診断するためにクライアントにその管理命令を自動的に実行させる、費用効率の高い遠隔管理の解決策である。このDMはさらに、オペレータが必要とするサービス情報、およびクライアントの機能に関する情報をクライアントからサーバに転送し、そして他のサービスの動作をサポートする。
【0006】
図1に示すように、サーバおよびクライアントを効果的に認証するために、このDSプロトコルおよびDMプロトコルに、同様のセキュリティ認証メカニズムが適用される。
【0007】
ステップ101:サーバが、セッションを起動するために起動メッセージ(Trigger message)をクライアントに送信する。
この起動メッセージは、サーバの乱数(s_nonce)を使用することによって生成されるダイジェスト、および起動情報(TriggerInfo)を伝送する。この起動メッセージは、ショートメッセージで、または他のプッシュメッセージで伝送することができる。
s_nonceは、クライアントによって生成され、サーバが利用可能な乱数(ノンス:nonce(number used once(一度だけ使われる数)))である。
【0008】
ステップ102:クライアントが、セッション要求をサーバに送信する。
起動メッセージを受信した後、クライアントは記憶されたs_nonceを使用してダイジェスト情報を生成し、その起動メッセージを認証する。認証に成功した場合、クライアントは、セッションを開始するためにセッション要求をサーバに送信する。
このセッション要求は、セッション識別子(Session ID)、およびそのクライアントの認証情報を伝送する。この認証情報は、クライアントnonce(c_nonce)を使用することによって生成されるダイジェストである。
c_nonceは、サーバによって生成され、クライアントが利用可能である。
このステップで、クライアントとサーバとの間にセッション接続がセットアップされる。
【0009】
ステップ103:サーバが、認証結果および認証要求を伝送する応答を返す。
クライアントによって送信される認証情報に基づいて、サーバはそのクライアントを認証し、次いで認証結果およびサーバ認証要求を伝送する応答を返す。
より詳細には、この応答は、サーバがクライアントを認証することについての結果、セッションID、およびサーバの認証情報(すなわちs_nonceを使用することによって生成されるダイジェスト)を伝送する。
【0010】
ステップ104:クライアントが、認証結果を伝送するメッセージをサーバに返す。
サーバによって送信される認証情報に基づいて、クライアントはそのサーバを認証し、次いで認証結果を伝送するメッセージをサーバに返す。
より詳細には、このメッセージは、クライアントがサーバを認証することについての結果および他の関連情報を伝送する。
【0011】
サーバがクライアントの認証に失敗し、またはクライアントがサーバの認証に失敗する、例えばパスワードが正しくないもしくはnonce値が正しくない場合、サーバまたはクライアントは、チャレンジ要求を相手方に直接送信して再認証することができる。
【0012】
起動メッセージで使用されるs_nonceが正しくないことをサーバが認識した場合、例えば、サーバが起動メッセージを幾度も送信した後、そのクライアントから通常応答を受信しない場合、そのサーバはそのs_nonceが正しくないことを知り、省略時nonce“0x00000000”を使用することにより、起動メッセージのダイジェストを生成する。s_nonceを使用することによって生成されるダイジェストに基づいて起動メッセージを認証することに失敗した後、クライアントは省略時nonceを使用してダイジェストを生成し、その起動メッセージを再認証する。その認証に成功した場合、省略時nonceを使用してサーバおよびクライアントを認証し、次いでs_nonceおよびc_nonceが更新される。図2にその更新プロセスを示す。
【0013】
ステップ201:サーバが、セッションを起動するために起動メッセージをクライアントに送信する。
前のs_nonceが正しくないと判定した後、サーバは省略時nonceを使用して起動メッセージを生成し、そのメッセージをクライアントに送信する。この起動メッセージは、省略時nonceを使用することによって生成されるダイジェスト、および起動情報を伝送する。
【0014】
ステップ202:クライアントが起動メッセージの認証に失敗し、省略時nonceを使用して再認証する。
起動メッセージを受信した後、クライアントは記憶されたs_nonceを使用してその起動メッセージを認証する。何らかの理由で認証に失敗した場合、クライアントは省略時nonceを使用してその起動メッセージを再認証する。
認証に成功した場合、それはサーバが前に使用したs_nonceが正しくないことを意味し、クライアントはセッション要求をサーバに送信する。
【0015】
ステップ203:クライアントが、セッション要求をサーバに送信する。
省略時nonceを使用することにより成功裏に認証した後、クライアントは、セッションを開始するためにセッション要求をサーバに送信する。
このセッション要求は、セッションID、および省略時nonceを使用することによって生成されるダイジェストを伝送する。
【0016】
ステップ204:サーバが、認証結果、認証要求、およびc_nonceを更新するためのコマンドを伝送する応答を返す。
サーバは、省略時nonceを使用することによりクライアントを認証し、次いで認証結果および認証要求を伝送する応答をクライアントに返す。
より詳細には、この応答は、サーバがクライアントを認証した結果、c_nonceを更新するためのコマンド、および省略時nonceを使用することによって生成されるダイジェストを伝送する。
【0017】
ステップ205:クライアントが、認証結果、およびs_nonceを更新するためのコマンドを伝送するメッセージをサーバに返す。
クライアントは、省略時nonceを使用することによりサーバを認証する。認証に成功した後、クライアントはc_nonceを更新し、次いで認証結果、およびs_nonceを更新するためのコマンドを伝送するメッセージをサーバに返す。
【0018】
ステップ206:サーバが、s_nonce更新結果をクライアントに返す。
【発明の概要】
【発明が解決しようとする課題】
【0019】
本発明を開発する過程において、本発明者は、従来技術に少なくとも以下の欠点を見出す。
s_nonceが正しくない場合、認証するために省略時nonceが使用される。省略時nonceはオープンな固定値であり、悪意あるサーバは、この省略時nonceを使用するメッセージを傍受し、そのメッセージを繰り返し送信してサーバまたはクライアントを攻撃することができる。
【0020】
従来技術では1つのセッションで2つのnonce値、つまりs_nonceおよびc_nonceが使用され、これらのnonce値は、サーバおよびクライアントによりそれぞれ生成され、更新されるため、クライアントおよびサーバに重い管理負荷を負わせる。
【課題を解決するための手段】
【0021】
本発明の実施形態は、クライアントとサーバとの間で行われ、DSプロトコルまたはDMプロトコルに基づく認証プロセスを最適化するための、DSプロトコルまたはDMプロトコルに基づく認証方法、システム、サーバ、およびクライアントを提供する。
【0022】
本発明の一実施形態でのDSプロトコルまたはDMプロトコルに基づく認証方法は、
サーバが、起動メッセージノンス(nonce)を使用して起動メッセージを生成し、クライアントが起動メッセージノンスを抽出することができるように、生成された起動メッセージをクライアントに送信するステップと、
起動メッセージノンスが有効であると判定した後、起動メッセージノンスを使用してダイジェストを生成し、起動メッセージノンスを使用することによって生成された起動メッセージを認証するステップと、
認証に成功した後、起動メッセージによって指示されたサーバに、セッション識別子を伝送するセッション要求を送信するステップと、
を含む。
【0023】
本発明の一実施形態でのDSプロトコルまたはDMプロトコルに基づく別の認証方法は、
クライアントが、更新される必要があるサーバノンスを判定するステップと、
新たなサーバノンスを生成し、新たなサーバノンスをセッション要求に追加し、サーバが新たなサーバノンスを伝送するセッション要求を受信した後、新たなサーバノンスを使用して、記憶されたサーバノンスを更新することができるように、そのセッション要求をサーバに送信するステップと、
を含む。
【0024】
本発明の一実施形態でのDSプロトコルまたはDMプロトコルに基づく別の認証方法は、
クライアントが、サーバによって送信され、省略時ノンスを使用することによって生成された起動メッセージを受信するステップと、
起動メッセージを受信した後、サーバノンスを使用して起動メッセージを認証し、認証に失敗した場合、省略時ノンスを使用して起動メッセージを認証し、認証に成功した後、セッション要求を生成し、省略時ノンスを使用してセッションをセットアップし、サーバがサーバノンスを更新するように、セッション内で新たなサーバノンスをサーバに送信し、サーバによって送信され、省略時ノンスを使用することによって生成された認証情報を受信してサーバを認証し、サーバからクライアントノンスを更新するコマンドを受信してクライアントノンスを更新するステップと、
サーバノンスおよびクライアントノンスを更新した後、サーバパスワードおよびクライアントパスワードを更新するステップと、
を含む。
【0025】
本発明の一実施形態でのDSプロトコルまたはDMプロトコルに基づく別の認証方法は、
クライアントが、省略時ノンスを使用することによって生成されたセッション要求をサーバに送信するステップと、
サーバが、セッション要求を受信した後、認証が必要であると判定した場合は省略時ノンスを使用してセッション要求を認証し、認証に成功した後にクライアントに、認証結果、ランダムノンスを使用することによって生成された認証要求、および、クライアントノンスを更新するコマンドを伝送する応答を返すステップと、
クライアントが、応答を受信し、認証が必要であると判定した場合は、省略時ノンスを使用して応答を認証し、認証に成功した後にサーバに、認証結果、およびサーバノンスを更新するコマンドを伝送する応答を返すステップと、
を含む。
【0026】
本発明の一実施形態でのDSプロトコルまたはDMプロトコルに基づく別の認証方法は、
クライアントが、サーバによって送信され、省略時ノンス、セッション識別子、または、起動メッセージ識別子を使用することによって生成された起動メッセージを受信するステップと、
起動メッセージを受信した後、サーバノンスを使用して起動メッセージを認証し、認証に失敗した場合、省略時ノンス、セッション識別子、または、起動メッセージ識別子を使用して起動メッセージを認証し、認証に成功した後、クライアントノンスを使用してセッション要求を生成し、サーバがクライアントノンスを使用してクライアントを認証することができるように、セッション要求をサーバに送信するステップと、
を含む。
【0027】
本発明の一実施形態でのDSプロトコルまたはDMプロトコルに基づく認証システムは、
起動メッセージノンスを使用して起動メッセージを生成し、生成された起動メッセージを送信するように構成されたサーバと、
起動メッセージノンスを使用することによって生成された起動メッセージを受信し、起動メッセージノンスを抽出し、起動メッセージノンスが有効であると判定した後、起動メッセージノンスを使用してダイジェストを生成し、起動メッセージノンスを使用することによって生成された起動メッセージを認証し、認証に成功した後、起動メッセージによって指示されたサーバにセッション要求を送信するように構成されたクライアントと、
を含む。
【0028】
本発明の一実施形態で提供するサーバは、
起動メッセージノンスを使用してDSプロトコルまたはDMプロトコルに準拠する起動メッセージを生成するように構成された第1の生成ユニットと、
クライアントが起動メッセージノンスを抽出することができるように、起動メッセージノンスを使用することによって生成された起動メッセージをクライアントに送信し、起動メッセージノンスが有効であると判定した後、起動メッセージノンスを使用して、その起動メッセージノンスを使用することによって生成された起動メッセージを認証し、認証に成功した後、起動メッセージによって指示されたサーバにセッション要求を送信するように構成された送信ユニットと、
を含む。
【0029】
本発明の一実施形態で提供するクライアントは、
起動メッセージノンスを使用することによってサーバによって生成され、DSプロトコルまたはDMプロトコルに準拠する起動メッセージを受信するように構成された受信ユニットと、
起動メッセージノンスを抽出し、起動メッセージノンスが有効であると判定した後、起動メッセージノンスを使用してダイジェストを生成し、起動メッセージノンスを使用することによって生成された起動メッセージを認証し、認証に成功した後、起動メッセージによって指示されたサーバにセッション要求を送信するように構成された第1の認証ユニットと、
を含む。
【0030】
本発明の一実施形態で提供する別のクライアントは、
更新される必要があるサーバノンスを判定するように構成された判定ユニットと、
新たなサーバノンスを生成し、新たなサーバノンスをセッション要求に追加し、サーバが新たなサーバノンスを伝送するセッション要求を受信した後、新たなサーバノンスを使用して、記憶されたサーバノンスを更新することができるように、セッション要求をサーバに送信するように構成された第1の生成ユニットと、
を含む。
【0031】
本発明の一実施形態で提供する別のクライアントは、
起動メッセージノンスを使用することによりサーバによって生成され、DSプロトコルまたはDMプロトコルに準拠する起動メッセージを受信するように構成された受信ユニットと、
起動メッセージを受信した後、サーバノンスを使用して起動メッセージを認証し、認証に失敗した場合、省略時ノンスを使用してその起動メッセージを認証し、認証に成功した後、クライアントノンスを使用してセッション要求を生成し、サーバがクライアントノンスを使用してそのクライアントを認証することができるように、セッション要求をサーバに送信するように構成された生成ユニットと、
を含む。
【0032】
上記の技術的解決策は、このシステムのセキュリティを効果的に向上させる。
【0033】
本発明の一実施形態でのDSプロトコルまたはDMプロトコルに基づく別の認証方法は、
クライアントが、サーバによって送信された起動メッセージを受信するステップと、
受信された起動メッセージ内で伝送された認証情報を抽出し、サーバを認証するステップと、
認証に成功した後、サーバおよびクライアントによって共有されているノンスを使用してセッション要求を生成し、セッション要求をサーバに送信するステップと、
サーバが、セッション要求を受信した後、共有されているノンスを使用してクライアントを認証するステップと、
クライアントが、サーバから応答を受信した後、共有されているノンスを使用してサーバを認証するステップと、
を含み、
応答は共有されているノンスを使用することによって生成された認証情報を伝送する。
【0034】
上記の技術的解決策により、クライアントとサーバとの間での認証を実施するために、サーバおよびクライアントは、セッションプロセスで従来技術のs_nonceおよびc_nonceの代わりにnonceを共有するため、システム負荷を効果的に軽減する。
【図面の簡単な説明】
【0035】
【図1】従来技術での認証方法のフロー図である。
【図2】従来技術での、認証を行うために省略時nonceを使用し、s_nonceおよびc_nonceを更新することに関するフロー図である。
【図3】本発明の実施形態1での認証方法のフロー図である。
【図4】nonceが追加された後のメッセージフォーマットの構造を示す図である。
【図5】本発明の実施形態1において、s_nonceが正しくない場合の認証方法のフロー図である。
【図6】本発明の実施形態2での認証方法のフロー図である。
【図7】本発明の実施形態4での認証方法のフロー図である。
【図8】本発明の実施形態5での認証方法のフロー図である。
【図9】本発明の実施形態6での認証方法のフロー図である。
【図10】本発明の実施形態7での認証方法における、新たなs_nonceを伝送する状態応答メッセージフォーマットを示す図である。
【図11】本発明の実施形態8での認証方法のフロー図である。
【図12】本発明の実施形態9での認証方法のフロー図である。
【図13】本発明の実施形態10での認証方法のフロー図である。
【図14】本発明の実施形態1での認証システムの構造を示す図である。
【図15】本発明の実施形態1でのクライアントの構造を示す図である。
【図16】本発明の実施形態2でのクライアントの構造を示す図である。
【図17】本発明の実施形態2での認証システムの構造を示す図である。
【発明を実施するための形態】
【0036】
本発明の実施形態は、クライアントとサーバとの間で行われ、DSプロトコルまたはDMプロトコルに基づく認証プロセスを最適化するための、DSプロトコルまたはDMプロトコルに基づく認証方法、システム、サーバ、およびクライアントを提供する。
【0037】
本明細書で言及するセッション内でのメッセージ認証に適用されるセキュリティメカニズムは、アプリケーション層セキュリティメカニズムである。
【0038】
本発明の実施形態1での認証方法では、サーバが起動メッセージ用のnonceを生成し、このnonceはs_nonceおよびc_nonceとは異なり、起動メッセージに利用可能である。このnonceは、起動メッセージnonceと呼ぶことができる。サーバはこのnonceを使用して認証情報を生成し、この新たなnonceおよび認証情報を起動メッセージとともにクライアントに送信する。クライアントは、この新たなnonceを使用してその起動メッセージを認証する。
【0039】
図3に示すように、本発明の実施形態1での認証方法は以下のステップを含む。
ステップ301:サーバが、起動メッセージをクライアントに送信する。このメッセージは、起動メッセージnonceを伝送する。
【0040】
起動メッセージを送信する前に、サーバは起動メッセージnonceを生成し、このnonceを使用してダイジェストを生成し、次いでそのダイジェストを使用して起動メッセージを生成する。
【0041】
この実施形態では、この起動メッセージnonceを使用する3種類の方法がある。
【0042】
(1)起動メッセージを生成するとき、サーバは、自らのシステム時間(Ts)を起動メッセージnonceとして使用し、このTsを起動メッセージ内に追加する。したがって、その起動メッセージを受信した後、クライアントは、ローカル時間(Tc)をシステム時間(Ts)と比較することにより、そのnonceの有効性を判定することができる。nonceに関しては、その有効性は一般にnonceの鮮度と呼ばれる。新鮮なnonceは有効であり、新鮮でないnonceは無効である。
その起動メッセージを受信した後、クライアントはTsとTcとの間の差、つまり|Ts-Tc|を計算する。|Ts-Tc|が、事前に設定された閾値「Diff」よりも小さい場合、その起動メッセージnonceは有効であり、|Ts-Tc|が、事前に設定された閾値「Diff」より小さくない場合、その起動メッセージnonceは無効である。
閾値Diffは、概してクライアントにおいて設定され、ネットワーク状態に応じて決定される経験値とすることができる。モバイルネットワーク自体が安定しておらず、起動メッセージの伝送遅延を引き起こす傾向があるからである。小さすぎる閾値は、起動メッセージnonceを無効にする傾向があり、閾値が大きすぎる場合、悪意あるサーバが起動メッセージを傍受し、そのメッセージをクライアントに繰り返し続ける場合、クライアントはそれらのメッセージを有効な情報とみなし、|Ts-Tc|がその閾値の範囲に入る限りそれらのメッセージを処理する。より大きい閾値は、より攻撃を受けやすい。
【0043】
(2)起動メッセージを生成する前に、サーバはまず特定の規則に従って起動メッセージ用のセッションIDを生成する。この規則は、現在のセッションIDから前のセッションIDを推論することを可能にする。セッションIDは、起動メッセージnonceの役割をする。サーバはこのnonceを使用してダイジェストを生成し、そのダイジェストを使用して起動メッセージを生成する。
起動メッセージを受信した後、クライアントは、その起動メッセージによって起動されようとするセッションのセッションIDを抽出し、このセッションID、サーバID、サーバパスワード、および起動メッセージの他のフィールドを使用して、そのメッセージを認証するためのダイジェストを生成する。認証に成功した後、クライアントはセッション要求を送信して、そのセッションIDに対応するセッションをセットアップする。サーバは、そのセッション要求からセッションIDを抽出してセッションを識別する。
さらに、クライアントが、その起動メッセージによって起動されようとするセッションのセッションIDを抽出した後、そのクライアントは、そのセッションIDの符号化規則に従ってそのセッションIDの鮮度を推測し、またはそのクライアントは、使用したセッションIDを記憶し、起動メッセージのセッションIDを、記憶されたセッションIDと比較して鮮度を判定することができる。
この方法では、セッションIDは、起動メッセージID(通知メッセージID)によって置換することができる。この起動メッセージIDは、クライアントによって返される起動メッセージ処理結果を、起動メッセージに対応付ける。
【0044】
(3)起動メッセージを生成するとき、サーバは各起動メッセージを番号付けし、その番号を排他的起動メッセージnonceとして使用する。サーバはこのnonceを使用してダイジェストを生成し、そのダイジェストを使用して起動メッセージを生成する。
この番号は昇順または降順とすることができる。起動メッセージを受信した後、クライアントはそのメッセージ内で伝送されるnonceを、記憶されたnonceと比較する。番号が昇順である場合、新たなnonceの方が大きい場合、そのnonceは有効であり、そうでなければそのnonceは無効である。番号が降順である場合、新たなnonceの方が小さい場合、そのnonceは有効であり、そうでなければそのnonceは無効である。
新たなnonceが有効であると判定し、サーバを成功裏に認証した後、クライアントはその新たなnonceを記憶し、その新たなnonceは、次の起動メッセージnonceと比較するために利用することができる。
【0045】
この方法では、悪意あるサーバが起動メッセージを傍受し、このメッセージをクライアントに繰り返し送信することによりそのクライアントを攻撃した場合、この起動メッセージによって使用されるnonceは記録されているので、すべての悪意あるメッセージが無効であると判定され、よって悪意あるサーバからの攻撃を防ぐ。
【0046】
さらに、モバイルネットワークの不安定性のため、後に送信されるメッセージがクライアントに最初に届くことがあり、様々なセッションでサーバによって送信される起動メッセージが、変更された順序でクライアントに届き、その結果、クライアントが、有効なメッセージを誤って無効なメッセージと判定する可能性がある。
例えば、サーバが3つの異なるセッションで3つの起動メッセージを連続して送信する。この3つの起動メッセージによって使用される起動メッセージnonceはそれぞれ、30、31、および32である。しかし、モバイルネットワークの不安定性のため、クライアントはそのnonceが32である起動メッセージを最初に受信する。したがって、クライアントはこのメッセージが有効であると判定し、このnonceを記録する。残りの2つの起動メッセージがこのクライアントに届くとき、このクライアントはそれら2つのメッセージのnonceを、記録されたnonceと比較する。それら2つのメッセージのnonceが、記録されたnonceよりも小さいので、クライアントはそれらのメッセージを無効であると誤って判定する。
【0047】
そのような問題に関して、本発明の実施形態は3つの解決策を提案する。
解決策1:クライアントがすべての起動メッセージnonce値、または最後に受信した起動メッセージnonceを記憶し、無効であると判定された起動メッセージnonceを、その記憶したnonceと比較する。そのnonceが記憶したnonceと異なる場合、クライアントはそのnonceが有効であると判定し、そのnonceを記憶する。
記憶空間が限られている場合、記憶空間が設定され、記憶されたnonce値の量が上限に達した場合、記憶された最も小さいnonceが削除される。
【0048】
解決策2:起動メッセージnonce値が昇順で番号付けされる場合、クライアントは受信した最も大きいnonce、および現在の最大値よりも小さくかつ受信されていないnonce値のすべてまたは一部を記憶し、そのクライアントは、無効であると判定された起動メッセージnonceを、その記憶したnonce値と比較し、そのnonceが記憶したnonce値と異なる場合、そのnonceが有効であると判定し、そのnonceを記憶する。起動メッセージnonce値が降順で番号付けされる場合、クライアントは受信した最も小さいnonce、および現在の最小値よりも大きくかつ受信されていないnonce値のすべてまたは一部を記憶し、そのクライアントは、無効であると判定された起動メッセージnonceを、その記憶したnonce値と比較し、そのnonceが記憶したnonce値と異なる場合、そのnonceが有効であると判定し、そのnonceを記憶する。
例えば、初期値が1であり、番号付け方式が昇順であり、クライアントが起動メッセージnonce値、1、2、4、5、および7を順次受信すると仮定する。この場合、このクライアントは最も大きいnonceである「7」、ならびに7よりも小さくかつ受信されていないnonce値、つまり「3」および「6」を記録する。このクライアントが起動メッセージnonce「6」を受信するとき、このクライアントは「6」を最大値の「7」と比較する。6は7よりも小さいので、このnonceは無効である。次いで、このクライアントは「6」を「3」および「6」と比較し、同じ値を見つけ、その結果このクライアントは、この起動メッセージnonceが有効であると判定し、記録されていた「6」を削除する。番号付け方式が降順である場合にも判定方法は同様であり、ここではこれ以上繰り返さない。
【0049】
解決策3:起動メッセージnonce値が昇順で番号付けされる場合、クライアントは最も大きいnonceを記憶し、その記憶した最も大きいnonceよりもnonceが小さいすべての起動メッセージを無効であるとみなす。起動メッセージnonce値が降順で番号付けされる場合、クライアントは最も小さいnonceを記憶し、その記憶した最も小さいnonceよりもnonceが大きいすべての起動メッセージを無効であるとみなす。サーバが、ある期間内にクライアントから応答を受信しない場合、そのサーバは番号付け規則に従って新たなnonceを生成し、その新たなnonceを伝送する起動メッセージを送信する。
【0050】
上記に説明したのは、本発明の一実施形態での起動メッセージnonceを使用する方法である。
【0051】
システム時間または起動メッセージ番号を起動メッセージnonceとして使用する場合、起動メッセージnonceは、起動メッセージのメッセージヘッダ内またはメッセージ本体内で伝送することができる。メッセージヘッダを例にとると、図4に示すように、nonceが追加されたこのメッセージフォーマットは、ダイジェスト、起動メッセージヘッダ、および起動メッセージ本体を含む。
【0052】
起動メッセージヘッダは、バージョン、ユーザ対話方式(UI方式)、セッションイニシエータ、nonce、予備フィールド(将来使用)、セッションID、サーバ識別子の長さ(長さ識別子)、およびサーバ識別子を含む。
【0053】
さらに、本発明の実施形態は、起動メッセージnonceを使用してダイジェストを生成する次の2つの方法を提供する。
方法1:仮にH=MD5ハッシュ関数とし、B64=Base64符号化関数とする。ダイジェストは次式で表すことができる。
ダイジェスト=H(B64(H(サーバ識別子:パスワード)):nonce:B64(H(起動)))、
ただし、サーバ識別子フィールドはサーバ識別子であり、パスワードフィールドはサーバパスワードであり、nonceフィールドは起動メッセージnonce(すなわち上述のシステム時間(Ts)、セッションID、または起動メッセージ番号)であり、起動フィールドは、起動メッセージの起動メッセージヘッダおよび起動メッセージ本体を含む。
起動メッセージを受信し、その起動メッセージ内で伝送される起動メッセージnonceが有効であると判定した後、クライアントは、そのサーバに対応するパスワードを求めてクライアント管理ツリーを検索する。クライアントは、見つかった「パスワード」、起動メッセージ内の「サーバ識別子」、nonce、および「起動」を使用してダイジェストを生成し、生成したダイジェストをメッセージ内で伝送されるダイジェストと比較する。生成したダイジェストが同じである場合は認証に成功し、そうでなければ認証に失敗する。
【0054】
方法2:仮にH=MD5ハッシング関数とし、B64=Base64符号化関数とする。
起動メッセージnonceは、メッセージヘッダ内またはメッセージ本体内で伝送されるので、nonceは、起動メッセージの起動メッセージヘッダフィールドおよび起動メッセージ本体フィールドの一部分となる。したがって、ダイジェストを計算するには、起動メッセージヘッダフィールドおよび起動メッセージ本体フィールドしか使用する必要がない。ダイジェストは次式で表すことができる。
ダイジェスト=H(B64(H(サーバ識別子:パスワード)):B64(H(起動)))、
ただし、「サーバ識別子」フィールドはサーバ識別子であり、「パスワード」フィールドはサーバパスワードであり、「起動」フィールドは、起動メッセージの起動メッセージヘッダおよび起動メッセージ本体を含む。
起動メッセージを受信し、その起動メッセージ内で伝送された起動メッセージnonceが有効であると判定した後、クライアントは、そのサーバに対応するパスワードを求めてクライアント管理ツリーを検索する。クライアントは、見つかった「パスワード」、起動メッセージ内の「サーバ識別子」、および「起動」を使用してダイジェストを生成し、生成したダイジェストをメッセージ内で伝送されたダイジェストと比較する。生成したダイジェストが同じである場合は認証に成功し、そうでなければ認証に失敗する。
【0055】
ステップ302:クライアントは情報が有効であると判定し、その情報を成功裏に認証し、次いでセッション要求をサーバに送信する。
起動メッセージを受信した後、クライアントは、その起動メッセージ内で伝送された起動メッセージnonceが有効であるかどうかを判定する。この判定方法については上記で説明した。起動メッセージnonceが有効であると判定した場合、クライアントは、そのサーバに対応するパスワードを求めてクライアント管理ツリーを検索する。クライアントは、見つかった「パスワード」、起動メッセージ内の「サーバ識別子」、および「起動」を使用してダイジェストを生成し、その起動メッセージを認証する。詳細な認証方法についてはステップ301で説明した。クライアントの認証方法は、ダイジェストを生成する方法によって異なる。
認証に成功した後、クライアントは、セッションを開始するためにセッション要求をサーバに送信する。
このセッション要求は、セッションID、およびc_nonceを使用することによって生成されるダイジェストを含む認証情報を伝送する。
このステップで、クライアントとサーバとの間にセッション接続がセットアップされる。
【0056】
ステップ303:サーバが、認証結果および認証要求を伝送する応答を返す。
クライアントによって送信される認証情報に基づいて、サーバはそのクライアントを認証し、次いで認証結果および認証要求を伝送する応答をクライアントに返す。
より詳細には、この応答は、サーバがクライアントを認証した結果、セッションID、およびs_nonceを使用することによって生成されるダイジェストを含む認証情報を伝送する。
【0057】
ステップ304:クライアントが、認証結果を伝送するメッセージをサーバに返す。
サーバによって送信される認証情報に基づいて、クライアントはそのサーバを認証し、次いで認証結果を伝送するメッセージをサーバに返す。
より詳細には、このメッセージは、クライアントがサーバを認証することについての結果および他の関連情報を伝送する。
さらに、起動メッセージnonce値が昇順で番号付けされる場合、起動メッセージが増すに従ってnonce値はより大きくなり、起動メッセージnonce値が降順で番号付けされる場合、起動メッセージが増すに従ってnonce値は0になるまで減少する。そのような場合にはnonceを調節する必要があり、例えばカウントの開始点を調節する必要がある。本発明の実施形態は、nonce値を必要な場合に調節するいくつかの方法を提供する。
【0058】
方法1:サーバが、クライアントにおける自らのアカウントパスワードを周期的に更新する。サーバが、クライアントにおける自らのアカウントパスワードを更新するとき、サーバおよびクライアントは、nonce値を自動的にリセットすることができる。
【0059】
方法2:nonceを調節する必要がある場合(例えば事前に設定した時間に達する、またはカウントが事前に設定した値に達した場合)、サーバはnonceをリセットするためのコマンドを発行する。このコマンドは、例えば以下のようにアラートコマンドとすることができる。
<Alert>
<CmdID>1</CmdID>
<Data>1227</Data><!--nonceカウントを置換する-->
</Alert>
nonceを調節した後、サーバは、クライアントにおける自らのアカウントパスワードを変更するためのコマンドを発行し、そうして悪意あるサーバによってメッセージが傍受され、攻撃されることを防ぐ。
【0060】
方法3:サーバは、クライアントのクライアント管理ツリーを直接操作することができるので、サーバはクライアント管理ツリー上の自らのアカウント情報にノードを追加し、そのノードを使用して、クライアントによって受信され保持されるnonce値を記憶することができる。ノードは次のものとすることができる。
<X>/AppAuth/<X>/SNAAuthCount
その後、nonceを調節する必要がある場合(例えば事前に設定した時間に達する、またはカウントが事前に設定した値に達した場合)、サーバは置換コマンドをそのノードに発行する。コマンドの例は以下の通りである。
<Replace>
<CmdID>4</CmdID>
<Item>
<Target>
<LocURI>./DMAcc/serverA/AppAuth/1/SNAAuthCount</LocURI>
</Target>
<Data>1</Data>
</Item>
</Replace>
nonceを調節した後、サーバは、クライアントにおける自らのアカウントパスワードを変更するためのコマンドを発行し、そうして悪意あるサーバによってメッセージが傍受され、攻撃されることを防ぐ。
【0061】
方法4:nonceを調節する必要がある場合(例えば事前に設定した時間に達する、またはカウントが事前に設定した値に達した場合)、クライアントは置換要求をサーバに送信する。クライアントがサーバから肯定応答を受信した後、両者がnonceを調節する。調節が完了次第、サーバは、クライアントにおける自らのアカウントパスワードを更新し、そうして悪意あるサーバによってメッセージが傍受され、攻撃されることを防ぐ。
【0062】
本発明の実施形態1で提供する認証方法では、s_nonceおよびc_nonceとは異なり、起動メッセージが利用可能なnonceを提供する。新たなセッションが開始されると、サーバは、セッションを起動するための起動メッセージによって排他的に使用されることになるnonceを生成する。クライアントは、そのnonceを使用して起動メッセージを認証する。たとえサーバによって記憶されるs_nonceが正しくなくても、クライアントは依然としてセッションを開始することができる。この場合、s_nonceまたはc_nonceが正しくない場合、認証を実施するための対話により、そのs_nonceまたはc_nonceを更新することができる。
【0063】
正しくないs_nonceを例にとると、図5に示すように、本発明の実施形態1で提供する認証方法は以下のステップを含む。
【0064】
ステップ501:サーバが、起動メッセージをクライアントに送信する。このメッセージは起動メッセージnonceを伝送する。
送信する前に、サーバは起動メッセージnonceを生成し、このnonceを使用してダイジェストを生成し、次いでそのダイジェストを使用して起動メッセージを生成する。
【0065】
ステップ502:クライアントは、その起動メッセージ内で伝送される起動メッセージnonceが有効であると判定し、そのメッセージを成功裏に認証し、次いでセッション要求をサーバに送信する。
起動メッセージを受信した後、クライアントは、その起動メッセージ内で伝送される起動メッセージnonceが有効であるかどうかを判定する。この判定方法については上記で説明した。起動メッセージnonceが有効であると判定した場合、クライアントは、そのサーバに対応するパスワードを求めてクライアント管理ツリーを検索する。クライアントは、見つかった「パスワード」、起動メッセージ内の「サーバ識別子」、および「起動」を使用してダイジェストを生成し、その起動メッセージを認証する。詳細な認証方法についてはステップ301で説明した。クライアントの認証方法は、ダイジェストを生成する方法によって異なる。
認証に成功した後、クライアントは、セッションを開始するためにセッション要求をサーバに送信する。
このセッション要求は、セッションID、およびc_nonceを使用することによって生成されるダイジェストを含む認証情報を伝送する。
このステップで、クライアントとサーバとの間にセッション接続がセットアップされる。
【0066】
ステップ503:サーバが、認証結果および認証要求を伝送する応答を返す。
クライアントによって送信される認証情報に基づいて、サーバはそのクライアントを認証し、次いで認証結果および認証要求を伝送する応答をクライアントに返す。
より詳細には、この応答は、サーバがクライアントを認証した結果、セッションID、およびs_nonceを使用することによって生成されるダイジェストを含む認証情報(認証)を伝送する。
【0067】
ステップ504:クライアントが、記憶されたs_nonceを使用してサーバを認証するが、認証に失敗する。
【0068】
ステップ505:クライアントが、チャレンジメッセージおよびs_nonce更新メッセージをサーバに送信する。
【0069】
ステップ506:サーバが、新たなs_nonceを使用して認証情報を生成し、認証要求を再びクライアントに送信する。
更新メッセージを受信した後、サーバが、クライアントによって指示されるものとしての記憶されたs_nonceを更新し、更新したs_nonceを使用して新たな認証要求を生成し、その更新結果および新たな認証要求をサーバに送信する。
【0070】
ステップ507:クライアントが、認証結果を伝送するメッセージをサーバに返す。
サーバによって送信され、更新されたs_nonceを使用することによって生成される認証要求に基づいて、クライアントはそのサーバを認証し、次いで認証結果を伝送するメッセージをサーバに返す。
より詳細には、このメッセージは、クライアントがサーバを認証することについての結果および他の関連情報を伝送する。
【0071】
本発明の実施形態1で提供する認証方法では、新たなセッションが開始されると、サーバは、セッションを起動するための起動メッセージが排他的に利用可能なnonceを生成する。本発明の実施形態2で提供する認証方法では、このセッションを起動するための起動メッセージが排他的に利用可能なnonceは、s_nonceが正しくないとサーバがみなす場合にのみ生成される。
【0072】
図6に示すように、本発明の実施形態2で提供する認証方法は以下のステップを含む。
【0073】
ステップ601:サーバが、起動メッセージをクライアントに送信する。このメッセージはs_nonceを伝送する。
【0074】
ステップ602:サーバが、認証に失敗したことを知る。
サーバが、クライアントから返されるメッセージを特定の期間内に受信しない場合、そのサーバは認証が失敗したとみなす。
【0075】
ステップ603:サーバが、新たな起動メッセージをクライアントに送信する。このメッセージは、起動メッセージnonceを伝送する。
送信する前に、サーバは起動メッセージnonceを生成し、このnonceを使用してダイジェストを生成し、次いでそのダイジェストを使用して起動メッセージを生成する。
【0076】
ステップ604:クライアントは、その起動メッセージ内で伝送される起動メッセージnonceが有効であると判定し、そのメッセージを成功裏に認証し、次いでセッション要求をサーバに送信する。
起動メッセージを受信した後、クライアントは、その起動メッセージが起動メッセージnonceを使用しているかどうかを判定することにより、認証するためにs_nonceを使用するか、それとも起動メッセージnonceを使用するかを決定する。
その判定方法は次の通りである。クライアントは、その起動メッセージがnonceフィールドを含むかどうかを判定することにより、その起動メッセージが起動メッセージnonceを使用しているかどうかを判定する。つまり、起動メッセージがnonceフィールドを含む場合、その起動メッセージは起動メッセージnonceを使用している。あるいは、クライアントは、起動メッセージ内のバージョンフィールド情報を判定することにより、その起動メッセージが起動メッセージnonceを使用しているかどうかを判定する。それは、メッセージのバージョンは、そのメッセージが起動メッセージnonceを使用しているかどうかを明らかにするからである。
起動メッセージを受信した後、クライアントは、その起動メッセージ内で伝送される起動メッセージnonceが有効であるかどうかを判定する。この判定方法については上記で説明した。起動メッセージnonceが有効であると判定した場合、クライアントは、そのサーバに対応するパスワードを求めてクライアント管理ツリーを検索する。クライアントは、見つかった「パスワード」、起動メッセージ内の「サーバ識別子」、および「起動」を使用してダイジェストを生成し、その起動メッセージを認証する。詳細な認証方法についてはステップ301で説明した。クライアントの認証方法は、ダイジェストを生成する方法によって異なる。
認証に成功した後、クライアントは、セッションを開始するためにセッション要求をサーバに送信する。
このセッション要求は、セッションID、およびc_nonceを使用することによって生成されるダイジェストを含む認証情報を伝送する。
このステップで、クライアントとサーバとの間にセッション接続がセットアップされる。
【0077】
ステップ605:サーバが、認証結果および認証要求を伝送する応答を返す。
このステップはステップ503と同様であり、ここではこれ以上詳述しない。
【0078】
ステップ606:クライアントが、記憶されたs_nonceを使用してサーバを認証するが、認証に失敗する。
【0079】
ステップ607:クライアントが、チャレンジおよび新たなs_nonceを伝送するメッセージをサーバに送信する。
【0080】
ステップ608:サーバが、更新結果および新たな認証要求をクライアントに返す。
このステップはステップ506と同様であり、ここではこれ以上詳述しない。
【0081】
ステップ609:クライアントが、認証結果を伝送するメッセージをサーバに返す。
このステップはステップ507と同様であり、ここではこれ以上詳述しない。
【0082】
本発明の実施形態2で提供する認証方法では、サーバがs_nonceを正しくないとみなす場合、そのサーバは、セッションを起動するための起動メッセージが排他的に利用可能なnonceを生成する。クライアントが、本発明の実施形態1で提供する認証方法に従って起動メッセージを処理する。本発明の実施形態3で提供する認証方法では、クライアントは、その起動メッセージが、その起動メッセージに排他的に利用可能なnonceを使用しているかどうかを判定することにより、s_nonceを更新するかどうかを決定することができる。その起動メッセージが、その起動メッセージに排他的に利用可能なnonceを使用している場合、サーバが、セッション内で認証するために、更新されたs_nonceを直接使用できるように、クライアントはs_nonceを直接更新する。
【0083】
本発明の第1の実施形態および第2の実施形態で提供する認証方法では、認証に失敗した場合、認証を実施するために省略時nonceは不要であるため、このシステムのセキュリティを向上させる。
【0084】
本発明の実施形態3で提供する認証方法では、s_nonceおよびc_nonceが従来技術に基づいて更新され、サーバパスワードおよびクライアントパスワードがそれに応じて更新される。更新されたサーバパスワードは、省略時nonceを使用することによって生成される別のサーバダイジェストをもたらし、クライアントへのメッセージリプレイ攻撃を防ぐ。更新されたクライアントパスワードは、省略時nonceを使用することによって生成される別のクライアントダイジェストをもたらし、サーバへのメッセージリプレイ攻撃を防ぎ、システムのセキュリティを向上させる。
【0085】
本発明の実施形態4で提供する認証方法では、各ステップ間の相関が強化され、システムのセキュリティを向上させる目的で、前のステップを次のステップの認証基準として使用する。図7に示すように、この認証方法は以下のステップを含む。
【0086】
ステップ701:クライアントが、セッションを起動するための起動メッセージを受信し、そのメッセージを認証する。
【0087】
ステップ702:クライアントが起動メッセージの認証に失敗し、省略時nonceを使用して再認証する。
【0088】
ステップ703:クライアントがセッション要求をサーバに送信し、このセッション要求は省略時nonceを使用することによって生成される。
省略時nonceを使用することによって行われる認証が成功した場合、クライアントは、起動メッセージによって指示されるサーバにセッション要求を送信する。そのセッションが、アプリケーション層セキュリティメカニズムを使用している場合、そのメッセージは、省略時nonceを使用することによって生成される認証情報を伝送し、このプロセスはステップ704に進む。省略時nonceを使用することによって行われる認証が失敗した場合、クライアントはどんなセッションも開始することなく起動メッセージを無視し、このプロセスは終了される。
【0089】
ステップ704:サーバが、クライアントによって送信されるセッション要求を認証する。
サーバは、このセッション要求を次の2つの方法で認証する。
【0090】
方法1:サーバが、c_nonceを使用して認証用の認証情報を生成し、認証に成功した場合、従来技術による標準的プロセスを実行する。認証に失敗した場合、サーバは省略時nonceを使用して認証情報を生成し、再び認証を行う。その認証に成功した場合、サーバは省略時nonceを使用してサーバ認証要求を生成し、このプロセスはステップ705に進む。
【0091】
方法2:サーバは、そのセッションがアプリケーション層セキュリティメカニズムを使用していると判定した場合、そのサーバは、省略時nonceを使用することによって生成される起動メッセージをクライアントに送信しており、その起動メッセージはセッション要求を起動するための起動メッセージであり、そのサーバは、省略時nonceを使用してそのセッション要求を認証する。認証に成功した後、このプロセスはステップ705に進む。
【0092】
セッション要求が、起動メッセージによって起動されたかどうかを判定する方法は次の通りである。各セッション要求は、固有のセッションIDを有する。セッション要求内で伝送されるセッションIDが、起動メッセージ内で伝送されるセッションIDと比較される。このセッションIDが同じである場合、そのセッションは起動メッセージによって起動されたことを意味する。
【0093】
サーバが、省略時nonceを使用することによって生成される起動メッセージをクライアントに送信しているかどうか、およびその起動メッセージがセッション要求を起動するための起動メッセージであるかどうかを判定するステップは、省略時nonceを使用することによりセッション要求が成功裏に認証された後に発生することができる。この判定に成功した後、このプロセスはステップ705に進む。
このステップの目的は、次の通りである。サーバが、省略時nonceを使用することによって生成され、セッションを起動するように設計された起動メッセージをクライアントに送信していないが、クライアントによって送信され、省略時nonceを使用することによって生成されたセッション要求を受信した場合、そのメッセージは正常または安全でなく、恐らくは悪意ある第三者によって送信された不正メッセージであり、破棄可能であることを意味する。したがって、このステップはシステムのセキュリティを向上させる。
【0094】
ステップ705:サーバが、応答メッセージをクライアントに返す。
サーバは、認証結果、認証要求、およびc_nonceを更新するためのコマンドを伝送する応答をクライアントに返す。
【0095】
ステップ706:クライアントが、サーバによって送信される応答を認証する。
そのセッションがアプリケーション層セキュリティメカニズムを使用している場合、クライアントは省略時nonceを使用してサーバを認証する。この認証方法は次の通りである。クライアントはs_nonceを使用して認証用の認証情報を生成し、認証に成功した場合、従来技術による標準的プロセスを実行する。認証に失敗した場合、クライアントは省略時nonceを使用して認証情報を生成し、再び認証を行う。その認証に成功した場合、クライアントはc_nonceを更新し、このプロセスはステップ707に進む。
【0096】
このステップの代替策は次の通りである。そのセッションがアプリケーション層セキュリティメカニズムを使用し、かつクライアントが、省略時nonceを使用することによって生成されるセッション要求をサーバに送信している場合、クライアントは省略時nonceを使用して、サーバによって送信される応答を認証する。認証に成功した後、クライアントはc_nonceを更新し、このプロセスはステップ707に進む。
クライアントが、省略時nonceを使用することによって生成されるセッション要求をサーバに送信しているかどうかを判定するステップは、省略時nonceを使用することによって認証が行われた後に発生することができる。この認証に成功した後、判定が行われる。その判定に成功した後、このプロセスはステップ707に進む。
【0097】
ステップ707:クライアントが応答をサーバに返す。
クライアントは、認証結果、c_nonce更新結果、およびs_nonceを更新するためのコマンドを伝送する応答をサーバに返す。
【0098】
ステップ708:サーバが、s_nonce更新結果をクライアントに返す。
【0099】
上記のステップを完了した後、リプレイ攻撃を防ぐためにサーバパスワードを更新することができ、またはサーバパスワードおよびクライアントパスワードの両方が更新される。
【0100】
上記のステップでは、省略時nonceの代わりに、セッションIDがnonceの役割をすることができ、または起動メッセージIDがnonceの役割をすることができ、そうして公開nonce(public nonce)が不変であることを回避し、より高度なセキュリティを達成する。
【0101】
本発明の第3の実施形態および第4の実施形態で提供する認証方法は、このシステムのセキュリティを効果的に向上させる。
【0102】
従来技術では、s_nonceが正しくなく、更新される必要がある場合、図2のステップ203〜206に示すように、その更新を行うためにコマンドを4回やりとりする必要がある。省略時nonceが更新される前に、その省略時nonceを使用する必要があるのでリスクが高い。メッセージがモバイルネットワーク内で何度もやりとりされるため、ネットワークの負荷がより高い。
【0103】
クライアントによって送信されるセッション要求に新たなs_nonceを追加するための技術的解決策を、本明細書の認証方法についての実施形態で提供する。この方法で、サーバはs_nonceを直接更新し、新たなs_nonceを使用して認証し、そうしてシグナリング対話の頻度および省略時nonceを使用する頻度を減らし、システムのセキュリティを向上させ、ネットワーク負荷を軽減することができる。
【0104】
図8に示すように、本発明の実施形態5で提供する認証方法は以下のステップを含む。
【0105】
ステップ801:クライアントは、s_nonceが更新される必要があることを知る。
クライアントはs_nonceが失効したと判定し、またはサーバ内に記憶されたs_nonceがクライアント内に記憶されたs_nonceと異なることに気付き、その結果、そのs_nonceが更新される必要があることを知る。
クライアントは、サーバ内に記憶されたs_nonceとクライアント内に記憶されたs_nonceとの間の不一致を、以下の方法で発見する。
起動メッセージを受信した後、クライアントは記憶されたs_nonceを使用してその起動メッセージを認証する。何らかの理由で認証に失敗した場合、クライアントは省略時nonceを使用して、またはセッションIDもしくは起動メッセージIDをnonceとして使用してダイジェストを生成し、その起動メッセージを再認証する。
認証に成功した場合、それはサーバが前に使用したs_nonceが正しくなく、サーバ内に記憶されたs_nonceがクライアント内に記憶されたs_nonceと異なることを意味する。
【0106】
ステップ802:クライアントが、更新情報を伝送するセッション要求をサーバに送信する。
s_nonceが更新される必要があることを知った後、クライアントは新たなs_nonceを生成し、そのs_nonceをセッション要求に追加し、そのセッション要求をサーバに送信して、サーバにセッションを開始し、s_nonceを更新することを要求する。
このセッション要求は、セッションID、新たに生成されたs_nonce、およびc_nonceを使用することによって生成されたダイジェストを含む認証情報を伝送する。このセッション要求では、省略時nonceまたはセッションIDもしくは起動メッセージIDをnonceとして使用してダイジェストを生成することができる。
新たに生成されたs_nonceは、セッション要求(SyncML)の同期ヘッダ内または同期本体内で伝送することができる。
新たに生成されたs_nonceを同期ヘッダ内で伝送すると仮定して、その伝送方法を以下に記載する。
s_nonceを伝送するために、同期ヘッダを以下のように修正する。
SyncHdr(VerDTD, VerProto, SessionID, MsgID, Target, Source, RespURI?, NoResp?, Cred?, Chal?, Meta?)>
このs_nonceを伝送するSyncMLメッセージは、次の通りである。
<SyncML xmlns='SYNCML:SYNCML1.2'>
<SyncHdr>
...
<Chal>
<Meta>
<NextNonce xmlns='syncml:metinf'>LG3iZQhhdmKNHg==</NextNonce>
</Meta>
</Chal>
</SyncHdr>
<SyncBody>
...
</SyncBody>
</SyncML>
【0107】
ステップ803:サーバが、認証結果、更新結果、および認証要求を伝送する応答を返す。
セッション要求を受信した後、サーバはc_nonceを使用してそのクライアントを認証し、セッション要求内で伝送される更新されたs_nonceを使用して、記憶されたs_nonceを更新する。認証に成功し、更新が完了した後、サーバは更新されたs_nonceを使用して認証要求を生成し、認証結果、更新コマンド、および認証要求を伝送する応答をクライアントに返す。好ましくは、サーバはc_nonceを使用してセッション要求を認証する。認証に成功した後にサーバはs_nonceを更新し、そうしてサーバ内に記憶されたs_nonceとクライアント内に記憶されたs_nonceとの間の同期を保つ。
より詳細には、この応答は、サーバがクライアントを認証した結果、s_nonce更新結果、および更新されたs_nonceを使用することによって生成されるダイジェストを含む認証情報を伝送する。
【0108】
ステップ804:クライアントが、認証結果を伝送するメッセージをサーバに返す。
クライアントは、更新されたs_nonceを使用してサーバを認証する。認証に成功した後、クライアントは認証結果をサーバに返す。
【0109】
さらに、本発明の実施形態5で提供する認証方法は、シグナリング対話の頻度を減らすために、本発明の実施形態2で提供する認証方法に適用することができる。
【0110】
図9に示すように、本発明の実施形態6で提供する認証方法は以下のステップを含む。
【0111】
ステップ901:サーバが、起動メッセージをクライアントに送信する。このメッセージはs_nonceを伝送する。
【0112】
ステップ902:サーバが、認証に失敗したことを知る。
例えば、サーバが特定の期間内にクライアントからセッション要求を受信しない場合、そのサーバは認証が失敗したとみなす。
【0113】
ステップ903:サーバが、起動メッセージをクライアントに送信する。このメッセージは、起動メッセージnonceを伝送する。
送信する前に、サーバは起動メッセージnonceを生成し、このnonceを使用してダイジェストを生成し、次いでそのダイジェストを使用して起動メッセージを生成する。
【0114】
ステップ904:クライアントは、s_nonceが更新される必要があることを知る。
起動メッセージを受信した後、クライアントは、その起動メッセージが、その起動メッセージに排他的に利用可能なnonceを使用するかどうかを判定し、s_nonceが更新される必要があるかどうかを決定する。その結果、クライアントは、その起動メッセージが、その起動メッセージに排他的に利用可能なnonceを使用し、s_nonceが更新される必要があることを知る。
その起動メッセージが、その起動メッセージに排他的に利用可能なnonceを使用しているかどうかを判定する方法は次の通りである。クライアントは、その起動メッセージがnonceフィールドを含むかどうかを判定することにより、その起動メッセージが起動メッセージnonceを使用するかどうかを判定する。つまり、起動メッセージがnonceフィールドを含む場合、その起動メッセージは起動メッセージnonceを使用する。あるいは、クライアントは、起動メッセージ内のバージョンフィールド情報を判定することにより、その起動メッセージが起動メッセージnonceを使用するかどうかを判定する。それは、このバージョンフィールドは、そのメッセージが起動メッセージnonceを使用するかどうかを明らかにするからである。
クライアントは、その起動メッセージが起動メッセージnonce以外を使用していることを知った場合、それはs_nonceが更新される必要がないことを意味し、通常のプロセスが実行される。
【0115】
ステップ905:クライアントが、更新情報を伝送するセッション要求をサーバに送信する。
起動メッセージを受信し、その起動メッセージが、その起動メッセージに排他的に利用可能な起動メッセージnonceを使用していると判定した後、クライアントは、その起動メッセージ内で伝送される起動メッセージnonceが有効であるかどうかを判定する。この判定方法については上記で説明した。起動メッセージnonceが有効であると判定した場合、クライアントは、そのサーバに対応するパスワードを求めてクライアント管理ツリーを検索する。クライアントは、見つかった「パスワード」、「サーバ識別子」、および「起動」を使用してダイジェストを生成し、その起動メッセージを認証する。詳細な認証方法についてはステップ301で説明した。クライアントの認証方法は、ダイジェストを生成する方法によって異なる。
起動メッセージを成功裏に認証した後、クライアントは新たなs_nonceを生成し、そのs_nonceをセッション要求に追加し、更新情報を伝送するそのセッション要求をサーバに送信して、サーバにセッションを開始し、s_nonceを更新することを要求する。
このセッション要求は、セッションID、更新されたs_nonce、およびc_nonceを使用することによって生成されたダイジェストを含む認証情報を伝送する。
新たに生成されたs_nonceは、セッション要求の同期ヘッダ内または同期本体内で伝送することができる。
【0116】
ステップ906:サーバが、認証結果、更新結果、および認証要求を伝送する応答を返す。
セッション要求を受信した後、サーバはc_nonceを使用してそのクライアントを認証し、セッション要求内で伝送される更新されたs_nonceを使用して、記憶されたs_nonceを更新する。認証に成功し、更新が完了した後、サーバは更新されたs_nonceを使用して認証要求を生成し、認証結果、更新結果、および認証要求を伝送する応答をクライアントに返す。
より詳細には、この応答は、サーバがクライアントを認証した結果、s_nonce更新結果、および更新されたs_nonceを使用することによって生成されたダイジェストを含む認証情報を伝送する。
【0117】
ステップ907:クライアントが、認証結果を伝送するメッセージをサーバに返す。
クライアントは、更新されたs_nonceを使用してサーバを認証する。認証に成功した後、クライアントは認証結果をサーバに返す。
より詳細には、このメッセージは、サーバを認証することについての結果および他の関連情報を伝送する。
従来技術では、サーバを成功裏に認証した後、クライアントはセッションを開始しないことを決定することもある。この場合、s_nonceが失効しまたは正しくなく、更新される必要があることをクライアントが知る場合、効果的にs_nonceを更新し、またはs_nonceを維持することは不可能である。
【0118】
したがって、本発明の実施形態7の認証方法は、対応する解決策を提供する。
本発明の実施形態7で提供する認証方法では、クライアントがサーバを成功裏に認証し、セッションを開始しないと決定した後、クライアントは状態応答をサーバに送信する。クライアントは、s_nonceが失効し、またはサーバ内に記憶されたs_nonceと一致しないと判定した場合、クライアントは新たなs_nonceを生成し、その新たなs_nonceを状態応答内に追加する。クライアントは、c_nonce、クライアントのユーザ名およびパスワード、ならびに応答メッセージ本体を使用してダイジェストを計算する。したがって、状態応答を受信した後、サーバは、c_nonce、クライアントのユーザ名およびパスワード、ならびに応答メッセージ本体を使用することによって計算されたダイジェストに基づいて、その情報を認証することができる。認証に成功した後、サーバは、状態応答内で伝送される新たなs_nonceに基づいて、記憶されたs_nonceを更新する。
【0119】
図10に示すように、新たなs_nonceを有するこの状態応答は、ダイジェスト、通知メッセージヘッダ、および通知メッセージ本体を含む。
通知メッセージヘッダは、バージョン、ステータスコード、通知メッセージID、次のnonce、将来使用、セッションID、認証IDの長さ(長さ-認証名)、および、認証ID(認証名)を含む。
次のnonceは、新たなs_nonceである。
【0120】
従来技術では、s_nonceが正しくない後は、s_nonceおよびc_nonceは二度と使用されず、クライアントおよびサーバは、省略時nonceを使用して認証情報を生成する。その結果、悪意あるサーバは、任意のメッセージを傍受することにより、そのサーバまたはクライアントを攻撃することができる。
【0121】
s_nonceとc_nonceとは異なり、これらのnonceはサーバおよびクライアントによってそれぞれ生成され、相手方が利用することができる。したがって、これらのnonceのどちらか一方に誤りがある場合、もう一方は影響を受けない。本発明の第8の実施形態および第9の実施形態で提供する認証方法では、s_nonceに誤りがある場合に、s_nonceを個別に更新するための解決策を提供する。
【0122】
次の場合、s_nonceに誤りがある。それは、クライアントが、s_nonceが失効したと判定し、またはサーバ内に記憶されたs_nonceに誤りがあることを知る、例えばクライアントが、サーバ内に記憶されたs_nonceがクライアント内に記憶されたs_nonceと一致しない、または同期していないと判定した場合である。
【0123】
サーバ内に記憶されたs_nonceと、クライアント内に記憶されたs_nonceとの間の一致および同期を判定する方法は、次のものとすることができる。それは、サーバが、s_nonceを使用して起動メッセージを送信した後、特定の期間内にそのクライアントから応答を受信しないこと、またはサーバによって送信された起動メッセージが、省略時nonceを使用することによって生成されたダイジェストを伝送することをクライアントが知ること、またはサーバによって送信された起動メッセージ内でnonceが使用されていないことをクライアントが知ることである。
【0124】
s_nonceの誤りを知り、サーバを成功裏に認証した後、クライアントはセッション要求を開始する。このセッション要求では、クライアントを認証するための認証情報がc_nonceを使用することによって生成され、または基本認証方式(つまりユーザ名とパスワード)が適用され、s_nonceがさらに更新される。
【0125】
認証方法についての実施形態7および実施形態8に、s_nonceを更新する2つの方法をそれぞれ提供する。
【0126】
実施形態8では、サーバは、省略時nonceを使用して起動メッセージを生成する。図11に示すように、この認証方法は以下のステップを含む。
【0127】
ステップ1101:サーバが、セッションを起動するために起動メッセージをクライアントに送信する。
前のs_nonceが正しくないと判定した後、サーバは省略時nonceを使用して起動メッセージを生成し、そのメッセージをクライアントに送信する。この起動メッセージは、省略時nonceを使用することによって生成されたダイジェスト、起動情報、および他の関連情報を伝送する。
【0128】
ステップ1102:クライアントが起動メッセージの認証に失敗し、省略時nonceを使用して再認証する。
起動メッセージを受信した後、クライアントは記憶されたs_nonceを使用してダイジェストを生成し、その起動メッセージを認証する。何らかの理由で認証に失敗した場合、クライアントは省略時nonceを使用してダイジェストを生成し、その起動メッセージを再認証する。
認証に成功した場合、それはサーバが前に使用したs_nonceが正しくなく、サーバ内に記憶されたs_nonceがクライアント内に記憶されたs_nonceと異なることを意味する。
【0129】
ステップ1103:クライアントが、更新情報を伝送するセッション要求をサーバに送信する。
省略時nonceを使用することにより、起動メッセージを成功裏に認証した後、クライアントは新たなs_nonceを生成し、そのs_nonceをセッション要求に追加し、更新情報を伝送するそのセッション要求をサーバに送信して、サーバにセッションを開始し、s_nonceを更新することを要求する。
このセッション要求は、セッションID、更新されたs_nonce、およびc_nonceを使用することによって生成されたダイジェストを含む認証情報を伝送する。
上記のステップでは、省略時nonceの代わりに、セッションIDがnonceの役割をすることができ、または起動メッセージIDがnonceの役割をすることができ、そうして公開nonceが不変であることを回避し、より高度なセキュリティを達成する。
更新されたs_nonceをセッション要求に追加する方法は、実施形態3および実施形態4での方法と基本的に同じであり、ここではこれ以上繰り返さない。
【0130】
ステップ1104:サーバが、認証結果、更新結果、および認証要求を伝送する応答を返す。
セッション要求を受信した後、サーバはc_nonceを使用してそのクライアントを認証し、セッション要求内で伝送された更新されたs_nonceを使用して、記憶されたs_nonceを更新する。認証に成功し、更新が完了した後、サーバは更新されたs_nonceを使用して認証要求を生成し、認証結果、更新結果、および認証要求を伝送する応答をクライアントに返す。
より詳細には、この応答は、サーバがクライアントを認証した結果、s_nonce更新結果、および更新されたs_nonceを使用することによって生成されたダイジェストを含む認証情報を伝送する。
【0131】
ステップ1105:クライアントが、認証結果を伝送するメッセージをサーバに返す。
クライアントは、更新されたs_nonceを使用してサーバを認証する。認証に成功した後、クライアントは認証結果をサーバに返す。
【0132】
実施形態9では、サーバは省略時nonceを使用して起動メッセージを生成するが、セッション要求は更新情報を運ばない。図12に示すように、この認証方法は以下のステップを含む。
【0133】
ステップ1201:サーバが、セッションを起動するために起動メッセージをクライアントに送信する。
前のs_nonceが正しくないと判定した後、サーバは省略時nonceを使用して起動メッセージを生成し、そのメッセージをクライアントに送信する。この起動メッセージは、省略時nonceを使用することによって生成されたダイジェスト、起動情報、および他の関連情報を伝送する。
【0134】
ステップ1202:クライアントが起動メッセージの認証に失敗し、省略時nonceを使用して再認証する。
起動メッセージを受信した後、クライアントは記憶されたs_nonceを使用してダイジェストを生成し、その起動メッセージを認証する。何らかの理由で認証に失敗した場合、クライアントは省略時nonceを使用してダイジェストを生成し、その起動メッセージを再認証する。
認証に成功した場合、それはサーバが前に使用したs_nonceが正しくなく、サーバ内に記憶されたs_nonceがクライアント内に記憶されたs_nonceと異なることを意味する。
【0135】
ステップ1203:クライアントがその情報を成功裏に認証し、次いでセッション要求をサーバに送信する。
認証に成功した後、クライアントは、セッションを開始するためにセッション要求をサーバに送信する。
このセッション要求は、セッションID、およびc_nonceを使用することによって生成されたダイジェストを含む認証情報を伝送する。
このステップで、クライアントとサーバとの間にセッション接続がセットアップされる。
【0136】
ステップ1204:サーバが、認証結果および認証要求を伝送する応答を返す。
クライアントによって送信された認証情報に基づいて、サーバはそのクライアントを認証する。認証に成功した後、サーバは省略時nonceを使用して認証情報を生成し、次いで認証結果および認証要求を伝送する応答をクライアントに返す。
より詳細には、この応答は、サーバがクライアントを認証した結果、セッションID、および省略時nonceを使用することによって生成されるダイジェストを含む認証情報(認証)を伝送する。
【0137】
ステップ1205:クライアントが、更新コマンドおよび認証結果をサーバに返す。
クライアントは、省略時nonceを使用することによりサーバを認証する。認証に成功した後、クライアントは新たなs_nonceを生成し、s_nonceを更新するためのコマンド、およびサーバを認証した結果をそのサーバに送信する。
【0138】
ステップ1206:サーバが、更新結果をクライアントに返す。
更新メッセージを受信した後、サーバが、クライアントによって指示されたものとしての記憶されたs_nonceを更新し、更新結果をクライアントに返す。
【0139】
上記のステップでは、省略時nonceの代わりに、セッションIDがnonceの役割をすることができ、または起動メッセージIDがnonceの役割をすることができ、そうして公開nonceが不変であることを回避し、より高度なセキュリティを達成する。
この場合、システムの信頼性を向上させるために、サーバパスワードを更新することができる。
【0140】
別の実施形態では、サーバは省略時nonceを使用して起動メッセージを生成するが、セッション要求は省略時nonceを伝送しない。この認証方法は以下のステップを含む。
【0141】
前のs_nonceが正しくないと判定した後、サーバは、省略時nonceを使用して、またはセッションIDもしくは起動メッセージIDをnonceとして使用して起動メッセージを生成し、そのメッセージをクライアントに送信する。この起動メッセージは、省略時nonceまたはセッションIDもしくは起動メッセージIDを使用することによって生成されたダイジェスト、起動情報、および他の関連情報を伝送する。
【0142】
起動メッセージを受信した後、クライアントは記憶されたs_nonceを使用してダイジェストを生成し、その起動メッセージを認証する。何らかの理由で認証に失敗した場合、クライアントは省略時nonceを使用して、またはセッションIDもしくは起動メッセージIDをnonceとして使用してダイジェストを生成し、その起動メッセージを再認証する。その認証に成功した場合、クライアントは、セッションを開始するためにセッション要求をサーバに送信する。このセッション要求は、セッションID、およびc_nonceを使用することによって生成されたダイジェストを含む認証情報を伝送する。
【0143】
サーバはc_nonceを使用してセッション要求を認証する。認証に失敗した場合、サーバは、c_nonceを更新し、再認証を要求するためにチャレンジメッセージを送信する。認証に成功した後、サーバは、s_nonceを使用することによって生成された認証要求を送信し、クライアントはs_nonceを使用して認証する。その認証に失敗した場合、クライアントは、s_nonceを更新し、再認証を要求するためにチャレンジメッセージを送信する。認証に成功した後、クライアントは結果を返す。
【0144】
さらに、上記のステップでは、クライアントは更新されたs_nonceをセッション要求に追加し、その要求をサーバに送信することができる。サーバによって送信された認証要求は、その新たなs_nonceを使用する。
【0145】
上述のように、s_nonceに誤りがある場合、s_nonceのみが更新され、c_nonceは更新されない。このシステムがs_nonceの誤りを処理するとき、たとえこのシステムが、省略時nonceを使用して、またはセッションIDもしくは起動メッセージIDをnonceとして使用して認証しても、c_nonceは更新する必要がないので、クライアントはc_nonceを使用してセッション要求を生成し、そうして省略時nonceを使用する頻度、またはセッションIDもしくは起動メッセージIDをnonceとして使用する頻度を減らし、システムのセキュリティを向上させることができる。
【0146】
従来技術では、セッション内で使用されるs_nonceおよびc_nonceは、クライアントおよびサーバによってそれぞれ生成され、更新されるため、クライアントおよびサーバにより重い管理負荷を負わせる。
【0147】
本発明の実施形態10では、従来技術のs_nonceおよびc_nonceを置換し、クライアントとサーバとの間の認証を実施するために、1つのセッション内で1つのnonceを使用する。同一のセッションが、トランスポート層セキュリティメカニズムまたはアプリケーション層セキュリティメカニズムによって保護されており、したがって、クライアントとサーバとの間の認証を実施するために同一のnonceを使用することができる。
そのnonceは、サーバまたはクライアントが生成することができる。サーバがそのnonceを生成すると仮定して、本発明の実施形態10の認証方法を以下に詳しく述べる。
【0148】
実施形態10では、以下に説明するように、nonceを更新する2つの方法を提供する。
【0149】
方法1:サーバがnonceを更新する。
まず、サーバが、nonce更新コマンド(NextNonce)を発行する。このNextNonceコマンドは、新たなnonceを伝送する。
NextNonceコマンドを受信した後、クライアントは、NextNonceコマンド内で伝送される新たなnonceを使用して、記憶されたnonceを更新する。
【0150】
この更新コマンドは、認証メッセージ内で伝送することができ、つまりそのメッセージは更新コマンドおよびサーバ認証情報を伝送する。この更新コマンドは、別の管理メッセージ内で伝送することもでき、つまりそのメッセージはサーバ認証情報を伝送しない。更新コマンドを認証メッセージ内で伝送した場合、クライアントがそのメッセージを受信した後、そのクライアントはNextNonceコマンドに基づいてnonceを更新し、次いでその更新したnonceを使用してダイジェストを生成し、情報を認証する。その認証は成功する。この場合、悪意あるサーバがこのメッセージを傍受した場合、その悪意あるサーバはクライアントに対していつでもリプレイ攻撃を開始することができる。そのような攻撃を防ぐために、このNextNonceコマンドを認証メッセージ内で伝送した場合、クライアントは、更新されていないnonceを使用することによって生成されるダイジェストを使用してその情報を認証する。メッセージを受信した後、クライアントは、更新されていないnonceを使用することによって生成されるダイジェストを使用して最初に認証する。認証に成功した後、クライアントは、記憶されたnonceをNextNonceコマンドに基づいて更新する。別の管理メッセージがnonce更新コマンドを伝送した場合、新たなnonceを伝送するメッセージと、認証情報を伝送するもう1つのメッセージとが別々に相手方に送信されるので、リプレイ攻撃のリスクは存在しない。
【0151】
図13に示すように、応答がNextNonceコマンド内で伝送されると仮定すると、そのプロセスは以下の通りである。
【0152】
ステップ1301:サーバが、セッションを起動するために起動メッセージをクライアントに送信する。
この起動メッセージは、共有nonceを使用することによって生成されたダイジェスト、および起動情報を伝送する。
共有nonceは、サーバによって生成され、サーバおよびクライアントが利用可能である。
実際には、このステップの共有nonceは、起動メッセージnonceまたは省略時nonceとすることができる。ある場合は、サーバは、nonceを使用しないが、サーバIDおよびパスワードを使用して、セッションを起動するための起動メッセージを生成し、クライアントはサーバIDおよびパスワードを使用して、その起動メッセージを認証するためのダイジェストを生成することができる。
【0153】
ステップ1302:クライアントが、セッション要求をサーバに送信する。
起動メッセージを受信した後、クライアントは記憶されたs_nonceを使用してダイジェストを生成し、その起動メッセージを認証する。認証に成功した場合、クライアントは、セッションを開始するためにセッション要求をサーバに送信する。
このセッション要求は、セッションID、および共有nonceを使用することによって生成されたダイジェストを含む認証情報を伝送する。
このステップで、クライアントとサーバとの間にセッション接続がセットアップされる。
【0154】
ステップ1303:サーバが、認証結果および認証要求を伝送する応答を返し、その応答はNextNonceコマンドを伝送する。
クライアントによって送信された認証情報に基づいて、サーバはそのクライアントを認証する。認証に成功した後、共有nonceが更新される必要があることをサーバが知った場合、そのサーバは新たな共有nonceを生成し、次いで認証結果および認証要求を伝送する応答をクライアントに返す。この応答は、NextNonceコマンドを伝送する。
より詳細には、この応答は、サーバがクライアントを認証した結果、セッションID、更新されていないnonceを使用することによって生成されたダイジェストを含む認証情報、および新たなnonceを含むNextNonceコマンドを伝送する。
【0155】
ステップ1304:応答を受信した後、クライアントは、更新されていないnonceを使用してそのメッセージを認証する。
【0156】
ステップ1305:認証に成功し、クライアントは、NextNonceコマンド内で伝送された新たなnonceを使用して、そのNextNonceコマンドによって指示されたものとしての記憶された共有nonceを更新する。
【0157】
ステップ1306:クライアントが、認証結果および更新結果を伝送するメッセージをサーバに返す。
より詳細には、このメッセージは、クライアントがサーバを認証した結果、共有nonceを更新した結果、および他の関連情報を伝送する。
【0158】
サーバおよびクライアントは、共有nonceの有効期間を別々に定義することができる。サーバが、共有nonceが有効であると判定したとき、その共有nonceの有効期間はクライアントにとっては切れている可能性がある。したがって、クライアントにとってのその共有nonceの有効性を保つために、本発明の実施形態10は、クライアントが共有nonceを更新するようにサーバに要求する技術的解決策を提供する。
【0159】
クライアントは、DMコマンドのうちのアラートコマンドを使用して、サーバに共有nonceを更新するように要求することができる。このコマンドをサーバに理解させるため、アラートタイプがコマンド内に追加される。このアラートタイプは、サーバにnonceを更新するように要求する指示である。
【0160】
nonceが更新される必要があるとクライアントが認識した場合、そのクライアントは、共有nonceを更新する要求を、このアラートコマンドによりサーバに送信する。この要求は、認証メッセージ内で、または別の管理メッセージ内で伝送することができる。この要求を受信した後、サーバは、特定の条件に基づいてnonceを更新するかどうかを決定する。
【0161】
このアラートタイプは、org.openmobilealliance.NextNonceとして定義することができる。
【0162】
以下に示すのは、このアラートタイプのメッセージのインスタンスである。
<Alert>
<CmdID>2</CmdID>
<Data>1226</Data><!--汎用アラート-->
<Item>
<Meta>
<Type xmlns="syncml:metinf">
org.openmobilealliance.NextNonce
</Type>
</Meta>
</Data>
</Item>
</Alert>
【0163】
クライアントがnonceを更新する方法は、サーバがnonceを更新する方法と同様であり、ここではこれ以上繰り返さない。
【0164】
方法2:サーバおよびクライアントが、nonceを共同で更新する。
【0165】
サーバおよびクライアントはどちらも、共有nonceが更新される必要があると判定した場合、更新用の新たなnonceを生成することができる。
【0166】
nonceは、NextNonceコマンドによって更新することができる。以下に示すのは、更新のインスタンスである。
<Chal>
<Meta>
<NextNonce xmlns='syncml:metinf'>LG3iZQhhdmKNHg==</NextNonce>
</Meta>
</Chal>
【0167】
NextNonceコマンドは、セッションプロセスのメッセージ内で伝送することができる。例えば、クライアントはNextNonceコマンドをセッション要求に追加し、そのセッション要求をサーバに送信して、そのサーバに共有nonceを更新するように要求し、またはNextNonceコマンドを別のメッセージ内に追加することができる。
【0168】
サーバまたはクライアントが共有nonceを更新するかどうかを問わず、認証メッセージ内で更新コマンドが伝送される場合、相手方がそのメッセージを受信した後、その相手方が最初にnonceを更新し、次いでその更新したnonceを使用してダイジェストを生成し、情報を認証する。その認証は成功する。この場合、悪意あるサーバがこのメッセージを傍受した場合、その悪意あるサーバはクライアントに対していつでもリプレイ攻撃を開始することができる。そのような攻撃を防ぐために、このNextNonceコマンドを認証メッセージ内で伝送した場合、相手方は、更新されていないnonceを使用することによって生成されるダイジェストを使用してその情報を認証することができる。認証に成功した後、その相手方は、記憶されたnonceをNextNonceコマンドに基づいて更新する。別の管理メッセージがnonce更新コマンドを伝送した場合、新たなnonceを伝送するメッセージと、認証情報を伝送するもう1つのメッセージとが別々に相手方に送信されるので、攻撃のリスクは存在しない。
【0169】
本発明の実施形態10では、サーバおよびクライアントが共有nonceを使用して認証する。この場合、共有nonceに誤りがある場合、その誤りは上述の方法のうちのいずれかにより処理することができる。本発明の実施形態5のステップ803では、メッセージは新たなnonce、その新たなnonceを使用することによって生成されたダイジェストを伝送する。この場合、悪意あるサーバがこのメッセージを傍受した場合、その悪意あるサーバはこのメッセージをサーバまたはクライアントに繰り返し送信することにより、リプレイ攻撃を開始することができる。サーバまたはクライアントはこのメッセージを識別することができず、このメッセージが有効であると信じ、対応する動作を実行する。そのような攻撃を防ぐために、更新されていないnonceを使用してダイジェストを生成することができる。この方法で、メッセージを受信した後、サーバは更新されていないnonceを使用してダイジェストを計算し、そのメッセージの送信側すなわちクライアントを認証し、次いで記憶されたnonceをNextNonceコマンドに基づいて更新する。
【0170】
本発明の実施形態10は、システム負荷を効果的に軽減する。
【0171】
図14に示すように、本発明の実施形態1で提供する認証システムは、
起動メッセージnonceを使用して起動メッセージを生成し、その生成した起動メッセージを送信するように構成されたサーバ1410と、
起動メッセージnonceを使用することによって生成された起動メッセージを受信し、その起動メッセージnonceを使用してその生成された起動メッセージを認証する、つまりその起動メッセージの有効性を検証するように構成されたクライアント1420と
を含む。
【0172】
サーバ1410は、
起動メッセージnonceを使用することによって起動メッセージを生成するように構成された第1の生成ユニット1412と、
起動メッセージnonceを使用することによって生成された起動メッセージを送信するように構成された送信ユニット1411と、
サーバnonceを使用することによって起動メッセージを生成し、その生成した起動メッセージをクライアントに送信するように構成された第2の生成ユニット1417と、
サーバnonceを使用することによって生成された起動メッセージの認証に失敗したと判定した後、第1の生成ユニット1412を制御して、起動メッセージnonceを使用して起動メッセージを生成するように構成された判定ユニット1413と、
第1の生成ユニット1412が、起動メッセージnonceを使用して起動メッセージを生成するときに、サーバのシステム時間を求め、そのシステム時間を、起動メッセージnonceを使用することによって生成された起動メッセージ内に追加するように構成された時間ユニット1414と、
起動メッセージnonceを使用することにより、第1の生成ユニット1412によって生成された起動メッセージを番号付けし、その番号を起動メッセージnonceとして使用するように構成された符号化ユニット1415と、
符号化ユニット1415によって生成された起動メッセージnonceを、必要な場合にリセットするように構成されたnonceリセットユニット1416と、
起動メッセージによって起動されたセッションのセッションIDを起動メッセージnonceとして使用し、そのため、クライアントが、起動メッセージを受信した後、起動メッセージnonceを使用することによってその起動メッセージを認証し、認証に成功した後、そのセッションIDに対応するセッションをセットアップすることを要求するセッション要求を送信する、ように構成されたセッションID・nonceユニット1418と
をさらに含む。
【0173】
符号化ユニット1415は、
起動メッセージnonceを使用することによって生成された起動メッセージを、昇順で番号付けするように構成された昇順番号付けユニット14151と、
起動メッセージnonceを使用することによって生成された起動メッセージを、降順で番号付けするように構成された降順番号付けユニット14152と
をさらに含む。
【0174】
クライアント1420は、
起動メッセージnonceを使用することによって生成された起動メッセージを受信するように構成された受信ユニット1421と、
起動メッセージnonceを使用して、その起動メッセージnonceを使用することによって生成された起動メッセージを認証する、つまりその起動メッセージnonceを使用することによって生成された起動メッセージの有効性を検証するように構成された第1の認証ユニット1422と、
起動メッセージを受信した後、サーバnonceを使用してその起動メッセージを認証し、認証に失敗した場合、起動メッセージnonceを使用してその起動メッセージを再認証するように構成された第2の認証ユニット1425と、
受信ユニット1421が、起動メッセージnonceを使用することによって生成された起動メッセージを受信するときに、クライアントのローカル時間を求め、そのローカル時間とシステム時間との間の差の絶対値を、事前に設定した閾値と比較し、その絶対値が事前に設定した閾値よりも小さい場合はその起動メッセージnonceが有効であると判定し、第1の認証ユニット1422を制御して、起動メッセージnonceを使用することによって生成された起動メッセージを認証するために、その起動メッセージnonceを使用するように構成された第1の有効性判定ユニット1423と、
起動メッセージnonceを使用することによって生成された起動メッセージを受信ユニット1421が受信した後、記憶された起動メッセージnonceに基づいて、その起動メッセージ内で伝送される起動メッセージnonceが有効であると判定した場合、その起動メッセージ内で伝送される起動メッセージnonceを記憶し、第1の認証ユニット1422を制御して、起動メッセージnonceを使用することによって生成された起動メッセージを認証するために、その起動メッセージnonceを使用するように構成された第2の有効性判定ユニット1424と、
起動メッセージによって起動されるセッションのセッションIDを起動メッセージnonceとして使用し、起動メッセージnonceを使用することによって起動メッセージを認証し、認証に成功した後、そのセッションIDに対応するセッションをセットアップすることを要求するセッション要求を送信するように構成されたセッションID・nonceユニット1428と
をさらに含む。
【0175】
第2の有効性判定ユニット1424は、
クライアント内に記憶された起動メッセージnonceと、起動メッセージ内で伝送された起動メッセージnonceとを比較し、起動メッセージ内で伝送された起動メッセージnonceが、クライアント内に記憶された最も大きい起動メッセージnonceよりも大きい場合、またはクライアントによって受信され、記憶された起動メッセージnonce値が、起動メッセージ内で伝送された起動メッセージnonceを含まない場合、またはクライアントによって受信されていないnonce値が、起動メッセージ内で伝送された起動メッセージnonceを含む場合に、起動メッセージ内で伝送された起動メッセージnonceが有効であると判定するように構成された第1の番号付け判定ユニット14241と、
クライアント内に記憶された起動メッセージnonceと、起動メッセージ内で伝送された起動メッセージnonceとを比較し、起動メッセージ内で伝送された起動メッセージnonceが、クライアント内に記憶された最も小さい起動メッセージnonceよりも小さい場合、またはクライアントによって受信され、記憶された起動メッセージnonce値が、起動メッセージ内で伝送された起動メッセージnonceを含まない場合、またはクライアントによって受信されていないnonce値が、起動メッセージ内で伝送された起動メッセージnonceを含む場合に、起動メッセージ内で伝送された起動メッセージnonceが有効であると判定するように構成された第2の番号付け判定ユニット14242と
を含む。
【0176】
実施形態1の認証システムの動作方式は、本発明の実施形態1および実施形態2の認証方法の動作方式と同様であり、ここではこれ以上繰り返さない。
【0177】
本発明の実施形態1で提供する認証システムにより、認証に失敗した場合、認証を実施するために省略時nonceは不要であるため、このシステムのセキュリティを向上させる。
【0178】
本発明の実施形態1で提供するサーバは、本発明の実施形態1で提供する認証システム内のサーバと基本的に同じであり、ここではこれ以上繰り返さない。
【0179】
図15に示すように、本発明の実施形態1で提供するクライアントは、
サーバによって送信される起動メッセージを受信するように構成された受信ユニット1501と、
起動メッセージを受信した後、サーバnonceが更新される必要があると判定した場合に新たなサーバnonceを生成し、その新たなサーバnonceをセッション要求に追加し、サーバがその新たなサーバnonceを伝送するセッション要求を受信した後、その新たなサーバnonceを使用して、記憶されたサーバnonceを更新することができるように、そのセッション要求をサーバに送信するように構成された第1の生成ユニット1512と、
起動メッセージを受信した後、セッションを開始しないと決定し、サーバnonceが更新される必要があると判定した場合に新たなサーバnonceを生成し、その新たなサーバnonceを状態応答内に追加し、サーバがその新たなサーバnonceを伝送する状態応答を受信した後、その新たなサーバnonceを使用して、記憶されたサーバnonceを更新することができるように、その状態応答をサーバに送信するように構成された第2の生成ユニット1503と
を含む。
【0180】
実施形態1で提供するクライアントの動作方式は、本発明の第4、第5、および第6の実施形態で提供する認証方法におけるクライアントの動作方式と同様であり、ここではこれ以上繰り返さない。
【0181】
本発明の実施形態1で提供するクライアントにより、s_nonceが更新される必要がある場合、セッション要求は更新コマンドを直接伝送し、そしてシグナリング対話の頻度を減らし、システム負荷を軽減し、認証を行うために省略時nonceを使用する頻度を減らし、システムのセキュリティを向上させる。
【0182】
図16に示すように、本発明の実施形態2で提供するクライアント1600は、
サーバによって送信される起動メッセージを受信するように構成された受信ユニット1601と、
起動メッセージを受信した後、サーバnonceを使用してその起動メッセージを認証し、認証に失敗した場合、省略時nonceを使用してその起動メッセージを認証し、認証に成功した後、クライアントnonceを使用してセッション要求を生成し、サーバがそのクライアントnonceを使用してそのクライアントを認証することができるように、そのセッション要求をサーバに送信するように構成された生成ユニット1602と、
サーバnonceを新たなサーバnonceで更新した後、サーバパスワードおよびクライアントパスワードを変更するように構成されたパスワード変更ユニット1603と
を含む。
【0183】
実施形態2で提供するクライアントの動作方式は、本発明の第7の実施形態および第8の実施形態で提供する認証方法におけるクライアントの動作方式と同様であり、ここではこれ以上繰り返さない。
【0184】
本発明の実施形態2で提供するクライアントにより、s_nonceが更新される必要がある場合、s_nonceのみが更新され、c_nonceは更新されない。たとえこのシステムがs_nonceの誤りを処理するとき、認証のために省略時nonceを使用しても、c_nonceは更新する必要がないので、クライアントはc_nonceを使用してセッション要求を生成し、そうして省略時nonceを使用する頻度を減らし、システムのセキュリティを向上させることができる。
【0185】
図17に示すように、本発明の実施形態2で提供する認証システムは、サーバ1710およびクライアント1720を含む。
【0186】
サーバ1710は、
サーバおよびクライアントによって共有されるnonceを使用して起動メッセージを生成し、その起動メッセージを受信した後、クライアントがその共有nonceを使用してその起動メッセージを認証することができるように、その起動メッセージをクライアントに送信するように構成された起動ユニット1711と、
共有nonceを使用することによって生成されたセッション要求を、クライアントから受信するように構成された受信ユニット1712と、
共有nonceを使用することによってセッション要求を認証するように構成された認証ユニット1713と、
セッション要求が成功裏に認証された後、共有nonceを使用して応答を生成し、その応答を受信した後、クライアントがその共有nonceを使用してその応答を認証することができるように、その応答をクライアントに送信するように構成された生成ユニット1714と、
共有nonceを生成し、その共有nonceが更新される必要がある場合に新たな共有nonceを生成し、nonce更新メッセージを受信した後、クライアントがその新たな共有nonceを使用して共有nonceを更新することができるように、その新たな共有nonceを伝送するnonce更新メッセージをクライアントに送信するように構成された更新ユニット1715と、
共有nonceが更新される必要があると判定した場合に、クライアントが、nonce更新要求を受信し、nonceを更新することおよび新たな共有nonceを伝送するnonce更新メッセージを送信することを決定した後、新たな共有nonceを生成することができるように、nonce更新要求をクライアントに送信するように構成された要求ユニット1716と
をさらに含む。
【0187】
クライアント1720は、
サーバによって送信され、サーバおよびクライアントによって共有されるnonceを使用することによって生成される起動メッセージを受信するように構成された受信ユニット1721と、
起動メッセージを受信した後、共有nonceを使用することによってその起動メッセージを認証するように構成された第1の認証ユニット1722と、
認証に成功した後、共有nonceを使用してセッション要求を生成し、サーバが、そのセッション要求を受信した後、共有nonceを使用してそのセッション要求を認証する、つまりそのセッション要求の有効性を検証することができるように、そのセッション要求をサーバに送信するように構成された生成ユニット1723と、
共有nonceを使用することによりサーバによって生成された応答を受信した後、その共有nonceを使用してその応答を認証するように構成された第2の認証ユニット1724と、
共有nonceを生成し、その共有nonceが更新される必要がある場合に新たな共有nonceを生成し、サーバが、nonce更新メッセージを受信した後、その新たな共有nonceを使用して共有nonceを更新することができるように、その新たな共有nonceを伝送するnonce更新メッセージをサーバに送信するように構成された更新ユニット1725と、
共有nonceが更新される必要があると判定した場合に、サーバが、nonce更新要求を受信し、nonceを更新することおよび新たな共有nonceを伝送するnonce更新メッセージを送信することを決定した後、新たな共有nonceを生成することができるように、nonce更新要求をサーバに送信するように構成された要求ユニット1726と
をさらに含む。
【0188】
実施形態2の認証システムの動作方式は、本発明の実施形態9の認証方法の動作方式と同様であり、ここではこれ以上繰り返さない。
【0189】
本発明の実施形態2で提供する認証システムにより、クライアントとサーバとの間での認証を実施するために、サーバおよびクライアントは、セッションプロセスで従来技術のs_nonceおよびc_nonceの代わりにnonceを共有するため、システム負荷を効果的に軽減する。
【0190】
本発明の実施形態2で提供するサーバ、および本発明の実施形態3で提供するクライアントは、本発明の実施形態2で提供する認証システム内のサーバおよびクライアントと基本的に同じであり、ここではこれ以上繰り返さない。
【0191】
上記の実施形態のステップのすべてまたは一部を、コンピュータプログラムによって命令されるハードウェアによって実施できることを当業者なら理解することができる。そのプログラムは、コンピュータ読み取り可能な記憶媒体に記憶することができる。その記憶媒体は、ROM(読出し専用メモリ)、磁気ディスク、またはCD(コンパクトディスク)とすることができる。
【0192】
上記で詳しく説明したのは、本発明による、DSプロトコルまたはDMプロトコルに基づく認証方法、システム、サーバ、およびクライアントである。本発明をいくつかの例示的実施形態によって説明したが、本発明はそのような実施形態に限定されない。本発明の思想および範囲から逸脱することなく、当業者が本発明に修正および改変を加えることが可能であることは明らかである。それらの修正形態および改変形態が、特許請求の範囲またはその等価物によって定義する保護範囲に含まれる条件で、本発明はそれらの形態を対象として含むものとする。
【符号の説明】
【0193】
1410 サーバ
1411 送信ユニット
1412 第1の生成ユニット
1413 判定ユニット
1414 時間ユニット
1415 番号付けユニット
14151 昇順番号付けユニット
14152 降順番号付けユニット
1416 nonceリセットユニット
1417 第2の生成ユニット
1418 セッションID・nonceユニット
1420 クライアント
1421 受信ユニット
1422 第1の認証ユニット
1423 第1の有効性判定ユニット
1424 第2の有効性判定ユニット
14241 第1の番号付け判定ユニット
14242 第2の番号付け判定ユニット
1425 第2の認証ユニット
1428 セッションID・nonceユニット
1501 受信ユニット
1502 第1の生成ユニット
1503 第2の生成ユニット
1600 クライアント
1601 受信ユニット
1602 生成ユニット
1603 パスワード変更ユニット
1710 サーバ
1711 起動ユニット
1712 受信ユニット
1713 認証ユニット
1714 生成ユニット
1715 更新ユニット
1716 要求ユニット
1720 クライアント
1721 受信ユニット
1722 第1の認証ユニット
1723 生成ユニット
1724 第2の認証ユニット
1725 更新ユニット
1726 要求ユニット

【特許請求の範囲】
【請求項1】
データ同期プロトコルまたはデバイス管理プロトコルに基づく認証方法であって、
サーバが、起動メッセージノンス(nonce)を使用して起動メッセージを生成するステップと、
前記サーバが、前記起動メッセージをクライアントに送信するステップと、
前記クライアントが、前記起動メッセージノンスを抽出するステップと、
前記クライアントが、前記起動メッセージノンスが有効であると判定した後、前記起動メッセージノンスを使用してダイジェストを生成し、前記起動メッセージノンスを使用することによって生成された起動メッセージを認証するステップと、
前記クライアントが、前記認証に成功した後、前記起動メッセージによって指示されたサーバに、セッション識別子を伝送するセッション要求を送信するステップと、
を含むことを特徴とする方法。
【請求項2】
前記サーバが、起動メッセージノンスを使用して起動メッセージを生成するステップの前に、
前記方法は、
前記サーバが、サーバノンスを使用して起動メッセージを生成するステップと、
前記サーバが、前記サーバノンスを使用することによって生成された起動メッセージを前記クライアントに送信するステップと、
前記サーバが、前記サーバノンスを使用することによって生成された起動メッセージの認証に失敗したと判定した後、前記起動メッセージノンスを使用して起動メッセージを生成するステップと、
をさらに含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記サーバが、起動メッセージノンスを使用して起動メッセージを生成するステップは、
前記サーバが、前記サーバのシステム時間を起動メッセージノンスとして使用し、前記サーバのシステム時間を、前記起動メッセージノンスを使用することによって生成された起動メッセージ内で伝送するステップと、
前記クライアントが、前記起動メッセージノンスを使用することによって生成された起動メッセージを受信した後、前記クライアントのローカル時間を前記起動メッセージノンスと比較することにより、前記起動メッセージノンスが有効であるかどうかを判定するステップと、
前記クライアントが、前記起動メッセージノンスが有効であると判定した後、前記起動メッセージノンスを使用してダイジェストを生成し、前記ダイジェストを使用して、前記起動メッセージノンスを使用することによって生成された起動メッセージを認証するステップと、
を含むことを特徴とする請求項1または2に記載の方法。
【請求項4】
前記サーバが、起動メッセージノンスを使用して起動メッセージを生成するステップは、
前記サーバが、前記起動メッセージによって起動されるセッションのセッション識別子を起動メッセージノンスとして使用するステップと、
前記クライアントが、前記起動メッセージを受信したとき、前記起動メッセージノンスを使用することによって前記起動メッセージを認証するステップと、
前記クライアントが、前記認証に成功した後、前記セッション識別子に対応するセッションのセットアップを要求するセッション要求を送信するステップと、
を含むことを特徴とする請求項1または2に記載の方法。
【請求項5】
前記サーバが、起動メッセージノンスを使用して起動メッセージを生成するステップは、
前記サーバが、前記起動メッセージの識別子を起動メッセージノンスとして使用するステップと、
前記クライアントが、前記起動メッセージを受信した後、前記起動メッセージノンスを使用することによって前記起動メッセージを認証するステップと、
を含み、
前記起動メッセージの識別子は、前記クライアントによって返される前記起動メッセージの処理結果を、前記起動メッセージに対応付けることを特徴とする請求項1または2に記載の方法。
【請求項6】
前記サーバが、前記起動メッセージノンスによって生成された起動メッセージを昇順で番号付けするステップと、
前記サーバが、前記起動メッセージの番号を起動メッセージノンスとして使用するステップと、
前記クライアントが、前記クライアント内に記憶された起動メッセージノンスと、前記起動メッセージ内で伝送された起動メッセージノンスとを比較し、前記起動メッセージ内で伝送された起動メッセージノンスが、前記クライアント内に記憶された最大の起動メッセージノンスより大きい場合、または、前記クライアントによって受信され、記憶された起動メッセージノンスの値が、前記起動メッセージ内で伝送された起動メッセージノンスを含まない場合、または、前記クライアントによって受信されていない起動メッセージノンスの値が、前記起動メッセージ内で伝送された起動メッセージノンスを含む場合に、前記起動メッセージ内で伝送された起動メッセージノンスが有効であると判定するステップと、
前記クライアントが、前記起動メッセージノンスを保存するステップと、
前記クライアントが、前記起動メッセージノンスを使用してダイジェストを生成し、前記起動メッセージノンスを使用することによって生成された起動メッセージを認証するステップと、
を含むことを特徴とする請求項1または2に記載の方法。
【請求項7】
前記起動メッセージノンスを調節するステップを含むことを特徴とする請求項6に記載の方法。
【請求項8】
前記サーバが、起動メッセージノンスを使用して起動メッセージを生成するステップは、
前記サーバが、前記起動メッセージノンスを前記起動メッセージのメッセージヘッダ内またはメッセージ本体内で伝送し、前記起動メッセージノンス、前記起動メッセージのメッセージヘッダおよびメッセージ本体を使用することによってダイジェストを生成し、前記ダイジェストを使用することによって起動メッセージを生成するステップ、または、
前記サーバが、前記起動メッセージノンスを前記起動メッセージのメッセージヘッダ内またはメッセージ本体内で伝送し、前記起動メッセージのメッセージヘッダおよびメッセージ本体を使用することによってダイジェストを生成し、前記ダイジェストを使用することによって起動メッセージを生成するステップ、
を含むことを特徴とする請求項1または2に記載の方法。
【請求項9】
データ同期プロトコルまたはデバイス管理プロトコルに基づく認証方法であって、
クライアントが、更新される必要があるサーバノンスを判定するステップと、
前記クライアントが、新たなサーバノンスを生成するステップと、
前記クライアントが、前記新たなサーバノンスを伝送するセッション要求をサーバに送信するステップと、
前記サーバが、前記新たなサーバノンスを伝送するセッション要求を受信した後、前記新たなサーバノンスを使用して前記サーバノンスを更新するステップと、
を含むことを特徴とする方法。
【請求項10】
記憶された前記サーバノンスを更新するステップは、
前記サーバが、前記セッション要求メッセージを受信したときに前記クライアントを認証するステップと、
前記サーバが、前記クライアントの認証に成功した後、前記新たなサーバノンスを使用して前記新たなサーバノンスを更新するステップと、
を含むことを特徴とする請求項9に記載の方法。
【請求項11】
前記新たなサーバノンスをセッション要求に追加するステップは、
前記クライアントが、前記新たなサーバノンスを前記セッション要求メッセージのメッセージヘッダ内またはメッセージ本体内で伝送するステップを含むことを特徴とする請求項9に記載の方法。
【請求項12】
データ同期プロトコルまたはデバイス管理プロトコルに基づく認証方法であって、
クライアントが、サーバによって送信され、省略時ノンスを使用することによって生成された起動メッセージを受信するステップと、
前記クライアントが、前記起動メッセージを受信した後、サーバノンスを使用して前記起動メッセージを認証し、前記認証に失敗した場合、前記省略時ノンスを使用して前記起動メッセージを認証し、前記省略時ノンスを使用した前記起動メッセージの認証が成功した後、前記クライアントが、前記省略時ノンスを使用してセッション要求を生成し、かつ、セッションをセットアップし、前記サーバが新たなサーバノンスを使用することによって前記サーバノンスを更新することができるように、前記セッション内で前記新たなサーバノンスを前記サーバに送信するステップと、
前記クライアントが、前記サーバによって送信され、前記省略時ノンスを使用することによって生成された認証情報を受信して前記サーバを認証し、前記サーバからクライアントノンスを更新するコマンドを受信して前記クライアントノンスを更新するステップと、
前記クライアントが、前記サーバノンスおよび前記クライアントノンスを更新した後、サーバパスワードおよびクライアントパスワードを更新するステップと、
を含むことを特徴とする方法。
【請求項13】
データ同期プロトコルまたはデバイス管理プロトコルに基づく認証方法であって、
クライアントが、省略時ノンスを使用することによって生成されたセッション要求をサーバに送信するステップと、
前記サーバが、前記セッション要求を受信した後、前記省略時ノンスを使用して前記セッション要求を認証する必要があると判定した場合、前記省略時ノンスを使用して前記セッション要求を認証し、前記セッション要求の認証が成功した後、前記クライアントに、認証結果、前記省略時ノンスを使用することによって生成された認証要求、および、クライアントノンスを更新するコマンドを伝送する応答を返すステップと、
前記クライアントが、前記応答を受信するステップと、
前記クライアントが、前記省略時ノンスを使用して前記応答を認証する必要があると判定した場合、前記省略時ノンスを使用して前記応答を認証するステップと、
前記クライアントが、前記応答の認証に成功した後、前記サーバに、認証結果、および、サーバノンスを更新するコマンドを伝送する応答を返すステップと、
を含むことを特徴とする方法。
【請求項14】
前記省略時ノンスを使用して前記セッション要求を認証する必要があると判定するステップは、
前記サーバが、前記省略時ノンスを使用することによって生成された、前記セッション要求を起動する起動メッセージを前記クライアントに送信した場合、前記省略時ノンスを使用して前記セッション要求を認証する必要があると判定するステップ、または、
前記サーバが、前記クライアントノンスを使用することによって認証情報を生成して前記認証情報を使用することによって前記セッション要求を認証し、前記認証情報を使用することによる前記セッション要求の認証に失敗した場合、前記省略時ノンスを使用して前記セッション要求を認証する必要があると判定するステップ、
を含み、
前記省略時ノンスを使用して前記応答を認証する必要があると判定するステップは、
前記クライアントが、前記省略時ノンスを使用するセッション要求を前記サーバに送信した場合、前記省略時ノンスを使用して前記応答を認証する必要があると判定するステップ、または、
前記クライアントが、前記サーバノンスを使用することによって認証情報を生成し、前記認証情報を使用することによって前記応答を認証し、前記認証情報を使用することによる前記応答の認証に失敗した場合、前記省略時ノンスを使用して前記応答を認証する必要があると判定するステップ、
を含むことを特徴とする請求項13に記載の方法。
【請求項15】
データ同期プロトコルまたはデバイス管理プロトコルに基づく認証方法であって、
クライアントが、サーバによって送信され、省略時ノンス、セッション識別子、または、起動メッセージ識別子を使用することによって生成された起動メッセージを受信するステップと、
前記クライアントが、前記起動メッセージを受信した後、サーバノンスを使用して前記起動メッセージを認証するステップと、
前記クライアントが、前記起動メッセージの認証に失敗した場合、前記省略時ノンス、前記セッション識別子、または、前記起動メッセージ識別子を使用して前記起動メッセージを認証するステップと、
前記クライアントが、前記認証に成功した後、クライアントノンスを使用することによってセッション要求を生成するステップと、
前記クライアントが、前記サーバが前記クライアントノンスを使用して前記クライアントを認証するように、前記セッション要求を前記サーバに送信するステップと、
を含むことを特徴とする方法。
【請求項16】
前記クライアントが、新たなサーバノンスを前記サーバに送信して、前記サーバに、前記新たなサーバノンスを使用することによって、記憶されたサーバノンスを更新させるステップをさらに含み、
前記クライアントは前記新たなサーバノンスを前記セッション要求内で伝送し、かつ、前記セッション要求を前記サーバに送信し、または、
前記クライアントは前記新たなサーバノンスを前記サーバからのチャレンジメッセージの応答内で伝送し、かつ、前記応答を前記サーバに送信する請求項15に記載の方法。
【請求項17】
前記クライアントが、前記クライアントノンスを使用して前記セッション要求を生成し、前記セッション要求を前記サーバに送信するステップの後、
前記方法は、
前記クライアントが、前記省略時ノンス、前記セッション識別子、または、前記起動メッセージ識別子を使用することによって生成された、前記サーバによって送信された応答を受信した後に、前記サーバを認証するステップと、
前記クライアントが、前記認証に成功した場合、前記サーバが新たなサーバノンスを使用することによって、記憶されたサーバノンスを更新するように、前記新たなサーバノンスを前記サーバに送信するステップと、
を含むことを特徴とする請求項15に記載の方法。
【請求項18】
前記クライアントが、前記クライアントノンスを使用してセッション要求を生成し、前記セッション要求を前記サーバに送信するステップの後、
前記方法は、
前記クライアントが、前記サーバによって送信され、前記サーバノンスを使用することによって生成された応答を受信するステップと、
前記クライアントが、前記サーバノンスを使用することによって前記サーバを認証するステップと、
を含むことを特徴とする請求項15に記載の方法。
【請求項19】
新たなサーバノンスを使用することによって、記憶されたサーバノンスを更新した後、サーバパスワードを更新するステップを含むことを特徴とする、請求項15、16、17、または、18に記載の方法。
【請求項20】
データ同期プロトコルまたはデバイス管理プロトコルに基づく認証方法であって、
クライアントが、サーバによって送信された起動メッセージを受信するステップと、
前記クライアントが、前記起動メッセージを受信した後、前記起動メッセージ内で伝送された認証情報を抽出して前記サーバを認証するステップと、
前記クライアントが、前記サーバの認証に成功した後、前記サーバおよび前記クライアントによって共有されているノンスを使用してセッション要求を生成するステップと、
前記クライアントが、前記セッション要求を前記サーバに送信するステップと、
を含み、
前記サーバは、前記セッション要求を受信した後、前記共有されているノンスを使用して前記クライアントを認証し、
前記クライアントが、前記サーバから応答を受信した後、前記共有されているノンスを使用して前記サーバを認証するステップをさらに含み、
前記応答は前記共有されているノンスを使用することによって生成された認証情報を伝送することを特徴とする方法。
【請求項21】
前記サーバおよび前記クライアントによって共有されているノンスを更新する必要がある場合に、前記サーバおよび前記クライアントによって共有される新たなノンスを生成し、前記サーバおよび前記クライアントによって共有されているノンスを更新するコマンドを送信するステップを含み、
前記コマンドは、前記サーバおよび前記クライアントによって共有される新たなノンスを伝送することを特徴とする請求項19に記載の方法。
【請求項22】
セッション中に、前記サーバおよび前記クライアントによって共有される新たなノンスを認証メッセージ内で伝送し、前記サーバおよび前記クライアントによって共有されているノンスを更新する前に該ノンスを使用することによって生成されたダイジェストを使用して前記サーバを認証するステップ、または、
セッション中に、前記サーバおよび前記クライアントによって共有される新たなノンスを管理メッセージ内で伝送するステップ、
を含むことを特徴とする請求項21に記載の方法。
【請求項23】
前記サーバおよび前記クライアントによって共有されているノンスを更新する必要があると判定した場合に、前記サーバおよび前記クライアントによって共有されているノンスを更新する要求を送信するステップと、
前記サーバおよび前記クライアントによって共有されているノンスを更新する要求を受信した場合、前記サーバおよび前記クライアントによって共有される新たなノンスを生成し、前記サーバおよび前記クライアントによって共有される新たなノンスを含むメッセージを送信するステップと、
を含むことを特徴とする請求項21または22に記載の方法。
【請求項24】
データ同期プロトコルまたはデバイス管理プロトコルに基づく認証システムであって、
起動メッセージノンスを使用して起動メッセージを生成し、前記生成された起動メッセージを送信するように構成されたサーバと、
起動メッセージノンスを使用することによって生成された起動メッセージを受信し、前記起動メッセージノンスを抽出し、前記起動メッセージノンスが有効であると判定した後、前記起動メッセージノンスを使用してダイジェストを生成して、前記起動メッセージノンスを使用することによって生成された起動メッセージを認証し、前記起動メッセージの認証に成功した後、前記起動メッセージによって指示されたサーバにセッション要求を送信するように構成されたクライアントと、
を備えることを特徴とする認証システム。
【請求項25】
起動メッセージノンスを使用することによって、データ同期プロトコルまたはデバイス管理プロトコルに準拠する起動メッセージを生成するように構成された第1の生成ユニットと、
クライアントが前記起動メッセージノンスを抽出するように、前記起動メッセージノンスを使用することによって生成された起動メッセージを前記クライアントに送信し、前記起動メッセージノンスが有効であると判定した後、前記起動メッセージノンスを使用して、前記起動メッセージノンスを使用することによって生成された起動メッセージを認証し、前記起動メッセージの認証に成功した後、前記起動メッセージによって指示されたサーバにセッション要求を送信するように構成された送信ユニットと、
を備えることを特徴とするサーバ。
【請求項26】
サーバノンスを使用することによって起動メッセージを生成し、前記クライアントが、前記サーバノンスを使用することによって、前記サーバノンスによって生成された起動メッセージを認証することができるように、前記生成された起動メッセージを前記クライアントに送信するように構成された第2の生成ユニットと、
前記サーバノンスを使用することによって生成された起動メッセージの認証に失敗したと判定した後、前記第1の生成ユニットを制御して、前記起動メッセージノンスを使用して起動メッセージを生成するように構成された判定ユニットと、
をさらに備えることを特徴とする請求項25に記載のサーバ。
【請求項27】
前記クライアントが、記憶された起動メッセージと前記起動メッセージ内で伝送された起動メッセージノンスとを比較して、前記起動メッセージ内で伝送された起動メッセージノンスが有効かどうかを判定し、前記起動メッセージノンスが有効である場合、前記クライアントは、前記起動メッセージノンスを使用することによって生成されたダイジェストを使用することによって、前記起動メッセージ内で伝送された起動メッセージノンスを認証し、前記起動メッセージ内で伝送された起動メッセージノンスを保存するように、前記起動メッセージノンスを使用することによって生成された起動メッセージを昇順で番号付けするように構成された昇順番号付けユニットを備える番号付けユニットを備えることを特徴とする請求項26に記載のサーバ。
【請求項28】
前記番号付けユニットによって生成された起動メッセージノンスをリセットするように構成されたノンスリセットユニットをさらに備えることを特徴とする、請求項26に記載のサーバ。
【請求項29】
前記起動メッセージによって起動されるセッションのセッション識別子を前記起動メッセージノンスとして使用し、そして、前記クライアントが、前記起動メッセージを受信した後、前記起動メッセージノンスを使用することによって前記起動メッセージを認証し、前記起動メッセージノンスを使用することによる前記起動メッセージの認証に成功した後、前記セッション識別子に対応するセッションをセットアップすることを要求するセッション要求を送信するように構成されたセッション識別子・ノンスユニットをさらに備えることを特徴とする請求項26に記載のサーバ。
【請求項30】
起動メッセージノンスを使用することによってサーバによって生成され、データ同期プロトコルまたはデバイス管理プロトコルに準拠する起動メッセージを受信するように構成された受信ユニットと、
前記起動メッセージノンスを抽出し、前記起動メッセージノンスが有効であると判定した後、前記起動メッセージノンスを使用してダイジェストを生成して、前記起動メッセージノンスを使用することによって生成された起動メッセージを認証し、前記認証に成功した後、前記起動メッセージによって指示されたサーバにセッション要求を送信するように構成された第1の認証ユニットと、
を備えることを特徴とするクライアント。
【請求項31】
前記起動メッセージを受信した後、サーバノンスを使用して前記起動メッセージを認証し、前記認証に失敗した場合、前記起動メッセージノンスを使用して前記起動メッセージを再認証するように構成された第2の認証ユニットをさらに備えることを特徴とする請求項30に記載のクライアント。
【請求項32】
前記起動メッセージノンスを使用することによって前記サーバによって生成された起動メッセージを受信し、前記起動メッセージの番号を起動メッセージノンスとして使用し、前記起動メッセージノンスに基づいて、前記起動メッセージ内で伝送された起動メッセージノンスが、前記クライアント内に記憶された最大の起動メッセージノンスより大きい場合、または、前記クライアントによって受信され、記憶された起動メッセージノンスの値が、前記起動メッセージ内で伝送された起動メッセージノンスを含まない場合、または、前記クライアントによって受信されていない起動メッセージノンスの値が、前記起動メッセージ内で伝送された起動メッセージノンスを含む場合に、前記起動メッセージ内で伝送された起動メッセージノンスが有効であると判定し、前記起動メッセージ内で伝送された起動メッセージノンスを保存し、前記第1の認証ユニットを制御して、前記起動メッセージノンスを使用して前記起動メッセージノンスを使用することによって生成された起動メッセージを認証するように構成された第2の有効性判定ユニットをさらに備えることを特徴とする請求項30または31に記載のクライアント。
【請求項33】
前記起動メッセージによって起動されるセッションのセッション識別子を起動メッセージノンスとして使用し、前記起動メッセージノンスを使用することによって前記起動メッセージを認証し、前記起動メッセージノンスを使用することによる前記起動メッセージの認証に成功した後、前記セッション識別子に対応するセッションをセットアップすることを要求するセッション要求を送信するように構成されたセッション識別子・ノンスユニットをさらに備えることを特徴とする請求項30または31に記載のクライアント。
【請求項34】
更新される必要があるサーバノンスを判定するように構成された判定ユニットと、
新たなサーバノンスを生成し、前記新たなサーバノンスをセッション要求に追加し、サーバが前記新たなサーバノンスを伝送するセッション要求を受信した後、前記新たなサーバノンスを使用して、記憶されたサーバノンスを更新するように、前記セッション要求を前記サーバに送信するように構成された第1の生成ユニットと、
を備えることを特徴とするクライアント。
【請求項35】
省略時起動メッセージノンスを使用することによってサーバによって生成され、データ同期プロトコルまたはデバイス管理プロトコルに準拠する起動メッセージを受信するように構成された受信ユニットと、
前記起動メッセージを受信した後、サーバノンスを使用して前記起動メッセージを認証し、前記認証に失敗した場合、前記省略時起動メッセージノンスを使用して前記起動メッセージを再認証し、前記認証に成功した場合、クライアントノンスを使用してセッション要求を生成し、前記サーバが前記クライアントノンスを使用して前記クライアントを認証するように、前記セッション要求を前記サーバに送信するように構成された生成ユニットと、
を備えることを特徴とするクライアント。
【請求項36】
前記サーバノンスを新たなサーバノンスで更新した後、サーバパスワードを変更するように構成されたパスワード変更ユニットをさらに備えることを特徴とする請求項35に記載のクライアント。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公表番号】特表2011−504261(P2011−504261A)
【公表日】平成23年2月3日(2011.2.3)
【国際特許分類】
【出願番号】特願2010−532407(P2010−532407)
【出願日】平成20年4月9日(2008.4.9)
【国際出願番号】PCT/CN2008/070686
【国際公開番号】WO2009/059496
【国際公開日】平成21年5月14日(2009.5.14)
【出願人】(504277388)▲ホア▼▲ウェイ▼技術有限公司 (220)
【Fターム(参考)】