(57)【特許請求の範囲】
【請求項１】
証明書失効リスト(CRL)の管理方法であって、
少なくとも1つの失効証明識別子(SNi)を備えるCRL(33、67)を第一デバイス(31、61)にて受信するステップと、
第一デバイス(31)で、CRLの中に含まれCRLを発行した信頼できる第三の機関によって作成される証明書失効リスト(CRL)の署名(SCRL)を用いて受信したCRL(33、67)の完全性を検査するステップと、
第一デバイス(31、61)にて、秘密データ(KCRL)を用いて、CRLのうちの少なくとも1つの失効証明識別子を備えたCRL(371,…, 37p)のエントリーに関連する完全性フィールド(MACi)を計算するステップと、
エントリーとそれに関連する計算された完全性フィールドとを第一デバイスとは異なる第二デバイス(32, 62)に送信するステップと、
送信されたエントリーおよび関連する完全性フィールドを第二デバイスに格納するステップとを備えることを特徴とする証明書失効リスト(CRL)の管理方法。
【請求項２】
証明書失効リスト(CRL)のエントリーへの分割が第一デバイス(31、61)の中で実行されることを特徴とする請求項１に記載の証明書失効リストの管理方法。
【請求項３】
完全性フィールドはメッセージ認証コード(MACi)であって、前記方法は、
受信したCRL(33、67)と関連する証明書失効リスト(CRL)の鍵(KCRL)を秘密データとして選択するステップと、
選択されたCRL鍵(KCRL)を第一デバイス(31、61)に格納するステップとを備えることを特徴とする請求項１に記載の証明書失効リストの管理方法。
【請求項４】
メッセージ認証コード(MACi)を計算するためにハッシュ関数を中間データに適用するステップを備え、中間データは、少なくとも1つの失効証明識別子(SNi)を含むエントリーとCRLの鍵(KCRL)とから導き出されることを特徴とする請求項３に記載の証明書失効リストの管理方法。
【請求項５】
第二デバイス(32、62)に、少なくとも1つの失効証明識別子と少なくとも1つの関連する完全性フィールド(MACi)とCRL(33)のCRL識別子(NCRL) とを備える少なくとも1つのセキュアエントリーセット(SESi)のリストの中で編成される複数の失効証明識別子(SNi)を格納するステップと、
各セキュアエントリーセットのために、第二デバイスに格納されているセキュアエントリーセットのリストの中でのセキュアエントリーセットの順番を決定することができるコンテンツ(i)を有するリストオーダーフィールド(63i)を作成するステップとを備えることを特徴とする請求項１乃至４の何れかに記載の証明書失効リストの管理方法。
【請求項６】
CRL(33)のCRL識別子(NCRL)を第一デバイス(31)に格納するステップを備えることを特徴とする請求項５に記載の証明書失効リストの管理方法。
【請求項７】
受信したCRLの完全性を検査するステップは、
受信したCRL(33、67)のハッシュ値を計算するステップと、
計算されたハッシュ値と信頼できる第三の機関の公開鍵とCRL(33、67)の完全性を評価する署名(SCRL)とに検証機能を適用するステップとを備えることを特徴とする請求項１に記載の証明書失効リストの管理方法。
【請求項８】
第一デバイス(31、61)にて、CRL(33、67)の少なくとも1つの失効証明識別子(SNi)を備える小さなブロックを受信するステップと、
少なくとも1つの失効証明識別子を含む少なくとも1つのエントリーと関連する完全性フィールドとを第二デバイス(32、62)に送信するステップと、
さらなるCRLの小さなブロックを受信する前に、受信したCRLの小さなブロックを消去するステップとを備えることを特徴とする請求項１乃至７の何れかに記載の証明書失効リストの管理方法。
【請求項９】
第一デバイス(31、61)はスマートカードであり、
CRL識別子(NCRL)はCRL(33、67)のCRLシリアルナンバーであり、
少なくとも1つの失効証明識別子(SNi)は失効証明書のシリアルナンバーであることを特徴とする請求項５乃至８の何れかに記載の証明書失効リストの管理方法。
【請求項１０】
証明書の妥当性を検査するステップを備え、該証明書の妥当性を検査するステップは、
証明書の証明識別子(SN0)を第一デバイス(31、61)から第二デバイス(32、62)に送信するステップと、
送信された証明識別子(SN0)の値と一致する値を有する適切な失効証明識別子をリストが備えているかどうかを評価するため、第二デバイスに格納されているエントリーのリストを第二デバイスにて調査するステップと、
調査の結果に応じて、少なくとも1つの失効証明識別子と関連する完全性フィールドとを第一デバイスに送信するステップと、
第一デバイスにて、送信された関連する完全性フィールドを用いて、少なくとも1つの送信された失効証明識別子の完全性を検証するステップと、
第一デバイスにて、少なくとも送信された失効証明識別子を用いて、証明書の妥当性を評価するステップとを備えることを特徴とする請求項１乃至９の何れかに記載の証明書失効リストの管理方法。
【請求項１１】
送信された失効証明識別子の完全性を検証するためにCRL鍵を使用するステップ(515，519)を備えることを特徴とする請求項３に従属する請求項１０に記載の証明書失効リストの管理方法。
【請求項１２】
第二デバイスに格納されたリストの各セキュアエントリーセットは単一の失効証明識別子を備え、前記方法は、
適切な失効証明識別子を含む適切なセキュアエントリーセット(SESi)のうちの少なくとも一部を第一デバイスに送信するステップ(58)を更に備えることを特徴とする請求項５に従属する請求項１０に記載の証明書失効リストの管理方法。
【請求項１３】
送信されたセキュアエントリーセット(SESi0)に含まれ、第二デバイスに格納されたリストが決められたCRLと一致していることを保証することができる送信された証明書失効リスト(CRL)の識別子(NCRL(i0))を、決められたCRLの識別子(NCRL)と第一デバイスで比較するステップ(514)と、
第一デバイスにて、適切な失効証明識別子が証明識別子と事実上等しいことを検査するステップ(516)とを備えることを特徴とする請求項１２に記載の証明書失効リストの管理方法。
【請求項１４】
第二デバイスに格納されたリストの各セキュアエントリーセットは単一の失効証明識別子を備え、
前記方法は、第一セキュアエントリーセット(SESi-1)のうちの少なくとも一部と第二セキュアエントリーセット(SESi)のうちの少なくとも一部とを第一デバイスに送信するステップ(510)を更に備え、第一セキュアエントリーセットと第二セキュアエントリーセットとは、送信された証明識別子(SN0)の予期される順番の直前および直後の順番を有する失効証明識別子をそれぞれ含んでいることを特徴とする請求項５に従属する請求項１０に記載の証明書失効リストの管理方法。
【請求項１５】
前記方法は、第一デバイスにおいて、
送信されたセキュアエントリーセット(SESj0、SESk0)に含まれ、第二デバイスに格納されたリストが決められたCRLと一致していることを保証することができる送信された証明書失効リスト(CRL)の識別子(NCRL(k0)、NCRL(j0))を、決められたCRLの識別子(NCRL)と比較するステップ(518)と、
第一セキュアエントリーセット(SESk0)と第二セキュアエントリーセット(SESj0)とが、第二デバイスに格納されたリストの中で一連となっていることを検査するステップ(520)と、
第一セキュアエントリーセット(SESk0)と第二セキュアエントリーセット(SESj0)とが、送信された証明識別子(SN0)の予期される順番の直前および直後の順番を有する失効証明識別子(SNj0，SNk0)をそれぞれ含んでいることを検査するステップ(521)とを備えることを特徴とする請求項１４に記載の証明書失効リストの管理方法。
【請求項１６】
リストの各セキュアエントリーセット(SESi)は複数の失効証明識別子(SNfi,…, SNli)を備え、複数の失効証明識別子はセキュアエントリーセットの中でソートされていることを特徴とする請求項５に従属する請求項１０に記載の証明書失効リストの管理方法。
【請求項１７】
適切な失効証明識別子(SN0)を含む適切なセキュアエントリーセットのうちの少なくとも一部を、第一デバイス(61)に送信するステップを備えることを特徴とする請求項１６に記載の証明書失効リストの管理方法。
【請求項１８】
第二デバイス(62)の中で、適切な証明識別子(SN0)の予期される順番の直前および直後の順番をそれぞれ有する第一失効証明識別子(SNj)と第二失効証明識別子(SNj+1)とを備える代替セキュアエントリーセット(SESi0)を検索するステップと、
代替セキュアエントリーセット(SESi0)を第一デバイス(61)に送信するステップとを備えることを特徴とする請求項１６に記載の証明書失効リストの管理方法。
【請求項１９】
第一失効証明識別子および第二失効証明識別子をそれぞれ含んでいる第一の代替セキュアエントリーセット(SESi0)および第二の代替セキュアエントリーセット(SESi0+1)を、第一デバイス(61)に送信するステップを備えることを特徴とする請求項１８に記載の証明書失効リストの管理方法。
【請求項２０】
第二デバイス(62)に格納されたリストが決められたCRLと一致していることを保証することができ、送信されたセキュアエントリーセット(SESi0，SESi0+1)に含まれる送信された証明書失効リスト(CRL)の識別子を、決められたCRLの識別子(NCRL)と第一デバイス(61)にて比較するステップを備えることを特徴とする請求項１７乃至１９の何れかに記載の証明書失効リストの管理方法。
【請求項２１】
リストオーダーフィールド(63i)のコンテンツはインデックスであり、インデックスがリストの中でセキュアエントリーセット(SESi)の順番と一致しており、
第一デバイスは最大のインデックス(iMAX) を格納し、最大のインデックスがリストの最終セキュアエントリーセットのインデックスと一致していることを特徴とする請求項５または１２乃至２０の何れかに記載の証明書失効リストの管理方法。
【請求項２２】
リストオーダーフィールドのコンテンツはリストの中で先行セキュアエントリーセットについての情報であり、
第一デバイスは第一セキュアエントリーセットとリストの最終セキュアエントリーセットとを格納していることを特徴とする請求項５または１２乃至２０の何れかに記載の証明書失効リストの管理方法。
【請求項２３】
少なくとも1つの失効証明識別子(SNi)を備えるCRL(33, 67)を受信するCRL受信手段と、
CRLの少なくとも1つの失効証明識別子を備えるCRLのエントリー(371,…, 37p)に関連する完全性フィールド(MACi)を秘密データ(KCRL)を用いて計算する計算手段(36, 38, 39)と、
エントリーと計算された関連する完全性フィールドとを第二デバイス(32, 62)に送信する送信手段と、
検査される証明書の証明識別子(SN0)を前記第二デバイス(32, 62)に送信する送信手段と、
少なくとも1つの失効証明識別子を含む少なくとも1つのエントリーと少なくとも1つの関連する完全性フィールドとを前記第二デバイスから受信する受信手段と、
前記第二デバイスから受信した少なくとも1つのエントリーの完全性を送信された関連する完全性フィールドを用いて認証する認証手段(311)と、
少なくとも1つの受信した失効証明識別子を用いて証明書の妥当性を評価する評価手段(310)とを備えることを特徴とする証明書失効リスト(CRL)を管理するデバイス(31, 61)。
【請求項２４】
少なくともCRLの少なくとも1つの失効証明識別子(SNi)を含むエントリーとエントリーに関連する完全性フィールド(MACi)とを第一デバイス(31, 61)から受信する受信手段と、
複数の失効証明識別子(SNi)を格納するためのメモリー(34, 64)とを備え、格納された失効証明識別子は少なくとも1つのセキュアエントリーセット(SESi)のリストの中で編成されており、各セキュアエントリーセットは、少なくとも1つの失効証明識別子と少なくとも1つの関連する完全性フィールド(MACi)とCRL(33)のCRL識別子(NCRL)とを備えており、各セキュアエントリーセット(SESi)はリストオーダーフィールド(63i)を備え、リストオーダーフィールドは前記デバイスに格納されたセキュアエントリーセットのリストの中でセキュアエントリーセットの順番を決定することができるコンテンツ(i)を有することを特徴とする証明書失効リスト(CRL)に関する分割されたエントリーを管理するデバイス(32, 62)。
【請求項２５】
第一デバイス(31、61)から証明識別子(SN0)を受信する受信手段と、
送信された証明識別子の値と一致する値を有する適切な失効証明識別子をリストが備えているかどうかを評価するために、メモリー(34, 64)に格納されたエントリーのリストを調査する処理手段(35, 65)と、
調査結果に応じて、少なくとも1つの失効証明識別子と関連する完全性フィールドとを第一デバイスに送信する送信手段とを備えることを特徴とする請求項２４に記載の証明書失効リスト(CRL)を管理するデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は安全なデジタル・ネットワークに関する。
【背景技術及び発明が解決しようとする課題】
【０００２】
通信ネットワークを通してのコンテンツのデジタルデータ表示の送信は、変換されたデータとデータをコピーするための許可または禁止の管理との保護について問題がある。
【０００３】
これらの問題を解決するために、マルチメディアハードウェアのメーカーは、これらのコンテンツの不正なコピーを防止しつつ、デジタル形式のコンテンツを送信することを可能とする解決策を提案している。一般に、これらの解決策は、いわゆる従順なデバイスまたはモジュールの使用だけでなく、信頼された団体、例えば認証局によって１つまたは複数の鍵が作成されている暗号化システムの使用に関する。各鍵は証明書に関連する。証明書は鍵をその所有者の身元へ暗号的にバインドする。
【０００４】
秘密を含む鍵または従順なデバイスまたはモジュールが略奪されるおそれがある。前者の場合、「略奪行為」とは鍵を手に入れることである。後者の場合、「略奪行為」とは秘密を手に入れることである。
【０００５】
安全なデジタル・ネットワークの1つの例としては、コンテンツの安全なデジタル放送のためのシステムがある。
【０００６】
それは、鍵、デバイス、またはモジュールの識別子を含む失効リストを管理するというコンテンツの安全なデジタル放送のためのシステムにおいて知られている。信頼できる第三の機関が略奪されているという事実を認識すると、もはや従順であるとはみなさない。
【０００７】
もはや従順でない鍵、デバイス、またはモジュールが識別され、使用されないようにすることができるよう、失効リストはシステムのすべての参加者に伝達される必要がある。
例えば、システムの従順なデバイスは、従順でないデバイスまたは従順でない鍵を送信するデバイスとの通信を絶つ。
【０００８】
これが効果的であるために、従順なデバイスにとっては常に失効リストにアクセスできることが必要である。
【０００９】
特に、失効リストは、信頼できない証明書のリストを含み得る。そのようなリストもまた、証明書失効リスト(CRL)として知られている。
【００１０】
一般に、CRLは入力リストを備える。独自に識別される手段として、CRLは、CRL発行人、例えば信頼された第三の機関により日付を付けられ、そして署名される。CRLの各エントリーは、失効されるべき証明書と失効日付とのシリアルナンバーを備えている。
【００１１】
安全なデジタル・ネットワークで用いられるデバイスは、そのハードウェア仕様書の制約を受けうる。そのようなデバイスは、CRL全体をメモリーに格納し、鍵かどうか、即ち、この鍵に関連する証明書がCRLに現れるかどうかを検査するために、メモリーに格納されたCRLを処理する十分なメモリー及び／又は処理容量を有さない。そのようなデバイスの例としては、メモリーと処理デバイスとを備える電子回路を有するスマートカードが広く知られている。スマートカードは、データの暗号化または暗号解読を実装するために頻繁に用いられる。
【００１２】
図1は従来のスマートカードの例を示す。スマートカード11は、プラスチックカード12と埋め込まれたマイクロチップ13とを備え、安全に秘密の情報を格納することができる。マイクロチップ13は、外部デバイスと通信可能なピン14を備える。マイクロチップ13は、比較的小さなサイズのメモリーを有しており、スマートカードはCRL全体を格納することができない。
【００１３】
しかし、認証証明書の存在について署名されたCRLを着実に検査するためにスマートカードを用いることは可能である。これは、CRL全体をスマートカードのメモリーに格納することを回避する。
【００１４】
図2Aは、スマートカードとCRLとを検査するための従来の第一方法の例を示す。CRL21は、連続した小さなブロックでスマートカード22に送信される。一般にCRL21は、CRL識別子NCRLと、CRL署名SCRLと、複数のエントリー(241, 242,…,24MAX)とから構成されており、各エントリーは、関連する失効証明シリアルナンバー (SN1, SN2,..,SNMAX)を備える。各送信された小さなブロックは、1つまたは複数のエントリーから構成され、各エントリーは1つの失効証明シリアルナンバーSNiを備える。認証証明書と一致するエントリーが存在する場合には、スマートカード22はそれぞれの小さなブロックを処理する。一般に、スマートカード22の処理手段23は、認証証明書のシリアルナンバーSN0を送信された失効証明シリアルナンバーSNiと比較する。
【００１５】
CRL署名SCRLを検査するため、スマートカードは連続して受信した小さなブロックのハッシュ値を計算する。ハッシュ値がブロック毎に計算されるように、CRL署名SCRLの作成において用いられるハッシュ関数が策定される。すべての小さなブロック、即ちCRL全体を受信して、全体のハッシュ値を得た後に、確認機能は、このハッシュ値と署名を作成した信頼できる第三の機関の公開鍵とCRL署名SCRLとに適用される。従って、CRLの完全性を検査することができる。CRLの完全性の検査は、すべての新しい証明書がスマートカードによって検査されるため繰り返しなされる必要がある。
【００１６】
図2Bは、CRLを用いている認証証明書の妥当性を検査するための従来の第二方法の例を示す。CRL 21は、スマートカード22とは異なるホストデバイス26の中に格納されている。認証証明書の証明識別子SN0は、スマートカード22からホストデバイス26に送信される。
【００１７】
第二デバイス26の処理手段25は、ホストデバイス26の中に格納されたCRL21の失効証明識別子(SN1, SN2,…, SNMAX)の中から証明識別子SN0を検索する。
【００１８】
その後ホストデバイス26は、認証証明書が有効であるかどうかを示す検索結果をスマートカード22に送信する。
【００１９】
例えば、送信された証明識別子SN0と等しい適切な失効証明識別子がCRL 21の中で検索される場合には、ホストデバイス26はブール変数BV（例えば、リセット）に第一の値を割り当てる。処理手段25が、送信された証明識別子SN0と等しい適切な証明識別子を、CRL 21の中で検索できない場合には、ホストデバイス26は第二の値を、ブール変数BV（例えば、セット）に割り当てる。
【００２０】
ホストデバイス26はブール変数BVをスマートカード22に送信する。ブール変数BVの値は、CRL21が、SN0を検査するための証明識別子と等しい適切な失効証明識別子を備えるかどうかをスマートカード22に示す。従って、送信されたブール変数BVがセットである場合には、認証証明書は、ただ単に有効であるとしてのみ評価される。送信されたブール変数BVがリセットである場合には、認証証明書は、無効であるとして評価される。
【００２１】
CRL21は、一般にCRL識別子NCRLとCRL署名SCRLとを備える。
【００２２】
スマートカード22もまた、CRL識別子NCRLを格納し得る。認証証明書が、検査される必要がある場合に、スマートカード22は格納しているCRL識別子NCRLの値を送信する。従って、ホストデバイス26の中に格納されているCRL21が現在利用可能なCRLであるということを検査することができる。
【００２３】
CRL署名SCRLは、CRL21の完全性を検査することができる。
【発明の開示】
【課題を解決するための手段】
【００２４】
第１の側面において、本発明は、証明書失効リスト(CRL)を管理するための方法を提供する。CRLは第一デバイスにて受信される。CRLは少なくとも1つの失効証明識別子を備える。CRLのエントリーに関連する完全性フィールドは秘密データを用いて計算される。ここで、エントリーはCRLのうちの少なくとも1つの失効証明識別子を備える。エントリーとそれに関連する計算された完全性フィールドとは、第一デバイスとは異なる第二デバイスに送信される。更に、前記方法は、送信されたエントリーと関連する完全性フィールドとを第二デバイスに格納するステップを備える。
【００２５】
第１の好ましい具体例において、エントリーへの証明書失効リスト(CRL)の分割は、第一デバイスにおいて実行される。
【００２６】
第２の好ましい具体例において、完全性フィールドはメッセージ認証コードである。受信したCRLに関連する証明書失効リスト(CRL)の鍵は、秘密データとして選択され、第一デバイスに格納される。
【００２７】
第３の好ましい具体例において、前記方法は、メッセージ認証コードを計算するためにハッシュ関数を中間データに適用する適用手段を更に備える。中間データは、少なくとも1つの失効証明識別子を含むエントリーとCRL鍵とから導き出される。
【００２８】
第４の好ましい具体例において、複数の失効証明識別子は第二デバイスに格納される。格納された失効証明識別子は、少なくとも1つのセキュアエントリーセットのリストの中で編成される。各セキュアエントリーセットは、少なくとも1つの失効証明識別子と少なくとも1つの適切な完全性フィールドとCRLのCRL識別子とを備える。各セキュアエントリーセットのためにリストオーダーフィールドが作成される。リストオーダーフィールドは、第二デバイスに格納されているセキュアエントリーセットのリストの中でのセキュアエントリーセットの順番を決定することができるコンテンツを有する。
【００２９】
第５の好ましい具体例において、CRLのCRL識別子は第一デバイスに格納される。
【００３０】
第６の好ましい具体例において、前記方法は、CRLに含まれCRLを発行した信頼できる第三の機関によって作成される証明書失効リスト(CRL)の署名を用いて、受信したCRLの完全性を検査するステップを更に備える。
【００３１】
第７の好ましい具体例において、受信したCRLの完全性の検査するステップは、受信したCRLのハッシュ値を計算するステップと、計算されたハッシュ値、信頼できる第三の機関の公開鍵、およびCRLの完全性を評価する署名とに検証機能を適用するステップとを備える。
【００３２】
第８の好ましい具体例において、第一デバイスにてCRLの小さなブロックは受信される。CRLの小さいブロックは、少なくとも1つの失効証明識別子を備える。少なくとも1つの失効証明識別子を含む少なくとも1つのエントリーと、関連する完全性フィールドとは第二デバイスに送信される。受信したCRLの小さなブロックは、さらなるCRLの小さなブロックの受信前に消去される。
【００３３】
好ましくは、第一デバイスはスマートカードであり、CRL識別子はCRLのCRLシリアルナンバーである。
【００３４】
第９の好ましい具体例において、前記方法は、証明書の妥当性を検査するステップを更に備える。証明書の証明識別子は第一デバイスから第二デバイスに送信される。第二デバイスの中に格納されたエントリーのリストは、リストが送信された証明識別子の値と一致する値を有する適切な失効証明識別子を備えるかどうかを評価するために調査される。少なくとも1つの失効証明識別子と関連する完全性フィールドとは、調査の結果に従って第一デバイスに送信される。前記方法は、第一デバイスにて送信された関連する完全性フィールドを用いて少なくとも1つの送信された失効証明識別子の完全性を検証するステップと、第一デバイスにて少なくとも送信された失効証明識別子を用いて証明書の妥当性を評価するステップとを更に備える。
【００３５】
第１０の好ましい具体例において、CRL鍵は、送信された失効証明識別子の完全性を検証するために用いられる。
【００３６】
第１１の好ましい具体例において、第二デバイスに格納されたリストの各セキュアエントリーセットは単一の失効証明識別子を備える。適切なセキュアエントリーセットの少なくとも一部は第一デバイスに送信される。適切なセキュアエントリーセットは適切な失効証明識別子を含んでいる。
【００３７】
第１２の好ましい具体例において、前記方法は、第一デバイスにて、送信されたセキュアエントリーセットの中に含まれている送信された証明書失効リスト(CRL)の識別子を、決められたCRLの識別子と比較するステップを更に備える。送信されたCRL識別子は、第二デバイスの中に格納されたリストが決められたCRLと一致していることを保証することができる。更に、前記方法は、第一デバイスにて適切な失効証明識別子が証明識別子と事実上等しいことを検査するステップを備える。
【００３８】
第１３の好ましい具体例において、第二デバイスに格納されたリストの各セキュアエントリーセットは、単一の失効証明識別子を備える。更に、前記方法は、第一セキュアエントリーセットのうちの少なくとも一部と第二セキュアエントリーセットのうちの少なくとも一部とを第一デバイスに送信するステップを備える。第一セキュアエントリーセットと第二セキュアエントリーセットとは、失効証明識別子をそれぞれ含んでおり、失効証明識別子は、予期される送信された証明識別子の順番の直前および直後の順番を有する。
【００３９】
第１４の好ましい具体例において、送信されたセキュアエントリーセットの中に含まれている送信された証明書失効リスト(CRL)の識別子は、決められたCRLの識別子と第一デバイスにて比較される。送信されたCRLの識別子は、第二デバイスの中に格納されたリストが決められたCRLと一致していることを保証することができる。更に、前記方法は、第一デバイスにおいて、第一セキュアエントリーセットと第二セキュアエントリーセットとが第二デバイスの中に格納されたリストの中で一連となっていることを検査するステップを備える。更に、前記方法は、第一デバイスにおいて、第一セキュアエントリーセットと第二セキュアエントリーセットとが失効証明識別子をそれぞれ含んでいることを検査するステップを備え、失効証明識別子は、予期される送信された証明識別子の順番の直前および直後の順番を有している。
【００４０】
第１５の好ましい具体例において、リストの各セキュアエントリーセットは複数の失効証明識別子を備える。複数の失効証明識別子は、セキュアエントリーセットの中でソートされる。
【００４１】
第１６の好ましい具体例において、適切なセキュアエントリーセットのうちの少なくとも一部は第一デバイスに送信される。適切なセキュアエントリーセットは、適切な失効証明識別子を含んでいる。
【００４２】
第１７の好ましい具体例において、前記方法は、第二デバイスの中で、第一失効証明識別子と第二失効証明識別子とを備えている代替セキュアエントリーセットのために検索するステップを更に備える。第一失効証明識別子と第二失効証明識別子とは、予期される適切な証明識別子の順番の直前および直後の順番をそれぞれ有している。代替セキュアエントリーセットは第一デバイスに送信される。
【００４３】
第１８の好ましい具体例において、第一の代替セキュアエントリーセットと第二の代替セキュアエントリーセットとは、第一デバイスに送信される。第一の代替セキュアエントリーセットと第二の代替セキュアエントリーセットとは、第一失効証明識別子と第二失効証明識別子とをそれぞれ含んでいる。
【００４４】
第１９の好ましい具体例において、送信されたセキュアエントリーセットの中に含まれている送信された証明書失効リスト(CRL)の識別子は、決められたCRLの識別子と第一デバイスにて比較される。送信されたCRL識別子は、第二デバイス(62)に格納されたリストが決められたCRLと一致していることを保証することができる。
【００４５】
第２０の好ましい具体例において、リストオーダーフィールドのコンテンツはインデックスであり、インデックスは、リストの中でセキュアエントリーセットの順番と一致している。第一デバイスは最大のインデックスを格納し、最大のインデックスは、リストの最終セキュアエントリーセットのインデックスと一致している。
【００４６】
第２１の好ましい具体例において、リストオーダーフィールドのコンテンツは、リストの中で先行セキュアエントリーセットについての情報である。第一デバイスは、第一セキュアエントリーセットとリストの最終セキュアエントリーセットとを格納する。
【００４７】
好ましくは、証明識別子は証明書シリアルナンバーである。
【００４８】
第３の側面において、本発明は、証明書失効リスト(CRL)を管理するためのデバイスを提供する。前記デバイスは、
少なくとも1つの失効証明識別子を備えるCRLを受信するCRL受信手段と、
CRLの少なくとも1つの失効証明識別子を備えるCRLのエントリーに関連する完全性フィールドを秘密データを用いて計算する計算手段と、
エントリーと計算された関連する完全性フィールドとを前記デバイスとは異なる第二デバイスに送信する送信手段とを備える。
【００４９】
第２２の好ましい具体例において、前記デバイスは更に、
検査される証明書の証明識別子を第二デバイスに送信する送信手段と、
少なくとも1つの失効証明識別子を含む少なくとも1つのエントリーと少なくとも1つの適切な完全性フィールドとを第二デバイスから受信する受信手段と、
少なくとも1つの送信された失効証明識別子の完全性を送信された適切な完全性フィールドを用いて認証する認証手段と、
少なくとも送信された失効証明識別子を用いて証明書の妥当性を評価する評価手段とを備える。
【００５０】
第４の側面において、本発明は、証明書失効リスト(CRL) に関する分割されたエントリーを格納するためのデバイスを提供する。前記デバイスは、
少なくともCRLの少なくとも1つの失効証明識別子を含むエントリーとエントリーに関連する完全性フィールドとを第一デバイスから受信する受信手段と、
複数の失効証明識別子を格納するためのメモリーとを備え、格納された失効証明識別子は少なくとも1つのセキュアエントリーセットのリストの中で編成されており、各セキュアエントリーセットは、少なくとも1つの失効証明識別子と少なくとも1つの関連する完全性フィールドとCRLのCRL識別子とを備えており、各セキュアエントリーセットはリストオーダーフィールドを備え、リストオーダーフィールドは前記デバイスに格納されたセキュアエントリーセットのリストの中でセキュアエントリーセットの順番を決定することができるコンテンツを有する。
【００５１】
第２３の好ましい具体例において、前記デバイスは更に、
第一デバイスから証明識別子を受信する受信手段と、
送信された証明識別子の値と一致する値を有する適切な失効証明識別子をリストが備えているかどうかを評価するために、メモリーに格納されたエントリーのリストを調査する処理手段と、
調査結果に応じて、少なくとも1つの失効証明識別子と適切な完全性フィールドとを第一デバイスに送信する送信手段とを備える。
【００５２】
本発明の他の形態と利点は、以下の説明と付加された請求項とから明白になる。
【発明を実施するための最良の形態】
【００５３】
証明書の妥当性の検査は、一般的に、検査される証明書の識別子を証明書失効リスト(CRL)の失効証明書の識別子と比較することによって実行される。
【００５４】
単一のデバイスは、CRLを格納するためのメモリーと比較を実行するための処理手段とを備える。
【００５５】
代わりに、デバイスは限られたメモリーであってもよい。例えば、スマートカードは検査される証明書と他の利用データとを保護することができるが、そのメモリーにCRL全体を格納することはできない。
【００５６】
従来の第一方法において、CRLは、証明書が検査される必要があるたびにデバイスの中に小さなブロック毎にダウンロードされる。各ダウンロードされた小さなブロックはデバイスで処理されて、さらなる小さなブロックのダウンロードの前に消去される。これは比較的時間を無駄遣いしている。
【００５７】
従来の第二方法において、ホストデバイスはCRLを格納して、CRLの中から証明識別子の検索を実行する。検査される証明書が有効であるかどうかを示す検索結果、例えばブール変数は、デバイス、例えばスマートカードに送信される。
【００５８】
しかし、ハッカーは偽造した検索結果をスマートカードに送信することができる。検索結果は、証明書が有効であると評価されるように変更されている。例えば、スマートカードは、証明書が有効であることを示す値を有する偽造されたブール変数を受信する。
【００５９】
メモリーの制限されたデバイスによって証明書の妥当性のより安全な検査が可能であるシステムと方法が必要である。
【００６０】
図3A及び3Bは、本発明に係るシステムの例を示している。
【００６１】
システムは、第一デバイス31と、第一デバイス31とは異なる第二デバイス32とを備える。図3Aに示すように、第一デバイス31は、まずCRL 33を受信し、受信したCRLを処理し、そして処理されたCRLを第二デバイス32に送信する。第二デバイス32は、処理されたCRLを格納することができる第二メモリー34を備える。
【００６２】
第一デバイスで受信されたCRL33は、少なくとも1つの失効証明識別子(SN1,…, SNp)を備える。
【００６３】
受信されたCRL33は、エントリー(371,…, 37p)に分割されるため第一デバイス31で処理され、各エントリーは、少なくとも1つの失効証明識別子を備える。そして、完全性フィールド(MACi)は、CRLの各エントリーに対して計算される。計算は秘密データ、例えば秘密の機能または秘密鍵に関係している。
【００６４】
計算された完全性フィールド(MACi)と少なくとも失効証明識別子(SNi)を備える関連するエントリーとは、第二デバイス(32)に送信され格納される。
【００６５】
証明識別子SN0を有する証明書が評価される必要がある場合には、図3Bに示すように、証明識別子SN0は第二デバイス32に送信される。第二デバイスの処理手段35は、処理されたCRLが証明識別子SN0の値と等しい値を有する適切な失効証明識別子を備えるかどうかを評価するため、第二メモリー34に格納された処理されたCRLを検査することができる。
【００６６】
代わりに、処理手段は、第一デバイスおよび第二デバイスとは異なる第三デバイスの一部であってもよい。
【００６７】
第二デバイス32は検査結果に従って第一デバイス31に結果データを出力する。結果データは、リストのうちの少なくとも1つの失効証明識別子SNi0と、関連する完全性フィールドMACi0とを備える。
【００６８】
送信された完全性フィールドMACi0は、関連する失効証明識別子SNi0の完全性を証明することが可能である。
【００６９】
証明書SN0の妥当性は、送信された失効証明識別子SNi0を用いて後に評価される。
【００７０】
本発明に係るシステムにあっては、相対的に小さなメモリーを有する第一デバイスに格納された証明書の妥当性を速やかに評価することが可能である。図3Aで示すように、第一デバイスは、初期ステップでたった一度だけCRLを処理する必要がある。処理されたCRLは、第二デバイスに格納される。第二デバイスは証明書の証明識別子の検査を実行することが可能である。
【００７１】
CRLを小さなブロック毎に第一デバイスにダウンロードしている従来の第一方法は、本発明に係る方法に比して時間がかかる。
【００７２】
さらに、本発明に係る方法は、送信された結果データの完全性の証明を備えており、送信された失効証明識別子SNi0のコンテンツのいかなる変更であっても検出ことができる。従って、本発明に係る方法は、従来の第二方法に比して、より安全な証明書の妥当性の検査を提供することができる。
【００７３】
図3Aを参照するに、一般にCRL33は、小さなブロック毎に第一デバイス31で受信される。各小さなブロックは、第一デバイス31で消去される前に処理されて、第二デバイス32に送信される。
【００７４】
図3Aにおいて例示するように、各小さなブロックは1つまたは複数の失効証明識別子(SN1,…, SNp)を備える。
【００７５】
CRL 33の受信した小さなブロックの第一デバイス31での処理とは、1つまたはいくつかのエントリー37i(失効証明識別子の1つまたは複数の失効証明識別子を備える各エントリー)に小さなブロックを分割することと、各エントリー37iについてセキュアエントリーセットSESiを作成することである。各セキュアエントリーセットSESiは、第二デバイス32に送信されて、第二メモリー34に格納される。
【００７６】
各セキュアエントリーセットSESiは、関連するエントリー37iから作成される。セキュアエントリーセットSESiは、インデックスiに加えて、関連するエントリー37iのうち少なくとも1つの失効証明識別子SNiと、エントリー37iに対して計算された完全性フィールドMACiと、CRL 33のCRL識別子NCRLとを備える。
【００７７】
CRLのCRL識別子NCRLは、第一デバイス31の第一メモリー36に格納される。
【００７８】
完全性フィールドはメッセージ認証コードMACiであるのが好ましい。メッセージ認証コードMACiは、第一デバイス31にて、関連するエントリー37iの失効証明識別子または識別子SNiと第一デバイス31で選択されたCRL鍵KCRLとから計算される。
【００７９】
CRL鍵KCRLは、認証CRLに付属しているので、新しいCRLが第一デバイス31に受信されると置き換えられる。代わりに、CRL鍵KCRLは、第一デバイス31に付属しており、同じ値のままであってもよい。
【００８０】
一般に、第一デバイス31は、ランダムにCRL鍵KCRLを選択する選択手段39を備える。ハッシュ関数は、メッセージ認証コードMACiを計算するために中間データに適用される。中間データは、関連するエントリー37iの失効証明識別子または識別子SNiとCRL鍵KCRLとから得られる。
【００８１】
例えば、中間データは、バイナリ形式で格納されており、関連するエントリー37iの失効証明識別子または識別子SNiと一致している識別子ビットを備え、CRL鍵KCRLと一致している鍵ビットが後に続く。計算されたメッセージ認証コードMACiは、失効証明識別子または識別子SNiとCRL鍵KCRLとの両方に依存する値を有する。
【００８２】
代わりに、エントリーの失効証明識別子または識別子SNiは、ハッシュ関数の適用前または後にCRL鍵KCRLによって暗号化される。
【００８３】
完全性フィールドもまた、秘密機能をエントリーの失効証明識別子または識別子SNiに適用することによって計算される。秘密機能は、第一デバイスに格納され得る。
【００８４】
より一般的には、完全性フィールドは、エントリーの失効証明識別子または識別子SNiの完全性を認証することが可能である他のデータであってもよい。
【００８５】
メッセージ認証コードMACiの計算もまた、セキュアエントリーセットSESiの他のフィールド、例えば第二デバイス32に格納されたリストの中でセキュアエントリーセットSESiの順番を示しているリストオーダーフィールドに関係する。従って、メッセージ認証コードMACiは、セキュアエントリーセットSESiの完全性を認証することが可能である。
【００８６】
もし第一デバイス31と第二デバイス32との間での送信時に、ハッカーが失効証明シリアルナンバーSNiを変更することに成功した場合には、完全性フィールドMACiはその変更を検出することが可能である。
【００８７】
第一デバイス31もまた、CRL 33に含まれているCRL署名SCRLによって受信したCRL 33自身の完全性を検査することができ、この署名SCRLは、CRLを発行した信頼できる第三の機関によって作成される。第一デバイスの暗号化手段38は、受信したCRL 33のハッシュ値を計算することができる。CRL署名SCRLの作成において用いられるハッシュ関数は、ハッシュ値がブロック毎に算出されるように策定される。それから、確認機能は、CRL 33の完全性を評価するために、算出されたハッシュ値と信頼できる第三の機関の公開鍵と署名SCRLとに適用される。
【００８８】
CRLの完全性の検査がすべての新しい証明書が検査されるよう繰り返される必要がある従来の方法とは異なり、本発明に係る方法にあっては、新しいCRLがダウンロードされる時に、初期のステップでのみ検査を実行する必要がある。
【００８９】
図3Aに示すシステムでは、第一デバイス31からCRLの失効証明識別子にアクセスことが可能である。図3Bにおいて示すように、証明書が評価される必要がある時には、証明識別子SN0は第二デバイス32に送信される。
【００９０】
証明識別子SN0は、格納されているセキュアエントリーセット(SES1,…, SESi,…,SESp)のリストの中で検索される。第二デバイス32は、検索結果に従って、少なくとも1つのセキュアエントリーセットSESi0のうちの少なくとも一部を第一デバイス31に送信する。送信される部分は、セキュアエントリーセットSESi0のうち少なくとも失効証明識別子SNi0と完全性フィールドMACi0とを備える。
【００９１】
第一デバイス31の認証手段311は、送信された失効証明識別子SNi0の完全性を認証することが可能である。
【００９２】
証明書の妥当性は、少なくとも送信された失効証明識別子SNi0を用いて、第一デバイス31の評価手段310において後に評価される。評価とは、一般に送信された失効証明識別子SNi0を検査される証明書の識別子SN0と比較することである。
【００９３】
送信された失効証明識別子SNi0と証明識別子SN0とが同じ値である場合には、証明書は無効であると評価される。
【００９４】
送信された失効証明識別子SNi0と証明識別子SN0とが異なる値である場合には、証明書は有効であると評価される。
【００９５】
しかしながら、第一デバイスは、ハッカーによって実行された攻撃を検出するために追加のテストを実行することができる。
【００９６】
攻撃とは、例えば第二デバイスで実装されたアルゴリズムの違法な変更である。例えば、ハッカーは、ホストデバイスが常に古い失効証明識別子と関連するメッセージ認証コードとを出力するように、ホストデバイスを変更する。この場合に、証明識別子SN0が古い失効証明識別子と等しいという可能性はほとんどない。
【００９７】
また、ハッカーは、ホストデバイスへの証明識別子の送信中に、検査される失効証明書の証明識別子の値を変更することに成功する場合もある。それ以降、ホストデバイスは適切な失効証明識別子を検出することができない。
【００９８】
従って、第一デバイスは、一般的にホストデバイスによって実装されたアルゴリズムの変更や、ホストデバイスに送信された証明識別子の値の変更などのような可能な攻撃を検出するために、追加のテストを実行する。
【００９９】
例えば、送信された失効証明識別子SNi0と証明識別子SN0との間の異なる値が、あらかじめ決められた限界を超えている場合には、第一デバイスはハッカーによる攻撃を疑う。
【０１００】
また第一デバイスは、別の証明書の検査においてホストデバイスから受信した先行失効証明識別子を格納することができる。もし送信された失効証明識別子SNi0が、格納されている先行失効証明識別子と同じ値である場合には、証明書は無効と評価される。
【０１０１】
ホストデバイスによって実装されたアルゴリズム、または送信された証明識別子SN0の可能な変更を検出することができる好ましい方法については、以下に説明する。
【０１０２】
好ましくは、第一デバイス31はスマートカードである。検査される証明書はスマートカードに付属させることができる。例えば、証明書はスマートカードの製造においてスマートカードにダウンロードされる。代わりに、証明書は定期的に置き換えられてもよい。
【０１０３】
好ましくは、CRL識別子NCRLはCRLのCRLシリアルナンバーである。
【０１０４】
代わりに、CRL識別子NCRLはCRLの発行日であってもよい。
【０１０５】
好ましくは、各証明識別子は失効証明書のシリアルナンバーまたはシリアルナンバーの一部である。
【０１０６】
代わりに、証明識別子は証明書自身であってもよい。
【０１０７】
証明識別子は、対応する証明書を識別することができるいかなるデータでも構わない。
【０１０８】
図3Aと3Bに示すように、選択手段39、暗号化手段38、評価手段310、および認証手段311は、第一デバイス31の4つの異なる要素である。しかしながら、選択手段、暗号化手段、評価手段、および認証手段は、シングル処理ユニット、例えばスマートカードのマイクロプロセッサーの一部であるのが好ましい。
【０１０９】
選択手段39、暗号化手段38、評価手段310、および認証手段311は第一メモリー36、例えばスマートカードメモリーと通信する。
【０１１０】
本発明に係る第一の好ましい実施形態について説明する。
【０１１１】
図4に、本発明に係る第一の好ましい実施形態におけるシステムのホストデバイスによって実装されるアルゴリズムを例示する。第二デバイスは、第一デバイス、例えばスマートカードと通信しているホストデバイスである。
【０１１２】
スマートカードはセキュアエントリーセット(SES1,…, SESj,…,SESjMAX)のリストを初期ステップの間にホストデバイスに送信する。各セキュアエントリーセットは、1つの失効証明シリアルナンバー(SN1,…, SNj,…, SNjMAX)および関連するメッセージ認証コードを備える。
【０１１３】
各セキュアエントリーセット(SES1,…, SESj,…,SESjMAX)は、さらにリストオーダーフィールドを含む。リストオーダーフィールドは、リスト中の先行セキュアエントリーセットについての情報を備える。リスト中の第一セキュアエントリーセットSES1は、あらかじめ決められた値を含んでいるリストオーダーフィールドを備える。スマートカードは、第一セキュアエントリーセットSES1と最終セキュアエントリーセットSESjMAXとを格納する。それゆえ、リストオーダーフィールドのコンテンツは、リストの中でリストのセキュアエントリーセット(SES1,…, SESj,…,SESjMAX)を要求することができる。
【０１１４】
代わりに、リストオーダーフィールドは、リスト中の以下のようなセキュアエントリーセット、例えば予め決められた値で満たされているリストオーダーフィールドを有する最終セキュアエントリーセットSESjMAXについての情報を含んでいてもよい。
【０１１５】
代わりに、リストオーダーフィールドは、リストの中でのセキュアエントリーセットの順番と一致するインデックスを備えてもよい。
【０１１６】
より一般的には、リストオーダーフィールドは、リストの中でのセキュアエントリーセットの順番を決定することが可能であるコンテンツを有する。
【０１１７】
ホストデバイスは、リストを格納することが可能である第二メモリーを備える。
本発明に係る第一の好ましい実施形態において、セキュアエントリーセットは、失効証明シリアルナンバー(SN1,…, SNj,…, SNjMAX)を評価する増大する順番にリスト中でソートされる。
【０１１８】
証明書が検査される必要がある場合には、スマートカードは証明書の証明書シリアルナンバーSN0をホストデバイスに送信する。
【０１１９】
ホストデバイスは、送信された証明書シリアルナンバーSN0の値と等しい値を有する適切な失効証明シリアルナンバーを、リストが備えているかどうかを評価するために、リストをテストする。
【０１２０】
送信された証明書シリアルナンバーSN0は、まずリストの第一失効証明シリアルナンバーSN1と比較される(ボックス51)。
【０１２１】
送信された証明書シリアルナンバーSN0が第一失効証明シリアルナンバーSN1より小さい場合には、ホストデバイスは第一セキュアエントリーセットSES1をスマートカードに送信する(ボックス52)。
【０１２２】
送信された証明書シリアルナンバーSN0が第一失効証明シリアルナンバーSN1より大きい場合には、第二のテストが実行される。即ち、送信された証明書シリアルナンバーSN0は、リストの最終失効証明シリアルナンバーSNjMAXと比較される(ボックス53)。
【０１２３】
送信された証明書シリアルナンバーSN0が最終失効証明シリアルナンバーSNjMAXより大きい場合には、ホストデバイスは最終セキュアエントリーセットSESjMAXをスマートカードに送信する(ボックス54)。
【０１２４】
送信された証明書シリアルナンバーSN0が第一失効証明シリアルナンバーSN1より大きく、最終失効証明シリアルナンバーSNjMAXより小さい場合には、ホストデバイスはインデックス変数iをリセットする(ボックス55)。インデックス変数は、その後インクリメントされる(ボックス56)。
【０１２５】
送信された証明書シリアルナンバーSN0は、現状のインデックス変数iと一致する現状の失効証明シリアルナンバーSNiとが等しいかどうかについて、さらに検査される(ボックス57)。
【０１２６】
送信された証明書シリアルナンバーSN0が現状の失効証明シリアルナンバーSNiと等しい、即ち、送信された証明書シリアルナンバーSN0と等しい適切な失効証明シリアルナンバーをリストが備えている場合には、ホストデバイスは結果データとして適切なセキュアエントリーセットSESiを送信する(ボックス58)。
【０１２７】
そうでない場合には、現状の失効証明シリアルナンバーSNiは送信された証明書シリアルナンバーSN0と比較され(ボックス59)、SNiがSN0より小さい場合には、インデックス変数iはインクリメントされる(ボックス56)。
【０１２８】
一方、SNiがSN0より大きい場合、即ちSN0がSNi-1とSNiとの間で構成されている場合には、ホストデバイスは、結果データとして送信された証明書シリアルナンバーSN0をまたぐ2つの失効証明シリアルナンバーと一致する２つのセキュアエントリーセットSESi-1とSESiとをスマートカードへ送信する(ボックス510)。
【０１２９】
図4に示すリストの中で送信された証明書シリアルナンバーSN0の検索をするアルゴリズムは、単なる一例である。検索は様々なアルゴリズムによって実装され得る。
【０１３０】
図5には、本発明に係る第一の好ましい実施形態として、システムの中のスマートカードによって実装されるアルゴリズムの具体例が示されている。
【０１３１】
スマートカードは、証明書シリアルナンバーSN0の検索を実行するホストデバイスと通信し、図4で示すように、結果データRDを送信する。スマートカードは結果データRD 、即ちホストデバイスに格納されたリストのうち１つまたは２つのセキュアエントリーセットを受信する(ボックス512)。
【０１３２】
スマートカードは、結果データRDが１つまたは２つのセキュアエントリーセットを備えているかどうかを調査する(ボックス513)。
【０１３３】
単一のセキュアエントリーセットSESi0が結果データとして受信される場合には、ホストデバイスに格納されたリストが証明書シリアルナンバーSN0と等しい適切な失効証明シリアルナンバーSNi0を備えているか、または「限界」条件のうちの１つを満たしている(SESi0 = SES1 またはSESi0 = SESjMAX)ということが考えられる。その後、証明書を無効であると評価する(ボックス517)前に複数の検査(ボックス514、515、および516)が実行される。
【０１３４】
第一検査(ボックス514)は、受信したセキュアエントリーセットSESi0に含まれている送信されたCRL識別子NCRL(i0)が、初期のステップでスマートカードに格納されたCRL識別子NCRLと等しいことを認証する。第一検査は、ホストデバイスに格納されたリストが利用可能な決められた証明書失効リスト(CRL)と事実上一致していると保証することが可能である。
【０１３５】
第二検査(ボックス515)は、送信されたセキュアエントリーセットSESi0の中に含まれているメッセージ認証コードMACi0とスマートカードに格納されているCRL鍵KCRLとから送信されたセキュアエントリーセットSESi0の完全性を認証する。例えば、スマートカードは、適切な失効証明シリアルナンバーSNi0の認証コードを得るため、適切な失効証明シリアルナンバーSNi0とスマートカードに格納されたCRL鍵KCRLとから導き出された中間データにハッシュ関数を適用する。適切な失効証明シリアルナンバーSNi0の認証コードは、送信されたセキュアエントリーセットSESi0に含まれているメッセージ認証コードMACi0と比較される。異なる場合には、送信されたセキュアエントリーセットSESi0のコンテンツが変更されていると考えられる。
【０１３６】
第三検査は、適切な失効証明シリアルナンバーSNi0が事実上証明書シリアルナンバーSN0と等しいことを認証する(ボックス516)。
【０１３７】
３つの検査(ボックス514、515、および516)が、うまく実行される場合には、証明書は無効であるとして評価される(ボックス517)。
【０１３８】
第三検査において、SNi0が証明書シリアルナンバーSN0と異なると検出される場合には、その後、第四検査が実行される。その第四検査は、SESi0 = SES1である場合にのみ、SN0がSNi0より小さいかどうかを認証する(ボックス524)。この第四検査が成功である場合には、シリアルナンバーSN0を有する証明書は有効であると判断される(ボックス522)。反対に、第五検査は、SESi0 = SESjMAXである場合にのみ、SN0がSNi0より大きいかどうかを認証するために実行される(ボックス525)。この第五検査が成功である場合には、証明書は有効であると評価される(ボックス522)。
【０１３９】
そうではなく、ボックス514、515、または525で実行された検査のうちの何れか１つが否定的である場合には、ホスト反応は改悪されていると判断される(ボックス523)。この場合に、選択したインプリメンテーションに依存して、証明書は無効であると評価されるか、または処理全体が再スタートする。つまり、スマートカード31は検査される証明書のシリアルナンバーSN0をホスト32へ再送し別の結果データを待つ。このホストからの結果データの要求は、最大の回数に達する(例えば2または3回)まで、繰り返される。
【０１４０】
ボックス513において、結果データの検査に続いて、結果データが2つの送信されたセキュアエントリーセットのうちの１つのセットを備えると評価される場合には、証明書の妥当性のあらゆる評価が可能となる(ボックス522)前に、複数の検査が実行される(ボックス518、519、520、および521)。
【０１４１】
第一の受信したセキュアエントリーセットSESj0と第二の受信したセキュアエントリーセットSESk0とにそれぞれ含まれている送信されたCRL識別子NCRL(j0)とNCRL(k0)とは、スマートカードに格納されたCRL識別子NCRLと比較される(ボックス518)。そのような第六検査(ボックス518)は、ホストデバイスに格納されたリストが、利用可能な決められた証明書失効リスト(CRL)と事実上一致していると保証することが可能である。送信されたCRL識別子NCRL(j0)とNCRL(k0)とのうちの何れもが、スマートカードに格納されたCRL識別子NCRLと異なる場合には、スマートカードまたはホストデバイスが不正に置換されていることが考えられる。証明書は後に無効であると判断される。
【０１４２】
第一の送信されたセキュアエントリーセットSESj0の完全性は、第一の送信されたセキュアエントリーセットSESj0に含まれるメッセージ認証コードMACj0と、スマートカードに格納されているCRL鍵KCRLとから検証される(ボックス519)。そのような第七検査は、ハッシュ関数によって実行される。つまり、第二検査(ボックス515)の場合のように、ハッシュ関数は、例えば、送信された第一失効証明シリアルナンバーSNj0とCRL鍵KCRLとから導き出される中間データに適用される。第七検査(ボックス519)が、第一の送信されたセキュアエントリーセットSESj0のコンテンツが変更されていると判断する場合には、証明書は無効であると評価される。
【０１４３】
同様に、第二の送信されたセキュアエントリーセットSESk0の完全性は、第二の送信されたセキュアエントリーセットSESk0に含まれているメッセージ認証コードMACk0とスマートカードに格納されているCRL鍵KCRLとから検証される(ボックス519)。
【０１４４】
次に、第一の送信されたセキュアエントリーセットSESj0と第二の送信されたセキュアエントリーセットSESk0とが第二デバイスに格納されているリストの中で事実上一連となっていることを検査する(ボックス520)。そのような第八検査(ボックス520)は、一般に、送信されたセキュアエントリーセットSESj0とSESk0とのリストオーダーフィールドを用いて実行される。
【０１４５】
第一の好ましい実施形態において説明されるように、リストの与えられたセキュアエントリーセットの各リストオーダーフィールドが、先行セキュアエントリーセットについての情報を備える場合には、第八検査は、第二セキュアエントリーセットSESk0のリストオーダーフィールドに含まれている情報が第一セキュアエントリーセットSESj0と事実上一致していることを検証することとなる。
【０１４６】
代わりに、リストの与えられたセキュアエントリーセットの各リストオーダーフィールドは、与えられたセキュアエントリーセットのインデックスを備えてもよい。つまり、この場合には、単に検査は、第一セキュアエントリーセットSESj0と第二セキュアエントリーセットSESk0とに関連しているインデックスが事実上一連となっていることを検証することとなる。
【０１４７】
最後に、スマートカードは、第一セキュアエントリーセットSESj0と第二セキュアエントリーセットSESk0とが、それぞれホストデバイスに格納されているリストの中の適切なセキュアエントリーセットの前後に直接配置されているということを検査する。
【０１４８】
リストのセキュアエントリーセットが失効証明シリアルナンバー(SN1,…, SNj,…, SNjMAX)を評価する増大する順番にソートされる第一の好ましい実施形態において、第九検査(ボックス521)は、証明書シリアルナンバーSN0が、第一セキュアエントリーセットSESj0と第二セキュアエントリーセットSESk0とにそれぞれ含まれている第一失効証明シリアルナンバーSNj0の値と第二の失効証明シリアルナンバーSNk0の値との間の値を有していることを検証することとなる。
【０１４９】
第六検査(ボックス518)、第七検査(ボックス519)、第八検査(ボックス520)、および第九検査(ボックス521)は、システムのより完全な確保を提供することができる。確かに、ホストデバイスは一般に無防備なデバイスである。つまり、ハッカーはスマートカードとホストデバイスとの間で送信されるデータを変更するだけでなく、ホストデバイスの処理手段にアクセスし実装されるアルゴリズムをも変更することができる。
【０１５０】
例えば、従来の第二方法において、ハッカーは、スマートカードに送信されたブール変数が常に同じ値、即ち、検査されるいかなる証明書であっても有効であると評価されるように、処理手段を変更することができる。
【０１５１】
本発明に係るシステムによって、ハッカーは、送信された証明識別子SN0のいかなる値についても、常に失効証明識別子および関連するメッセージ認証コードの同じ組み合わせがスマートカードに送信されるように、実装されたアルゴリズムを変更するということもあり得る。一般に、比較的最近のいかなる証明書であっても有効であると評価されることを保証するように、組み合わせは古い失効証明識別子を備えている。しかし、本発明に係る第一の好ましい実施形態による処理は、そのような障害をホストデバイスのアルゴリズムにおいて検出することができる。特に、第九検査(ボックス521)は、失効証明識別子の組み合わせがリストの送信された証明識別子を事実上またがないということを実現することができる。後に証明識別子は無効であると評価される。スマートカードもまた、ホストデバイスと通信することを防止されるか禁じられる。
【０１５２】
第六検査(ボックス518)、第七検査(ボックス519)、第八検査(ボックス520)、および第九検査(ボックス521)が成功である場合には、証明書は有効であると評価される(ボックス522)。
【０１５３】
そうではなく、ボックス518、519、520、または521において実行される検査のうち何れか１つのものが否定的である場合には、ホスト反応は改悪されている(ボックス523)と考えられる。それは、前述のように、証明書が無効であると評価されるか、または処理が再び始められることを意味している。
【０１５４】
図5は、スマートカードの中で実装されるアルゴリズムのみを例示する。検査(ボックス514、515、516、518、519、520、および521)は、異なる命令に従って実行してもよい。例えば、送信されたCRL識別子と送信されたセキュアエントリーセットの完全性とは、結果データが1つまたは2つのセキュアエントリーセットを備えているかどうかを調査する前に検査され得る。つまり、結果データが1つまたは2つのセキュアエントリーセットを備えているかどうかにかかわらず、スマートカードは、１つの送信されたCRL識別子と、単一で送信されたセキュアエントリーセットの完全性とについて検査する。
【０１５５】
本発明に係る第二の好ましい実施形態について
【０１５６】
図6は本発明に係る第二の好ましい実施形態によるシステムの例を示す。システムは第一デバイス、例えばメモリー66を有するスマートカード61と、第一デバイスと通信する第二デバイス、例えばメモリー64と処理手段65とを有するホストデバイス62とを備える。符号67において示される証明書失効リスト(CRL)は、まずセキュアエントリーセットSESiを作成するためにスマートカード61で処理される。その後、証明書失効リストはホストメモリー64に格納される。
【０１５７】
本発明に係る第二の好ましい実施形態において、各セキュアエントリーセットSESiは、CRLの複数の失効証明シリアルナンバー(SN1,…SNjMAX)から作成される。各セキュアエントリーセットSESiは、失効証明シリアルナンバーのうちの予め決められた複数のもの(例えば4つ)を備える、または、セキュアエントリーセットごとの失効証明シリアルナンバーの数は変数である。
【０１５８】
各セキュアエントリーセットSESiは、セキュアエントリーセットが作成されるCRL 67に特有なCRL識別子NCRLを備える。
【０１５９】
図6に示すように、セキュアエントリーセットは、また、セキュアエントリーセット(SES1, …, SESi, …, SESiMAX)の間の順番、例えばインデックスを定義しているリストオーダーフィールド(631, …, 63i, …, 63 iMAX)を備える。
【０１６０】
図6に示すように、それぞれの単一のセキュアエントリーセットSESiの失効証明シリアルナンバー(SNfi,…SNli)は、また、セキュアエントリーセットの中で、例えば第一失効証明シリアルナンバーSNfiから最終失効証明シリアルナンバーSNliまで増大する順番にソートされる。
【０１６１】
更にメッセージ認証コード(MAC1, … MACi, … MACiMAX)は、セキュアエントリーセットSESiの複数の失効証明シリアルナンバー(SNfi,…SNli)とCRL鍵KCRLとから各セキュアエントリーセットSESiに対して計算される。代わりに、セキュアエントリーセットSESiの他のフィールドは、MACi値を計算するために用いられてもよい。
【０１６２】
セキュアエントリーセットは、追加のフィールド、例えば、ホストデバイスが機能すると思われるスマートカードのスマートカード識別子を有するフィールドをさらに備える。
【０１６３】
スマートカードはホストデバイスから受信した結果データを更に検査することができるいくつかのパラメータを格納する。一般に、スマートカードは、現状において利用可能な決められたCRLに特有なCRL識別子NCRLとメッセージ認証コード(MAC1,…, MAC16)の計算に用いられるCRL鍵KCRLとを格納する。また、リストの最終セキュアエントリーセットSESiMAX及び／又はセキュアエントリーセットごとの失効証明シリアルナンバーのうちの予め決められた複数のものと一致している最大のインデックスiMAXは、選択したインプリメンテーションに依存しているスマートカードに格納されてもよい。
【０１６４】
スマートカード61が証明書シリアルナンバーSN0を有する証明書の妥当性を検査する必要がある場合には、スマートカードは証明書シリアルナンバーSN0をホストデバイス62に送信し、ホストデバイスはセキュアエントリーセット(SES1, …, SESi, …, SESiMAX)のリストの中から証明書シリアルナンバーSN0の検索を実行する。
【０１６５】
ホストデバイス処理手段65が、リストは証明書シリアルナンバーSN0と等しい適切な失効シリアルナンバーSNi0を含む適切なセキュアエントリーセットSESi0を備えることを検出した場合には、適切なセキュアエントリーセットは結果データとしてスマートカードに送信される。
【０１６６】
一方、ホストデバイス処理手段65が、証明書シリアルナンバーSN0と等しい適切な失効証明シリアルナンバーを含む適切なセキュアエントリーセットを検出することができない場合には、ホストデバイスは前述したように結果データを戻す。
【０１６７】
第一の選択肢においては、CRL 67の失効証明シリアルナンバー(SN1,…SNiMAX)が余剰なくセキュアエントリーセット(SES1, …, SESi, …, SESiMAX)に格納されると考えられる。
この選択肢においては、
ホスト処理手段65は、適切なセキュアエントリーセットSESi0を検出することができる。適切なセキュアエントリーセットSESi0は、SNj<SN0<SNj+1となるような2つの失効証明シリアルナンバーSNjとSNj+1とを含む。この場合には、ホスト62は、結果データとして適切なセキュアエントリーセットSESi0をスマートカード61に送信する。
或いは、ホスト処理手段65は、適切な証明書シリアルナンバーSN0がセキュアエントリーセットSESi0の最終失効証明シリアルナンバーSNli0と次のセキュアエントリーセットSESi0+1の第一失効証明シリアルナンバーSNfi0+1との間で構成されていることを検出する。そのような場合には、ホスト62は、結果データとして一連のセキュアエントリーセットSESi0とSESi0+1とをスマートカード61に送信する。
【０１６８】
第二の選択肢においては、与えられたセキュアエントリーセットSESiの各最終失効証明シリアルナンバーSNli(最終セキュアエントリーセットSESiMAXを除く)も、一連のセキュアエントリーセットSESi+1の第一失効証明シリアルナンバーSNfi+1として、即ちSNli = SNfi+1として格納されるように、CRL 67の失効証明シリアルナンバー(SN1,…SNiMAX)はセキュアエントリーセット(SES1, …, SESi, …, SESiMAX)に格納されると考えられる。この第二の選択肢において、ホスト処理手段65は、常に適切なセキュアエントリーセットSESi0を検出できなくてはならない。適切なセキュアエントリーセットSESi0は、SNj<SN0<SNj+1となるような2つの失効証明シリアルナンバーSNjとSNj+1とを含んでいる。この場合には、ホスト62は、結果データとして適切なセキュアエントリーセットSESi0をスマートカード61に送信する。
【０１６９】
しかしながら、上記2つの選択肢において、証明書シリアルナンバーSN0がリストの第一セキュアエントリーセットSES1の第一失効証明シリアルナンバーSNf1 = SN1より小さい場合には、「限界」条件を有する。この場合、ホストデバイス62は第一セキュアエントリーセットSES1をスマートカード61に送信する。
【０１７０】
同様に、証明書シリアルナンバーSN0がリストの最終セキュアエントリーセットSESiMAXの最終失効証明シリアルナンバーSNliMAX = SNjMAXより大きい場合には、もう一つの「限界」条件は、上記2つの選択肢において満たされている。この場合、ホストデバイス62は最終セキュアエントリーセットSESiMAXをスマートカード61に送信する。
【０１７１】
本発明に係る第一の好ましい実施形態において説明されるように、スマートカード61は結果データの受信時に複数の検査を実行する。
【０１７２】
第二の好ましい実施形態においては、結果データはリストのうちの少なくとも1つのセキュアエントリーセットSESi0を備える。スマートカード61は、送信されたセキュアエントリーセットに含まれている送信されたCRL識別子NCRLが、スマートカード61に格納されているCRL識別子と事実上等しいことを検査する。従って、ホストデバイスに格納されたリストが利用可能なCRLと一致していることを保証することができる。
【０１７３】
少なくとも1つの送信されたセキュアエントリーセットSESi0の完全性もまた、関連するメッセージ認証コードMACi0と、スマートカード61に格納されたCRL鍵KCRLとから検証され得る。
【０１７４】
結果データが単一のセキュアエントリーセットを備える場合には、送信されたセキュアエントリーセットは、証明書シリアルナンバーSN0と等しい適切な失効証明シリアルナンバーを含み得る。または、送信されたセキュアエントリーセットは、SNj<SN0<SNj+1となるような2つの失効証明シリアルナンバーSNjとSNj+1とを含む。或いは、上述した「限界」条件のうちの1つが満たされている場合には、送信されたセキュアエントリーセットはSES1またはSESiMAXと等しい。従って、スマートカードは、単一のセキュアエントリーセットSESi0が適切な証明書シリアルナンバーSN0を備えるかどうかを決定する。
【０１７５】
前者の場合には、証明書シリアルナンバーSN0には現状の証明書失効リストに含まれているということ及び一致する証明書が無効であるということが評価される。
【０１７６】
後者の場合には、スマートカードは、SESi0を受信した単一のセキュアエントリーセットがSNj<SN0<SNj+1となるような2つの失効証明シリアルナンバーSNjとSNj+1とを事実上備えているということ、または、SESi0= SES1である場合に、証明書シリアルナンバーSN0がセキュアエントリーセットSESi0の第一失効証明シリアルナンバーSNfi0より小さいということ、或いは、SESi0=SESiMAXである場合に、SN0がセキュアエントリーセットSESi0の最終失効証明シリアルナンバーSNli0より大きいということを検査する。
【０１７７】
スマートカードが受信した結果データが2つのセキュアエントリーセットSESi0とSESi0+1とを備える場合には、スマートカード61は、2つのセキュアエントリーセットの失効証明シリアルナンバーの中でSNj<SN0<SNj+1となるような2つの失効証明シリアルナンバーSNjとSNj+1とを検索する。
【０１７８】
2つの失効証明シリアルナンバーSNjとSNj+1とが結果データにおいて認識された時には、結果データが1つまたは2つのセキュアエントリーセットを備えているかどうかにかかわらず、スマートカードは、これらの2つの失効証明シリアルナンバーSNjとSNj+1とが事実上リストの中で一連となっていることを検査する。後に証明書は有効であると評価される。
【０１７９】
「限界」条件の1つが満たされているとき、即ち、SESi0 = SES1である場合に証明書シリアルナンバーSN0が受信したセキュアエントリーセットSESi0の第一失効証明シリアルナンバーSNfi0より小さいとき、または、SESi0 = SESiMAXである場合にSN0がセキュアエントリーセットSESi0の最終失効証明シリアルナンバーSNli0より大きいときに、シリアルナンバーSN0を有する証明書もまた有効であると評価される。
【０１８０】
本発明は限られたいくつかの実施形態において説明したが、この開示の利点を有する技術的に優れたそれらの実施形態は、ここに明らかにされているような本発明の範囲を逸脱しない他の実施形態が考案され得るということを十分理解するであろう。従って、本発明の範囲はクレームによってのみ制限されるべきである。
【図面の簡単な説明】
【０１８１】
【図１】従来におけるスマートカードの例を示す図。
【図２Ａ】スマートカードとCRLとを検査するための従来の方法の例を示す図。
【図２Ｂ】CRLを用いて認証証明書の妥当性を検査するための従来の第二方法の例を示す図。
【図３Ａ】第一デバイスからCRLの失効証明識別子にアクセスする様子を示す図。
【図３Ｂ】証明識別子SN0が第二デバイスに送信され、証明識別子SN0を有する証明書が評価される様子を示す図。
【図４】本発明の第一の好ましい実施形態に係るシステムのホストデバイスによって実装されるアルゴリズムの例を示す図。
【図５】本発明の第一の好ましい実施形態に係るシステムのスマートカードによって実装されるアルゴリズムの例を示す図。
【図６】本発明の第二の好ましい実施形態に係るシステムの例を示す図。
【図１】
0004774235.tif 000002
【図２Ａ】
0004774235.tif 000003
【図２Ｂ】
0004774235.tif 000004
【図３Ａ】
0004774235.tif 000005
【図３Ｂ】
0004774235.tif 000006
【図４】
0004774235.tif 000007
【図５】
0004774235.tif 000008
【図６】
0004774235.tif 000009