(57)【要約】  クライアント装置と通信するネットワークのためのセキュリティシステムにおいて、各クライアント装置は、ネットワークを通じて、少なくとも１つのサーバと通信する通信モジュールと、該クライアント装置における１つ以上の操作イベントに関する１つ以上の秘密データ値を格納するデータストレージモジュールと、該格納された秘密データ値に基づいて、少なくとも１つの秘密識別子を生成する秘密識別子生成モジュールとを有する。該秘密識別子は、該サーバへの１つ以上のネットワークメッセージ内に設けられ、または、別の方法でサービスプロバイダへ送信され、また、該ネットワークを通じて受信した特定の要求に応じて、あるいは、ネットワーク通信に一般的に伴う１つ以上のメッセージに定期的に設けてもよい。該サーバは、可能性のあるクローンを検出するために、同じクライアント識別子を有するクライアント装置から受信した秘密識別子を比較する。
2009524165.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを通じて通信するクローンクライアント装置を検出する方法であって、
前記サーバにおいて登録された認証を有するクライアント装置のための少なくとも１つの秘密識別子をサーバに格納することと、
前記サーバにおいて、クライアント装置からメッセージを受信し、該メッセージが、該クライアント装置の少なくとも１つの操作イベントから得られる秘密識別子を含むことと、
前記メッセージで受信した前記秘密識別子が、前記サーバに格納されている同じ認証を有するクライアント装置のための秘密識別子と一致するか否かを判断することと、
前記メッセージ内の秘密識別子の少なくとも一部が、前記サーバにおける前記クライアント装置のために格納された秘密識別子と一致しない場合に、実在するクライアント装置のクローンの検出を報告することと、
を備える方法。
【請求項２】
前記秘密識別子は、クライアント装置における操作イベントによって生成された、選択された秘密データ値を備え、クライアント装置から受信した秘密識別子における秘密データ値が、前記サーバに格納されている秘密識別子におけるどの秘密データ値とも一致しない場合に、実在するクライアント装置のクローンの検出が報告される、請求項１に記載の方法。
【請求項３】
前記秘密識別子は、クライアント装置における異なる操作イベントによって生成された、選択された秘密データ値に基づくコードを備える、請求項１に記載の方法。
【請求項４】
前記秘密識別子は、前記サーバによって前記クライアント装置に供給された少なくとも１つのトークンに、少なくとも部分的に基づいている、請求項１に記載の方法。
【請求項５】
前記秘密識別子は、前記クライアント装置によって生成された秘密データ値に基づいている、請求項１に記載の方法。
【請求項６】
前記秘密識別子は、前記サーバによって生成され、および前記サーバによって、前記クライアント装置へのメッセージに設けられた秘密データに基づいている、請求項１に記載の方法。
【請求項７】
前記秘密識別子は、前記クライアント装置およびサーバによって生成された秘密データ値に基づいている、請求項１に記載の方法。
【請求項８】
クライアント装置において、所定のイベントトリガに基づいて、前記秘密識別子を定期的に更新することと、更新された秘密識別子を、前記サーバへのメッセージに設けることとをさらに備える、請求項１に記載の方法。
【請求項９】
少なくとも１つのイベントトリガが、クライアント装置に対する更新されたファームウェアのインストールを備える、請求項８に記載の方法。
【請求項１０】
少なくとも１つのイベントトリガは、前記サーバからの特定の種類のメッセージの所定数の受取りを備える、請求項８に記載の方法。
【請求項１１】
少なくとも１つのイベントトリガは、前記クライアント装置からの特定の種類のメッセージの所定数の送信を備える請求項８に記載の方法。
【請求項１２】
少なくとも１つのイベントトリガは、前記クライアント装置における所定数のチャンネル変更を備える請求項８に記載の方法。
【請求項１３】
前記サーバに少なくとも１つの秘密識別子を格納するステップは、クライアント装置からの所定のメッセージの受信時に、前記サーバに第１の秘密データ値を格納することと、後に所定数のメッセージを、同じ認証を有するクライアント装置から受信したときの、更新された第２の秘密データ値を格納することとを備え、前記クライアント装置からの後のメッセージで受信した秘密識別子が、前に格納した秘密識別子に一致するか否かを判断するステップが、該メッセージにおける秘密データ値と、前記サーバに格納されている第１および第２の秘密データ値とを比較することを備え、それにより、前記後のメッセージにおける秘密データ値が、前記第１および第２の秘密データ値のうちの少なくとも一方と一致しない場合に、同じ認証を用いるクローンクライアント装置の検出が報告される、請求項２に記載の方法。
【請求項１４】
前記秘密データ値は、所定のメッセージを送信する時間に基づいている請求項１３に記載の方法。
【請求項１５】
前記サーバに格納されている秘密データは、少なくとも１つのクライアント装置からのメッセージで受信した秘密データ値に基づいている請求項１３に記載の方法。
【請求項１６】
クライアント装置における異なる操作イベントに基づいて、少なくとも１つの秘密データ値を、異なる秘密データ値に定期的に変更することをさらに備える請求項２に記載の方法。
【請求項１７】
ネットワーク上の加入者クライアント装置を更新する方法であって、
クライアント装置において、該クライアント装置における操作イベントに基づいて秘密識別子を生成することと、
前記クライアント装置において、サービス更新メッセージを受信することと、
前記サービス更新メッセージに応じて、前記秘密識別子をサービスプロバイダに供給することと、
前記ネットワークを通じて、前記クライアント装置において、更新コードメッセージを受信し、該更新コードメッセージが、前記秘密識別子に基づく更新解除コードを含むことと、
前記秘密識別子を用いて前記更新解除コードを処理して、前記サービスプロバイダからの継続的なサービスを受けることと、
を備える方法。
【請求項１８】
前記サービス更新メッセージの前に、前記クライアント装置において、更新秘密識別子メッセージを受信することと、更新された秘密識別子を前記サービスプロバイダへ供給する前に、前記クライアント装置において、該秘密識別子を更新することとをさらに備える請求項１７に記載の方法。
【請求項１９】
前記秘密識別子は、クライアント装置において、異なる操作イベントによって生成された、選択された秘密データ値に基づくコードを備える請求項１７に記載の方法。
【請求項２０】
前記秘密識別子を前記サービスプロバイダに供給するステップが、前記ネットワークを通じて、メッセージ内の該秘密識別子を前記サービスプロバイダに関連するサーバに送信することを備える請求項１７に記載の方法。
【請求項２１】
ネットワーク上のクローンクライアント装置を検出するシステムであって、
ネットワークを通じてクライアント装置と通信する通信モジュールを有するサーバと、
前記サーバとのサービスのために登録された少なくとも１つの実在するクライアント装置に関連するクライアント識別子と、同じクライアント識別子を有するクライアント装置から受信する少なくとも１つの秘密識別子とを格納する、前記サーバに関連するデータストレージモジュールと、
前記サーバおよびデータストレージモジュールと関連し、クライアント装置から受信したメッセージ内の少なくとも１つの秘密識別子と、同じクライアント識別子に関連する前記格納された秘密識別子とを比較し、これらの秘密識別子が一致しない場合に、クローン検出リポートを生成するクローン検出モジュールと、
を備えるシステム。
【請求項２２】
前記ネットワークを通じて前記サーバと通信する複数のクライアント装置をさらに備える請求項２１に記載のシステム。
【請求項２３】
前記クライアント装置がスマートカードである請求項２２に記載のシステム。
【請求項２４】
前記クライアント装置のうちの少なくともいくつかがスマートカードを含む請求項２２に記載のシステム。
【請求項２５】
前記クライアント装置のうちの少なくともいくつかがセットトップボックスである請求項２２に記載のシステム。
【請求項２６】
前記クライアント装置のうちの少なくともいくつかが移動通信装置である請求項２２に記載のシステム。
【請求項２７】
前記クライアント装置のうちの少なくともいくつかがパーソナルコンピュータである請求項２２に記載のシステム。
【請求項２８】
各クライアント装置は、前記クライアント装置における操作イベントに対応する少なくとも１つの秘密データ値に基づいて秘密識別子を生成する秘密識別子生成モジュールと、秘密データ値を格納する秘密データストレージモジュールと、前記ネットワークを通じて前記サーバに送信される少なくとも１つのメッセージに前記秘密識別子を組込むメッセージフォーマット化モジュールとを有する請求項２２に記載のシステム。
【請求項２９】
前記秘密識別子は、少なくとも１つの実際の秘密データ値を備える請求項２８に記載のシステム。
【請求項３０】
前記秘密識別子は、少なくとも１つの秘密データ値の変換バージョンを備える請求項２８に記載のシステム。
【請求項３１】
前記秘密識別子は、前記クライアント装置における異なる操作イベントに対応する複数の秘密データ値を備える請求項２８に記載のシステム。
【請求項３２】
前記秘密識別子は、前記クライアント装置における異なる操作イベントに対応する複数の秘密データ値の変換バージョンを備える請求項２８に記載のシステム。
【請求項３３】
ネットワークを通じて通信するクライアント装置であって、
ネットワークを通じて、少なくとも１つのサーバと通信する通信モジュールと、
前記クライアント装置における操作イベントの少なくとも１つの秘密データ値に基づいて、少なくとも１つの秘密識別子を生成する秘密識別子生成モジュールと、
前記秘密データ値を格納する、前記秘密データ生成モジュールに関連するデータストレージモジュールと、
を備えるクライアント装置。
【請求項３４】
前記通信モジュールに関連するメッセージフォーマット化モジュールと、前記サーバに対する通信のための秘密識別子を含む少なくとも１つのメッセージを生成するデータストレージモジュールとをさらに備える請求項３３に記載のクライアント装置。
【請求項３５】
前記データストレージモジュールは、異なる操作イベントの異なる秘密データ値から構成される秘密データテーブルを格納し、前記秘密識別子は、前記秘密データテーブルに基づいている請求項３３に記載のクライアント装置。
【請求項３６】
前記秘密識別子は、前記秘密データテーブルにおける秘密データ値のうちの少なくともいくつかを備える請求項３５に記載のクライアント装置。
【請求項３７】
前記秘密識別子は、前記秘密データ値のうちの少なくともいくつかの変換である請求項３５に記載のクライアント装置。
【請求項３８】
少なくとも１つの所定の秘密データトリガに応じて、少なくともいくつかの新たな秘密データ値で、前記秘密データ値から構成されるテーブルを更新するように構成された秘密データ更新モジュールをさらに備える請求項３５に記載のクライアント装置。
【請求項３９】
前記秘密識別子生成モジュールは、コマンドに応じて、新たな秘密データに基づいて、更新されたクライアント識別子を生成するように構成されている請求項３３に記載のクライアント装置。
【請求項４０】
前記コマンドは、ネットワークメッセージで受信した更新コマンドを備える請求項３９に記載のクライアント装置。
【請求項４１】
前記コマンドは、秘密データトリガを備える請求項３９に記載のクライアント装置。
【請求項４２】
現在の秘密識別子をサーバに送信することにより、前記ネットワークを通じて前記サーバから受信した更新メッセージに応答する更新モジュールをさらに備える請求項３９に記載のクライアント装置。
【請求項４３】
前記通信モジュールと、秘密識別子生成モジュールと、データストレージモジュールとを含む一体型プロセッサを有するスマートカードを備える請求項３３に記載のクライアント装置。
【請求項４４】
前記装置は、セットトップボックス、パーソナルコンピュータ、ＰＤＡ、ポータブル通信装置、メディア再生装置およびスマートカードから構成される群から選択される請求項３３に記載のクライアント装置。
【請求項４５】
前記クライアント装置は、秘密識別子生成モジュールおよびデータストレージモジュールを含むシリコンチップである請求項３３に記載のクライアント装置。
【請求項４６】
前記秘密識別子は、前記サーバからクライアント装置へ供給された少なくとも１つの暗号化キーに少なくとも部分的に基づいている請求項１に記載の方法。
【請求項４７】
前記秘密識別子は、前記サーバからクライアント装置へ供給された少なくとも１つの暗号化キーに少なくとも部分的に基づいており、前記クライアントは、前記サーバが供給した暗号化キーを用いて、前記クライアントと前記サーバとの通信を暗号化する、請求項１に記載の方法。
【請求項４８】
クライアント装置において、所定のイベントトリガに基づいて、定期的に追加の秘密識別子を付加することをさらに備え、前記追加の秘密識別子は、前の秘密識別子に追加される請求項１に記載の方法。
【請求項４９】
前記秘密識別子は、前記クライアント装置で発生したイベントの時刻に基づいている請求項１に記載の方法。
【発明の詳細な説明】
【関連出願】
【０００１】
本発明は、２００６年１月２０日に出願された同時係属の米国仮特許出願第６０／７６０，４７５号の利益を主張し、該仮出願明細書は、その全体が参照により本明細書に組み込まれる。
【技術分野】
【０００２】
本発明は、サーバとクライアント装置との間のネットワーク通信に関し、特に、料金の支払いなしに、または、実在するクライアント装置を模倣して不正にサービスを受けようとする、真のまたは適切に登録されたクライアント装置のクローンを検出するネットワークセキュリティシステムおよび方法に関する。
【背景技術】
【０００３】
分散型コンピュータ環境において、侵害者は、有効なクライアントまたは許可された加入者と同一の認証によって多数のクライアントを生成し、それによって、料金未納の加入者が、支払い済みの許可された加入者のサービスを共有する（不正に受ける）ことを可能にすることにより、不正にサービスを受けようとする。該認証は有効と思われるため、サーバは、ブロードキャストキー等をそのようなクローンに送信し、未許可の加入者が、番組を視聴したり、双方向通信を行ったりすることが可能になる。このようなクローニング技術は、ネットワークプロバイダにとって深刻な問題である。また、侵害者は、携帯電話における高度なセキュリティ証明のためのクレジットまたは現金自動預け払い機（ＡＴＭ）カードとして、許可された個人によって使用されるスマートカード、出入り管理カード、公共交通機関のカード等のスマートカード等のクライアント装置を複製またはコピーしようとする。また、スマートカードのクローニングは、そのようなサービスのプロバイダおよび許可されたカードユーザに対して深刻な問題を引き起こす。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従って、上述したような従来のシステムに見られる深刻な問題を少なくし、または克服するシステムおよび方法が必要である。
【課題を解決するための手段】
【０００５】
本明細書に記載されている実施形態は、クライアント装置とサーバとの間の通常のメッセージへの秘密のセキュリティデータの付加を提供し、その結果、サーバは、ネットワークと通信している２つ以上のクライアント装置が、同じ登録認証またはクライアント識別子（クライアントＩＤ）を有しているか否かを判断して、１つ以上のクローンクライアント装置の存在を知らせることができる。
【０００６】
一つの態様によれば、クローンクライアント装置を検出するセキュリティ方法が提供され、該方法は、サーバにおいて、クライアント装置からメッセージを受信することであって、該メッセージが、該クライアント装置における１つ以上の操作イベントから得られる秘密識別子（ｃｏｖｅｒｔ  ｉｄｅｎｔｉｆｉｅｒ）を含むことと、該秘密識別子が、該サーバに格納されている該クライアント装置のための秘密識別子と一致するか否かを判断することと、該秘密識別子が一致しない場合に、クローンクライアント装置の検出を報告することとを備える。
【０００７】
該サーバに格納されている秘密識別子は、該サーバまたはクライアント装置によって生成された１つ以上の秘密データアイテムに基づいており、また、同じクライアント装置からのものであるとされている前のメッセージで受信されていてもよい。該メッセージが、実在するクライアント装置およびクローンクライアント装置等の異なるクライアント装置を生成元とする場合、１つのクライアント装置における操作イベントのタイミングおよび値が、別のクライアント装置におけるものと同一ではないため、該秘密識別子は一致しない。該秘密識別子は、１つ以上の操作イベント、例えば、イベントの発生の時間、または、該クライアント装置において、特定のイベントが発生した回数によって生成された値とすることができ、または、該操作イベントに基づいていてもよく、あるいは、ハッシング関数等を用いた１つ以上の秘密データ値の変形バージョンであってもよい。
【０００８】
該クライアント装置は、ネットワークを通じてデータを受信および／または送信することが可能な、セットトップボックス（ｓｅｔ  ｔｏｐ  ｂｏｘ；ＳＴＢ）、パーソナルコンピュータ、ゲーム機、携帯電話、携帯端末（ＰＤＡ）、ビデオ機器、スマートカード等のどのような種類のコンピュータデバイスであってもよい。該クライアント装置のために生成された秘密識別子は、クライアント装置によって収集されて格納された１つ以上の秘密データ値、またはそのような秘密データの変形バージョンを備えることができ、また、時間と共に変化し、かつ該クライアント装置によって、または該クライアント装置およびサーバによって格納することのできるクライアント装置の何らかの操作特性またはイベントに基づくことができる。該秘密識別子は、サーバによって与えられたトークンまたは値であってもよく、あるいは、クライアントおよびサーバが生成した秘密データ値の組合せであってもよい。本明細書において言及したクライアント装置の操作特性は、該クライアント装置において発生する、または該クライアント装置に関連して発生する、および特定のクライアント装置に固有であるイベント、例えば、所定の操作イベントが発生する時間、例えば、該クライアント装置またはサーバにおいて、所定のメッセージを送信または受信する時間、ファームウェアアップデート、メッセージをネットワークに送信する時間と、該ネットワークからの応答を受信する時間との遅延時間、該クライアント装置において、ｎ番目のネットワークパケットを受信した時間、特定の操作イベントが発生した回数、サーバからクライアント装置へ送信されたトークン、受信したＥＣＭ（Ｅｎｔｉｔｌｅｍｅｎｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ）パケットのカウント、クライアント装置が所定の時間に合わされたチャンネル、所定の時間におけるチャンネル変更の回数、クライアント装置内のチップに含まれるレジスタ値等である。スマートカードの場合、秘密データを生成するのに用いられる操作特性は、該スマートカードの最初の使用時の時刻、すなわち、ある操作のために該スマートカードが使用されたときのマイクロ秒時間、ある時刻に該スマートカードによって処理された、またはブロードキャストイベントトリガ等の特定のイベントで捕捉されたデータバイトの総数、または、他の何らかの操作データ、カウント、あるいは、例えば、該スマートカードの使用中に発生したイベントとすることができる。携帯電話の場合、該電話の通話記録は、該通話記録をハッシング関数で処理して、当該電話に固有の識別子を生成することによって、秘密識別子を生成するのに用いることができる。操作特性は、特定のクライアント装置の操作によって生成されるものであり、従って、クローンクライアント装置によって容易にハッキングまたは複製されず、例えば、発生したイベントまたは発生したトリガのマイクロ秒時刻、または新たなデータが捕捉される。秘密識別子は、秘密データ値を生成するための新たな操作イベントを用いて定期的に更新して、ハッキングの成功リスクをさらに低減することができる。
【０００９】
クライアント装置に固有の秘密識別子を生成するのに用いることのできる潜在的な秘密データ値のいくつかの実施例は、特定の種類のメッセージが該クライアント装置によって送信された、または該クライアント装置によって受信された最後の時刻、特定のイベントが発生した回数、例えば、購入されたアイテムの数、受信した一時キー更新の数、特定の種類のデータメッセージまたはネットワークパケットを受信した回数、または、クライアント装置が特定のイベントを実行した回数、システムで使用される際に動的ホスト構成プロトコル（Ｄｙｎａｍｉｃ  Ｈｏｓｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ；ＤＨＣＰ）サーバによって使用されるインターネットプロトコル（ｉｎｔｅｒｎｅｔ  ｐｒｏｔｏｃｏｌ；ＩＰ）アドレス、ケーブルモデム等の他のネットワーク装置または信号強度から得られる値、所定数のイベントが発生した後のクライアントデータパラメータの値等である。秘密データ値は、サーバからのメッセージで受信した、および該サーバへの後のメッセージで用いられるデータを備えることができる。この値は、各後の通信時に、該サーバによって更新することができる。このようにして、該サーバは、更新済みの秘密データ値を含まないメッセージを受信した場合に、潜在的なクローン装置が存在すること、すなわち、システム上に同じ認証を有する２つ以上のクライアント装置があることを認識する。２つ以上の秘密データ値を、追加のセキュリティのために、各メッセージにおける秘密識別子のために用いることができる。スマートカードの場合、該秘密識別子は、該カードが使用された時間、購入したアイテムの数等に基づくことができる。
【００１０】
いくつかの実施形態において、イベントトリガは、秘密データ値を更新または変更するために、または、新たな秘密識別子を生成するのに用いられる更新済みの秘密データ値をもたらし、あるいは、クライアントとサーバの間のメッセージに含まれるメッセージングプロトコルまたはデータを変更するカウントまたはタイマーをスタートさせるために用いることができる。
【００１１】
別の態様においては、クローンクライアント装置を検出するセキュリティシステムが提供され、該システムは、複数の許可されたまたは実在するクライアント装置のための、クライアント認証またはクライアント識別子（ＩＤ）の複数のセットを格納し、およびクライアント装置からのメッセージで受信される、クライアント装置の操作特性に基づく秘密識別子も格納するネットワークサーバデータストレージモジュールと、クライアント装置から受信したメッセージ内の秘密識別子と、同じクライアントＩＤに対応する、前に格納された秘密識別子とを比較し、該秘密識別子が一致しない場合に、クローン検出リポートを生成する秘密データ処理モジュールと、を備える。
【００１２】
ネットワークが双方向ネットワークである場合、収集された操作イベントに基づく秘密識別子は、通常のネットワーク通信の間に交換される。該ネットワークが、通常通り一方向ネットワークとして作動するが、特定のクライアント通信のためのリターンチャンネルを有する場合には、該クライアント装置の使用に基づく所定の秘密データ値が収集されて、クライアント装置によって格納される秘密識別子を生成するのに用いられる。該秘密識別子は、使用可能なときに、例えば、定期的な更新プロセスの間に該リターンチャンネルを介してメッセージで該サーバへ送信される。該サーバは、特定の加入者のために最初の秘密識別子を格納する。後に、同じクライアント装置から生成されたと思われる秘密識別子を受信した場合、クローン検出リポートが該サーバによって発行される。
【００１３】
別の態様によれば、クライアント装置の操作によって生成されたデータに基づいて、秘密識別子を生成する秘密データ生成モジュールと、該秘密識別子を格納する秘密データストレージモジュールとを含むクライアント装置が提供される。該クライアント装置は、双方向ネットワーク環境での、または、特定の通信のためのリターンチャンネルを含む一方向ネットワークでの使用が意図されており、該クライアント装置は、現在格納されている秘密識別子を含むメッセージを生成するメッセージ生成モジュールも含むことができる。該秘密識別子は、後に、サーバまたは何らかの組合せからの要求に応じて、メッセージに埋め込まれた秘密データフィールドで、または、データ値として、ネットワークを通じてネットワークサーバへ送信される。該メッセージは、該クライアント装置が、通常、ネットワークとの一方向通信にのみ関連している場合に、通常、双方向通信でネットワークへ送信される、または、定期的な更新手順の一部としてのメッセージで、または他の標準的なメッセージで送信される種類のメッセージとすることができる。
【００１４】
一方向ネットワークサービスのためのリターンチャンネルがない場合、該クライアント装置は、該クライアント装置における新たなイベントに基づいて定期的に更新することのできるクライアント識別子を生成して格納する。該クライアント装置またはネットワークサーバは、クライアント装置において、所定の間隔でサービスコードメッセージを生成するサービスコード生成モジュールを含むことができる。このメッセージは、携帯電話を介して、または、サービスセンターとのインターネット接続を介して、加入者に、該サービスセンターを呼び出すか、または、ショートメッセージサービス（ｓｈｏｒｔ  ｍｅｓｓａｇｅ  ｓｅｒｖｉｃｅ；ＳＭＳ）のテキストメッセージを送信するように要請して、加入者識別子および該クライアント装置内の現在格納されている秘密識別子を供給する。該現在格納されている秘密識別子は、別々に操作されているため、実在するクライアント装置とクローンクライアント装置とで異なるので、該サービスセンターは、２つのメッセージが、同じクライアントまたは加入者識別子と共に、および異なる秘密識別子と共に、いつ受信されたかを判断することができる。その結果、該サービスセンターは、どのクライアント装置が許可された加入者と関連しているかを判断する追加的ステップを採用して、当該クライアント装置のみを更新し、同じ加入者またはクライアント識別を用いる他のクライアント装置に対するサービスを遮断することができる。
【００１５】
秘密識別子は、クライアント装置の実際の動作中に発生する操作イベントによって生成される。該操作イベントは、該クライアント装置の製造後に発生し、加入者が該クライアント装置をどのように使用するかに基づいているため、該操作イベントは、特定のクライアント装置に固有のものである。クローンクライアント装置は、起動後に、別々に事を行い、これは、秘密識別子を生成するのに用いられる動作の違いであるため、これらの操作イベントは、クローンクライアント装置の間でも異なる。そのため、秘密データは、該クライアント装置によって格納され、後に、サーバへのメッセージに用いられる、特定のクライアント装置のための固有識別子を生成する。該クライアント装置が、通常、一方向ネットワーク通信でのみ使用される場合、該固有秘密識別子は、定期的な更新処理手順でネットワークに供給することができ、または、クローニングが疑われる場合に、ネットワークサーバが要求することができる。
【００１６】
上記秘密データ生成モジュールは、該クライアント装置の中央演算処理装置に組み込むことができ、該モジュールは、スマートカード、携帯電話等のある場合においては、単一チップで（システムオンチップまたはＳＯＣ）具体化することができる。また、上記秘密データストレージモジュールは、中央演算処理装置（ＣＰＵ）に、または、該中央演算処理装置に関連する独立したデータベースに、あるいは、該ＣＰＵの内部または外部の記憶装置に組み込むことができる。
【００１７】
一実施形態におけるクライアント装置のメッセージフォーマットは、メッセージ識別子フィールドと、秘密データフィールドと、クライアント識別フィールドまたはキー要求等の、サーバへ伝達されるべきメッセージを含む、またはメッセージまたはメッセージＩＤの一部としての少なくとも１つの追加的なデータフィールドとを備える。メッセージの種類は、ログオンメッセージ、ブロードキャストキー要求メッセージ、電子商取引購入メッセージ、チャンネル変更要求、購読更新メッセージ等とすることができる。メッセージの種類がログオンメッセージである場合、追加的なデータフィールドは、ユーザ名およびパスワードを含む。秘密データフィールドは、１つ以上の秘密データ値またはアイテム、あるいはそのような秘密データ値の変換バージョンを備えることができる秘密識別子を含む。該秘密識別子は、メッセージの受信時に、２つ以上のクライアント装置が同じ認証を使用しているか否かを判断するために、サーバが利用することができる。２つ以上のメッセージの種類は、秘密識別子を含むことができる。
【００１８】
一実施形態において、現在の秘密識別子は、システムに対するログオン、復号キーの要求、電子商取引の実行等の通常のメッセージの一部として、または他のメッセージおよびシステム内で一般に発生するイベントの一部として、クライアント装置からサーバへ送信される。秘密識別子を生成するのに用いられる秘密データ値は、様々なイベントに基づくことができ、また、イベントトリガは、それまでに格納されている秘密識別子の更新または変更をトリガするイベントを定義するのに用いることができる。クライアントとサーバとの間の通常のメッセージングに付加される秘密識別子は、該クライアントとサーバとの間での追加的なメッセージまたは追加的な確認応答を必要とせず、ハッカーがプロトコルを監視して、システムをどのようにハッキングするかを判断できる可能性が低減される。従って、例えば、ＳＴＢの加入者の認証をクローニングすることによって、サービスを不正に受けようとするハッカーは、秘密識別子と、該秘密識別子の変更が、正規のＳＴＢとクローンのＳＴＢとが同じ秘密識別子を有することを確実にしてしまうトリガとの意味を知る必要がある。２つ以上の秘密データ値は、秘密識別子を生成するのに用いることのでき、例えば、２つ以上の秘密データ値からなるクライアントライブラリは、サーバへの各選択されたクライアントメッセージにおける秘密識別子を生成するのに用いることができる。該秘密データ値からなるクライアントライブラリは、定期的に更新され、クローン装置をサーバから分からないようにすることをより難しくする。代替的実施形態においては、該秘密識別子は、クライアントとサーバとの間で、別々のメッセージで送信することもできる。
【００１９】
上記セキュリティシステムは、疑わしいクローン装置を識別するように設計された更新プロセスを含んでもよい。該更新プロセスは、ネットワークサーバによって生成されたクローン検出リポートに応じて始動することができ、または、定期的に、あるいは、他の理由でクローンに疑いがある場合に、実行してもよい。該更新プロセスは、複数のクライアント装置が同じ認証を使用している場合に、単一のクライアント装置のみを再承認するように設計される。
【００２０】
以下の詳細な説明および添付図面を精査すれば、当業者には、本発明の他の特徴および効果が容易に理解される。
【発明を実施するための最良の形態】
【００２１】
構造および動作に関する本発明の詳細は、同様の参照数字が同様の部材を指す添付図面の検討によって、ある程度探り出すことができる。
【００２２】
本明細書に開示したいくつかの実施形態は、同一の認証を用いて、２つ以上のクライアント装置の検出を実行できる。例えば、本明細書に開示した一つの方法およびシステムは、クライアント装置とサーバの間の通常のメッセージングに付加されている、クライアント装置に特有の操作イベントの値に基づく秘密識別子を用いて、潜在的なクローン装置の検出を可能にする。
【００２３】
この説明を読めば、当業者には、本発明を、様々な代替的実施形態および代替適用においてどのように実施するかがはっきりと理解できる。しかし、本発明の様々な実施形態が本明細書に記載されているが、それらの実施形態は、限定ではなく、単に例証として提示されていることは理解される。従って、様々な代替的実施形態のこの詳細な説明は、添付の特許請求の範囲に記載されている本発明の範囲または広さを限定するものと解釈すべきではない。
【００２４】
以下の説明において、クライアント装置は、ネットワークからのデータを計算し、および受信することが可能な、セットトップボックス（ＳＴＢ）、パーソナルコンピュータ、ゲーム機、携帯電話、携帯端末（ＰＤＡ）、パーソナルメディアプレーヤ、ディジタルビデオレシーバ（ＤＶＲ）等のビデオ機器、ディジタルビデオディスク（ＤＶＤ）プレーヤ、コンパクトディスク（ＣＤ）プレーヤ、スマートカード等のどのような種類の装置であってもよい。許可された、または実在するクライアント装置とは、ネットワークを通じてサービスを受けるために、または、スマートカードの場合のように、ネットワークによって許可されたバンキング、購買等のローカルサービスを受けるために、サーバに正式に登録されている装置のことである。クローン装置とは、該ネットワーク上でのサービスのために正式に登録された実在するクライアント装置と同一の認証を有し、および許可なしに金またはサービスを得ようとする未許可または未払いのユーザによって使用される装置のことである。「秘密データ」、「秘密データ値」および「秘密データアイテム」という用語は、クライアント装置の操作特性に基づく固有のデータ値、例えば、特定のクライアント装置の操作、または当該装置のサーバとの通信あるいはトークンによって生成された値、あるいは、サーバによって生成され、かつ該クライアント装置へのメッセージに埋め込まれている、該クライアント装置の操作に基づく値を示すのに用いられる。このような値は、その性質が、ハッカーがクローン装置において検出して複製するのを困難にし、また、該データが製造後に生成されるため、秘密である。「秘密識別子」という用語は、特定のクライアント装置の操作に関連する秘密データ値に基づいて生成される、該特定のクライアント装置に固有の識別子を指し、また、いくつかの実施形態においては、１つ以上の実際の秘密データ値を備えることができ、あるいは、ハッシュ関数を用いた、そのようなデータ値の変換バージョンであってもよく、または、任意の数値を根源としてもよく、あるいは、該データに対して他の変換を実行してもよい。「イベントトリガ」という用語は、クライアント装置とサーバの間のメッセージングプロトコルに含まれている秘密識別子の更新または変更をトリガするイベントを表すのに用いられる。「イベントカウンタ」は、クライアント装置によって実行されたイベントをカウントし、およびカウントされたイベントの数がしきい値を超えた場合の、イベントトリガとして用いることができる。
【００２５】
図１は、一実施形態によるクローン検出を盛り込んだネットワークセキュリティシステムのブロック図であり、サーバ１０は、ネットワーク１４を通じて、実在するまたは許可されたクライアント装置１２と通信し、また、同一のクライアント認証を用いた多数のクローンクライアント装置１５、１６も、ネットワーク１４を通じてメッセージをサーバ１０へ送信する。１つ、２つまたはそれ以上のクローン装置は、クライアント装置１２を装うことにより、いつでもネットワークサービスを利用しようと試みることができる。コンピュータ環境の侵害者は、多くの場合、同一の認証を有する多数のクライアントを生成することにより、ネットワークおよび他のサービスを盗もうとし、それによって、未払いの加入者が、支払い済みの許可された加入者のサービスを共有または不正流用することを可能にする。
【００２６】
図１に示すように、サーバ１０は、クライアント装置からメッセージで受信することができる、および／または該サーバによって生成することのできる秘密識別子を格納するデータストレージモジュール２３を有するサーバデータベース（ＤＢ）につながっている。上述したように、各秘密識別子は、特定のクライアント装置における操作イベントに基づいている。サーバ１０は、ネットワーク通信を制御する通信モジュール１１と、以下に詳細に説明するように、クライアント装置から受信したメッセージ内の秘密識別子と、モジュール２１内のこれまでに格納された秘密識別子とを比較するクローン検出モジュール１３とを有する。サーバ１０は、図示されていない、追加的な標準サーバ処理および制御モジュールを有する。
【００２７】
図１のシステムにおいて、クライアント装置１２は、メッセージＭ１をサーバ１０に送信し、一方、クローン装置１５、１６は、同様のメッセージＭ２およびＭ３を該サーバに送信する。これらのメッセージは、どのような順番でも送信してもよく、また、該サーバは、メッセージＭ１〜Ｍ３の送信の順番に関係なく、１つ以上の潜在的なクローンの存在を検出するように適応されている。各メッセージは、該メッセージの所定の秘密データフィールドまたは部分に埋め込まれた秘密識別子１８を含むように適応されている。該サーバと通信するクライアント装置のための秘密識別子は、クライアント装置のためのクライアント認証と関連付けられており、以下に詳細に説明するように、同じ認証を有する１つ以上のクライアント装置から受信した今後の秘密識別子との比較のために、秘密データストレージモジュール２３に格納される。各真のおよびクローンのクライアント装置は、それぞれ、データベースまたはメモリストレージ（ＲＡＭ、ＲＯＭ、ＦＬＡＳＨ、ＥＥＰＲＯＭ）またはレジスタストレージ３０、３２、３４を有し、該秘密データ値は、所定のイベントトリガ時に格納され、更新される。該データベースは、図１のクライアント装置から独立して図示されているが、該データベースは、該クライアント装置に収容してもよく、または、中央演算処理装置または該クライアント装置内のシステムオンチップ（ＳＯＣ）の一部、あるいは、ＲＡＭメモリ、フラッシュメモリ、固定メモリ等のデバイスメモリであってもよい。
【００２８】
（実在またはクローンの）クライアント装置１２、１５または１６は、図３に、より詳細に図示されている。該クライアント装置は、セットトップボックス、パーソナルコンピュータ、ゲーム機、携帯電話、ＰＤＡ、ポータブルメディアプレーヤ、ＤＶＤプレーヤ、ＤＶＲまたはスマートカード等の、ネットワークを通じた通信のために構成されたどのようなクライアント装置であってもよい。該クライアント装置は、独立して図示されているが、該クライアント装置の他のモジュールとして同じハウジング内に、または、ある場合においては、他のモジュールとして同じチップ上に組み込まれていてもよい関連するデータストレージモジュール３０、３２、３４を有する。また、該クライアント装置は、サーバ１０とのネットワーク通信を制御する通信モジュール１７と、該サーバから受信した秘密データ値、イベントトリガまたはデータに基づいて秘密識別子を生成する秘密識別子生成モジュール１９と、メッセージフォーマット化モジュール２８とを有する。該クライアント装置は、図３には図示されていない標準的なクライアント装置処理および制御モジュールも含む。該データストレージモジュールは、以下に説明するように、秘密データ値の現在のセットを格納する秘密データテーブルモジュール２９を有する。該秘密識別子が、該秘密データ値の変換バージョンである場合、現在の秘密識別子または秘密データ値のマトリクスあるいは秘密データ値の群もモジュール２９に格納される。
【００２９】
一実施形態において、メッセージフォーマット化モジュール２８は、現在の秘密識別子を、該サーバに送信される一種類以上のメッセージに挿入または埋め込まれるように適応されている。該クライアント装置が、一方向ネットワーク通信を受信することのみに使用され、かつ該ネットワークへのリターンチャンネルにアクセスできない別の実施形態においては、メッセージフォーマット化モジュール２８は省かれ、図９に関して以下にさらに詳細に説明するように、該秘密識別子生成モジュールが、定期的な加入者更新プロセスに関連して、現在格納されている秘密識別子を、固有識別コードの形で該クライアント装置のユーザに対して表示するように構成される。
【００３０】
一実施形態において、該秘密セキュリティデータまたは識別子１８は、メッセージがそこから送信される該装置の操作特性に基づいている。このような特性は、クローンクライアント装置が、許可されたまたは実在するクライアント装置と同じ様に操作されないため、およびメッセージ、更新等の操作イベントが、異なる装置において異なる時刻に発生するため、該クライアント装置のクローンにおいて複製するのが困難であり、または不可能である。マイクロ秒単位で同一のイベントを現実の世界のクライアント装置で得ることは、ほとんど不可能である。クライアント装置の操作特性は、所定の操作イベントが発生する時刻、例えば、該クライアント装置またはサーバにおいて所定のメッセージを送受信する時刻、ファームウェア更新、ネットワークへのメッセージ送信と、該ネットワークにおける応答の受信との遅延時間、該クライアント装置において、ｎ番目のネットワークパケットが受信された時刻、クライアント装置が、選定された期間に、特定の操作イベントを実行した回数、サーバからクライアント装置へ送信されたトークン、受信したＥＣＭパケットのカウント、クライアント装置が、所定の時間に合わせられたチャンネル、所定の時間におけるチャンネル変更の回数、一定の時刻に、クライアント装置内のチップ上に含まれるレジスタ値等の、該クライアント装置の操作に基づいて生成される特定のクライアント装置に固有の値である。正確なデータ値は重要ではなく、重要なことは、２つの同一の装置の操作に基づくデータ値が異なっている可能性が大きいということであるため、秘密データ値（または、クライアントの操作に固有のデータ値）を生成するのに用いることができる限りない数の操作データ値があるということが分かる。同じ認証を使用している２つ以上のクライアント装置がネットワークを通じて通信している場合、そのような操作特性は、１つのクライアント装置と他のクライアント装置とでは同一ではなく、また、ユーザによって特定のクライアント装置の操作によって独自に生成される。そのため、このような特性に基づくそのような操作特性および秘密識別子は、クローンクライアント装置によって容易にハッキングまたは複製することができない。クローンクライアント装置のオペレータが、真のまたは許可されたクライアント装置のそのような特性を得る可能性は低く、通常、どの具体的な操作特性が該秘密識別子を生成するのに用いられているかということには気付かず、また、一実施形態においては、該秘密データ値は、クライアントソフトウェアの異なるバージョン間で変わる。
【００３１】
上記サーバは、特定の認証を有する装置からのメッセージで受信した秘密識別子を抽出し、この識別子と、明らかに同じ装置からの前のメッセージで受信した識別子を比較する。一致しない場合は、１つ以上のクローンが使用されている可能性があり、該サーバは、さらなる措置のために、起こり得るクローン検出に関する適切な通知をシステムオペレータに与えることができる。該サーバは、メッセージを送信している同じ認証を有するいくつかのクライアント装置のうちのどの装置がクローン装置であるかを判断することができないため、該オペレータへのクローン検出通知と共に、要求されたサービスが、これらの装置へ供給される。
【００３２】
一実施形態において、秘密識別子は、該クライアントとサーバとの間で交換される通常のメッセージで送信される。例えば、該クライアントがシステムにログオンして、ログオンメッセージが定義されると仮定する。標準的なログオンメッセージは、ユーザ名とパスワードを含む。一実施形態において、該ログオンメッセージは、これらのユーザ名およびパスワードに加えて、秘密識別子１８を含む。該クライアント装置がシステムにログオンしようとする場合、該クライアント装置は、ユーザ名およびパスワード等の標準的なログオン情報を生成し、該秘密識別子が該ログオンメッセージ（または、いずれかのメッセージまたは全てのメッセージ）に埋め込まれて、該秘密識別子を該標準的なログオンメッセージの一部として含むログオンコマンドが形成される。該ログオンメッセージは、ユーザ名、パスワード、および該秘密識別子を含むデータからなる追加的なバイトを含む。一実施形態において、該秘密識別子に含まれる、または、該秘密識別子を生成するのに用いられるデータアイテムまたは値は、該クライアント内での操作イベントに基づいて異なる時間に変化し、または、時刻、または、特定のイベント後の一定期間に基づいて変化し、その結果、該秘密識別子は、本質的に、特定の時間に秘密データ値を変えることにより、または、新たな秘密データアイテムを前の秘密データアイテムに付加することによって更新し、特定のクライアントのための秘密データアイテムの数を増やすことができる。
【００３３】
クライアント装置とサーバとの間のどのような標準的メッセージ交換も、最初のログオンメッセージ等のクローンを検出するのに用いることができる。秘密識別子は、通常のメッセージと、および／またはクライアントがシステムにログインしたとき等のイベントと組合わせることができる。クライアントユーザ名およびパスワード等のログオン時に典型的に含まれている情報に加えて、ユーザがネットワークにログインした最後の時間または現在のログオンと前のログオンの時間差等の、特定のクライアント装置の動作に固有のログオンメッセージに該秘密識別子を付加することができる。秘密データは、通信システム内の全てのメッセージに、または、ログオンメッセージまたは他の種類のメッセージ等の選択されたメッセージのみに適用することができる。
【００３４】
図２Ａは、現在用いられている従来のログオンメッセージプロトコルを示す。このメッセージは、該システム上でサポートされるメッセージ群のメッセージ種別を定義し、およびシステム内の各メッセージに対して典型的に固有である、メッセージ識別フィールド（ＩＤ）２１を含む。また、該メッセージは、該システムにおけるあらゆる種別のうちの各メッセージのための固有番号を含み、および該メッセージを処理する前に、シーケンス番号が新しいことを確認することにより、該システムがメッセージのリプレーアタックを排除できるようにする増分カウントである任意のシーケンス番号フィールド２２も含む。該メッセージが最初のログオンメッセージである場合には、該メッセージは、該サービスのために登録された、または、該サービスプロバイダに伴う加入者アカウントに関連する、該システム上のユーザまたはクライアント装置のためのユーザ名を含むユーザ名フィールド２４と、アカウントまたはサービスに関連する該ユーザのためのパスワードを含むパスワードフィールド２５も有する。該パスワードは、該ユーザまたは加入者が、該システムまたはサービスプロバイダに最初に申し込みまたは登録したときに与えられ、また、該サーバにより、後のユーザによるサービスの要求において確認される。該パスワードがパスワード保護システムに正しく供給された後にのみ、サービスにアクセスすることができ、または、ユーザが該サービスを利用してアイテムを購入することができる。また、秘密データを該パスワードの一部として用いて、各クライアントのために、該パスワードまたはデータをソルティングするのに用いられる秘密データを認識しているサーバ側で、または、暗号鍵またはソルティングキー（ｓａｌｔｉｎｇ  ｋｅｙ）を該クライアントにダウンロードする該サーバ側でソルティングすることができる。このようなパスワードは、ハッカーによって手に入れられて、支払いなしでサービスを得ようとする際に、クローン装置と共に用いられる場合がある。
【００３５】
図２Ｂは、正規のログオンメッセージ構造における秘密データフィールド１８内に秘密識別子を含む改良された初期ログオンメッセージの実施形態を示す。該ＩＤフィールド、シーケンス番号フィールド２２、ユーザ名２４およびパスワード２５は、図２Ａの対応するフィールドと同じであるが、該メッセージは、フィールド２２、２４間のデータフィールド１８に秘密識別子を備えるように変更されている。他の実施形態においては、秘密データフィールド１８を、該メッセージの他の位置に設けてもよく、また、ブロードキャストキー要求メッセージ、電子商取引メッセージ、チャンネル変更メッセージ等の異なる種類のメッセージ内に設けてもよい。該秘密識別子は、装置とサーバ間の特定の一種類のメッセージのみに設けてもよく、または、該装置によって送信される各メッセージに、あるいは、様々なメッセージに断続的に設けてもよい。秘密識別子の断続的な送信は、このような識別子を、潜在的なハッカーによって突止められることを難しくすることができる。暗号化メッセージングは、クライアントとサーバ間の非暗号化メッセージングよりも常に安全であるため、一実施形態において、秘密データは、インターネットプロトコルセキュリティ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ｓｅｃｕｒｉｔｙ；ＩＰＳｅｃ）またはセキュアソケットレイヤ（ｓｅｃｕｒｅ  ｓｏｃｋｅｔ  ｌａｙｅｒ；ＳＳＬ）あるいはクライアントとサーバとの間の他の形態の暗号化等の暗号化接続を通じて送信される。
【００３６】
図１に示すように、メッセージＭ１、Ｍ２およびＭ３の各々は、フィールド１８内に秘密識別子を有するが、メッセージＭ２およびＭ３内の該秘密識別子は、通常、メッセージＭ１の秘密識別子と一致しない。これは、一実施形態において、該秘密識別子は、該クライアント装置またはサーバにおける特定のメッセージの送受信の時間、特定の種類のデータメッセージまたはネットワークパッケージを受信した回数等の、該クライアント装置の操作特性または操作イベントによって生成された秘密データ値に基づいているためである。該秘密識別子は、該秘密データフィールドの異なる領域に含まれる複数の操作的に生成された秘密データ値を備えることができ、または、そのような秘密データ値の変換バージョンを備えてもよい。このような値は、クローンクライアント装置の動作が、通常、クライアント装置または他のクローンクライアント装置の動作に一致しないため、クローン装置における値と、実在するクライアント装置における秘密データ値とが一致することは非常に稀である。例えば、該秘密データフィールドの第１のセグメントは、クライアント装置の最初の電源投入時間をミリ秒単位で含むことができる。ある時間またはあるイベントの回数の後に、該秘密データフィールドの第２のセグメントは、該装置に対する後の電源投入時間を、最初の電源投入時間に加えることができる（例えば、Ｔ１、Ｔ２）。該サーバが、該クライアント装置またはクローンクライアント装置によって該第２の電源投入時間が追加されたか否かを知らなくても、元の電源投入時間Ｔ１が、該両装置に対して同じになることは非常に稀であり、また、クライアントとサーバの間で交換された該秘密データに付加された該第２のおよび後の秘密データアイテムは、クライアント間で固有であるように設計され、また、追加的な秘密データアイテムは、該クライアントの継続的操作の間に生成されるため、該秘密データが同一になる可能性は非常に低い。
【００３７】
該サーバは、許可されたおよび／またはクローンのクライアント装置からメッセージを受信し、許可されたユーザのクライアント認証に関連する最新の秘密識別子をサーバ秘密データストレージモジュール２３に保存する。明らかに同じクライアント認証に関連する装置からのものである後のメッセージが受信されると、該サーバは、該秘密識別子と、当該クライアントのための前に格納された秘密識別子とを比較する。１つ以上の秘密識別子において、マッチングが見つからなかった場合には、該サーバと通信している装置のうちの１つが、クローン装置である可能性があり、該サーバは、クローンが検出されたことをオペレータに報告する。その結果、該オペレータは、どの装置が有効か、または許可されたクライアント装置であるか、およびどの装置がクローンであるかを判断するための処理手順を開始することができる。
【００３８】
図４は、図１、図２Ｂおよび図３のシステムを用いる、ネットワーク上のクローンクライアント装置の存在を検出する方法の一実施形態を説明するフロー図である。ステップ４０において、クライアント装置は、秘密データフィールド１８に秘密識別子を含むメッセージをサーバへ送信する。該メッセージは、例えば、図２Ｂに示すフォーマットからなり、あるいは、該メッセージ内の選択されたデータフィールドに挿入された、１つ以上の秘密データ値を備える秘密識別子、または、１つ以上の秘密データ値の変換バージョンである識別子を有する他のどのような種類の標準的ネットワーク通信メッセージであってもよい。該サーバは、該メッセージを受信し、該メッセージから秘密識別子を抽出し（４２）、その後、該秘密識別子と、該メッセージがそこに由来する登録済みのクライアント装置に関連するクライアント認証に対応する格納された秘密識別子とを比較する（ステップ４４）。該サーバは、この比較に基づいて、一致したか否かを判断し（ステップ４５）、すなわち、格納されている秘密識別子のいずれかの部分と、該メッセージ内の該秘密識別子との間に一致があるか否かを判断する。マッチングが見つかった場合、該サーバは、適切なときに、メッセージ応答を該クライアント装置に送信し（ステップ４８）、この新たな秘密識別子を格納し、所望のサービスまたは取引を行う。マッチングが見つからなかった場合、すなわち、該秘密識別子のどの部分にもマッチングがない場合には、該サーバは、潜在的なクローンが検出されたことを示すレポートをオペレータに対して生成し（ステップ４６）、また、任意のフラグをメモリに設定してもよい。該秘密識別子が、秘密データ値を変換することによって生成されたマルチディジタルコードである場合、マッチングは、受信した秘密識別子が、格納されている秘密識別子と同一であることを意味する。該秘密識別子が、進行中のイベントに基づく１つ以上の秘密データ値である場合、受信した秘密識別子は、前に格納された秘密識別子の一部のみに一致する可能性があるが、該秘密識別子は、該サーバへの最後のメッセージ後に付加された新たな秘密データ値を含む。該受信した秘密識別子の一部が、該格納されている秘密識別子に一致する場合にも、マッチングが見つかるが、該秘密識別子のどの部分においてもマッチングがない場合には、マッチングは見つからない。
【００３９】
該サーバは、装置がクローンクライアント装置であるか否かがまだ判断されていないため、すなわち、該サーバは、該サーバと通信している２つのクライアント装置のうちのどちらがクローンであるかを判断するための十分な情報を有していないため、潜在的なクローンが検出された場合に、該メッセージを送信する該装置と通信を続ける可能性がある。最後のステップにおいて、サービスは、クローンであると分かった装置に対して、または、全ての装置に対して中止して、許可された加入者をサービスプロバイダと接続したままにして、継続すべきサービスの準備をすることができる。
【００４０】
一実施形態において、該秘密識別子がそれに基づいている秘密データ値は、クライアント装置における特定の操作イベントによって生成することができる。該操作イベントによって生成される可能性のある秘密データ値のいくつかの実施例は、以下の項目である。
ａ）クライアントが、キーの要求、または、サーバとのセッションの開始、あるいは、電子商取引の実行等の特定のイベントを実行した回数。
ｂ）加入者によって購入されたこれまでのアイテムの数。
ｃ）クライアントによって受信された一時的なキー更新の数。
ｄ）最新のファームウェア更新の時間。
ｅ）該クライアントに対する最新のキー要求の時間。
ｆ）特定の種類の最新メッセージの時間、または、特定のメッセージを受信した回数のカウント、あるいは、現在のメッセージと、該サーバから受信している先行するメッセージとの間の遅延。
ｇ）特定の種類のメッセージがクライアントによって受信された時間。
ｈ）特定の種類のメッセージを該クライアントから受信した時間。
ｉ）特定の種類のメッセージまたはネットワークパケットが、ビデオＥＣＭを含む実施例と共に受信された回数のカウント、特定のＴＣＰ  ＩＰポート数に対するパケットのカウント等。
ｊ）ネットワークに送信される要求メッセージと、サーバから戻されて受信される応答との間の時間遅延。
ｋ）マルチキャスト結合が実行された最後の時間、または、最後のマルチキャスト結合の値。
ｌ）動的ホスト構成プロトコル（ＤＨＣＰ）がシステムに用いられている場合に、ＤＨＣＰサーバによって与えられるＩＰアドレス。
ｍ）ＤＨＣＰがシステムに用いられている場合のＤＨＣＰリースに対して残っている時間。
ｎ）ケーブルモデムのための距離パラメータ、または、新たなクライアントを稼働させた３日後のネットワークの信号強度等の他のネットワーク装置から得られた値。
ｏ）特定の期間後、例えば、クライアント装置がサーバから秘密データ値を受信した後に生成される、何分間、該クライアント装置が該サーバに接続すべきかに関して該クライアント装置に対して示されるデータ変更または新たなメッセージ。
ｐ）５７のチャンネルが変化する場合のＴＶチャンネル番号等の多数のイベントが行われた後のクライアントデータパラメータの値。
ｑ）新たな秘密データ値を生成する関数で処理された、前に使用された秘密データ値から得られた新たな秘密データ値。
ｒ）クライアント装置上のチップ内のデータから生成された秘密データ値、または、クライアント装置内のチップまたはハードウェアプラグインボードあるいはカードまたは固定メモリからの処理済または基準化されたデータから生成された秘密データ値。
ｓ）クライアント装置が、サーバに対する後のメッセージに、１つ以上の秘密データ値またはアイテムを含む秘密識別子の一部として保持し、かつ用いる、該サーバから受信したトークンまたはキー等の秘密データ値。該サーバから受信した秘密データは、該クライアント装置によって変換することができ、変換されたバージョンは、後のメッセージにおける秘密識別子として該サーバに戻すことができる。このことは、該サーバが、該クライアントとサーバとの間の通常のメッセージにおいて、通常のシステムメッセージの一部として、該クライアントにトークンまたはキーを渡すことを可能にする。クライアントの秘密識別子のために用いられる該サーバが供給したトークンは、別々のメッセージに設定することができるが、好適なメッセージは、該サーバからの秘密データ値を通常のメッセージで渡す。
ｔ）１２０００番目のネットワークパケットを受信したときの時間。
【００４１】
上に列挙した値のうちのいくつかは、クライアント装置とサーバとの間のメッセージングプロトコルに含まれている秘密識別子の更新または変更をトリガするイベントトリガまたはイベントカウンタとして追加的または代替的に用いることができる。例えば、操作的イベントは、例えば、クライアント装置におけるチャンネル変更の回数等の後の操作的イベントをカウントし、ユーザが所定回数、チャンネルを変えたときの秘密データ値を記録するカウンタをトリガすることができる。該秘密データ値は、所定のカウントに達したときの時刻、または、所定のカウントに達するまでに要した時間とすることができる。他の種類の操作的イベントも、同じ方法でカウントして、クライアント装置によって送信または受信された特定の種類のメッセージの数、購入されたアイテムの数等のイベントトリガを生成してもよく、あるいは、イベント自体の数を直接、秘密データ値として用いてもよい。他の可能性があるイベントトリガは、ファームウェア更新等の操作イベントが発生したときの時間である。このようなイベントトリガは、異なる操作イベントに基づいて、秘密データ値の前のセットを、秘密データ値の新たなセットに変えるのに用いることができ、その結果、新たな秘密データ値が秘密識別子を生成するのに用いられることとなる。このことは、ハッカーが、どの特定の操作イベントが該秘密識別子を生成するのに用いられるのかを判断することを非常に困難にする。
【００４２】
秘密データ１８は、表にすることができる。可能性のある秘密データテーブルの一実施形態を以下の表１に示す。以下に示す表において、該秘密データテーブルは、２つの秘密データアイテムまたは値を用いて作られている。一方の秘密データアイテムは、最新のブロードキャストキー要求（ｂｒｏａｄｃａｓｔ  ｋｅｙ  ｒｅｑｕｅｓｔ；ＢＫＥＹ）メッセージが形成された時刻（ｔｉｍｅ  ｏｆ  ｄａｙ；ＴＯＤ）であり、他方の秘密データアイテムは、セットトップボックス（ＳＴＢ）または他のクライアント装置等のクライアント装置によって得られる一時キー更新の回数である。操作特性に基づく他の秘密データアイテムも、代替的実施形態において用いることができ、３つ以上の秘密データアイテムを別のセキュリティのために用いてもよい。最初に、表１におけるこの値は共に０であり、最初の秘密識別子は、０、０となる。以下の表１は、クライアントソフトウェアリリースの１つのバージョンにおいて、一緒にすることのできる２つのデータ値からなる単なる実施例である。他の秘密データ値を、秘密識別子を生成するのに用いてもよいこと、および異なるデータ値を、異なるソフトウェアバージョン間で用いてもよいことが想定されている。例えば、この実施例においては、一時キー更新の回数が用いられているが、該ソフトウェアの別のバージョンにおいては、最後の一時キー更新のＴＯＤを用いることができ、または、第１の一時キー更新と第２の一時キー更新の間の秒数を用いることができる。
【表１】
2009524165.tif 000003
【００４３】
図５Ａおよび図５Ｂは、実施形態の一つの実施例における、上記の表１の場合のように秘密データを用いてクローン装置を検出する方法ステップのフロー図を示す。以下の表２は、図５Ａおよび図５Ｂにおける様々なステップにおいて、サーバおよびクライアント装置またはクローンクライアント装置の両方に格納される秘密データ値の一つの可能性のある実施例を示し、図６Ａ〜図６Ｆは、図５Ａおよび図５Ｂの実施例における様々な段階で生成されるメッセージを示す。表２および図５において、「実在するクライアント装置」という用語は、該サーバに登録されたクライアント装置の認証に関連する元のまたは許可されたクライアント装置を意味するのに用いられ、一方、「クローンクライアント装置」という用語は、同じ認証を有する、該実在するクライアント装置の全くのコピーであるクライアント装置を意味する。図５Ａのステップ１００において、実在するまたは許可されたクライアント装置がインストールされ、サーバ１０によって供給されるサービスに加入者を関連付けるように登録され、該サーバは、該加入者のクライアント装置の認証をデータベース２０に保存する。クライアント装置１４の最初の電源投入時に（ステップ１０１）、秘密識別子は、該サーバのデータベースおよびクライアント装置のデータベースの両方において、既知の初期値に初期化される（ステップ１０２）。この場合の秘密識別子は、以下の表２に示すような秘密データ値からなるセットを備える。この実施例において、該秘密識別子に用いられる秘密データ値のうちの少なくとも１つは、該クライアント装置によってブロードキャストキー（ＢＫＥＹ）要求が行われる時刻（ＴＯＤ）であるが、他の実施形態においては、他の何らかの秘密データ値をＢＫＥＹ要求ＴＯＤの代わりに、または、該ＴＯＤに加えて用いてもよい。
【００４４】
ＢＫＥＹ要求が受信される前にサーバデータベース２０に格納されている初期の秘密データ値は、認知された（Ａｃｋｅｄ）ＴＯＤ＝０、認知されていない（ＮｏｔＡｃｋｅｄ）ＴＯＤ＝０であり、すなわち、該サーバにおける、このクライアントのための秘密データまたは識別子は、０、０であり、一方、該クライアント装置が最初に電源投入したときに該クライアント装置に格納されている初期秘密データ値は、ＴＯＤ＝０である。これは、該クライアント装置がインストールされた後の最初の電源供給であり、該クライアント装置はまだブロードキャストキーを要求していないため、ブロードキャストキー要求のためのＴＯＤイベントトリガはゼロである。任意のまたは全ての秘密データは、クライアント装置の最初の電源投入時に、および／またはクライアント装置からの最初のメッセージ受信時の前に、該サーバにおいて、ゼロ等の初期状態に設定することができる。代替的実施形態においては、１つ以上のゼロではない秘密データ値を、加入者のクライアント装置が該サーバに登録されたときに、登録プロセス中に生成することができ、また、初期秘密識別子を生成するのに用いることができ、または、最初にゼロに設定される１つ以上の秘密データ値に加えて、秘密識別子に含ませることができる。
【００４５】
表２において、該サーバに格納されている秘密データアイテムの認知されていない（ＮｏｔＡｃｋｅｄ）値は、該クライアント装置からのメッセージにおいて、まだ認知されていない、該サーバによって（実在するまたはクローンの）クライアント装置に対して発行された最後の値である。ＮｏｔＡｃｋｅｄ値は、該クライアントが、該ＮｏｔＡｃｋｅｄ値、または、該クライアント装置によってＮｏｔＡｃｋｅｄ値から得られたある値を戻したときに該サーバに格納された値の認知された（Ａｃｋｅｄ）列に移動される。該クライアントは、一実施形態において、表２および図５および図６に示すように、次のメッセージ内のＮｏｔＡｃｋｅｄ値を該サーバに戻してもよい。代替的実施形態（図示せず）において、該クライアント装置は、新たなＮｏｔＡｃｋｅｄ値の受信時に、特定の肯定応答メッセージを該サーバに送信し、ＮｏｔＡｃｋｅｄ値が該クライアント装置のデータベースにうまく格納されていることを確認する。この時点では、該ＮｏｔＡｃｋｅｄ値は、該サーバにおいて、該Ａｃｋｅｄ値と取って代わっている。しかし、この代替的実施形態は、ハッカーが秘密データ値を得やすい。指定された種類の次のメッセージが該サーバに送信されたときに、ＮｏｔＡｃｋｅｄ値の肯定応答のみが行われる、図５Ａおよび図５Ｂに示す方法は、より秘密性が高い。
【００４６】
初期化の後、クライアント装置１４は、ステップ１０４において、ブロードキャストキーのための要求（ＢＫＥＹ要求）を該サーバに送信する。一実施形態において、この要求は、秘密識別子または秘密セキュリティデータ１８を含む。この場合のＢＫＥＹメッセージにおける秘密識別子は、以下のようになる。
ＴＯＤ  最後のＢＫＥＹ要求の時刻＝０
一時キー更新＝０
換言すれば、該ＢＫＥＹ要求における秘密識別子は、０、０であり、このメッセージＭ１のフォーマットを図６Ａに示す。
【００４７】
該サーバは、このＢＫＥＹ要求を受信し（ステップ１０５）、該要求から該秘密識別子内の秘密データ値を抽出し、これらの値が、該サーバに格納されている対応する値に反しているかをチェックする。この比較は、一連のメッセージのみにおけるＢＫＥＹ  ＴＯＤ秘密データ値の場合に以下に説明するが、同様の比較は、一時キー更新に基づく値等の、秘密識別子における他の秘密データ値に対しても実行される。これは、これらのクライアント認証を用いた任意のクライアント装置からの最初のメッセージであるため、ＢＫＥＹ  ＴＯＤデータは一致し（ステップ１０８）、該サーバは、該サーバによって決められたＴＯＤ値Ｔ１、すなわち、該サーバにおける、このクライアントからの最初のＢＫＥＹ要求の受信の時刻と共に、ＢＫＥＹを該クライアント装置に戻す(ステップ１１０)。ＢＫＥＹ返信メッセージＲ１のフォーマットの一実施形態が図６Ｂに示されているが、この場合、新たなＴＯＤ値Ｔ１が、メッセージＩＤおよびＳＮの後ろのメッセージフィールドに与えられる。代替的実施形態においては、該メッセージの場合のＴＯＤ値は、該サーバから該メッセージ内で受信される代わりに、該クライアント装置によって局所的に読出してもよい。他の代替的実施形態においては、該サーバから受信したＴＯＤ値は、該サーバから送信されたどのような種類のデータ値またはトークンと置き換えてもよい。
【００４８】
以下の表２に記載されている実施例においては、ＴＯＤ値Ｔ１は８４３７であり、この値の受信の肯定応答はまだ、該クライアント装置から受信されていないため、ステップ１１４において、ＮｏｔＡｃｋｅｄ  ＴＯＤとして該サーバのデータベースに付加される。上述したように、代替的実施形態において、該クライアント装置は、ＴＯＤ値Ｔ１の受信の肯定応答を送信するようにプログラムすることができるが、この実施形態においては、そのような肯定応答は、次のＢＫＥＹメッセージまで送信されず、そのため、ＴＯＤ値Ｔ１は、後のＢＫＥＹメッセージにおいて肯定応答されるまで、および肯定応答されない限り、ＮｏｔＡｃｋｅｄ値のままであり、これは、より秘密性の高いオプションである。この時点において、該サーバに保存されているクライアント識別子における該ＴＯＤ値は、この実施例においては、Ａｃｋｅｄ  ＴＯＤ＝０、ＮｏｔＡｃｋｅｄ  ＴＯＤ＝Ｔ１または８４３７である。
【表２−１】
2009524165.tif 000004
【表２−２】
2009524165.tif 000005
【００４９】
ステップ１１５において、該実在するクライアント装置は、該サーバからの返信で、新たなＴＯＤ値Ｔ１（この実施例においては、８４３７）と共に、ブロードキャストキーを受取る。次に、該クライアント装置は、該新たなＴＯＤ値を格納し（ステップ１１６）、該ブロードキャストキーを用いて、該サーバからのブロードキャストデータ等の暗号化されたデータを解読する（ステップ１１８）。図示した実施例において、クローンクライアント装置は、最初のブロードキャストキーが、実在するクライアント装置によって受信されたしばらく後に、および該実在するクライアント装置が、後のブロードキャストキー要求をサーバへ送信する前に、電源投入される（１２０）。このイベントの順序は、全てのケースにおいて発生するわけではなく、実在するクライアント装置およびクローンクライアント装置がサーバと通信する順序の単に１つの可能性のある実施例である。該クローンクライアント装置は、初期秘密データ値０、０を備える秘密識別子を含むブロードキャストキー要求をサーバへ送信し（ステップ１２２）、このメッセージＭ２の可能性のあるフォーマットを図６Ｃに示す。この実施形態において、いずれかのクローンクライアント装置からの該最初のメッセージは、許可されたまたは実在するクライアント装置からの最初のメッセージと同じ秘密識別子、すなわち、０、０を含む。このメッセージが、該実在するクライアント装置が該サーバからの新たなＴＯＤ値を認知する前に、該サーバによって受信された場合、該サーバは、クローンクライアント装置が存在することを知る方法をまだ有していない。該メッセージが、新たなＴＯＤ値が最初にＢＫＥＹを要求した同じクライアント装置によって認知された後に受信された場合は、該サーバは、同一の認証を用いた２つのクライアント装置がシステム上に存在することを知って、図４に示すようなクローン検出レポートを生成する。
【００５０】
図５Ａおよび図５Ｂの実施例において、クローンクライアント装置は、実在するクライアント装置が、該サーバからの新たなＴＯＤ値の受信を認知する前に、最初のＢＫＥＹ要求を該サーバへ送信する。該ＢＫＥＹ要求の受信時に、該サーバは、秘密データ値０、０を抽出して、それらの値と、同じ認証を有する該実在するクライアント装置に格納されている秘密データ値とを比較する（ステップ１２４）。この時点において、秘密データの一致が判明し（ステップ１２５）、すなわち、ＮｏｔＡｃｋｅｄ  ＴＯＤ  Ｔ１（例えば、８４３７）の受信の明確な肯定応答は、まだ、該クライアント装置から受信されていないため、受信した秘密データは正しい。この特定の実施例において、該サーバは、ＴＯＤを含むメッセージが、ネットワーク障害または該クライアント装置の電源オフ等の何らかの理由のために、該クライアント装置によって受信されなかったことが分からず、またそのため、現時点ではクローン装置が存在するとは考えない。該サーバのデータベースは、該ＴＯＤの最後の既知の良好な値（この場合は０）と、最後の認知されていないＴＯＤ値Ｔ１とを含む。一実施形態において、この認知されている値は一致であるため、該サーバは、図６Ｄに示すフォーマットを有することができる返信メッセージで、新たなＴＯＤ値Ｔ２と共に、ブロードキャストキーをクローンクライアント装置へ送信する（ステップ１２６）。上記の表２に記載されている具体的な実施例において、値Ｔ２は、９９０２である。同時に、該サーバにおけるＮｏｔＡｃｋｅｄ  ＴＯＤは、ステップ３０において、図５Ｂに示すように、Ｔ２（または、この実施例においては、９９０２）に変えられ、前に格納されているＮｏｔＡｃｋｅｄ  ＴＯＤ  Ｔ１（または、表２の実施例においては、８４３７）が削除される。
【００５１】
該クローンクライアントは、該サーバからのメッセージでＢＫＥＹメッセージおよび新たなＴＯＤ値Ｔ２を受信し、この新たなＴＯＤ値Ｔ２を保存し（ステップ１３２）、該サーバから受信したブロードキャストデータ等のデータを解読し始める（ステップ１３３）。図５Ｂに示す実施例において、ステップ１３２の後の該サーバとの次の通信は、ブロードキャストキーを要求する（ＢＫＥＹ  Ｒｅｑｕｅｓｔ）該実在するクライアント装置から送信されるメッセージであるため、該実在するクライアント装置は、そのＢＫＥＹを更新する必要がある（ステップ１３４）。このメッセージは、図６Ｅに示すフォーマットを有することができ、また、該実在するクライアント装置に現在格納されている秘密データ値、特に、このクライアント装置からの最後のＢＫＥＹ要求のＴＯＤ（Ｔ１または８４３７）および一時キー更新番号（この実施例においては、０）を備える秘密識別子を含む。ステップ１３５において、該サーバは、該実在するクライアント装置から新たなＢＫＥＹメッセージを受信し、現在格納されているＡｃｋｅｄ  ＴＯＤ値およびＮｏｔＡｃｋｅｄ  ＴＯＤ値（具体的には、０およびＴ２または９９０２）と、該クライアント装置からの秘密識別子で受信したＴＯＤ値Ｔ１または８４３７とを比較する。該クライアント装置から受信した値Ｔ１は、該サーバに格納されているＡｃｋｅｄ値０、または、該サーバに格納されているＮｏｔＡｃｋｅｄ値Ｔ２と等しくないため（ステップ１３６）、該サーバは、さらなる動作のために、クローン検出をシステムオペレータに報告する（ステップ１３８）。他のサーバ側処理を、クローンを検出した時点で加えることができる。該サーバは、該メッセージを送信する２つのクライアント装置のうちのどちらが実在する、または許可された装置であるかを判断できないため、サービスを拒否せず、それ故に、図６Ｆに示すフォーマットを有することができる返信メッセージで、ＢＫＥＹおよび新たなＴＯＤ値Ｔ３（上記の表２の実施例においては、１１３０５）を該実在するクライアント装置へ送信する（ステップ１４０）。そして、該サーバは、新たなＴＯＤ値Ｔ３を、ＮｏｔＡｃｋｅｄ値としてサーバデータベースに格納し（ステップ１４２）、該実在するクライアント装置も新たなＴＯＤ  Ｔ３を格納する。
【００５２】
図５Ａおよび図５Ｂの方法は、該実在するクライアント装置が、該サーバからその最初のＢＫＥＹを受信した後であって、該実在するクライアント装置が、該サーバからの更新されたＢＫＥＹを要求する前に、クローンクライアント装置が、メッセージを該サーバへ送信する一つの可能性のある方法およびイベントの順序を示す。このようなイベントは、真のおよびクローンのクライアント装置の使用により、異なる順序で発生する可能性があり、また、同じ認証を有する３つ以上のクライアント装置が、同じ期間中に、メッセージをサーバへ送信することも可能である。クローンクライアント装置は、いつでも、および実在するクライアント装置から送信される同様のメッセージに対してどのような順序でも、該サーバにメッセージを送信することができる。該実在するクライアント装置または１つ以上のクローンクライアント装置のいずれかからのメッセージにおける秘密データ値は、該サーバに現在格納されている１つ以上の値に一致しないため、該順序に関係なく、該サーバは、クローンクライアント装置の存在を判断することができる。例えば、図５Ａおよび表２のステップ１２２を参照して、何らかのメッセージがクローンクライアント装置によって送信される前に、該実在するクライアント装置が、この段階において、後のＢＫＥＹ要求を該サーバに送信した場合、該ＢＫＥＹ要求における秘密データ値は、表２の具体的な実施例においては、Ｔ１、０または８４３７、０である。このメッセージを受信する該サーバは、該クライアント装置からのＴＯＤ値と、そのデータベースに保存されているｎｏｔＡｃｋｅｄ  ＴＯＤとの一致に気付いて、Ａｃｋｅｄ  ＴＯＤを０からＴ１に変更する。そして、新たなｎｏｔＡｃｋｅｄ  ＴＯＤ  Ｔ２は、返信で該クライアント装置へ送信される。この後、該サーバと通信するクローンクライアント装置は、それが該装置から該サーバへの最初の通信であるため、ＴＯＤ＝０を送信する。このＴＯＤは、該サーバに格納されているＡｃｋｅｄ  ＴＯＤ（Ｔ１）またはＮｏｔＡｃｋｅｄ  ＴＯＤ（Ｔ２）のいずれにも一致せず、クローン検出レポートが該サーバによって生成される。一致に対する同様の失敗は、サーバ、実在するクライアント装置およびクローンクライアント装置の間の通信の順序に関係なく、同じ認証を用いる２つ以上のクライアント装置が該サーバと通信する場合に、どのようなメッセージ順序においても、ある時点で発生する。
【００５３】
図５および図６の実施形態および上記の表２に概説されているこの実施形態の特定の実施例において、各メッセージにおける秘密識別子は、２つ以上の秘密データ値を備える。しかし、該秘密識別子は、例えば、ハッシュ関数等を用いて該値を変換することにより、そのような秘密データ値に基づいて生成されたコードを備えることができる。該秘密識別子を含むメッセージは、上記実施形態においては、ブロードキャストキー要求であり、該クライアント装置は、該サーバからのブロードキャストを受信する。この場合、該クライアント装置は、テレビジョンセットトップボックス、パーソナルコンピュータ、または、テレビ放送等のブロードキャストを再生することが可能な他の何らかのクライアント装置等のメディアプレーヤである。該サーバは、ブロードキャストテレビチャンネル解読キーをクライアントに配布するサーバとすることができる。しかし、他の種類のクライアント装置およびサービスプロバイダは、異なる種類のメッセージで同じ秘密データ技術を用いることができる。上述したように、上記の実施形態の秘密データ技術は、どのような種類のネットワークサービスプロバイダにも、およびパーソナルコンピュータ、携帯電話、携帯端末（ＰＤＡ）、ビデオ機器（ＴＩＶＯ、ＤＶＤ、ＣＤ等）および他のいずれかの種類のクライアント装置等の、サービスプロバイダのサーバにつながっているどのような種類のクライアント装置にも、およびオンラインバンキング、電子商取引、データロギング、メッセージ通信システム等のどのような種類のサービスに対しても適用することができる。上記実施形態において、ブロードキャストテレビチャンネル解読キー（ＢＫＥＹ）は、ＨＢＯ（Ｈｏｍｅ  Ｂｏｘ  Ｏｆｆｉｃｅ）またはＭｏｖｉｅ  Ｃｈａｎｎｅｌ等の有料テレビチャンネルに典型的に用いられているような暗号化されたブロードキャストＴＶチャンネルを解読する必要があるキーである。有料テレビチャンネルは、ケーブルＴＶまたはインターネットプロトコル（ＩＰ）ＴＶの加入者が、購入するために選ぶ可能性のあるオプションチャンネルである。本明細書に記載した技術は、様々な種類のネットワークサービスにアクセスできるようにするために、キーがクライアント装置に配布される、または、該キーを、解読キー要求メッセージに加えて、または、該要求メッセージの代わりに、サーバとクライアント装置の間の異なる種類のメッセージに用いることのできるどのような暗号化技術にも適用可能である。
【００５４】
実在するクライアント装置が、メッセージ応答が受信される前に、ネットワーク障害により、または、クライアント装置の電源オフにより、サーバからメッセージを受信しない可能性があるため、図５Ａおよび図５Ｂの実施形態は、誤ったクローン検出のアラートが生成される回数を低減するためのサーバ側処理を含んでもよく、それにより、クローン検出アラートは、クライアントが、別のクライアントと同一のクライアント認証によって検出されていることの指摘となる。一つの代替的実施形態においては、上述したように、秘密識別子に用いられる秘密データアイテムが更新される度に、詳しいクライアント肯定応答が該クライアント装置から送信され、該サーバは、サーバが供給した秘密データアイテムが、該クライアントによって良好に受信されて格納されたという、該クライアントからの確認に基づいて、該サーバデータベース内の予想秘密データアイテムを調節する。該サーバからの秘密データトークンが、該クライアントによって格納されていること、または、該クライアントの秘密データアイテムが、該サーバによって確認されていることを示す、該クライアントとサーバとの間の直接確認メッセージの使用は、クローンの検出を改善することができるが、該サーバによって処理され、かつハッカーによって妨害される可能性のある追加的なメッセージをもたらす。
【００５５】
一実施形態において、該サーバは、後のメッセージに用いるために、固有の秘密データアイテムまたはトークンをクライアント装置へ送信する。該サーバが該クライアント装置へ送信することのできるデータアイテムまたは値の実施例は、該クライアントとサーバが通信するときに、該サーバによって定期的に変えられる仮データ値、クライアントからサーバへ送信される仮のキー等を含む。一実施形態において、該サーバは、仮のまたは一時暗号化／解読キーをクライアントへ送信し、該一時キーは、該クライアントとサーバの間のメッセージを暗号化する際に用いられるキーリングの一部となる。一時キーの使用は、１つのクライアントのみが、クライアントとサーバの間の暗号化通信を実現するための適切なキーを含むため、クローンクライアントが該サーバと通信するのを防ぐ。該一時キーは、例えば、ＳＳＬによって提供される、または、ディフィー・ヘルマン（Ｄｉｆｆｉｅ  Ｈｅｌｌｍａｎ）型キー交換によって提供されるセッションベースの暗号化通信チャンネルを通じて送信することができ、そのため、該サーバによって供給された更新済みの一時キーを含むネットワークパケットは、同じ一時キー更新メッセージを得るクローン装置によって解読することができない。このようなセッションベースの暗号化は、どのような種類の通信にも用いることができる。一実施形態において、該サーバは、トークンを該クライアント装置へ送信し、それらのトークンは、該クライアント装置により格納されて、後のクライアント・サーバ間のメッセージに用いられる。該サーバは、任意の時刻に、または、一定の間隔で、固有トークンをクライアント装置に与えてもよい。
【００５６】
表２の実施例においては、２つの秘密データ値が示されている。しかし、１つ、２つまたはそれ以上の秘密データ値を、該クライアントによって固有に与えられた値および／または該クライアント装置の動作に基づいて、該サーバによって固有に決められた値と共に用いてもよい。一実施形態において、該クライアント装置における秘密データモジュール２９は、不揮発性メモリを含んでもよく、また、該秘密データの一部は、該クライアント装置上の該不揮発性メモリ（ハードディスク、フラッシュメモリ等）に局所的に格納してもよい。実在するクライアント装置およびクローンクライアント装置の電源投入順序、または、これらの装置がネットワークに接続する順序、あるいは、これらの装置が該サーバに最初に接続する順序は重要ではなく、上述した技術は、これらのクライアント装置がいずれかの順序で電源が入れられる必要はない。従って、図５Ａおよび図５Ｂにおいて電源が入れられる第１のクライアント装置は、実在するクライアント装置ではなく、クローンクライアント装置であってもよく、また、実在するクライアント装置およびクローンクライアント装置は、いつでも、どのような順序でも該サーバと通信することができる。この実施形態は、メッセージの順序に関係なく、該サーバが、メッセージを受信したときに、同じクライアント認証を用いる１つ以上のクライアント装置があるときを判断することを可能にし、この場合、秘密データ値が該サーバにおける秘密データ値と一致せず、実在するクライアント装置が既にクローン化されていることを示している。
【００５７】
図５Ａおよび図５Ｂは、該サーバからクライアント装置へ、クライアント装置からの最後の要求のＴＯＤの形で送信される単一の秘密データアイテムを用いた秘密クローン検出を示す。代替的実施形態においては、１つ以上の秘密トリガを用いてもよい。秘密トリガは、多数のイベントが発生した後に行われ、かつ秘密識別子を生成するのに用いられる秘密データを変更することにより、または、該サーバによって追跡することのできる新たな一片の秘密データを供給することにより応答するトリガである。クライアント装置の通常の動作には、多くの可能性のある秘密トリガがあり、秘密トリガまたはイベントは、時間(クライアント装置がアクティブであった総時間、クライアント装置が設定され、または更新された任意の時間等)、メッセージ（受信したビデオＥＣＭまたはＥＣＭの総数、チャンネル変更の総数）、または、内部データ処理（例えば、１００，０００番目のビデオパケットが解読されたときのＴＯＤ）等のイベントの多くのカテゴリに基づくことができる。秘密トリガの他の実施例は、例えば、セットトップボックス（ＳＴＢ）等のクライアント装置が、１００〜２００回、チャンネルを切替えたときに発生するトリガと、または、一定数のクライアントイベントが発生したときに発生するトリガとを含み、該トリガが発生したときに、該トリガは、該クライアントの時刻（または、他のパラメータ）を保存する。別の実施例は、受信した１５０００番目のＥＣＭパケットの実際の値、または、該１５０００番目のＥＣＭパケットが受信されたときの時刻（ＴＯＤ）、あるいは、これら２つの値のハッシュである。秘密データ値の生成をトリガするイベントは、同一の認証を有する２つのクライアント装置（真の／実在するクライアント装置と、クローンクライアント装置）において、異なるレートで発生し、その結果、該真のまたは実在するクライアント装置およびクローンクライアント装置は、異なる秘密データを有し、それ故に異なる秘密識別子を有する。該秘密識別子は、サーバ側で、ネットワーク上で作動する多数のクライアントを検出するのに用いられる。
【００５８】
一実施形態において、保存された秘密の値のクライアントライブラリは、秘密識別子を生成するのに用いられる新たなまたは異なる秘密データ値を保存するために、定期的に変えられる。このようにして、１つのクライアントライブラリを得ることのできるハッカーは、秘密識別子に用いられる秘密データ値を生成する新たなイベントが、クライアントライブラリが更新された後に、いつ発生する可能性があるかが分からない。ハッカーは、どんな秘密トリガが該クライアントライブラリにプログラムされているか、該トリガはいつ発生するか、およびトリガに応答して、どんな秘密データが該クライアントライブラリに格納されるかを判断しようとするために、クライアントライブラリソフトウェアの更新後の検出を避けるために、全てのクローンクライアント装置をネットワークから外す必要がある。このような更新は、サーバによって生成することができ、また、該クライアント装置に含まれている安全処理能力を用いることもできる。該クライアントライブラリを更新するためのクライアントファームウェアダウンロード方法は、ディジタル署名されたコードイメージを用いて、該クライアントが、該ダウンロードを認証できるようにすることができる。ヘッドエンドソフトウェアは、アプリケーションプログラミングインタフェース（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍｍｉｎｇ  ｉｎｔｅｒｆａｃｅ；ＡＰＩ）機能、または、クライアントソフトウェアをダウンロードするためのデータカルーセルインタフェースを有することができる。
【００５９】
一実施形態において、秘密識別子は、多数の要求に対して固定的であるデータを含み、その結果、該秘密識別子を生成するのに用いられる秘密データは、秘密トリガに基づいて変化し、または、前のメッセージ要求の場合の時刻またはＴＯＤ等の特定の種類の各メッセージのための該秘密識別子は、変化する。秘密識別子に用いられる秘密データは、該クライアント装置内で発生させることができ、または、該サーバから、メッセージングの一部として送信することもでき、あるいは、クライアント／サーバデータの組合せとしてもよい。該秘密識別子は、現在の秘密データ値の数学的変換または暗号学的ハッシュへの適用等の、該クライアントまたはサーバによって処理されるデータを含むことができる。
【００６０】
一実施形態において、秘密識別子に用いられる秘密データ値は、多数の異なる方法のうちの１つにおける要求に応答するサーバに基づいて変化する可能性もある。一つの実施例において、最初の１０のブロードキャストキー要求は、秘密データの１つの値を受信し、１０を超えるその後の要求は、該秘密データが変化し、またはスクランブルされ、変化およびスクランブルされる異なる応答を受信する。変化は、クライアントまたはサーバ側、あるいはこれらの両方で起きる可能性がある。該秘密識別子は、通常のシステム処理中に処理される通常のメッセージの一部として、メッセージブロブまたはフィールドに含まれており、該メッセージブロブは、該クライアントソフトウェアの２つの異なるコードリリースの間で変わる可能性がある。加えて、該メッセージブロブは、データホワイトナー（ｄａｔａ  ｗｈｉｔｅｎｅｒ）として適用される意味のないランダムデータを有する可能性がある。一実施形態において、該データブロブは、３〜５の秘密データ値を有し、該秘密データは、異なる時間に発生する異なるイベントまたはトリガに基づいて変化する。
【００６１】
図５および図６に関連して上述した実施形態において、メッセージの時刻に基づく秘密識別子は、ブロードキャストキー要求メッセージ等の中に設定されている。以下の表３は、携帯電話を備えるクライアント装置内で生成される変換秘密識別子の実施例を示す。
【表３】
2009524165.tif 000006
【００６２】
表３においては、１つの電話が実在するものであり、他の２つがクローンであり、各電話は、該電話の動作に基づいて秘密識別子を生成する。上記の実施例においては、最初の２つのコールエントリのみが、固有秘密識別子（ＩＤ）を生成するのに用いられる。各電話の通話記録は、各電話用の固有秘密ＩＤを生成する暗号学的ハッシングタイプ関数で処理され、完全なクローン電話を含めて各電話に固有の識別子が生じる。これらの電話は、製造時にクローンであり、各電話は、時間の経過と共にわずかに異なって使用されるため、該電話の所有者が同一の通話記録を生成して、同一の秘密識別子を生成しようとしても、該秘密識別子は、複製するのが非常に困難である。これは、完全に同一の通話記録を生成するためには、マイクロ秒単位で同じイベントを取得する必要があるためであり、現実の世界のデバイスにおいては不可能である。
【００６３】
クライアントとサーバの間の秘密識別子は、追加的なセキュリティのために、クライアント間で固有の暗号化キーによって暗号化することができるが、該秘密識別子は、他の実施形態においては、暗号化されていない秘密データ値であってもよい。いくつかの実施形態においては、クライアント装置を識別するためのこのような値に基づく秘密データ値または秘密識別子のみを用いた、クライアントとサーバ間のキーレスセキュリティを含めてもよい。しかし、このセキュリティは、該クライアント／サーバ間の通信が暗号化された場合に機能強化される。秘密データまたは秘密識別子は、１組の暗号鍵を要することなく、多くの方法で、クライアントを操作的に識別するのに用いることができる。実際には、上述した秘密データスキームは、システムに必要なセキュリティ固有メッセージを要することなく、全てのメッセージトランザクションに用いることができる。これは、本明細書に記載されている秘密データ技術を、Ｘ．５０９証明書、暗号鍵および同様のセキュリティ固有キー等のセキュリティ認証を伴って、および要することなくクライアントの認証を強化するのに用いることができることを意味している。一実施形態において、クライアントとサーバ間、または、２つのコンピュータ装置の間の全ての通信は、暗号化固有キーが必要ない状況においては、本明細書に記載されている技術によって機能強化される。実施形態は、アプリケーションソフトウェア、システムミドルウェア、請求書作成ソフトウェア、あらゆる種類の電子商取引、あらゆる種類のクライアント／サーバ通信、およびクライアントとサーバ間のあらゆる種類のメッセージングを含み、またはこの場合、クライアントは、識別される必要があり、システムにおいて実行されるあらゆる種類のソフトウェアおよびファームウェアに適用することができる。
【００６４】
一実施形態において、秘密セキュリティデータは、クライアント装置と、ウェブサイトまたはサーバとの間の通信のためのセキュリティまたは暗号化を利用しない、ならびにクローンクライアント装置の検出を可能にするシステムにキーレスセキュリティを与えるために用いることができる。この実施形態を、図７のフロー図に示す。最初のステップ１５０において、クライアント装置は、サービスの登録のために、ウェブサイトまたはサーバにコンタクトする。登録中に、該クライアント装置は、該クライアント装置を固有に識別する最初の秘密識別子を該サーバに送信する（ステップ１５２）。この実施形態において、該秘密識別子は、一連の秘密データ値を備えるが、他の実施形態においては、このような値の変換バージョンを備えてもよい。該秘密識別子に用いられる該最初の秘密データ値は、クローン化するのが難しい、本明細書に記載されている秘密データを含むどのようなクライアント装置固有データであってもよい。登録時に、該クライアントは、可能な場合には中央演算処理装置（ＣＰＵ）のシリアル番号、ディスクドライブ容量ＩＤ、または他のハードウェア固有情報等のクローン化するのがやや難しいクライアント情報を秘密識別子として送信することができる。この登録プロセス自体は、サーバ側またはクライアント側において、該ＣＰＵまたはコンピュータハードウェア装置内の１つ以上のレジスタからのデータ、送信されたメッセージと、該クライアントによって受信される応答との間のナノ秒単位の時間遅延、メモリの一部のチェックサムまたはＣＲＣ値等の、クローン化するのが難しい新たな秘密データ値を生成することができる。秘密データの最初のセットまたはテーブルは、登録プロセス中に、該クライアント装置またはサーバによって獲得されて格納される（ステップ１５４）。この時点で、該秘密データは、登録された該クライアント装置に固有であり、クライアント・サーバ間の通信が、このデータに基づく秘密識別子を用いて開始され、該クライアント装置を認証する（ステップ１５５）。この場合、クローンクライアント装置を検出する方法を図４に示す。該サーバが、該登録されたクライアント装置からのものであると主張しているが、当該クライアント装置のために該サーバに格納された該最初の秘密データ値に一致する秘密データ値を有していない通信を受信した場合、クローン装置検出レポートが、該サーバによって生成される。
【００６５】
ハッカーは、システムに侵入して、秘密データ値からなる最初のセット、または、それが変換された当該データに基づく秘密識別子を取得できる可能性があるため、該クライアント装置が作動し続ける場合には、新たな秘密データが、操作特性に基づいて生成される（ステップ１５６）。この新たな秘密データは、後の該サーバとクライアント装置の間の通信の際に、秘密データ値からなる最初のセットに追加され（ステップ１５８）、その結果、該サーバおよびクライアント装置の両方において、前に格納された当該クライアント装置のための秘密データ値に、新たな秘密データ値が追加される（ステップ１６０）。この新たな秘密データは、クライアントを識別するために、登録後に生成された追加的秘密データを追加する時限イベントまたはカウントイベントを介して生成することができる。場合により、該サーバは、このクライアント装置に固有の追加的秘密データを該クライアント装置に与えるメッセージの間の様々な時刻に、秘密データを生成して該クライアント装置に配信することができる。新たな秘密データは、該クライアント装置が作動し続ける際に、継続的に追加されるため、長期間使用される秘密データからなる固定的セットはなく、ハッキングおよびクローニングがかなり困難になる。どの段階においても、実在すると主張するクライアント装置からのメッセージで受信した秘密データが、該サーバにおいて、当該クライアント装置のために格納された現在の秘密データからなるセットに一致しない場合には、クローン検出レポートが生成される。
【００６６】
図７の方法は、セキュリティを伴わないシステムが、容易にはハッキングできない秘密データに基づいて、クライアント固有識別子を生成するのを可能にする。いくつかの適用の場合、この秘密データ技術は、単独で適切なセキュリティを実現することができ、または、この秘密データ技術は、クライアント／サーバメッセージングが、例えば、図５、図６および表２に関して説明されているように、本明細書に記載された秘密データ方法によって機能強化された最善の暗号化技術を用いて確保されているシステムに、追加することができる。
【００６７】
上述した秘密データ技術は、暗号鍵が、コンピュータ装置間のメッセージを暗号化するのにも用いられる場合、または、ネットワーク上のコンピュータを確実に識別するのにキーが用いられる場合に、セキュリティを強化するのに用いることができる。クローンクライアント装置が形成された場合、該クローン装置は、許可された、真正のまたは実在するクライアント装置の同一のキーを有し、該許可された真正の実在するクライアント装置とサーバとの間で送信される全てのメッセージを解読することができる。しかし、該実在するクライアント装置と、クローンクライアント装置は、時間の経過と共に、いくつかの機能を異なって操作的に実行し、または、異なる操作カウンタ値（処理されたＥＣＭの数、１０回目のチャンネル変更が行われた時刻等）を有するため、該実在するクライアント装置およびクローンクライアント装置によって生成された秘密データは、上述したように異なる。
【００６８】
多くの場合において、該秘密データの実際の値は重要ではなく、重要なことは、セットトップボックス等のクライアント装置の操作上の動作が、該真正のクライアント装置の複製物と比較した場合に、通常の作動条件下において異なるということである。このことは、クライアント装置が、実在するクライアント装置と同一のクローンのクライアント認証を有する場合であっても、該秘密データ値が、クライアント間で異なることを意味する。いくつかの実施形態において、これらの動作上の違いは、真正のクライアント装置とクローンクライアント装置との間で異なるそのような値に基づいて、秘密データ値または秘密識別子を検出するのに用いられ、このような方法の一実施形態は、図５、図６および表２に関して上述されている。また、該秘密データ値は、値が変わる前に、該クライアント装置が、一定期間作動することを要する倍率で重み付けされる「カウンタ値」とすることができ、これによって、数日間、数週間または１ヶ月の動作を、単一の値に固定するデータ値が提供される。一実施形態においては、１つ以上の秘密データ値が、クライアント装置とサーバとの間のメッセージングにおける秘密識別子として用いられる。一実施形態においては、１つ以上の秘密データ値が、異なるレートで変化する様々な秘密データ値をもたらす異なるしきい値またはトリガと共に用いられる。以下の表４は、“Ｇｅｔ  Ｋｅｙ  Ｍｅｓｓａｇｅ（ＧＫＭ）”と呼ばれるメッセージにおける３つの秘密データ値またはアイテムと、時間の経過に伴う秘密データアイテムの変化の実施例を示す。
【００６９】
図５Ａおよび図５Ｂおよび表２の実施形態は、秘密データ値を送信するためのブロードキャストキーまたはＢＫＥＹ要求を用いており、以下に説明する表４における該ＧＫＭのための同じ技術は、ブロードキャストキーまたはＢＫＥＹ要求の実施例、または、クライアント装置とサーバとの間で用いられる他の何らかのメッセージに対して用いることができる。また、秘密データアイテムまたは値は、該クライアント装置またはサーバ上で、あるいはその両方で発生させることができること、および該秘密データ値は、データ値を処理することにより、例えば、ハッシュ関数を用いることにより、または、任意の数値を供給することにより、あるいは、該秘密データスキームの一部として用いられるデータ値に対して変換を実行することにより、得られる結果とすることができることに留意する。
【表４】
2009524165.tif 000007
【００７０】
表４における上記の実施例は、ＧＫＭにおける３つの秘密データ値またはアイテム１、２、３が、時間の経過と共にどのように変化するかを示す。‘１’という値として上記表に示されているＧＫＭメッセージＩＤは、ＧＫＭであるメッセージを識別する。各ファームウェアの更新後に、キー取得要求（または、電子商取引または他の取引等の他の何らかのイベント）等の特定の機能のためのクライアント／サーバ通信の一部として送信される秘密識別子は、以前のファームウェアリリースとは異なる秘密データアイテムを含み、システム上の従来のファームウェアのハッキングを無効にする。上記の実施例において、該秘密データアイテムは、該クライアント装置またはサーバにおいて生成された異なる操作上の値であり、上述した可能性のある秘密データアイテムまたは値、あるいは、クライアント装置の操作から得られる他の何らかの固有データのいずれかとすることができる。該サーバが、特定のクライアント装置のために格納された現在のＧＫＭメッセージに一致しないＧＫＭメッセージを受信した場合には、該サーバはいつでもクローンクライアント装置検出レポートを生成する。
【００７１】
上記実施例において、ＧＫＭのためのメッセージＩＤは、変える必要はなく、該クライアントとサーバの間の通信のための多数のメッセージ種別のうちの１つを示す固定メッセージＩＤ値と見なされる。しかし、該メッセージＩＤは、異なるクライアントファームウェアのバージョン間で変わる可能性があり、自称ハッカーは、クライアントファームウェア更新がなされた場合に、新たなメッセージＩＤを解析して模倣しなければならない。ファームウェア更新番号は、該サーバが、異なるクライアントファームウェアバージョンによって作動できるようにするために、該メッセージＩＤに含めることができる。
【００７２】
一実施形態において、様々なファームウェアリリースのために集められた秘密データアイテムは、様々なバージョン間で異なる。以下の表５は、３つの異なるファームウェアリリースの場合の可能性のある秘密データフィールドの実施形態を示す。この表は、例えば、様々なリリースが１年の間に行われる、リリース１．０、１．１および１．２という名称の３つの異なるファームウェアリリースの場合の３つの秘密データフィールドの内容を示す。クライアント装置とサーバ、またはサーバとクライアント装置、あるいはその両方の間のメッセージにおける秘密識別子は、該秘密データアイテムの本質が、現在の使用中のファームウェアリリースに依存する、３つの秘密データアイテムから構成される。この表は、各列を下に読んでいくことによって読む。該ファームウェアのリリース１．０の場合の３つの秘密データアイテムは、該サーバからの４番目のメッセージトークンと、スケールＥＣＭパケットカウントと、受信した特定の種類の第３のメッセージの場合の時刻である。リリース１．１においては、これらのアイテムは、該クライアント装置が作動した時間の総時間のスケールカウントと、該サーバとの特定の種類の６番目のメッセージの後に、該サーバから受信したトークンと、特定の種類の１０，０００番目のメッセージが該クライアント装置によって受信されたときの時刻とに変わる。リリース１．２においては、３つ全ての秘密データアイテムが再び変更され、秘密データアイテム２がゼロに変わり、他の秘密データアイテムは、特定の種類の１５０番目のメッセージが受信されたときの時刻と、該クライアント装置が、新たなファームウェアがインストールされた日の午後８時３７分に合わされたチャンネル番号の値とに変えられる。
【表５】
2009524165.tif 000008
【００７３】
一実施形態において、いずれかの単一のファームウェアリリースに用いられる秘密データアイテムは、所定回数、または、所定のトリガに応じて変えることもできる。例えば、コードの特定の更新が３月にリリースされて、該クライアント装置にロードされたと仮定する。この更新がロードされた後の最初の２ヶ月の間、秘密データアイテム２は、該ファームウェアが更新された時刻である。次に、２ヶ月以降、秘密データアイテム２は、該サーバによって与えられたデータ値に変わる。次いで、このファームウェアリリースの動作の４ヶ月後、データアイテム２は、該更新のローディングの４ヶ月の記念日に、該クライアント装置上のチップに含まれているレジスタ値に変わる。この実施形態において、秘密データアイテムの値は、動作の最初の４ヶ月の間に３回変わり、その結果、ハッカーは、該クライアント装置のクローンをうまく作動させるのがより困難になる。予め格納されている秘密データアイテムの値が、特定の日時に変わった場合には、該サーバは、該日時に気付いて、データベースを適切に調整する。例えば、該クライアントライブラリは、動作の９０日後に、全体的に新しい秘密データテーブルまたはマトリクスを生成するように設計されると仮定すると、該サーバは、該クライアントが、使用の９０日後に、新たな秘密データを報告することに気付く。実際には、クローンを同期させて、古い秘密データテーブルを一気に消去し、同時に新たなデータにリフレッシュしたとしても、特に、ハッカーが、変更される秘密データ値を予測できない場合、該ハッカーに、記号論理学問題を与える。
【００７４】
該クライアント装置の操作、該クライアント装置と通信しているサーバ、またはその両方によって生成される、多くの異なる可能性のある秘密データアイテムおよび秘密データトリガがあり、このことは、上述した実施形態において、メッセージに付加されるクライアント識別子を生成するのに用いることができる。１つ以上の秘密データアイテムは、メッセージ応答の一部として、該サーバによって該クライアントに与えられるトークンまたは時間とすることができ、該サーバが与えたデータアイテムは、例えば、図５および図６および表２に関して上述したように、後に（恐らく、クライアント装置による次の要求時）、該クライアント装置によって該サーバに戻される。このことは、該サーバが、クローンを識別するために秘密データとして用いられるトークンを生成できるようにする。また、秘密データは、クライアント装置によって処理されるメッセージの数のカウント、または、該クライアント装置によってメッセージログまたはメッセージ待ち行列に書き込まれたメッセージの数、あるいは、クライアント装置ＡＰＩ機能に対する１０番目のＡＰＩコールの値、あるいは、通常、同一の認証を有するクライアント装置間でも変化する他の同様のイベントとすることもできる。
【００７５】
多くの場合において、秘密データは、該サーバ側で、クローンを検出するのに用いられる情報であるため、または、該秘密データは、クローンを検出するために、該サーバによって与えられる情報であるため、該クライアント装置は、該秘密データが意味することが分からず、または気にすることもない。一実施形態においては、いくつかの秘密データ値が、新たなクライアント装置の動作の特定の期間後に、例えば、動作の２３：４９：３３（時：分：秒）に、該クライアント装置がどのチャンネルに合わされたか等の１回限りのイベントに基づいて生成される。他の秘密データ値は、ケーブルモデムの広範なパラメータ、ＤＨＣＰリース期間等のネットワークまたはシステム操作値を用いて生成することができる。他のデータ値は、該サーバから供給されてもよい。他の秘密データ値は、クライアント装置とサーバの間のメッセージングによって生じる可能性があり、または、他のパラメータは、通常、その製品の環境内に見出すことができる。例えば、ＰＣは、携帯電話とは異なる秘密データ値を有することができる。
【００７６】
上記の実施形態において説明したようなクライアント装置の操作イベントによって生成される秘密データを用いたセキュリティシステムは、クローン化されたまたは偽のクライアント装置が該システムによって検出されたか、または、他の理由で疑われた場合、あるいは、疑われるクローンクライアント装置に関係なく、所定の間隔で、加入者資格更新プロセスを含むように設計することもできる。図８は、双方向ネットワーク、または、リターンチャンネルを有する一方向ネットワークの場合の更新プロセスの実施形態を示す。時折のダイアルアップモデム接続、または、携帯電話が、ＳＴＢ等のクライアント装置に接続された場合に形成されるリターンチャンネル等のどのような形態の持続性のまたは非持続性の（散発的な）リターンチャンネルも、図８の場合のように、更新に用いることができる。同様のプロセスを、リターンチャンネルを有していない一方向ネットワークに対して用いてもよく、このようなプロセスの一実施形態を、図９のフロー図に示す。
【００７７】
図８のプロセスは、双方向ネットワークまたはリターンチャンネルを有する一方向ネットワークに関連して、更新プロセスに用いることができる。図８に示すように、秘密識別子に対する要求が、サーバによってネットワークを通じて（双方向ネットワーク上の）個々のクライアントまたは（一方向ネットワーク上の）全てのクライアント装置に送信される。サーバは、更新メッセージをクライアントへ送信する（１８１）。リターンチャンネルが使用可能であり（１８２）、該クライアント装置は、現在の秘密識別子を該サーバに戻す（ステップ１８４）ことによって応答するようにプログラムされていると仮定する。リターンチャンネルが使用可能でない（すなわち、該クライアント装置が、リターンチャンネルを有していない一方向ネットワーク上で作動している）場合、この処理手順は、図９に示されているように、および以下により詳細に説明するように続行される。
【００７８】
ステップ１８４において返信された、リターンチャンネルを有するネットワークの場合の、秘密データ識別子は、当該クライアント装置における操作イベントにも関連する、特定のクライアント装置によって集められた秘密データに基づいている。該秘密識別子は、各クライアント装置においてちょうど更新されているので、ハッカーは、ハッキングを再スタートさせて、ステップ１７９における更新コードを受信した直後の、実在するクライアント装置の秘密識別子を見つけ出して、当該秘密識別子をいずれかのクローン装置において複製を試みなければならない。このようなハッキングの試みは、各クライアント装置のための秘密識別子を含む応答が、ステップ１８４において、各クライアント装置から自動的に返信される前に複製される秘密識別子に対しては、間に合うようにうまく成功しそうにない。一実施形態において、該秘密データ識別子は、集められた秘密データ値から生成された８桁のディジタルコードであり、加入者関連動作情報またはプライバシー関連情報を含んでいない。しかし、代替的実施形態においては、秘密データ値に基づく他のコードを生成してもよい。この結果、該サーバは、２つ以上の応答が、同じクライアント識別子であるが異なる秘密データと共に受信されているか否かを判断することができる（ステップ１８５）。１つのみの応答が受信された場合、該クライアント装置から受信した秘密識別子に基づく更新解除コードが、該サーバによって生成され（ステップ１８６）、該クライアント装置に送信される（ステップ１８８）。１つのみの応答が受信された場合、該ネットワーク上に、実在するクライアント装置のクローンが存在する可能性はほとんどなく、該実在するクライアント装置は、更新コードを解除し、またサービスのために更新される。しかし、該実在するクライアント装置は、何かの理由のために応答を送信することはなく、または、クローンクライアント装置は応答を送信せず、該更新解除コードは、同じクライアント識別子または認証の下で作動する全てのクライアント装置に送信されるため、１つ以上のクライアント装置が、該更新解除コードを受信する可能性がある。同じ秘密データ識別子を備えるクライアント装置のみが、該更新コードを解除することができ、かつ該ネットワークを介してサービスを更新することができる。同じクライアント識別子を用いた他のどのようなクライアント装置も、該更新コードを解除することができず、サービスの受信を遮断される。該更新されたクライアント装置が、実際にはクローンである場合には、実在する加入者は遮断され、サービスプロバイダにエラーを出すよう報告する。この場合、該クローン装置は遮断され、該実在する加入者のクライアント装置に対するサービスが更新される。図８に図示されていない任意のステップは、ステップ１８１の前に、該クライアントに、また別の新たな秘密データ値を取得させて、ステップ１８４において戻される秘密データテーブルに付加するために、該クライアントに秘密識別子更新メッセージを送信することである。その結果、該メッセージを受信する各クライアント装置は、捕捉されている秘密データの特定の一部に対する該特定の装置の現在の操作特性に基づいて、該秘密識別子を更新する。
【００７９】
ステップ１８５において、秘密識別子を伴う２つ以上のクライアント装置応答が受信された場合、該実在するクライアント装置が識別される（ステップ１８９）。ステップ１８９における該実在するクライアント装置の識別は、２００６年７月２０日に出願された同時係属出願第１１／４８９，７７９号明細書に記載されているようなネットワークユーザ認証方法を備えてもよく、この明細書の内容は参照により本明細書に組み込まれる。この方法においては、認証された加入者は、該クライアント装置に対する物理的接続の位置と関連付けられ、ステップ１８９において、どのクライアント装置が、該認証された加入者のための正しい物理的ネットワーク位置にあるかを判断するために、ネットワークが調べられる。該正しいまたは実在するクライアント装置が配置されている場合、ステップ１９０において、当該クライアント装置から受信した秘密データに基づく更新解除コードが生成され、ステップ１９２において、該ネットワークを通じて、一方向ネットワーク上に同じクライアントを有する全てのクライアント装置に送信され、および双方向ネットワーク上のクライアントに独自に配信される。サービスは、そのような全てのクライアント装置に対して遮断され、実在するクライアント装置のみが、該更新コードを解除して、サービスを更新することができる。
【００８０】
サービスプロバイダが、実在するクライアント装置のための物理的位置または物理的接続識別子に基づく認証処理手順を有していない場合、該実在するクライアント装置は、他の方法によって、例えば、サービスオペレータに該加入者を呼び出させることにより、および該加入者に、該実在するクライアント装置上の秘密識別子を捜させることにより、および当該識別子を、ＳＭＳメッセージで、または電話を通じて、該サービスプロバイダに供給することにより、見つけることができる。
【００８１】
図９は、リターンチャンネルを有していない一方向ネットワーク上のクライアント装置のための秘密データセキュリティシステムに関連して用いることのできる定期的更新プロセスにおけるステップを示す。この更新プロセスは、図８に示すのと同じ初期ステップ１７９、１８０および１８１を用いる。しかし、該クライアント装置における中央プロセッサは、サービスコード更新メッセージに応じて、サービスコードまたは更新メッセージを該クライアント装置のスクリーン上に表示するようにプログラムされている（ステップ１９３）。このメッセージは、秘密データストレージモジュール２９から検索したクライアント識別子と現在の秘密識別子とを含む。該クライアント装置のためのクライアント識別子は、実在するクライアント装置およびクローンクライアント装置に対して同一であるが、該クライアント装置に格納されている現在の秘密識別子は、各クライアント装置に対して異なる。サービスコードメッセージは、ユーザが２つのＩＤを、スクリーン上に表示された電話番号に送る要求を含み、該番号は、サービスプロバイダに対して８００の番号とすることができる。
【００８２】
ステップ１９４において、該クライアント装置のユーザは、該クライアント識別子および秘密データＩＤを、スクリーン上の電話番号に対するＳＭＳメッセージとしてサービスプロバイダへ供給し、または、別法として、該サービスプロバイダにおけるオペレータへの音声通話で与える。この段階において、該サービスプロバイダは、該メッセージの送信者または発呼者が許可された加入者であるか否かを、該許可された加入者の電話番号等の、該サーバに格納された個人情報またはセキュリティ情報に基づいて判断することができる。発呼者が許可された加入者であることが判断されると、該サーバまたはサービスプロバイダは、ステップ１９５において、ユーザから受信した固有秘密データＩＤに基づいて、更新解除コードを生成し、該更新解除コードを、同じクライアント識別子を有するネットワーク上の全てのクライアント装置へ送信または配信する（ステップ１９６）。該コードを受信するクライアント装置が、該解除コードを正しく処理することができる場合、当該装置に対して、サービスが更新される（ステップ１９８）。当該クライアント装置に格納されている秘密データが、該解除コード内の秘密データに一致しないため、該コードを受信するクライアント装置が、該解除コードを正しく処理することができない場合には、該クライアント装置に対するサービスは遮断される（ステップ１９９）。該システムが、要求されたメッセージの発呼者または送信者が許可された加入者であると間違って判断し、かつユーザが、クローン装置を実際に使用している場合は、実在するクライアント装置は、該更新解除コードを処理することができず、許可されたユーザは、サービスが遮断されているので、サービスプロバイダに電話する。そして、該実在するクライアント装置における秘密データに基づいて、別の更新解除コードを生成して、クライアント装置へ送信することができ、その結果、これまで更新された装置が遮断され、該実在するクライアント装置が、サービスに対して更新される。
【００８３】
図８および図９に関連して上述した更新プロセスは、所定の間隔で、または、ネットワーク上に１つ以上のクローンクライアント装置の存在が疑われる場合に、あるいはその両方の場合に行うことができる。図８および図９に記載されているような更新プロセスは、秘密データテーブルのいずれかの部分、または秘密データテーブルの一部を用いて、クライアント装置固有の解除コードを生成することができ、それにより、異なる秘密データ値を有するクローンクライアントは、適切なキーを生成して、該解除コードを解読することができない。このようなクライアント固有キー管理スキームの実施例は、ディフィー・へルマンである。他の種類のキー交換メカニズムを用いることもできる。例えば、ディフィー・ヘルマンを用いた場合、（いずれかまたは全ての）秘密データは、クライアント側の固有キーを生成するのに用いられるシーディング（ｓｅｅｄｉｎｇ）メカニズムの一部として、または、サーバ側の互換キーを生成するのに用いられるデータの一部として用いられ、その結果、異なる秘密データ値を有するクローンクライアントは、他のクローン装置間で同じ固有キーペア（ディフィー・へルマン・キーペア）を生成することができない。更新プロセスを実現することができる別の方法は、ディフィー・ヘルマン等のアルゴリズムにおいて、共有ペアリングキーをシードまたは生成する公知の方法で、クライアントのために受信した秘密データをサーバに使用させること、および本質的に、適切な秘密データを含むクライアントによってのみ再生成することができる固有キーのペアを生成することである。クライアント装置の更新を実行する別の任意の方法は、秘密データの一部を暗号化／解読キーデータとして用いることであり、これは、各クライアントが固有秘密データを有し、かつ該固有秘密データがサーバに知られているためである。秘密データの一部または全て、あるいは、該秘密データのハッシュ化されたまたは変換されたバージョンは、暗号化／解読キーデータを生成するのに用いられる、または、ディフィー・ヘルマン等のアルゴリズムを用いて共有キーを生成する際に用いられるキーまたはシードデータあるいは係数に適用することができる。また、該秘密データは、更新プロセスの間に、クライアントとサーバの間、または、サーバとクライアントの間で送信されるキーシードまたはキー係数データをスクランブル化するかまたは変換するのに用いることができることが期待される。例えば、該秘密データは、該クライアントによってハッシュ化して、該サーバに送信されるデータを暗号化するときに、キーとして用いることができる。また、該サーバは、該秘密データを知っているため、該サーバは、同じハッシュを実行して、解読キーを生成することができる。
【００８４】
ここでまた、ディフィー・ヘルマンを実施例として用いると、秘密データをベースとするキー交換は、以下のように機能することができる。
１．アリスは、任意の大きさの整数Ｘを選んで、ボブに送信する。
【数１】
2009524165.tif 000009
２．ボブは、任意の大きさの整数Ｙを選んで、アリスに送信する。
【数２】
2009524165.tif 000010
３．アリスは、ボブの暗号化されたＹを解読して、
【数３】
2009524165.tif 000011
を計算する。
４．ボブは、アリスの暗号化されたＸを解読して、
【数４】
2009524165.tif 000012
を計算する。
ディフィー・ヘルマンの後、ＫおよびＫ’が等しくなり、該秘密データを、データを転送するための暗号化キーとして用いた。秘密データは、暗号化キー以外の多くの方法で用いることができ、また、アルゴリズム計算に用いられるデータおよび値に適用される任意の大きさの整数計算またはハッシュのためのシードデータとして用いることができる。
【００８５】
上記の実施形態においては、クライアント装置の動作または使用中に発生する操作イベントに基づいて、すなわち、該クライアントまたは加入者が該クライアント装置をどのように使用しているかに基づいて、固有秘密識別子が生成される。これらの操作イベントは、クローンクライアント装置が、実在するクライアント装置または他のクローンクライアント装置のユーザとは異なるユーザによって操作されるため、実在するクライアント装置とクローンクライアント装置とで異なる。このような操作は複製するのが極めて難しい。秘密識別子は、クローンクライアント装置を検出するのに用いることができ、また、定期的な更新プロセスにも用いることができ、これにより、クローンクライアント装置に対するサービスを防ぐことができる。
【００８６】
当業者は、本明細書に開示されている実施形態に関連して説明した様々な例示的論理ブロック、モジュール、回路およびアルゴリズムステップを、多くの場合、電子ハードウェア、コンピュータソフトウェアまたはこれらの両方の組合せとして実施することができることを正しく理解する。このようなハードウェアとソフトウェアの互換性を明確に説明するため、種々の例示的なコンポーネント、ブロック、モジュール、回路およびステップは、概してそれらの機能性に関して上述されている。このような機能性が、ハードウェアとして、またはソフトウェアとして実施されるかは、具体的な用途、およびシステム全体に課された設計上の制約による。当業者は、それぞれの具体的な用途のための様々な方法で、記載された機能性を実施することができるが、そのような実施の決定は、本発明の範囲からの逸脱を引き起こすものと解釈すべきではない。また、モジュール、ブロックまたはステップにおける機能の分類は、説明を容易にするためである。特定の機能またはステップは、本発明の範囲から逸脱することなく、１つのモジュールまたはブロックから移動させることができる。
【００８７】
本明細書に開示されている実施形態に関連して説明した様々な例示的論理ブロックおよびモジュールは、汎用プロセッサ、ディジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または他のプログラマブル論理素子、個別ゲートまたはトランジスタ論理、個別ハードウェアコンポーネント、あるいは、本明細書に記載されている機能を実行するように設計されたこれらの要素のいずれかの組合せによって実施または実行することができる。汎用プロセッサは、マイクロプロセッサとすることができるが、代替例において、該プロセッサは、何らかのプロセッサ、コントローラ、マイクロコントローラまたは状態マシンとすることができる。また、プロセッサは、コンピュータ装置の組合せとして、例えば、ＤＳＰとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連動する１つ以上のマイクロプロセッサ、または、他の何らかのこのような構成として実施することもできる。
【００８８】
本明細書に開示されている実施形態に関連して説明した方法またはアルゴリズムのステップは、直接、ハードウェアに、プロセッサによって実行されるソフトウェアモジュールに、または、これら２つの組合せで具体化することができる。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、または、記憶媒体の他の何らかの形態に備えることができる。例示的な記憶媒体は、プロセッサに結合することができ、その結果、該プロセッサは、該記憶媒体から情報を読出し、かつ該記憶媒体に情報を書き込むことができる。代替例においては、該記憶媒体は、該プロセッサと一体化することができる。該プロセッサおよび記憶媒体は、ＡＳＩＣ内に備えることができる。
【００８９】
また、様々な実施形態は、例えば、特定用途向け集積回路（ＡＳＩＣ）またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）等のコンポーネントを用いて、主にハードウェアで実施することができる。また、本明細書に記載されている機能を実行することが可能なハードウェア状態マシンの実施も、関連技術の当業者には、はっきりと理解できる。また、様々な実施形態は、ハードウェアとソフトウェアの組合せを用いて実施することもできる。
【００９０】
開示した実施形態に関する上記の説明は、当業者が本発明を実行または利用できるように記載されている。これらの実施形態に対する様々な変形例は、当業者には容易に理解できるであろうし、また、本明細書に記載されている包括的な原理は、本発明の精神または範囲から逸脱することなく、他の実施形態に適用することができる。従って、本明細書に提示されている説明および図面が、本発明の現時点で好適な実施形態を示しており、また、そのため本発明によって広範に意図されている主題を代表していることを理解すべきである。さらに、本発明の範囲が、当業者に明らかになる可能性のある他の実施形態を完全に包含すること、およびそれに伴って、本発明の範囲が、添付の特許請求の範囲以外によって限定されないことが理解される。
【図面の簡単な説明】
【００９１】
【図１】潜在的なクローンクライアント装置を検出するセキュリティシステムの一実施形態における、サーバと通信する、実在するまたは許可されたクライアント装置と、いくつかのクローンクライアント装置とを有するネットワークを示すブロック図である。
【図２Ａ】従来のユーザログオンメッセージにおけるデータフィールドを示す図である。
【図２Ｂ】潜在的なクローンクライアント装置を検出するシステムの一実施形態におけるサーバで用いられる秘密識別子を含むユーザメッセージの一実施形態におけるデータフィールドを示す図である。
【図３】一実施形態による、秘密識別子をメッセージに挿入するように構成されたクライアント装置を示すブロック図である。
【図４】クローンクライアント装置を検出する方法の一実施形態を示すフロー図である。
【図５Ａ】クローン検出方法の一実施形態を示すフロー図である。
【図５Ｂ】クローン検出方法の一実施形態を示すフロー図である。
【図６Ａ】図５Ａおよび図５Ｂの方法における様々な段階で生成されるメッセージを示す。
【図６Ｂ】図５Ａおよび図５Ｂの方法における様々な段階で生成されるメッセージを示す。
【図６Ｃ】図５Ａおよび図５Ｂの方法における様々な段階で生成されるメッセージを示す。
【図６Ｄ】図５Ａおよび図５Ｂの方法における様々な段階で生成されるメッセージを示す。
【図６Ｅ】図５Ａおよび図５Ｂの方法における様々な段階で生成されるメッセージを示す。
【図６Ｆ】図５Ａおよび図５Ｂの方法における様々な段階で生成されるメッセージを示す。
【図７】クライアント装置とサーバの間のメッセージに秘密識別子を挿入する方法の実施形態を示すフロー図である。
【図８】秘密識別子を用いたサービス更新方法の実施形態を示すフロー図である。
【図９】クライアント装置からのリターンチャンネルを有していない一方向ネットワーク環境に用いられる図８の方法の変形例を示すフロー図である。
【図１】
2009524165.tif 000013
【図２Ａ】
2009524165.tif 000014
【図２Ｂ】
2009524165.tif 000015
【図３】
2009524165.tif 000016
【図４】
2009524165.tif 000017
【図５Ａ】
2009524165.tif 000018
【図５Ｂ】
2009524165.tif 000019
【図６Ａ】
2009524165.tif 000020
【図６Ｂ】
2009524165.tif 000021
【図６Ｃ】
2009524165.tif 000022
【図６Ｄ】
2009524165.tif 000023
【図６Ｅ】
2009524165.tif 000024
【図６Ｆ】
2009524165.tif 000025
【図７】
2009524165.tif 000026
【図８】
2009524165.tif 000027
【図９】
2009524165.tif 000028
【国際調査報告】
2009524165.tif 000029