説明

エミュレートされたクライアントを発見する高精度非サイクル測定を用いた装置及び方法

【課題】エミュレートされたクライアントを発見する方法。
【解決手段】検証器(20)が、暗号チャレンジCをクライアント(10)に送出し(206)、タイマー(22)を開始する(208)。クライアント(10)は、正しい鍵を求めるために決定論的鍵サーチ・アルゴリズムを用い(210)、必要な試行の数としてその結果を戻す(212)。検証器(20)は次いで、タイマ(22)を停止させ(214)、結果が正しいことを検証し(216)、応答がタイムリーであったことを検証する(218)。検証器(20)も提供する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にセキュア・ネットワークに関し、特に前述のネットワークにおける装置の認証に関する。
【背景技術】
【0002】
クライアントにサービスを提供するサーバを有することがネットワークにおいて非常に一般的である。通常はユーザにあるクライアントはサービスをサーバから要求する。このサーバは、通常、サービスにアクセスする権利をクライアントが有している旨の検証後にサービスをクライアントに提供する。前述のサービスの例には、ビデオオンデマンド、文書の印刷、及び施錠されたドアの開錠がある。
【0003】
残念ながら、前述のサービスへのアクセスを得ることを、そうする権利を有することなしに試行する人々(いわゆる「ハッカー」や「海賊」)が存在している。この目的で、前述の人々は、ネットワーク内のセキュリティ解決策をだしぬくために種々の手法を用いる。
【0004】
ハッカーの活動をくじこうとする解決策の1つに認証がある。すなわち、サーバは、真のクライアントであることを確実にするためにクライアントを認証する。認証は、有効な、又は署名された識別情報の提示、ユーザ名及び関連したパスワードの提示、又は対称暗号法又は非対称暗号法が関係するプロトコルを用いて行うことができる。
【0005】
別の解決策は、特定のネットワーク内に受信装置があることを確実することである。例えば、欧州特許第1650671号明細書には、適切な応答を算出する受信器に、ランダムなチャレンジを送信器が送出するシステムが開示されている。次いで、送信器は、応答を戻すよう受信器に指示し、応答の受信までの時間を算出する。しかし、前述の解決策は、受信器までの距離を送信器が算出することを可能にするだけであるが、受信器の特性(送信器が事情により通じていなくても十分エミュレートすることができる)に関しては全く確実性を与えない。
【0006】
更に別の解決策は、その秘密を回復するか又はその挙動を修正するためにリバースエンジニアリングすることが難しいそのクローズド・プラットフォームを用いることである。認証などの他の解決策とともに通常用いるこの解決策は例えば、ゲーム・ステーション(例えば、プレイステーションやXボックス)、有料TVシステムのセットトップ・ボックス、トリプルプレイ・モデム(例えば、フリーボックスやライブボックス)や携帯電話機に用いられている。これは当然、アーキテクチャの多様性にその強みが起因するということができるパソコン(PC)とはかなり異なる。
【0007】
サーバを模倣するのに十分であるようにクローズド・プラットフォームをエミュレートすることが難しい一方、これが不可能でないことが明らかになった。この課題に対する標準的な解決策は取り消しである。クライアントが破られたことをシステム権限が知った場合、そのクライアントは、取り消しリストに載せられる。認証中、サーバはまず、クライアントが取り消しリストに載っているかを検証し、肯定の場合、サービスを拒否する。
【0008】
取り消しが効率的であるには、システム権限は、装置が破られたことを知っている必要がある。このことには長い時間がかかり得る。この間、ハッカーは、サービスを享受し続けるか、又は、更に悪いことには、多くの人々がサービスを利用することができるように装置をエミュレートする方法を他の人々に知らせることができる。
【0009】
この課題に対する解決策は、例えば、実行時間を測定することによってクライアントのフィンガープリンティングを行うことである。前述の種類のフィンガープリンティングは、エミュレートされたクライアントが、本物のプラットフォーム上のクライアントよりも遅いことを前提とする。しかし、プロセッサがなお一層高速化するにつれ、このことは、依存する対象の前提ではない(特に特定の年齢のプラットフォームの場合)。
【発明の開示】
【発明が解決しようとする課題】
【0010】
よって、現行のセキュリティ解決策を改良し、エミュレートされた装置の検出をそれによってより容易にする解決策に対する必要性が存在している。
【課題を解決するための手段】
【0011】
本発明は前述の解決策を提供する。
【0012】
第1の局面では、本発明は、クライアントがエミュレートされたかを発見する方法に関する。解くために決定論的な数の反復を必要とするチャレンジがクライアントに送出される。上記数の反復を備えた応答を受信すると、応答における反復の数が反復の期待数に一致した場合、クライアントはエミュレートされていないと判定される。
【0013】
好ましい実施例では、チャレンジの送出と応答の受信との間の時間が測定され、応答がタイムリーであることをやはり前提とすれば、クライアントがエミュレートされていないことが判定される。
【0014】
好ましい実施例では、チャレンジは、クライアントの識別情報又はクライアントのユーザの識別情報に依存している。
【0015】
別の好ましい実施例では、チャレンジは暗号チャレンジであり、効果的には鍵サーチである。暗号チャレンジが、値の非暗号化バージョンと、値の暗号化バージョンと、鍵サーチにおいて第1の鍵が用いるための基底とを備えることは特に有利である。
【0016】
第2の局面では、本発明は、クライアントがエミュレートされたかを発見する検証器に関する。検証器は、クライアントにチャレンジを送出する通信インタフェースを備える。チャレンジは、解くために決定論的な数の反復を必要とする。インタフェースは、上記反復数を備えた応答をクライアントからの受信するためでもある。検証器は、チャレンジを選択し、応答内の反復数が、反復の期待数に一致する場合に、クライアントがエミュレートされていないことを判定するプロセッサを更に備える。
【0017】
好ましい実施例では、検証器は、チャレンジの送出と応答の受信との間の時間を測定するタイマも備え、プロセッサは、クライアントがエミュレートされていないことを判定するために、応答がタイムリーであったことを検証するようにも適合させる。
【0018】
好ましい実施例では、プロセッサは、クライアントの識別情報又はクライアントのユーザの識別情報にチャレンジを依存させるよう適合させる。
【0019】
更に別の好ましい実施例では、値の非暗号化バージョン、その値の暗号化バージョン、及び鍵サーチにおいて第1の鍵が用いるための基底を備える暗号鍵サーチ・チャレンジであるチャレンジを選択するよう適合させる。
【発明を実施するための最良の形態】
【0020】
本発明の好ましい実施例を、例として、添付図面を参照して次に説明する。
【実施例】
【0021】
図1は、互いに相互作用するよう適合させたクライアント10及び検証器20を示す。クライアント10は、プロセッサ(CPU)11と、プロセッサ11によって実行されるアプリケーションを記憶するよう適合させたメモリ13と、装置、特に検証器20とネットワーク1を介して通信するよう適合させた通信インタフェース(I/O)14とを備える。検証器20は、プロセッサ(CPU)21と、プロセッサ21専用のタイマ22と、プロセッサ21によって用いるメモリ23と、装置、特にクライアント10とネットワーク1を介して通信するよう適合させた通信インタフェース(I/O)24とを備える。
【0022】
図2は、本発明の好ましい実施例によって、クライアントが、特定のプラットフォーム上で実行する(すなわち、エミュレートされていない)ことを検証する方法の好ましい実施例を示す。クライアント10が特定のプラットフォーム上で実行することを検証器20が検証したい場合、クライアント10との通信セッションを開設する(202)。検証器は次いで、クライアント10の暗号チャレンジCを好ましくはランダムに選択する(204)。暗号チャレンジCは、暗号関数を用いて(好ましくは、鍵長が128ビットの高度暗号化標準(AES)アルゴリズムに基づいて)計算される。好ましい実施例では、暗号チャレンジCは、(clear,start,{clear}start+tries)として表すことができる。ここで、
clearは乱数、
startは、暗号チャレンジCの始点として用いられる乱数、
triesは、クライアント10によって行う対象の試行の数である。すなわち、start+triesが、暗号チャレンジCを破るための終点として用いられる。
【0023】
{clear}start+triesは、鍵数start+triesを備えたclearの暗号化の結果である。これは、暗号チャレンジCの暗号化メッセージである。
【0024】
検証器20は、選ばれた暗号チャレンジCをクライアント10に送出し(206)、タイマ22を開始する(208)。暗号チャレンジCを受信すると、クライアント10はこれをそのメモリ13に記憶し、所定のアルゴリズムに従って、正しい鍵が求められるまで鍵を順次試行して、決定論的鍵サーチを行う(210)。好ましい鍵サーチ・アルゴリズムでは、
1. 試行カウンタi=1を初期化する
2. {clear}start+iを計算する
3. 結果が{clear}start+triesに等しいか否かを確認する
4a. 肯定の場合、暗号チャレンジCが破られた結果としてiを検証器20に送出する(212)
4b. 否定の場合、iを増やし、工程2に進む。
【0025】
多くの変形(例えば、iを修正するための単純な増加よりも複雑な関数を用いることなど)が可能である。別の実施例において、工程4aでは、クライアント10は更に、検証器20に対するメッセージにおいて、正しい鍵を含める。
【0026】
別の好ましい実施例では、暗号チャレンジCは、(clear,Kstart,{clear}K=H(tries))として表すことができる。ここで、
clearは、クライアント10又はユーザに応じた数又はデータ(乱数との排他的論理和(XOR)がとられたクライアント識別番号、又はユーザ識別番号若しくはユーザ加入番号など)である。
【0027】
Kstartは、鍵サーチの始点として用いるための鍵である。
【0028】
{clear}K=H(tries)は、試行の(すなわち、正しい鍵を求めるのに必要な反復の数の)ハッシュ値に対応する鍵によって暗号化されたclearである。乱数との排他的論理和(XOR)がとられた試行の数のハッシュ値に対応する鍵Kを用いることも可能である。
【0029】
別の好ましい実施例の鍵サーチ・アルゴリズムでは、
1. 試行カウンタi=1を初期化する
2. Ki=Kstart+iを計算する
3. {clear}Kiを計算する
4. 結果が{clear}H(tries)に等しいか否かを確認する
5a. 肯定の場合、暗号チャレンジCが破られた結果としてKi及び試行数iを検証器20に送出する
5b. 否定の場合、iを増やし、工程2に進む。
【0030】
更に別の好ましい実施例では、暗号チャレンジCは、(clear,Kstart,{clear}K=Htries(Kstart))として表すことができる。ここで、
clearは、クライアント10又はユーザに応じた数又はデータ(乱数との排他的論理和(XOR)がとられたクライアント識別番号、又はユーザ識別番号若しくはユーザ加入番号など)である。
【0031】
Kstartは、鍵サーチの始点として用いるための鍵である。
【0032】
{clear}K=Htries(Kstart)は、Kstartをtries回ハッシングすることによって算出される値に対応する鍵によって暗号化されたclearである。
【0033】
別の好ましい実施例の鍵サーチ・アルゴリズムは、
1. i=1及びK0=Kstartに初期化する
2. Ki=H(Ki-1)を計算する
3. {clear}Kiを計算する
4. 結果が{clear}Htries(Kstart)に等しいか否かを確認する
5a. 肯定の場合、暗号チャレンジCが破られた結果としてKi及び試行数iを検証器20に送出する
5b 否定の場合、iを増やし、工程2に進む。
【0034】
更に別の実施例では、暗号チャレンジは、クライアント10がハッシュ関数を逆にすることを必要とする。
【0035】
クライアント10から結果212を受信すると、検証器20はそのタイマ22を停止させる(214)。すなわち、検証器のタイマは、チャレンジの送出と応答の受信との間の時間を測定する。検証器20は次いで、結果(すなわち、start+i)が期待値(すなわち、start+tries)に等しいこと(すなわち、iがtriesに等しいこと)を確認する(216)。
【0036】
確認216が首尾良く行われなかった場合、検証器20は、クライアント10がエミュレートされていることが分かる。しかし、確認216が首尾良く行われた場合、検証器20は、そのタイマ22から読み出された値が、選ばれたネットワーク送信遅延を期待時間に加えたものを超えないことの確認(218)に進む。すなわち、検証器20は、応答212がタイムリーであることを確認する。それによって、適切な応答をハッカーが破るのに利用可能な時間が削減される。この第2の確認218が首尾良く行われた場合、クライアント10が期待プラットフォーム上で実行することを検証器20は結論付け得る。
【0037】
別の実施例では、検証器20は、期待プラットフォーム上で実行することを結論付ける前に、連続したいくつかのチャレンジにクライアント10が正しく応答することを必要とし得る。
【0038】
好ましい実施例では、クライアント10又はユーザにリンクした識別子やその他のデータ(例えば、排他的論理和(XOR)、加算、ハッシング又は暗号化によって乱数と組み合わせられたクライアント識別番号、又はユーザ識別番号若しくはユーザ加入番号など)である。これによって、ハッカーが、例えば2つのクライアント(すなわち、盗んだIDによってエミュレートされた一クライアント、及びエミュレートされていない一クライアント)を用いて、それらの一方に対する第1の検証工程及び他方に対する第2の工程を通過させることがより難しくなる。
【0039】
暗号チャレンジを識別子に依存させるために、サーバは好ましくは、start+triesの代わりにstart+tries+(識別子mod232)を用いて前述のチャレンジを作成する。サーバは次いで、結果を算出するが、start+triesのみをクライアントに送出する。それは、その識別子mod232によってこれを完了する。よって、チャレンジが、エミュレートされていないプラットフォームに対して、正しい識別子を用いて行われたことが検証される。
【0040】
本発明は、暗号チャレンジの使用に限定されないが、クライアントが所定の手法によって算出を行い、必要な反復数を戻すことを必要とする他の種類のチャレンジを用いることもできる。例えば、特定の開始値から始まる、数学的関数の特定の精度までの反復的算出。
【0041】
本発明によって、ハッカーにとって一層難しくなるように適合させることができる、エミュレートされたクライアントの費用効果の高い検出が可能になる。
【0042】
本発明は例として説明しているに過ぎず、詳細の修正は、本発明の範囲から逸脱することなく行うことが可能である。
本明細書、並びに(該当する場合)特許請求の範囲、及び添付図面に記載された各構成は、別個に備えても、何れの適切な組み合わせで備えてもよい。ハードウェアで実現されるものとして記載した構成は、ソフトウェアによっても実現することができ、逆も同様である。接続は適宜、無線接続又は有線接続(必ずしも直接又は専用でなくてよい)として実現することができる。
【0043】
特許請求の範囲記載の参照符号は、例証の目的に過ぎず、特許請求の範囲記載の範囲を限定する効果を何ら有しないものとする。
【図面の簡単な説明】
【0044】
【図1】本発明の好ましい実施例によるクライアント及び検証器を示す図である。
【図2】本発明の好ましい実施例による、特定のプラットフォーム上でクライアントが実行することを検証する方法を示す図である。
【符号の説明】
【0045】
1 ネットワーク
10 クライアント
11 CPU
13 メモリ
14 I/O
20 検証器
21 CPU
22 タイマ
23 メモリ
24 I/O
202 通信セッション
206 チャレンジ
212 結果

