(57)【特許請求の範囲】
【請求項１】
公開鍵暗号方式を用いたデジタル署名において、ユーザの秘密鍵を直接使用することなく署名を一時的に行う、臨時署名システムであって、該システムが、
（ａ）システムに接続されたタンパープルーフなデバイスに記憶されたユーザの秘密鍵を用いて、臨時鍵を作成する手段と、
（ｂ）前記秘密鍵により署名された、前記臨時鍵の臨時証明書を作成する手段と、
（ｃ）文書への署名要求があった場合に、臨時証明書として使用できる期間と使用される目的の情報を含ませた臨時証明書、該文書に前記臨時鍵を用いて署名した臨時署名文書、及び前記ユーザの証明書を署名要求元に送付する手段と、
を具備することを特徴とする、臨時署名システム。
【請求項２】
公開鍵暗号方式を用いたデジタル認証において、ユーザから送付された臨時署名文書の認証を行う、臨時認証システムであって、該システムが、
（ｄ）臨時証明書、臨時証明書により署名された臨時署名文書、及びユーザの証明書を受信する手段と、
（ｅ）前記臨時署名文書の署名を確認する手段と
（ｆ）前記臨時証明書が有効であるかどうかを確認する手段と、
（ｇ）前記臨時証明書が正しいユーザーによって署名されているかを確認する手段と、
（ｈ）ユーザーの証明書の有効性を確認する手段と、
を具備し、前記（ｆ）の手段が、臨時証明書として使用できる期間と、使用される目的の情報を参照して、前記臨時証明書が有効であるかどうかを確認する手段であることを特徴とする、臨時認証システム
【請求項３】
公開鍵暗号方式を用いたデジタル認証において、ユーザの秘密鍵を直接使用することなく署名を一時的に行い、認証する、臨時署名認証クライアント・サーバ・システムであって、該システムが、
（ａ）クライアントにおいて、クライアントに接続されたタンパープルーフなデバイスに記憶されたユーザの秘密鍵を用いて、臨時鍵を作成する手段と、
（ｂ）前記秘密鍵により署名された、前記臨時鍵の臨時証明書を作成する手段と、
（ｃ）サーバから文書への署名要求があった場合に、臨時証明書として使用できる期間と使用される目的の情報を含んだ臨時証明書、該文書に前記臨時鍵を用いて署名した臨時署名文書、及び前記ユーザの証明書をクライアントからサーバに送付する手段と、
（ｄ）サーバにおいて、送付された、前記臨時証明書、前記臨時鍵により署名された前記臨時署名文書、及び前記ユーザの証明書を受信する手段と、
（ｅ）サーバにおいて、前記臨時署名文書の署名を確認する手段と
（ｆ）サーバにおいて、前記臨時証明書が有効であるかどうかを確認する手段と、
（ｇ）サーバにおいて、前記臨時証明書が正しいユーザーによって署名されているかを確認する手段と、
（ｈ）サーバにおいて、ユーザーの証明書の有効性を確認する手段と、
を具備し、前記（ｆ）の手段が、臨時証明書として使用できる期間と、使用される目的の情報を参照して、前記臨時証明書が有効であるかどうかを確認する手段であることを特徴とする、臨時署名認証システム。
【請求項４】
前記ユーザの秘密鍵を用いて、臨時鍵を作成する手段（ａ）がさらに、
（ａ１）前記鍵を用いて、臨時の臨時鍵を作成する手段、
を有し、
前記秘密鍵により署名された、前記臨時鍵の臨時証明書を作成する手段（ｂ）がさらに、
（ｂ１）前記臨時の秘密鍵により署名された、臨時の前記臨時鍵の臨時証明書を作成する手段と、
を有し、前記手段（ａ１）及び（ｂ１）の手段を１回以上、複数回行うことにより、臨時鍵及び臨時証明書作成段階を、複数段設けることを特徴とする、請求項１または３記載のシステム。
【請求項５】
前記タンパープルーフなデバイスがスマートカードであることを特徴とする、請求項１、３、４の何れかに記載のシステム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本願は公開鍵暗号方式における、個人の認証をデジタル証明書で行う方法及びシステムに関し、特定の期間内、特定の目的のために、個人のキーで署名（sign）された一時的なデジタルIDを委任状として使用するシステム及び方法に関する。
【０００２】
【従来の技術】
公開鍵暗号方式の発展によって、個人の認証をデジタル証明書で行うことが可能になった。デジタル証明書による個人認証では、個人のプライベートキー（秘密鍵）をコピーされないようにするため、スマートカードにプライベートキーを格納し、外部からはキーの読み出しができないようにしたものが、開発されている。
【０００３】
スマートカードはＣＰＵ、メモリをカード内にもつインテリジェントタイプのデバイスである。内部に保管された情報はパスワードなどで保護されており、不正な方法で内部の情報を読み出したり書き換えたりすることができない仕組み（タンパープルーフ）になっている。このため使用者はプライベートなデータを安全に保管することができる。スマートカードによる個人認証では、物理的にカードを所持していないと認証操作（具体的には、プライベートキーによる署名）ができないため、ハードディスクやフロッピーディスクにプライベートキーを入れておくよりも安全だとされている。しかし、キーの使用を継続的に要求するようなアプリケーションがあった場合、スマートカードは、端末に差しっぱなしで使用することになる。スマートカードの所持者が席を外したりする時にはアプリケーションを中断しなければならない。
【０００４】
公開鍵暗号と秘密鍵暗号を併用した、暗号化された安全な通信方法としてＳＳＬ（ Secure Socket Layer ）が知られている。ＳＳＬでは暗号化のキーをセッションごとに変える。詳細なプロトコルは割愛するが、簡単に言えばページを見る度にキーを変えて通信するようなものである。ＳＳＬ３に代表されるような相互認証プロトコルの概要は以下のようになる。
まずユーザはサーバのアプリケーションから要求された文書への署名に対して、自分の秘密鍵であるプライベートキーを使用して、文書に署名したもの、及びユーザの証明書をサーバーに送る。サーバーは、文書の署名を確認し、正しいユーザーによって署名されているかを確認し、最後にユーザーの証明書の有効性を確認する。ＳＳＬでは１つのセッションが数ヵ月も続くことはまずあり得えない。しかしながらこのようなＳＳＬを使っているＷＥＢサイトは、ＳＳＬの接続要求がある度にサーバーのプライベートキーを使わなければならない。もしこのプライベートキーがスマートカードに格納されていた場合、スマートカードをサーバーに度々挿入するか、常時入れたままにしなければならない。
さらに、個人のキーについても、ＳＳＬ３によるクライアント認証を要求するサイトに対して、深夜に巡回ソフトで自動的にアップデートを取りに行くような場合、キーがスマートカードに格納されていると非常に不便である。
【０００５】
【発明が解決しようとする課題】
従って、本発明が解決しようとする課題は、個人の秘密鍵で署名された一時的なデジタルＩＤ（識別子）を使うことによって、特定の期間内、特定の目的のためにそのデジタルＩＤを委任状として使える仕組みを提供することである。
また別の課題は、物理的にカードを所持していないくても、署名認証操作を行う方法及びシステムを提供することである。
また別の課題は、秘密鍵の使用を継続的に要求するアプリケーションに対して、秘密鍵をその都度使用しなくてもよい、署名認証方法及びそのシステムを提供することである。
また別の課題は、任意の複数段階の署名認証方法及びそのシステムを提供することである。
【０００６】
【課題を解決するための手段】
上記課題を解決するために、ユーザはサーバのアプリケーションから要求された署名に対して、自分の秘密鍵を使う代わりに、該秘密鍵を用いて一時的に生成された臨時鍵を用いることとする。そして臨時鍵の臨時証明書は、ユーザーの秘密鍵によって署名される。
ここで臨時証明書に含まれる情報として、臨時証明書として使用できる期間と、使用される目的の情報を含むようにする。クライアントは、アプリケーションから文書に署名要求があった場合、文書を臨時鍵で署名したもの、臨時証明書、及びユーザの証明書をサーバーに送る。サーバーは、まず署名を確認し、次に臨時証明書が有効であるかどうか（有効期限内か、他のアプリケーションのための証明書でないか）を確認し、次に臨時証明書が正しいユーザーによって署名されているかを確認する。最後にユーザーの証明書の有効性を確認する。
【０００７】
【発明の実施の形態】
図１に公開鍵暗号方式を用いたデジタル署名において、文書への署名要求があった場合に、ユーザの秘密鍵を直接使用することなく署名を一時的に行う、臨時署名システムのブロック図を示す。ブロック１１０において、ユーザの秘密鍵を用いて、臨時鍵を作成する。次にブロック１２０において、前記ユーザの秘密鍵により署名された、前記臨時鍵の臨時証明書を作成する。最後に、ブロック１３０で、前記臨時証明書、該文書に前記臨時鍵を用いて署名した臨時署名文書、及び前記ユーザの証明書を署名要求元に送付する。なお前記臨時証明書が、臨時証明書として使用できる期間と、使用される目的の情報を含むように構成しておく。
【０００８】
図２に公開鍵暗号方式を用いたデジタル認証において、ユーザから送付された臨時署名文書の認証を行う、臨時認証システムのブロック図を示す。まずブロック２１０において、臨時証明書、臨時証明書により署名された臨時署名文書、及びユーザの証明書を受信し、次にブロック２２０で、前記臨時署名文書の署名を確認する。ブロック２３０において前記臨時証明書が有効であるか（臨時証明書が臨時証明書として使用できる期間内か、若しくは使用される目的に合致しているか）を確認し、ブロック２４０では前記臨時証明書が正しいユーザーによって署名されているかを確認する。最後にブロック２５０において、ユーザーの証明書の有効性を確認する。なお上記では、有効期限、目的を臨時証明書の有効性判断の材料としたが、これは最も使用される可能性の高い情報の例であって、その他、特定サーバ名、アプリケーション名、特定使用機器、環境等、本発明の本質から外れることなく該情報の変更、追加が可能である。
【０００９】
図３に公開鍵暗号方式を用いたデジタル認証において、ユーザの秘密鍵を直接使用することなく署名を一時的に行い、認証する、臨時署名認証クライアント・サーバ・システムのプロトコルを示す。まずクライアント３１０では、（１）ユーザの秘密鍵を用いて、臨時鍵を作成しておく（１）。次に前記秘密鍵により署名された、前記臨時鍵の臨時証明書を作成する（２）。サーバ３２０から文書Ｘへの署名要求３３０があった場合に、該文書Ｘに前記臨時鍵を用いて署名した臨時署名文書３４０、前記臨時証明書３５０、及び前記ユーザの証明書３６０をクライアント３１０からサーバ３２０に送付する。一方、サーバ３２０では、送付された、前記臨時鍵により署名された前記臨時署名文書３４０、前記臨時証明書３５０、及び前記ユーザの証明書３６０を受信し、前記臨時署名文書３４０の署名を確認し（３）、前記臨時証明書３５０が有効であるかどうかを確認し（４）、前記臨時証明書３５０が正しいユーザーによって署名されているかを確認し（５）、ユーザーの証明書３６０の有効性を確認する（６）。前記臨時証明書３５０が有効であるかどうかを確認する場合は、臨時証明書（５）が臨時証明書として使用できる期間内か、若しくは使用される目的に合致しているか確認する。
【００１０】
また、臨時鍵を作成する段階、及び臨時証明書を作成する段階を、複数回用意してもよい。これにより署名、認証段階を任意に細分化することができる。なお前記秘密鍵は、セキュアな場所、例えばスマートカード内に記憶されている方がよい。
【実施例】
以下、図面を参照して本発明の実施例を説明する。図４には、本発明において使用されるシステムのハードウェア構成の一実施例を示す概観図が示されている。システム１００は、中央処理装置（ＣＰＵ）１とメモリ４とを含んでいる。ＣＰＵ１とメモリ４は、バス２を介して、補助記憶装置としてのハードディスク装置１３（またはＭＯ、ＣＤ−ＲＯＭ２３、ＤＶＤ等の記憶媒体駆動装置）とＩＤＥコントローラ２５を介して接続してある。同様にＣＰＵ１とメモリ４は、バス２を介して、補助記憶装置としてのハードディスク装置３０（またはＭＯ２８、ＣＤ−ＲＯＭ２３、ＤＶＤ等の記憶媒体駆動装置）とＳＣＳＩコントローラ２７を介して接続してある。フロッピーディスク装置２０はフロッピーディスクコントローラ１９を介してバス２へ接続されている。
【００１１】
フロッピーディスク装置２０には、フロッピーディスクが挿入され、このフロッピーディスク等やハードディスク装置１３（またはＭＯ、ＣＤ−ＲＯＭ、ＤＶＤ等の記憶媒体）、ＲＯＭ１４には、オペレーティングシステムと協働してＣＰＵ等に命令を与え、本発明を実施するためのコンピュータ・プログラムのコード若しくはデータを記録することができ、メモリ４にロードされることによって実行される。このコンピュータ・プログラムのコードは圧縮し、または、複数に分割して、複数の媒体に記録することもできる。
【００１２】
システム１００は更に、ユーザ・インターフェース・ハードウェアを備え、入力をするためのポインティング・デバイス（マウス、ジョイスティック等）７またはキーボード６や、視覚データをユーザに提示するためのディスプレイ１２を有することができる。また、パラレルポート１６を介してプリンタを接続することや、シリアルポート１５を介してモデムを接続することが可能である。このシステム１００は、シリアルポート１５およびモデムまたは通信アダプタ１８(イーサネットやトークンリング・カード)等を介してネットワークに接続し、他のコンピュータ等と通信を行うことが可能である。またシリアルポート１５若しくはパラレルポート１６に、遠隔送受信機器を接続して、赤外線若しくは電波によりデータの送受信を行うことも可能である。
【００１３】
スピーカ２３は、オーディオ・コントローラ２１によってＤ／Ａ（デジタル／アナログ変換）変換された音声信号を、アンプ２２を介して受領し、音声として出力する。また、オーディオ・コントローラ２１は、マイクロフォン２４から受領した音声情報をＡ／Ｄ（アナログ／デジタル）変換し、システム外部の音声情報をシステムにとり込むことを可能にしている。
【００１４】
このように、本発明のシステムは、通常のパーソナルコンピュータ（ＰＣ）やワークステーション、ノートブックＰＣ、パームトップＰＣ、ネットワークコンピュータ、コンピュータを内蔵したテレビ等の各種家電製品、通信機能を有するゲーム機、電話、ＦＡＸ、携帯電話、ＰＨＳ、電子手帳、等を含む通信機能有する通信端末、または、これらの組合せによって実施可能であることを容易に理解できるであろう。ただし、これらの構成要素は例示であり、その全ての構成要素が本発明の必須の構成要素となるわけではない。なおシステム１００は本発明のサーバシステム、もしくはクライアントシステムどちらにも適用できる。
【００１５】
また秘密鍵をスマートカード内に記憶している場合には、スマートカード入出力装置５１０がシステム１００のシリアルポート１５と接続される。スマートカード入出力装置５１０とシステム１００とのインターフェースとしては、その他キーボードコントローラ５に接続する方法や、赤外線通信ポート、パラレルポート１６、通信アダプタカード１８に接続する方法など、種々の接続方法が考えられる。システム１００での主な動作を説明する。
【００１６】
まず概要的に説明する。ユーザはサーバのアプリケーションから要求された署名に対して、自分の秘密鍵である秘密鍵（MYkey:My key）を使う代わりに、該秘密鍵を用いて一時的に生成された臨時鍵（TEMPkey:Temporary Key）を用いることとする。そして臨時鍵（TEMPKey）の臨時証明書（TEMPcert:Temporary certifiaction）は、ユーザーの秘密鍵（MYkey）によって署名される。
ここで臨時証明書（TEMPcert）に含まれる情報として、臨時証明書として使用できる期間（有効期限）と、使用される目的の情報を含むようにする。クライアントは、アプリケーションから文書Ｘに署名要求があった場合、文書Ｘを臨時鍵で署名したもの（SIGNTEMPkey(X)）、臨時証明書（TEMPcert）、及びユーザの証明書（MYcert:My certification）をサーバーに送る。サーバーは、まず署名を確認し、次に臨時証明書（TEMPcert）が有効であるかどうか（有効期限内か、他のアプリケーションのための証明書でないか）を確認し、次に臨時証明書（TEMPcert）が正しいユーザーによって署名されているかを確認する。最後にユーザーの証明書（MYcert）の有効性を確認する。
【００１７】
以下、さらに詳細に説明する。 前提として、ユーザの秘密鍵を MYkey, 証明書を MYcert と呼ぶことにする。証明書（MYcert）は、証明書発行人（CA: Certificate Authority）によって署名されている。証明書発行人（CA）の証明書を CAcert と書くことにする。
あるサーバのアプリケーション（APP）が、継続的に秘密鍵（MYkey）による署名を要求するとする（たとえば、ＳＳＬ３による個人認証を要求するＷｅｂサイトが定期的かつ自動的にアクセスされる場合など）。このアプリケーションはその秘密鍵である APPkey と証明書 APPcertを持っている（多くの場合Ｗｅｂサーバーの証明書であろう）。
【００１８】
従来の方法では、アプリケーションは、クライアントにある文書Ｘを送り、秘密鍵（MYkey） による署名を求める。この署名を SIGNMYkey(X) と記述することにする。クライアントは、これと、証明書（MYcert）をサーバーに送る。アプリケーションは、受け取った署名された文書 SIGNMYkey(X)を確かに本人の署名であることを、証明書（MYcert）の中の公開鍵（Public Key）で確認し、また、証明書（MYcert）が、有効なデジタル証明書であるかを、有効期限、証明書発行人（CA）の証明書（CAcert）を見て確認する。
本発明では、サーバのアプリケーションから要求された署名に、秘密鍵（MYkey）を使う代わりに、一時的に生成された臨時鍵（TEMPkey） を用いる。一時的に生成された臨時鍵の作成では、一般的には、ＲＳＡの公開鍵暗号方式が使われるであろう。この場合、ＲＳＡ方式に則って、ランダムに生成された素数から公開鍵と秘密鍵が生成される。生成は、システム１００上でソフトウェア行われてもよいし、スマートカード上で行うことも可能である。またその他の公開鍵暗号方式でも構わない。臨時鍵（TEMPkey）の臨時証明書（TEMPcert）は、ユーザーの秘密鍵（MYkey）によって署名される。臨時証明書（TEMPcert）に含まれる情報は以下のようなものである。
【００１９】
DN= [user-dn] + "'s temporary certificate for" + [APP name]
Valid-thru= [current-date/time + 1 day]
Only-for= [APPcert's DN]
Signed-by= [user-dn]
Signature= [signature by MYkey]
【００２０】
図６に本発明の方法のフローチャートを示す。クライアント３１０では、まず準備段階として、ステップ６１０において、臨時鍵（TEMPkey）と臨時証明書（TEMPcert）６３０を、自分の秘密鍵（MYkey）を使って予め作成しておく。ここで特に重要な情報は臨時証明書（TEMPcert）に含まれる、有効期限（Valid-thru）および使用目的（Only-for）に関する情報である。上記の例では有効期限は現時刻＋１日と指定している。これらの情報により、この証明書が、一時的な期間に、特定の目的にためだけに作られたものであり、それ以外の目的で用いられてはならないことを示す。
秘密鍵がスマートカード内にある場合は、一度臨時鍵（TEMPkey）と 臨時証明書（TEMPcert）が生成されたならば、ユーザーはスマートカードをリーダーから取り去ってよい。クライアントは、アプリケーションから文書Ｘへの署名要求３３０があった場合、ステップ６４０において、臨時鍵（TEMPkey）文書Ｘに署名し、ステップ６５０で該署名文書 SIGNTEMPkey(X)、臨時証明書（TEMPcert）、及び 証明書（MYcert）をサーバー３２０に送る。
【００２１】
サーバー３２０は、まずステップ６６０で文書Ｘに署名された署名を確認し、次にステップ６７０で臨時証明書（TEMPcert）が有効であるかどうか（有効期限内か、他のアプリケーションのための証明書でないか）を確認し、次にステップ６８０で臨時証明書（TEMPcert）が、正しいユーザーによって署名されているかを確認する。具体的には、臨時証明書（TEMPCert）の署名は、臨時証明書（TEMPCert）のハッシュ値を取ってそれをユーザーの秘密鍵で署名したものになる。これを確認するためには、臨時証明書（TEMPCert）のハッシュ値を計算し、その結果と、署名をユーザーの公開鍵で復号したものを比較して、同じになればよい。
最後に、ステップ６９０でユーザーの証明書（MYcert）の有効性を確認する。ユーザーの証明書（MYCert）の有効性を確認するには、ユーザーの証明書（MYCert）の中にその署名者（CA）の署名が入っているので、まず有効期限を確認し、証明書が取り消されていないかを確認し、署名者が信頼できる認証機関であることを確認し、そして署名が確かにその認証機関によってされたものであることを確認（上記ハッシュ値に関する処理）することにより達成される。（これは一般的に行われている証明書の確認（validation）の方法と同様である。）この仕組みによって、一定の期間、特定の目的だけに使われる一時的な鍵と証明書のペアを、委任状として使うことができる。
なお、臨時鍵の作成と証明書の作成を複数段設けてもよい。臨時鍵の作成段階において、臨時鍵から臨時の臨時鍵を作成し、これを任意回数実行する。同様に証明書も夫々の臨時鍵に応じて作成する。このように署名の度合いを複数段用意し、これに応じて認証段階を任意に細分化することにより、任意に細分化された認証段階を有する署名認証システムが構築できる。ある特定の段階以降の証明書の有効化／無効化等に応用できる。
【００２２】
その他の実施例として、クライアント認証を要求するサイトに対して、深夜に巡回ソフトで自動的にアップデートを取りに行くような場合、自動的にサーバとの認証を行わせる、無人の巡回システムが、本発明をそのまま適用して実施可能である。
【００２３】
【発明の効果】
本発明により、スマートカードを常時使用しない臨時の署名認証システム、や無人応答が可能な署名認証システムが構築される。またユーザによる任意の複数段階の署名認証の仕組みを取り入れることにより、柔軟な認証、証明書の無効化等が実現される。
【００２４】
【図面の簡単な説明】
【図１】本発明の臨時署名システムのブロック図である。
【図２】本発明の臨時認証システムのブロック図である。
【図３】臨時署名認証クライアント・サーバ・システムのプロトコルを示す図である。
【図４】本発明のシステムのハードウェア構成の一実施例を示す図である。
【図５】スマートカード入出力装置接続したシステムの外観図である。
【図６】本発明の方法のフローチャートを示す図である。
【図１】
0003905961.tif 000002
【図２】
0003905961.tif 000003
【図３】
0003905961.tif 000004
【図４】
0003905961.tif 000005
【図５】
0003905961.tif 000006
【図６】
0003905961.tif 000007