JP6745933B2 - 個別署名システム - Google Patents

個別署名システム Download PDF

Info

Publication number
JP6745933B2
JP6745933B2 JP2019056239A JP2019056239A JP6745933B2 JP 6745933 B2 JP6745933 B2 JP 6745933B2 JP 2019056239 A JP2019056239 A JP 2019056239A JP 2019056239 A JP2019056239 A JP 2019056239A JP 6745933 B2 JP6745933 B2 JP 6745933B2
Authority
JP
Japan
Prior art keywords
signature
signature value
value
unit
server
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.)
Active
Application number
JP2019056239A
Other languages
English (en)
Other versions
JP2019176470A (ja
Inventor
一紀 酒巻
一紀 酒巻
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.)
Mitsubishi Electric Information Systems Corp
Original Assignee
Mitsubishi Electric Information Systems Corp
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 Mitsubishi Electric Information Systems Corp filed Critical Mitsubishi Electric Information Systems Corp
Publication of JP2019176470A publication Critical patent/JP2019176470A/ja
Application granted granted Critical
Publication of JP6745933B2 publication Critical patent/JP6745933B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、複数文書を同時に安全に個別署名する技術に関する。
サーバ上で管理している複数の文書に対して、安全に署名が行えるようにすることがこれまで検討されてきた。
特許文献1には、複数のメッセージに対して1回の署名で済ませる発明が開示されている。
特開2007−28014号公報
しかし、特許文献1では、複数ファイルを一度に署名する方法については開示されているが、署名サーバと署名生成端末との間にMan in the Middle Attackや悪意のサイトへの誘導が行われた場合、意図しないデータに署名を行ってしまうリスクがある。
本発明は、署名サーバと検証サーバを用い、2段階で署名を行う構成とし、各署名の間で、署名対象文書の確認を入れることで、意図した文書に安全に署名を行うことを課題とする。
この発明に係る個別署名システムは、ネットワークを介して接続される署名サーバと検証サーバと署名クライアント端末とからなる個別署名システムであって、
前記署名サーバは、所定のファイルのハッシュ値を生成するハッシュ値生成部と、前記ハッシュ値をもとに前記署名クライアント端末によって作成された第1の署名値から仮の署名値を作成し、前記所定のファイルに添付する署名値添付部とを備え、
前記署名クライアント端末は、前記ハッシュ値から前記第1の署名値を作成する署名/暗号化部と、前記仮の署名値が添付された前記所定のファイルが変更されているか否かを利用者に確認させる署名値確認置換部とを備え、
前記検証サーバは、前記利用者の確認後、前記所定のファイルに添付された前記仮の署名値を第2の署名値に置換する署名値置換部を備える。
前記署名値添付部は、前記所定のファイルが複数ある場合には、前記所定のファイルに対応する前記第1の署名値を分割し、分割された複数の前記第1の署名値から複数の前記仮の署名値を作成し、作成された前記仮の署名値を前記所定のファイルのいずれかに添付する。
前記署名サーバは、前記所定のファイルおよび前記第1の署名値を前記署名クライアント端末から取得し、前記署名値添付部は、前記所定のファイルと前記第1の署名値の個数が一致していることを検証した後、前記所定のファイルに前記第1の署名値から作成された前記仮の署名値を添付する。
前記検証サーバは、前記所定のファイルおよび前記署名サーバが作成した仮の署名値を前記署名クライアント端末経由で取得し、前記署名値置換部は、前記仮の署名値から作成した前記第2の署名値が前記第1の署名値と一致することを確認し、前記所定のファイルに添付された前記仮の署名値を前記第2の署名値に置換する。
前記署名値添付部は、前記仮の署名値を前記所定のファイルに添付するとき、仮の署名値を鍵2で暗号化し、前記署名値置換部は、前記署名値添付部により暗号化された仮の署名値を鍵2で復号する。
前記署名値確認置換部は、前記仮の署名値が添付された前記所定のファイルが変更されていないことを利用者から受け付けたとき、前記検証サーバに対して前記所定のファイルに添付された前記仮の署名値を前記第2の署名値に置換することを指示する。
さらに、前記署名クライアント端末は、前記所定のファイルへの前記仮の署名値の添付を前記署名サーバに指示する署名値添付指示部を備え、前記署名値添付指示部から前記署名サーバへの指示経路と、前記署名値確認置換部から前記検証サーバへの指示経路とは、別経路として実現される。
さらに、前記署名クライアント端末は、前記第2の署名値を添付する前記所定のファイルを選択するファイル選択部を備える。
前記署名/暗号化部は、前記第1の署名値を鍵1で暗号化して前記署名サーバに送付し、前記署名値添付部は、前記署名/暗号化部により暗号化された前記第1の署名値を復号する。
前記署名サーバと前記検証サーバは、同一装置で動作する。
この発明に係る個別署名システムは、ネットワークを介して接続される署名サーバと検証サーバと署名クライアント端末とからなる個別署名システムであって、
前記署名サーバは、所定のファイルのハッシュ値を生成するハッシュ値生成部と、前記ハッシュ値から第1の署名値を作成する署名/暗号化部と、前記ハッシュ値をもとに前記署名クライアント端末によって作成された前記第1の署名値から仮の署名値を作成し、前記所定のファイルに添付する署名値添付部とを備え、
前記検証サーバは、前記所定のファイルに添付された前記仮の署名値を第2の署名値に置換する署名値置換部を備え、
前記署名クライアント端末は、前記仮の署名値が添付された前記所定のファイルが変更されているか否かを利用者に確認させる署名値確認置換部を備える。
この発明では、悪意の第三者からの攻撃で意図しない文書に署名を行うことを防ぐことができる。
実施の形態1に係る個別署名システム1の構成図。 実施の形態1に係る署名クライアント端末100の構成図。 実施の形態1に係る署名サーバ300の構成図。 実施の形態1に係る検証サーバ400の構成図。 実施の形態1に係るハッシュ値作成処理のフロー図。 実施の形態1に係る第1の署名値作成処理のフロー図。 実施の形態1に係る仮の署名値による利用者への確認処理のフロー図。 実施の形態1に係る第2の署名値作成処理のフロー図。 実施の形態1に係るファイル管理テーブル151の説明図。 実施の形態1に係るファイル管理テーブル352の説明図。 実施の形態1に係るファイル管理テーブル352の説明図。 実施の形態1に係る署名値作成テーブル152の説明図。 実施の形態1に係る署名値作成テーブル152の説明図。 実施の形態1に係る署名値管理テーブル353の説明図。 実施の形態1に係る署名値管理テーブル353の説明図。 実施の形態1に係る署名値管理テーブル353の説明図。 実施の形態1に係る署名値確認テーブル153の説明図。 実施の形態1に係る署名値添付テーブル452の説明図。 実施の形態1に係る署名値添付テーブル452の説明図。 実施の形態1に係る署名値付きファイル保管テーブル154の説明図。 実施の形態1変形例2に係る署名サーバ300の構成図。 実施の形態1変形例2に係る検証サーバ400の構成図。 実施の形態2に係る個別署名システム1の構成図。 実施の形態2に係る署名クライアント端末100の構成図。 実施の形態2に係る署名サーバ300の構成図。 実施の形態2に係るハッシュ値作成処理のフロー図。 実施の形態2に係る第1の署名値作成処理のフロー図。 実施の形態2に係る仮の署名値による利用者への確認処理のフロー図。 実施の形態2に係る第2の署名値作成処理のフロー図。
実施の形態1.
***構成の説明***
図1を参照して、実施の形態1に係る個別署名システム1の構成を説明する。
個別署名システム1は、署名クライアント端末100と、署名サーバ300と、検証サーバ400とを備える。ICカード200は、署名クライアント端末100に接続されている。署名クライアント端末100と署名サーバ300と検証サーバ400は、ネットワーク500を介して接続されている。
署名クライアント端末100は、PC(Personal Computer)といった利用者が使用するコンピュータである。
ICカード200は、集積回路が組み込まれたカードである。利用者の秘密鍵が記録されており、署名クライアント端末100とは、所定のインタフェースでの通信が可能である。
署名サーバ300と検証サーバ400とは、個別署名サービスを提供するコンピュータである。サービスを提供する会社、または、サービスを提供する会社が利用するデータセンターといった場所に通常は設置されるが、署名クライアント端末100と同じLAN内に設置されても構わない。
図2を参照して、実施の形態1に係る署名クライアント端末100の構成を説明する。
署名クライアント端末100は、プロセッサ110を備えるとともに、メモリ122、補助記憶装置121からなる記憶装置120、および入出力インタフェース130といった他のハードウェアを備える。プロセッサ110は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
署名クライアント端末100は、機能要素として、ファイル選択部111と、ファイル送受信部112と、署名値添付指示部113と署名値確認置換部114とを備える。以下の説明では、ファイル選択部111と、ファイル送受信部112と、署名値添付指示部113と署名値確認置換部114との機能を、署名クライアント端末100の「部」の機能という。
ファイル選択部111と、ファイル送受信部112と、署名値添付指示部113と署名値確認置換部114の機能は、ソフトウェアにより実現される。
記憶部150は、記憶装置120で実現される。記憶部150には、ファイル管理テーブル151と署名値作成テーブル152と署名値確認テーブル153と署名値付きファイル保管テーブル154が記憶される。
ICカード200の構成を説明する。
ICカード200は、プロセッサ210を備えるとともに、メモリ222、補助記憶装置221からなる記憶装置220、および入出力インタフェース230といった他のハードウェアを備える。プロセッサ210は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
ICカード200は、機能要素として、署名/暗号化部211を備える。以下の説明では、署名/暗号化部211の機能を、ICカード200の「部」の機能という。署名/暗号化部211の機能は、ソフトウェアにより実現される。
記憶部250は、記憶装置220で実現される。記憶部250には、秘密鍵管理テーブル251が記憶される。
図3を参照して、実施の形態1に係る署名サーバ300の構成を説明する。
署名サーバ300は、プロセッサ310を備えるとともに、メモリ322、補助記憶装置321からなる記憶装置320、および入出力インタフェース330といった他のハードウェアを備える。プロセッサ310は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
署名サーバ300は、機能要素として、ファイル送受信部311と、ハッシュ値生成部312と、署名値添付部313とを備える。以下の説明では、ファイル送受信部311と、ハッシュ値生成部312と、署名値添付部313との機能を、署名サーバ300の「部」の機能という。ファイル送受信部311と、ハッシュ値生成部312と、署名値添付部313との機能は、ソフトウェアにより実現される。
記憶部350は、記憶装置320で実現される。記憶部350には、公開鍵管理テーブル351とファイル管理テーブル352と署名値管理テーブル353が記憶される。
図4を参照して、実施の形態1に係る検証サーバ400の構成を説明する。
検証サーバ400は、プロセッサ410を備えるとともに、メモリ422、補助記憶装置421からなる記憶装置420、および入出力インタフェース430といった他のハードウェアを備える。プロセッサ410は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
検証サーバ400は、機能要素として、ファイル送受信部411と、署名値置換部412と、検証部413とを備える。以下の説明では、ファイル送受信部411と、署名値置換部412と、検証部413との機能を、検証サーバ400の「部」の機能という。
ファイル送受信部411と、署名値置換部412と、検証部413との機能は、ソフトウェアにより実現される。
記憶部450は、記憶装置420で実現される。記憶部450には、公開鍵管理テーブル451と署名値添付テーブル452が記憶される。
プロセッサ110,210,310,410は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ110,210,310,410は、具体例としては、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics
Processing Unit)である。
記憶装置120は、補助記憶装置121及びメモリ122を含む。記憶部150は、メモリ122により実現される。なお、記憶部150は、補助記憶装置121により実現されていてもよいし、補助記憶装置121とメモリ122の両方により実現されてもよい。
記憶装置220は、補助記憶装置221及びメモリ222を含む。記憶部250は、メモリ222により実現される。なお、記憶部250は、補助記憶装置221により実現されていてもよいし、補助記憶装置221とメモリ222の両方により実現されてもよい。
記憶装置320は、補助記憶装置321及びメモリ322を含む。記憶部350は、メモリ322により実現される。なお、記憶部350は、補助記憶装置321により実現されていてもよいし、補助記憶装置121とメモリ122の両方により実現されてもよい。
記憶装置420は、補助記憶装置421及びメモリ422を含む。記憶部450は、メモリ422により実現される。なお、記憶部450は、補助記憶装置421により実現されていてもよいし、補助記憶装置421とメモリ422の両方により実現されてもよい。
メモリ122,222,322,422は、データを一時的に記憶する記憶装置である。メモリ122,222,322,422は、具体例としては、SRAM(Static
Random Access Memory)、DRAM(Dynamic Random Access Memory)である。
補助記憶装置121,321,421は、データを保管する記憶装置である。補助記憶装置121,321,421は、具体例としては、HDD(Hard Disk Drive)である。また、補助記憶装置121,321,421は、SD(登録商標,Secure Digital)メモリカード、CF(登録商標,CompactFlash)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital Versatile Disk)といった可搬記憶媒体であってもよい。
補助記憶装置221は、データを保管する記憶装置である。メモリ222で代替可能である。
補助記憶装置121,221,321,421は、「部」の機能を実現するプログラムが記憶されている。このプログラムは、メモリ122,222,322,422にロードされ、プロセッサ110,210,310,410に読み込まれ、プロセッサ110,210,310,410によって実行される。補助記憶装置121,221,321,421には、OS(Operating・System)も記憶されている。OSの少なくとも一部がメモリ122,222,322,422にロードされ、プロセッサ110,210,310,410はOSを実行しながら、「部」の機能を実現するプログラムを実行する。
入出力インタフェース130,230,330,430は、外部の装置と通信するためのインタフェースである。入出力インタフェース130,230,330,430は、具体例としては、Ethernet(登録商標)、USB(Universal Serial Bus)、HDMI(登録商標,High−Definition Multimedia Interface)のポートである。
図2の署名クライアント端末100では、プロセッサ110は、1つだけ示されている。しかし、署名クライアント端末100は、プロセッサ110を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、ファイル選択部111と、ファイル送受信部112と、署名値添付指示部113と署名値確認置換部114との機能を実現するプログラムの実行を分担する。それぞれのプロセッサは、プロセッサ110と同じように、プロセッシングを行うICである。
同様に、図3ではプロセッサ310は、1つだけ示されている。しかし、署名サーバ300は、プロセッサ310を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、ファイル送受信部311と、ハッシュ値生成部312と、署名値添付部313との機能を実現するプログラムの実行を分担する。
図4についても同様に、プロセッサ410は、1つだけ示されている。しかし、検証サーバ400は、プロセッサ410を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、ファイル送受信部411と、署名値置換部412と、検証部413との機能を実現するプログラムの実行を分担する。
***動作の説明***
図5から図8を参照して、実施の形態1に係る個別署名システム1の動作を説明する。
実施の形態1に係る個別署名システム1の動作は、実施の形態1に係る個別署名方法に相当する。また、実施の形態1に係る個別署名システム1の動作は、実施の形態1に係る個別署名プログラムの処理に相当する。
まず、図5を参照して、実施の形態1に係るハッシュ値作成処理について説明する。
個別署名を行う利用者は、まず署名する所定のファイルを選択する(ステップS1)。
ファイル選択部111は、利用者が選択した所定のファイル名をファイル管理テーブル151に保管する。所定のファイルの実体は、ディスク内に保管される。
図9の例では、利用者によって「ccc.pdf」、「ddd.pdf」、「eee.pdf」の3ファイルが所定のファイルとして選択され、ファイル管理テーブル151に、保存されたことを示している。
個別署名システム1では、所定のファイルへの署名を2段階で行う。
通常の署名システムでは、署名は1度で行われる。しかし、通信経路で妨害が発生した場合、署名を1度で行う署名システムでは、意図しない文書に署名されても気付くことができない。そこで、利用者によって作成される署名値を所定のファイルにいきなり添付するのではなく、利用者によって作成される署名値を検証可能なレベルで別の署名値にいったん変換し、変換した署名値を利用者に返送し、利用者によって、意図した文書に署名されているかの確認を行う構成とした。
これらの説明のため、最初に利用者によって作成される署名値を第1の署名値と呼ぶ。次に、第1の署名値から作成され、所定のファイルに添付され、利用者に所定のファイルの署名値であることを確認するための署名値を仮の署名値と呼ぶ。最後に、仮の署名値から復元され、所定のファイルに添付され、最終的に利用者に返送される署名値を第2の署名値と呼ぶこととする。通信経路上で妨害が発生しない場合は、第1の署名値と第2の署名値は同内容である。
個別署名システム1は、第2の署名値を添付するために、所定のファイルを選択するファイル選択部111を備えることを特徴とする。
ファイル送受信部112は、利用者により選択された所定のファイルを署名サーバ300に送信する(ステップS2)。
署名サーバ300のファイル送受信部311は、所定のファイルを受信する(ステップS3)。
受信した所定のファイル名は、図10に示すように、トランザクションIDと利用者IDと共にファイル管理テーブル352に保管される。
トランザクションIDは、署名処理単位を識別するためのIDである。また、利用者IDは、利用者を特定するためのIDである。
ハッシュ値生成部312は、ハッシュ関数を用いて、受信した所定のファイルのハッシュ値を求める(ステップS4)。
個別署名システム1は、所定のファイルのハッシュ値を署名サーバ300のハッシュ値生成部312で生成することを特徴とする。作成されたハッシュ値は、図11に示すように、ファイル管理テーブル352に保管される。
ファイル送受信部311は、所定のファイル名とハッシュ値とトランザクションIDとを署名クライアント端末100に送信する(ステップS5)。
署名クライアント端末のファイル送受信部112は、ハッシュ値を受信する(ステップS6)。受信したハッシュ値は、図12に示すように、ファイル名、トランザクションIDと共に、署名値作成テーブル152に保管される。
次に、図6を使用して、実施の形態1に係る第1の署名値作成処理を説明する。
利用者は、署名回数とPIN(パスワード)を入力する(ステップS11)。署名回数は、所定のファイルの数である。PINは、ICカード内に保管された秘密鍵で署名をするためのパスワードである。
署名値添付指示部113は、所定のファイル数と署名回数が同じか判定する(ステップS12)。異なっている場合は、再度、署名回数とPIN(パスワード)を入力する必要がある。所定のファイル数と署名回数が一致している場合は、次の処理に進む。
署名値添付指示部113は、ハッシュ値の一つとPINをICカード200に渡す(ステップS13)。
署名/暗号化部211は、PINが正しいどうか、予めICカード内の秘密鍵管理テーブル251に保管されている情報を元に判定する(ステップS14)。
PINが正しくない場合は、再度ステップS11に戻り、署名回数とPIN(パスワード)を入力する必要がある。PINが正しい場合は、次の処理に進む。
署名/暗号化部211は、ハッシュ値から第1の署名値を作成する(ステップS15)。
なお、署名/暗号化部211は、ICカード200ではなく、署名クライアント端末100内にあってもよい。
署名値添付指示部113は、署名値が未作成のハッシュ値はあるか判定する(ステップS16)。未作成のハッシュ値があれば、未だ署名値が作成されていないハッシュ値とPINをICカード200に渡す(ステップS13)。
署名値添付指示部113は、全てのハッシュ値に対して、第1の署名値の作成が完了した場合は、図13に示すように、第1の署名値を署名値作成テーブル152に保管する。
署名値添付指示部113は、第1の署名値を鍵1で暗号化する(ステップS17)。
鍵1は署名クライアント端末100と署名サーバ300の間で事前に交換された鍵であれば、秘密鍵でも共通鍵でも構わない。
第1の署名値のみ暗号化してもよいし、所定のファイルとトランザクションIDも併せて暗号化してもよい。
ファイル送受信部112は、所定のファイルと第1の署名値とトランザクションIDを署名サーバ300に送付する(ステップS18)。
署名サーバ300のファイル送受信部311は、所定のファイルと暗号化された第1の署名値とトランザクションIDとを受信する(ステップS19)。
次に、図7を参照して、実施の形態1に係る仮の署名値による利用者への確認処理を説明する。
署名値添付部313は、署名/暗号化部211により暗号化された第1の署名値を公開鍵管理テーブル351内に管理されている鍵1で復号する(ステップS21)。
復号した第1の署名値は、図14に示すように署名値管理テーブル353に保管される。図14では、「c1c2c3」、「d1d2d3」、「e1e2e3」が第1の署名値である。
署名値添付部313は、所定のファイルと第1の署名値の個数が、一致しているか判定する(ステップS22)。
所定のファイルと第1の署名値の個数が異なっている場合は、本処理はエラーとして終了となる。所定のファイルと第1の署名値の個数が一致している場合は、次の処理に進む。
署名値添付部313は、第1の署名値を公開鍵管理テーブル351に管理されている鍵2で暗号化し、所定のファイルが複数ある場合には、所定のファイルに対応する第1の署名値を分割(ストライピング)し、分割された複数の第1の署名値から複数の仮の署名値を作成する。(ステップS23)。
図15を使用してストライピングの方法を説明する。
図15では、「c1c2c3」、「d1d2d3」、「e1e2e3」が第1の署名値である。ストライピングとは、「c1c2c3」、「d1d2d3」、「e1e2e3」を所定のファイル数である3等分し、3等分したそれぞれのファイルの一つ目、二つ目、三つ目を組みとして、新たな署名値を仮の署名値として作成することである。具体的には、「c1d1e1」、「c2d2e2」、「c3d3e3」が仮の署名値となる。作成された仮の署名値は、署名値管理テーブル353の仮の署名値欄に保存される。
なお、ストライピングの方法については、これ以外の方法でも構わない。
鍵2は、鍵1とは異なる鍵とすることを特徴とする。鍵2は署名サーバ300と検証サーバ400の間で事前に交換された鍵であれば、秘密鍵でも共通鍵でも構わない。
また、ステップS23の処理では、第1の署名値を鍵2で暗号化した後、分割(ストライピング)したが、第1の署名値を分割(ストライピング)した後、鍵2で暗号化するようにしてもよい。
署名値添付部313は、作成された仮の署名値を、所定のファイルのいずれかに添付する(ステップS24)。
作成された仮の署名値付きファイルは、図16に示すように署名値管理テーブル353に保管される。
ファイル送受信部311は、仮の署名値付きファイルとトランザクションIDを署名クライアント端末100に送信する(ステップS25)。
個別署名システム1は、署名クライアント端末100に仮の署名値付きファイルを送信した後は、所定のファイルを署名サーバ300に残さないことを特徴とする。
署名クライアント端末100のファイル送受信部112は、仮の署名値付きファイルとトランザクションIDを受信する(ステップS26)。
受信した仮の署名値付きファイルは、図17に示すように、所定のファイル名とトランザクションIDとともに署名値確認テーブル153に保管される。
署名サーバ300の署名値添付部313は、鍵2とトランザクションIDを検証サーバ400に連携する(ステップS27)。検証サーバ400は、署名サーバ300とは異なる装置で動作することを特徴とする。
検証サーバ400の署名値置換部412は、鍵2とトランザクションIDを受信する(ステップS28)。鍵2とトランザクションIDは、公開鍵管理テーブル451内に保管される。
次に、図8を参照して、実施の形態1に係る第2の署名値作成処理を説明する。
署名クライアント端末100のファイル送受信部112は、仮の署名値付きファイルとトランザクションIDとを署名値確認置換部114に連携する(ステップS31)。
署名値確認置換部114は、署名値添付指示部113とは異なるセッションのブラウザで動作する。もしくは、署名値確認置換部114は、署名値添付指示部113とは異なるアプリケーションで起動するようにしてもよい。
署名値添付指示部113から署名サーバ300への指示経路と、署名値確認置換部114から検証サーバ400への指示経路とは、別経路として実現されることを特徴とする。
署名値添付指示部113から直接検証サーバ400へ指示するのではなく、署名値添付指示部113から署名値確認置換部114を経由して検証サーバ400に置換指示する構成としている。
利用者は、仮の署名値付きファイルが、利用者自身が選択した所定のファイルに仮の署名値が添付されていることを確認する(ステップS32)。
署名値確認置換部114は、仮の署名値を添付する所定のファイルの内容を画面表示させることで利用者に確認させる機能を提供する。
署名値確認置換部114は、所定のファイルであるか判定する(ステップS33)。
仮の署名値が添付された所定のファイルが変更されているか否かを利用者に確認させる。所定のファイルが、利用者が選択したファイルと異なっている場合は、本処理はエラーとして終了となる。仮の署名値が添付された前記所定のファイルが変更されていないことを利用者から受け付けたときは、次の処理に進む。
ファイル送受信部112は、利用者による所定のファイルの確認後、仮の署名値付きファイルとトランザクションIDを検証サーバ400へ送付する(ステップS34)。
検証サーバ400のファイル送受信部411は、仮の署名値付きファイルとトランザクションIDとを受信する(ステップS35)。
受信した仮の署名値付きファイルは、図18に示すように、ファイル名とトランザクションIDとともに、署名値添付テーブル452に保管される。
署名値置換部412は、仮の署名付きファイルのストライピングを解いて公開鍵管理テーブル451内に管理されている鍵2で復号する(ステップS36)。
署名値置換部412は、復号した第2の署名値を所定のファイルに添付する(ステップS37)。
第2の署名値付きファイルは、図19に示すように、署名値添付テーブル452に保管される。
検証部413は、所定のファイルに添付された第2の署名値は正しいかどうか判定する(ステップS38)。
所定のファイルに添付された第2の署名値が、利用者が選択したファイルと異なっている場合は、本処理はエラーとして終了となる。所定のファイルが、利用者が選択したファイルと一致している場合は、次の処理に進む。
ステップS35で受信したトランザクションIDをキーとして、署名サーバ300に保管されている署名値管理テーブル353から第1の署名値を取得する。
仮の署名値から作成した第2の署名値が第1の署名値と一致することを確認し、所定のファイルに添付された仮の署名値を第2の署名値に置換する
ファイル送受信部411は、第2の署名値を添付したファイルを署名クライアント端末100に送信する(ステップS39)。
署名クライアント端末100のファイル送受信部112は、第2の署名値が添付されたファイルを受信する(ステップS40)。
受信した第2の署名値付きファイルは、図20に示すように署名値付きファイル保管テーブル154に保管される。
***実施の形態1の効果***
以上のように、実施の形態1に係る個別署名システム1は、署名対象の文書を確認後に検証サーバ400にて検証時に正式な署名データに変換することで、意図した文書に署名を安全に行うことができるようになる。
また、実施の形態1に係る個別署名システム1は、1段階目の署名と2段階目の署名の間で、利用者の目視による確認を入れることにより、Man in the middleによるリスクを軽減することができる。
また、実施の形態1に係る個別署名システム1は、クライアント側で動作するアプリケーションまたはセッションを別にすることで、Man in the browserによるリスクを軽減することができる。
また、実施の形態1に係る個別署名システム1は、複数鍵を利用することにより、なりすましによるリスクを軽減することができる。
また、実施の形態1に係る個別署名システム1は、ストライピングによる仮の署名値添付を利用し、複数文書を同時に検証しないと正しく検証できないようにすることで、Man in the middleやMan in the browserのリスクを軽減することができる。
また、実施の形態1に係る個別署名システム1は、複数文書を同時に署名する際、所定のファイルの数と、署名回数と、署名値の数とを確認することで、署名ファイルの改ざんによる検出を可能としている。
また、複数文書を1回のPIN入力で連続処理しても安全に署名処理を行うことができる。
***他の構成***
<変形例1>
実施の形態1では、個別署名システム1は、署名サーバ300と検証サーバ400は、異なる装置で動作する構成としたが、同一装置で動作するように構成してもよい。
<変形例2>
実施の形態1では、署名サーバ300はファイル送受信部311と、ハッシュ値生成部312と、署名値添付部313の機能、及び検証サーバ400はファイル送受信部411と、署名値置換部412と、検証部413とがソフトウェアで実現された。しかし、変形例2として、署名サーバ300のファイル送受信部311と、ハッシュ値生成部312と、署名値添付部313の機能、及び検証サーバ400のファイル送受信部411と、署名値置換部412と、検証部413はハードウェアで実現されてもよい。この変形例2について、実施の形態1と異なる点を説明する。
図21と図22を参照して、変形例2に係る個別署名システム1の構成を説明する。
署名サーバ300のファイル送受信部311と、ハッシュ値生成部312と、署名値添付部313との機能がハードウェアで実現される場合、署名サーバ300は、プロセッサ110と記憶装置120とに代えて、処理回路360を備える。
検証サーバ400のファイル送受信部411と、署名値置換部412と、検証部413との機能がハードウェアで実現される場合、検証サーバ400は、プロセッサ410と記憶装置420とに代えて、処理回路460を備える。
署名サーバ300の処理回路360は、ファイル送受信部311と、ハッシュ値生成部312と、署名値添付部313の「部」の機能及び記憶装置320を実現する専用の電子回路である。
検証サーバ400の処理回路460は、ファイル送受信部411と、署名値置換部412と、検証部413の「部」の機能及び記憶装置420を実現する専用の電子回路である。
処理回路360及び処理回路460は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)が想定される。
署名サーバ300のファイル送受信部311と、ハッシュ値生成部312と、署名値添付部313の機能との機能を1つの処理回路360で実現してもよいし、ファイル送受信部311と、ハッシュ値生成部312と、署名値添付部313との機能を複数の処理回路360に分散させて実現してもよい。
同様に、処理回路460のファイル送受信部411と、署名値置換部412と、検証部413との機能を1つの処理回路460で実現してもよいし、ファイル送受信部411と、署名値置換部412と、検証部413との機能を複数の処理回路460に分散させて実現してもよい。
<変形例3>
変形例3として、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。
つまり、署名サーバ300のファイル送受信部311と、ハッシュ値生成部312と、署名値添付部313の機能のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。
同様に、検証サーバ400のファイル送受信部411と、署名値置換部412と、検証部413の機能のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。
署名サーバ300のプロセッサ310と記憶装置320と処理回路360、及び検証サーバ400のプロセッサ410と記憶装置420と処理回路460とを、総称して「プロセッシングサーキットリー」という。
つまり、各機能構成要素の機能は、プロセッシングサーキットリーにより実現される。
実施の形態2.
実施の形態2は、第1の署名値の作成を署名クライアント端末100ではなく、署名サーバ300で行う点が実施の形態1と異なる。実施の形態2では、この異なる点を説明し、同一の点については説明を省略する。
***構成の説明***
実施の形態2
***構成の説明***
図23を参照して、実施の形態2に係る個別署名システム1の構成を説明する。
個別署名システム1は、署名クライアント端末100と、署名サーバ300と、検証サーバ400とを備える。実施の形態1にあったICカード200の機能は、署名サーバで実施するため、実施の形態2ではICカード200が不要である点が実施の形態1と異なっている。
図24を参照して、実施の形態2に係る署名クライアント端末100の構成を説明する。
署名クライアント端末100は、機能要素として、ファイル選択部111と、ファイル送受信部112と、署名値確認置換部114とを備える。実施の形態1にあった署名値添付指示部113が実施の形態2では不要となる。
記憶部150には、ファイル管理テーブル151と署名値付きファイル保管テーブル154とが記憶される。実施の形態1にあった署名値作成テーブル152と署名値確認テーブル153が実施の形態2では不要となる。
実施の形態2に係る署名クライアント端末100はICカード200が不要となる。
図25を参照して、実施の形態2に係る署名サーバ300の構成を説明する。
署名サーバ300は、ファイル送受信部311と、ハッシュ値生成部312と、署名値添付部313と、署名値添付指示部314と、署名/暗号化部315とを備える。署名値添付指示部314と署名/暗号化部315がある点が実施の形態1と異なる。
記憶部350には、公開鍵管理テーブル351とファイル管理テーブル352と署名値管理テーブル353と秘密鍵管理テーブル354とが記憶される。秘密鍵管理テーブル354がある点が実施の形態1と異なる。
実施の形態2に係る検証サーバ400の構成は、実施の形態1と同じであるため、説明を省略する。
***動作の説明***
図26から図29を参照して、実施の形態2に係る個別署名システム1の動作を説明する。
ステップS51からステップS54の処理は、図5のステップS1からステップS4の処理同じである。
次に、図27を使用して、実施の形態2に係る第1の署名値作成処理を説明する。
署名/暗号化部315は、ハッシュ値から第1の署名値を作成する(ステップS65)。署名値を作成するための秘密鍵は、実施の形態1では、ICカード200内に保管されていたが、実施の形態2では利用者によって予め登録され、署名サーバ300内に保管されているものを利用する。
署名値添付指示部314は、署名値が未作成のハッシュ値はあるか判定する(ステップS66)。未作成のハッシュ値があれば、第1の署名値の作成(ステップS65)を繰り返す。
次に、図28を参照して、実施の形態2に係る仮の署名値による利用者への確認処理を説明する。
作成された第1の署名値は、図14に示すように署名値管理テーブル353に保管される。図14では、「c1c2c3」、「d1d2d3」、「e1e2e3」が第1の署名値である。
図28のステップS73から図29のステップS90の処理は、ステップS23からステップS40までの処理と同じであるため、説明を省略する。
***実施の形態2の効果***
以上のように、実施の形態2に係る個別署名システム1は、利用者の秘密鍵の管理を署名サーバ300で行うことで、利用者が秘密鍵の管理を行う必要がなくなる。また、利用者が、第1の署名値を作成する作業も不要となる。
1 個別署名システム、100 署名クライアント端末、200 ICカード、300 署名サーバ、400 検証サーバ、500 ネットワーク、111 ファイル選択部、112 ファイル送受信部、113,314 署名値添付指示部、114 署名値確認置換部、211 署名/暗号化部、311 ファイル送受信部、312 ハッシュ値生成部、313 署名値添付部、411 ファイル送受信部、412 署名値置換部、413 検証部。

