JP2021040278A - 鍵管理システム、署名装置、鍵管理方法及びプログラム - Google Patents

鍵管理システム、署名装置、鍵管理方法及びプログラム Download PDF

Info

Publication number
JP2021040278A
JP2021040278A JP2019161938A JP2019161938A JP2021040278A JP 2021040278 A JP2021040278 A JP 2021040278A JP 2019161938 A JP2019161938 A JP 2019161938A JP 2019161938 A JP2019161938 A JP 2019161938A JP 2021040278 A JP2021040278 A JP 2021040278A
Authority
JP
Japan
Prior art keywords
key
information
processing unit
activation
signature
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2019161938A
Other languages
English (en)
Inventor
杉本 浩一
Koichi Sugimoto
浩一 杉本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gmo Globalsign Kk
Original Assignee
Gmo Globalsign Kk
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gmo Globalsign Kk filed Critical Gmo Globalsign Kk
Priority to JP2019161938A priority Critical patent/JP2021040278A/ja
Publication of JP2021040278A publication Critical patent/JP2021040278A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】リモート署名に用いる利用者の私有鍵(秘密鍵)を、利用者の意思に基づいて簡便に実行可能な、鍵管理システムを実現する。【解決手段】秘密鍵を記憶する鍵記憶部101と、外部装置が提示したトークン情報を受け付ける受付処理部66と、受付処理部が受け付けたトークン情報に対応する活性化情報を用いて、活性化情報に対応する秘密鍵を活性化する鍵活性化処理部64と、活性化された前記秘密鍵を用いて電子署名を生成する署名生成制御処理部60と、を備えた。【選択図】図3

Description

