【文献】
山口晃,金融取引における脅威「MITB」(マン・イン・ザ・ブラウザ)への最新対策 〜HP IceWall SSO OTPソリューション〜,第4回 クラウド時代のソリューション紹介セミナー 目的達成まで手法を変化させ続ける攻撃側に耐えられるのか?,日本ヒューレット・パッカード株式会社,2013年 7月18日,p.1-p.42,URL,http://h50146.www5.hp.com/services/ci/seminars/cloud/20130718/pdfs/5_MITB.pdf
(58)【調査した分野】(Int.Cl.,DB名)
前記送金依頼に含まれる前記承認パスワードと、送金システムによって生成される照合用承認パスワードとが照合されることにより、前記送金依頼が正しい依頼かどうかが判定され、正しい依頼と判定された場合に、送金が実行される、請求項1に記載の方法。
前記送金システムは、前記送金システム内に格納されているユーザごとに予め決定された識別子と、ユーザごとに定められた前記アルゴリズムにしたがって前記生成されたサインコードから生成されるワンタイムパスワードと、を組み合わせて前記照合用承認パスワードを生成する、請求項2に記載の方法。
【背景技術】
【0002】
企業および個人は、銀行などの金融機関に依頼して送金を行うことができる。送金依頼を受けた銀行は、依頼人によって指定された受取人に対して指定された金額を送金する。近年、送金を安全に行うための手法が知られている。一例を挙げると、ある銀行は、送金する時に、トークンによって生成される「ワンタイムパスワード(OTP)」を使用することによって送金処理の安全性を高めている。「ワンタイムパスワード」は、一度限りしか使えないパスワードを生成することにより、従来のパスワード認証方式の弱点を克服した認証方式である。
【0003】
図1は、インターネットバンキングシステム20におけるワンタイムパスワードを使用した送金方法を例示する。送金人は、クライアント装置10を用いてインターネットバンキングシステム20にアクセスした後、画面上で受取人11、送金額12およびOTP13を入力し、OKボタン14を押すことにより送金することができる。送金人は、OTPを生成するトークン16によって生成されたOTPをOTPフィールド13に入力する。
【0004】
トークン16は、コンピューターネットワーク上でデジタル認証を行うための小型デバイスである(特許文献1参照)。トークンは、認証トークンまたはセキュリティトークンと呼ばれることもある。仮に、トークン16によって生成されたパスワードが盗まれたとしても、パスワードは時間によって変更され、有効時間が限られることからトークン16を用いた送金方法はセキュリティ強度が比較的高い方法として知られている。
【0005】
受取人11、送金額12およびOTP13を含む送金依頼は、ネットワーク30を経由して送信され、およびインターネットバンキングシステム20のサーバによって受信される。インターネットバンキングシステム20は、OTP生成部21およびOTP照合部22を備える。OTP生成部21は、トークン16と同期して照合用OTP23を生成することができる。OTP照合部22は、受信されたOTP13および生成された照合用OTP23を照合する(24)ことにより、受信された送金依頼が正しいかどうかを判定することができる。送金依頼が正しいと判定された場合、インターネットバンキングシステム20は、送金依頼に基づいて送金処理を行うことができる。
【0006】
近年、様々なサイバー犯罪(例えば、不正アクセス、オンライン詐欺、コンピュータウィルスなど)が発生していることが知られている。インターネットバンキングシステム20がある特定のコンピュータウィルスに感染した場合、送金依頼情報が改ざんされるといったケースがあり、従来のトークン16を用いたOTPではサイバー犯罪を防げない可能性があることが知られている。
【発明を実施するための形態】
【0014】
本明細書において「クライアント装置」という用語には、例えば、パーソナルコンピュータ、ラップトップ、タブレット型コンピュータ、携帯情報端末(PDA)、ユーザ機器(UE)、移動局、セルラ電話機、スマートフォン、あるいは有線または無線環境において動作可能な他の任意のタイプのデバイスが含まれ得るが、これらには限定されない。
【0015】
本明細書において「送金システム」という用語には、インターネットバンキングシステムの1つまたは複数のサーバおよびコンピュータ装置が含まれうるが、これらには限定されない。送金システムは、クライアント装置のディスプレイに予め定められたアプリケーションの画面を表示させ、およびクライアント装置から送信された送金依頼を受信し、処理することができる。
【0016】
本発明のいくつかの実施形態は、送金を安全に行うために使用されるサインコードを生成する方法およびシステム、並びにサインコードに基づいて生成される承認パスワード(PW)(以下、「承認PW」と呼ぶ)を使用することによって送金を安全に行う方法およびシステムを説明する。承認PWは、本明細書で説明する処理にしたがって生成されるワンタイムパスワード(OTP)である。
【0017】
図2は、本発明に係る例示的なシステム構成の全体図である。このシステムは、クライアント装置100、トークン110、ネットワーク200およびインターネットバンキングシステム300を備える。クライアント装置100およびインターネットバンキングシステム300は、ネットワーク200を介して通信可能に接続される。
【0018】
クライアント装置100は、ネットワーク200を介してインターネットバンキングシステム300にアクセスし、およびインターネットバンキングシステム300との通信に応答して、送金のためのアプリケーション画面を表示することができる。送金情報がアプリケーション画面に入力され、およびOKボタンが押下されると、送金依頼がクライアント装置100からインターネットバンキングシステム300に送信される。送金依頼は、受取人口座情報、送金額の他に、ユーザ識別子および承認PWを含む。承認PWの一部分は、予め定められたアルゴリズムにしたがって生成されたサインコードがトークン110に入力されることにより生成される。
【0019】
インターネットバンキングシステム300は、受信された送金依頼に含まれる承認PWが正しいパスワードであるかどうかを判定することができる。判定の結果、承認PWが正しいパスワードであると判定された場合には、インターネットバンキングシステム300は、受信された送金依頼に基づいて送金処理を行う。
【0020】
図3は、インターネットバンキングシステム300のシステム構成を示す。インターネットバンキングシステム300は、CPU301、RAM302、ROM303、ストレージ304、接続インターフェース305およびネットワークインターフェース306を備える。各コンポーネント301〜306は、バス310を介して相互に通信可能に接続される。
【0021】
CPU301は、デバイスおよび回路のそれぞれを制御し、並びに演算およびデータ処理を行う。RAM302は一時記憶領域であり、CPU301による演算実行時に使用される。ROM303は、種々のプログラムを格納する記憶領域である。ストレージ304は、例えばHDD(Hard Disk Drive)、SSD(Solid State Drive)などにより構成され、様々なデータを格納する。CPU301の制御に基づいて、データがストレージ304から読み取られ、およびデータがストレージ304に書き込まれる。
【0022】
接続インターフェース305は、インターネットバンキングシステム300に種々のデバイスを接続するためのインターフェースである。例えば、接続インターフェース305を介して、ディスプレイ、キーボード、マウス、外部記憶装置等がインターネットバンキングシステム300に接続されることができる。
【0023】
ネットワークインターフェース306は、通信回線を通じてネットワーク200に接続される。そして、ネットワークインターフェース306は、CPU301の制御に基づいてネットワーク200およびインターネットバンキングシステム300の間のデータの入出力を制御する。ネットワークインターフェース306およびネットワーク200の間の接続は、有線接続および無線接続のいずれであってもよい。
【0024】
図4は、インターネットバンキングシステム300によって提供されるアプリケーションの画面遷移の一例を示す。
【0025】
S401にて、クライアント装置100がインターネットバンキングシステム300にアクセスすると、このアクセスに応答して、ログインメニュー500がクライアント装置100のディスプレイに表示される。
図5は、インターネットバンキングシステム300の例示的なログインメニュー500を示す。ログインメニュー500は、カンパニーID501、ユーザID502およびサーバパスワード(PW)503を含む。ユーザは、各フィールド501、502および503にユーザ自身のカンパニーID、ユーザIDおよびサーバPWを入力し、ログインボタン503を押下する。ログインボタン503が押下されるとユーザ認証が行われ、ユーザは、インターネットバンキングシステム300にログインすることができる。クリアボタン504が押下されると、入力されたデータがクリアされる。
【0026】
S402にて、ログインボタン503の押下に応答してクライアント装置100およびインターネットバンキングシステム300の間の通信が行われ、業務選択メニューがクライアント装置100のディスプレイに表示される。ユーザは、インターネットバンキングシステム300によって提供される業務の中から所望の業務(例えば、「送金」)を選択する。選択された業務の情報は、インターネットバンキングシステム300に通信される。
【0027】
S403にて、「送金」業務が選択されたことに応答して、送金情報を入力するための画面がクライアント装置100のディスプレイに表示される。ユーザは、受取人情報(氏名、銀行コード、口座番号、など)、1つまたは複数の通貨の種類および1つまたは複数の送金額を入力する。これらの情報が入力された後、次画面ボタンが押下されると、処理がS404に進む。
【0028】
S404にて、送金を実行するための画面がクライアント装置100のディスプレイに表示される。送金を実行するための画面の一例は、
図6および
図7に示される。S403にて通貨の種類の数が決定されているので、通貨の種類が一つの時は画面600が表示され、通貨の種類が複数の時は画面700が表示される。
【0029】
上記の実施形態は、送金データの作成者と承認者が同一ユーザである例を説明したが、送金データの作成者と承認者が異なるユーザである実施形態が実行されてもよい。そのようなケースでは、S401〜S403の操作を送金データの作成者が行い、その後、所定の権限を持った承認者がS401、S402およびS404の操作を行う。したがって、本発明の実施形態は、
図4に示した一例に特に限定されるものではないことに留意されたい。
【0030】
図6は、クライアント装置100のディスプレイに表示される、単一通貨を送金するための例示的な画面600を示す。
【0031】
画面600は、ユーザID601、承認PW602、OKボタン603、キャンセルボタン604、送金データ605およびサインコード606を含んでいる。ユーザID601は、ログインメニュー500でのユーザ認証の際に使用されたユーザID502を表示する。
【0032】
承認PW602は、第1の承認PW602−1および第2の承認PW602−2から構成される。第1の承認PW602−1は、ユーザごとに予め決定された識別子(PIN:personal identification number)を入力するためのフィールドである。第1の承認PW602−1は、ユーザごとに関連付けられ、およびストレージ304に格納されている。第2の承認PW602−2は、ワンタイムパスワード(OTP)を入力するためのフィールドである。ワンタイムパスワード(OTP)は、サインコード606に基づいて生成される。ワンタイムパスワード(OTP)の生成方法は、
図8を参照しながら、後で説明される。
【0033】
OKボタン603が押下されると送金依頼がインターネットバンキングシステム300に送信される。キャンセルボタン604が押下されると送金依頼が送信されず、前画面に戻る。送金データ605は、明細データの数、送金する通貨の種類および合計金額を含むデータである。送金データ605の“No. of Env.”はシーケンス番号を示し、送金データ605の“No. of Inst.”は明細データの数を示す。
図6は単一通貨を送金する例を示しているので、送金データ605は、ただ1つの通貨の種類を示している。
【0034】
送金を実行するための画面(画面600)が表示される時、サインコード606は、予め定められたアルゴリズムに基づいて計算され、表示される。
図6の例では、サインコード606は「03331234」である。本発明の一実施形態では、サインコード606の第1の部分(「0333」)は、送金データ605の合計金額に基づいて生成される。送金データ605の合計金額は、画面600が表示される時に計算される。
【0035】
サインコード606の第2の部分(「1234」)は、画面600が表示される時、以下の手順によって生成されることが可能である。
(1)業務値、送金データ605の合計金額、送金データ605の明細データの金額、時刻(ミリ秒)、受取人情報(氏名、銀行コード、口座番号、など)および他の任意のデータ項目から選択された一つまたは複数のデータ項目に基づいてハッシュ値が生成される。業務値は、送金などの業務の種類ごとに予め定められている値である(例えば、「送金」=1)。時刻(ミリ秒)は、画面600が表示される時刻であってよい。あるいは、時刻(ミリ秒)は、S403において次画面ボタンが押下された時刻(ミリ秒)であってよい。時刻(ミリ秒)は、画面600が表示される度またはS403において次画面ボタンが押下される度にユーザ情報とともにストレージ304に格納されることが可能である。
(2)生成されたハッシュ値(メッセージダイジェスト)が、1つまたは複数の予め定められた変換処理に従って変換される。
(3)変換後の数値が予め定められたアルゴリズムに基づいて計算され、サインコード606の第2の部分(「1234」)が生成される。
【0036】
図7は、クライアント装置100のディスプレイに表示される、複数通貨を送金するための例示的な画面700を示す。
【0037】
画面700は、ユーザID701、承認PW702、OKボタン703、キャンセルボタン704、複数の送金データ705、総合計706およびサインコード707を含んでいる。ユーザID701は、ユーザ認証の際に使用されたユーザID502を表示する。
【0038】
承認PW702は、第1の承認PW702−1および第2の承認PW702−2から構成される。第1の承認PW702−1は、ユーザごとに予め決定された識別子(PIN)を入力するためのフィールドである。第1の承認PW702−1は、ユーザごとに関連付けられ、およびストレージ304に格納されている。第2の承認PW702−2は、ワンタイムパスワード(OTP)を入力するためのフィールドである。ワンタイムパスワード(OTP)は、サインコード707に基づいて生成される。ワンタイムパスワード(OTP)の生成方法は、
図8を参照しながら、後で説明される。
【0039】
OKボタン703が押下されると送金依頼がインターネットバンキングシステム300に送信される。キャンセルボタン704が押下されると送金依頼が送信されず、前画面に戻る。送金データ705は、複数の通貨の種類ごとの明細データの数、送金対象の通貨の種類、および通貨ごとの合計金額を含むデータである。送金データ705の“No. of Env.”はシーケンス番号を示し、送金データ705の“No. of Inst.”は明細データの数を示す。
図7の例では、日本円(JPY)の“No. of Inst.”フィールドは「2」を表示しているので、日本円(JPY)の送金データの数は2である。
図7は複数通貨を送金する例を示しているので、送金データ705は、複数の通貨の種類を示すことができる。
【0040】
送金を実行するための画面(画面700)が表示される時、サインコード707は、予め定められたアルゴリズムに基づいて計算され、表示される。
図7の例では、サインコード707は「24391234」である。本発明の一実施形態では、サインコード707の第1の部分(「2439」)は、総合計706に基づいて生成される。総合計706は、画面700が表示される時にある特定の時点の為替レートに基づいて計算される。
【0041】
図7の例では、総合計706は米ドルで表示されている。本発明の一実施形態では、総合計706の通貨の種類は、カンパニーID501に基づいて決定されてもよい。本発明の一実施形態では、カンパニーID501は、その一部の文字列により契約会社が存在する国の名前を示すことができる。本発明の他の実施形態では、総合計706の通貨として予め使用可能な通貨の種類がインターネットバンキングシステム300内に登録されており、ユーザは、送金をする前に、登録されている通貨の種類から1つの通貨の種類を選択することができる。
【0042】
再び、
図7を参照すると、サインコード707の第2の部分(「1234」)は、画面700が表示される時、以下の手順によって生成されることが可能である。
(1)業務値、送金データ705の明細データの金額、総合計706、時刻(ミリ秒)、受取人情報(氏名、銀行コード、口座番号、など)および他の任意のデータ項目から選択された一つまたは複数のデータ項目に基づいてハッシュ値が生成される。業務値は、送金などの業務の種類ごとに予め定められている値である(例えば、「送金」=1)。時刻(ミリ秒)は、画面700が表示される時刻であってよい。あるいは、時刻(ミリ秒)は、S403において次画面ボタンが押下された時刻(ミリ秒)であってよい。時刻(ミリ秒)は、画面700が表示される度またはS403において次画面ボタンが押下される度にユーザ情報とともにストレージ304に格納される。
(2)生成されたハッシュ値(メッセージダイジェスト)が、1つまたは複数の予め定められた変換処理に従って変換される。
(3)変換後の数値が予め定められたアルゴリズムに基づいて計算され、サインコード706の第2の部分(「1234」)が生成される。
【0043】
図8は、サインコード606またはサインコード707に基づいてワンタイムパスワード(OTP)を生成する処理フローである。この生成処理では、トークン110が使用される。
【0044】
S801にて、トークン110の開始キーが押下されると、トークン110はOTP生成モードに切り替わる。開始キーは、トークン110のキーのうちの予め定められたキーとすることができる。S802にて、トークン110のキーを用いてサインコード606またはサインコード707が入力される。
【0045】
S803にて、トークン110の生成キーが押下されると、トークン110は、入力されたサインコードに基づいてOTPを生成する。OTPを生成するアルゴリズムは、使用されるトークン110ごとに予め定められている。すなわち、同じ製造者のトークンであったとしても、異なるユーザによって使用されるトークン110のそれぞれは、異なる生成アルゴリズムを有している。ユーザに配布されたトークン110に対応する生成アルゴリズムは、各ユーザに関連づけてインターネットバンキングシステム300内に記憶されている。
【0046】
図6および
図7を再び参照すると、生成されたOTPは、第2の承認PW602−2フィールドまたは第2の承認PW702−2フィールドに入力される。承認PW(第1の承認PWおよび第2の承認PWの組合せ)の入力後、OKボタン603、703が押下されると、送金依頼がクライアント装置100からインターネットバンキングシステム300に送信される。
【0047】
図9は、インターネットバンキングシステム300内で実行される送金処理フローを示す。
【0048】
S901にて、インターネットバンキングシステム300は、クライアント装置100から送金依頼を受信する。送金依頼のデータフォーマットは、カンパニーID501、ユーザID502、承認PW602、702、受取人情報(氏名、銀行コード、口座番号、など)、送金データ605、705(明細データを含む)、総合計706およびサインコード606、707を含むことが可能である。
【0049】
S902にて、インターネットバンキングシステム300は、カンパニーID501およびユーザID502に基づいてストレージ304にアクセスし、カンパニーID501およびユーザID502に関連付けられている第1の承認PWおよび時刻(ミリ秒)を読み出す。上述したように、時刻情報は、画面600、700が表示される度またはS403において次画面ボタンが押下される度にユーザ情報とともにストレージ304に格納されている。
【0050】
S903にて、インターネットバンキングシステム300は、
図6および
図7を参照して説明したアルゴリズムにしたがって、サインコードの第1の部分およびサインコードの第2の部分を生成する。サインコードの第1の部分は、受信された送金データ605または総合計706に基づいて生成される。サインコードの第2の部分は、
図6および
図7において上述した手順(1)〜(3)にしたがってインターネットバンキングシステム300によって生成される。
【0051】
インターネットバンキングシステム300は、各ユーザID502に関連付けられるOTP生成アルゴリズムを有している。上述したように、それぞれのユーザには異なるトークン110が関連付けられており、それぞれのトークン110は、異なるOTP生成アルゴリズムを有している。OTP生成アルゴリズムは、生成されたサインコードの第1の部分および生成されたサインコードの第2の部分から第2の照合用承認PWを生成する。生成された第2の照合用承認PWは、ストレージ304から読み出された第1の照合用承認PWと組み合わされて、照合用承認PWが生成される。
【0052】
インターネットバンキングシステム300は、クライアント装置100から受信された承認PWと、インターネットバンキングシステム300内で生成された照合用承認PWとを照合することによって、受信した送金依頼が正しい依頼であるかどうかを判定する。従来のOTPは、トークン16によって生成されたOTPであったが、本発明のOTP(すなわち、承認PW)は、業務値、送金データ605、705の明細データの金額、総合計706、所定のタイミングの時刻情報、受取人情報(氏名、銀行コード、口座番号、など)および他の任意のデータ項目から選択された一つまたは複数のデータ項目に基づいて、予め定められたアルゴリズムで生成されるため相対的に高い安全性を保つことが可能である。
【0053】
S904にて、正しい依頼であると判定された場合、インターネットバンキングシステム300は、受信した送金依頼にしたがって送金処理を実行する。
【0054】
図10は、インターネットバンキングシステム300の機能ブロック図である。インターネットバンキングシステム300は、画面制御部1001、サインコード生成部1002、照合部1003、送金処理部1004およびストレージ304を備える。
【0055】
画面制御部1001は、特定のイベントの発生に応答して画面の表示を制御し、および送金依頼をクライアント装置100から受信することができる。
図4を参照して説明したように、画面制御部は、特定のイベント(例えば、ボタンの押下)が発生すると、特定の画面を表示することができる。上述したように、特定のイベントの一つが発生した時、すなわち、送金情報入力画面(S403)において次画面ボタンが押下された時に時刻情報(ミリ秒)がストレージ304に格納される。
【0056】
サインコード生成部1002は、送金情報入力画面(S403)において次画面ボタンが押下されると、送金依頼に含まれる送金の合計金額(送金データ605または総合計706)に基づいてサインコードの第1の部分を生成することができる。サインコード生成部1002は、業務値、送金の明細データの金額、送金の総合計、時刻情報、受取人情報から選択された一つまたは複数のデータ項目を使用してハッシュ値を生成し、生成されたハッシュ値に対して予め定められた変換処理および演算処理を行うことによって、サインコードの第2の部分を生成することができる。さらに、サインコード生成部1002は、サインコードの第1の部分およびサインコードの第2の部分を組合せてサインコードを生成することができる。
【0057】
照合部1003は、ストレージ304に予め格納されている承認PWの第1の部分と、ユーザごとに定められたアルゴリズムにしたがってサインコードから生成される承認PWの第2の部分とを組み合わせることによって照合用承認PWを生成することができる。照合部1003は、送金依頼に含まれる承認PWと、照合用承認PWとを照合することにより、送金依頼が正しい依頼かどうかを判定することができる。
【0058】
送金処理部1004は、照合部1003によって送金依頼が正しい依頼であると判定された場合に、送金依頼に基づいて送金を実行することができる。
【0059】
以上、例示的な実施形態を参照しながら本発明の原理を説明したが、本発明の要旨を逸脱することなく、構成および細部において変更する様々な実施形態を実現可能であることを当業者は理解するだろう。すなわち、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。