Claims (11)

  1. ネットワークを介して接続される署名サーバと検証サーバと署名クライアント端末とからなる個別署名システムであって、
    前記署名サーバは、
    所定のファイルのハッシュ値を生成するハッシュ値生成部と、
    前記ハッシュ値をもとに前記署名クライアント端末によって作成された第1の署名値から仮の署名値を作成し、前記所定のファイルに添付する署名値添付部と
    を備え、
    前記署名クライアント端末は、
    前記ハッシュ値から前記第1の署名値を作成する署名/暗号化部と、
    前記仮の署名値が添付された前記所定のファイルが変更されているか否かを利用者に確認させる署名値確認置換部と
    を備え、
    前記検証サーバは、
    前記利用者の確認後、前記所定のファイルに添付された前記仮の署名値を第2の署名値に置換する署名値置換部
    を備えることを特徴とする個別署名システム。
  2. 前記署名値添付部は、前記所定のファイルが複数ある場合には、前記所定のファイルに対応する前記第1の署名値を分割し、
    分割された複数の前記第1の署名値から複数の前記仮の署名値を作成し、
    作成された前記仮の署名値を前記所定のファイルのいずれかに添付することを特徴とする
    請求項1に記載の個別署名システム。
  3. 前記署名サーバは、前記所定のファイルおよび前記第1の署名値を前記署名クライアント端末から取得し、
    前記署名値添付部は、前記所定のファイルと前記第1の署名値の個数が一致していることを検証した後、前記所定のファイルに前記第1の署名値から作成された前記仮の署名値を添付することを特徴とする
    請求項1又は2のいずれか1項に記載の個別署名システム。
  4. 前記検証サーバは、前記所定のファイルおよび前記署名サーバが作成した仮の署名値を前記署名クライアント端末経由で取得し、
    前記署名値置換部は、前記仮の署名値から作成した前記第2の署名値が前記第1の署名値と一致することを確認し、前記所定のファイルに添付された前記仮の署名値を前記第2の署名値に置換することを特徴とする
    請求項1から3までのいずれか1項に記載の個別署名システム。
  5. 前記署名値添付部は、前記仮の署名値を前記所定のファイルに添付するとき、仮の署名値を鍵2で暗号化し、
    前記署名値置換部は、前記署名値添付部により暗号化された仮の署名値を鍵2で復号することを特徴とする
    請求項1から4までのいずれか1項に記載の個別署名システム。
  6. 前記署名値確認置換部は、前記仮の署名値が添付された前記所定のファイルが変更されていないことを利用者から受け付けたとき、前記検証サーバに対して前記所定のファイルに添付された前記仮の署名値を前記第2の署名値に置換することを指示することを特徴とする
    請求項1に記載の個別署名システム。
  7. さらに、前記署名クライアント端末は、前記所定のファイルへの前記仮の署名値の添付を前記署名サーバに指示する署名値添付指示部を備え、
    前記署名値添付指示部から前記署名サーバへの指示経路と、前記署名値確認置換部から前記検証サーバへの指示経路とは、別経路として実現されることを特徴とする
    請求項1から6までのいずれか1項に記載の個別署名システム。
  8. さらに、前記署名クライアント端末は、
    前記第2の署名値を添付する前記所定のファイルを選択するファイル選択部
    を備えることを特徴とする
    請求項1から7までのいずれか1項に記載の個別署名システム。
  9. 前記署名/暗号化部は、前記第1の署名値を鍵1で暗号化して前記署名サーバに送付し、
    前記署名値添付部は、前記署名/暗号化部により暗号化された前記第1の署名値を復号することを特徴とする
    請求項1から8までのいずれか1項に記載の個別署名システム。
  10. 前記署名サーバと前記検証サーバは、同一装置で動作することを特徴とする
    請求項1から9までのいずれか1項に記載の個別署名システム。
  11. ネットワークを介して接続される署名サーバと検証サーバと署名クライアント端末とからなる個別署名システムであって、
    前記署名サーバは、
    所定のファイルのハッシュ値を生成するハッシュ値生成部と、
    前記ハッシュ値から第1の署名値を作成する署名/暗号化部と、
    前記署名/暗号化部よって作成された前記第1の署名値から仮の署名値を作成し、前記所定のファイルに添付する署名値添付部と
    を備え、
    前記署名クライアント端末は、
    前記仮の署名値が添付された前記所定のファイルが変更されているか否かを利用者に確認させる署名値確認置換部
    を備え、
    前記検証サーバは、
    前記利用者の確認後、前記所定のファイルに添付された前記仮の署名値を第2の署名値に置換する署名値置換部
    を備えることを特徴とする個別署名システム。
