(57)【要約】【課題】トランザクション署名専用のハードウェアトークンを用いずにトランザクション署名を実現する署名検証システム及び署名検証方法を提供する。【解決手段】端末装置は、署名対象の第一情報をハッシュ化して第一ハッシュ値を得る第一ハッシュ化部と、第一ハッシュ値と秘密情報とを署名装置に送信する送信部とを含み、第一ハッシュ値と秘密情報とに対して署名鍵から署名を生成する署名生成部と、署名を端末装置に送信する送信部とを含み、ウェブブラウザ装置は、署名と第一情報とを検証装置に送信する送信部を含み、検証装置は、第一情報をハッシュ化して第二ハッシュ値を得る第二ハッシュ化部と、秘密情報と検証鍵と署名と第二ハッシュ値とを用いて、第一情報が改ざんされていないか否かを検証する検証部とを含む。【選択図】図１
2017098697.tif 000002
【特許請求の範囲】
【請求項１】
ユーザに操作されるウェブブラウザ装置と、
前記ユーザに操作され、秘密情報が格納される記憶部を含む端末装置と、
署名鍵が格納される記憶部を含む署名装置と、
前記秘密情報及び検証鍵が格納される検証装置とを含み、
前記端末装置は、
署名対象の第一情報をハッシュ化して第一ハッシュ値を得る第一ハッシュ化部と、
前記第一ハッシュ値と前記秘密情報とを署名装置に送信する送信部とを含み、
前記署名装置は、
前記第一ハッシュ値と前記秘密情報とに対して前記署名鍵から署名を生成する署名生成部と、
前記署名を前記端末装置に送信する送信部とを含み、
前記ウェブブラウザ装置は、
前記署名と前記第一情報とを前記検証装置に送信する送信部を含み、
前記検証装置は、
前記第一情報をハッシュ化して第二ハッシュ値を得る第二ハッシュ化部と、
前記秘密情報と前記検証鍵と前記署名と前記第二ハッシュ値とを用いて、前記第一情報が改ざんされていないか否かを検証する検証部とを含む、
署名検証システム。
【請求項２】
請求項１の署名検証システムであって、
前記署名鍵と前記検証鍵とは共通し、
前記検証部は、前記第二ハッシュ値と前記秘密情報に対して前記検証鍵から第二署名を生成し、前記第二署名と前記署名とが一致するか否かを検証し、一致する場合には改ざんされていないと判定する、
署名検証システム。
【請求項３】
請求項１の署名検証システムであって、
前記検証部は、前記署名に対して前記検証鍵から復号結果を得、前記復号結果に、前記秘密情報と前記第二ハッシュ値とが含まれるか否かを検証し、含まれる場合には改ざんされていないと判定する、
署名検証システム。
【請求項４】
請求項１から請求項３の何れかの署名検証システムであって、
前記署名装置は、
第一の時刻を取得する第一時刻取得部を含み、
前記検証装置は、
第二の時刻を取得する第二時刻取得部を含み、
前記署名生成部は、前記秘密情報と前記第一の時刻と前記第一ハッシュ値とに対して前記署名鍵から署名を生成し、
前記検証部は、前記秘密情報と前記検証鍵と前記署名と前記第二ハッシュ値と前記第二の時刻とを用いて、前記第一情報が改ざんされていないか否かを検証し、前記第一の時刻から前記第二の時刻までの時間が、所定の時間を超える場合には、改ざんされていると判定する、
署名検証システム。
【請求項５】
ユーザに操作されるウェブブラウザ装置と、
前記ユーザに操作され、秘密情報が格納される記憶部を含む端末装置と、
署名鍵が格納される記憶部を含む署名装置と、
前記秘密情報及び検証鍵が格納される検証装置とを用い、
前記端末装置が、署名対象の第一情報をハッシュ化して第一ハッシュ値を得る第一ハッシュ化ステップと、
前記端末装置が、前記第一ハッシュ値と前記秘密情報とを署名装置に送信する送信ステップと、
前記署名装置が、前記第一ハッシュ値と前記秘密情報とに対して前記署名鍵から署名を生成する署名生成ステップと、
前記署名装置が、前記署名を前記端末装置に送信する送信ステップと、
前記ウェブブラウザ装置が、前記署名と前記第一情報とを前記検証装置に送信する送信ステップと、
前記検証装置が、前記第一情報をハッシュ化して第二ハッシュ値を得る第二ハッシュ化ステップと、
前記検証装置が、前記秘密情報と前記検証鍵と前記署名と前記第二ハッシュ値とを用いて、前記第一情報が改ざんされていないか否かを検証する検証ステップとを含む、
署名検証方法。
【請求項６】
請求項５の署名検証方法であって、
前記署名鍵と前記検証鍵とは共通し、
前記検証ステップは、前記第二ハッシュ値と前記秘密情報に対して前記検証鍵から第二署名を生成し、前記第二署名と前記署名とが一致するか否かを検証し、一致する場合には改ざんされていないと判定する、
署名検証方法。
【請求項７】
請求項５の署名検証方法であって、
前記検証ステップは、前記署名に対して前記検証鍵から復号結果を得、前記復号結果に、前記秘密情報と前記第二ハッシュ値とが含まれるか否かを検証し、含まれる場合には改ざんされていないと判定する、
署名検証方法。
【請求項８】
請求項５から請求項７の何れかの署名検証方法であって、
前記署名装置が、第一の時刻を取得する第一時刻取得ステップと、
前記検証装置が、第二の時刻を取得する第二時刻取得ステップと、を含み、
前記署名生成ステップは、前記秘密情報と前記第一の時刻と前記第一ハッシュ値とに対して前記署名鍵から署名を生成し、
前記検証ステップは、前記秘密情報と前記検証鍵と前記署名と前記第二ハッシュ値と前記第二の時刻とを用いて、前記第一情報が改ざんされていないか否かを検証し、前記第一の時刻から前記第二の時刻までの時間が、所定の時間を超える場合には、改ざんされていると判定する、
署名検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、署名検証システム及び署名検証方法に関する。
【背景技術】
【０００２】
現在、インターネットの発達により電子商取引、電子金融取引が活発に行われている。そのなかで、昨今MITB（Man-in-the-Browser,非特許文献１参照）攻撃が問題となっている。そのMITB攻撃の対する方法として幾つかあるがそのうち安全性が高いと言われるトランザクション署名（非特許文献２参照）に注目する。
【０００３】
トランザクション署名は、振込先の銀行口座等に対して署名を施すことで銀行側は振込先の真正性を担保しながら取引を完了することができる。このトランザクション署名の署名付与には、現在多くの場合、ハードウェアトークンが使用されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】「MITB(マン・イン・ザ・ブラウザー)攻撃とは」、[online]、2009年10月20日、[2015年11月10日検索]、インターネット<URL:http://securityblog.jp/words/790.html>
【非特許文献２】「トランザクション署名とは」、[online]、2014年11月25日、[2015年11月10日検索]、インターネット<URL:http://securityblog.jp/words/transaction_signatures.html>
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来技術のトランザクション署名では、金融機関等のサービス提供者（以下、単に「提供者」ともいう）は、予め署名鍵を耐タンパー性のある領域にいれたハードウェアトークンを配布する。サービスの利用者（以下、「ユーザ」ともいう）は、そのハードウェアトークンに取引内容を打ち込み、署名を生成し、パソコン等に入力する。
【０００６】
しかしながら、この方法では、提供者は予めハードウェアトークンを製造し、配布する必要がある。つまり、提供者にはハードウェアトークンの製造コストと配布コストがかかる。
【０００７】
また、ユーザは、サービスを利用するためにハードウェアトークンが必要である。そのため、外出先での取引を実現するためには、ハードウェアトークンを持ち運びする必要があり、利便性を著しく欠く。例えば、いつでも取引を行える状態を維持するためには、常に、ハードウェアトークンを持ち運ばなければならない。
【０００８】
さらに、金融機関毎のハードウェアトークンが異なるため、ユーザにとってハードウェアトークンの管理コストが増大する。
【０００９】
本発明は、トランザクション署名専用のハードウェアトークンを用いずにトランザクション署名を実現する署名検証システム及び署名検証方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、本発明の一態様によれば、署名検証システムは、ユーザに操作されるウェブブラウザ装置と、ユーザに操作され、秘密情報が格納される記憶部を含む端末装置と、署名鍵が格納される記憶部を含む署名装置と、秘密情報及び検証鍵が格納される検証装置とを含む。端末装置は、署名対象の第一情報をハッシュ化して第一ハッシュ値を得る第一ハッシュ化部と、第一ハッシュ値と秘密情報とを署名装置に送信する送信部とを含み、署名装置は、第一ハッシュ値と秘密情報とに対して署名鍵から署名を生成する署名生成部と、署名を端末装置に送信する送信部とを含み、ウェブブラウザ装置は、署名と第一情報とを検証装置に送信する送信部を含み、検証装置は、第一情報をハッシュ化して第二ハッシュ値を得る第二ハッシュ化部と、秘密情報と検証鍵と署名と第二ハッシュ値とを用いて、第一情報が改ざんされていないか否かを検証する検証部とを含む。
【００１１】
上記の課題を解決するために、本発明の他の態様によれば、署名検証方法は、ユーザに操作されるウェブブラウザ装置と、ユーザに操作され、秘密情報が格納される記憶部を含む端末装置と、署名鍵が格納される記憶部を含む署名装置と、秘密情報及び検証鍵が格納される検証装置とを用いる。端末装置が、署名対象の第一情報をハッシュ化して第一ハッシュ値を得る第一ハッシュ化ステップと、端末装置が、第一ハッシュ値と秘密情報とを署名装置に送信する送信ステップと、署名装置が、第一ハッシュ値と秘密情報とに対して署名鍵から署名を生成する署名生成ステップと、署名装置が、署名を端末装置に送信する送信ステップと、ウェブブラウザ装置が、署名と第一情報とを検証装置に送信する送信ステップと、検証装置が、第一情報をハッシュ化して第二ハッシュ値を得る第二ハッシュ化ステップと、検証装置が、秘密情報と検証鍵と署名と第二ハッシュ値とを用いて、第一情報が改ざんされていないか否かを検証する検証ステップとを含む。
【発明の効果】
【００１２】
本発明によれば、トランザクション署名専用のハードウェアトークンを用いずにトランザクション署名を実現できるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】第一実施形態に係る署名検証システムを構成する各装置の配置図。
【図２】第一実施形態に係るパソコンの機能ブロック図。
【図３】第一実施形態に係るスマートフォンの機能ブロック図。
【図４】第一実施形態に係る取引サーバの機能ブロック図。
【図５】第一実施形態に係る検証鍵管理手段に保持されるデータの例を示す図。
【図６】第一実施形態に係る署名サーバの機能ブロック図。
【図７】第一実施形態に係る署名鍵管理手段に保持されるデータの例を示す図。
【図８】ユーザ登録処理のフローチャートを示す図。
【図９】ユーザ登録処理のシーケンス図。
【図１０】サービス提供処理のフローチャートを示す図。
【図１１】サービス提供処理のシーケンス図。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態について、説明する。なお、以下の説明に用いる図面では、同じ機能を持つ構成部や同じ処理を行うステップには同一の符号を記し、重複説明を省略する。
【００１５】
＜第一実施形態のポイント＞
ハードウェアトークンを用いずにトランザクション署名を実現するために、スマートフォンなどの汎用情報端末（以下、「スマートフォン」）にてトランザクション署名を実現する方法を提案する。このときに、トランザクション署名を行うための署名鍵をスマートフォンに搭載（記憶）する手法が考えられる。しかし、スマートフォンにおいては安全領域の確保が難しい。そこで、本実施形態では、署名鍵の管理と取引内容から署名(例えば、MAC（メッセージ認証符号）)を生成する部分のみを安全領域を持った外部サーバ（以下「署名サーバ」ともいう）に移す。スマートフォンは署名の生成のユーザインタフェース部分として用いられ、ユーザはスマートフォンにハードウェアトークンの機能が入っているように操作することが可能である。取引サーバはユーザから送られた署名と取引内容とを検証し、取引内容の真正性を確認した後に取引を実行する。
【００１６】
このとき、認証コード(署名)を生成する手法としてMAC（メッセージ認証符号）を例として用いたが、改ざんを検知できる手法であれば方法は問わない（例として署名、検証による改ざん検知手法）。
【００１７】
また、このとき、通信先の取引サーバを増やすことが可能であるため、一つのスマートフォンで複数の取引サーバとトランザクション署名が可能となる。また、このとき、スマートフォンで取得したMACを取引サーバに送信する際、パソコンへの入力手段は問わない。例えば、手入力であってもよい。
【００１８】
＜第一実施形態に係る署名検証システム＞
図１は第一実施形態に係る署名検証システム１００を構成する各装置の配置図を示す。
【００１９】
署名検証システム１００は、パソコン（以下、「ウェブブラウザ装置」ともいう）１１０と、スマートホン（以下「端末装置」ともいう）１２０と、取引サーバ（以下「検証装置」ともいう）１３０と、署名サーバ（以下「署名装置」ともいう）１４０とを含む。各装置は、互いにネットワーク１を介して通信可能である。
【００２０】
＜パソコン１１０＞
パソコン１１０は、ウェブブラウザ手段１１１を備える（図２参照）。ウェブブラウザ手段１１１は、World Wide Web (WWW)の利用に供するブラウザとして機能する。なお、ブラウザとはコンピュータ上の情報を一定の目的に沿って表示し閲覧に供するソフトウェアである。パソコン１１０は、図示しない入力装置（例えば、マウスやキーボード、タッチパネル）や出力装置（例えば、ディスプレイやタッチパネル）を備える。ユーザは出力装置を閲覧しながら入力装置を操作して、パソコンを操作することができる。
【００２１】
＜スマートフォン１２０＞
スマートフォン１２０は、入出力手段１２１、暗号化・復号手段１２２、シード管理手段１２３、ハッシュ化手段１２４、通信手段１２５とを備える（図３参照）。
【００２２】
入出力手段１２１は、ユーザからタッチパネル等を通し入力を受けつけ、ユーザにタッチパネル等を用いて情報を提示する。
【００２３】
暗号化・復号手段１２２は、取引サーバ１３０、署名サーバ１４０との通信内容を経路上の脅威から守るために暗号化した情報をやりとりするための暗号化、復号を行う。なお、パソコン１１０のウェブブラウザ手段１１１は、従来のウェブブラウザが備える暗号化、復号を行う機能を備えるものとする。例えば、 SSL (Secure Sockets Layer)を利用して暗号化、復号を行う。
【００２４】
シード管理手段１２３は、取引サーバとの共有情報であるシード(以下「秘密情報」ともいう)をサービスごとに識別、及び、保持する。例えば、当該スマートフォン１２０の利用者が利用するサービスとそのサービスに対応するシードとの組合せを保持しておく。
【００２５】
ハッシュ化手段１２４は、ユーザから入力された署名をうつ対象の情報(例えば、取引内容)を、ハッシュ関数を用いてハッシュ化する。
【００２６】
通信手段１２５は、署名サーバ１４０、取引サーバ１３０と必要な情報を通信する。なお、パソコン１１０のウェブブラウザ手段１１１は、従来のウェブブラウザが備える通信機能を備え、少なくとも取引サーバ１３０と必要な情報を通信することができる。
【００２７】
＜取引サーバ１３０＞
取引サーバ１３０は、ユーザ管理手段１３１と、シード生成手段１３２と、暗号化・復号手段１３３と、検証鍵管理手段１３４と、時刻取得手段１３５と、ハッシュ化手段１３６と、検証手段１３７と、サービス提供手段１３８と、通信手段１３９とを備える（図４参照）。
【００２８】
ユーザ管理手段１３１は、ユーザのプロファイルを識別、及び、保持する。
【００２９】
シード生成手段１３２は、ユーザとの秘密情報であるシードを乱数発生器を用いて生成する。
【００３０】
暗号化・復号手段１３３は、パソコン１１０、スマートフォン１２０、署名サーバ１４０との通信内容を経路上の脅威から守るために暗号化した情報をやりとりするための暗号化、復号を行う。
【００３１】
検証鍵管理手段１３４は、ユーザ毎の検証鍵を識別、及び、保持する。図５は、検証鍵管理手段１３４に保持されるデータの例を示す。
【００３２】
時刻取得手段１３５は、現在時刻を取得する。
【００３３】
ハッシュ化手段１３６は、取引内容（振込先口座番号等）をハッシュ化する。
【００３４】
検証手段１３７は、スマートフォン１２０から送られてきた署名付き取引内容の署名部分の検証を行い取引内容の真正性を確かめる。
【００３５】
サービス提供手段１３８は、提供者が主に提供したいサービスを提供する。例えば、金融機関ならば決済機能である勘定系システムがサービス提供手段１３８に相当する。
【００３６】
通信手段１３９は、パソコン１１０、スマートフォン１２０、署名サーバ１４０と必要な情報をやりとりする。
【００３７】
＜署名サーバ１４０＞
署名サーバ１４０は、署名鍵管理手段１４１と、ユーザ管理手段１４２と、時刻取得手段１４３と、署名生成手段１４４と、暗号化・復号手段１４５と、通信手段１４６とを含む（図６参照）。
【００３８】
署名鍵管理手段１４１は、取引内容に署名するための署名鍵をユーザ及びサービス毎に識別、及び、保持する。図７は、署名鍵管理手段１４１に保持されるデータの例を示す。
【００３９】
ユーザ管理手段１４２は、ユーザが利用しているサービスを識別、及び、保持する。
【００４０】
時刻取得手段１４３は、時刻を取得する。
【００４１】
署名生成手段１４４は、ユーザのスマートフォン１２０から提供されたハッシュ化された取引内容とシードと時刻とに対して、そのユーザとサービスに対応した署名鍵から署名(例えばMAC)を生成する。
【００４２】
暗号化・復号手段１４５は、スマートフォン１２０、取引サーバ１３０との通信内容を経路上の脅威から守るために暗号化した情報をやりとりするための暗号化・復号を行う。
【００４３】
通信手段１４６は、スマートフォン１２０、取引サーバ１３０と必要な情報をやりとりする。
【００４４】
＜実施フロー＞
本実施形態では、取引サーバとして、金融機関を想定しているが、本署名検証システムは、トランザクション署名を用いる様々なサービスに応用することができることは言うまでもない。まず、サービスを提供する前に、ユーザの登録を行う必要がある。なお、パソコン１１０のウェブブラウザ手段１１１の備える通信機能、スマートフォン１２０の通信手段１２５、取引サーバ１３０の通信手段１３９、署名サーバ１４０の通信手段１４６を介して、データの送受信を行うものとする。また、パソコン１１０のウェブブラウザ手段１１１の備える暗号化・復号機能、スマートフォン１２０の暗号化・復号手段１２２、取引サーバ１３０の暗号化・復号手段１３３、署名サーバ１４０の暗号化・復号手段１４５により、データの送信元においてデータを暗号化し、データの送信先において復号するものとする。
【００４５】
＜ユーザ登録処理＞
ユーザはサービス利用するためにユーザ登録を行う。図８はユーザ登録処理のフローチャートを、図９はユーザ登録処理のシーケンス図を示す。
【００４６】
パソコン１１０のウェブブラウザ手段１１１は、ユーザの操作により、サービス提供者の取引サーバ１３０にアクセスし、取引サーバ１３０に対する登録申請を行う。さらに、ウェブブラウザ手段１１１は登録申請用の画面を表示する。例えば、登録申請用の画面には、署名をうつのに利用するスマートフォン１２０のSMS番号を入力するための欄が含まれる。ウェブブラウザ手段１１１には、ユーザの操作により、スマートフォン１２０のSMS番号が入力される。ウェブブラウザ手段１１１は、入力されたSMS番号を取引サーバ１３０に送信する（Ｓ１）。
【００４７】
取引サーバ１３０は、SMS番号を受信し、受信したSMS番号に対応するスマートフォン１２０に、SMSを介して登録用URLを送信する（Ｓ２）。なお、登録用URLは、SMS番号毎に異なるものとする。例えば、SMSを介して「登録手続きを進めるために以下の登録用URLをクリックして下さい」等のメッセージを送信する。
【００４８】
スマートフォン１２０は、入出力手段１２１を介したユーザの操作により、登録用URLにアクセスし、取引サーバ１３０に対する登録申請を行う（Ｓ３）。取引サーバ１３０は、登録用URLへのアクセスを確認することでそのSMS番号に紐付けられているスマートフォン１２０の存在性を確認する。なお、パソコン１１０とスマートフォン１２０とから合わせて２回の登録申請を行う。パソコン１１０からの登録申請はユーザの登録のために行い、スマートフォン１２０からの登録申請はスマートフォン１２０とユーザとを確実に紐づけるために行う。
【００４９】
取引サーバ１３０のユーザ管理手段１３１は、ユーザのスマートフォンの存在性を確認したらユーザ情報を登録する（Ｓ４）。例えば、ユーザ情報として、スマートフォンに関する情報（IPアドレス、MACアドレス、SMS番号等）とユーザID(ユーザを識別できればよいため、何らかの識別子をユーザが入力してもよいし、ユーザ管理手段１３１が既にあるユーザIDと重複しないように生成してもよいし、前述のMACアドレス、SMS番号等をユーザIDとして用いてもよい)とユーザのプロファイル（名前、住所、電話番号、年齢、性別、職業等）との組合せを登録する。このとき、検証鍵管理手段１３４は、ユーザ毎の検証鍵を生成し、ユーザIDと検証鍵との組合せを保持する（図５参照）。そのため、ユーザ情報には少なくともユーザIDを含む。なお、本実施形態では、共通鍵暗号方式を利用して、署名、検証を行うものとし、検証鍵と署名鍵とは共通するものとする。
【００５０】
取引サーバ１３０は、スマートフォン１２０に署名サーバ１４０のURLを送信する（Ｓ５）。
【００５１】
また、取引サーバ１３０は、署名サーバ１４０にユーザに対応するユーザ情報（少なくともユーザIDを含めばよい）と署名鍵とを送付する（Ｓ６）。
【００５２】
スマートフォン１２０は、署名サーバ１４０のURLを受信し、入出力手段１２１に表示し、入出力手段１２１を介したユーザの操作により署名サーバ１４０にアクセスし、登録申請を行う（Ｓ７）。例えば、入出力手段１２１は、「引き続き、登録手続きを進めるために以下の登録用URLをクリックして下さい」等のメッセージを表示する。
【００５３】
署名サーバ１４０は、スマートフォン１２０からのアクセスを検知することでユーザの存在を確認し、ユーザの確認が取れたらサービス情報とユーザ情報の登録する（Ｓ８）。なお、サービス情報にはサービスID（サービスを一意に特定するための識別子）を含む。例えば、署名鍵管理手段１４１が、ユーザ情報に含まれるユーザIDとサービス情報に含まれるサービスIDと署名鍵との組合せを登録、保持する（図７参照）。なお、署名鍵とユーザIDとは、取引サーバ１３０から受信したものである(Ｓ６)。サービスIDについては、取引サーバ１３０が提供するサービスが１つだけならば、取引サーバ１３０のIDをそのままサービスIDとして用いてもよいし、取引サーバ１３０が２つ以上のサービスを提供するならば、Ｓ６において、ユーザIDと署名鍵と合わせて、当該ユーザが利用可能なサービスIDを受け取る構成としてもよい。
【００５４】
署名サーバ１４０は、登録処理が終わると、スマートフォン１２０に登録完了案内を送信し（Ｓ９）、数秒後にスマートフォン１２０を取引サーバ１３０にリダイレクトする。
【００５５】
スマートフォン１２０の入出力手段１２１は、登録完了案内を表示し、数秒後に取引サーバ１３０にリダイレクトされる。スマートフォン１２０は、リダイレクト後に取引サーバ１３０にシード（以下、「秘密情報」ともいう）を要求する（Ｓ１０）。なお、スマートフォン１２０の取引サーバ１３０に対するアクセス自体をシード要求と見做してもよいし、取引サーバ１３０がスマートフォン１２０の入出力手段１２１にシード要求に対応するボタン等を表示させ、ユーザがスマートフォン１２０の入出力手段１２１を操作して、そのボタン等を押下（クリック）したときに、シードが要求されたものと見做してもよい。
【００５６】
取引サーバ１３０のシード生成手段１３２は、シードが要求されると、過去のシードと重複のないシードをランダムに生成し（Ｓ１１）、スマートフォン１２０に送信する（Ｓ１２）。なお、取引サーバ１３０の検証鍵管理手段１３４は、ランダムに生成されたシードとユーザIDと検証鍵との組合せ記憶する（図５参照）。
【００５７】
なお、スマートフォン１２０は、通信手段１２５を介してシードを受け取り、シード管理手段１２３は、受け取ったシードをサービス毎に識別し、保持する。
【００５８】
以上の処理で、ユーザ登録を完了する。次にサービス提供処理について説明する。
【００５９】
＜サービス提供処理＞
図１０はサービス提供処理のフローチャートを、図１１はサービス提供処理のシーケンス図を示す。
【００６０】
パソコン１１０のウェブブラウザ手段１１１は、ユーザの操作により、取引サーバ１３０にアクセスし、取引申請を行う（Ｓ２１）。
【００６１】
取引サーバ１３０は、パソコン１１０のウェブブラウザ手段１１１に署名を入力するように表示させる（Ｓ２２）。
【００６２】
ユーザは、スマートフォン１２０の入出力手段１２１を操作して、スマートフォン１２０に取引内容またはその一部（例：口座番号）を入力する。スマートフォン１２０のハッシュ化手段１２４は、入力された取引内容またはその一部をハッシュ化する。さらに、スマートフォン１２０は、サービスに対応するシードをシード管理手段１２３から取り出し、ハッシュ化された取引内容（以降「ハッシュ値」ともいう）と取り出したシードとを署名サーバ１４０に送信する（Ｓ２３）。
【００６３】
署名サーバ１４０の署名生成手段１４４は、ハッシュ値h1とシードとを受信し、署名鍵管理手段１４１に保持されている署名鍵を取り出す。このとき、何らかの方法で、ユーザIDを受信し、対応する署名鍵を取り出せばよい。例えば、ユーザIDとして、MACアドレスを用いる場合には、スマートフォン１２０で署名サーバ１４０にアクセスする際に自動的にMACアドレスを送信する構成とすることで、ユーザがユーザIDを入力する手間を省くことができる。また、サービスの利用開始時（ログイン時）にユーザIDの入力を求める構成としてもよい。なお、１人のユーザが１つのユーザIDで２つ以上のサービスを利用する可能性がある場合には、そのユーザIDと合わせてサービスIDも送信する。例えば、取引内容を入力する際に、合わせて、利用したいサービスを選択するように入出力手段１２１に表示してもよい。さらに、署名サーバ１４０の署名生成手段１４４は、時刻取得手段１４３に、時刻t1を取得し、署名サーバ１４０の署名生成手段１４４に送信するように制御信号を出力する。
【００６４】
署名サーバ１４０の署名生成手段１４４は、シードと、ハッシュ値h1と時刻t1とに対して、ユーザIDとサービスIDに対応した署名鍵から署名を生成し（Ｓ２４）、スマートフォン１２０に送信する（Ｓ２５）。例えば、ハッシュ値h1とシードと時刻t1とを所定の順序で並べて得られる値を署名鍵を用いて暗号化して署名を生成する。
【００６５】
スマートフォン１２０の入出力手段１２１は、署名を表示する。パソコン１１０のウェブブラウザ手段１１１は、ユーザの操作により（例えば、キーボード等の入力装置により）、署名を入力され（Ｓ２６）、入力された取引内容と共に署名を取引サーバ１３０に送信する（Ｓ２７）。
【００６６】
取引サーバ１３０は取引内容と署名とを受信し、取引サーバ１３０のハッシュ化手段１３６は取引内容をハッシュ化してハッシュ値h2を得、検証手段１３７に出力する。
【００６７】
取引サーバ１３０の検証手段１３７は、検証鍵管理手段１３４に保持されているシードと検証鍵とを取り出す。なお、検証手段１３７は、取引内容と署名とを受信する際に、合わせて、ユーザIDを受信しておき、ユーザIDに対応するシードと検証鍵とを取り出す。
【００６８】
取引サーバ１３０の検証手段１３７は、時刻取得手段１３５に時刻t2を取得し、検証手段１３７に送信するように制御信号を出力する。
【００６９】
取引サーバ１３０の検証手段１３７は、ハッシュ値h2とシードと検証鍵と署名と時刻t2を用いて、取引内容が改ざんされていないか否かを検証し（Ｓ２８）、検証結果を出力する。
【００７０】
例えば、共通鍵暗号方式を用いた場合、署名鍵と検証鍵とは共通の値であり、以下の二つの検証方法が考えられる。なお、他の検証方法を用いてもよい。
【００７１】
(1)検証手段１３７は、ハッシュ値h2とシードと時刻t2とに対して、検証鍵から署名σ2を生成する。例えば、ハッシュ値h2とシードと時刻t2とを所定の順序(署名σ1を生成する際と同じ所定の順序)で並べて得られる値を検証鍵を用いて暗号化して署名σ2を生成する。この署名σ2と署名σ1とが一致するか否かを検証し、一致する場合には改ざんされていないと判定する。なお、例えば、時刻t1と時刻t2は、「時」以上の単位のみを用いる（「分」の単位、「秒秒」の単位を用いない）ことで、例えば、午後3時30分に生成した署名σ1と、午後3時30分〜午後3時59分までに生成した署名σ2とは同じ値となり、署名σ1と午後4時以降に生成した署名σ2とは異なる値となる。このような構成とすることで、時刻t1から時刻t2までの時間が、所定の時間を超えるか否か判定することができ、署名の有効期限を設定し、暗号が解読されるリスクを低減することができる。なお、上述の方法は時刻を用いた有効期限の設定方法の例であって、従来の様々な設定方法を利用してもよい。
【００７２】
(2)検証手段１３７は、署名に対して検証鍵から復号結果を得る。例えば、署名を検証鍵を用いて復号し、復号結果を得る。適切に復号できた場合には、復号結果に、シードと、ハッシュ値h1と時刻t1とが含まれる。よって、復号結果に、シードと、ハッシュ値h1と時刻t1とが含まれるか否かを検証し、含まれる場合には改ざんされていないと判定する。例えば、ハッシュ値h1とシードと時刻t1とを所定の順序で並べて得られる値を署名鍵を用いて暗号化して署名を生成した場合、復号結果には、同じ所定の順序でハッシュ値h1とシードと時刻t1とが並んでいる。そこで、(i)復号結果に含まれるシード(適切に復号できた場合にシードが存在する予定の位置に位置する値)と検証鍵管理手段１３４から取り出したシードとが一致するか否か、(ii)復号結果に含まれるハッシュ値h1(適切に復号できた場合にハッシュ値h1が存在する予定の位置に位置する値)とハッシュ化手段１３６で得られたハッシュ値h2とが一致するか否か、(iii)時刻t1(適切に復号できた場合に時刻t1が存在する予定の位置に位置する値)と時刻t2（例えば前述のように「時」以上の単位のみを用いる）とが一致するか否かを、検証し、すべて一致する場合には、改ざんされていないと判定する。何れかが一致しない場合には、改ざんされていると判定する。なお、(iii)の条件に関しては、例えば「時」よりも小さい単位も用いて、時刻t1と時刻t2との差分(t2-t1)が所定の時間を超えるか否かを検証し、超えない場合に改ざんされていないと判定してもよい。このような方法であっても署名の有効期限の設定を設定することができる。
【００７３】
サービス提供手段１３８は、検証結果が改ざんされていない（検証を通過した）ことを示す場合、サービスを提供する。例えば、サービス内容が、金融機関の決済機能ならば、決済処理を行い、取引完了連絡を送信する（Ｓ２８）。
【００７４】
なお、検証結果が改ざんされている（検証を通過しない）ことを示す場合、エラーメッセージ等を送信し、サービスを提供しない。
【００７５】
＜効果＞
以上の構成により、トランザクション署名専用のハードウェアトークンを用いずに、同程度の安全性で、トランザクション署名を実現できる。昨今の社会では、スマートフォンは持ち歩く人が大勢を占めている。そのことから、スマートフォンを持ち歩くことはハードウェアトークンを持ち歩くことに比べ利便性が高いと言える。
【００７６】
また、スマートフォンはアプリケーションで起動するため複数のアプリケーションをスマートフォンに入れたり、アプリケーション自体に複数の金融機関に対応するものとすることで、ユーザはスマートフォンに複数のハードウェアトークンの機能が入っているように操作することが可能であり、スマートフォン1台だけで複数の金融機関に対しトランザクション署名を行うことができる。
【００７７】
提供者にとっては、ハードウェアトークンの製造コストと配布コストを省くことができる。ハードウェアトークンの製造コストに代えて、アプリケーションの作成コストがかかるが、一旦、アプリケーションを作成すれば、その後、ユーザが増加しても新たなアプリケーションを作成する必要はなく、コストを削減することができる。また、サービスIDで提供者を区別することができるため、複数の提供者で一つのアプリケーションを作成し、共通のアプリケーションを利用してもよい。その場合、1つのサービス提供者にかかるアプリケーションの作成コストはさらに低くなる。また、ユーザにとっては、同じインターフェースで異なる提供者のサービスを受けることができ、利便性が増す。
【００７８】
＜変形例＞
本実施形態では、共通鍵暗唱方式を用いて署名検証を行っているが、公開鍵暗号方式を用いることもできる。公開鍵暗号方式を用いた場合、署名鍵(秘密鍵)と検証鍵(公開鍵)とは異なる値であり、署名サーバ１４０の署名鍵管理手段１４１が鍵生成アルゴリズムにより、署名鍵skと検証鍵pkを生成し、署名鍵skを秘密に管理し、検証鍵pkを公開する。取引サーバ１３０の検証鍵管理手段１３４は公開されている検証鍵pkを受け取り、上述の検証方法(2)を実行する。
【００７９】
本実施形態では、署名を生成する際、及び、署名を検証する際に時刻を用いているが、必ずしも必要ではない。ただし、署名の有効期限を設定することで、解読されるリスクを低減することができる。
【００８０】
本実施形態では、パソコン１１０とスマートフォン１２０とは、別々の装置として記載しているが、一体の装置としてもよい。MITB攻撃は、ブラウザを乗っ取るため、ブラウザとは異なるアプリケーションにより、取引サーバ１３０、署名サーバ１４０にアクセスすれば、パソコン１１０とスマートフォン１２０とを単一の装置内に配置してもよい。例えば、パソコン１１０の中に、シード管理手段１２３、ハッシュ化手段１２４を持たせてもよいし、スマートフォン１２０の中にウェブブラウザ手段１１１を持たせてもよい。ただし、パソコン１１０の制御を乗っ取るウィルス等も考えられるため、本実施形態のように、別々の装置として構成すると、よりセキュリティレベルは高いものとなる。
【００８１】
＜その他の変形例＞
本発明は上記の実施形態及び変形例に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【００８２】
＜プログラム及び記録媒体＞
また、上記の実施形態及び変形例で説明した各装置における各種の処理機能をコンピュータによって実現してもよい。その場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【００８３】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００８４】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させてもよい。
【００８５】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶部に格納する。そして、処理の実行時、このコンピュータは、自己の記憶部に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実施形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよい。さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、プログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００８６】
また、コンピュータ上で所定のプログラムを実行させることにより、各装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
2017098697.tif 000003
【図２】
2017098697.tif 000004
【図３】
2017098697.tif 000005
【図４】
2017098697.tif 000006
【図５】
2017098697.tif 000007
【図６】
2017098697.tif 000008
【図７】
2017098697.tif 000009
【図８】
2017098697.tif 000010
【図９】
2017098697.tif 000011
【図１０】
2017098697.tif 000012
【図１１】
2017098697.tif 000013