(57)【要約】【課題】デジタル署名の検証において、タイムスタンプ認証局の依存度を低減させ、通常の公開鍵証明書の有効期間を超えた長期検証を可能にする装置を提供する。【解決手段】検証受付部２はユーザからの受付窓口である。リポジトリ３はデジタル署名長期検証装置１からの検索の要求に対して、保管している証明書失効リストを応答する。タイムスタンプ認証局４はデジタルデータに相対的時刻認証方式のタイムスタンプを付与して返送する。それらを相互に接続するネットワークを具備したデジタル署名長期検証システム１において、デジタル署名長期検証装置１は証明書失効リストのタイムスタンプとユーザが公開鍵証明書を無効にした直前後にタイムスタンプ認証局４から発行されたタイムスタンプ及びユーザのデジタルデータに付与されているタイムスタンプの時間的な前後関係と相対的時刻認証方式のタイムスタンプの順序性の規則からデジタル署名の有効性を判定する。【選択図】    図１
2005136482.tif 000002
【特許請求の範囲】
【請求項１】
エンドユーザのコンピュータと、公開鍵証明書と証明書失効リストを発行する認証局と、前記エンドユーザのコンピュータからデジタル署名及びタイムスタンプが付与されたデジタルデータの検証要求を受け付ける検証受付部と、前記検証受付部から送信されたデジタルデータの検証を行うデジタル署名長期検証装置と、前記認証局から発行された証明書失効リストを保管し、前記デジタル署名長期検証装置からの前記証明書失効リスト検索の要求に対して、保管している前記証明書失効リストを応答するリポジトリ部と、前記デジタル署名長期検証装置から送信されたデジタルデータに相対的時刻認証方式のタイムスタンプを付与して返送するタイムスタンプ認証局と、前記コンピュータ、前記認証局、前記検証受付部、前記デジタル署名長期検証装置、前記リポジトリ部及び前記タイムスタンプ認証局を相互に接続するネットワークとを具備するデジタル署名長期検証システムにおいて、
前記デジタル署名長期検証装置は、
前記リポジトリ部に保管されている証明書失効リストを所定の時間毎に取得してデータベースに保管する手段と、
前記証明書失効リストのタイムスタンプを前記タイムスタンプ認証局から取得して前記データベースに保管する手段と、
前記検証受付部から前記デジタル署名の検証要求を受け付け、前記データベースに保管されている前記証明書失効リストのタイムスタンプと前記エンドユーザが前記デジタル署名に対応する公開鍵証明書を無効にした直前後に前記タイムスタンプ認証局から発行されたタイムスタンプ及び前記エンドユーザのデジタルデータに付与されているタイムスタンプの時間的な前後関係と相対的時刻認証方式のタイムスタンプの順序性の規則から前記デジタル署名の有効・無効を判定し、前記検証受付部へ判定結果を応答する手段と、
を具備することを特徴とするデジタル署名長期検証システム。
【請求項２】
前記リポジトリ部は、
前記認証局から発行された公開鍵証明書を保管する手段と、
前記デジタル署名長期検証装置からの前記公開鍵証明書の検索の要求に応じて、保管している前記公開鍵証明書を応答する手段を備え、
前記デジタル署名長期検証装置は、
前記リポジトリ部に保管されている前記公開鍵証明書を所定の時間毎に取得して前記データベースに保管する手段と、前記公開鍵証明書のタイムスタンプを前記タイムスタンプ認証局から取得して前記データベースに保管する手段と、前記検証受付部から前記デジタル署名の検証を受け付け、前記公開鍵証明書の有効・無効の判定をし、前記検証受付部へ判定結果を応答する手段とを備えたことを特徴とする請求項１記載のデジタル署名長期検証システム。
【請求項３】
前記デジタル署名長期検証装置は、前記検証受付部からデジタルデータの時刻ｔの時点でのデジタル署名と時刻ｔと前記デジタルデータのタイムスタンプRTA(t)を受け付け、
前記エンドユーザがデジタル署名に対応する公開鍵証明書を無効にした時刻t1を前記データベースに保管している前記証明書失効リストから検索して取得し、
前記データベースに保管している前記証明書失効リストから時刻t1の直前に前記証明書失効リストが発行された時刻T1を検索して取得し、
前記データベースから時刻T1の前記証明書失効リストに対応するタイムスタンプRTA(T1)を検索して取得し、
時刻t1の直前に前記タイムスタンプ認証局が発行したタイムスタンプRTA(t1_before)と前記時刻 t1の直後に前記タイムスタンプ認証局が発行したタイムスタンプRTA(t1_after)を前記タイムスタンプ認証局から取得し、
前記時刻t の値に応じて t < T1 の場合でRTA(T1)＜RTA(t)の場合には「署名は無効」を返し、
T1 < t < t1_beforeの場合で、RTA(t1_before)＜RTA(t)の場合には「署名は無効」を返し、
t1_before < t < t1の場合で RTA(t1_after)＜RTA(t) の場合には「署名は無効」を返し、
t1_before < t < t1の場合でRTA(t)＜RTA(t1_after)  または t1 < t の場合には公開鍵証明書検証を行い、
前記公開鍵証明書検証で結果が無効の場合には「署名は無効」を返し、
前記公開鍵証明書検証で結果が有効の場合には、デジタル署名検証を行い、
前記デジタル署名検証で結果が無効の場合には「署名は無効」を返し、
前記デジタル署名検証で結果が有効の場合には「署名は有効」を返す手段を特徴とする請求項１記載のデジタル署名長期検証システム。
【請求項４】
エンドユーザのコンピュータと、公開鍵証明書と証明書失効リストを発行する認証局と、前記エンドユーザのコンピュータからデジタル署名及びタイムスタンプが付与されたデジタルデータの検証要求を受け付ける検証受付部と、前記検証受付部から送信されたデジタルデータの検証を行うデジタル署名長期検証装置と、前記認証局から発行された公開鍵証明書または証明書失効リストを保管し、前記デジタル署名長期検証装置からの前記公開鍵証明書または前記証明書失効リスト検索の要求に対して、保管している前記公開鍵証明書または前記証明書失効リストを応答するリポジトリ部と、前記デジタル署名長期検証装置から送信されたデジタルデータに相対的時刻認証方式のタイムスタンプを付与して返送するタイムスタンプ認証局と、前記コンピュータ、前記認証局、前記検証受付部、前記デジタル署名長期検証装置、前記リポジトリ部及び前記タイムスタンプ認証局を相互に接続するネットワークとを具備するデジタル署名長期検証システムにおいて、
前記認証局から発行された前記公開鍵証明書または前記証明書失効リストが前記リポジトリ部において公開される毎に、前記リポジトリ部から前記公開鍵証明書または前記証明書失効リストを取得し、時刻証明取得部を介して公開鍵証明書のタイムスタンプまたは証明書失効リストのタイムスタンプを取得し、前記公開鍵証明書を取得した場合は証明書保管データベースに保管し、前記証明書失効リストを取得した場合は失効リスト保管データベースに保管し、前記公開鍵証明書のタイムスタンプまたは前記証明書失効リストのタイムスタンプを前記時刻証明取得部を介して時刻証明保管データベースに保管する検証情報取得部と、
デジタル署名の検証の要求を検証受付部から受け付け、前記証明書保管データベースから前記公開鍵証明書を取得し、前記失効リスト保管データベースから前記証明書失効リストを取得し、前記時刻証明取得部を介して前記公開鍵証明書及び前記証明書失効リストのタイムスタンプを取得し、取得した情報及び前記デジタル署名に対応する公開鍵証明書が無効にされた直前後にタイムスタンプ認証局から発行されたタイムスタンプの情報に基づき前記デジタル署名の検証を行う検証部と、
前記検証情報取得部と前記検証部からの要求に従って、前記公開鍵証明書または前記証明書失効リストのタイムスタンプをタイムスタンプ認証局から取得し、前記タイムスタンプの有効性を検証し、前記タイムスタンプを前記時刻証明保管データベースへ保管する前記時刻証明取得部と、
前記検証部及び前記検証情報取得部からの要求に応じて前記公開鍵証明書の検索及び前記公開鍵証明書を保管する前記証明書保管データベースと、
前記検証部及び前記検証情報取得部からの要求に応じて前記証明書失効リストの検索及び前記証明書失効リストの保管を行う前記失効リスト保管データベースと、
前記時刻証明取得部の要求により前記タイムスタンプを保管する前記時刻証明保管データベースと、
を備えたデジタル署名長期検証装置。
【請求項５】
エンドユーザのコンピュータと、公開鍵証明書と証明書失効リストを発行する認証局と、前記エンドユーザのコンピュータからデジタル署名及びタイムスタンプが付与されたデジタルデータの検証要求を受け付ける検証受付部と、前記検証受付部から送信されたデジタルデータの検証を行うデジタル署名長期検証装置と、前記認証局から発行された公開鍵証明書または証明書失効リストを保管し、前記デジタル署名長期検証装置からの前記公開鍵証明書または前記証明書失効リスト検索の要求に対して、保管している前記公開鍵証明書または前記証明書失効リストを応答するリポジトリ部と、前記デジタル署名長期検証装置から送信されたデジタルデータに相対的時刻認証方式のタイムスタンプを付与して返送するタイムスタンプ認証局と、前記コンピュータ、前記認証局、前記検証受付部、前記デジタル署名長期検証装置、前記リポジトリ部及び前記タイムスタンプ認証局を相互に接続するネットワークとを具備するデジタル署名長期検証システムにおいて、
前記デジタル署名検証装置のコンピュータに、
前記認証局から発行された前記公開鍵証明書または前記証明書失効リストが前記リポジトリ部において公開される毎に前記公開鍵証明書または前記証明書失効リストを取得し、データベースに保管する手順、
取得した前記証明書失効リストと前記公開鍵証明書に対して、前記タイムスタンプ認証局へタイムスタンプの付与を依頼し、付与された前記タイムスタンプを前記データベースに保管する手順、
前記検証受付部から前記デジタル署名の検証要求を受け付け、前記データベースに保管されている前記証明書失効リストと前記証明書失効リストのタイムスタンプと前記エンドユーザが前記デジタル署名に対応する公開鍵証明書を無効にした直前後に前記タイムスタンプ認証局から発行されたタイムスタンプ及び前記エンドユーザのデジタルデータに付与されているタイムスタンプの時間的な前後関係と相対的時刻認証方式のタイムスタンプの順序性の規則から前記デジタル署名の有効・無効を判定し、さらに、前記デジタル署名の前記公開鍵証明書と前記デジタル署名の判定を行い、前記検証受付部へ判定結果を応答する手順を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル署名の利用に関し、特に、デジタル署名長期検証システム及びデジタル署名長期検証装置並びにそのコンピュータプログラムに関する。
【背景技術】
【０００２】
デジタル署名を検証するために用いる公開鍵証明書には通常１〜５年間の有効期間が存在する。公開鍵証明書の有効期間内において、所有者の氏名変更や、秘密鍵の漏洩などの理由により公開鍵証明書を失効させる必要がある場合、当該公開鍵証明書の所有者は速やかにその失効時刻を認証局に通知し、認証局は定期的に発行する証明書失効リストに当該公開鍵証明書に関する失効情報（公開鍵証明書シリアル番号、失効時刻、失効理由など）を追加する。デジタル署名の検証は、署名データ自体の有効性と、公開鍵証明書の証明書失効リストへの記載の有無で検証される。しかし、証明書失効リストに記載された公開鍵証明書の情報はその公開鍵証明書の有効期間を経過した後に発行される証明書失効リストからは削除されるため、公開鍵証明書の有効期間を経過した後は失効の有無を確認できなくなり、デジタル署名の検証を正しく行うことができなくなる。本来、公開鍵証明書の有効期間は、認証局が公開鍵証明書とその持ち主との対応付けを保証できる期間の限界を示すものであるため、必然的に公開鍵証明書の有効期間を経過したデジタル署名は無効と見なされるべきである。しかし、甲と乙の２者による契約の際、ある長期間の契約、例えば公開鍵証明書の有効期間よりも長い法人の契約書の保管期間等や１０年後に建物譲渡特約がある不動産契約等において、甲が契約文書にデジタル署名を付与し、契約期間終了後に、乙（または第三者）が契約時点における甲のデジタル署名の有効性を検証する（正確には、高い証拠能力を持つ複数のデータを組み合わせて推測する）ことにより、契約終了時における甲の否認を防止したいという場合もあり、そのような利用形態を実現することが望まれている。
【０００３】
公開鍵証明書の有効期間を経過した後においても、過去の指定時刻におけるデジタル署名の有効性検証を試みる手段を提供する方式として、特許文献１に示す方式（以下、従来技術）がある。その方式は、図１５に示すように、あらかじめLTSV（長期署名検証）サーバと呼ばれるデータベースシステムがデジタル署名の検証に必要なPKI(公開鍵基盤)状態、即ち公開鍵証明書、証明書失効リストなどを保管し、必要になった際に過去のある時刻におけるPKI状態を正確に再生するものである。その再生環境下で再検証を行う手段を提供することにより、当該時刻におけるデジタル署名の有効性の検証が可能となる。さらに、従来技術は、文書、デジタル署名、およびPKI状態の存在時刻に関する証拠能力を高めるため、タイムスタンプ技術を併用する方法も主張している。
【特許文献１】特開平１１−１１９６５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術を、裁判等において十分な説得力を持ちうる証拠として利用するためには、文書、デジタル署名、PKI状態の存在時刻を保証するタイムスタンプ技術が間違いなく必須であると考えられる。
ところで、従来技術においては、タイムスタンプ認証局は長期間にわたり絶対的に不正を行わない信頼できるTTP(第三者機関)として位置づけており、タイムスタンプ認証局が生成するタイムスタンプに利用される時刻は絶対的に正しいと仮定している。例えば、タイムスタンプ方式の一つであるシンプル・プロトコルは、タイムスタンプ認証局が対象データおよびその受領時刻データに対し単にデジタル署名を付与する方式であり、第三者がタイムスタンプ認証局の付与する時刻の正当性を検証する仕組みが確立されていないため、タイムスタンプ認証局は利用者と結託してタイムスタンプに任意の時刻を付与することができる。従って、シンプル・プロトコルでは、タイムスタンプ認証局がTTPであることは必要条件であり、タイムスタンプ認証局が付与する時刻を全面的に信頼することになる。
【０００５】
このような状態においては、図１６に示すように、以下のような不正が考えられる。甲が時刻t1に乙の秘密鍵を盗み出し、甲に有利となる内容の契約文書、およびそれに対する乙のデジタル署名を生成する。秘密鍵が盗まれたことに気付いた乙は、後に時刻t1(または検知ラグを考慮して時刻t1より若干前の時刻t1’(< t1))に公開鍵証明書が失効されたことを認証局へ通知し、次回以降発行される証明書失効リストには「乙の公開鍵証明書が時刻t1 (または t1’)に失効された」旨の記載がされる。これを確認した後、甲は契約文書およびそのデジタル署名に対するタイムスタンプ付与をタイムスタンプ認証局へ依頼する。このとき、タイムスタンプ認証局は甲と結託し、時刻t1（または t1’）より前の時刻t2 (< t1’ < t1) が付与されたタイムスタンプを発行する。甲は乙へ契約文書、それに対する乙のデジタル署名、およびそれらに対する時刻 t2 が付与されたタイムスタンプを提出し、「時刻 t2 の時点では公開鍵証明書は失効されていないため、契約は有効のはずである」と主張する。
この問題は、長期検証に限らず短期検証にも存在する問題であるが、長期間が経過すればするほど、資金的にタイムスタンプ認証局の運営存続が困難な状況に陥るなどタイムスタンプ認証局の信頼性が急激に減少する不測の事態が起こる可能性が高いため、長期検証においては特に考慮すべき問題である。
さらに、シンプル・プロトコルにおけるタイムスタンプの安全性はデジタル署名の安全性に依存する。長期検証の対象であるデジタル署名の存在時刻を保障する役割を持つタイムスタンプが、同様のデジタル署名技術によって実現されることは、そのデジタル署名の安全性が低下したとき無意味となる。よって、特に長期検証を意識した場合、タイムスタンプ技術はデジタル署名とは異なるより安全性の高い技術により実現されるべきである。
以上より、従来技術には、デジタル署名の長期検証においてタイムスタンプ認証局の信頼性に大きく依存しているという問題がある。
【０００６】
本発明は、このような事情に鑑みてなされたもので、その目的は、デジタル署名の検証において、タイムスタンプ認証局の信頼性への依存度を低減させかつ通常のデジタル署名に用いた公開鍵証明書の有効期間を超える期間での検証ができるデジタル署名長期検証システム及びデジタル署名長期検証装置並びにそのコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
この発明は上記の課題を解決するためになされたもので、請求項１に記載の発明は、エンドユーザのコンピュータと、公開鍵証明書と証明書失効リストを発行する認証局と、前記エンドユーザのコンピュータからデジタル署名及びタイムスタンプが付与されたデジタルデータの検証要求を受け付ける検証受付部（検証受付アプリケーション２）と、前記検証受付部から送信されたデジタルデータの検証を行うデジタル署名長期検証装置と、前記認証局から発行された証明書失効リストを保管し、前記デジタル署名長期検証装置からの前記証明書失効リスト検索の要求に対して、保管している前記証明書失効リストを応答するリポジトリ部（リポジトリ３）と、前記デジタル署名長期検証装置から送信されたデジタルデータに相対的時刻認証方式（リンキング・プロトコル方式）のタイムスタンプを付与して返送するタイムスタンプ認証局（TSA４）と、前記コンピュータ、前記認証局、前記検証受付部、前記デジタル署名長期検証装置、前記リポジトリ部及び前記タイムスタンプ認証局を相互に接続するネットワークとを具備するデジタル署名長期検証システムにおいて、前記デジタル署名長期検証装置は、前記リポジトリ部に保管されている証明書失効リストを所定の時間毎に取得してデータベースに保管する手段と、前記証明書失効リストのタイムスタンプを前記タイムスタンプ認証局から取得して前記データベースに保管する手段と、前記検証受付部から前記デジタル署名の検証要求を受け付け、前記データベースに保管されている前記証明書失効リストのタイムスタンプと前記エンドユーザが前記デジタル署名に対応する公開鍵証明書を無効にした直前後に前記タイムスタンプ認証局から発行されたタイムスタンプ及び前記エンドユーザのデジタルデータに付与されているタイムスタンプの時間的な前後関係と相対的時刻認証方式のタイムスタンプの順序性の規則から前記デジタル署名の有効・無効を判定し、前記検証受付部へ判定結果を応答する手段と、を具備することを特徴とするデジタル署名長期検証システムである。
【０００８】
請求項２に記載の発明は、請求項１に記載のデジタル署名長期検証システムにおいて、前記リポジトリ部は、前記認証局から発行された公開鍵証明書を保管する手段と、前記デジタル署名長期検証装置からの前記公開鍵証明書の検索の要求に応じて、保管している前記公開鍵証明書を応答する手段を備え、前記デジタル署名長期検証装置は、前記リポジトリ部に保管されている前記公開鍵証明書を所定の時間毎に取得して前記データベースに保管する手段と、前記公開鍵証明書のタイムスタンプを前記タイムスタンプ認証局から取得して前記データベースに保管する手段と、前記検証受付部から前記デジタル署名の検証を受け付け、前記公開鍵証明書の有効・無効の判定をし、前記検証受付部へ判定結果を応答する手段とを備えたことを特徴とする。
【０００９】
請求項３に記載の発明は、請求項１に記載のデジタル署名長期検証システムにおいて、前記デジタル署名長期検証装置は、前記検証受付部からデジタルデータの時刻ｔの時点でのデジタル署名と時刻ｔと前記デジタルデータのタイムスタンプRTA(t)を受け付け、前記エンドユーザがデジタル署名に対応する公開鍵証明書を無効にした時刻t1を前記データベースに保管している前記証明書失効リストから検索して取得し、前記データベースに保管している前記証明書失効リストから時刻t1の直前に前記証明書失効リストが発行された時刻T1を検索して取得し、前記データベースから時刻T1の前記証明書失効リストに対応するタイムスタンプRTA(T1)を検索して取得し、時刻t1の直前に前記タイムスタンプ認証局が発行したタイムスタンプRTA(t1_before)と前記時刻 t1の直後に前記タイムスタンプ認証局が発行したタイムスタンプRTA(t1_after)をタイムスタンプ認証局から取得し、前記時刻t の値に応じて t < T1 の場合でRTA(T1)＜RTA(t)の場合には「署名は無効」を返し、T1 < t < t1_beforeの場合で、RTA(t1_before)＜RTA(t)の場合には「署名は無効」を返し、t1_before < t < t1の場合で RTA(t1_after)＜RTA(t) の場合には「署名は無効」を返し、t1_before < t < t1の場合でRTA(t)＜RTA(t1_after)  または t1 < t の場合には公開鍵証明書検証を行い、前記公開鍵証明書検証で結果が無効の場合には「署名は無効」を返し、前記公開鍵証明書検証で結果が有効の場合には、デジタル署名検証を行い、前記デジタル署名検証で結果が無効の場合には「署名は無効」を返し、前記デジタル署名検証で結果が有効の場合には「署名は有効」を返す手段を特徴とする。
【００１０】
請求項４に記載の発明は、エンドユーザのコンピュータと、公開鍵証明書と証明書失効リストを発行する認証局と、前記エンドユーザのコンピュータからデジタル署名及びタイムスタンプが付与されたデジタルデータの検証要求を受け付ける検証受付部と、前記検証受付部から送信されたデジタルデータの検証を行うデジタル署名長期検証装置と、前記認証局から発行された公開鍵証明書または証明書失効リストを保管し、前記デジタル署名長期検証装置からの前記公開鍵証明書または前記証明書失効リスト検索の要求に対して、保管している前記公開鍵証明書または前記証明書失効リストを応答するリポジトリ部と、前記デジタル署名長期検証装置から送信されたデジタルデータに相対的時刻認証方式のタイムスタンプを付与して返送するタイムスタンプ認証局と、前記コンピュータ、前記認証局、前記検証受付部、前記デジタル署名長期検証装置、前記リポジトリ部及び前記タイムスタンプ認証局を相互に接続するネットワークとを具備するデジタル署名長期検証システムにおいて、前記認証局から発行された前記公開鍵証明書または前記証明書失効リストが前記リポジトリ部において公開される毎に、前記リポジトリ部から前記公開鍵証明書または前記証明書失効リストを取得し、時刻証明取得部を介して公開鍵証明書のタイムスタンプまたは証明書失効リストのタイムスタンプを取得し、前記公開鍵証明書を証明書保管データベースに保管し、前記証明書失効リストを失効リスト保管データベースに保管し、前記公開鍵証明書のタイムスタンプまたは前記証明書失効リストのタイムスタンプを前記時刻証明取得部を介して時刻証明保管データベースに保管する検証情報取得部と、デジタル署名の検証の要求を検証受付部から受け付け、前記証明書保管データベースから前記公開鍵証明書を取得し、前記失効リスト保管データベースから前記証明書失効リストを取得し、前記時刻証明取得部を介して前記公開鍵証明書及び前記証明書失効リストのタイムスタンプを取得し、取得した情報及び前記デジタル署名に対応する公開鍵証明書が無効にされた直前後にタイムスタンプ認証局から発行されたタイムスタンプの情報に基づき前記デジタル署名の検証を行う検証部と、前記検証情報取得部と前記検証部からの要求に従って、前記公開鍵証明書または前記証明書失効リストのタイムスタンプをタイムスタンプ認証局から取得し、前記タイムスタンプの有効性を検証し、前記タイムスタンプを前記時刻証明保管データベースへ保管する前記時刻証明取得部と、前記検証部及び前記検証情報取得部からの要求に応じて前記公開鍵証明書の検索及び前記公開鍵証明書を保管する前記証明書保管データベースと、前記検証部及び前記検証情報取得部からの要求に応じて前記証明書失効リストの検索及び前記証明書失効リストの保管を行う前記失効リスト保管データベースと、前記時刻情報取得部の要求により前記タイムスタンプを保管する前記時刻証明保管データベースと、を備えたデジタル署名長期検証装置である。
【００１１】
請求項５に記載の発明は、エンドユーザのコンピュータと、デジタル署名の認証を行う認証局と、前記エンドユーザのコンピュータからデジタル署名及びタイムスタンプが付与されたデジタルデータの検証要求を受け付ける検証受付部と、前記検証受付部から送信されたデジタルデータの検証を行うデジタル署名長期検証装置と、前記認証局から発行された公開鍵証明書または証明書失効リストを保管し、前記デジタル署名長期検証装置からの前記公開鍵証明書または前記証明書失効リスト検索の要求に対して、保管している前記公開鍵証明書または前記証明書失効リストを応答するリポジトリ部と、前記デジタル署名長期検証装置から送信されたデジタルデータに相対的時刻認証方式のタイムスタンプを付与して返送するタイムスタンプ認証局と、前記コンピュータ、前記認証局、前記検証受付部、前記デジタル署名長期検証装置、前記リポジトリ部及び前記タイムスタンプ認証局を相互に接続するネットワークとを具備するデジタル署名長期検証システムにおいて、前記デジタル署名検証装置のコンピュータに、前記認証局から発行された前記公開鍵証明書または前記証明書失効リストが前記リポジトリ部において公開される毎に前記公開鍵証明書または前記証明書失効リストを取得し、データベースに保管する手順、取得した前記証明書失効リストと前記公開鍵証明書に対して、前記タイムスタンプ認証局から前記タイムスタンプの付与を依頼し、付与された前記タイムスタンプをデータベースに保管する手順、前記検証受付部から前記デジタル署名の検証要求を受け付け、前記データベースに保管されている前記証明書失効リストと前記証明書失効リストのタイムスタンプと前記エンドユーザが前記デジタル署名に対応する公開鍵証明書を無効にした直前後に前記タイムスタンプ認証局から発行されたタイムスタンプ及び前記エンドユーザのデジタルデータに付与されているタイムスタンプの時間的な前後関係と相対的時刻認証方式のタイムスタンプの順序性の規則から前記デジタル署名の有効・無効を判定し、さらに、前記デジタル署名の前記公開鍵証明書と前記デジタル署名の判定を行い、前記検証受付部へ判定結果を応答する手順と、を実行させるためのプログラムである。
【発明の効果】
【００１２】
この発明によれば、デジタル署名長期検証システムにおいて、タイムスタンプ認証局が発行するタイムスタンプとして相対的時刻認証が可能なリンキング・プロトコル方式を採用している。これによって、デジタル署名長期検証装置上で動作するプログラムはデジタル署名長期検証装置で保管している証明書失効リストとそのタイムスタンプ情報とタイムスタンプ認証局が利害関係者以外に発行した検証の要求者がデジタル署名に対応する公開鍵証明書が無効にした前後のタイムスタンプ情報の両方を利用し、リンキング・プロトコル方式のタイムスタンプ値の順序の規則を用いて改ざんの有無を判定することが可能となる。これによって、デジタル署名検証におけるタイムスタンプ認証局への依存度を低減する効果がある。
【００１３】
また、この発明によれば、デジタル署名長期検証装置は認証局から証明書失効リストが発行されリポジトリで公開される毎にその証明書失効リストとその証明書失効リストが発行された時点でのタイムスタンプを保管する仕組みをもっている。これにより、保管する期間が通常のデジタル署名に用いた公開鍵証明書の有効期間を超えている場合には、その有効期間を超えた検証を可能とする効果がある。
【発明を実施するための最良の形態】
【００１４】
本明細書において用いる主な用語について以下に示す。
認証局（以下、CA）：エンドユーザの登録、公開鍵証明書の発行、失効、鍵管理を行う機関。
証明書（公開鍵証明書、PKC）：ある公開鍵が、記載された個人または役職のものであることを証明する電子的な文書。認証局が記載内容を確認の上、記載内容に認証局のデジタル署名を付与して公開鍵証明書を発行する。
証明書失効リスト（以下、CRL）：公開鍵証明書の有効期間中に内容変更や秘密鍵の盗難、紛失、破壊などが生じ、失効した公開鍵証明書のリスト。このリストには、失効対象の公開鍵証明書を発行した認証局の署名が付与される。
リポジトリ：公開鍵証明書及び失効リスト等が格納され、これらの公開鍵証明書や失効リストをエンドユーザが検索及び取出しする手段として利用する分散されたシステム。
デジタル署名：メッセージ送信者を認証しメッセージの完全性を保証する電子的署名。署名者が秘密に保有する秘密鍵（署名鍵とも呼ばれる）を用いて作成されたメッセージと署名データのペアが、署名者の公開鍵（検証鍵とも呼ばれる）を用いて正当なペアかどうか検証できる。
検証局（VA）：公開鍵証明書検証要求を受け付け、公開鍵証明書の有効性を検証し、署名した応答を返すサーバ。
認証パス：自己の認証局（階層型の場合はrootCA）から相手の公開鍵証明書を発行した認証局までをたどる検証の道筋。信頼する自己の認証局が発行したブリッジ認証局への相手認証証明書。ブリッジ認証局が発行した相手の認証局の相互認証証明書をそれぞれ信頼することができ、最終的に相手の公開鍵証明書に記載の内容が信頼できる。
認証パス構築：上記認証パスを公開鍵証明書の発行者名と鍵情報をもとに、その道筋をつなげていく処理。
認証パス検証：認証パスを構成する各公開鍵証明書の署名検証、失効確認とパス間のポリシーや制約条件を満たしているかどうか検証を行う処理。
タイムスタンプ認証局（以下、TSA）：デジタルデータに対して、サーバが保有する信頼できる時刻の付与を行う機関。
リンキング・プロトコル：タイムスタンプ方式の一つであり、タイムスタンプ要求によるハッシュのダイジェストを、以前に発行したタイムスタンプ要求によるダイジェストと絡めて存在を証明する方式。
シンプル・プロトコル：タイムスタンプ方式の一つであり、時刻を証明したいデジタルデータのダイジェストに対してタイムスタンプ機関で時刻情報を加え、タイムスタンプ機関のデジタル署名を付与する方式。
【００１５】
以下、図面を参照し、この発明の実施の形態について説明する。図１は本発明のネットワーク上における実施形態である。１はデジタル署名検証を行うデジタル署名長期検証装置である。２はエンドユーザからデジタル署名とタイムスタンプとが付与されたデジタルデータ検証の要求を受け付け、デジタル署名長期検証装置１へ検証を要求し、デジタル署名長期検証装置１からの検証結果を受取り、エンドユーザへ検証結果を応答する検証受付アプリケーションである。３は認証局が発行した公開鍵証明書やCRLを保管し、その内容を公開しているリポジトリである。４は利用者からの依頼に基づいてタイムスタンプを発行するTSAであり、リンキング・プロトコル方式を具備している。さらに、デジタル署名長期検証装置１は検証部１１、検証情報取得部１２、時刻証明取得部１３、証明書保管データベース（以下、DB）１４、失効リスト保管DB １５、時刻証明保管DB１６から構成されている。図２は検証部１１のブロック図である。検証部１１はメモリ、CPU、制御装置、表示装置、入力装置及通信装置から構成されており、認証パス検証を行い、公開鍵証明書・失効リストの存在性、有効性を証明する機能を具備している。図３は検証情報取得部１２のブロック図である。検証情報取得部１２はパス検証に用いる公開鍵証明書・失効リストをリポジトリから定期的に取得し、それぞれ証明書保管DB１４と失効リスト保管DB１５に保管する機能を具備している。図４は時刻証明取得部１３のブロック図である。時刻証明取得部１３はパス検証に用いる公開鍵証明書・失効リストに対して、タイムスタンプをTSA４から取得し、時刻証明保管DB１４にタイムスタンプ保管する機能を具備している。証明書保管DB１４、失効リスト保管DB １５、時刻証明保管DB１６はそれぞれ改ざんや削除破棄ができないようなセキュリティ機能を持った保管装置である。
【００１６】
次に、上述した実施形態の動作を図５〜図８を参照して説明する。図５は検証情報取得部１２が公開鍵証明書を定期的にリポジトリから取得する場合のシーケンスである。まず、検証情報取得部１２内部のバッチ制御装置４７は証明書取得バッチ起動S1を証明書取得制御装置４１に通知する。証明書取得制御装置４１は証明書取得バッチ起動S1を受信すると、リポジトリアクセス装置４０が取得対象証明書検索S2をリポジトリ３に対して送信し、リポジトリ３は検索結果S3を応答する。リポジトリアクセス装置４０は検索結果S3から該当する公開鍵証明書の存在を確認し、存在する場合は次に証明書取得要求S4をリポジトリ３へ送信し、リポジトリ３は該当する公開鍵証明書と共に証明書S5を応答する。次に、証明書内容確認装置４２は受信した公開鍵証明書に対して証明書内容確認S6の処理を行う。
次に、タイムスタンプ取得制御装置４５はタイムスタンプ取得要求S7を時刻証明取得部１３に通知し、次にタイムスタンプ検証制御装置４６はタイムスタンプ検証要求S8を時刻証明取得部１３に通知し、次にタイムスタンプ保管制御装置５０がタイムスタンプ保管要求S9を時刻証明取得部１３に通知する。この３つの通知により、時刻証明取得部１３が取得した公開鍵証明書のタイムスタンプをTSA４から取得し、それを時刻証明保管DB１６に保管する。
最後に、証明書保管制御装置４４が公開鍵証明書と公開鍵証明書のタイムスタンプの検索キーを証明書保管S10で証明書保管DB １４に保管して一連の処理を終了する。
【００１７】
図６は検証情報取得部１２が失効リストを定期的にリポジトリ３から取得する場合のシーケンスである。まず、検証情報取得部１２内部のバッチ制御装置４７は失効リスト取得バッチ起動S20を失効リスト取得制御装置４３に通知する。失効リスト取得制御装置４３が失効リスト取得バッチ起動S20を受信すると、リポジトリアクセス装置４０が取得対象失効リスト検索S21をリポジトリ３に対して送信し、リポジトリ3は検索結果S22を応答する。リポジトリアクセス装置４０は検査結果S22から該当する失効リストの存在を確認し、存在する場合は次に失効リスト取得要求S23をリポジトリ３へ送信し、リポジトリ３は該当するCRLを失効リストS24と共に応答する。次に、失効リスト検証装置４８は取得したCRLに対して失効リスト検証S25の処理を行う。
次に、タイムスタンプ取得制御装置４５はタイムスタンプ取得要求S26を時刻証明取得部１３に通知し、次にタイムスタンプ検証制御装置４６はタイムスタンプ検証要求S27を時刻証明取得部１３に通知し、次にタイムスタンプ保管制御装置５０がタイムスタンプ保管要求S29を時刻証明取得部１３に通知する。この３つの通知により、時刻証明取得部１３が取得したCRLのタイムスタンプをTSA４から取得し、それを時刻証明保管DBに保管する。
最後に、失効リスト保管制御装置４０がCRLとCRLのタイムスタンプの検索キーを失効リスト保管S29で失効リスト保管DB １５に保管して一連の処理を終了する。
【００１８】
図７は時刻証明取得部１３の処理を示しており、タイムスタンプ取得処理とタイムスタンプ検証処理とタイムスタンプ保管処理の３つの処理を示している。
タイムスタンプ取得処理はタイムスタンプ取得装置６３が検証情報取得部１２からタイムスタンプ取得要求をS30を受信すると、TSAアクセス装置６０がTSA４にタイムスタンプ取得要求S31を送信し、TSA４は生成したタイムスタンプをタイムスタンプトークンS32としてTSAアクセス装置６０に応答する処理である。
タイムスタンプ検証処理は、タイムスタンプ検証装置６１が検証部１１または検証情報取得部１２からタイムスタンプ検証要求S33を受信すると、TSAアクセス装置６０がTSA４にタイムスタンプ検証要求S34を送信し、TSA４は受信したタイムスタンプを検証し、その検証結果をタイムスタンプ検証結果S35でTSAアクセス装置６０に応答する。このとき、検証部１１からの要求であった場合には、検証部１１に検証結果を応答する。
タイムスタンプ保管処理は、タイムスタンプ保管制御装置６２が検証情報取得部１２からタイムスタンプ保管要求S36を受信し、タイムスタンプと共にタイムスタンプトークン保管S37と通知して時刻証明保管DB１６タイムスタンプを保管する処理である。
【００１９】
図８は検証部１１の公開鍵証明書、失効リストの存在性、有効性を調べるシーケンスである。検証制御装置２０はすべての装置を管理する装置であり、その上に証明書パス構築装置２１と証明書パス検証装置３２の２装置がある。
証明書パス構築装置２１の処理は、以下の通りである。最初に、検証受付アプリケーション２から検索要求を受け取り、証明書取得装置２７が証明書検索・取得要求S40を証明書保管DB１４に送信する。証明書保管DB１４は要求された公開鍵証明書を証明書S41と共に証明書取得装置２７へ応答する。次に、証明書実在性証明装置２４が公開鍵証明書の実在性証明S42を行う。次に、時刻調停装置３１が有効期限内の公開鍵証明書かを判定する時刻調停S43を行う。最後に、証明書パス構築装置２１が認証パス構築S44を行う。
続いて、検証制御装置２０によって証明書パス検証装置３２が起動される。最初に、署名検証装置２６が公開鍵証明書の署名検証S45を行う。証明書失効確認装置２３が処理を引き継ぎ、失効リスト取得装置２８は失効リスト検索・取得要求S46を失効リスト保管DB１５に送信する。失効リスト保管DB１５は該当する失効リストを失効リストS47と共に失効リスト取得装置２８に応答する。次に、失効リスト検証装置２９が失効リストの検証S48を行う。次に、失効リスト実在性証明装置２５が失効リストの実在性証明S49を行う。次に、時刻調停装置３１が有効期限内の失効リストかを判定する時刻調停S50を行う。次に、処理が証明書失効確認装置２３に戻り公開鍵証明書の失効確認S51を行う。次にタイムスタンプ検証制御装置３０がタイムスタンプ検証要求S52を時刻証明取得部１３に送信し、時刻証明取得部１３はタイムスタンプ検証結果S53を応答する。最後に証明書パス検証装置３２が認証パス検証S54を行い一連の処理が終了する。
【００２０】
デジタル署名の改ざんが行われた場合の検証と判定の処理を図９、１０、１１、１２を参照して説明する。図９はTSA４のリンキング・プロトコルの過程を示している。以下にリンキング・プロトコルの概要を説明する。利用者がn回目に提出した提出デジタルデータはハッシュ計算される（ステップ(１)）。ハッシュ値Hn はTSA４に送付され（ステップ(２)）、ｎ-１ 回目に生成されたリンク情報 Ln-1 をリンクしたハッシュ値 Ln = H(Hn, Ln-1) が生成され（ステップ(３)）、n回目のタイムスタンプとしてデジタル署名Sig(Hn,n,Ln)が加えられ (Hn, n, Ln,Sig(Hn,n,Ln))が発行される（ステップ(４)）。このようにしてハッシュ関数の一方向連鎖が構築される。タイムスタンプ認証局は定期的に新聞等のメディアにハッシュ値の一部を公表する。検証者は、検証対象のタイムスタンプ、その発行の前後に新聞等に掲載されたハッシュ値、およびその間に処理された文書のハッシュ値を入手し、TSA４が付与した時刻の順番に並べ、発行前に新聞等に掲載されたハッシュ値からハッシュの連鎖計算をし、発行後に新聞等に掲載されたハッシュ値へ到達可能かどうかを検証することにより、処理されたタイムスタンプの順序性に関して不正がないことを確認することができる。もし、TSA４が、処理したタイムスタンプの順序を崩すような付与時間の改ざんを行った場合、この検証により不正が発覚する。ただし、順序を崩さないような付与時間の改ざんが行われた場合には発覚しない。
このリンキング・プロトコル方式のタイムスタンプの順序性の規則を用いて以下にデジタル署名を検証する方法を説明する。
【００２１】
次に、図１０はRTA(相対的時刻認証)を利用する検証システムの処理を示したものであり、以下に説明する。CAが時刻T1にCRLを発行するとデジタル署名長期検証装置１の検証情報取得部１２は直ちにリポジトリ経由でCRLを入手し、RTAの機能を持つリンキング・プロトコル方式のTSA４にそのタイムスタンプ付与を依頼する。検証情報取得部１２は取得したCRLのタイムスタンプRTA（T1）をデジタル署名長期検証装置１の時刻証明取得部を介して時刻証明保管DB１６に保管し、CRLを失効リスト保管DB１５に保管する。ここで、検証情報取得部１２は、TSA４がそのタイムスタンプに付与した時刻がT1から所定の値の範囲内であることを確認する。以降同様にして、検証情報取得部１２はCAからCRLが発行される毎にCRLのタイムスタンプを時刻証明保管DB１６に、そしてCRLを失効リスト保管DB１５に保管し続ける。この処理の詳細は上述した図６に示した通りである。
仮に、次回、次々回のCRLの発行時刻をそれぞれT2、T3とする。甲が時刻t1(T1＜t1＜T2)に乙の秘密鍵を盗み出し、その後甲に有利となる内容の契約文書およびそれに対する乙のデジタル署名を生成する。時刻T2とT3の間に秘密鍵が盗まれたことに気づいた乙は、時刻t1（または検知ラグを考慮して時刻t１より若干前の時刻 t1’ （＜t1））に公開鍵が失効されたことをCAへ通知し、時刻T3以降発行されるCRLには「乙の公開鍵証明書が時刻t1（またはt1’）に失効」された旨が記載される。甲は時刻 t3  に契約文書およびそのデジタル署名に対するタイムスタンプRTA(t3)の付与をTSA４へ依頼する。このTSA４は、検証システムがCRLに対してタイムスタンプ付与を依頼したTSA４と同一である。このとき、TSA４は甲と結託し、時刻t1(または t1’) より前の時刻t2（＜t1’ ＜t1）が付与されたタイムスタンプを発行する。甲が乙へ契約文書、それに対する乙のデジタル署名、およびそれらに対する時刻t2が付与されたタイムスタンプRTA(t3)を提出し、甲が時刻t2の時点における契約の有効性を主張する。乙は検証システムにそのデジタル署名及びタイムスタンプが付与されたデジタルデータの有効性の検証を検証受付アプリケーション２に依頼し、検証受付アプリケーション２は検証をデジタル署名長期検証装置１の検証部１１に要求する。最初に、検証部１１はt1(t1’) の直前にCAがCRLを発行した時刻T1を時刻証明取得部１３を介して時刻証明保管DB１６から取得し、時刻T1の証明書失効リストを失効リスト保管DB１５から検索して取得する。次に、t1の直前（t1_before）に他者へ発行されたタイムスタンプRTA（t1_before）とt1の直後(t1_after)に他者へ発行されたタイムスタンプRTA(t1_after)をTSA４から入手する。一般的に、TSA４の顧客はCA、甲、乙のほかに多く存在すると考えられるため、RTA（Ｔ1）とRTA（Ｔ2）が発行された間には、他の顧客へ発行されたタイムスタンプが多く点在し、甲及び乙と利害関係をもたないため改ざんが行われていないことを期待することが可能である。
入手した値とt2の値に応じてt2 < T1 の場合はRTA(T1)＜RTA(t3)の事実より「署名は無効」と判定され、また、T1< t2 < t1_beforeの場合はRTA(t1_before) ＜RTA(t3)の事実により「署名は無効」と判定され、t1_before< t2 < t1の場合でRTA(t1_after) ＜ RTA(t3) なら「署名は無効」と判定され、t1_before< t2 < t1の場合でRTA(t3)＜RTA(t1_after)なら署名検証・公開鍵証明書検証の処理へ進み、t1 < t2 の場合も署名検証・公開鍵証明書検証の処理へ進む。これらの返答結果は、TSA４が付与する絶対時刻 t1_before と t1_afterの正当性に依存するが、これらは他者へ発行されていることから、正当である可能性はある程度高いことを期待できる。
【００２２】
図１１は、TSA４が絶対時刻付与機能付きの相対的時刻認証の場合を示している。この場合、TSA４において絶対時刻T_{n}が付与され(H_{n}, n, L_{n},T_{n})及びそのデジタル署名Sig(H_{n}, n, L_{n},T_{n})がタイムスタンプとして発行される。この時、乙はタイムスタンプからCRLが発行された絶対時刻T_{n}を知ることができ、乙がCAに申請する失効時間をt1(または t1’) ではなく直前にCRLが発行された時刻であるT1として申請するとき、さらに望ましい実施形態となり得ることを示している。（このとき、乙が時刻T1からt1までに作成したデジタル署名が存在する場合、それらは無効扱いとなり当事者間で事後処理が発生するが、これは別途処理されるとする）。このとき、時刻T3に発行されるCRL3には、「乙の公開鍵証明書が時刻T1に失効された」旨の記載がされる。ここで、甲は乙へ契約文書と、乙のデジタル署名、および時刻t2が付与されたタイムスタンプRTA(t3)を提出しその有効性を主張する。乙は検証システムに検証を依頼し、検証システムはTSA４から失効時刻t1前後のタイムスタンプRTA(t1_before)とRTA(t1_after)を取得することなく、t2の値に応じて以下を返答する。 (a) T1＜t2の場合、時刻T3以降で当該公開鍵証明書の有効期間内に発行される任意のCRLの記載内容から無効と判定され、(b) t2＜T1の場合、RTA(T1)＜RTA(t3)の事実より、署名は無効と判定される。この実施例では、検証システムに保管してあるCRLに対して取得したタイムスタンプのみを利用しているため、TSA４に全面的に依存することなく、ハッシュ関数の安全性にのみに依存していることとなり、さらに確度の高い検証を行うことが可能となる。
【００２３】
図１２は図１０で説明した相対時刻認証RTAを含んだデジタル署名長期検証装置の一連の検証処理を示している。デジタル署名検証要求受付Sa1を受信し、図１０において説明した相対時刻認証RTAを用いた順序性の検証Sa2を行い、Sa2の結果順序性が有効となった場合には証明書検証Sa3で公開鍵証明書を判定し、署名検証Sa4でデジタル署名を判定する、すべての検証処理で有効となった場合にはデジタル署名は有効Sa5と判定され、それ以外はデジタル署名は無効Sa6と判定される。
【００２４】
図１３、図１４は本発明の実施形態を示すものである。図１３は電子申請の受付や署名検証サービスを実現する電子申請アプリケーション７０とデジタル署名長期検証装置７１を一つのシステムとして提供する形態である。この形態は電子申請サービス等に特化したシステムの一例である。一方、図１４は電子申請アプリケーションを利用している組織に対してデジタル署名長期検証装置７１を提供する形態であり、電子申請アプリケーション（７０ａ、７０ｂ、７０ｃ）とデジタル署名長期検証装置７１の運営主体が別の場合である。このとき、電子申請アプリケーションを利用する組織はデジタル署名長期検証装置７１の顧客となる。
【図面の簡単な説明】
【００２５】
【図１】この発明の一実施形態によるデジタル署名長期検証システムのブロック図である。
【図２】図１における検証部１１の詳細を示すブロック図である。
【図３】図１における検証情報取得部１２の詳細を示すブロック図である。
【図４】図１における時刻証明取得部１３の詳細を示すブロック図である。
【図５】同実施形態における検証情報取得部の公開鍵証明書取得の場合の動作を説明するためのシーケンス図である。
【図６】同実施形態における検証情報取得部の証明書失効リスト取得の場合の動作を説明するためのシーケンス図である。
【図７】同実施形態における時刻証明取得部の動作を説明するためのシーケンス図である。
【図８】同実施形態における検証部の動作を説明するためのシーケンス図である。
【図９】リンキング・プロトコルの動作を説明するためのブロック図である。
【図１０】相対的時刻認証によるタイムスタンプを利用した検証システムの流れを説明するためのタイミングチャート（その１）である。
【図１１】相対的時刻認証によるタイムスタンプを利用した検証システムの流れを説明するためのタイミングチャート（その２）である。
【図１２】デジタル署名長期検証装置内の検証処理の流れを示すフローチャートである。
【図１３】本発明の一実施形態を示すブロック図（その１）である。
【図１４】本発明の一実施形態を示すブロック図（その２）である。
【図１５】従来技術の実施形態を説明するためのブロック図である。
【図１６】従来技術の課題を説明するためのタイミングチャートである。
【符号の説明】
【００２６】
１…デジタル署名長期検証装置
２…検証受付アプリケーション
３…リポジトリ
４…タイムスタンプ認証局
１１…検証部
１２…検証情報取得部
１３…時刻証明取得部
１４…証明書保管データベース
１５…失効リスト保管データベース
１６…時刻証明保管データベース
【図１】
2005136482.tif 000003
【図２】
2005136482.tif 000004
【図３】
2005136482.tif 000005
【図４】
2005136482.tif 000006
【図５】
2005136482.tif 000007
【図６】
2005136482.tif 000008
【図７】
2005136482.tif 000009
【図８】
2005136482.tif 000010
【図９】
2005136482.tif 000011
【図１０】
2005136482.tif 000012
【図１１】
2005136482.tif 000013
【図１２】
2005136482.tif 000014
【図１３】
2005136482.tif 000015
【図１４】
2005136482.tif 000016
【図１５】
2005136482.tif 000017
【図１６】
2005136482.tif 000018