JP2019056239A 2018-03-26 2019-03-25 個別署名システム Active JP6745933B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018058616 2018-03-26
JP2018058616 2018-03-26

Publications (2)

Publication Number Publication Date
JP2019176470A JP2019176470A (ja) 2019-10-10
JP6745933B2 true JP6745933B2 (ja) 2020-08-26

Family

ID=68169787

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019056239A Active JP6745933B2 (ja) 2018-03-26 2019-03-25 個別署名システム

Country Status (1)

Country Link
JP (1) JP6745933B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4470384B2 (ja) * 2003-03-25 2010-06-02 富士ゼロックス株式会社 情報処理装置、ジョブ処理装置、指示データ作成装置及び署名プロキシ装置
JP4788212B2 (ja) * 2005-07-13 2011-10-05 富士ゼロックス株式会社 デジタル署名プログラム及びデジタル署名システム
JP2010136176A (ja) * 2008-12-05 2010-06-17 Nippon Telegr & Teleph Corp <Ntt> 電子署名システム、認証補助サーバおよびicカード、並びに電子署名方法
GB2515057B (en) * 2013-06-12 2016-02-24 Cryptomathic Ltd System and Method for Obtaining a Digital Signature
JP2018029268A (ja) * 2016-08-18 2018-02-22 三菱電機株式会社 暗号システム、暗号装置、暗号プログラム及び暗号方法

