JP2017098697A - 署名検証システム及び署名検証方法 - Google Patents
署名検証システム及び署名検証方法 Download PDFInfo
- Publication number
- JP2017098697A JP2017098697A JP2015227717A JP2015227717A JP2017098697A JP 2017098697 A JP2017098697 A JP 2017098697A JP 2015227717 A JP2015227717 A JP 2015227717A JP 2015227717 A JP2015227717 A JP 2015227717A JP 2017098697 A JP2017098697 A JP 2017098697A
- Authority
- JP
- Japan
- Prior art keywords
- signature
- verification
- key
- hash value
- information
- 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
Links
Images
Abstract
【課題】トランザクション署名専用のハードウェアトークンを用いずにトランザクション署名を実現する署名検証システム及び署名検証方法を提供する。【解決手段】端末装置は、署名対象の第一情報をハッシュ化して第一ハッシュ値を得る第一ハッシュ化部と、第一ハッシュ値と秘密情報とを署名装置に送信する送信部とを含み、第一ハッシュ値と秘密情報とに対して署名鍵から署名を生成する署名生成部と、署名を端末装置に送信する送信部とを含み、ウェブブラウザ装置は、署名と第一情報とを検証装置に送信する送信部を含み、検証装置は、第一情報をハッシュ化して第二ハッシュ値を得る第二ハッシュ化部と、秘密情報と検証鍵と署名と第二ハッシュ値とを用いて、第一情報が改ざんされていないか否かを検証する検証部とを含む。【選択図】図1
Description
本発明は、署名検証システム及び署名検証方法に関する。
現在、インターネットの発達により電子商取引、電子金融取引が活発に行われている。そのなかで、昨今MITB(Man-in-the-Browser,非特許文献1参照)攻撃が問題となっている。そのMITB攻撃の対する方法として幾つかあるがそのうち安全性が高いと言われるトランザクション署名(非特許文献2参照)に注目する。
トランザクション署名は、振込先の銀行口座等に対して署名を施すことで銀行側は振込先の真正性を担保しながら取引を完了することができる。このトランザクション署名の署名付与には、現在多くの場合、ハードウェアトークンが使用されている。
「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(メッセージ認証符号)を例として用いたが、改ざんを検知できる手法であれば方法は問わない(例として署名、検証による改ざん検知手法)。
また、このとき、通信先の取引サーバを増やすことが可能であるため、一つのスマートフォンで複数の取引サーバとトランザクション署名が可能となる。また、このとき、スマートフォンで取得したMACを取引サーバに送信する際、パソコンへの入力手段は問わない。例えば、手入力であってもよい。
<第一実施形態に係る署名検証システム>
図1は第一実施形態に係る署名検証システム100を構成する各装置の配置図を示す。
図1は第一実施形態に係る署名検証システム100を構成する各装置の配置図を示す。
署名検証システム100は、パソコン(以下、「ウェブブラウザ装置」ともいう)110と、スマートホン(以下「端末装置」ともいう)120と、取引サーバ(以下「検証装置」ともいう)130と、署名サーバ(以下「署名装置」ともいう)140とを含む。各装置は、互いにネットワーク1を介して通信可能である。
<パソコン110>
パソコン110は、ウェブブラウザ手段111を備える(図2参照)。ウェブブラウザ手段111は、World Wide Web (WWW)の利用に供するブラウザとして機能する。なお、ブラウザとはコンピュータ上の情報を一定の目的に沿って表示し閲覧に供するソフトウェアである。パソコン110は、図示しない入力装置(例えば、マウスやキーボード、タッチパネル)や出力装置(例えば、ディスプレイやタッチパネル)を備える。ユーザは出力装置を閲覧しながら入力装置を操作して、パソコンを操作することができる。
パソコン110は、ウェブブラウザ手段111を備える(図2参照)。ウェブブラウザ手段111は、World Wide Web (WWW)の利用に供するブラウザとして機能する。なお、ブラウザとはコンピュータ上の情報を一定の目的に沿って表示し閲覧に供するソフトウェアである。パソコン110は、図示しない入力装置(例えば、マウスやキーボード、タッチパネル)や出力装置(例えば、ディスプレイやタッチパネル)を備える。ユーザは出力装置を閲覧しながら入力装置を操作して、パソコンを操作することができる。
<スマートフォン120>
スマートフォン120は、入出力手段121、暗号化・復号手段122、シード管理手段123、ハッシュ化手段124、通信手段125とを備える(図3参照)。
スマートフォン120は、入出力手段121、暗号化・復号手段122、シード管理手段123、ハッシュ化手段124、通信手段125とを備える(図3参照)。
入出力手段121は、ユーザからタッチパネル等を通し入力を受けつけ、ユーザにタッチパネル等を用いて情報を提示する。
暗号化・復号手段122は、取引サーバ130、署名サーバ140との通信内容を経路上の脅威から守るために暗号化した情報をやりとりするための暗号化、復号を行う。なお、パソコン110のウェブブラウザ手段111は、従来のウェブブラウザが備える暗号化、復号を行う機能を備えるものとする。例えば、 SSL (Secure Sockets Layer)を利用して暗号化、復号を行う。
シード管理手段123は、取引サーバとの共有情報であるシード(以下「秘密情報」ともいう)をサービスごとに識別、及び、保持する。例えば、当該スマートフォン120の利用者が利用するサービスとそのサービスに対応するシードとの組合せを保持しておく。
ハッシュ化手段124は、ユーザから入力された署名をうつ対象の情報(例えば、取引内容)を、ハッシュ関数を用いてハッシュ化する。
通信手段125は、署名サーバ140、取引サーバ130と必要な情報を通信する。なお、パソコン110のウェブブラウザ手段111は、従来のウェブブラウザが備える通信機能を備え、少なくとも取引サーバ130と必要な情報を通信することができる。
<取引サーバ130>
取引サーバ130は、ユーザ管理手段131と、シード生成手段132と、暗号化・復号手段133と、検証鍵管理手段134と、時刻取得手段135と、ハッシュ化手段136と、検証手段137と、サービス提供手段138と、通信手段139とを備える(図4参照)。
取引サーバ130は、ユーザ管理手段131と、シード生成手段132と、暗号化・復号手段133と、検証鍵管理手段134と、時刻取得手段135と、ハッシュ化手段136と、検証手段137と、サービス提供手段138と、通信手段139とを備える(図4参照)。
ユーザ管理手段131は、ユーザのプロファイルを識別、及び、保持する。
シード生成手段132は、ユーザとの秘密情報であるシードを乱数発生器を用いて生成する。
暗号化・復号手段133は、パソコン110、スマートフォン120、署名サーバ140との通信内容を経路上の脅威から守るために暗号化した情報をやりとりするための暗号化、復号を行う。
検証鍵管理手段134は、ユーザ毎の検証鍵を識別、及び、保持する。図5は、検証鍵管理手段134に保持されるデータの例を示す。
時刻取得手段135は、現在時刻を取得する。
ハッシュ化手段136は、取引内容(振込先口座番号等)をハッシュ化する。
検証手段137は、スマートフォン120から送られてきた署名付き取引内容の署名部分の検証を行い取引内容の真正性を確かめる。
サービス提供手段138は、提供者が主に提供したいサービスを提供する。例えば、金融機関ならば決済機能である勘定系システムがサービス提供手段138に相当する。
通信手段139は、パソコン110、スマートフォン120、署名サーバ140と必要な情報をやりとりする。
<署名サーバ140>
署名サーバ140は、署名鍵管理手段141と、ユーザ管理手段142と、時刻取得手段143と、署名生成手段144と、暗号化・復号手段145と、通信手段146とを含む(図6参照)。
署名サーバ140は、署名鍵管理手段141と、ユーザ管理手段142と、時刻取得手段143と、署名生成手段144と、暗号化・復号手段145と、通信手段146とを含む(図6参照)。
署名鍵管理手段141は、取引内容に署名するための署名鍵をユーザ及びサービス毎に識別、及び、保持する。図7は、署名鍵管理手段141に保持されるデータの例を示す。
ユーザ管理手段142は、ユーザが利用しているサービスを識別、及び、保持する。
時刻取得手段143は、時刻を取得する。
署名生成手段144は、ユーザのスマートフォン120から提供されたハッシュ化された取引内容とシードと時刻とに対して、そのユーザとサービスに対応した署名鍵から署名(例えばMAC)を生成する。
暗号化・復号手段145は、スマートフォン120、取引サーバ130との通信内容を経路上の脅威から守るために暗号化した情報をやりとりするための暗号化・復号を行う。
通信手段146は、スマートフォン120、取引サーバ130と必要な情報をやりとりする。
<実施フロー>
本実施形態では、取引サーバとして、金融機関を想定しているが、本署名検証システムは、トランザクション署名を用いる様々なサービスに応用することができることは言うまでもない。まず、サービスを提供する前に、ユーザの登録を行う必要がある。なお、パソコン110のウェブブラウザ手段111の備える通信機能、スマートフォン120の通信手段125、取引サーバ130の通信手段139、署名サーバ140の通信手段146を介して、データの送受信を行うものとする。また、パソコン110のウェブブラウザ手段111の備える暗号化・復号機能、スマートフォン120の暗号化・復号手段122、取引サーバ130の暗号化・復号手段133、署名サーバ140の暗号化・復号手段145により、データの送信元においてデータを暗号化し、データの送信先において復号するものとする。
本実施形態では、取引サーバとして、金融機関を想定しているが、本署名検証システムは、トランザクション署名を用いる様々なサービスに応用することができることは言うまでもない。まず、サービスを提供する前に、ユーザの登録を行う必要がある。なお、パソコン110のウェブブラウザ手段111の備える通信機能、スマートフォン120の通信手段125、取引サーバ130の通信手段139、署名サーバ140の通信手段146を介して、データの送受信を行うものとする。また、パソコン110のウェブブラウザ手段111の備える暗号化・復号機能、スマートフォン120の暗号化・復号手段122、取引サーバ130の暗号化・復号手段133、署名サーバ140の暗号化・復号手段145により、データの送信元においてデータを暗号化し、データの送信先において復号するものとする。
<ユーザ登録処理>
ユーザはサービス利用するためにユーザ登録を行う。図8はユーザ登録処理のフローチャートを、図9はユーザ登録処理のシーケンス図を示す。
ユーザはサービス利用するためにユーザ登録を行う。図8はユーザ登録処理のフローチャートを、図9はユーザ登録処理のシーケンス図を示す。
パソコン110のウェブブラウザ手段111は、ユーザの操作により、サービス提供者の取引サーバ130にアクセスし、取引サーバ130に対する登録申請を行う。さらに、ウェブブラウザ手段111は登録申請用の画面を表示する。例えば、登録申請用の画面には、署名をうつのに利用するスマートフォン120のSMS番号を入力するための欄が含まれる。ウェブブラウザ手段111には、ユーザの操作により、スマートフォン120のSMS番号が入力される。ウェブブラウザ手段111は、入力されたSMS番号を取引サーバ130に送信する(S1)。
取引サーバ130は、SMS番号を受信し、受信したSMS番号に対応するスマートフォン120に、SMSを介して登録用URLを送信する(S2)。なお、登録用URLは、SMS番号毎に異なるものとする。例えば、SMSを介して「登録手続きを進めるために以下の登録用URLをクリックして下さい」等のメッセージを送信する。
スマートフォン120は、入出力手段121を介したユーザの操作により、登録用URLにアクセスし、取引サーバ130に対する登録申請を行う(S3)。取引サーバ130は、登録用URLへのアクセスを確認することでそのSMS番号に紐付けられているスマートフォン120の存在性を確認する。なお、パソコン110とスマートフォン120とから合わせて2回の登録申請を行う。パソコン110からの登録申請はユーザの登録のために行い、スマートフォン120からの登録申請はスマートフォン120とユーザとを確実に紐づけるために行う。
取引サーバ130のユーザ管理手段131は、ユーザのスマートフォンの存在性を確認したらユーザ情報を登録する(S4)。例えば、ユーザ情報として、スマートフォンに関する情報(IPアドレス、MACアドレス、SMS番号等)とユーザID(ユーザを識別できればよいため、何らかの識別子をユーザが入力してもよいし、ユーザ管理手段131が既にあるユーザIDと重複しないように生成してもよいし、前述のMACアドレス、SMS番号等をユーザIDとして用いてもよい)とユーザのプロファイル(名前、住所、電話番号、年齢、性別、職業等)との組合せを登録する。このとき、検証鍵管理手段134は、ユーザ毎の検証鍵を生成し、ユーザIDと検証鍵との組合せを保持する(図5参照)。そのため、ユーザ情報には少なくともユーザIDを含む。なお、本実施形態では、共通鍵暗号方式を利用して、署名、検証を行うものとし、検証鍵と署名鍵とは共通するものとする。
取引サーバ130は、スマートフォン120に署名サーバ140のURLを送信する(S5)。
また、取引サーバ130は、署名サーバ140にユーザに対応するユーザ情報(少なくともユーザIDを含めばよい)と署名鍵とを送付する(S6)。
スマートフォン120は、署名サーバ140のURLを受信し、入出力手段121に表示し、入出力手段121を介したユーザの操作により署名サーバ140にアクセスし、登録申請を行う(S7)。例えば、入出力手段121は、「引き続き、登録手続きを進めるために以下の登録用URLをクリックして下さい」等のメッセージを表示する。
署名サーバ140は、スマートフォン120からのアクセスを検知することでユーザの存在を確認し、ユーザの確認が取れたらサービス情報とユーザ情報の登録する(S8)。なお、サービス情報にはサービスID(サービスを一意に特定するための識別子)を含む。例えば、署名鍵管理手段141が、ユーザ情報に含まれるユーザIDとサービス情報に含まれるサービスIDと署名鍵との組合せを登録、保持する(図7参照)。なお、署名鍵とユーザIDとは、取引サーバ130から受信したものである(S6)。サービスIDについては、取引サーバ130が提供するサービスが1つだけならば、取引サーバ130のIDをそのままサービスIDとして用いてもよいし、取引サーバ130が2つ以上のサービスを提供するならば、S6において、ユーザIDと署名鍵と合わせて、当該ユーザが利用可能なサービスIDを受け取る構成としてもよい。
署名サーバ140は、登録処理が終わると、スマートフォン120に登録完了案内を送信し(S9)、数秒後にスマートフォン120を取引サーバ130にリダイレクトする。
スマートフォン120の入出力手段121は、登録完了案内を表示し、数秒後に取引サーバ130にリダイレクトされる。スマートフォン120は、リダイレクト後に取引サーバ130にシード(以下、「秘密情報」ともいう)を要求する(S10)。なお、スマートフォン120の取引サーバ130に対するアクセス自体をシード要求と見做してもよいし、取引サーバ130がスマートフォン120の入出力手段121にシード要求に対応するボタン等を表示させ、ユーザがスマートフォン120の入出力手段121を操作して、そのボタン等を押下(クリック)したときに、シードが要求されたものと見做してもよい。
取引サーバ130のシード生成手段132は、シードが要求されると、過去のシードと重複のないシードをランダムに生成し(S11)、スマートフォン120に送信する(S12)。なお、取引サーバ130の検証鍵管理手段134は、ランダムに生成されたシードとユーザIDと検証鍵との組合せ記憶する(図5参照)。
なお、スマートフォン120は、通信手段125を介してシードを受け取り、シード管理手段123は、受け取ったシードをサービス毎に識別し、保持する。
以上の処理で、ユーザ登録を完了する。次にサービス提供処理について説明する。
<サービス提供処理>
図10はサービス提供処理のフローチャートを、図11はサービス提供処理のシーケンス図を示す。
図10はサービス提供処理のフローチャートを、図11はサービス提供処理のシーケンス図を示す。
パソコン110のウェブブラウザ手段111は、ユーザの操作により、取引サーバ130にアクセスし、取引申請を行う(S21)。
取引サーバ130は、パソコン110のウェブブラウザ手段111に署名を入力するように表示させる(S22)。
ユーザは、スマートフォン120の入出力手段121を操作して、スマートフォン120に取引内容またはその一部(例:口座番号)を入力する。スマートフォン120のハッシュ化手段124は、入力された取引内容またはその一部をハッシュ化する。さらに、スマートフォン120は、サービスに対応するシードをシード管理手段123から取り出し、ハッシュ化された取引内容(以降「ハッシュ値」ともいう)と取り出したシードとを署名サーバ140に送信する(S23)。
署名サーバ140の署名生成手段144は、ハッシュ値h1とシードとを受信し、署名鍵管理手段141に保持されている署名鍵を取り出す。このとき、何らかの方法で、ユーザIDを受信し、対応する署名鍵を取り出せばよい。例えば、ユーザIDとして、MACアドレスを用いる場合には、スマートフォン120で署名サーバ140にアクセスする際に自動的にMACアドレスを送信する構成とすることで、ユーザがユーザIDを入力する手間を省くことができる。また、サービスの利用開始時(ログイン時)にユーザIDの入力を求める構成としてもよい。なお、1人のユーザが1つのユーザIDで2つ以上のサービスを利用する可能性がある場合には、そのユーザIDと合わせてサービスIDも送信する。例えば、取引内容を入力する際に、合わせて、利用したいサービスを選択するように入出力手段121に表示してもよい。さらに、署名サーバ140の署名生成手段144は、時刻取得手段143に、時刻t1を取得し、署名サーバ140の署名生成手段144に送信するように制御信号を出力する。
署名サーバ140の署名生成手段144は、シードと、ハッシュ値h1と時刻t1とに対して、ユーザIDとサービスIDに対応した署名鍵から署名を生成し(S24)、スマートフォン120に送信する(S25)。例えば、ハッシュ値h1とシードと時刻t1とを所定の順序で並べて得られる値を署名鍵を用いて暗号化して署名を生成する。
スマートフォン120の入出力手段121は、署名を表示する。パソコン110のウェブブラウザ手段111は、ユーザの操作により(例えば、キーボード等の入力装置により)、署名を入力され(S26)、入力された取引内容と共に署名を取引サーバ130に送信する(S27)。
取引サーバ130は取引内容と署名とを受信し、取引サーバ130のハッシュ化手段136は取引内容をハッシュ化してハッシュ値h2を得、検証手段137に出力する。
取引サーバ130の検証手段137は、検証鍵管理手段134に保持されているシードと検証鍵とを取り出す。なお、検証手段137は、取引内容と署名とを受信する際に、合わせて、ユーザIDを受信しておき、ユーザIDに対応するシードと検証鍵とを取り出す。
取引サーバ130の検証手段137は、時刻取得手段135に時刻t2を取得し、検証手段137に送信するように制御信号を出力する。
取引サーバ130の検証手段137は、ハッシュ値h2とシードと検証鍵と署名と時刻t2を用いて、取引内容が改ざんされていないか否かを検証し(S28)、検証結果を出力する。
例えば、共通鍵暗号方式を用いた場合、署名鍵と検証鍵とは共通の値であり、以下の二つの検証方法が考えられる。なお、他の検証方法を用いてもよい。
(1)検証手段137は、ハッシュ値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)検証手段137は、署名に対して検証鍵から復号結果を得る。例えば、署名を検証鍵を用いて復号し、復号結果を得る。適切に復号できた場合には、復号結果に、シードと、ハッシュ値h1と時刻t1とが含まれる。よって、復号結果に、シードと、ハッシュ値h1と時刻t1とが含まれるか否かを検証し、含まれる場合には改ざんされていないと判定する。例えば、ハッシュ値h1とシードと時刻t1とを所定の順序で並べて得られる値を署名鍵を用いて暗号化して署名を生成した場合、復号結果には、同じ所定の順序でハッシュ値h1とシードと時刻t1とが並んでいる。そこで、(i)復号結果に含まれるシード(適切に復号できた場合にシードが存在する予定の位置に位置する値)と検証鍵管理手段134から取り出したシードとが一致するか否か、(ii)復号結果に含まれるハッシュ値h1(適切に復号できた場合にハッシュ値h1が存在する予定の位置に位置する値)とハッシュ化手段136で得られたハッシュ値h2とが一致するか否か、(iii)時刻t1(適切に復号できた場合に時刻t1が存在する予定の位置に位置する値)と時刻t2(例えば前述のように「時」以上の単位のみを用いる)とが一致するか否かを、検証し、すべて一致する場合には、改ざんされていないと判定する。何れかが一致しない場合には、改ざんされていると判定する。なお、(iii)の条件に関しては、例えば「時」よりも小さい単位も用いて、時刻t1と時刻t2との差分(t2-t1)が所定の時間を超えるか否かを検証し、超えない場合に改ざんされていないと判定してもよい。このような方法であっても署名の有効期限の設定を設定することができる。
サービス提供手段138は、検証結果が改ざんされていない(検証を通過した)ことを示す場合、サービスを提供する。例えば、サービス内容が、金融機関の決済機能ならば、決済処理を行い、取引完了連絡を送信する(S28)。
なお、検証結果が改ざんされている(検証を通過しない)ことを示す場合、エラーメッセージ等を送信し、サービスを提供しない。
<効果>
以上の構成により、トランザクション署名専用のハードウェアトークンを用いずに、同程度の安全性で、トランザクション署名を実現できる。昨今の社会では、スマートフォンは持ち歩く人が大勢を占めている。そのことから、スマートフォンを持ち歩くことはハードウェアトークンを持ち歩くことに比べ利便性が高いと言える。
以上の構成により、トランザクション署名専用のハードウェアトークンを用いずに、同程度の安全性で、トランザクション署名を実現できる。昨今の社会では、スマートフォンは持ち歩く人が大勢を占めている。そのことから、スマートフォンを持ち歩くことはハードウェアトークンを持ち歩くことに比べ利便性が高いと言える。
また、スマートフォンはアプリケーションで起動するため複数のアプリケーションをスマートフォンに入れたり、アプリケーション自体に複数の金融機関に対応するものとすることで、ユーザはスマートフォンに複数のハードウェアトークンの機能が入っているように操作することが可能であり、スマートフォン1台だけで複数の金融機関に対しトランザクション署名を行うことができる。
提供者にとっては、ハードウェアトークンの製造コストと配布コストを省くことができる。ハードウェアトークンの製造コストに代えて、アプリケーションの作成コストがかかるが、一旦、アプリケーションを作成すれば、その後、ユーザが増加しても新たなアプリケーションを作成する必要はなく、コストを削減することができる。また、サービスIDで提供者を区別することができるため、複数の提供者で一つのアプリケーションを作成し、共通のアプリケーションを利用してもよい。その場合、1つのサービス提供者にかかるアプリケーションの作成コストはさらに低くなる。また、ユーザにとっては、同じインターフェースで異なる提供者のサービスを受けることができ、利便性が増す。
<変形例>
本実施形態では、共通鍵暗唱方式を用いて署名検証を行っているが、公開鍵暗号方式を用いることもできる。公開鍵暗号方式を用いた場合、署名鍵(秘密鍵)と検証鍵(公開鍵)とは異なる値であり、署名サーバ140の署名鍵管理手段141が鍵生成アルゴリズムにより、署名鍵skと検証鍵pkを生成し、署名鍵skを秘密に管理し、検証鍵pkを公開する。取引サーバ130の検証鍵管理手段134は公開されている検証鍵pkを受け取り、上述の検証方法(2)を実行する。
本実施形態では、共通鍵暗唱方式を用いて署名検証を行っているが、公開鍵暗号方式を用いることもできる。公開鍵暗号方式を用いた場合、署名鍵(秘密鍵)と検証鍵(公開鍵)とは異なる値であり、署名サーバ140の署名鍵管理手段141が鍵生成アルゴリズムにより、署名鍵skと検証鍵pkを生成し、署名鍵skを秘密に管理し、検証鍵pkを公開する。取引サーバ130の検証鍵管理手段134は公開されている検証鍵pkを受け取り、上述の検証方法(2)を実行する。
本実施形態では、署名を生成する際、及び、署名を検証する際に時刻を用いているが、必ずしも必要ではない。ただし、署名の有効期限を設定することで、解読されるリスクを低減することができる。
本実施形態では、パソコン110とスマートフォン120とは、別々の装置として記載しているが、一体の装置としてもよい。MITB攻撃は、ブラウザを乗っ取るため、ブラウザとは異なるアプリケーションにより、取引サーバ130、署名サーバ140にアクセスすれば、パソコン110とスマートフォン120とを単一の装置内に配置してもよい。例えば、パソコン110の中に、シード管理手段123、ハッシュ化手段124を持たせてもよいし、スマートフォン120の中にウェブブラウザ手段111を持たせてもよい。ただし、パソコン110の制御を乗っ取るウィルス等も考えられるため、本実施形態のように、別々の装置として構成すると、よりセキュリティレベルは高いものとなる。
<その他の変形例>
本発明は上記の実施形態及び変形例に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
本発明は上記の実施形態及び変形例に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
<プログラム及び記録媒体>
また、上記の実施形態及び変形例で説明した各装置における各種の処理機能をコンピュータによって実現してもよい。その場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
また、上記の実施形態及び変形例で説明した各装置における各種の処理機能をコンピュータによって実現してもよい。その場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶部に格納する。そして、処理の実行時、このコンピュータは、自己の記憶部に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実施形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよい。さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、プログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、コンピュータ上で所定のプログラムを実行させることにより、各装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
Claims (8)
- ユーザに操作されるウェブブラウザ装置と、
前記ユーザに操作され、秘密情報が格納される記憶部を含む端末装置と、
署名鍵が格納される記憶部を含む署名装置と、
前記秘密情報及び検証鍵が格納される検証装置とを含み、
前記端末装置は、
署名対象の第一情報をハッシュ化して第一ハッシュ値を得る第一ハッシュ化部と、
前記第一ハッシュ値と前記秘密情報とを署名装置に送信する送信部とを含み、
前記署名装置は、
前記第一ハッシュ値と前記秘密情報とに対して前記署名鍵から署名を生成する署名生成部と、
前記署名を前記端末装置に送信する送信部とを含み、
前記ウェブブラウザ装置は、
前記署名と前記第一情報とを前記検証装置に送信する送信部を含み、
前記検証装置は、
前記第一情報をハッシュ化して第二ハッシュ値を得る第二ハッシュ化部と、
前記秘密情報と前記検証鍵と前記署名と前記第二ハッシュ値とを用いて、前記第一情報が改ざんされていないか否かを検証する検証部とを含む、
署名検証システム。 - 請求項1の署名検証システムであって、
前記署名鍵と前記検証鍵とは共通し、
前記検証部は、前記第二ハッシュ値と前記秘密情報に対して前記検証鍵から第二署名を生成し、前記第二署名と前記署名とが一致するか否かを検証し、一致する場合には改ざんされていないと判定する、
署名検証システム。 - 請求項1の署名検証システムであって、
前記検証部は、前記署名に対して前記検証鍵から復号結果を得、前記復号結果に、前記秘密情報と前記第二ハッシュ値とが含まれるか否かを検証し、含まれる場合には改ざんされていないと判定する、
署名検証システム。 - 請求項1から請求項3の何れかの署名検証システムであって、
前記署名装置は、
第一の時刻を取得する第一時刻取得部を含み、
前記検証装置は、
第二の時刻を取得する第二時刻取得部を含み、
前記署名生成部は、前記秘密情報と前記第一の時刻と前記第一ハッシュ値とに対して前記署名鍵から署名を生成し、
前記検証部は、前記秘密情報と前記検証鍵と前記署名と前記第二ハッシュ値と前記第二の時刻とを用いて、前記第一情報が改ざんされていないか否かを検証し、前記第一の時刻から前記第二の時刻までの時間が、所定の時間を超える場合には、改ざんされていると判定する、
署名検証システム。 - ユーザに操作されるウェブブラウザ装置と、
前記ユーザに操作され、秘密情報が格納される記憶部を含む端末装置と、
署名鍵が格納される記憶部を含む署名装置と、
前記秘密情報及び検証鍵が格納される検証装置とを用い、
前記端末装置が、署名対象の第一情報をハッシュ化して第一ハッシュ値を得る第一ハッシュ化ステップと、
前記端末装置が、前記第一ハッシュ値と前記秘密情報とを署名装置に送信する送信ステップと、
前記署名装置が、前記第一ハッシュ値と前記秘密情報とに対して前記署名鍵から署名を生成する署名生成ステップと、
前記署名装置が、前記署名を前記端末装置に送信する送信ステップと、
前記ウェブブラウザ装置が、前記署名と前記第一情報とを前記検証装置に送信する送信ステップと、
前記検証装置が、前記第一情報をハッシュ化して第二ハッシュ値を得る第二ハッシュ化ステップと、
前記検証装置が、前記秘密情報と前記検証鍵と前記署名と前記第二ハッシュ値とを用いて、前記第一情報が改ざんされていないか否かを検証する検証ステップとを含む、
署名検証方法。 - 請求項5の署名検証方法であって、
前記署名鍵と前記検証鍵とは共通し、
前記検証ステップは、前記第二ハッシュ値と前記秘密情報に対して前記検証鍵から第二署名を生成し、前記第二署名と前記署名とが一致するか否かを検証し、一致する場合には改ざんされていないと判定する、
署名検証方法。 - 請求項5の署名検証方法であって、
前記検証ステップは、前記署名に対して前記検証鍵から復号結果を得、前記復号結果に、前記秘密情報と前記第二ハッシュ値とが含まれるか否かを検証し、含まれる場合には改ざんされていないと判定する、
署名検証方法。 - 請求項5から請求項7の何れかの署名検証方法であって、
前記署名装置が、第一の時刻を取得する第一時刻取得ステップと、
前記検証装置が、第二の時刻を取得する第二時刻取得ステップと、を含み、
前記署名生成ステップは、前記秘密情報と前記第一の時刻と前記第一ハッシュ値とに対して前記署名鍵から署名を生成し、
前記検証ステップは、前記秘密情報と前記検証鍵と前記署名と前記第二ハッシュ値と前記第二の時刻とを用いて、前記第一情報が改ざんされていないか否かを検証し、前記第一の時刻から前記第二の時刻までの時間が、所定の時間を超える場合には、改ざんされていると判定する、
署名検証方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015227717A JP2017098697A (ja) | 2015-11-20 | 2015-11-20 | 署名検証システム及び署名検証方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015227717A JP2017098697A (ja) | 2015-11-20 | 2015-11-20 | 署名検証システム及び署名検証方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017098697A true JP2017098697A (ja) | 2017-06-01 |
Family
ID=58803834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015227717A Pending JP2017098697A (ja) | 2015-11-20 | 2015-11-20 | 署名検証システム及び署名検証方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017098697A (ja) |
-
2015
- 2015-11-20 JP JP2015227717A patent/JP2017098697A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10491379B2 (en) | System, device, and method of secure entry and handling of passwords | |
KR101799343B1 (ko) | 인증 정보의 사용 방법, 파기 방법 및 이를 지원하는 블록체인기반 인증 정보 관리 서버 | |
JP5852265B2 (ja) | 計算装置、コンピュータプログラム及びアクセス許否判定方法 | |
US20200021446A1 (en) | Secure de-centralized domain name system | |
EP3997597A1 (en) | System and method for identifying a browser instance in a browser session with a server | |
JP4818664B2 (ja) | 機器情報送信方法、機器情報送信装置、機器情報送信プログラム | |
US20130086381A1 (en) | Multi-server authentication token data exchange | |
WO2019239591A1 (ja) | 認証システム、認証方法、アプリケーション提供装置、認証装置、及び認証用プログラム | |
TR201810238T4 (tr) | Bir mobil kimlik doğrulama uygulaması kullanarak kullanıcıya uygun kimlik doğrulama yöntemi ve aparatı. | |
CN113056741A (zh) | 基于分布式账本的简档验证 | |
US20100250949A1 (en) | Generation, requesting, and/or reception, at least in part, of token | |
US9454677B1 (en) | Secure communication architecture including video sniffer | |
JP5278495B2 (ja) | 機器情報送信方法、機器情報送信装置、機器情報送信プログラム | |
JP2018028745A (ja) | 認証サーバ、仲介サーバおよび広告配信サーバ | |
JP2007060581A (ja) | 情報管理システム及び方法 | |
JP2016181806A (ja) | 情報処理装置、情報処理システム、暗号装置、情報処理方法、及びプログラム | |
JP5161053B2 (ja) | ユーザ認証方法、ユーザ認証システム、サービス提供装置、及び認証制御装置 | |
JP6059788B2 (ja) | カード装置を用いたネットワーク認証方法 | |
KR101581663B1 (ko) | 공인인증기관 연동 인증 및 부인 방지 방법 및 시스템 | |
JP5793593B2 (ja) | ユーザ識別情報を安全に検証するためのネットワーク認証方法 | |
JP2017098697A (ja) | 署名検証システム及び署名検証方法 | |
JP2007065789A (ja) | 認証システム及び方法 | |
JP2020102741A (ja) | 認証システム、認証方法、及び、認証プログラム | |
JP2016042211A (ja) | 認証システム、認証方法および認証プログラム | |
KR20050112146A (ko) | 웹서비스를 이용하여 인증서 및 개인비밀정보를 안전하게보관하고 전달하는 방법 |