本発明は、公開鍵基盤で必要とされる電子署名を生成するための鍵管理システム、及び署名装置に関する。
全世界的に電子政府が稼働し始め、従来、紙で行われてきた契約行為も電子的に行われるようになってきた。電子的に行われる契約(電子契約)では、暗号技術や公開鍵基盤を用いた方式が主流である。
公開鍵基盤を用いた電子契約では、公開鍵暗号方式をベースとして、文書の送り側では、本人の私有鍵(秘密鍵)を用いて契約文書(電子データ)に電子署名を付与し、文書の受け取り側では、送り側の公開鍵を用いて契約文書に付与される電子署名を検証することで、なり済ましや、通信経路での改竄の有無を判断することができる。後述するが、公開鍵基盤は、公開鍵と、それと対になる私有鍵(秘密鍵)と、を用いて様々なセキュリティシステムを提供することができる。
この方式では、契約文書の検証時に契約書に電子署名を施した相手方(送り側)の公開鍵が必要となる。そして、この公開鍵と対になる私有鍵が送り側の所有に係ること(公開鍵の本人性)を証明するため、公開鍵証明書、いわゆる「電子証明書」が用いられる。
「電子証明書」はインターネット上の身分証とも呼ばれ、信頼できる第三者機関(TTP:Trusted Third Party)によって発行される。特に、電子証明書を発行するTTPを認証局と呼ぶ。
従来、電子署名は利用者のPC(Personal Computer)上で行われることが一般的であったが、サーバ上で行うことにより電子署名の利便性を高めた仕組みも知られている。
例えば、特許文献1には、ユーザ端末、電子署名サーバ、認証局と、を備えたシステムが開示されている。
特許文献1においては、認証局が秘密鍵、公開鍵の鍵ペアを生成する。そして、電子署名サーバは、認証局に対して公開鍵に基づく電子証明書の発行を要求する。認証局は、発行した電子証明書と秘密鍵とをPKCS#12と呼ばれるファイルとして電子署名サーバに供給し、電子署名サーバは、ユーザ端末からの求めに応じて、電子証明書、秘密鍵を用いて電子署名を行う。
さらに近年では、「リモート署名」あるいは「クラウド署名」と呼ばれるという仕組みが普及をはじめ、そして、ヨーロッパ諸国のeIDASやAdobe社をはじめとした標準化団体CSC(Cloud Signature Consortium)などで、プロトコルの標準化が推し進められている。
より具体的には、電子署名サイトなどで電子署名が必要な状況になると、OAuth2.0によるSSO(Single Sign On)の仕組みなどを用いて、利用者が鍵管理システムへリダイレクトされ、鍵管理システムは、ユーザ認証後にトークンを払い出し、そのトークンを取得した電子署名サイトは、トークンを鍵管理システムに対して提示することで、鍵管理システムに署名を行わせる、といった仕組みが「リモート署名」として実装され始めている。
「リモート署名」では、署名用の私有鍵を管理するために、HSM(Hardware Security Module)と呼ばれる暗号装置を用いるのが一般的である。HSMは私有鍵を外界から保護するために、物理的セキュリティ機能と論理的セキュリティ機能を兼ね備える。
物理的セキュリティ機能は、例えば物理的にHSMを破壊などして取り出そうとしたときに、HSM内に格納された私有鍵を消去するなどの仕組みである。
一方、論理的セキュリティ機能は、HSM内に格納された私有鍵を利用する際に、PIN(Personal Identification Number)などのクレデンシャル情報を要求し、要求されるクレデンシャルが提供されない場合、私有鍵へのアクセスを遮断する仕組みである。
HSMにおける論理的セキュリティのクレデンシャル情報の具体例として、パーティションIDとパーティションパスワード、及びユーザIDとユーザパスワードがある。
パーティションとは、HSM内の保護領域に対し、複数の対象が利用できるようにするために分割された保護領域のことである。この分割された保護領域にアクセスするためのクレデンシャルが、パーティションID及びパーティションパスワードである。一方、パーティション内の私有鍵などの保護リソースの保有者がユーザである。この保護リソースにアクセスするためには、当該ユーザのユーザIDとユーザパスワードが求められる。
つまり、HSMに格納される私有鍵にアクセスするためのクレデンシャルとして、パーティションIDとパーティションパスワード、及びユーザIDとユーザパスワードが必要である。
このような、HSM内の保護リソースにアクセスするためのクレデンシャルは、HSMを外部システムから利用するために定義された標準インターフェースであるPKCS#11の中に実装されている。つまり、標準的なHSMでは、保護リソースにアクセスするために、パーティションIDとパーティションパスワード、及び、ユーザIDとユーザパスワードといったクレデンシャルが必要となる。
特開2010−200142公報
従来知られるHSMを用いた「リモート署名」の仕組みにおいては、電子署名サイトでは、電子署名を行う都度、HSMが要求するクレデンシャル、つまりパーティションIDとパーティションパスワード、及びユーザIDとユーザパスワードを利用者に入力させる必要がある。これは利用者にとって煩雑であり、ユーサビリティを損なうという問題がある。
本発明はそのような問題を解決するためになされたものであり、「リモート署名」に用いる利用者の私有鍵(秘密鍵)を、簡便且つ安全に利用可能な、鍵管理システム、及びそれを構成する署名装置を実現することを目的とする。
上記の課題を解決するために、本発明は、秘密鍵を記憶する鍵記憶部と、前記秘密鍵を用いて電子署名を生成する署名処理部と、外部装置が提示したトークン情報を受け付ける受付処理部と、前記署名処理部による電子署名の生成前に、前記受付処理部が受け付けた前記トークン情報に対応する活性化情報を用いて、当該活性化情報に対応する秘密鍵を活性化する活性化処理部と、を備えた鍵管理システムを特徴とする。
上記のように構成することにより、本発明によれば「リモート署名」に用いる利用者の私有鍵(秘密鍵)の活性化を、簡便且つ安全に実行可能な鍵管理システム、署名装置を実現することができる。
本実施形態のシステム構成を説明する図である。 本実施形態の署名提供サーバの構成を示す図である。 本実施形態の第1の例に係る鍵管理サーバの構成を示す図である。 本実施形態のリモート署名システムにおけるトークン発行処理の流れを説明する図である。 図4に示したトークン発行処理後の、リモート署名処理の流れを説明する図である。 HSMに格納された鍵を活性化するための第1の構成を説明する図である。 本実施形態の第2の例に係る鍵管理サーバの構成を示す図である。 HSMに格納された鍵を活性化するための第2の構成を説明する図である。 内部的処理で秘密鍵を活性化する場合のHSMの機能構成を示す図である。
以下に、図面を参照して本発明の実施の形態を詳細に説明する。
まず、本実施形態の説明に先立って前提となる技術を説明する。
[公開鍵基盤]
公開鍵基盤(PKI:Public Key Infrastructure)は、公開鍵暗号方式と呼ばれる暗号方式を用い、暗号化、デジタル署名(電子署名)、認証といったセキュリティ機能を提供する情報セキュリティ基盤である。
公開鍵基盤では、公開鍵暗号方式の特徴を利用し、上述の暗号化、デジタル署名、認証といった機能を提供する。公開鍵暗号方式では、私有鍵と公開鍵の一方向性(私有鍵から公開鍵を計算できるが、公開鍵から私有鍵を計算するのは計算量的に困難であるという特徴)を利用して様々な機能を提供する。利用者は自らの私有鍵を秘密裏に保持し、公開鍵を他者に公開しておく。私有鍵は、秘密に保持するという意味を持たせて秘密鍵とも呼ぶ。
例えば利用者Bは、利用者Aに文書を送信するとき、利用者Aが公開している公開鍵を入手し、その公開鍵を使って暗号化した文書を利用者Aに送信する。利用者Aは受信した暗号化文書を、自身の私有鍵(秘密鍵)を用いて復号化する。
利用者Aの公開鍵を持っていれば誰もが利用者Aに対して暗号化文書を送信することができる一方で、利用者Aの公開鍵で暗号化したものは、利用者Aの私有鍵(秘密鍵)でしか復号できないため、仮に悪意の第三者が利用者Aの公開鍵を入手したとしても、暗号化文書の内容が漏えいすることはない。
[電子証明書]
公開鍵暗号方式で通信を行うには、通信相手に公開鍵を送信することになるが、ネットワーク経由での通信では通信相手が見えないため、第三者が通信相手に成りすまして公開鍵を送信する可能性がある。従って、公開鍵が本当に正しい相手から送られてきたものであるかを確認する必要がある。
PKIでは、例えば、信頼できる第三者機関(TTP: Trusted Third Party)が、私有鍵の所有者を保証する。すなわち、TTPは私有鍵(秘密鍵)の所有者の本人性を確認し、私有鍵(秘密鍵)と対になる公開鍵とその私有鍵(秘密鍵)の所有者とを紐づける電子証明書(公開鍵証明書)を発行する。電子証明書は持ち主の情報を正しく保障する「身分証明書」である。
電子証明書を発行するTTPは、特に認証局あるいは認証機関(CA:Certification Authority)と呼ばれる。
電子証明書には、公開鍵と、その公開鍵に対応する私有鍵(秘密鍵)の所有者を証明する所有者の名前、所属組織名、メールアドレス等の情報が記載されており、さらに電子証明書自体の改ざんを防ぐためにTTPの電子署名が付与されている。電子証明書を文書に付すことで、なりすましや、改ざんなどのリスクを未然に防ぐことができる。また、TTPに信頼される私有鍵(秘密鍵)の所有者を加入者(Subscriber、サブスクライバー)という。
[電子署名]
電子証明書はさらに、電子署名を検証する用途に用いられる。通常、電子署名には、電子証明書を添付する。電子署名を受け取った利用者は、電子証明書に記載された公開鍵を使って署名を検証し、データの改ざん検知を行い、電子証明書に記載された内容を使って署名者の特定を行うことができる。
電子署名には、文書のハッシュ値を私有鍵(秘密鍵)で暗号化した値が含まれる(実際には、暗号処理と署名処理は異なるが、署名処理のことを広義の暗号化と呼ぶことが多い)。利用者Aが利用者Bに対して電子署名を付した文書ファイルを送る場合、利用者Aは、送信する文書ファイルをハッシュ関数にかけることによって得たハッシュ値を利用者Aの私有鍵(秘密鍵)を用いて暗号化し、電子署名を作成して、文書ファイルに添付する。
電子署名付きの文書ファイルを受け取った利用者Bは、電子署名に含まれる暗号化された値を利用者Aの公開鍵を使って復号化することによって得たハッシュ値と、文書ファイルをハッシュ関数にかけることによって得たハッシュ値と、を比較する。比較の結果、双方のハッシュ値が同一であれば、文書が改ざんされていないことが証明される。
[リモート署名]
様々なクラウドサービス、オンラインサービスが提供され、クラウド上(サーバ上)で文書を扱うことが多くなっている。それに伴い、文書に対する電子署名を署名者のPC(Personal Computer)上ではなく、サーバ上(クラウド上)で行う「リモート署名(クラウド署名)」と呼ばれる方式の電子署名が普及しつつある。
より詳しくは、リモート署名とは、署名者の電子証明書、私有鍵(秘密鍵)を鍵管理システムで管理し、電子署名が必要なときには、鍵管理システム上で電子証明書、私有鍵(秘密鍵)を用いた電子署名を実行する仕組みである。
リモート署名には、署名者が私有鍵(秘密鍵)を自ら管理する必要が無いという利点がある。さらに、PCのみならず、ウェブブラウザやスマートフォンなどのモバイルデバイスによっても文書に電子署名が可能である。従って、私有鍵(秘密鍵)を格納したスマートカードやUSBトークン等を用いたエンドポイントでの電子署名の生成に比べ、格段に利便性が向上する。さらに、鍵管理システムで私有鍵(秘密鍵)が堅牢に保護されるため、セキュリティの観点からも、より望ましい署名方法であると言える。
RFC6749で定義されるOAuth2.0は、概略としては、リソースサーバが保有している保護リソース(重要情報や鍵等)をリソースオーナーの許可を得てクライアントが使用することができるようにする仕組みである。
そして、リソースサーバが保有する保護リソースに対するクライアントのアクセス可否を認可サーバがコントロールする。
保護リソースにアクセスするにはアクセストークン(Access token)と呼ばれる情報が必要であり、認可サーバは、アクセスを許可するクライアントに対してアクセストークン(Access token)を発行する。
また、上記に加えてユーザーエージェント(例えばウェブブラウザ)がアクセスの介在をする場合がある。その場合、認可サーバにおけるリソースオーナーの認証、及び、認可サーバからクライアントへの認可コード(Authorization code)の送付を、ユーザーエージェントが仲介して行う。なお、認可コードは、認可トークンとも呼ぶ。
以下に、本実施形態のシステム及びその処理をより詳しく説明する。
図1は、本実施形態のシステム構成を説明する図である。
図1に示すように、本実施形態のリモート署名システム1は、端末装置10と、署名提供サーバ20を含む署名提供システム2と、鍵管理サーバ30を含む鍵管理システム3と、を備える。
端末装置10、署名提供システム2、鍵管理システム3は、いずれもインターネットに接続され、互いに通信可能に構成されている。
これらの装置、システム間でやり取りされるデータの類は、おもにHTTPリクエストやHTTPレスポンスのパラメータとして(HTTPプロトコルを利用して)送受信される。ただし、セキュリティ確保が必要な部分においては、通信自体を、HTTPSやVPNを利用するなどして保護する。
端末装置10は、利用者の利用に係る一般的なPCやスマートフォンである。
端末装置10のCPUによって実行されるウェブブラウザは、署名提供システム2が提供する電子署名サイトのウェブページを要求するページ要求手段、署名提供システム2の署名提供サーバ20から受信した転送ページ等を表示するページ表示手段、認可要求(Authorization request)を鍵管理システム3の鍵管理サーバ30に送信し、認可コード(Authorization code)を含む認可応答(Authorization response)を受信するOAuth実行手段、KeyAliasとPINの入力を受け付けて鍵管理サーバ30に送信する鍵情報送信手段、鍵管理サーバ30から受信した認可コード(Authorization code)の署名提供サーバ20への転送等の処理を行う認可コード送信手段等として機能する。
署名提供システム2は、署名プロバイダーとして電子署名サイトを提供する。
署名提供システム2は、電子署名サイトを介した利用者による署名対象データへの署名要求を受け付け、鍵管理システム3に対してリモート署名要求を行い、生成された電子署名を鍵管理システム3から取得する。
鍵管理システム3は、利用者の私有鍵(秘密鍵)、電子証明書を管理してリモート署名サービスを提供するシステムであり、例えば署名提供システム2(署名プロバイダー)からの要求に応じて電子署名を生成し、要求元に供給する。
本実施形態の鍵管理システム3は、例えば、鍵管理サーバ30と、ハードウェアセキュリティモジュール(HSM:Hardware Security Module)100と、を備えている。
HSM100は、利用者の私有鍵(秘密鍵)と公開鍵のペアを生成し、認証局で発行された利用者の電子証明書をインポートして管理するとともに、私有鍵(秘密鍵)を用いて電子署名を生成する装置である。
本実施形態のシステムにおいて、HSM100は、例えば、鍵管理サーバ30の内部バスに接続されるかたちで鍵管理サーバ30に内蔵される。また、HSM100は、鍵管理サーバの外部バス(USBバスなど)に接続されてもよい。
さらに、HSM100はネットワークインターフェイスを備え、HSM100単独でネットワークに接続可能とされてもよい。HSM100は、鍵管理サーバ30と同一のローカルネットワーク、遠隔のネットワークにおいて、鍵管理サーバ30と通信可能に接続される。
HSMの基本的な特徴を説明するとともに、標準的なHSMを用いたリモート署名システムが有する問題点を説明する。
リモート署名を提供する鍵管理システムでは、利用者の署名用の私有鍵を管理するための暗号装置としてHSMが一般的に用いられる。
HSMは、私有鍵を外界から保護するために、物理的セキュリティ機能と論理的セキュリティ機能とを兼ね備えている。
物理的セキュリティ機能は、例えば物理的にHSMを破壊して私有鍵を取り出そうとしたときに、HSM内に格納された私有鍵を消去するなどの仕組みである。
一方、論理的セキュリティ機能は、HSM内に格納された私有鍵を利用する際に、PIN(Personal Identification Number)などのクレデンシャル情報を要求し、要求されるクレデンシャルが提供されない場合、私有鍵へのアクセスを遮断する仕組みである。
HSM100における論理的セキュリティのクレデンシャル情報の具体例として、パーティションIDとパーティションパスワード、及び利用者のユーザIDとユーザパスワードがある。パーティションとは、HSM内の保護領域に対し、複数の対象が利用できるようにするために、分割された保護領域のことである。
この分割された保護領域にアクセスするためのクレデンシャルが、パーティションID及びパーティションパスワードである。一方、パーティション内の私有鍵などの保護リソースの保有者は、利用者である。
HSMは、この保護リソースにアクセスするためにはユーザIDとユーザパスワードを必要とする。つまり私有鍵にアクセスするためのクレデンシャルとして、パーティションIDとパーティションパスワード、及び、ユーザIDとユーザパスワードが必要である。
このような、HSM内の保護リソースにアクセスするためのクレデンシャルは、HSM100を外部システムから利用するために定義された標準インターフェースであるPKCS#11の中に実装されている。
つまり、標準的なHSMでは、保護リソースにアクセスするために、パーティションIDとパーティションパスワード、及び、ユーザIDとユーザパスワードといったクレデンシャルが必要となる。
鍵管理システム3このような標準的なHSMを利用する場合、署名提供システム2は、利用者の求めに応じて電子署名を鍵管理システム3に要求する都度、クレデンシャルの入力を利用者に求める必要があり、これは利用者にとって煩雑でありユーザビリティを損なう。
それに対し本実施形態のリモート署名システム1において、鍵管理システム3は、パーティションIDとパーティションパスワード、及び、ユーザIDとユーザパスワードといったクレデンシャルを電子署名サイト(署名提供システム2)、あるいは利用者に求めることがない。これは基本的には以下のような構成による。
図1に示すリモート署名システム1において、リダイレクトされた利用者(端末装置10で実行されるウェブブラウザ)が鍵管理サーバ30に対して、ユーザIDとユーザパスワードと用いた認証を要求し、認証が成功した際には、鍵管理サーバ30は、端末装置10(ウェブブラウザ)に対して認可コード(Authorization code)を送付する。
認可コード(Authorization code)を受け取った端末装置10(ウェブブラウザ)は、その認可コード(Authorization code)を署名提供サーバ20に送付(転送)する。
署名提供サーバ20は、端末装置10(ウェブブラウザ)より送付された認可コード(Authorization code)を鍵管理サーバ30に送付し、鍵管理サーバ30は、その認可コード(Authorization code)と引き換えにセキュリティトークンとしてのアクセストークン(Access token)を署名提供サーバ20に送付する。
アクセストークン(Access token)の発行以後は、署名提供サーバ20は、利用者の署名要求に応じて、アクセストークン(Access token)を鍵管理サーバ30に提示する。
鍵管理システム3(鍵管理サーバ30)は、利用者の署名要求に応じて署名提供サーバ20が送信したアクセストークン(Access token)を受け付けることによりパーティションに格納された私有鍵へのアクセスを有効とし、HSM100を用いた電子署名の発行を行うことができるように構成されているのである。
その結果、署名提供サーバ20は、鍵管理サーバ30より電子署名(署名値)を入手することができる。
利用者は、電子署名を要求する行う都度、パーティションIDとパーティションパスワード、及びユーザIDとユーザパスワードを電子署名サイトにおいて入力する必要がなく、高いユーサビリティを保つことができる。
図2は、本実施形態の署名提供サーバの構成を示す図であり、(a)は、ハードウェアによる機能構成を示す図、(b)は、ソフトウェアによる機能構成を示す図である。
図2(a)に示すように、署名提供サーバ20は、装置全体の制御を行う汎用のオペレーティングシステムを実行するとともに、署名提供サーバ20の機能を実現するプログラムを実行するCPU(Central Processing Unit)21と、CPU21による処理のために各種のプログラムや一時データ、変数が展開されるRAM(Random Access Memory)22と、プログラムやデータが格納されるHDD(Hard Disk Drive)23や不図示のROM(Read Only Memory)と、署名提供サーバ20をネットワークに接続するためのネットワークI/F24と、を備えている。
また、図2(b)に示すように、CPU21は、制御部20Aとして、ウェブページ処理部51、OAuth実行処理部52、署名要求処理部53を実行する。
ウェブページ処理部51は、所謂ウェブサーバとして機能し、端末装置10からのHTTPリクエストに応じて、記憶部20Bを構成するHDD23に格納されるウェブページ(HTMLページ)のデータから電子署名サイトのウェブページのデータを送信する。ウェブページ処理部51は、署名提供サーバ20とは異なる独立したサーバ装置(ウェブサーバ)として構成されてもよい。
すなわち、署名提供サーバ20は、電子署名の発行を受け付ける電子署名サイトのウェブページを供給して端末装置のウェブブラウザで表示させるためのウェブサーバの機能を有する。あるいは、署名提供システム2は、バックエンドの署名提供サーバ20と、ユーザがアクセスするフロントエンドとしてのウェブサーバと、から構成されている。
OAuth実行処理部52は、鍵管理サーバ30のOAuth実行処理部61とともに、所謂RFC6749に規定されるOAuth2.0の認可処理を制御するための処理部であり、端末装置10(ウェブブラウザ)から送信された認可コード(Authorization code)を用いて、鍵管理サーバ30にセキュリティトークンとしてのアクセストークン(Access token)を要求する処理を行う。
署名要求処理部53は、後に詳述するように、端末装置10からの要求に応じて、OAuth実行処理部52によって取得されたアクセストークン(Access token)を用いて、鍵管理サーバ30に対して電子署名(署名値)の要求を行う。
鍵管理サーバ30は、署名要求処理部53が行ったアクセストークン(Access token)を用いた署名要求を受け付けて、HSM100を用いて電子署名の発行を行う。
上記したように、本実施形態のリモート署名システム1において、鍵管理システム3は、利用者からの要求に応じて署名提供サーバ20が送信したセキュリティトークンとしてのアクセストークン(Access token)を受け付けることによりパーティションに格納された私有鍵へのアクセスを有効とし、HSM100を用いた電子署名の生成を行う。
従って、本実施形態のリモート署名システムでは、電子署名サイトが電子署名を行う都度、利用者にHSMが要求するクレデンシャル、つまり、パーティションIDとパーティションパスワード、及び、ユーザIDとユーザパスワードを利用者に入力させる必要がなく、ユーサビリティを保つことができる。
以下では、署名提供サーバ20が提示するトークン情報(セキュリティトークン)に基づいた電子署名の発行が可能な鍵管理システム3の特徴的な構成を詳細に説明する。
図3は、本実施形態の第1の例に係る鍵管理サーバの構成を示す図であり、(a)は、ハードウェアによる機能構成を示す図、(b)は、ソフトウェアによる機能構成を示す図である。
図3(a)に示すように、鍵管理サーバ30は、装置全体の制御を行う汎用のオペレーティングシステムを実行するとともに、鍵管理サーバ30の機能を実現するプログラムを実行するCPU(Central Processing Unit)31と、CPU31による処理のために各種のプログラムや一時データ、変数が展開されるRAM(Random Access Memory)32と、プログラムやデータが格納されるHDD(Hard Disk Drive)33や不図示のROM(Read Only Memory)と、鍵管理サーバ30をネットワークに接続するためのネットワークI/F34と、を備えている。
CPU31は、鍵管理サーバ30が備えて制御部を実現する制御回路の一例であり、制御回路としては、その他にマルチコアCPU、FPGA(Field Programmable Gate Array)、PLD(Programmable Logic Device)などのプロセッサを適用することが出来る。
HDD33は、内蔵するハードディスク(Hard Disk)を駆動するドライブ装置であり、HDD33は記憶媒体としてのハードディスクに格納されたプログラムやデータを読み出し、またハードディスクにデータを書き込む。
また、鍵管理サーバ30は、FD(Floppy Disk)、CD(Compact Disc)やDVD(Digital Versatile Disc)、BD(Blu-ray(登録商標) Disk)などの光学ディスク、フラッシュメモリなどの着脱可能な記憶媒体200に対してプログラムやデータを読み書きする読書装置35を備えてもよい。
読書装置35は、FDD(Floppy Disk Drive)、CDD(Compact Disc Drive)、DVDD(Digital Versatile Disc Drive)、BDD(Blu-ray(登録商標) Disk Drive)、USB(Universal Serial Bus)などである。
CPU31、RAM32、HDD33、ネットワークI/F34、読書装置35は例えば内部バスを介して接続されている。
さらに、鍵管理サーバ30は、内部バスに接続されたハードウェアセキュリティモジュール(HSM:Hardware Security Module)100を備えている。この場合、鍵管理サーバ30は、鍵管理システム3と同義である。
上記したように、HSM100は、鍵管理サーバ30の外部バスに接続されていてもよいし、ネットワークI/Fを有してネットワーク経由で鍵管理サーバ30と接続可能されてもよい。この場合、鍵管理サーバ30と、ネットワーク接続型HSM100と、によって鍵管理システム3が構成される。
HSM100は、記憶領域101を備え、記憶領域101に私有鍵(秘密鍵)を格納する。
HSM100は、鍵管理サーバ30の要求に応じて私有鍵(秘密鍵)を用いて電子署名を生成する署名処理部(回路)102を有する。
またHSM100は、鍵ペアを生成する鍵生成処理部(回路)103を有する。署名処理部102、鍵生成処理部103は、HSM100が備えるMPUによって実現されてもよい。
また、図3(b)に示すように、CPU31は、制御部30Aとして、署名生成制御処理部60と、OAuth実行処理部61と、ユーザ認証処理部62と、鍵生成制御処理部63と、鍵活性化処理部64と、鍵活性化情報処理部65と、受付処理部66と、を実行する。
これらの処理部は、鍵管理サーバ30の制御部30Aの機能を実現するプログラムであり、当該プログラムは、HDD33に含まれるハードディスクや記憶媒体200に格納され得る。プログラムは、HDD33や読書装置35によってハードディスクや記憶媒体200からRAM32に読み出されてCPU31によって実行される。
署名生成制御処理部60は、署名提供サーバ20からの電子署名発行要求に応じて、HSM100に電子署名を生成させる処理を行う。
OAuth実行処理部61は、署名提供サーバ20のOAuth実行処理部52とともに、RFC6749に規定されるOAuth2.0の認可処理を制御するための処理部である。
OAuth実行処理部61は、端末装置10(ウェブブラウザ)から認可要求(Authorization request)を受信すると、認証画面を端末装置10に表示させ、ユーザ認証処理部62による認証が成功した場合に、認可応答(Authorization response)として、認可コード(Authorization code)を端末装置10に送信する。
さらに、OAuth実行処理部61は、署名提供サーバ20から認可コード(Authorization code)とともにセキュリティトークンとしてのアクセストークン(Access token)を要求されると、署名提供サーバ20に対してアクセストークン(Access token)を送信する処理を行う。
ユーザ認証処理部62は、端末装置10に表示された認証画面に入力された認証情報(例えば、ユーザID及びユーザパスワードの組み合わせ)を認証し、認証されれば上記OAuth実行処理部61に通知する処理を行う処理部である。
鍵生成制御処理部63は、HSM100を制御し、私有鍵(秘密鍵)と公開鍵のペアを生成させる鍵生成処理を行う処理部である。私有鍵(秘密鍵)は、例えば、端末装置10から受信したKeyAlias、PINに基づいて生成される。
HSM100が備える記憶領域101は、複数のパーティションに分割されている。各パーティションはユーザ毎に割り当てられており、鍵生成制御処理部63が生成した私有鍵(秘密鍵)が夫々格納される。
各パーティションには、例えば、Part.1、Part.2、Part.3、Part.4・・・など夫々のパーティションを特定するためのパーティションIDとしての名前(Partition Name)が付けられており、アクセス制限用のパーティションパスワード(Partition Password)が設定される。
鍵生成制御処理部63またはHSM100は、鍵生成処理の際に、鍵を格納するためのパーティションを設定し、パーティションパスワードを設定する。
鍵管理サーバ30は、RAM32またはHDD33から構成される記憶部30Bに、活性化情報記憶部91を備えている。
上記したが、「リモート署名」を行うためにHSM100に格納された私有鍵(秘密鍵)は、活性化と呼ばれる処理を行わない限りは電子署名の生成に用いることができない。そして、私有鍵(秘密鍵)の活性化に必要な情報が、鍵生成処理の際に用いられたKeyAlias、PIN、そして秘密鍵を格納したHSM100のパーティションを特定するパーティションIDとしての名前(Partition Name)及びパーティションパスワード(Partition Password)からなるクレデンシャルである。
本実施形態は、鍵管理システム3における私有鍵(秘密鍵)の活性化方法に特徴を有する。
活性化情報記憶部91には、下記に詳しく説明するように、各パーティションに格納される私有鍵(秘密鍵)を活性化するための活性化情報が格納されている。
私有鍵(秘密鍵)を活性化するための活性化情報は、後述の鍵活性化処理部64によって用いられる。
鍵活性化処理部64は、署名提供サーバ20により所定のトークン情報を付した署名要求が行われたとき、上記トークン情報と活性化情報記憶部91内の活性化情報を用いて、パーティション内の私有鍵(秘密鍵)を活性化する。そして、鍵活性化処理部64は、活性化した私有鍵(秘密鍵)を用いて電子署名の生成を行う。
換言すると、鍵活性化処理部64は、署名提供サーバ20よりの署名要求に応じて電子署名の生成を行うのに先立って、活性化情報を用いて、電子署名の生成に用いる私有鍵(秘密鍵)の活性化を行う。
私有鍵(秘密鍵)の活性化はリモート署名の都度行われてもよい(署名後に鍵は非活性化される)し、初回のリモート署名時にのみ行われてもよい。
鍵活性化情報処理部65は、鍵生成制御処理部63が鍵生成処理を行ったときに用いたKeyAlias、PIN、及び生成した鍵を格納したHSM100内のパーティションのPartition Name、Partition Passwordを、アクセストークンに紐付けた活性化情報として、活性化情報記憶部91に格納する処理を行う。
受付処理部66は、署名提供サーバ20から行われるリモート署名の要求の受付処理を行う。
シングルサインオンの技術において、鍵管理システム3(鍵管理サーバ30)は、認証情報を提供する側であるIdentity Provider(IdP)であり、署名提供システム2(署名提供サーバ20)は、認証情報を利用する側であるService Provider(SP)である。
図4は、本実施形態のリモート署名システムにおけるアクセストークン発行処理の流れを説明する図である。
ステップS1において、利用者が使用する端末装置10(ウェブブラウザ)は、電子署名を要求するために署名提供サーバ20にアクセスする。
電子署名の要求を受けた署名提供サーバ20は、ステップS2において、利用者を鍵管理サーバ30にリダイレクトするページを端末装置10に供給する。
利用者の操作によって、端末装置10は、ステップS3において、鍵管理サーバ30に対して、認可要求(Authorization request)の送信を行う(RFC6749#4.1.1.)。これは、シングルサインオンの仕組みにおいて利用者の認証を要求するための手続である。
ステップS4のユーザ認証処理において、鍵管理サーバ30は、認証情報(例えば、ユーザIDとユーザパスワード)の入力を利用者に要求する。また、当該の利用者のアカウントが未作成の場合には、鍵管理サーバ30は、当該利用者のためのアカウントを新規に作成する処理を行う。
なお、ステップS4のユーザ認証処理において、認証情報の入力はRFC6749(OAuth2.0)で規定される処理とは異なり、鍵管理サーバ30と端末装置10との間で別途確立されるセッションにおいて行われる。
認証の方法は、ユーザID及びユーザパスワードの組み合わせを認証する形式のみならず、ICカードに格納されたトークンが端末装置か10から鍵管理サーバ30に送付されることにより認証が行われる場合もある。
利用者の認証又はアカウントの作成が正常に行われると、鍵管理サーバ30は、利用者の確認を得たうえで認可を確立し、ステップS5において、認可応答(Authorization response)として、認可コード(Authorization code)を端末装置10に送信する(RFC6749#4.1.2.)。
鍵管理サーバ30から送信された認可コード(Authorization code)を受信した端末装置10(ウェブブラウザ)は、ステップS8において、認可コード(Authorization code)を署名提供サーバ20に転送(Redirect)する。
端末装置10から転送された認可コード(Authorization code)を取得した署名提供サーバ20は、ステップS9において、この認可コード(Authorization code)を用いて、Access token request(アクセストークン要求)を鍵管理サーバ30に対して行う(RFC6749#4.1.3.)。
Access token request(アクセストークン要求)を受けつけた鍵管理サーバ30は、ステップS10において、アクセストークン応答(Access token response)を署名提供サーバ20に返す。
すなわち鍵管理サーバ30は、セキュリティトークンとしてのアクセストークン(Access token)を署名提供サーバ20に送信する(RFC6749#4.1.4.)。
図5は、図4に示したトークン発行処理後のリモート署名処理の流れを説明する図である。
端末装置10からの要求に応じて、署名提供サーバ20は、ステップS21において、図4の処理で取得したアクセストークン(Access token)を用いて、リモート署名要求を鍵管理サーバ30に送信する。
リモート署名要求送信を受信した鍵管理サーバ30は、ステップS22において、電子署名を生成し(HSM100に電子署名を生成させ)、ステップS23において、生成された電子署名を署名提供サーバ20に送信する。
上記したように、HSM100上の各パーティションに格納されている私有鍵(秘密鍵)は、活性化されることによって電子署名に用いることができる。
以下、本実施形態の特徴的な構成であるHSM100が有する私有鍵(秘密鍵)を活性化するための処理手順について説明する。
図6は、HSMに格納されている私有鍵(秘密鍵)を活性化するための第1の構成を説明する図である。
HSM100が備える記憶領域101は、複数のパーティション(Partition)に分割されている。
各パーティションはユーザ毎に割り当てられており、鍵生成制御処理部63が生成した私有鍵(秘密鍵)を夫々格納される。
各パーティションには、Part.1、Part.2、Part.3、Part.4・・・など夫々を特定するパーティションIDとしての名前(Partition Name)が付けられており、アクセス用のパーティションパスワード(Partition Password)が設定される。
HSM100に接続された、あるいはHSM100を内蔵した鍵管理サーバ30は、例えば、記憶部30Bに、活性化情報記憶部91を備えている。
鍵活性化情報処理部65は、ステップS41において、鍵生成制御処理部63より活性化情報を取得する。
そして、ステップS42において、鍵活性化情報処理部65は、利用者を特定するトークン情報(アクセストークン)に紐付けて鍵活性化情報を鍵活性化情報記憶部91に格納する。
鍵活性化情報記憶部91には、各パーティションに格納される私有鍵(秘密鍵)を活性化するための鍵活性化情報が格納されている。上記のように鍵活性化情報は、Partition Name、Partition Password、Key Alias、PINである。
ステップ51において、受付処理部66が署名提供サーバ20からの所定のトークン情報を付した署名要求または私有鍵(秘密鍵)の活性化要求を受け付けると、鍵活性化処理部64は、トークン情報と鍵活性化情報記憶部91内の鍵活性化情報を用いて、トークン情報に対応するパーティション内の私有鍵(秘密鍵)を活性化する。
すなわち、ステップS52において、鍵活性化処理部64は、トークン情報(アクセストークン)に対応した鍵活性化情報を鍵活性化情報記憶部91から取得する。
そして、ステップS53において、鍵活性化処理部64は、取得した鍵活性化情報を用いてHSM100上の秘密鍵を活性化する。
取得された鍵活性化情報のうち、Partition Nameによって活性化すべき秘密鍵があるパーティションが特定可能であり、Partition Passwordによって当該パーティションへのアクセスが可能となる。
そして、署名生成制御処理部60は、HSM100を制御し、活性化された私有鍵(秘密鍵)を用いた電子署名の生成を行うのである。
上記のように構成することにより、署名提供サーバ20から送られてくる秘密鍵の利用者を特定可能なトークン情報によって、それに対応する鍵活性化情報を取得して秘密鍵の活性化を行うことができるので、簡便かつ安全に私有鍵(秘密鍵)を活性化して高セキュリティなリモート署名を行うことができる。
図7は、本実施形態の第2の例に係る鍵管理サーバの構成を示す図であり、(a)は、ハードウェアによる機能構成を示す図、(b)は、ソフトウェアによる機能構成を示す図である。
図7に示す鍵管理サーバは、図3で説明した鍵管理サーバと一部が異なる構成であり、図3と異なる部分のみを説明する。
図7(a)に示すハードウェア構成は、図3(a)と共通しているため説明を行わない。
図7(b)に示す制御部30Aは、署名生成制御処理部60、OAuth実行処理部61、ユーザ認証処理部62と、鍵生成制御処理部63と、鍵活性化処理部64と、受付処理部66と、を備え、図3の鍵活性化情報処理部65を備えず、スクランブル情報処理部67を備える。
また、RAM32またはHDD33から構成される記憶部30Bには、鍵活性化情報記憶部91を備えず、スクランブル情報記憶部92、システム鍵記憶部93を備えている。
スクランブル情報記憶部92には、下記に詳しく説明するように、各パーティションに格納される私有鍵(秘密鍵)を活性化するための鍵活性化情報Xを算出するためのスクランブル情報Sが格納されている。
システム鍵記憶部93には、各パーティションに格納される私有鍵(秘密鍵)を活性化するための鍵活性化情報Xを算出するためのシステム鍵Kが格納されている。
スクランブル情報、システム鍵は、後述の鍵活性化処理部64によって用いられる。
鍵活性化処理部64は、署名提供サーバ20により所定のトークン情報を付した署名要求が行われたとき、上記トークン情報(アクセストークン)と、鍵活性化情報記憶部91内のスクランブル情報S、システム鍵記憶部93内のシステム鍵Kを用いて、パーティション内の私有鍵(秘密鍵)を活性化するための鍵活性化情報Xを算出し、秘密鍵を活性化する。
そして、署名生成制御処理部60は、HSM100を制御し、活性化された私有鍵(秘密鍵)を用いて電子署名の生成を行う。
換言すると、鍵活性化処理部64は、署名生成制御処理部60が署名提供サーバ20よりの署名要求に応じた電子署名の生成を行うのに先立って、トークン情報T(アクセストークン)、スクランブル情報S、システム鍵K用いて鍵活性化情報Xを算出し、電子署名の生成に用いる私有鍵(秘密鍵)の活性化を行う。
スクランブル情報処理部67は、鍵生成制御処理部63が鍵生成処理を行ったときに用いたKeyAlias、PIN、及び生成した鍵を格納したHSM100内のパーティションのPartition Name、Partition Passwordよりなる鍵活性化情報Xと、トークン情報T(アクセストークン)と、システム鍵記憶部93に格納されているシステム鍵Kと、を用いて、スクランブル情報Sを生成し、スクランブル情報記憶部92に格納する処理を行う。
スクランブル情報を生成する際に用いるトークン情報T(アクセストークン)は、上記のようにOAuth実行処理部61が署名提供サーバ20に送信するアクセストークン(Access token)である。別の手段で新たに生成されたトークンであってもよい。
図8は、HSMに格納された鍵を活性化するための第2の構成を説明する図である。
スクランブル情報処理部67は、ステップS61において、鍵生成制御処理部63より鍵活性化情報Xを取得する。本例では、鍵活性化情報Xは、Partition Name、Partition Password、Key Alias、PINである。
ステップS62において、スクランブル情報処理部67は、Partition Name、Partition Password、Key Alias、PINからなる鍵活性化情報Xと、システム鍵Kと、トークン情報T(アクセストークン)を用い、スクランブル情報Sを算出する。あるいは、スクランブル情報Sを生成し、鍵活性化情報Xと、システム鍵Kとを用いて、トークン情報Tを算出する。
すなわち、本発明の第2の構成では、鍵活性化情報X、システム鍵K、トークン情報T、スクランブル情報Sの関係は、以下の式によって与えられる。
X=F(T,S)
ここで、関数Fは、鍵活性化情報X、システム鍵Kが与えられたときにトークン情報T、スクランブル情報Sを容易に算出可能であって、さらに新たな鍵活性化情報X’が与えられたときに、X’=F(T,S’)を満たすS’を容易に算出できるものを用いる。
以下では、このような関数Fを具体的に実現する一例を示し、本発明においてどのように機能するかを説明する。
非常に簡単な一例では、上記の条件を満たす関数Fは、
X=F(T,S)=K+T+S
とできる。ここで、「+」はビット毎に排他的論理和をとる演算である。
よって、スクランブル情報処理部67は、上式より、
S=X+K+T
すなわち、鍵活性化情報Xとシステム鍵Kとトークン情報Tを互いにビット毎の排他的論理和演算を実施することによってスクランブル情報Sを生成することができる。
ステップS63において、スクランブル情報処理部67は、算出したスクランブル情報Sを鍵管理サーバ30のスクランブル情報記憶部92に格納する。
トークン情報Tは、前もって署名提供サーバ20に付与されていてもよいし、生成したスクランブル情報Sから算出してもよい。上記のようにOAuth実行処理部61が署名提供サーバ20に送信するアクセストークン(Access token)であってもよいし、別の手段で生成されるトークンであってもよい。
ステップS71において、受付処理部66が署名提供サーバ20からの所定のトークン情報を付した署名要求または私有鍵(秘密鍵)の活性化要求を受け付けると、鍵活性化処理部64は、トークン情報T(アクセストークン)と、システム鍵記憶部93に記憶されるシステム鍵Kと、スクランブル情報記憶部92内のスクランブル情報Sと、を用いて鍵活性化情報Xを算出し、対応するパーティション内の私有鍵(秘密鍵)を活性化する。
すなわち、ステップS73において、鍵活性化処理部64は、トークン情報(アクセストークン)に対応した鍵活性化情報Xを、システム鍵Kと、トークン情報Tと、スクランブル情報記憶部92から取得したスクランブル情報Sとを用いて算出する。
そして、ステップS74において、鍵活性化処理部64は、算出した鍵活性化情報Xを用いてHSM100上の秘密鍵を活性化する。
より具体的には、ステップS73において、鍵活性化処理部64は、スクランブル情報Sと、システム鍵Kと、トークン情報T(アクセストークン)を用いて、下式によって鍵活性化情報Xを算出する。
鍵活性化情報X=スクランブル情報S+システム鍵K+トークン情報T
(但し、“+”は、BitwiseXOR/ビット単位の排他的論理和演算)
ステップS74において、鍵活性化処理部64は、算出した鍵活性化情報Xによって、HSM100上の秘密鍵を活性化する。
鍵活性化情報のうち、Partition Nameによって秘密鍵があるHSM100上のパーティションが特定され、Partition Passwordによって当該パーティションへのアクセスが可能となる。
そして、鍵活性化処理部64は、活性化した私有鍵(秘密鍵)を用いて電子署名の生成を行うのである。
ところで、Partition Passwordが変更されるなどによって、対応する私有鍵(秘密鍵)鍵活性化情報の値が後から変更される場合がありうる。その場合、鍵活性化情報を含むスクランブル情報も変更が必要となる。以下、その仕組みを説明する。
変更前の鍵活性化情報をX0、変更後の鍵活性化情報をX1とする。また、変更前のスクランブル情報をS0、変更後のスクランブル情報をS1とする。
スクランブル情報処理部67は、トークン情報T(アクセストークン)、変更後の鍵活性化情報X1、変更前の鍵活性化情報X0、元のスクランブル情報S0によって、新たなスクランブル情報S1を下式によって算出しなおし、スクランブル情報S0に替えてスクランブル情報記憶部92に格納する。
新たなスクランブル情報S1=新たな鍵活性化情報X1+元の鍵活性化情報X0+スクランブル情報S0
このように、新しいスクランブル情報を算出すると、利用者(署名提供サーバ20)に交付したトークン情報T(アクセストークン)は、再発行または再交付する必要がない。
鍵活性化情報の変更後、署名提供サーバ20によりトークン情報T(アクセストークン)を提示した署名要求が行われたときには、鍵活性化処理部64は、トークン情報T、スクランブル情報S1、システム鍵Kを用いて鍵活性化情報X1を算出し、それを用いて秘密鍵を活性化することができる。
すなわち、鍵活性化情報Xが変更されても、引き続き同一のトークン情報Tを用いて秘密鍵を活性化することができる。
上記のように構成することにより、署名提供サーバ20から送られてくる秘密鍵の利用者を特定可能なトークン情報によって、それに対応する鍵活性化情報を算出して秘密鍵の活性化を行うことができるので、簡便かつ安全に秘密鍵を活性化して高セキュリティなリモート署名を行うことができる。
さらに、鍵活性化情報をスクランブル化した情報だけを、鍵管理サーバ30に格納するため、生の鍵活性化情報を直接格納する第1の構成と比較してもセキュリティ上の大きな利点がある。
且つ、鍵ペアの生成後に鍵活性化情報が変更されたとしても従来のトークン情報を引き続き利用できることにはユーザビリティ上の利点がある。
なお、上記の2つの例では、鍵管理サーバ30が、署名提供サーバ20から取得したトークン情報Tを用いて、鍵活性化情報Xを取得し、あるいはスクランブル情報Sから鍵活性化情報Xを算出してHSM100内の秘密鍵を活性化していた。
それとは異なり、HSM100が内部的に鍵活性化情報を取得、あるいは算出し、秘密鍵を活性化するようにしてもよい。
図9は、内部的処理で秘密鍵を活性化する場合のHSMの機能構成を示す図である。
第1の例に関連して、鍵管理サーバ30が保持していた鍵活性化情報としてのPartition Name、Partition Password、Key Alias、PINをHSM100が保持する。
すなわち、図9(a)に示す様に、HSM100は、秘密鍵を格納する秘密鍵格納領域(各パーティション)を有する記憶領域101とは別に、あるいは記憶領域101内に、鍵活性化情報記憶部91を有する。
またHSM100は、署名処理部102、鍵生成処理部103に加えて、鍵活性化情報処理部65、鍵活性化処理部64を備える。
鍵活性化情報処理部65は、鍵生成制御処理部63から取得した鍵活性化情報を、トークン情報と関連付けて鍵活性化情報記憶部91に格納する。
HSM100の鍵活性化処理部64は、鍵管理サーバ30の鍵活性化処理部64からトークン情報を受け取ると、鍵活性化情報記憶部91内のトークン情報Tに対応する鍵活性化情報を特定する。鍵活性化処理部64は、特定した鍵活性化情報内のPartition Nameによってパーティションを特定し、Partition Passwordを用いてパーティションにアクセスし、Key Alias、PINによって秘密鍵を活性化する。
第2の例に関連して、鍵管理サーバ30が保持していたスクランブル情報をHSM100が保持する。
すなわち、図9(b)に示すように、HSM100は、秘密鍵を格納する秘密鍵格納領域(各パーティション)を有する記憶領域101とは別に、あるいは記憶領域101内に、スクランブル情報記憶部92と、システム鍵を記憶するシステム鍵記憶部93と、を有する。
またHSM100は、署名処理部102、鍵生成処理部103に加えて、スクランブル情報処理部67、鍵活性化情報処理部65と、を備える。
例えば、スクランブル情報処理部67は、鍵管理サーバ30の鍵生成制御処理部63から取得した鍵活性化情報Xとシステム鍵記憶部93に格納されるシステム鍵Kとを用いてスクランブル情報を生成して、スクランブル情報記憶部92に格納する。
その後、鍵活性化情報処理部65は、鍵管理サーバ30の鍵活性化処理部64からトークン情報Tを受け取ると、受け取ったトークン情報T、システム鍵K、スクランブル情報Sを用いて鍵活性化情報Xを算出し、対応するパーティション内の秘密鍵を活性化する。
HSM100がスクランブル情報処理部67を有さず、鍵管理サーバ30で生成したスクランブル情報を、スクランブル情報記憶部92に格納してもよい。
また、第2の例において、鍵活性化情報Xを算出する関数Fについて、スクランブル情報Sとシステム鍵KとセキュリティトークンTのビット毎の排他的論理和のみで算出できる例を示したが、これに限定されることなく、X=F(T,S)とあらわすことができ、鍵活性化情報X、システム鍵Kが与えられたときにトークン情報T、スクランブル情報Sを容易に算出可能であって、さらに新たな鍵活性化情報X’が与えられたときに、X’=F(T,S’)を満たすS’を容易に算出できるものであればどのようなものであってもよい。
以上のように構成することで、HSM100内で処理が完結するため、鍵活性化情報が外に出ることなく、非常にセキュアに秘密鍵を活性化してリモート署名を行うことができる。
[第1の態様]
第1の態様は、秘密鍵を記憶する鍵記憶部101と、秘密鍵を用いて電子署名を生成する署名処理部102と、外部装置が提示したトークン情報を受け付ける受付処理部66と、署名処理部102による電子署名の生成前に、受付処理部66が受け付けたトークン情報に対応する活性化情報を用いて、その活性化情報に対応する秘密鍵を活性化する鍵活性化処理部64と、を備えた鍵管理システム3である。
第1の態様によれば、署名提供サーバ20から送られてくる秘密鍵の利用者を特定可能なトークン情報に応じた活性化情報によって秘密鍵の活性化を行うことができるので、簡便かつ安全に秘密鍵を活性化して高セキュリティなリモート署名を行うことができる。
[第2の態様]
第2の態様は、第1の態様において、活性化情報をトークン情報に関連づけて記憶する活性化情報記憶部91を備え、鍵活性化処理部64は、受付処理部66が受け付けたトークン情報に対応する活性化情報を活性化情報記憶部91から選択し、該選択した活性化情報に基づいて、当該活性化情報に対応する秘密鍵を活性化する鍵管理システム3である。
第2の態様によれば、署名提供サーバ20から送られてくる秘密鍵の利用者を特定可能なトークン情報によって、それに対応する活性化情報を取得して秘密鍵の活性化を行うことができるので、簡便かつ安全に秘密鍵を活性化して高セキュリティなリモート署名を行うことができる。
[第3の態様]
第3の態様は、第2の態様において、署名装置100と、署名装置100を制御して電子署名を生成させる鍵管理サーバ30と、を備え、署名装置100は、鍵記憶部101と、署名処理部102と、活性化情報記憶部91と、鍵活性化処理部64と、を備え、鍵管理サーバ30は、受付処理部66を備え、署名装置100は、鍵管理サーバ30が受け付けたトークン情報に対応する活性化情報を用いて、当該活性化情報に対応する秘密鍵を活性化する鍵管理システム3である。
第3の態様によれば、署名提供サーバ20から送られてくる秘密鍵の利用者を特定可能なトークン情報によって、それに対応する活性化情報を取得して秘密鍵の活性化を行うことができるので、簡便かつ安全に秘密鍵を活性化して高セキュリティなリモート署名を行うことができる。
さらに、活性化情報を署名装置100内に格納して、安全に秘密鍵の活性化を行うことができる。
[第4の態様]
第4の態様は、第1の態様において、活性化情報と、トークン情報と、に基づいて算出されたスクランブル情報をトークン情報に関連付けて記憶するスクランブル情報記憶部92と、を備え、鍵活性化処理部64は、受付処理部66が受け付けたトークン情報と、スクランブル情報と、に基づいて活性化情報を算出し、算出した活性化情報に基づいて、その活性化情報に対応する秘密鍵を活性化する鍵管理システム3である。
第4の態様によれば、署名提供サーバ20から送られてくる秘密鍵の利用者を特定可能なトークン情報を用いて算出した活性化情報によって秘密鍵の活性化するので、生の活性化情報を保持する必要がなく、より安全に秘密鍵を活性化して高セキュリティなリモート署名を行うことができる。
[第5の態様]
第5の態様は、第4の態様において、署名装置100と、署名装置100を制御して電子署名を生成させる鍵管理サーバ30と、を備え、署名装置100は、鍵記憶部101と、署名処理部102と、スクランブル情報記憶部92と、鍵活性化処理部64と、を備え、鍵管理サーバ30は、受付処理部66を備え、署名装置100は、鍵管理サーバ30が受け付けたトークン情報と、スクランブル情報と、に基づいて活性化情報を算出し、該算出した活性化情報に基づいて、当該活性化情報に対応する秘密鍵を活性化する鍵管理システム3である。
第4の態様によれば、署名提供サーバ20から送られてくる秘密鍵の利用者を特定可能なトークン情報を用いて算出した活性化情報によって秘密鍵の活性化するので、生の活性化情報を保持する必要がなく、より安全に秘密鍵を活性化して高セキュリティなリモート署名を行うことができる。
さらに、活性化情報の算出を署名装置内で行うため、活性化情報が流出する懸念がなく、より安全に秘密鍵を活性化することができる。
[第6の態様]
第6の態様は、秘密鍵を記憶する鍵記憶部101と、秘密鍵を用いて電子署名を生成する署名処理部102と、外部装置が提示したトークン情報に対応する活性化情報を用いて、当該活性化情報に対応する秘密鍵を活性化する鍵活性化処理部64と、を備えた署名装置100である。
第6の態様によれば、署名提供サーバ20から送られてくる秘密鍵の利用者を特定可能なトークン情報に応じた活性化情報によって秘密鍵の活性化を行うことができるので、簡便かつ安全に秘密鍵を活性化して高セキュリティなリモート署名を行うことができる。
[第7の態様]
第7の態様は、第6の態様において、活性化情報を記憶する活性化情報記憶部91を備え、鍵活性化処理部64は、外部装置から提示されたトークン情報に対応する活性化情報を用いて、当該活性化情報に対応する秘密鍵を活性化する署名装置100である。
第6の態様によれば、署名提供サーバ20から送られてくる秘密鍵の利用者を特定可能なトークン情報によって、それに対応する活性化情報を取得して秘密鍵の活性化を行うことができるので、簡便かつ安全に秘密鍵を活性化して高セキュリティなリモート署名を行うことができる。
[第8の態様]
第8の態様は、第6の態様において、活性化情報と、トークン情報と、に基づいて算出されたスクランブル情報をトークン情報に関連付けて記憶するスクランブル情報記憶部92を備え、鍵活性化処理部64は、外部装置が提示したトークン情報と、当該トークン情報に対応するスクランブル情報と、に基づいて活性化情報を算出し、該算出した活性化情報に基づいて、当該活性化情報に対応する秘密鍵を活性化する署名装置100である。
第6の態様によれば、署名提供サーバ20から送られてくる秘密鍵の利用者を特定可能なトークン情報を用いて算出した活性化情報によって秘密鍵の活性化するので、生の活性化情報を保持する必要がなく、より安全に秘密鍵を活性化して高セキュリティなリモート署名を行うことができる。
1 リモート署名システム、2 署名提供システム、3 鍵管理システム、10 端末装置、20 署名提供サーバ、21 CPU、23 HDD、24 ネットワークI/F、30 鍵管理サーバ、31 CPU、32 RAM、33 HDD、34 ネットワークI/F、51 ウェブページ処理部、52 OAuth実行処理部、53 署名要求処理部、55 HTMLページ記憶部、60 署名生成制御処理部、61 OAuth実行処理部、62 ユーザ認証処理部、63 鍵生成制御処理部、64 鍵活性化処理部、65 鍵活性化情報処理部、66 受付処理部、67 スクランブル情報処理部、91 鍵活性化情報記憶部、92 スクランブル情報記憶部、93 システム鍵記憶部、100 HSM、101 記憶領域、102 署名処理部、103 鍵生成処理部

Claims (10)

  1. 秘密鍵を記憶する鍵記憶部と、
    前記秘密鍵を用いて電子署名を生成する署名処理部と、
    外部装置が提示したトークン情報を受け付ける受付処理部と、
    前記署名処理部による電子署名の生成前に、前記受付処理部が受け付けた前記トークン情報に対応する活性化情報を用いて、当該活性化情報に対応する秘密鍵を活性化する鍵活性化処理部と、
    を備えたことを特徴とする鍵管理システム。
  2. 請求項1に記載の鍵管理システムにおいて、
    前記活性化情報を前記トークン情報に関連づけて記憶する活性化情報記憶部を備え、
    前記鍵活性化処理部は、
    前記受付処理部が受け付けた前記トークン情報に対応する活性化情報を前記活性化情報記憶部から選択し、該選択した活性化情報に基づいて、当該活性化情報に対応する秘密鍵を活性化することを特徴とする鍵管理システム。
  3. 請求項2に記載の鍵管理システムにおいて、
    署名装置と、該署名装置を制御して前記電子署名を生成させる鍵管理サーバと、を備え、
    前記署名装置は、前記鍵記憶部と、前記署名処理部と、前記活性化情報記憶部と、前記鍵活性化処理部と、を備え、
    前記鍵管理サーバは、前記受付処理部を備え、
    前記署名装置は、
    前記鍵管理サーバが受け付けた前記トークン情報に対応する活性化情報を用いて、当該活性化情報に対応する秘密鍵を活性化することを特徴とする鍵管理システム。
  4. 請求項1に記載の鍵管理システムにおいて、
    前記活性化情報と前記トークン情報とに基づいて算出されたスクランブル情報を前記トークン情報に関連付けて記憶するスクランブル情報記憶部を備え、
    前記鍵活性化処理部は、
    前記受付処理部が受け付けた前記トークン情報と、当該トークン情報に対応する前記スクランブル情報と、に基づいて前記活性化情報を算出し、該算出した活性化情報に基づいて、当該活性化情報に対応する秘密鍵を活性化することを特徴とする鍵管理システム。
  5. 請求項4に記載の鍵管理システムにおいて、
    署名装置と、該署名装置を制御して前記電子署名を生成させる鍵管理サーバと、を備え、
    前記署名装置は、前記鍵記憶部と、前記署名処理部と、前記スクランブル情報記憶部と、前記鍵活性化処理部と、を備え、
    前記鍵管理サーバは、前記受付処理部を備え、
    前記署名装置は、前記鍵管理サーバが受け付けた前記トークン情報と、当該トークン情報に対応する前記スクランブル情報と、に基づいて前記活性化情報を算出し、該算出した活性化情報に基づいて、当該活性化情報に対応する秘密鍵を活性化することを特徴とする鍵管理システム。
  6. 秘密鍵を記憶する鍵記憶部と、
    前記秘密鍵を用いて電子署名を生成する署名処理部と、
    外部装置が提示したトークン情報に対応する活性化情報を用いて、当該活性化情報に対応する秘密鍵を活性化する鍵活性化処理部と、
    を備えたことを特徴とする署名装置。
  7. 請求項6に記載の署名装置において、
    前記活性化情報を記憶する前記活性化情報記憶部と、を備え、
    前記鍵活性化処理部は、外部装置から提示された前記トークン情報に対応する活性化情報を用いて、当該活性化情報に対応する秘密鍵を活性化することを特徴とする署名装置。
  8. 請求項6に記載の署名装置において、
    前記活性化情報と、前記トークン情報と、に基づいて算出されたスクランブル情報を前記トークン情報に関連付けて記憶するスクランブル情報記憶部を備え、
    前記鍵活性化処理部は、外部装置が提示した前記トークン情報と、当該トークン情報に対応する前記スクランブル情報と、に基づいて前記活性化情報を算出し、該算出した活性化情報に基づいて、当該活性化情報に対応する秘密鍵を活性化することを特徴とする署名装置。
  9. 秘密鍵を記憶する鍵記憶部と、前記秘密鍵を用いて電子署名を生成する署名処理部と、受付処理部と、鍵活性化処理部と、を備えた鍵管理システムの鍵管理方法であって、
    前記受付処理部が、外部装置が提示したトークン情報を受け付けるステップと、
    前記鍵活性化処理部が、前記受付処理部が受け付けた前記トークン情報に対応する活性化情報を用いて、当該活性化情報に対応する秘密鍵を活性化するステップと、
    を備えたことを特徴とする鍵管理方法。
  10. 請求項9に記載の鍵管理方法をコンピュータに実行させるプログラム。
JP2019161938A 2019-09-05 2019-09-05 鍵管理システム、署名装置、鍵管理方法及びプログラム Pending JP2021040278A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019161938A JP2021040278A (ja) 2019-09-05 2019-09-05 鍵管理システム、署名装置、鍵管理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019161938A JP2021040278A (ja) 2019-09-05 2019-09-05 鍵管理システム、署名装置、鍵管理方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2021040278A true JP2021040278A (ja) 2021-03-11

Family

ID=74847531

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019161938A Pending JP2021040278A (ja) 2019-09-05 2019-09-05 鍵管理システム、署名装置、鍵管理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2021040278A (ja)

Similar Documents

Publication Publication Date Title
CN109088889B (zh) 一种ssl加解密方法、系统及计算机可读存储介质
US9467430B2 (en) Device, method, and system for secure trust anchor provisioning and protection using tamper-resistant hardware
US10567370B2 (en) Certificate authority
US8532620B2 (en) Trusted mobile device based security
TWI715537B (zh) 基於雲環境的加密機金鑰注入系統、方法及裝置
US8719952B1 (en) Systems and methods using passwords for secure storage of private keys on mobile devices
RU2297037C2 (ru) Управление защищенной линией связи в динамических сетях
US9137017B2 (en) Key recovery mechanism
CN109639427B (zh) 一种数据发送的方法及设备
US20100042848A1 (en) Personalized I/O Device as Trusted Data Source
CN106713279B (zh) 一种视频终端身份认证系统
US20030145237A1 (en) Multiple secure socket layer keyfiles for client login support
JP6571890B1 (ja) 電子署名システム、証明書発行システム、証明書発行方法及びプログラム
JP5992535B2 (ja) 無線idプロビジョニングを実行するための装置及び方法
ES2665887T3 (es) Sistema de datos seguro
US20210392004A1 (en) Apparatus and method for authenticating device based on certificate using physical unclonable function
JP4332071B2 (ja) クライアント端末、ゲートウエイ装置、及びこれらを備えたネットワークシステム
JP6465426B1 (ja) 電子署名システム、証明書発行システム、鍵管理システム及び電子証明書発行方法
JP2001134534A (ja) 認証代行方法、認証代行サービスシステム、認証代行サーバ装置及びクライアント装置
TW202118271A (zh) 使用參與實體之網絡識別符促進與區塊鏈關聯之交易的電腦實施系統及方法
Alsaid et al. Preventing phishing attacks using trusted computing technology
JP4499575B2 (ja) ネットワークセキュリティ方法およびネットワークセキュリティシステム
JP2005175992A (ja) 証明書配布システムおよび証明書配布方法
JP2010028689A (ja) 公開パラメータ提供サーバ、公開パラメータ提供方法、公開パラメータ提供プログラム、暗号化処理実行装置、暗号化処理実行方法、暗号化処理実行プログラム、署名処理実行装置、署名処理実行方法及び署名処理実行プログラム
TWI698113B (zh) 電子裝置之認證方法及系統

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190917