Also Published As

Publication number Publication date
JP2019176470A (ja) 2019-10-10

Similar Documents

Publication Publication Date Title
JP6840264B2 (ja) ブロックチェーンネットワーク内で使用するためのフィールドプログラマブルゲートアレイベースの信頼できる実行環境
EP1942430B1 (en) Token Passing Technique for Media Playback Devices
US9336359B2 (en) Device certificate individualization
JP4829639B2 (ja) データ処理装置およびデータ処理方法
JP2005536951A (ja) デジタル機器においてデジタル文書にセキュリティ保護を施す装置、システムおよび方法
JP2006244508A (ja) 環境に基づくプログラム認証
CN110601830B (zh) 基于区块链的密钥管理方法、装置、设备及存储介质
US20240061790A1 (en) Locally-stored remote block data integrity
US10628333B2 (en) Information processing apparatus, method of controlling the same, and storage medium
CN111292041A (zh) 一种电子合同生成方法、装置、设备及存储介质
KR20040078593A (ko) 하드웨어 변경의 허용 범위를 갖는 컴퓨터 시스템에비밀을 연계시키는 시스템
US10387653B2 (en) Secure provisioning of semiconductor chips in untrusted manufacturing factories
KR20220138791A (ko) Nft 토큰에서 디지털 파일의 제작자 정보를 제공하는 제어 방법
JP6745933B2 (ja) 個別署名システム
Englert et al. ALIIAS: anonymization with limesurvey integration and II-factor authentication for scientific research
JP2009048283A (ja) 改ざん防止プログラム、改ざん防止装置、改ざん防止システム、および改ざん防止方法
JP5539024B2 (ja) データ暗号化装置およびその制御方法
JP5171300B2 (ja) 仕様適合性検証装置
JP5631164B2 (ja) マルチクラスタ分散処理制御システム、代表クライアント端末、マルチクラスタ分散処理制御方法
JP5127989B2 (ja) データ処理装置およびデータ処理方法
US20210258167A1 (en) Systems and methods for providing a trusted keystore
JP4981981B2 (ja) データ処理装置およびデータ処理方法
JP2007188217A (ja) パソコンの操作者毎に異なる分離・分割プロセスを経て、データを保存する/データを送受信するサービス。

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190405

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200721

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200804

R150 Certificate of patent or registration of utility model

Ref document number: 6745933

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250