説明

スマートカードと通信する装置においてメッセージのハッシュを計算する方法

【課題】スマートカードにおいてメッセージのハッシュを計算する方法を提供する。
【解決手段】本発明は、スマートカードと通信する装置においてメッセージのハッシュを計算する方法であり、装置及びスマートカードは、同じハッシュ関数を記憶し、メッセージは、スマートカードによってのみ既知の秘密データと他のデータとを有するデータブロックを含み、本発明は、秘密データのハッシュの計算がスマートカードで行われ、他のデータの全て又は一部のハッシュの計算が装置で行われ、かつ、中間結果が、データのハッシュのハッシュ計算がスマートカード又は装置によって行われるべきか否かにより装置からカード又はその逆に送信されることを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、スマートカードにおいてメッセージのハッシュを計算する方法に関する。以下の本文においては、スマートカードは、秘密データを記憶することができる全ての耐改ざん(耐タンパ性の)装置を指すものとする。
本発明を示すために使用される例は、携帯電話に結合されたWIM(WAPアイデンティティモジュール)の例である。このスマートカードはまた、SIM(加入者アイデンティティモジュール)スマートカード、又は秘密データを記憶してハッシュ機能を実行することができる他の全てのモジュールとすることができるであろう。
【背景技術】
【0002】
「ワイヤレス・アプリケーション・プロトコル(WAP)」は、無線通信ネットワーク上で作動するアプリケーションを開発するための業界仕様を規定するものである。WAPフォーラムの意図は、サービスアプリケーションによって使用される一組の仕様を定めることである。無線市場は、非常に急成長を遂げており、新しい顧客及びサービスに達している。オペレータ及び製造業者が高度のサービスにおける課題に対処することができるように、差別化及び高速/柔軟サービス生成WAPフォーラムは、トランスポート、セキュリティ、トランザクション、セッション、及びアプリケーション層における一組のプロトコルを定める。
【0003】
WAPアーキテクチャにおけるセキュリティ層プロトコルは、「無線トランスポート層セキュリティ(WTLS)」又は標準「トランスポート層セキュリティ(TLS)」インターネットプロトコルとすることができる。WTLSは、TLSと類似の機能性をもたらすが、より低い帯域幅の通信チャンネルにより適応する。TLS層及びWTLS層は、トランスポートプロトコル層の上方で作動する。それらは、保護されたトランスポートサービスインタフェースを有するWAPの上位レベル層をもたらし、保護された接続を管理する(例えば、生成及び終了する)ためのインタフェースももたらす。WTLS又はTLS層の主たる目的は、2つの通信アプリケーション間のプライバシー、データ保全性、及び認証を提供することである。
【0004】
最適セキュリティのために、セキュリティ機能性のいくつかの部分は、アタッカーが機密データを検索することができないように耐改ざん装置によって実行される必要がある。そのようなデータは、特に、永久秘密鍵であり、これは、クライアント認証と共にWTLS又はTLSハンドシェークにおいて使用され、アプリケーションレベルの電子署名を行う(アプリケーションレベルのトランザクションを確認するなど)ためのものである。
【0005】
特に、メッセージが、WIMモジュールに結合したモバイル内でハッシュされるべきである時に、その全てのブロックは、ハッシュされるためにモバイルからWIMに転送される。その後、WIMは、結果を携帯電話に送る。WIM実施の例は、スマートカードCARである。電話においては、それは、「加入者アイデンティティモジュールSIM」カード又は外部スマートカードとすることができる。問題は、WIMにおいては、リソースが非常に限られているという点であり、このために、計算には多くの時間が掛かる。
【0006】
例えば、WTLS及びTLSにおいては、モバイル機器は、サーバに「完了」メッセージと呼ばれるメッセージを送り、これは、鍵交換及び認証処理がモバイル及びサーバ間で成功であったことを確認するために、ハンドシェークの終わりに常にサーバに送られるものである。モバイル機器は、「完了」メッセージで送るべきデータ、及び、サーバから受信すべきデータを計算するためにスマートカードを使用する。そうするために、モバイルMEは、「クライアント完了チェック」及び「サーバ完了チェック」指令をスマートカードCARに出す。「擬似ランダム関数(PRF)」を用いて、スマートカードは、セッションマスター秘密及びモバイルから受信したシード値に基づいて要求されたバイト数を計算する。その後、カードは、「完了」メッセージで、モバイルによって使用されるバイトを戻す。「クライアント完了チェック」データを計算するために、モバイルは、以下の入力データパラメータを有する「WIM−PHash」プリミティブと呼ばれるプリミティブを使用する。
“client finished”+Hash(handshake_messages)
【0007】
この「Hash(handshake_messages)」は、「完了」メッセージを含まずにそれまでに交換された全ての以前のハンドシェークメッセージの連結の「SHA−1」及び/又は「MD5」ハッシュ(プロトコルに依存する)として定義される。その後、プリミティブは、必要とされるデータブロックをモバイルに戻す。
上述の指令及びプリミティブに関する詳細については、規格を参照することができる。
同じように、サーバ完了チェックを計算するために、モバイルMEは、以下の入力データパラメータを有する「WIM−PHash」プリミティブを使用する。
“server finished”+Hash(handshake_messages)
その後、プリミティブは、必要とされるデータブロックをモバイルに戻す。
【0008】
SSLにおいては、「完了」メッセージに対してWIMに送られるパラメータは異なる。SSLにおいて完了チェックを行う時は、以下に対してハッシュを行うことが必要である。
‘handshake_messages+Sender+master_secret+pad1’
WTLS及びTLSと比較して、Hashは、「handshake_messages」に加えて、セッション「master secret」に亘っても計算すべきであることが分る。これは、マスター秘密の値がスマートカードCARに安全に記憶されており、外部に決して露出されないので、モバイルMEがそれを知らないために問題である。このために、’handshake_messages+Sender+master_secret+pad1’というデータをそれがハッシュされるようにWIMに送る必要がある。それにも関わらず、リソースは、WIMでは非常に限られており、その結果、スマートカードでの計算には多くの時間が掛かる。
【発明の概要】
【課題を解決するための手段】
【0009】
本発明の目的は、WIMにおけるリソースの消費を低減する効率的な方法でメッセージをハッシュすることである。
本発明は、スマートカードと通信する装置においてメッセージのハッシュを計算する方法であり、装置及びスマートカードは、同じハッシュ関数を記憶し、メッセージは、スマートカードによってのみ既知の秘密データと他のデータとを有するデータブロックを含む。本発明によれば、秘密データのハッシュの計算は、スマートカードで行われ、他のデータの全て又は一部のハッシュの計算は、装置で行われる。
【0010】
中間結果は、データのハッシュのハッシュ計算がスマートカード又は装置によって行われるべきか否かにより、装置からカード又はその逆に送信される。
このようにして、本発明は、装置、特に携帯電話がより強力なプロセッサを有するために通常は計算をより速く行うことができるので、スマートカードでハッシュ関数を計算するのに消費する時間を回避する。
一例として与えられ、添付図面を参照する以下の説明を読むと、本発明を理解することがより容易になるであろう。
【図面の簡単な説明】
【0011】
【図1】本発明を適用することができるデータ処理システムSの例を示す図である。
【図2】秘密データを含む異なる形式のメッセージの1つを示す図である。
【図3】秘密データを含む異なる形式のメッセージの1つを示す図である。
【図4】秘密データを含む異なる形式のメッセージの1つを示す図である。
【発明を実施するための形態】
【0012】
説明を簡素化するために、図面に示す同じ要素は、同じ参照符号を有する。
図1は、システムSを示す。この例においては、本システムは、ネットワークRESを通じてサーバSERVと通信する携帯電話MEに結合されたスマートカードCARを含む。
一般的に、スマートカードは、ユーザの識別及び認証に必要とされる情報を記憶かつ処理するために使用される。スマートカードCARは、クライアント機密データ、特に、鍵及びセッションマスター秘密を記憶する。
【0013】
スマートカードは、WIMモジュールとすることができる。WIM(WAPアイデンティティモジュール)は、WAPフォーラムで標準化されたセキュリティトークンである。モジュールWIMに関する詳細については、この規格を参照することができる。上述のように、WAPフォーラムWIM仕様は、TLS及びWTLSと共にかつアプリケーションレベルサービスにおけるWIMの使い方を説明する。
【0014】
一般的には、上述のように、メッセージが鍵及びマスター秘密を含み、これをWIMモジュールに結合されたモバイルでハッシュすべきである時に、ハッシュ段階を実行するために全てのブロックがモバイルからWIMに転送される。その後、WIMは、結果をモバイルに送る。鍵及びマスター秘密が関わる全ての演算は、内部的にモジュールWIMで行われる。
一般的に、ハッシュ関数は、固定長のデータ入力に対して作用し、結果は、次の反復に送られる。ハッシュ関数により、データの第1のブロックに関するハッシュが計算され(「SHA−1」については64バイト)、その後、結果を第2のブロックに関するハッシュの計算に送り、全ての入力データが消費されるまでそのように続行される。
【0015】
この例においては、以下の説明でメッセージMFと呼ばれるデータ入力をハッシュしたい場合を考え、データ入力は以下を含む。
“PD+SD”
ただし、「+」演算子は、連結(concatenation)を意味する。
このデータメッセージMFは、以下を有するデータブロック含む。
−「master secret」データとなり得る秘密データSD、及び
−「handshake_messages」となり得る他のデータPD。
【0016】
本発明によれば、モバイルMEは、公開されている他のデータPDに亘ってハッシュの計算を始めることができる。この計算の結果は、中間結果Rを構成する。モバイルMEは、中間結果R及び残りの秘密データSDをスマートカードCARに送る。スマートカードは、中間結果R、残りの秘密データSD、及びスマートカードCARに内部的に保持された付加的なデータ(例えば、「master_secret」)を使用してハッシュ計算を内部的に続行する。計算が終了した状態で、スマートカードは、対応する結果をモバイルMEに送る。
【0017】
従って、一般的に、本発明によれば、秘密データSDの次に他のデータPDがメッセージMF(図4を参照)にある場合、スマートカードは、秘密データSDを含む全てのブロックのハッシュを計算し始め、その後、対応する中間結果Rを中間結果R及び残りのデータPDを使用してハッシュ計算を続行するMEに送る。例えば、秘密データを含むデータSDCは、スマートカードでハッシュされる。反対に、データPDの次に他のデータ(SD)(図3を参照)がある場合、モバイルMEは、データPDのハッシュを計算し始め、その後、対応する中間結果Rと最後のハッシュブロックの残りの部分RPとを、中間結果Rと最後のハッシュブロックと残りのデータSDとを使用して内部的にハッシュ計算を続けるスマートカードに送る。
有利な態様では、ブロックが秘密データSDを含む部分と他のデータPDを含む別の部分とを有する場合、スマートカードは、このブロックのハッシュを計算する。このようにして、モバイルMEとスマートカードCARの間のデータの転送が減少する。
【0018】
本発明はまた、他のプリミティブに対してモバイルMEとスマートカードCARの間で交換される指令の同じ慣例を使用するために、中間結果Rがスマートカードに送られる方法を公式化する。この例においては、モバイルMEは、「WIM MSE−Set」指令と共に、ハッシュされた中間結果R及び必要に応じて他のデータを送ることになる。これらのパラメータは、スマートカードCARにおいて新たに定義された「SSLセキュリティ環境」に置かれることになる。この例においては、SSLセキュリティ環境は、「MSE−set」指令を通じてこれらのパラメータの受理を実施することになり、この指令は、「完了」メッセージを計算するための「PSO」指令を呼び出す前に呼び出されるべきである。
この例においては、装置は、「移送層セキュリティ」プロトコルSSL(保護ソケット層)を実施し、スマートカードは、「WAPアイデンティティモジュール(WIM)」である。より具体的には、メッセージMFは、SSLプロトコルにおいては「完了」と呼ばれる。秘密データSDは、SSLセッションマスター秘密である。
【0019】
本発明はまた、通信装置MEに関し、この装置は、
−他のデータPDの全て又は一部が通信装置でハッシュされるハッシュ段階と、
−通信装置がスマートカードに全ての秘密データSDのハッシュを実行するように要求する要求段階と、
を実行するためのプログラムを含むことを特徴とする。
本発明はまた、スマートカードCARに関し、スマートカードCARは、通信装置MEによって要求された時に秘密データSDをハッシュする段階を実行するためのプログラムを含むことを特徴とする。
【0020】
以上のソリューションの主たる利点は速度である。WIMにファイルのデータ全体を書込み、その後、WIMにそれを読み込ませてハッシュさせると、より時間が掛かることになる。速度は、ハンドシェークにおいて非常に重要であり、それを最適化することは非常に重要である。保護されたセッションを確立するために掛かる時間が数秒を超える場合、それは、ユーザにとってあまり便利ではない。他の利点は、特定のプリミティブに対して大きなデータブロックをWIMに記憶する必要性を回避することである。本発明は、効率的な方法で、かつWIMに記憶するための「handshake_messages」データブロック全体を送る必要もなく、SSLに対してWIMモジュールによって「完了」メッセージを計算するためのソリューションを形成する。例えば、WTLSにおいては、安全なセッションを保護することは、比較的長期に亘り、数日になり得る。本発明は、計算上及び大規模なデータ転送のために比較的重い頻繁な完全ハンドシェークを回避することになる。
勿論、本発明は、SSLに限定されるものではなく、他の技術分野でも使用することができる。
【符号の説明】
【0021】
S システム
RES ネットワーク
ME 携帯電話
SERV サーバ
CAR スマートカード

