(57)【要約】      （修正有）【課題】高価な専用デバイスを使用することなく、取引の安全と取引の内容の確実性を保証する技法を提供する。【解決手段】パーソナルコンピュータ、携帯又はスマートフォンなどのユーザ端末からホストシステムに送信した、送金先口座番号や、送金金額などの取引情報を、ホストシステムがユーザ端末に送り返す。ユーザ端末では、送られた取引情報をユーザ端末の画面に表示するとともに、送られた取引情報に端末ユーザＩＤを加えた情報にハッシュ関数を施し確認コードを生成する。ユーザがユーザ端末の画面に表示された情報を確認して確認コードをホストシステムに送ることで認証が完了する。パーソナルコンピュータのユーザはさらに、携帯又はスマートフォンを使った二要素認証を行う。二要素認証は、パーソナルコンピュータの画面に表示された二次元バーコードを携帯またはスマートフォンにより読み取り、確認コードを生成することで行われる。【選択図】図６
2014106593.tif 000002
【特許請求の範囲】
【請求項１】
モバイル端末を使用して、クライアント・コンピュータとホストサーバとの取引を認証する方法であって、
前記クライアント・コンピュータが、所定のユーザＩＤとパスワードにより、前記ホストサーバにログインするステップと、
前記クライアント・コンピュータが、取引のため、前記ホストサーバに取引情報を送信するステップと、
前記ホストサーバが、前記クライアント・コンピュータに、前記ユーザＩＤと前記取引情報を、前記モバイル端末に固有のキーでエンコードした情報を前記クライアント・コンピュータに送信するステップと、
前記クライアント・コンピュータが、前記クライアント・コンピュータの画面に、前記モバイル端末が、前記モバイル端末のカメラで撮影可能な画像を表示するステップと、
前記モバイル端末が、ユーザの操作に応答して、前記モバイル端末のカメラで前記画像を撮影するステップと、
前記モバイル端末が、前記モバイル端末に固有のキーを用いて、前記撮影した画像をデコードした情報に基づき確認コードを生成するステップと、
前記クライアント・コンピュータが、前記確認コードを前記ホストサーバに送信するステップと、
前記ホストサーバが、前記確認コードに基づき、前記取引を認証するステップを有する、
取引認証方法。
【請求項２】
前記ホストサーバが、前記モバイル端末に固有のキーを生成して前記モバイル端末に送信するとともに、前記モバイル端末のIDに関連付けて、テーブル情報として保持するステップと、
前記モバイル端末が、前記送信された固有のキーを保持するステップとをさらに有し、
前記取引を認証するステップが、
前記ホストサーバが、前記モバイル端末が前記固有のキーを用いて前記確認コードを生成したのと同様の様式で、前記ホストサーバに前記テーブル情報として保持されている前記モバイル端末の前記固有のキーを用いて確認コードを生成し、前記モバイル端末から受信した前記確認コードと比較して、一致する場合に取引を認証するステップを有する、
請求項１に記載の方法。
【請求項３】
前記確認コードが、前記固有のキーによる、Keyed Hashにより生成される、請求項２に記載の方法。
(a)
前記確認コードが、生成されたコードの所定の位置の範囲の一部として使用される、請求項２に記載の方法。
【請求項４】
前記取引が、銀行での送金であり、前記取引情報が、金額と送金口座の情報を含む、請求項１に記載の方法。
【請求項５】
前記確認コードを生成するための情報が、前記金額と送金口座の情報を含む、請求項４に記載の方法。
【請求項６】
前記撮影した画像をデコードした情報に基づき、目視での確認のために、前記モバイル端末に少なくとも前記金額と送金口座の情報を表示するステップをさらに有する、請求項４に記載の方法。
【請求項７】
前記カメラで撮影可能な画像が、二次元バーコードである、請求項１に記載の方法。
【請求項８】
前記モバイル端末が、スマート・フォンである、請求項１に記載の方法。
【請求項９】
モバイル端末を使用して、ホストサーバとの取引を認証する方法であって、
前記モバイル端末が、所定のユーザＩＤとパスワードにより、前記ホストサーバにログインするステップと、
前記モバイル端末が、取引のため、前記ホストサーバに取引情報を送信するステップと、
前記ホストサーバが、前記モバイル端末に、前記ユーザＩＤと前記取引情報を、前記モバイル端末に固有のキーでエンコードした情報を前記モバイル端末に送信するステップと、
前記モバイル端末が、前記モバイル端末に固有のキーを用いて、前記エンコードした情報に基づき確認コードを生成するステップと、
前記モバイル端末が、前記確認コードを前記ホストサーバに送信するステップと、
前記ホストサーバが、前記確認コードに基づき、前記取引を認証するステップを有する、
取引認証方法。
【請求項１０】
前記ホストサーバが、前記モバイル端末に固有のキーを生成して前記前記モバイル端末に送信するとともに、前記モバイル端末のIDに関連付けて、テーブル情報として保持するステップと、
前記モバイル端末が、前記送信された固有のキーを保持するステップとをさらに有し、
前記取引を認証するステップが、
前記ホストサーバが、前記モバイル端末が前記固有のキーを用いて前記確認コードを生成したのと同様の様式で、前記ホストサーバに前記テーブル情報として保持されている前記モバイル端末の前記固有のキーを用いて確認コードを生成し、前記モバイル端末から受信した前記確認コードと比較して、一致する場合に取引を認証するステップを有する、
請求項９に記載の方法。
【請求項１１】
前記確認コードが、前記固有のキーによる、Keyed Hashにより生成される、請求項１０に記載の方法。
【請求項１２】
前記取引が、銀行での送金であり、前記取引情報が、金額と送金口座の情報を含む、請求項９に記載の方法。
【請求項１３】
前記モバイル端末が、目視のため、前記金額と送金口座の情報を表示するステップを実行する、請求項１２に記載の方法。
【請求項１４】
前記モバイル端末が、スマート・フォンである、請求項９に記載の方法。
【請求項１５】
コンピュータの処理により、二次元バーコードを読み取り可能なカメラ機能をもつモバイル端末を使用して、クライアント・コンピュータとの間で、取引を認証するシステムであって、
記憶手段と、
前記モバイル端末に固有のキーを生成して前記モバイル端末に送信するとともに、前記モバイル端末のIDと関連付けてテーブル情報として、前記記憶手段に保持する手段と、
前記クライアント・コンピュータから、ユーザIDとパスワードでログインを可能ならしめる手段と、
前記クライアント・コンピュータに、取引情報入力のための画面情報を送信する手段と、
前記クライアント・コンピュータから、前記画面情報に基づき入力された取引情報を受信する手段と、
前記モバイル端末に固有のキーを用いて前記取引情報入力を二次元バーコードとしてコード化する手段と、
前記二次元バーコードの情報を、前記クライアント・コンピュータの画面に表示させるように、前記クライアント・コンピュータに送信する手段と、
前記二次元バーコードの情報を前記モバイル端末が読み取ることでデコードされた前記取引情報を、前記モバイル端末が前記固有のキーを使用することでコード化した確認情報が、前記クライアント・コンピュータから送信されることに応答して、前記確認コードに基づき、前記取引を認証する手段を有する、
システム。
【請求項１６】
前記モバイル端末が前記固有のキーを用いて前記確認コードを生成したのと同様の様式で、前記ホストサーバに前記テーブル情報として保持されている前記モバイル端末の前記固有のキーを用いて確認コードを生成し、前記モバイル端末から受信した前記確認コードと比較して、一致する場合に取引を認証する手段をさらに有する、請求項１５に記載のシステム。
【請求項１７】
前記確認コードが、前記固有のキーによる、Keyed Hashにより生成される、請求項１６に記載のシステム。
【請求項１８】
前記取引が、銀行での送金であり、前記取引情報が、金額と送金口座の情報を含む、請求項１５に記載のシステム。
【請求項１９】
前記モバイル端末が、スマート・フォンである、請求項１５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、オンライン・バンキングなどの処理における、セキュアな取引技法に関するものである。
【背景技術】
【０００２】
最近、パーソナル・コンピュータや、携帯、スマート・フォンによるオンライン・バンキングの不正アクセスが頻発しており、基本的な対策として、ＩＤやパスワードの強化が謳われている。
【０００３】
また、これに対する重要な対策方針として、(1) 相手認証の強化、(2) 接続先サイトの保証、(3) 送金内容の保証がある。これ以外の脅威も存在するが、オンライン・バンキングでは、この３つが、最も重要なセキュリティ要素であると想定してよい。
【０００４】
相手認証の強化とは、オンライン・バンキングのＩＤやパスワードが盗難されて悪意の第三者が不正ログインを試みることに対抗する仕組みである。これの例として、ワンタイム・パスワード(OTP)、２要素認証やバイオメトリックスがある。
【０００５】
接続先サイトの保証とは、フィッシング攻撃で誤った銀行サイトに誘導され、そこでＩＤやパスワードが騙し取られることに対抗する仕組みである。これの例として、SSL-EV証明書によるサイト認証がある。
【０００６】
送金内容の保証には、最近になって報告されている、パーソナル・コンピュータに常駐し、送金内容（金額や振込先）をユーザに分からないように不正に書き換えるコンピュータ・ウイルスを検出することが含まれる。
【０００７】
上記のような対策を実現する仕組みとして、例えば、米国特許公開２０１１／０１３１６３９号公報に記載されているように、ハードウェア・トークンにより発生されたワンタイム・パスワードを使用して認証を行う技法が知られている。これは、セキュリティ的に頑健であるが、運用が難しいという問題がある。
【０００８】
特開２００２−３４２２８５号公報は、利用者管理端末が、携帯電話から送信される認証情報に基づいて認証処理を行い、認証が成立した場合に、情報の発行許可を受けるための認証を行う情報であるワンタイムパスワードを携帯電話に発行し、発行されたワンタイムパスワードと該発行されたワンタイムパスワードの発行対象の携帯電話の識別情報とを対応づけて一時記憶し、発行端末から送信される識別情報とワンタイムパスワードとを受信し、一時記憶された情報に基づいて認証処理を行い、認証が成立した場合に情報の発行を許可するようにしたシステムを開示する。
【０００９】
特開２００４−２４０６３７号公報は、インターネットに接続し、利用者ＩＤを入力してログイン用ワンタイムパスワードの問合せを認証サーバーに行う携帯電話と、携帯電話番号と利用者ＩＤが認証データベースに登録されているか照合を行い、一致した場合のみ、そのワンタイムパスワードを携帯画面に送信する認証サーバーと、インターネット経由で認証システムログイン画面を起動して、利用者ＩＤと携帯電話１で得たログイン用ワンタイムパスワードを入力するパソコンやＰＤＡなどの端末装置とからなるシステムを開示する。
【００１０】
特開２００７−１０８９７３号公報は、認証サーバがサービスサーバからの要求に基づいてユニークなトークンを発行し、記憶し、サービスサーバが、発行されたトークン情報を含み、認証サーバのＵＲＬを表す２次元コード画像を生成してパソコンに送信し、ユーザはパソコン画面から携帯端末のカメラで２次元コード画像を読み取り、認証サーバにアクセスし、認証サーバは携帯端末からのアクセスに基づき、端末ＩＤを取得すると共にトークンを抽出して有効か否かを判定し、判定結果を記録、通知するシステムを開示する。
【００１１】
Jonathan M. McCune, Adrian Perrig, Michael K. Reiter, "Seeing-Is-Believing: Using Camera Phones for Human Verifiable Authentication", Security and Privacy, 2005 IEEE Symposium on May 8-11, 2005は、認証と装置の識別のための視覚的チャネルを実装するための、2次元バーコードと、カメラ付電話を用いたシステムを開示する。ここで開示されている技法によれば、対象デバイスに貼り付けられているバーコードを近距離で撮影し、データを読み込むので、中間者攻撃しにくいというメリットがある。
【００１２】
しかし、上記どの従来技術も、情報伝達チャネルの安全性を高めることには貢献するものの、取引の内容そのものの確実性を保証する点では不十分であった。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】米国特許公開２０１１／０１３１６３９号公報
【特許文献２】特開２００２−３４２２８５号公報
【特許文献３】特開２００４−２４０６３７号公報
【特許文献４】特開２００７−１０８９７３号公報
【非特許文献】
【００１４】
【非特許文献１】Jonathan M. McCune, Adrian Perrig, Michael K. Reiter, "Seeing-Is-Believing: Using Camera Phones for Human Verifiable Authentication", Security and Privacy, 2005 IEEE Symposium on May 8-11, 2005
【発明の概要】
【発明が解決しようとする課題】
【００１５】
従って、この発明の目的は、高価な専用デバイスを使用することなく、取引の安全と取引の内容の確実性を保証する技法を提供することにある。
【課題を解決するための手段】
【００１６】
この発明は、上記課題を解決するためになされたものであり、パーソナル・コンピュータ、携帯またはスマート・フォンなどのユーザ端末から、ホスト・システムに送信した、送金先口座番号や、送金金額などの取引情報を、ホスト・システムが、ユーザ端末に送り返す。ユーザ端末では、送られた取引情報をユーザ端末の画面に表示するとともに、送られた取引情報に端末ユーザＩＤ及び端末固有の秘密情報を加えた情報にハッシュ関数を施し、確認コードを生成する。ユーザが、ユーザ端末の画面に表示された情報を確認して、確認コードをホスト・システムに送り、ホスト・システムがそれを検証することで、認証が完了する。
【００１７】
この発明の第１の側面では、ユーザ端末はパーソナル・コンピュータであり、パーソナル・コンピュータのユーザはさらに、携帯またはスマート・フォンを使った二要素認証を行う。このため、携帯またはスマート・フォンには予め、端末ユーザＩＤがセットされ、好適にはホスト・システムから、所定のアプリケーション・プログラムがダウンロードされ導入される。端末ユーザＩＤは、事前に、ホスト・システムに登録される。ホスト・システムは、送金先口座番号や、送金金額などの情報を含む取引情報を所定の関数でエンコードし、二次元バーコードのデータを生成し、パーソナル・コンピュータに送る。パーソナル・コンピュータはそのコードに基づき、二次元バーコードを、パーソナル・コンピュータのディスプレイに表示する。
【００１８】
パーソナル・コンピュータのユーザは、ディスプレイに表示された二次元バーコードを、携帯またはスマート・フォンで撮影することによって読み取る。携帯またはスマート・フォンは、読み取った二次元バーコードの情報から、送金先口座番号及び送金金額などの取引情報を引き出し、それらの情報を携帯またはスマート・フォンのディスプレイに表示するとともに、導入されているアプリケーション・プログラムにより、取引情報と端末ユーザＩＤを加えた情報に所定のハッシュ関数を施し、その出力結果の少なくとも一部の値を確認コードとして表示する。ユーザは、携帯またはスマート・フォンのディスプレイに表示された情報が正しいことを確認すると、ディスプレイに表示された確認コードをパーソナル・コンピュータの画面の所定フィールドに打ち込み、OKボタンをクリックして、確認コードをホスト・システムに送る。そして、送られた確認コードに基づき、ホスト・システムは認証を行う。
【００１９】
この発明の第２の側面では、二要素認証でなく、ユーザ端末は、パーソナル・コンピュータ、携帯またはスマート・フォンのどれか一つである。ユーザ端末には、予め、端末ユーザＩＤがセットされ、好適にはホスト・システムから、所定のアプリケーション・プログラムがダウンロードされ導入される。端末ユーザＩＤは、事前に、ホスト・システムに登録される。ホスト・システムは、送金先口座番号や、送金金額などの情報を含む取引情報を、好適にはエンコードしてユーザ端末に送る。ユーザ端末は、受け取った情報をデコードとして得た取引情報を、ユーザ端末のディスプレイに表示する。ユーザ端末はさらに、導入されているアプリケーション・プログラムにより、取引情報と端末ユーザＩＤを加えた情報に所定のハッシュ関数を施し、その出力結果の少なくとも一部の値を確認コードとして保持する。ユーザは、携帯またはスマート・フォンのディスプレイに表示された情報が正しいことを確認すると、OKボタンをクリックして、確認コードをホスト・システムに送る。そして、送られた確認コードに基づき、ホスト・システムは認証を行う。
【発明の効果】
【００２０】
この発明によれば、ユーザ端末に取引内容をきちんと表示してユーザに目視で確認させるとともに、取引内容に関連して生成された確認コードをホスト側に送信して、照合することより、特別な機器を使うことなく取引の高いセキュリティを保証することが可能となる。
【００２１】
特に、スマート・フォンと、クライアント・コンピュータと、ホスト・システムからなる、本発明の第１の実施例に係る発明では、クライアント・コンピュータにコンピュータ・ウイルスが感染している等の可能性があって、クライアント・コンピュータにおいて送金内容の確実性が保証できないような場合でも、スマート・フォンを第二のデバイスとして使うことにより、セキュアに取引を行うことが可能となる。
【００２２】
また、スマート・フォンと、ホスト・システムからなる、本発明の第２の実施例に係る発明では、スマート・フォンがセキュアであるという前提で、仮に銀行にログインするパスワードが第三者に盗み取られていたとしても、所有者以外の端末(例えばスマート・フォンから第三者が勝手にログインして送金することが防止できるという効果を与える。
【図面の簡単な説明】
【００２３】
【図１】本発明を実施するためのハードウェア構成の全体の概要図である。
【図２】クライアント・コンピュータのハードウェア構成のブロック図である。
【図３】取引サーバ（銀行ホスト）のハードウェア構成のブロック図である。
【図４】スマート・フォンの機能構成のブロック図である。
【図５】銀行ホストの機能構成のブロック図である。
【図６】本発明の第１の実施例の処理を説明するための構成図である。
【図７】スマート・フォンにアプリケーションをインストールする処理のフローチャートを示す図である。
【図８】スマート・フォンにアプリケーションをインストールする処理のシーケンスを示す図である。
【図９】スマート・フォンによる、銀行ホスト上でのユーザ登録処理のフローチャートを示す図である。
【図１０】銀行ホスト上での、スマート・フォンのユーザ登録処理のフローチャートを示す図である。
【図１１】スマート・フォンによる、銀行ホスト上でのユーザ登録処理のシーケンスを示す図である。
【図１２】銀行ホストでのネット・バンキング処理のフローチャートを示す図である。
【図１３】クライアント・コンピュータでの、ネット・バンキング処理のフローチャートを示す図である。
【図１４】スマート・フォンでの、ネット・バンキング処理のフローチャートを示す図である。
【図１５】ネット・バンキング処理のシーケンスを示す図である。
【図１６】クライアント・コンピュータでの、画面の例を示す図である。
【図１７】スマート・フォンでの、画面の例を示す図である。
【図１８】本発明の第２の実施例の処理を説明するための構成図である。
【図１９】スマート・フォンにアプリケーションをインストールする処理のフローチャートを示す図である。
【図２０】スマート・フォンにアプリケーションをインストールする処理のシーケンスを示す図である。
【図２１】スマート・フォンによる、銀行ホスト上でのユーザ登録処理のフローチャートを示す図である。
【図２２】銀行ホスト上での、スマート・フォンのユーザ登録処理のフローチャートを示す図である。
【図２３】スマート・フォンによる、銀行ホスト上でのユーザ登録処理のシーケンスを示す図である。
【図２４】銀行ホストでのネット・バンキング処理のフローチャートを示す図である。
【図２５】スマート・フォンでの、ネット・バンキング処理のフローチャートを示す図である。
【図２６】ネット・バンキング処理のシーケンスを示す図である。
【図２７】スマート・フォンでの、画面の例を示す図である。
【発明を実施するための形態】
【００２４】
以下、図面に従って、本発明の実施例を説明する。これらの実施例は、本発明の好適な態様を説明するためのものであり、発明の範囲をここで示すものに限定する意図はないことを理解されたい。また、以下の図を通して、特に断わらない限り、同一符号は、同一の対象を指すものとする。
【００２５】
図１において、取引サーバ(銀行ホスト・サーバ)１０２には、インターネット１０４を介して、複数のクライアント・コンピュータ１０６ａ、１０６ｂ・・・１０６ｚが接続されている。図１のシステムにおいては、クライアント・コンピュータのユーザは、Ｗｅｂブラウザを通じて、インターネット１０４の回線を介して、銀行口座からの送金、残高照会などの目的で、取引サーバ１０２に、ログインする。具体的には、所定のＵＲＬをＷｅｂブラウザに打ち込んで、所定のページを表示する。
【００２６】
ログインに当たっては、クライアント・コンピュータのユーザは、与えられたユーザＩＤと、それに関連付けられたパスワードを用いる。
【００２７】
取引サーバ１０２にはまた、パケット通信網１０８を介して、スマート・フォン１１０ａ、・・・１１０ｋなどのモバイル端末が接続される。ユーザは、与えられたユーザＩＤと、それに関連付けられたパスワードがあれば、スマート・フォンに導入されているＷｅｂブラウザを通じて、同様に取引サーバ１０２にアクセスできる。
【００２８】
次に、図２を参照して、図１で参照番号１０６ａ、１０６ｂ・・・１０６ｚのように示されているクライアント・コンピュータのハードウェア・ブロック図について、説明する。図２において、クライアント・コンピュータは、典型的にはパーソナル・コンピュータであり、メイン・メモリ２０６、ＣＰＵ２０４、ＩＤＥコントローラ２０８をもち、これらは、バス２０２に接続されている。バス２０２には更に、ディスプレイ・コントローラ２１４と、通信インターフェース２１８と、ＵＳＢインターフェース２２０と、オーディオ・インターフェース２２２と、キーボード・マウス・コントローラ２２８が接続されている。ＩＤＥコントローラ２０８には、ハードディスク・ドライブ（ＨＤＤ）２１０と、ＤＶＤドライブ２１２が接続されている。ＤＶＤドライブ２１２は、必要に応じて、ＣＤ−ＲＯＭやＤＶＤから、プログラムを導入するために使用する。ディスプレイ・コントローラ２１４には、好適には、ＬＣＤ画面をもつディスプレイ装置２１６が接続されている。
【００２９】
ＵＳＢインターフェース２２０には、必要に応じて、外付けＨＤＤなどのデバイスを接続するために使用される。
【００３０】
キーボード・マウス・コントローラ２２８には、キーボード２３０と、マウス２３２が接続されている。キーボード２３０と、マウス２３２は、銀行のオンライン・バンキングの画面で、口座番号を選んだり、金額を入力したりするために使用される。
【００３１】
ＣＰＵ２０４は、例えば、３２ビット・アーキテクチャまたは６４ビット・アーキテクチャに基づく任意のものでよく、インテル社のPentium(インテル・コーポレーションの商標)4、Core(商標)2 Duo、Core(商標)2 Quado、Core(商標)i3、Core(商標)i5、Core(商標)i7、AMD社のAthlon(商標)などを使用することができる。
【００３２】
ハードディスク・ドライブ２１０には、少なくとも、オペレーティング・システムと、オペレーティング・システム上で動作するＷｅｂブラウザ（図示しない）が格納されており、システムの起動時に、オペレーティング・システムは、メインメモリ２０６にロードされる。オペレーティング・システムは、Windows XP(マイクロソフト・コーポレーションの商標)、Windows(マイクロソフト・コーポレーションの商標)7、Linux（Linus Torvaldsの商標）、Mac OS Xなどを使用することができる。
【００３３】
ハードディスク・ドライブ２１０にはさらに、Ｗｅｂブラウザが導入されている。Ｗｅｂブラウザは、好適にはSSLに対応した、Internet Explorer、FireFox、Google Chromeなど任意のものを使用することができる。
【００３４】
通信インターフェース２１８は、オペレーティング・システムが提供するＴＣＰ／ＩＰ通信機能を利用して、イーサネット（商標）・プロトコルなどにより、取引サーバ１０２と通信する。
【００３５】
図３は、取引サーバ１０２のハードウェア構成の概要ブロック図である。図３に示すように、クライアント・コンピュータと通信するためのインターネット１０４と、スマート・フォンと通信するためのパケット通信網１０８が、取引サーバ１０２の通信インターフェース３０２に接続される。通信インターフェース３０２はさらに、バス３０４に接続され、バス３０４には、ＣＰＵ３０６、主記憶（ＲＡＭ）３０８、及びハードディスク・ドライブ（ＨＤＤ）３１０が接続されている。
【００３６】
図示しないが、取引サーバ１０２にはさらに、キーボード、マウス、及びディスプレイが接続され、これらによって、取引サーバ１０２全体の管理やメンテナンス作業を行うようにしてもよい。
【００３７】
取引サーバ１０２のハードディスク・ドライブ３１０には、オペレーティング・システム、クライアント・コンピュータ１０６ａ、１０６ｂ・・・１０６ｚのログイン管理のための、ユーザＩＤとパスワードの対応テーブルが保存されている。ハードディスク・ドライブ３１０にはさらに、取引サーバ１０２を取引サーバとして機能させるためのWebSphere(R)などのソフトウェアが保存され、取引サーバ１０２の立ち上げ時に、主記憶３０８にロードされて、動作する。これによって、クライアント・コンピュータ１０６ａ、１０６ｂ・・・１０６ｚが、ＴＣＰ／ＩＰのプロトコルで、取引サーバ１０２にアクセスすることが可能となる。
【００３８】
また、図示しないが、取引サーバ１０２のハードディスク・ドライブ３１０には、パケット通信網１０８を介してスマート・フォンと通信するための通信モジュールも格納されている。
【００３９】
ハードディスク・ドライブ３１０にはさらに、図5の機能ブロック図に関連して後述するメイン・プログラム５０２、通信モジュール５０４、ユーザ情報データ５０６、乱数生成ルーチン５０８、ハッシュ関数ルーチン５１０、コード変換ルーチン５１２、ユーザ登録ルーチン５１４及び取引処理ルーチン５１６が格納されている。これらのモジュールまたはルーチンは、C、C++、C#、Java(R)、Python、Rubyなどの既存の任意のプログラミング言語で作成することができる。
【００４０】
尚、上記取引サーバ１０２として、インターナョナル・ビジネス・マシーンズ・コーポレーションから購入可能な、ＩＢＭ（インターナョナル・ビジネス・マシーンズ・コーポレーションの商標）System X、System i、System pなどの機種のサーバを使うことができる。その際、使用可能なオペレーティング・システムは、AIX(インターナョナル・ビジネス・マシーンズ・コーポレーションの商標)、UNIX(The Open Groupの商標)、Linux(Linus Torvaldsの商標)、Windows(商標)2008 Serverなどがあり、これには限定されず、任意のオペレーティング・システムで本発明の機能を実装することができる。
【００４１】
図４は、スマート・フォン１１０ａ、・・・１１０ｋ(以下、スマート・フォン１１０と総称する)のハードウェアのブロック図である。図４において、バス４０２には、ＣＰＵ４０４、ＲＡＭ４０６、フラッシュ・メモリ４０８、及び通話モジュール４１０が接続されている。ＣＰＵ４０４は、クアルコム、NVIDIA、ARMなどから提供されているものである。
【００４２】
バス４０２にはさらに、通信モジュール４１２、ディスプレイ４１６、タッチパネル・インターフェース４１８、カメラ４２４、及びバッテリ制御モジュール４２６が接続されている。
【００４３】
通信モジュール４１２は、アンテナ４１４と基地局(図示しない)を含むパケット通信網１０８を介して、取引サーバ１０２と通信し、取引サーバ１０２にメッセージやデータを送ったり、取引サーバ１０２からファイルやアプリケーション・プログラムを受信したりする機能をもつ。
【００４４】
スマート・フォン１１０は、図示しないが、固有の識別IDの情報を含む、SIMカードをもつ。
【００４５】
フラッシュ・メモリ４０８には、オペレーティング・システムや、ブラウザを含む、その他のアプリケーション・プログラムが格納されている。スマート・フォンの代表的なオペレーティング・システムとして、Appleから提供されているiOSと、Open Handset Allianceから提供されているAndroidがあるが、本発明は、任意のオペレーティング・システムを導入されたスマート・フォンに適用可能である。
【００４６】
ディスプレイ４１６は、ブラウザその他のアプリケーション・プログラムによる画面を表示する機能をもつ。タッチパネル・インターフェース４１８は、ディスプレイ４１６上の指の動きを検出して、スクロールやイメージの拡大・縮小等を行う機能をもつ。
【００４７】
カメラ４２４は、ディジタル的に風景や人物などを撮影する機能、及び二次元バーコードを読み取る機能をもつ。読み取られた二次元バーコードは、別途のモジュールで復号される。
【００４８】
図5は、取引サーバ１０２における、機能構成のブロック図である。全体の処理を統合するためのメイン・プログラム５０２は、通信モジュール５０４、ユーザ情報データ５０６、乱数生成ルーチン５０８、ハッシュ関数ルーチン５１０、コード変換ルーチン５１２、ユーザ登録ルーチン５１４及び取引処理ルーチン５１６を適宜呼び出して処理を行う。
【００４９】
通信モジュール５０４は、クライアント・コンピュータ１０６ａ、１０６ｂ・・・１０６ｚや、スマート・フォン１１０ａ、・・・１１０ｋと、サーバ１０２との間でデータをやりとりする機能を行う。
【００５０】
ユーザ情報データ５０６は、クライアント・コンピュータ１０６ａ、１０６ｂ・・・１０６ｚや、スマート・フォン１１０ａ、・・・１１０ｋのユーザの名前、端末ID、パスワード、口座番号、などのデータを保管し、これらの情報は適宜ハッシュ関数ルーチン５１０、コード変換ルーチン５１２、及び取引処理ルーチン５１６などから利用されるとともに、ユーザ登録ルーチン５１４によってデータを追加あるいは更新される。特にユーザ情報データ５０６は、下記のような、名前、口座番号、端末ID、秘密情報をユーザ毎に格納するユーザ登録情報テーブルを有する。
【表１】
2014106593.tif 000003
【００５１】
乱数生成ルーチン５０８は、既知の任意のアルゴリズムで乱数を生成する機能をもち、この乱数は、ユーザ登録情報テーブルの秘密情報として提供されたり、ハッシュ関数ルーチン５１０の引数として提供されたりする。
【００５２】
ハッシュ関数ルーチン５１０は、これには限定されないが、SHA-1、SHA-2などの既存のハッシュ・アルゴリズムを実装してハッシュ値を与える機能をもつ。この実施例では特に、金額、口座、秘密情報、乱数などを値を引数にして、送金確認コードを生成するために使用される。特に好適には、このハッシュ関数は、秘密情報をキーとする、Keyed Hashである。
【００５３】
コード変換ルーチン５１２は、送金確認コード、金額、口座、及び乱数の情報を使用して、二次元バーコードのデータを生成する機能をもつ。
【００５４】
ユーザ登録ルーチン５１４は、クライアント・コンピュータ１０６ａ、１０６ｂ・・・１０６ｚや、スマート・フォン１１０ａ、・・・１１０ｋを介した、サーバ１０２へのユーザのアクセスに応答して、ユーザ登録情報テーブルへのエントリの追加など、ユーザ情報データ５０６へのユーザ情報の追加を行う機能をもつ。
【００５５】
取引処理ルーチン５１６は、ユーザの認証や、認証の結果に基づき送金処理などの取引を実行する機能を有する。
【実施例１】
【００５６】
次に、図６を参照して、本発明の第１の実施例の処理の概要を説明する。この説明で使用されるのは、取引サーバ１０２と、クライアント・コンピュータ１０６と、スマート・フォン１１０と、サーバ６０２である。クライアント・コンピュータ１０６は、図１に示すクライアント・コンピュータ１０６ａ、１０６ｂ・・・１０６ｚのどれかであるが、ここでは総称的にクライアント・コンピュータ１０６と呼ぶことにする。スマート・フォン１１０も、図１に示すスマート・フォン１１０ａ、１１０ｂ・・・１１０ｋのどれかであり、スマート・フォン１１０と総称的に呼ぶことにする。サーバ６０２は、図１には示されていないが、スマート・フォン用のアプリケーションを配信するＷｅｂサーバであり、インターネット１０４に接続されている。一般的には、サーバ６０２は、取引サーバ１０２とは物理的に別のサーバであるが、取引サーバ１０２を、サーバ６０２の代わりにアプリケーション配信用に使用することもできる。
【００５７】
図６において、最初のステップ(1)は、スマート・フォン１１０のユーザが、サーバ６０２にアクセスして、アプリケーションをダウンロードし、適宜取引サーバ１０２にもアクセスして、スマート・フォン１１０上でアプリケーションをセットアップすることである。
【００５８】
次のステップ(2)では、スマート・フォン１１０のユーザが、自分の管理または所有に係るクライアント・コンピュータ１０６のＷｅｂブラウザを使って、取引サーバ１０２にアクセスし、オンライン・バンキング取引として、所定口座に意図した金額を送金処理する。
【００５９】
次のステップ(3)では、取引サーバ１０２が、この段階ではまだオンライン・バンキング取引を完了させず、スマート・フォン１１０のユーザの秘密情報と、送金先の口座番号、送金金額などのオンライン・バンキング取引情報を含むハッシュ値でコード化した二次元バーコード情報をクライアント・コンピュータ１０６に送る。これに応答して、クライアント・コンピュータ１０６は、二次元バーコード情報をそのディスプレイに表示する。
【００６０】
次のステップ(4)では、スマート・フォン１１０のユーザが、スマート・フォン１１０カメラ機能を使って、クライアント・コンピュータ１０６のディスプレイに表示された二次元バーコード情報を読み取る。スマート・フォン１１０に導入されているアプリケーションは、読み取った二次元バーコード情報をデコードして、そこから、送金先の口座番号と送金金額の情報を取り出し、スマート・フォン１１０の画面に表示する。
【００６１】
スマート・フォン１１０に導入されているアプリケーションはさらに、保持している秘密情報と、送金先の口座番号と送金金額の情報などにハッシュ関数をほどこし、そこから確認コードを生成し、スマート・フォン１１０の画面に表示する。このハッシュ関数は、図５のハッシュ関数ルーチン５１０と同一の関数である。
【００６２】
スマート・フォン１１０のユーザは、次のステップ(5)で、スマート・フォン１１０の画面に表示されている確認コードを、クライアント・コンピュータ１０６のＷｅｂブラウザに表示されている所定フィールドに打ち込み、好適にはＷｅｂブラウザがEV SSL表示になっていることを確認した後、OKボタンをクリックする。
【００６３】
取引サーバ１０２は、ハッシュ関数ルーチン５１０を呼び出して、スマート・フォン１１０で確認コードが生成されたのと同じ情報と同じハッシュ関数を使い同様に確認コードを生成し、その生成した確認コードと、クライアント・コンピュータ１０６から送られてきた確認コードが一致することを確認したら、オンライン・バンキング取引を実行して完了させる。
【００６４】
次に、図６の(1)で示した、スマート・フォン１１０へのアプリケーションのダウンロード処理について、図７のフローチャートを参照して説明する。図７において、スマート・フォン１１０のユーザは、ステップ７０２で、サーバ６０２上のスマート・フォンのアプリケーション・サイトにアクセスする。
【００６５】
ステップ７０４では、スマート・フォン１１０のユーザは、この発明の処理のために使用されるネットバンク・アプリケーションを探し、見つかると、ステップ７０６で、そのネットバンク・アプリケーションを、スマート・フォン１１０に導入する。
【００６６】
図８は、図７のステップで示すスマート・フォン１１０と、サーバ６０２の間の処理のシーケンスを示す図である。すなわち、図８には、スマート・フォン１１０が、サーバ６０２にアクセスして、ネットバンク・アプリケーションを検索し、サーバ６０２がスマート・フォン１１０に検索結果を返し、スマート・フォン１１０がサーバ６０２に、アプリケーション・ダウンロード要求を出し、それに応答して、サーバ６０２がスマート・フォン１１０にアプリケーションをダウンロードする様子が示されている。
【００６７】
次に、図６の(1)における、スマート・フォン１１０へのアプリケーションのダウンロード処理の続きである、スマート・フォン１１０における、取引サーバ（銀行ホスト）１０２上でのユーザ登録処理を、図９のフローチャートを参照して説明する。この処理は、図５に示す、ユーザ登録ルーチン５１４によって実行される。
【００６８】
図９において、ステップ９０２では、スマート・フォン１１０のユーザは、ネットバンク・アプリケーションから、ユーザ登録処理を実行する。
【００６９】
ステップ９０４では、ネットバンク・アプリケーションが、銀行ホストに接続する。
【００７０】
ステップ９０６では、スマート・フォン１１０のユーザが、例えば、当該銀行から付与されたユーザIDとパスワードを使用して、銀行ホスト１０２にログインする。
【００７１】
ステップ９０８では、銀行ホスト１０２から送られてきた画面に、スマート・フォン１１０のユーザが、ユーザ名、口座番号を入力し、ＯＫボタン（図示しない）をクリックすると、ネットバンク・アプリケーションが、ユーザ名及び口座番号の情報を、スマート・フォン１１０の端末IDとともに、銀行ホスト１０２に送信する。
【００７２】
ステップ９１０では、スマート・フォン１１０が、銀行ホスト１０２から秘密情報を受信する。ステップ９１２でネットバンク・アプリケーションは、秘密情報をデータファイルとして暗号化して保存し、ステップ９１４でユーザ登録処理を終わる。
【００７３】
次に、図１０を参照して、取引サーバ（銀行ホスト）１０２側でのユーザ登録処理を説明する。図１０のステップ１００２では、スマート・フォン１１０のネットバンク・アプリケーションから、銀行ホスト１０２が、ログオン要求を受信する。
【００７４】
ステップ１００４では、銀行ホスト１０２が、スマート・フォン１１０に、ユーザ登録画面を送信する。そして、銀行ホスト１０２は、ステップ１００６で、ユーザのスマート・フォン１１０から、名前、口座番号、端末ＩＤなどの情報を受信する。
【００７５】
ステップ１００８で、銀行ホスト１０２は、ユーザ情報登録テーブルに該当エントリがないかどうか判断し、もしそうなら、ステップ１０１０で、乱数生成ルーチン５０８により秘密情報を生成し、ユーザ情報登録テーブルに格納し、処理を終わる。ユーザ情報登録テーブルに該当エントリがあるなら、銀行ホスト１０２は、ステップ１０１２で、重複登録エラー表示して処理を終わる。
【００７６】
図１１は、銀行ホスト上での、スマート・フォン１１０のユーザ登録処理のシーケンス図である。すなわち、ここでは、スマート・フォン１１０が銀行ホスト１０２にログインし、銀行ホスト１０２がスマート・フォン１１０にユーザ情報を要求し、それに応じてスマート・フォン１１０が銀行ホスト１０２に、名前、口座番号、端末IDを送り、それに応じて銀行ホスト１０２がスマート・フォン１１０に秘密情報を作成し、格納するとともに送って、登録完了することが示されている。
【００７７】
スマート・フォン１１０は、下記のような秘密テーブルに、日時とともに秘密情報を格納する。
【表２】
2014106593.tif 000004
【００７８】
秘密テーブルは、日付とともに、複数の秘密情報のエントリをもつことができる。セキュリティの安全性向上のため、秘密情報は、定期的、あるいは不定期に銀行ホスト１０２からスマート・フォン１１０に提供することができ、好適には、最新の日付の秘密情報が、スマート・フォン１１０で有効とされる。
【００７９】
次に、図１２のフローチャートを参照して、銀行ホストにおけるネットバンク処理について説明する。この処理は、図５に示した、取引処理ルーチン５１４が実行する。
【００８０】
図１２において、銀行ホスト１０２は、ステップ１２０２で、クライアント・コンピュータ１０６から、ログオン要求を受信する。銀行ホスト１０２は、受信したログオン要求のユーザＩＤとパスワードをユーザ情報５０６に保存されている情報と比較し、ユーザＩＤとパスワードの組がユーザ情報５０６に見つかると、ステップ１２０４で、ユーザ認証ＯＫとする。
【００８１】
ユーザ認証ＯＫでないなら、ステップ１２０６で認証エラーとして、処理を終了する。
【００８２】
ユーザ認証ＯＫなら、銀行ホスト１０２は、ステップ１２０８で、クライアント・コンピュータ１０６に送金情報入力画面を送信する。
【００８３】
銀行ホスト１０２は、ステップ１２１０で、クライアント・コンピュータ１０６から送金情報を受信する。銀行ホスト１０２は次に、送金情報がユーザ情報登録テーブルの情報と一致するかどうか確認し、それが一致しないと、ステップ１２１４で、送金エラーとして処理を終了する。
【００８４】
銀行ホスト１０２は、ステップ１２１６で、乱数生成ルーチン５０８で乱数を生成し、それを乱数1と呼ぶことにし、次に、ハッシュ関数ルーチン５１０を呼び出して、H(金額,口座,秘密情報,乱数1)により、送金確認コードを生成する。
【００８５】
銀行ホスト１０２は次に、ステップ１２１８で、送金確認コード、金額、口座、乱数１をビット列に変換し、二次元バーコード（ＱＲコード）に変換する。
【００８６】
銀行ホスト１０２は次に、ステップ１２２０で、ＱＲコードを送信確認画面とともにクライアント・コンピュータ１０６に送信する。その後、銀行ホスト１０２は、ステップ１２２２で、所定の時間以内にクライアント・コンピュータ１０６からユーザ確認コードを受信したかどうかを判断し、もし所定時間以内に受信したかどうかを判断し、そうでないなら、ステップ１２２４で、送金処理エラー表示して、処理を終了する。
【００８７】
一方、銀行ホスト１０２がステップ１２２２で、所定の時間以内にクライアント・コンピュータ１０６からユーザ確認コードを受信したことを確認すると、銀行ホスト１０２は、ステップ１２２６で、ユーザ確認コードを、ユーザ情報登録テーブルの秘密情報を使って確認する。具体的には、ユーザ確認コードは、スマート・フォン１１０が二次元バーコードを読み取って、そこから、金額,口座,乱数1の情報を引き出し、保持している秘密情報を使用して、H(金額,口座,秘密情報,端末ID,乱数1)により生成されたコードが、5867405976740495595767であるとすると、このままでは情報として長すぎるので、例えば、5867405976[740495]595767のような、[]で囲った位置の長さをユーザ確認コードとして使用すると決めておく。すると、銀行ホスト１０２側でも、同じ情報と、同じ関数H()を用いてコードを生成して、その中から同様の位置からユーザ確認コードを取り出し、比較することで、ステップ１２２８で正しいユーザ確認コードであるかどうかが検査される。ユーザ確認コードが不一致であると、ステップ１２３０で、送金処理エラー表示して、処理を終了する。
【００８８】
一方、銀行ホスト１０２は、ステップ１２２８で、クライアント・コンピュータ１０６から受信したユーザ確認コードと、生成したユーザ確認コードが一致することを確認したら、ステップ１２３２で、送信処理を実行して、処理を終わる。
【００８９】
次に、図１３のフローチャートを参照して、クライアント・コンピュータ１０６における、ネット・バンキング処理について説明する。
【００９０】
図１３において、クライアント・コンピュータ１０６のユーザは、ステップ１３０２で、Webブラウザを使用して、銀行ホスト１０２のネットバンク・サイト(例えば、http://www.abcbank.co.jp/login/)にアクセスする。ステップ１３０４で、クライアント・コンピュータ１０６のユーザは、所与のユーザID/パスワードで、ネットバンク・サイトでログインする。この場合のクライアント・コンピュータ１０６における、Webブラウザの画面の例を、図１６に、画面１６０２として示す。
【００９１】
すると、銀行ホスト１０２から、クライアント・コンピュータ１０６のWebブラウザに、ステップ１３０６で、送金画面が送られてくるので、それを受信する。その送金内容を入力するためのメニューは、図１６の領域１６０４として示されている。
【００９２】
ステップ１３０８で、クライアント・コンピュータ１０６のユーザは、領域１６０４に、送金先の銀行名、支店名、口座番号、名義人などの内容を入力し、処理開始ボタン１６０６をクリックする。
【００９３】
すると、銀行名、支店名、口座番号、名義人などの内容が銀行ホスト１０２に送られ、銀行ホスト１０２側では、図１２のステップ１２２０に関して説明したように、送金確認コード、金額、口座、乱数１をビット列に変換し、二次元バーコード（ＱＲコード）を作成して、クライアント・コンピュータ１０６に送ってくる。
【００９４】
クライアント・コンピュータ１０６は、ステップ１３１０で、銀行ホスト１０２から、このＱＲコードを受信し、受信したＱＲコードを、図１６に示すように、ＱＲコード１６０８として表示する。そして、クライアント・コンピュータ１０６は、ステップ１３１２で、一定時間以内にユーザ確認コードの入力があったかどうかを判断する。
【００９５】
図１３のフローチャートには示されていないが、ステップ１３１０の段階で、クライアント・コンピュータ１０６のユーザは、スマート・フォン１１０で、クライアント・コンピュータ１０６の画面に表示されているＱＲコード１６０８を撮影して、このデータをスマート・フォン１１０に取り込む。すると、スマート・フォン１１０のネットバンク・アプリケーションの処理により、図１７に示すように、スマート・フォン１１０の画面に、送金額及び金額の情報１７０２と、ユーザ確認コードの情報１７０４が表示される。すると、スマート・フォン１１０のユーザ（一般的に、クライアント・コンピュータ１０６のユーザでもある）は、ユーザ確認コードの情報１７０４をみて、その情報（この場合、７４０４９５）を、クライアント・コンピュータ１０６の画面のフィールド１６１０に入力し、ＯＫボタン１６１２をクリックする。すると、ステップ１３１２の判断が肯定的になり、ステップ１３１４で、クライアント・コンピュータ１０６は、ユーザ確認コードを銀行ホスト１０２に送る。もし、銀行ホスト１０２がユーザ確認コードが正しいと認証すると、銀行ホスト１０２から、その旨のメッセージがクライアント・コンピュータ１０６に返され、メッセージ１６１４として表示される。
【００９６】
次に、図１４のフローチャートを参照して、スマート・フォン１１０における、ネット・バンキング処理について説明する。
【００９７】
ステップ１４０２で、スマート・フォン１１０のユーザは、アプリケーションを起動して、スマート・フォン１１０に搭載のカメラで、ＱＲコードを撮影する。アプリケーションはステップ１４０４で、撮影したＱＲコードをデコードして、送金確認コード、金額、口座番号、及び乱数1の情報を引き出す。金額、口座の情報は、スマート・フォン１１０のユーザが目視が確認できるように、参照番号１７０４のようにスマート・フォン１１０の画面に表示される。
【００９８】
ステップ１４０６で、スマート・フォン１１０のアプリケーションは、APIで端末IDを取得し、送金確認コードが正しいかどうか確認する。これは、送金確認コード = H(金額,口座番号,秘密情報,乱数1)という計算をスマート・フォン１１０で計算し、ＱＲコードから取り出した送金確認コードと比較することによって行われる。それらが一致すれば認証はOKであるのでステップ１４０８に進み、そうでなければ処理を中止する。
【００９９】
ステップ１４０８で、スマート・フォン１１０のアプリケーションは、ユーザ確認コード = H(金額,口座番号,秘密情報,端末ID,乱数1)により、ユーザ確認コードを生成する。
【０１００】
しかし、ステップ１２２２で既に説明したように、実際に使用するのは、ユーザ確認コードのうちの決まった位置からの決まった長さの一部の値である。よって、アプリケーションは、ステップ１４１０で、ユーザ確認コードのうちの決まった位置からの決まった長さの一部の値を抽出する。
【０１０１】
ステップ１４１２では、スマート・フォン１１０のユーザが、情報１７０２が正しいと確認した後、図１７に示したような、切り出されたユーザ確認コード１７０４を見て、クライアント・コンピュータ１０６の画面のフィールド１６１０に入力して、ＯＫボタン１６１２をクリックすることにより、銀行ホスト１０２に送信する。
【０１０２】
次に、図１２、図１３及び図１４のフローチャートの処理の動作のまとめとして、図１５のシーケンス図を参照して、スマート・フォン１１０、クライアント・コンピュータ１０６及び銀行ホスト１０２の間の処理の時間的流れを説明する。
【０１０３】
図１５において、(1)で、クライアント・コンピュータ１０６が、銀行ホスト１０２にログインする。(2)で、銀行ホスト１０２が、当該ログインを認証し、(3)送金入力画面等をクライアント・コンピュータ１０６に送信する。
【０１０４】
(4)で、クライアント・コンピュータ１０６のユーザが、送金情報を入力し、(5)で、金額、口座番号などの送金情報を、銀行ホスト１０２に送り、銀行ホスト１０２は、(6)で、送金確認コード = H(金額,口座番号,秘密情報,乱数1)により送金確認コードを生成し、(7)で、送金確認コード、金額、口座番号、乱数1の情報を使ってＱＲコードを生成し、(8)で、銀行ホスト１０２は、クライアント・コンピュータ１０６に、ＱＲコードと確認画面を送信し、(9)でクライアント・コンピュータ１０６は、図１６に示すように、ＱＲコードと確認画面を表示する。
【０１０５】
(10)では、スマート・フォン１１０のユーザが、ネットバンク・アプリケーションを起動し、(11)で、スマート・フォン１１０により、クライアント・コンピュータ１０６の画面に表示されているＱＲコード１６０８を撮影する。これにより、(12)で、ＱＲコード１６０８の情報がスマート・フォン１１０に取り込まれる。
【０１０６】
スマート・フォン１１０のネットバンク・アプリケーションは、(13)で、ＱＲコードから、送金確認コード、金額、口座番号、乱数1を抽出し、送金確認コードが正しいかどうか検証する。
【０１０７】
スマート・フォン１１０のネットバンク・アプリケーションは、(14)で、ユーザ確認コード = H(金額,口座番号,秘密情報,端末ID,乱数1)を生成し、(15)で、スマート・フォン１１０のユーザに、金額、口座番号、ユーザ確認コード(の一部)を表示する。ユーザが金額、口座番号の情報が正しいと確認すると、ユーザ確認コード(の一部)を、(16)で、クライアント・コンピュータ１０６の画面のフィールド１６１０に入力する。そして、(17)で、クライアント・コンピュータ１０６の画面のＯＫボタン１６１２をクリックすると、ユーザ確認コード(の一部)が銀行ホスト１０２に送られる。
【０１０８】
銀行ホスト１０２は、(18)で、ユーザ情報テーブルにある情報を使用して、送られたユーザ確認コード(の一部)が正しいかどうかを検証する。
【０１０９】
すなわち、銀行ホスト１０２側では、ユーザのログイン情報に基づき、保持しているユーザ登録情報テーブルを検索し、これから秘密情報を取り出し、銀行ホスト１０２側でも、ユーザ確認コード = H(金額,口座番号,秘密情報,端末ID,乱数1)を生成することで、クライアント・コンピュータ１０６から受信したユーザ確認コードと比較する。
【０１１０】
正しければ(19)で送金処理などを実行する。そして、好適には、クライアント・コンピュータ１０６に、正しく処理が完了したことを通知する。
【実施例２】
【０１１１】
次に、図１８以下を参照して、クライアント・コンピュータ１０６を使わず、スマート・フォン１１０と銀行ホスト１０２だけを使う、別の実施例について説明する。
【０１１２】
図１８において、サーバ６０２は、図１には示されていないが、スマート・フォン用のアプリケーションを配信するＷｅｂサーバであり、インターネット１０４に接続されている。一般的には、サーバ６０２は、取引サーバ１０２とは物理的に別のサーバであるが、取引サーバ１０２を、サーバ６０２の代わりにアプリケーション配信用に使用することもできる。
【０１１３】
図１８において、最初のステップ(1)は、スマート・フォン１１０のユーザが、サーバ６０２にアクセスして、アプリケーションをダウンロードし、適宜取引サーバ１０２にもアクセスして、スマート・フォン１１０上でアプリケーションをセットアップすることである。
【０１１４】
次のステップ(2)では、スマート・フォン１１０のユーザが、スマート・フォン１１０を使って、取引サーバ１０２にアクセスし、オンライン・バンキング取引として、所定口座に意図した金額を送金処理する。
【０１１５】
次のステップ(3)では、取引サーバ１０２が、この段階ではまだオンライン・バンキング取引を完了させず、スマート・フォン１１０のユーザの秘密情報と、送金先の口座番号、送金金額などのオンライン・バンキング取引情報を含むハッシュ値でコード化した情報をスマート・フォン１１０に送る。受信した情報をデコードして、そこから、送金先の口座番号と送金金額の情報を取り出し、スマート・フォン１１０の画面に表示する。スマート・フォン１１０に導入されているアプリケーションはさらに、保持している秘密情報と、送金先の口座番号と送金金額の情報などにハッシュをほどこし、そこから確認コードを生成し、スマート・フォン１１０の内部に保持する。
【０１１６】
スマート・フォン１１０のユーザは、次のステップ(4)で、スマート・フォン１１０に画面に表示されている口座番号と送金金額が正しいと確認すると、OKボタンにタッチする。すると、保持されている確認コードが取引サーバ１０２に送られる。
【０１１７】
取引サーバ１０２は、スマート・フォン１１０で確認コードが生成されたのと同じ情報と同じハッシュ関数を使い同様に確認コードを生成し、その生成した確認コードと、クライアント・コンピュータ１０６から送られてきた確認コードが一致することを確認したら、オンライン・バンキング取引を実行して完了させる。
【０１１８】
次に、図１８の(1)で示した、スマート・フォン１１０へのアプリケーションのダウンロード処理について、図１９のフローチャートを参照して説明する。図１９において、スマート・フォン１１０のユーザは、ステップ１９０２で、サーバ６０２上のスマート・フォンのアプリケーション・サイトにアクセスする。
【０１１９】
ステップ１９０４では、スマート・フォン１１０のユーザは、この発明の処理のために使用されるネットバンク・アプリケーションを探し、見つかると、ステップ１９０６で、そのネットバンク・アプリケーションを、スマート・フォン１１０に導入する。
【０１２０】
図２０は、図１９のステップで示すスマート・フォン１１０と、サーバ６０２の間の処理のシーケンスを示す図である。すなわち、図２０には、スマート・フォン１１０が、サーバ６０２にアクセスして、ネットバンク・アプリケーションを検索し、サーバ６０２がスマート・フォン１１０に検索結果を返し、スマート・フォン１１０がサーバ６０２に、アプリケーション・ダウンロード要求を出し、それに応答して、サーバ６０２がスマート・フォン１１０にアプリケーションをダウンロードする様子が示されている。
【０１２１】
次に、図１８の(1)における、スマート・フォン１１０へのアプリケーションのダウンロード処理の続きである、スマート・フォン１１０における、取引サーバ（銀行ホスト）１０２上でのユーザ登録処理を、図２１のフローチャートを参照して説明する。
【０１２２】
図２１において、ステップ２１０２では、スマート・フォン１１０のユーザは、ネットバンク・アプリケーションから、ユーザ登録処理を実行する。
【０１２３】
ステップ２１０４では、ネットバンク・アプリケーションが、銀行ホストに接続する。
【０１２４】
ステップ２１０６では、スマート・フォン１１０のユーザが、例えば、当該銀行から付与されたユーザIDとパスワードを使用して、銀行ホスト１０２にログインする。
【０１２５】
ステップ２１０８では、銀行ホスト１０２から送られてきた画面に、スマート・フォン１１０のユーザが、ユーザ名、口座番号を入力し、ＯＫボタン（図示しない）をクリックすると、ネットバンク・アプリケーションが、ユーザ名及び口座番号の情報を、スマート・フォン１１０の端末IDとともに、銀行ホスト１０２に送信する。
【０１２６】
ステップ２１１０では、スマート・フォン１１０が、銀行ホスト１０２から秘密情報を受信する。ステップ２１１２でネットバンク・アプリケーションは、秘密情報をデータファイルとして暗号化して保存し、ステップ２１１４でユーザ登録処理を終わる。
【０１２７】
次に、図２２を参照して、取引サーバ（銀行ホスト）１０２側でのユーザ登録処理を説明する。この処理は、図５に示す、ユーザ登録ルーチン５１４によって実行される。ステップ２２０２では、スマート・フォン１１０のネットバンク・アプリケーションから、銀行ホスト１０２が、ログオン要求を受信する。
【０１２８】
銀行ホスト１０２は、ステップ２２０４で、ログオン要求で送られてきた、ユーザＩＤとパスワードにより、ユーザ認証ＯＫかどうか判断する。ユーザ認証ＯＫでないなら、銀行ホスト１０２は、ステップ２２０６で、認証エラーとして処理を終わる。
【０１２９】
ステップ２２０４でユーザ認証ＯＫと判断すると、ステップ２２０８で、銀行ホスト１０２が、スマート・フォン１１０に、ユーザ登録画面を送信する。そして、銀行ホスト１０２は、ステップ２２１０で、ユーザのスマート・フォン１１０から、名前、口座番号、端末ＩＤなどの情報を受信する。
【０１３０】
ステップ２２１２で、銀行ホスト１０２は、ユーザ情報登録テーブルに該当エントリがないかどうか判断し、もしそうなら、ステップ２２１４で、乱数生成ルーチン５０８により秘密情報を生成し、ユーザ情報登録テーブルに格納し、処理を終わる。ユーザ情報登録テーブルに該当エントリがあるなら、銀行ホスト１０２は、ステップ２２１６で、重複登録エラー表示して処理を終わる。
【０１３１】
図２３は、銀行ホスト上での、スマート・フォン１１０のユーザ登録処理のシーケンス図である。すなわち、ここでは、スマート・フォン１１０が銀行ホスト１０２にログインし、銀行ホスト１０２がスマート・フォン１１０にユーザ情報を要求し、それに応じてスマート・フォン１１０が銀行ホスト１０２に、名前、口座番号、端末IDを送り、それに応じて銀行ホスト１０２がスマート・フォン１１０に秘密情報を送信し、格納するとともに送って、登録完了することが示されている。
【０１３２】
図２４は、銀行ホスト上でのネット・バンキング処理のフローチャートを示す図である。この処理は、図５に示した、取引処理ルーチン５１４が実行する。図２４において、ステップ２４０２では、銀行ホスト１０２は、スマート・フォン１１０のネットバンク・アプリケーションから、送金メニューにログオン要求を受信する。
【０１３３】
銀行ホスト１０２は、ステップ２４０４で、ログオン要求で送られてきた、ユーザＩＤとパスワードにより、ユーザ認証ＯＫかどうか判断する。ユーザ認証ＯＫでないなら、銀行ホスト１０２は、ステップ２４０６で、認証エラーとして処理を終わる。
【０１３４】
ユーザ認証ＯＫであるなら、銀行ホスト１０２は、ステップ２４０８で、スマート・フォン１１０に、例えば、図２７の参照番号２７０２で示すような送金情報入力画面を送信する。
【０１３５】
銀行ホスト１０２は、ステップ２４１０で、送金情報をスマート・フォン１１０から受信する。銀行ホスト１０２は、ステップ２４１２で更に、金額、口座番号、乱数2、ユーザ確認コードを受信する。
【０１３６】
銀行ホスト１０２は、ステップ２４１４で、受信した金額、口座番号、乱数2と、スマート・フォン１１０用に保持している秘密情報、端末IDから、ユーザ確認コードを生成し、スマート・フォン１１０から受信したユーザ確認コードと比較し、それらが一致するなら、ステップ２４１６で送金処理を実行し、そうでなければ、ステップ２４１８で送信エラーを表示して処理を終わる。
【０１３７】
図２５は、スマート・フォン１１０上でのネット・バンキング処理のフローチャートを示す図である。ステップ２５０２では、スマート・フォン１１０のユーザは、ネット・バンキング・アプリケーションを起動して、送金メニューを選択する。
【０１３８】
ステップ２５０４では、ネット・バンキング・アプリケーションは、銀行ホストに接続する。
【０１３９】
ステップ２５０６では、スマート・フォン１１０のユーザは、ネット・バンキング・アプリケーション上で、ユーザIDとパスワードを使用して、ログインする。
【０１４０】
これに応答して、銀行ホストからスマート・フォン１１０に、ステップ２５０８で送金画面が送られてくるので、スマート・フォン１１０はそれを受信して、図２７の領域２７０２のように表示する。
【０１４１】
ステップ２５１０で、スマート・フォン１１０のユーザが、送金画面に入力すると、確認用の送金先口座番号と、金額が、領域２７０４に表示される。ステップ２５１０ではさらに、ネット・バンキング・アプリケーションが、乱数2を生成する。
【０１４２】
ネット・バンキング・アプリケーションはステップ２５１２で、ユーザ確認コード = H(金額,口座番号,秘密情報,端末ID,乱数2)を生成する。
【０１４３】
スマート・フォン１１０のユーザが、領域２７０４の確認データを確認してOKであることを確認し、処理続行２７０２をタッチすると、ネット・バンキング・アプリケーションはステップ２５１４で、金額、口座番号、乱数2、ユーザ確認コードを銀行ホスト１０２に送る。なお、領域２７０４の確認データがOKでないなら、キャンセル２７０８をタッチして、処理をキャンセルする。
【０１４４】
ステップ２５１４で銀行ホスト１０２に送信した金額、口座番号、乱数2、ユーザ確認コードを用いて、図２４のステップ２４１４でユーザ確認コードが正しいことを確認すると、銀行ホスト１０２がステップ２４１６で送金処理を実行し、そのことの応答を受け取ると、スマート・フォン１１０には、そのことを示すメッセージ２７１０が表示される。
【０１４５】
次に、図２４、及び図２５のフローチャートの処理の動作のまとめとして、図２６のシーケンス図を参照して、スマート・フォン１１０及び銀行ホスト１０２の間の処理の時間的流れを説明する。
【０１４６】
図２６において、(1)で、スマート・フォン１１０のユーザがネットバンク・アプリケーションを起動し、(2)で、スマート・フォン１１０が、銀行ホスト１０２にログインする。(3)で、銀行ホスト１０２が、当該ログインを認証し、(4)送金入力画面等をスマート・フォン１１０に送信する。
【０１４７】
(5)でスマート・フォン１１０のユーザが、銀行ホスト１０２から受信した送金入力画面２７０２(図２７)に、送金情報を入力する。所定の送金情報確定動作に応答して、ネットバンク・アプリケーションは、(6)で確認画面２７０４を表示する。
【０１４８】
(7)でスマート・フォン１１０のユーザが、確認画面２７０４の送金内容を見て、問題ないか確認し、処理続行２７０６をタッチすると、(8)でネットバンク・アプリケーションは、乱数2を生成してからユーザ確認コード = H(金額,口座番号,秘密情報,端末ID,乱数2)を生成し、(9)でユーザ確認コード、金額、口座番号、乱数2を銀行ホスト１０２に送る。
【０１４９】
銀行ホスト１０２側では、ユーザのログイン情報に基づき、保持しているユーザ登録情報テーブルを検索し、これから秘密情報を取り出し、銀行ホスト１０２側でも、ユーザ確認コード = H(金額,口座番号,秘密情報,端末ID,乱数2)を生成することで、スマート・フォン１１０から受信したユーザ確認コードと比較する。
【０１５０】
そして、それらが一致すれば検証が正しいとして、(11)で送金処理を実行し、送金処理が完了したことをスマート・フォン１１０に通知して、処理を終了する。
【０１５１】
以上、特定のハードウェアとソフトウェアの組み合わせで構築された例で説明してきたが、本発明は特定のプラットフォームに限定されず、任意のハードウェア、オペレーティング・システム、プログラミング処理系、あるいはネットワーク環境の下で実現可能である。
【０１５２】
また、モバイル・デバイスとして、スマート・フォンを使用した例で説明してきたが、通信機能と、二次元バーコードを読み取ってデコードする機能をもつ、通常の携帯端末などの任意のモバイル・デバイスが使用可能である。
【０１５３】
さらに、上記で説明した第１の実施例では、二次元バーコードへのコード化を、銀行端末で行うようにしているが、二次元バーコードへのコード化のもとになる情報をクライアント・コンピュータに送り、クライアント・コンピュータ側で二次元バーコードへのコード化を行って、画面に表示するようにしてもよい。
【０１５４】
また、第１の実施例で、二次元バーコードを読み取るのは、スマート・フォンでなく、二次元バーコードのリーダーを備えた別のクライアント・コンピュータであってもよい。
【０１５５】
さらに、第２の実施例で、スマート・フォンの代わりにクライアント・コンピュータを使用してもよいし、スマート・フォンから銀行ホストに、口座番号と送金額の情報は送らなくて、ユーザ確認コードと、乱数の情報だけでもよい。それだけでも、銀行ホスト側に口座番号と送金額の情報はあるので、銀行ホスト側で、対照のためにユーザ確認コードを生成することができる。
【０１５６】
さらに、この発明の技法は、オンライン・バンキングだけでなく、官庁へのオンライン申請手続きなど、セキュアな取り扱いを要する任意のトランザクションに適用可能である。
【符号の説明】
【０１５７】
１０２・・・取引サーバ(銀行ホスト)
１０６・・・クライアント・コンピュータ
１１０・・・スマート・フォン
５０６・・・ユーザ情報データ
５０８・・・乱数生成ルーチン
５１０・・・ハッシュ関数ルーチン
５１２・・・コード変換ルーチン
５１４・・・ユーザ登録ルーチン
５１６・・・取引処理ルーチン
【図１】
2014106593.tif 000005
【図２】
2014106593.tif 000006
【図３】
2014106593.tif 000007
【図４】
2014106593.tif 000008
【図５】
2014106593.tif 000009
【図６】
2014106593.tif 000010
【図７】
2014106593.tif 000011
【図８】
2014106593.tif 000012
【図９】
2014106593.tif 000013
【図１０】
2014106593.tif 000014
【図１１】
2014106593.tif 000015
【図１２】
2014106593.tif 000016
【図１３】
2014106593.tif 000017
【図１４】
2014106593.tif 000018
【図１５】
2014106593.tif 000019
【図１６】
2014106593.tif 000020
【図１７】
2014106593.tif 000021
【図１８】
2014106593.tif 000022
【図１９】
2014106593.tif 000023
【図２０】
2014106593.tif 000024
【図２１】
2014106593.tif 000025
【図２２】
2014106593.tif 000026
【図２３】
2014106593.tif 000027
【図２４】
2014106593.tif 000028
【図２５】
2014106593.tif 000029
【図２６】
2014106593.tif 000030
【図２７】
2014106593.tif 000031