【特許請求の範囲】
【請求項1】
クライアント(10)がエミュレートされているかを発見する方法であって、
チャレンジを前記クライアント(10)に送出する工程であって、解くために決定論的な数の反復を前記チャレンジが必要とする工程と、
前記数の反復を備えた応答(212)を受信すると、前記応答における前記反復の数が反復の期待数に一致した場合、前記クライアント(10)はエミュレートされていないと判定する工程(216、218)とを備える方法。
【請求項2】
請求項1記載の方法であって、前記チャレンジの送出と応答の受信との間の時間を測定する工程(208、214)を更に備えており、前記判定する工程が、前記応答がタイムリーであったことを検証する工程を更に備える方法。
【請求項3】
請求項1記載の方法であって、前記チャレンジは、前記クライアント(10)の識別情報又は前記クライアント(10)のユーザの識別情報に依存している方法。
【請求項4】
請求項1記載の方法であって、前記チャレンジが暗号チャレンジである方法。
【請求項5】
請求項4記載の方法であって、前記暗号チャレンジが鍵サーチである方法。
【請求項6】
請求項5記載の方法であって、前記暗号チャレンジが、値の非暗号化バージョンと、前記値の暗号化バージョンと、前記鍵サーチにおいて第1の鍵が用いるための基底とを備える方法。
【請求項7】
クライアント(10)がエミュレートされているかを発見する検証器(20)であって、
チャレンジを前記クライアント(10)に送出し、前記クライアントから応答(212)を受信する通信インタフェース(24)であって、解くために決定論的な数の反復を前記チャレンジが必要とし、前記応答(212)は前記反復の数を備えている通信インタフェースと、
前記チャレンジを選択し、
前記応答内の反復の数が反復の期待数に一致する場合に、前記クライアント(10)がエミュレートされていないことを判定する(216)、
プロセッサとを備える検証器。
【請求項8】
請求項7記載の検証器であって、前記チャレンジの送出と前記応答の受信との間の時間を測定するタイマ(22)を更に備えており、前記プロセッサを、前記応答もタイムリーである場合に前記クライアント(10)がエミュレートされていないことを判定するよう適合させた検証器。
【請求項9】
請求項7記載の検証器であって、前記プロセッサを、前記クライアント(10)の識別情報又は前記クライアント(10)のユーザの識別情報に前記チャレンジを依存させるよう適合させた検証器。
【請求項10】
請求項7記載の検証器であって、前記プロセッサを、値の非暗号化バージョン、前記値の暗号化バージョン、及び前記鍵サーチにおいて第1の鍵が用いるための基底を備える暗号鍵サーチ・チャレンジであるチャレンジを選択するよう適合させた検証器。

【図1】
image rotate

【図2】
image rotate


【公開番号】特開2007−336558(P2007−336558A)
【公開日】平成19年12月27日(2007.12.27)
【国際特許分類】
【出願番号】特願2007−157637(P2007−157637)
【出願日】平成19年6月14日(2007.6.14)
【出願人】(501263810)トムソン ライセンシング (2,848)
【氏名又は名称原語表記】Thomson Licensing 
【住所又は居所原語表記】46 Quai A. Le Gallo, F−92100 Boulogne−Billancourt, France
【Fターム(参考)】