【特許請求の範囲】
【請求項1】
スマートカード(CAR)との間で通信を行う装置(ME)においてメッセージ(MF)のハッシュを計算する方法であって、前記装置と前記スマートカードは同じハッシュ関数を記憶しており、前記メッセージの残りのデータは公開されるデータ(PD)であり、
前記メッセージのすべての秘密データ(SD)は前記スマートカードによってのみ知られており、前記メッセージのすべての秘密データ(SD)についてのハッシュの計算は前記スマートカードにおいて行い、そして、前記メッセージの残りの公開されるデータ(PD)の全部又は一部についてのハッシュの計算は前記装置において行うことを特徴とする方法。
【請求項2】
前記メッセージ(MF)において前記秘密データ(SD)の次に前記残りの公開されるデータ(PD)があるときは、前記スマートカードは、当該秘密データ(SD)を含む全てのブロックのハッシュの計算を行い、その後、対応する中間結果(R)を前記装置(ME)へ送り、前記装置(ME)は該中間結果(R)及び残りの公開されるデータ(PD)を使用してハッシュ計算を続行することを特徴とする請求項1に記載の方法。
【請求項3】
前記メッセージ(MF)において前記残りの公開されるデータ(PD)の次に前記秘密データ(SD)があるときは、前記装置(ME)は、公開されるデータ(PD)のハッシュの計算を行い、その後、対応する中間結果(R)及び最後のハッシュブロックの残りの部分(RP)を前記スマートカードへ送り、前記スマートカードは該中間結果(R)と最後のハッシュブロックと残りの秘密データ(SD)とを使用して内部的にハッシュ計算の実行を続行することを特徴とする請求項1に記載の方法。
【請求項4】
メッセージ(MF)のハッシュを計算するために、スマートカード(CAR)と接続できる通信装置(ME)であって、前記通信装置及びスマートカードは同じハッシュ関数を記憶し、前記メッセージ(MF)は複数のデータブロックに分割されるとともに秘密データ(SD)及び残りの公開されるデータ(PD)を含んでおり、
前記通信装置は、当該通信装置内の処理手段で実行されるプログラムであって、
−メッセージ(MF)の前記残りの公開されるデータ(PD)の全て又は一部を前記通信装置でハッシュするハッシュ段階と、
−前記通信装置が前記スマートカードにメッセージ(MF)の全ての秘密データ(SD)のハッシュを実行するように要求する要求段階と、
を実行するプログラムを含むことを特徴とする通信装置。
【請求項5】
メッセージ(MF)のハッシュを計算するために、通信装置(ME)と接続されるスマートカード(CAR)であって、
前記通信装置及びスマートカードは同じハッシュ関数を記憶し、前記メッセージ(MF)は複数のデータブロックに分割されるとともに、複数の秘密データ(SD)及び残りの公開されるデータ(PD)を含んでおり、
前記メッセージの全ての秘密データ(SD)はスマートカードによってのみ知られており、
前記スマートカードは、前記通信装置の要求があったときにスマートカード上で実行されるプログラムであって、メッセージ(MF)の全ての秘密データ(SD)をハッシュする段階を実行するプログラムを含んでいることを特徴とするスマートカード(CAR)。
【請求項6】
請求項4記載の通信装置(ME)及び請求項5記載のスマートカード(CAR)を含んでいることを特徴とするシステム(S)。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2011−147181(P2011−147181A)
【公開日】平成23年7月28日(2011.7.28)
【国際特許分類】
【出願番号】特願2011−77373(P2011−77373)
【出願日】平成23年3月31日(2011.3.31)
【分割の表示】特願2004−533713(P2004−533713)の分割
【原出願日】平成15年8月28日(2003.8.28)
【出願人】(504239847)ゲマルト ソシエテ アノニム (17)
【Fターム(参考)】