(57)【要約】  取引は、第１の通信チャンネルを介して取引サーバに送信される１つ以上のメッセージを含む。各取引メッセージは、重要取引データの少なくとも１つの項目を含む。取引を安全に処理する方法は、第１の取引メッセージを第１の通信チャンネルを介して取引サーバに送信するステップ（６０６）を含む。その後、取引検証コードを生成するために重要取引データに基づいて実行される１つ以上の動作を定義するワンタイムセキュリティデータが生成される（６０８）。ワンタイムセキュリティデータ（４０２、４０３）は、第１の通信チャンネルとは機能的に区別される第２の通信チャンネルを介してユーザーに送信される。取引サーバは、第２の通信チャンネルを介したワンタイムセキュリティデータの受信に応答してユーザーによって提供された第１の取引検証コードを含む第２の取引メッセージを第１の通信チャンネルを介して受信する。第２の取引検証コードは、受信された第１の取引メッセージ内に含まれた重要取引データに基づいてワンタイムセキュリティデータによって定義された動作を実行することによって生成され、第１の取引検証コードは、第２の取引検証コードと比較される（６１６）。第１の取引検証コードと第２の取引検証コードとの間の不一致の場合、取引要求は拒否される（６２２）。
2018519562.tif 000002
【特許請求の範囲】
【請求項１】
第１の通信チャンネルを介して取引サーバに送信され、重要取引データの少なくとも１つの項目を含む１つ以上の取引メッセージを含む取引を安全に処理する方法として：
重要取引データの項目を含むユーザーの取引要求に対応する第１の取引メッセージを前記第１の通信チャンネルを介して前記取引サーバによって受信するステップと；
前記第１の取引メッセージの受信に応答して取引検証コードを生成するために、前記重要取引データに基づいて実行される１つ以上の動作を定義するワンタイムセキュリティデータを生成するステップと；
前記第１の通信チャンネルとは機能的に区別される第２の通信チャンネルを介して前記ユーザーに前記ワンタイムセキュリティデータを送信するステップと；
前記第２の通信チャンネルを介した前記ワンタイムセキュリティデータの受信に応答して前記ユーザーによって提供された第１の取引検証コードを含む第２の取引メッセージを前記第１の通信チャンネルを介して前記取引サーバによって受信するステップと；
前記受信された第１の取引メッセージ内に含まれた前記重要取引データに基づいて前記ワンタイムセキュリティデータによって定義された前記動作を実行することによって第２の取引検証コードを生成するステップと；
前記第１の取引検証コードと前記第２の取引検証コードとを比較するステップと；及び
前記第１の取引検証コードと前記第２の取引検証コードとの間の不一致の場合、前記取引要求を拒否するステップと、を含む、方法。
【請求項２】
前記ワンタイムセキュリティデータは、前記重要取引データに関連するシンボルセット内の各シンボルとコードセットからランダムに選択されるコード値との間のマッピングを含むセキュリティマトリックスを含み、前記重要取引データに基づいて実行される前記動作は、前記重要取引データの１つ以上のシンボルを前記マッピングによって定義された関連コード値に代替することによって置換コードを生成することを含む、請求項１に記載の方法。
【請求項３】
前記セキュリティマトリックスは、前記取引の持続期間にのみ有効である、請求項２に記載の方法。
【請求項４】
前記ワンタイムセキュリティデータは、前記取引検証コードを生成するために前記置換コードに対して実行される１つ以上の追加の動作を定義する補足的なセキュリティデータをさらに含む、請求項２に記載の方法。
【請求項５】
前記補足的なセキュリティデータによって定義された前記１つ以上の追加の動作は、前記取引検証コード内に含めるために前記置換コードのシンボルなどのサブセットを選択することを含む、請求項４に記載の方法。
【請求項６】
前記取引検証コードは、前記重要取引データに基づいて前記ワンタイムセキュリティデータによって定義された動作を実行することによって生成されたコードのハッシュから導出される、請求項１に記載の方法。
【請求項７】
前記ワンタイムセキュリティデータは、ユーザーデバイス上で実行するソフトウェアアプリケーションによって処理するために、前記第２の通信チャンネルを介して前記ユーザーデバイスに送信され、前記ソフトウェアアプリケーションは：
前記第２の通信チャンネルを介して前記ワンタイムセキュリティデータを受信することと；
前記ユーザーから、前記ユーザーデバイスのユーザーインターフェースを介して、前記ワンタイムセキュリティデータに定義された動作によって前記取引セキュリティコードの生成のために必要な前記重要取引データを要求及び受信することと；
ユーザーから受信された重要取引データに基づいてワンタイムセキュリティデータによって定義された動作を実行することによって取引検証コードを生成することと；及び
前記生成された取引検証コードを前記ユーザーデバイスの前記ユーザーインターフェースを介して前記ユーザーに提供することと、を実行するように構成される、請求項１に記載の方法。
【請求項８】
実行可能なプログラム命令を含むメモリストアに接続されるプロセッサを含むコンピュータサーバシステムであって、前記実行可能なプログラム命令は、実行されたとき、前記プロセッサが：
第１の通信チャンネルを介してユーザーにアクセス可能であり、前記ユーザーの取引要求に応答して取引を容易にするように構成された安全なサービスポータルを提供することと；
前記第１の通信チャンネルを介して、重要取引データの項目を含む前記ユーザーの取引要求に対応する第１の取引メッセージを受信することに応答して、取引検証コードを生成するために前記重要取引データに基づいて実行される１つ以上の動作を定義するワンタイムセキュリティデータを生成することと；
前記第１の通信チャンネルとは機能的に区別される第２の通信チャンネルを介して前記ユーザーに送信されて来た前記ワンタイムセキュリティデータの受信に応答して、ユーザーによって提供された第１の取引検証コードを含む第２の取引メッセージを第１の通信チャンネルを介して受信することと；
前記受信された第１の取引メッセージ内に含まれた前記重要取引データに基づいて前記ワンタイムセキュリティデータによって定義された前記動作を実行することによって第２の取引検証コードを生成することと；
前記第１の取引検証コードと前記第２の取引検証コードとを比較することと；及び
前記第１の取引検証コードと前記第２の取引検証コードとの間の不一致の場合、前記取引要求を拒否することと、を実行するようにする、コンピュータサーバシステム。
【請求項９】
前記実行可能なプログラム命令は、実行されたとき、前記プロセッサが：
前記ワンタイムセキュリティデータの生成のための要求を、前記ワンタイムセキュリティデータを生成するように構成されるセキュリティシステムに、安全な通信チャンネルを介して送信することによって前記ワンタイムセキュリティデータを生成するようにする、請求項８に記載のコンピュータサーバシステム。
【請求項１０】
前記実行可能なプログラム命令は、実行されたとき、前記プロセッサが、前記第２の取引検証コードを生成するようにし：
前記第１の取引検証コードを、安全な通信チャンネルを介して前記ワンタイムセキュリティデータを生成するように構成されるセキュリティシステムに送信すること；及び
前記第１の取引検証コードと前記受信された第１の取引メッセージ内に含まれた前記重要取引データに基づいて前記ワンタイムセキュリティデータによって定義された前記動作を実行するセキュリティシステムによって生成されている前記第２の取引検証コードとの間の比較結果の表示を含む応答メッセージをセキュリティシステムから安全な通信チャンネルを介して受信することによって、前記第１の取引検証コードと前記第２の取引検証コードとを比較するようにする、請求項８に記載のコンピュータサーバシステム。
【請求項１１】
実行可能なプログラム命令を含むメモリストアに接続されるプロセッサを含むセキュリティシステムであって、前記実行可能なプログラム命令は、実行されたとき、前記プロセッサが：
ワンタイムセキュリティデータの生成のための要求を遠隔プロセッサから安全な通信チャンネルを介して受信することと；
取引検証コードを生成するためにユーザーの取引の重要取引データに基づいて実行される１つ以上の動作を定義するワンタイムセキュリティデータを生成することと；
前記ワンタイムセキュリティデータを含むセキュリティメッセージを、通信バックチャンネルを介して、前記ユーザーのデバイスに送信することと；
前記重要取引データに基づいて前記ユーザーによって生成され、１次通信チャンネルを介して遠隔プロセッサに提供される第１の取引検証コードを前記遠隔プロセッサから前記安全な通信チャンネルを介して受信することと；
前記ユーザーによって前記１次通信チャンネルを介して遠隔プロセッサに送信された取引メッセージ内に含まれた重要取引データに基づいて、前記ワンタイムセキュリティデータによって定義された前記動作を実行することによって第２の取引検証コードを生成することと；
前記第１の取引検証コードと前記第２の取引検証コードとを比較することと、；及び
前記第１の取引検証コードと前記第２の取引検証コードとの間の比較結果の表示を含む応答メッセージを前記安全な通信チャンネルを介して前記遠隔プロセッサに送信することと、を実行するようにする、セキュリティシステム。
【請求項１２】
前記実行可能なプログラム命令は、実行されたとき、前記プロセッサが、前記ワンタイムセキュリティデータを含む前記セキュリティメッセージを、前記遠隔プロセッサを介して、前記ユーザーの前記デバイスに送信させる、請求項１１に記載のセキュリティシステム。
【請求項１３】
実行可能なプログラム命令を含むメモリストアに接続されるプロセッサを含むポータブル演算及び通信デバイスであって、前記実行可能なプログラム命令は、実行されたとき、前記プロセッサが：
取引検証コードを生成するために重要取引データに基づいて実行される１つ以上の動作を定義するワンタイムセキュリティデータを関連する通信チャンネルを介して受信することと；
前記重要取引データを入力しろというユーザーに対する促しを前記ポータブル演算及び通信デバイスのユーザーインターフェースを介してユーザーに提示することと；
前記重要取引データをユーザーから前記ユーザーインターフェースを介して受信することと；
前記重要取引データに基づいて前記ワンタイムセキュリティデータによって定義された前記動作を実行することによって前記取引検証コードを生成することと；及び
前記取引検証コードの人間が可読な表現を、前記ユーザーインターフェースを介して、前記ユーザーに提示することと、を実行するようにする、ポータブル演算及び通信デバイス。
【請求項１４】
前記実行可能なプログラム命令は、実行されたとき、前記プロセッサが、変換された重要取引データのハッシュを演算することを含む方法に従って、前記取引検証コードを生成させる、請求項１３に記載のポータブル演算及び通信デバイス。
【請求項１５】
実行可能なプログラム命令が格納されたコンピュータ可読媒体を含むコンピュータプログラム製品であって、前記実行可能なプログラム命令は、関連する通信チャンネルに接続されるプロセッサによって実行されたとき、前記プロセッサが：
取引検証コードを生成するために重要取引データに基づいて実行される１つ以上の動作を定義するワンタイムセキュリティデータを関連する通信チャンネルを介して受信することと；
前記重要取引データを入力しろというユーザーに対する促しを、ユーザーインターフェースを介して、ユーザーに提示することと；
前記重要取引データを前記ユーザーから前記ユーザーインターフェースを介して受信することと；
前記重要取引データに基づいて前記ワンタイムセキュリティデータによって定義された前記動作を実行することによって前記取引検証コードを生成することと；及び
前記取引検証コードの人間が可読な表現を、前記ユーザーインターフェースを介して、前記ユーザーに提示することと、を実行するようにする、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報セキュリティに関し、より詳細には、インターネットを介して交換される金融取引細目を含むが、これに限定されない、通信ネットワークを介して交換される重要なデータのセキュリティを強化することに関する。
【背景技術】
【０００２】
２要素認証（Ｔｗｏ  Ｆａｃｔｏｒ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ：ＴＦＡ）は、一般的にインターネットを含んだ通信ネットワークを介して実行される通信を認証するために使用される。基本認証において、要求側エンティティ（例えば、ユーザー）は、第２のエンティティ（例えば、銀行のようなサービスプロバイダー）に自分の身元に対する一部の証拠を提示する。ＴＦＡの使用は、事前に承認された要素などの有限リストの中から２つの異なるタイプの証拠、または要素を要求することによって、要求側エンティティがその身元に対する偽りの証拠を提示する可能性を減少させる。通常的に、ＴＦＡは、３つの可能な要素、すなわち、 要求者が知っているもの（例えば、ＰＩＮまたはパスワード）、要求者が持っているもの（例えば、ＡＴＭカードまたは登録された携帯電話）、及びユーザー‘自体である’もの（例えば、指紋または他のバイオメトリック情報）、のうちの２つを提供することを要求側エンティティに要求する。
【０００３】
ＴＦＡの１つの一般的なカテゴリーは、一般に、ＳＭＳメッセージング、自動電話通話、またはユーザーのスマートフォン上で実行する専用アプリケーションを使用して、ユーザーの携帯電話をトークン（ｔｏｋｅｎ）デバイスに変換する。典型的な例は、ユーザーがパーソナルコンピュータまたは他のインターネット可能デバイス上で個人識別情報（例えば、ユーザー名及びパスワード）を使用して銀行のオンラインポータルに署名することができる、インターネットバンキングシステムである。この識別情報は、ＴＦＡスキーム（ｓｃｈｅｍｅ）内の知識因子である。ユーザーが携帯電話番号を自分のオンラインバンキングサービスに事前に登録した場合には、携帯電話が所有因子として機能することができる。一部のこのようなシステムによれば、ユーザーがインターネットバンキングを介して取引（例えば、資金振込み、または代金支払い）の実行を要求するとき、ランダムに生成された検証コードが登録された携帯電話番号にＳＭＳを介して送信され、取引の完了を確認し承認するために、インターネットバンキングインターフェースに入力しなければならない。
【０００４】
前記の実施例において、ＳＭＳメッセージングは、ユーザーとインターネットバンキングポータルとの間の主通信チャンネルと独立的に検証トークンを送信するためのバックチャンネルとして使用される。従って、不正ユーザーは、不正取引を完了するために、真正なユーザーの識別情報だけではなく、真正なユーザーの携帯電話の所有を必要とする。しかしながら、このようなＴＦＡの方法は、主通信チャンネル自体が損傷される攻撃に脆弱であり得る。特に、このような認証技術は、中間子（ｍａｎ−ｉｎ−ｔｈｅ−ｍｉｄｄｌｅ：ＭＩＭ）攻撃及びマン−イン−ザ−ブラウザ（ｍａｎ−ｉｎ−ｔｈｅ−ｂｒｏｗｓｅｒ：ＭＩＢ）攻撃に脆弱であり得る。これらの攻撃が動作するメカニズムが図１ａ、図１ｂ及び図２に示されている。
【０００５】
図１ａのブロック図１００に示されたように、ユーザー１０２は、インターネット１０８を介してインターネットバンキングポータルのような安全なサービスポータル（ｓｅｃｕｒｅ  ｓｅｒｖｉｃｅ  ｐｏｒｔａｌ：ＳＳＰ）１０６にアクセスするため、例えば、デスクトップＰＣ１０４を使用する。ウェブブラウザソフトウェア１１０は、ＰＣ１０４上で実行され、ユーザーにグラフィックインターフェースを提供する。ウェブブラウザ１１０は、一般に、１つ以上の通信ネットワークを介して他のデバイスと情報を交換するために必要な様々な通信プロトコルを実現するネットワークインターフェースソフトウェア（プロトコルスタック）と共に、ローカルネットワークに接続するために必要な物理ハードウェアの両方を含むネットワークインターフェース１１２を介してインターネット１０８にアクセスする。
【０００６】
しかしながら、シナリオ１００において、ユーザーのＰＣ１０４が、例えば、一部形態のマルウェアによって損傷され、ブラウザ１１０がインターネットバンキングポータル１０６に直接接続されず、その代わり不正ＭＩＭサーバ１１４に接続されている。これは、インターネットバンキングポータル１０６の真正なホストネームが不正サーバ１１４のＩＰアドレスにマッピングされるよう、ユーザーが不正サイト１１４へのリダイレクトリンクをクリックするようにユーザーをトリックすることによって、またはドメインネームサービス（ｄｏｍａｉｎ  ｎａｍｅ  ｓｅｒｖｉｃｅ：ＤＮＳ）ザブシステムのようなＰＣ１０４のネットワークインターフェース構成を損傷させることによって達成され得る。
【０００７】
不正サーバ１１４は、ポータル１０６によって提供されたインターネットバンキングウェブサイトの近接した模倣、または正確なコピーであるウェブサイトを提供する。通常的に、ＳＳＬ  ＴＬＳ（すなわち、ＨＴＴＰＳプロトコル）がサーバを認証し、すべての通信を暗号化するために使用されるように、ポータル１０６との安全な接続が要求される。その結果、ユーザー１０２は、不正サーバ１１４によって提供されたデジタル証明書と明らかなドメイン、すなわち、ユーザーのバンキングサービスプロバイダーのものとの間の不一致に関する警告を受信することができる。しかし、多くのユーザーは、このような警告を無視したり、見落としたりすることがある。
【０００８】
このセキュリティレベルさえ、例えば、図１ｂのブロック図１２０に示されたＭＩＢ攻撃によって損傷され得る。ＭＩＢ攻撃において、悪意のあるソフトウェアアプリケーション１２２は、ユーザーのＰＣ１０４に侵入し、それ自体がブラウザインターフェース１１とネットワークインターフェース１１２との間に介在される。ＭＩＢマルウェアは、ブラウザインターフェース１１０に、またはそれから伝送されたすべてのデータに直接アクセスし、これによって、ＰＣ１０４のネットワークインターフェース１１２とインターネットバンキングポータル１０６との間で実行される任意の暗号化及び認証とは独立的に、ユーザー１０２とインターネットバンキングポータル１０６との間で通信される情報を読み取り及び／または修正することができる。
【０００９】
図２は、図１ａ及び図１ｂに示されたＭＩＭまたはＭＩＢシナリオにおける攻撃メカニズムのタイムライン２００を示す。示された例において、ユーザーは、先ず、振込金額‘ａ’及び受取人口座番号‘Ａ’を含むことができる取引細目を入力する２０２。取引要求が送信されるが２０４、ＭＩＭ／ＭＩＢ１１４／１２２が傍受する（ｉｎｔｅｒｃｅｐｔ）。不正サービスは、要求を修正し、例えば、取引金額をより高い値‘ｂ’に、受取人口座を不正口座番号‘Ｂ’に変更する。このような修正された振込み要求は、インターネットバンキングポータル１０６を介して受信され、取引細目が銀行サーバによって検証される２０８。その後、インターネットバンキングポータル１０６は、不正金額‘ｂ’及び受取人口座‘Ｂ’を含む取引細目を含む確認ページを返送する２１０。これらは不正ソフトウェアによって修正され、ユーザー要求金額‘ａ’及び受取人口座‘Ａ’を再挿入し、ブラウザ１１０に送信され２１２、そのディスプレイを更新する２１４。この時点で、ユーザーは、インターネットバンキングポータル１０６に実際に要求された振替が最初に入力された取引要求とは異なっていることに気付かない。
【００１０】
同時に、銀行サーバは、検証コードを生成し２１６、そのコードをＳＭＳメッセージングチャンネルのようなバックチャンネル２１８を介してユーザーの携帯電話に送信する。ユーザーは、検証コードを受信し２２０、ウェブブラウザ１１０によって表示された確認ページに検証コードを入力する２２２。その後、確認コードが送信され２２４、ＭＩＭ／ＭＩＢ１１４／１２２マルウェアによって２２６上に伝えられ、銀行サーバによって受信され、有効性検証される２２８。これは、口座‘Ｂ’への不正取引の金額‘ｂ’が有効性検証及び承認されるようにし、その後、インターネットバンキングポータル１０６は、さらなる取引確認ページ２３０を提供する。マルウェア１１４／１２２は、不正取引を隠すために、再び確認ページ２３２を修正することができる。実際に、精巧なマルウェア１１４／１１２は、資金が不正者の口座‘Ｂ’から引き出されるか、または振込まされ得る時間まで不正取引の発見を遅延させるために、ユーザーに自分のインターネットバンキングセッションにわたって続いて一貫した偽り情報を提示するであろう。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
前記の実施例から理解されるように、損傷された主通信チャンネルに基づいたＭＩＭ、ＭＩＢ、及び他の攻撃に関連する危険を阻止するか、または少なくとも緩和させることができる、改善された取引セキュリティ方法及びシステムが必要である。本発明は、このような改善を提供することに関する。
【課題を解決するための手段】
【００１２】
一つの態様において、本発明は、第１の通信チャンネルを介して取引サーバに送信され、重要取引データの少なくとも１つの項目を含む１つ以上の取引メッセージを含む取引を安全に処理する方法を提供し、前記の方法は：
重要取引データの項目を含むユーザーの取引要求に対応する第１の取引メッセージを第１の通信チャンネルを介して取引サーバによって受信するステップと；
第１の取引メッセージの受信に応答して取引検証コードを生成するために、重要取引データに基づいて実行される１つ以上の動作を定義するワンタイムセキュリティデータを生成するステップと；
第１の通信チャンネルとは機能的に区別される第２の通信チャンネルを介してユーザーに前記ワンタイムセキュリティデータを送信するステップと、
第２の通信チャンネルを介した前記ワンタイムセキュリティデータの受信に応答してユーザーによって提供された第１の取引検証コードを含む第２の取引メッセージを第１の通信チャンネルを介して取引サーバによって受信するステップと；
受信された第１の取引メッセージ内に含まれた重要取引データに基づいてワンタイムセキュリティデータによって定義された動作を実行することによって第２の取引検証コードを生成するステップと；
第１の取引検証コードと第２の取引検証コードとを比較するステップと；及び
第１の取引検証コードと第２の取引検証コードとの間の不一致の場合、取引要求を拒否するステップと、を含む。
【００１３】
有利には、本発明の実施形態は、検証コードが２つの遠隔位置で、例えば、エンドユーザー位置とセキュリティシステム位置から独立的に生成され得る技術的な配置を提供する。検証コードは、第１の通信チャンネルを介した伝送中に重要取引データの任意の修正が、独立的に生成された検証コードにおける不一致として検出され得るように、重要取引データの少なくとも１つの項目に依存する。第２のチャンネルは、検証コードを生成するために使用されるワンタイムセキュリティデータを送信するために使用される。その結果、本発明の実施形態によって提供されたセキュリティを損傷させることには、第１及び第２の通信チャンネルの両方の侵入が必要である。特に、１次取引メッセージが交換される第１のチャンネルを侵入したＭＩＭまたはＭＩＢ攻撃者は、第２のチャンネルに対するアクセスの不在時、宛先銀行口座番号のような変更された重要取引データに対応する正確な検証コードを確実に生成することができない。
【００１４】
本発明の実施形態によれば、ワンタイムセキュリティデータは、重要取引データに関連するシンボルセット内の各シンボルとコードセットからランダムに選択されるコード値との間のマッピングを含むセキュリティマトリックスを含み、これにより、重要取引データに基づいて実行される動作は、重要取引データの１つ以上のシンボルをマッピングによって定義された関連コード値に代替することによって置換コードを生成することを含む。セキュリティマトリックスは、取引の持続期間にのみ有効であり得る。
【００１５】
セキュリティマトリックスマッピングの使用、例えば、コードセット（例えば、大文字、小文字、及び数字の完全なセット）から、シンボルの対応するランダム選択に対して、重要取引データを含むシンボル（例えば、重要データが口座番号である場合、数字‘０’〜‘９’）の使用は、有利には、ユーザーが技術的支援なしに検証コードを生成することができるようにし、これは単に、マトリックスを使用して口座番号の指定された数字を対応するコードシンボルにマッピングすることである。従って、セキュリティデータは、例えば、ＳＭＳメッセージングを介したセルラモバイルネットワークリンクを含む第２のチャンネルを介して送信され得る。
【００１６】
ワンタイムセキュリティデータは、取引検証コードを生成するために置換コードに対して実行される１つ以上の追加の動作を定義する補足的なセキュリティデータをさらに含むことができる。例えば、補足的なセキュリティデータによって定義される１つ以上の追加の動作は、取引検証コード内に含めるために、置換コードのシンボルなどのサブセットを選択することを含むことができる。補足的なセキュリティデータの一例は、検証コードを生成するために使用される口座番号の選択された数字を定義する仕様である。有利には、補足的なセキュリティデータの使用は、変更された重要取引データに対応する正確な検証コードを誘導するか、または推測しようとする際に、第１の通信チャンネルの侵入者に対するチャレンジレベルを高める。
【００１７】
本発明の実施形態において、取引検証コードは、重要取引データに基づいてワンタイムセキュリティデータによって定義された動作を実行することによって生成されるコードのハッシュ（ｈａｓｈ）から誘導され得る。
【００１８】
いくつかの実施形態において、ワンタイムセキュリティデータは、ユーザーデバイス上で実行するソフトウェアアプリケーションによって処理するために、第２の通信チャンネルを介してユーザーデバイスに送信される。ソフトウェアアプリケーションは：
第２の通信チャンネルを介してワンタイムセキュリティデータを受信することと；
ユーザーから、ユーザーデバイスのユーザーインターフェースを介して、ワンタイムセキュリティデータに定義された動作によって取引セキュリティコードの生成のために必要な重要取引データを要求及び受信することと；
ユーザーから受信された重要取引データに基づいてワンタイムセキュリティデータによって定義された動作を実行することによって取引検証コードを生成することと；及び
生成された取引検証コードをユーザーデバイスのユーザーインターフェースを介してユーザーに提供することと、を実行するように構成される。
【００１９】
例えば、ソフトウェアアプリケーション[‘アプリ(ａｐｐ)’]は、スマートデバイス（例えば、ユーザーのスマートフォンまたはタブレット）上で実行するように構成され得る。その後、アプリは、機能的に区別された第２の通信チャンネルを介してセキュリティデータを受信し、ユーザーが重要取引データ（例えば、口座番号）を提供するように促し、取引検証コードを生成し、取引検証コードの人間が可読な表現を表示することができる。従って、アプリの使用から導出される特定の利点は、ユーザーによって入力された重要取引データに基づいて実行される動作が、より複雑になることができ、これにより、有利な技術支援なしにユーザーによって実際に実行され得るより限定された動作などのセットよりも潜在的により安全であることである。さらなる利点は、ヒューマンエラーの発生を減少させる可能性があることである。
【００２０】
別の態様において、本発明は、実行可能なプログラム命令を含むメモリストアに接続されるプロセッサを含むコンピュータサーバシステムを提供し、前記実行可能なプログラム命令は、実行されたとき、プロセッサが：
第１の通信チャンネルを介してユーザーにアクセス可能であり、ユーザーの取引要求に応答して取引を容易にするように構成された安全なサービスポータルを提供することと；
第１の通信チャンネルを介して、重要取引データの項目を含むユーザーの取引要求に対応する第１の取引メッセージを受信することに応答して、取引検証コードを生成するために重要取引データに基づいて実行される１つ以上の動作を定義するワンタイムセキュリティデータを生成することと；
第１の通信チャンネルとは機能的に区別される第２の通信チャンネルを介してユーザーに送信されて来たワンタイムセキュリティデータの受信に応答して、ユーザーによって提供された第１の取引検証コードを含む第２の取引メッセージを第１の通信チャンネルを介して受信することと；
受信された第１の取引メッセージ内に含まれた重要取引データに基づいてワンタイムセキュリティデータによって定義された動作を実行することによって第２の取引検証コードを生成することと；
第１の取引検証コードと第２の取引検証コードとを比較することと；及び
第１の取引検証コードと第２の取引検証コードとの間の不一致の場合、取引要求を拒否することと、を実行するようにする。
【００２１】
本発明のいくつかの実施形態において、前記実行可能なプログラム命令は、実行されたとき、プロセッサが：
ワンタイムセキュリティデータの生成のための要求を安全な通信チャンネルを介して、ワンタイムセキュリティデータを生成するように構成されたセキュリティシステムに送信することによってワンタイムセキュリティデータを生成するようにする。
【００２２】
有利には、セキュリティデータを生成するために別途のセキュリティシステムを使用することは、各サーバシステムにおいて全体セキュリティ機能を複製する必要なく、関連するセキュリティサービスを複数のサーバシステムで使用することができるようにする。また、エンドユーザーは、単一のセキュリティシステムプロバイダーに登録することができ、関連するユーザーの好みを単一のセキュリティシステムプロバイダーに確立することができる。ユーザーの好みは、取引検証コードを生成するために重要取引データに基づいて実行される動作の態様を修正または決定する好みを含むことができる。この方式で、２つの取引が同一のセキュリティデータによって保護される場合であっても、異なるユーザーの好みの適用が異なる取引検証コードを導出することができるという点で、追加的なセキュリティレベルが実現され得る。
【００２３】
いくつかの実施形態において、実行可能なプログラム命令は、実行されたとき、プロセッサが第２の取引検証コードを生成するようにし：
第１の取引検証コードを、安全な通信チャンネルを介してワンタイムセキュリティデータを生成するように構成されるセキュリティシステムに送信すること；及び
第１の取引検証コードと、受信された第１の取引メッセージ内に含まれた重要取引データに基づいてワンタイムセキュリティデータによって定義された動作を実行するセキュリティシステムによって生成されている第２の取引検証コードとの間の比較結果の表示を含む応答メッセージをセキュリティシステムから安全な通信チャンネルを介して受信することによって、第１の取引検証コードと第２の取引検証コードとを比較するようにする。
【００２４】
さらなる態様において、本発明は、実行可能なプログラム命令を含むメモリストアに接続されるプロセッサを含むセキュリティシステムを提供し、前記実行可能なプログラム命令は、実行されたとき、プロセッサが：
ワンタイムセキュリティデータの生成のための要求を遠隔プロセッサから安全な通信チャンネルを介して受信することと；
取引検証コードを生成するためにユーザーの取引の重要取引データに基づいて実行される１つ以上の動作を定義するワンタイムセキュリティデータを生成することと；
ワンタイムセキュリティデータを含むセキュリティメッセージを、通信バックチャンネルを介して、ユーザーのデバイスに送信することと；
重要取引データに基づいてユーザーによって生成され、１次通信チャンネルを介して遠隔プロセッサに提供される第１の取引検証コードを遠隔プロセッサから安全な通信チャンネルを介して受信することと；
ユーザーによって１次通信チャンネルを介して遠隔プロセッサに送信された取引メッセージ内に含まれた重要取引データに基づいて、ワンタイムセキュリティデータによって定義された動作を実行することによって第２の取引検証コードを生成することと；
第１の取引検証コードと第２の取引検証コードとを比較することと；および
第１の取引検証コードと第２の取引検証コードとの間の比較結果の表示を含む応答メッセージを安全な通信チャンネルを介して遠隔プロセッサに送信することと、を実行するようにする。
【００２５】
実行可能なプログラム命令は、実行されたとき、プロセッサが、ワンタイムセキュリティデータを含むセキュリティメッセージを、遠隔プロセッサを介して、ユーザーのデバイスに送信させることができる。
【００２６】
また別の態様において、本発明は、実行可能なプログラム命令を含むメモリストアに接続されるプロセッサを含むポータブル演算及び通信デバイスを提供し、前記実行可能なプログラム命令は、実行されたとき、プロセッサが：
取引検証コードを生成するために重要取引データに基づいて実行される１つ以上の動作を定義するワンタイムセキュリティデータを関連する通信チャンネルを介して受信することと；
重要取引データを入力しろというユーザーに対する促しをポータブル演算及び通信デバイスのユーザーインターフェースを介してユーザーに提示することと；
重要取引データをユーザーからユーザーインターフェースを介して受信することと；
重要取引データに基づいたワンタイムセキュリティデータによって定義された動作を実行することによって取引検証コードを生成することと；及び
取引検証コードの人間が可読な表現を、ユーザーインターフェースを介して、ユーザーに提示することと、を実行するようにする。
【００２７】
実行可能なプログラム命令は、実行されたとき、プロセッサが、変換された重要取引データのハッシュを演算することを含む方法に従って、取引検証コードを生成させることができる。
【００２８】
さらに別の態様において、本発明は、実行可能なプログラム命令が内部に格納されたコンピュータ可読媒体を含むコンピュータプログラム製品を提供し、前記実行可能なプログラム命令は、関連する通信チャンネルに接続されるプロセッサによって実行されたとき、プロセッサが：
取引検証コードを生成するために重要取引データに基づいて実行される１つ以上の動作を定義するワンタイムセキュリティデータを関連する通信チャンネルを介して受信することと；
重要取引データを入力しろというユーザーに対する促しを、ユーザーインターフェースを介して、ユーザーに提示することと；
重要取引データをユーザーからユーザーインターフェースを介して受信することと；
重要取引データに基づいてワンタイムセキュリティデータによって定義された動作を実行することによって取引検証コードを生成することと；及び
取引検証コードの人間が可読な表現を、ユーザーインターフェースを介して、ユーザーに提示することと、を実行するようにする。
【００２９】
様々な適用及び構成と共に、本発明の動作原理に対するさらなる詳細、及びそれらに関連する利点及び長所は、以下のような様々な実施形態の開示内容から理解されるであろう。しかしながら、これらの実施形態は、例として提供され、前記の説明のうちのいずれかの１つに、または添付された特許請求の範囲に定義された本発明の全体範囲を限定しようとするものではない。
【図面の簡単な説明】
【００３０】
本発明の実施形態が、添付図面を参照して説明されるはずであり、ここで、類似の参照番号は類似の特徴部を示す。
【図１】図１ａ及び図１ｂ はそれぞれ、従来技術による中間子（ＭＩＭ）及びマン−イン−ザ−ブラウザ（ＭＩＢ）シナリオを示すブロック図である。
【図２】図２は従来技術によるＭＩＭ／ＭＩＢエクスプロイト（ｅｘｐｌｏｉｔ）に基づいた攻撃のタイムラインを示す図である。
【図３】図３は本発明を実現する例示的なシステムアーキテクチャを示すブロック図である。
【図４】図４は本発明を実現する検証コードの生成及び交換のタイムラインを示す図である。
【図５】図５は安全なサービスポータル（ＳＳＰ）と本発明を実現するセキュリティシステムとの間の通信のタイムラインである。
【図６】図６は本発明を実現する取引セキュリティ方法を示すフローチャートである。
【図７】図７は本発明を実現するスマートデバイスアプリケーションの例示的なスクリーンディスプレイを示す図である。
【図８】図８は安全なサービスプロバイダーと本発明を実現するスマートデバイスアプリケーションとの間の信頼できるバックチャンネルを確立するためのシステムの概路図である。
【発明を実施するための形態】
【００３１】
図３は、本発明を実現するシステム３００を示すブロック図である。インターネットのような公衆通信ネットワーク１０８は、クライアントデバイス３０４と安全なサービスポータル（ＳＳＰ）１０６との間のメッセージングのために使用される。一般的に言えば、クライアントデバイス３０４は、例えば、ウェブブラウザソフトウェア及び／または他の接続されたアプリケーションを使用して、インターネット１０８を介して通信する能力を有する任意の適した演算または処理機器であり得る。同様に、ＳＳＰ１０６を含むシステム３００に示された他の構成要素は、一般的に、１つ以上の処理、演算及び／またはストレージデバイスを含む。本明細書において、‘プロセッサ’、‘コンピュータ’などのような用語は、文脈によって特に要求されない限り、ハードウェアとソフトウェアの組み合わせを含むデバイスまたは装置の様々な可能な実現例を言及するものと理解されるべきである。これは、共同配置または分布され得る協動するハードウェア及びソフトウェアプラットフォームを含み、シングルプロセッサ及びマルチプロセッサデバイス及び装置を含む。ハードウェアは、通常のパーソナルコンピュータアキテクチャーまたは他の汎用ハードウェアプラットフォームを含むことができる。ソフトウェアは、様々なアプリケーション及びサービスプログラムと組み合わせる商用可能なオペレーティングシステムソフトウェアを含むことができる。代替的に、演算または処理プラットフォームは、カスタム（ｃｕｓｔｏｍ）ハードウェア及び／またはソフトウェアアキテクチャーを含むことができる。向上したスケーラビリティのために、演算及び処理システムは、物理ハードウェアリソースがサービス要求に応答して動的に割り当てられ得るようにするクラウド演算プラットフォームを含むことができる。これらの変形例の全部は、本発明の範囲内に属するが、容易な説明及び理解のために、本明細書で説明される例示的な実施形態は、シングルプロセッサ汎用演算プラットフォーム、一般的に利用可能なオペレーティングシステムプラットフォーム、及び／またはデスクトップＰＣ、ノートブックまたはラップトップＰＣ、スマートフォンなどのような広く利用可能な消費者製品に基づく。
【００３２】
本発明の特徴を実現するソフトウェア構成要素は、ソフトウェア工学分野の熟練者に親しいように、任意の適したプログラミング言語、開発環境、または言語と開発環境との組み合わせを使用して開発され得る。例えば、適したソフトウェアは、Ｃプログラミング言語、ジャバ（Ｊａｖａ）プログラミング言語、Ｃ＋＋プログラミング言語、及び／またはジャバスクリプト（ＪａｖａＳｃｒｉｐｔ）、ＨＴＭＬ、ＰＨＰ、ＡＳＰ、ＪＳＰなどのようなネットワークまたはウェブベースサービスの実現に適した様々な言語を使用して開発され得る。これらの例は、限定しようとするものではなく、システム要求事項に従って、他の便利な言語または開発システムが使用され得ることが理解されるであろう。
【００３３】
例示的なシステム３００において、ＳＳＰ１０６は、プロセッサ３１２を含む。プロセッサ３１２は、不揮発性メモリ／ストレージデバイス３１４にインターフェースされるか、そうでなければそれと動作可能に結合される。不揮発性ストレージデバイス３１４は、ハードディスクドライブであることができ、及び／または読み出し専用メモリ（ＲＯＭ）、フラッシュメモリなどのようなソリッド−ステート不揮発性メモリを含むことができる。プロセッサ３１２は、また、ＳＳＰ１０６の動作に関するプログラム命令及び一時データを含むランダムアクセスメモリ（ＲＡＭ）のような揮発性ストレージデバイス３１６にもインターフェースされる。
【００３４】
通常の構成において、ストレージデバイス１１４は、ＳＳＰ１０６の正常動作に関する知られているプログラム及びデータコンテンツを維持する。例えば、ストレージデバイス３１４は、オペレーティングシステムプログラム及びデータだけでなく、ＳＳＰ１０６の意図された機能に必要な他の実行可能なアプリケーションソフトウェアを含むことができる。ストレージデバイス３１４は、プロセッサ３１２によって実行されたとき、本発明による取引セキュリティシステムの一実施形態に関する動作を実行するように、ＳＳＰ１０６に指示するプログラム命令をまた含む。動作中、ストレージデバイス３１４上に保持された命令及びデータは、要求による実行のために揮発性メモリ３１６に転送される。
【００３５】
プロセッサ３１２は、また、通常の方式で通信インターフェース３１８と動作可能に結合される。通信インターフェース３１８は、公衆データ通信ネットワーク１０８に対するアクセスを容易にする。
【００３６】
使用中、揮発性ストレージデバイス３１６は、特に図４及び図５に示されたタイムラインを参照して後述するように、システムの様々な機能要素を含む、本発明の特徴を実現する処理及び動作を実行するように構成されたプログラム命令の対応する本体３２０を含む。
【００３７】
ＳＳＰ１０６は、公衆ネットワーク１０８を介して直接アクセスすることができるように意図されないシステム３００の他の要素と安全に通信するために使用される、プライベートネットワーク３２４に対するアクセスを提供するさらなるネットワークインターフェース３２２をさらに含むことができる。プライベートネットワーク３２４は、公衆ネットワーク１０８と物理的に区別され得るか、または公衆ネットワーク１０８の基盤施設を物理的に使用する仮想プライベートネットワーク（ｖｉｒｔｕａｌ  ｐｒｉｖａｔｅ  ｎｅｔｗｏｒｋ：ＶＰＮ）として実現されることができ、これにより、ネットワークインターフェース３２２は、公衆ネットワークインターフェース３１８とハードウェア構成要素を共有することができる仮想ネットワークインターフェースである。従って、用語‘ネットワークインターフェース’は、本明細書を通して使用される場合、文脈によって特に要求されない限り、１つ以上の対応する物理的または仮想的な通信ネットワークを介して他のデバイスと情報を交換するために必要な様々な通信プロトコルを実現する物理ハードウェア及び／またはネットワークインターフェースソフトウェア（プロトコルスタック）の組み合わせを指すということが理解されるであろう。
【００３８】
システム３００に示されたように、ＳＳＰ１０６は、プライベートネットワーク３２４を介してセキュリティシステム３２６と通信することができる。セキュリティシステム３２６は、また、図３のブロック図内で単純化された形態で示されるサーバプラットフォームである。セキュリティシステム３２６は、さらなる不揮発性メモリ／ストレージデバイス３３０にインターフェースされるか、そうでなければ、それと動作可能に関連付けられるプロセッサ３２８を含む。プロセッサ３２８は、また、セキュリティシステム３２６の動作に関するプログラム命令及び一時データを含む揮発性ストレージデバイス３３２にもインターフェースされる。
【００３９】
プロセッサ３２８は、プライベートネットワーク３２４を介してＳＳＰ１０６と通信することができる通信インターフェース３３４と動作可能に結合される。
【００４０】
使用中、揮発性ストレージデバイス３３２は、特に図５のタイムラインを参照して、以下に説明するシステムの様々な機能要素を含む、本発明の特徴を実現する処理及び動作を実行するように構成されたプログラム命令の対応する本体３３６を含む。
【００４１】
セキュリティシステム３２６の一般的な機能は、ＳＳＰ１０６から要求を受信すること、及びＭＩＭ及びＭＩＢ攻撃に対して強力な検証コードの生成のために使用され得るワンタイムセキュリティデータを生成することである。いくつかの実施形態において、図４を参照して以下でより詳細に説明されるように、ワンタイムセキュリティデータは、検証マトリックスまたはテーブルを含む。
【００４２】
セキュリティシステム３２６は、例えば、不揮発性ストレージデバイス３３０内に、ユーザー口座情報のデータベースを維持する。このユーザーデータベースは、システム３００の各エンドユーザー、すなわち、クライアントアプライアンス３０４を動作させるユーザーに対するレコードを含む。各ユーザーレコードは、固有のユーザー識別子（ＩＤ）、及び関連キーワードまたはパスワードを含む。ユーザーレコードは、セキュリティシステム３２６の使用と、セキュリティシステム３２６によって提供されたサービスを使用するＳＳＰ１０６のようなすべての安全なシステム、デバイス及びサービスの使用に関連するユーザーの好みをまた含む。例えば、ユーザー認証（例えば、安全なログイン）のためにシステム３２６と対応する特徴を有するセキュリティシステムの使用は、２０１４年１０月２１日に許与された、共同に譲渡された米国特許第８，８６９，２５５号に開示されている。
【００４３】
プライベートネットワーク３２４は、また、ネットワーク終端ユニット（ｎｅｔｗｏｒｋ  ｔｅｒｍｉｎａｔｉｏｎ  ｕｎｉｔ：ＮＴＵ）３４０を介して公衆交換電話ネットワーク（ｐｕｂｌｉｃ  ｓｗｉｔｃｈｅｄ  ｔｅｌｅｐｈｏｎｙ  ｎｅｔｗｏｒｋ：ＰＳＴＮ）のような電気通信サービスプロバイダーネットワーク３３８にも接続される。これは、ＳＳＰ１０６、セキュリティシステム３２６、及び／またはプライベートネットワーク３２４に接続された任意の他のシステムがＰＳＴＮ３３８を介してエンドユーザーとの通信に関与することができるようにする。このような通信は、音声電話通話、自動電話通話、及びＳＭＳメッセージングを含むことができる。例示的なシステム３００において、ＰＳＴＮ３３８は、クライアントデバイス３０４を介してＳＳＰ１０６にもアクセスしているエンドユーザーのモバイルデバイス３４４との通信を容易にする、セルラーモバイル基地局３４２に接続されたものと示されている。
【００４４】
従って、システム３００によれば、エンドユーザーは、インターネットバンキングサービスのような安全なサービスを提供することができる、公衆ネットワーク１０８を介したクライアント装置３０４とＳＳＰ１０６との間の１次または主通信チャンネルを有する。さらに、ＰＳＴＮ３３８を介してプライベートネットワーク３２４上の安全なシステムをエンドユーザーデバイス３４４に接続する２次チャンネル（バックチャンネルとも呼ばれる）がある。このバックチャンネルは、公衆ネットワーク１０８を介して主チャンネルに配置された任意のＭＩＭ、ＭＩＢ、または他の損傷エンティティにアクセスできないように、図４を参照してより詳細に説明されるようにワンタイムセキュリティデータ、例えば、セキュリティマトリックスまたはテーブルを送信するために使用され得る。
【００４５】
ここで、図４を参照すると、本発明を実現する検証コード生成及び交換を示すタイムライン４００が示されている。タイムライン４００における送信は、図２の従来技術の実現例２００に示されたように、バックチャンネル送信２１８、及び以下の主チャンネル確認送信２２４、２２６と対応する。
【００４６】
本発明の実施形態によれば、バックチャンネルを介してエンドユーザークライアントデバイスに送信される固定検証コードを生成する代わりに、ＳＳＰ１０６は、ワンタイムセキュリティデータの生成のための要求をセキュリティシステム３２６に発行する。図４に示された例では、ワンタイムセキュリティマトリックスまたはテーブル４０２が生成され、これは、Ｋキーシンボルなど（テーブル４０２の最上段行に示す）のセットとＮコードシンボルなど（テーブル４０２の下段行に示す）の対応するセットとの間のマッピングを含む。このマッピングは、実質的にランダムまたは疑似ランダムであり、ＳＳＰ１０６によって、または例示的なシステム３００内の任意の他のエンティティによって事前に予測されることができない。この例において、ワンタイムセキュリティデータは、また補足的なセキュリティデータ４０３を含み、その目的は後述される。
【００４７】
セキュリティデータ４０２の生成を要求する際に、ＳＳＰ１０６は、セキュリティマトリックス４０２が任意の関連ユーザーの好みに従って、それだけでなく、ＳＳＰ１０６の要求事項に従って生成され得るように、クライアントデバイス３０４の対応するユーザーを識別することができる。ユーザー及び／またはＳＳＰ好みまたは要求事項は、最上段行上のＫキーシンボルなどを構成するシンボルなどの特定のセット、及びテーブル４０２の下段行上のマッピングに使用されるコードシンボルなどの数及び属性のような事項を含むことができる。一般に、ＮはＫよりも小さいか、それと同じか、それより大きいことができ、キーシンボルとコードシンボルとの間のマッピングは、一意である必要がなく、すなわち、コードシンボルは再使用され得る。本発明の実施形態は、対応する検証コード（例えば、後述するように生成された）を傍受することができるＭＩＭまたはＭＩＢ攻撃者がセキュリティマトリックス４０２を傍受せずに対応する不正検証コードを生成することができる可能性を大幅に減少させようとする。
【００４８】
本発明の実施形態によれば、キーシンボルセットは、ユーザーの取引の１つ以上の重要構成要素の要素に対応するように選択される。例えば、インターネットバンキング振込みの場合、受取人口座番号は、ＭＩＭ／ＭＩＢ攻撃者によって不正に改ざんされることができれば、資金が承認されていない口座に振り込まれることができるので重要である。口座番号が‘０’と‘９’との間の桁数からなると仮定すると、このような桁などのセットは、マトリックス４０２の上段行内のキーシンボルセットを含む。次いで、ユーザーは、重要な受取人口座番号の一部またはすべての数字に基づいて検証コードを生成するように要求され得る。コードは、口座番号の各桁を、セキュリティマトリックス４０２の最下段行からの対応するコードシンボルで置換することによって生成される。さらに、補足的なセキュリティデータ４０３は、取引のための検証コードを生成するために使用される受取人口座番号の４桁の数字（７番目、８番目、１０番目及び１１番目）を識別する。
【００４９】
さらに、ユーザーは、セキュリティシステム３２６によって維持される関連ユーザーの好みに従って、検証コードを生成する間に口座数字（すなわち、キーシンボル）及び／またはコードシンボルに対して一部の操作を実行することができる。このような操作及び好みは、以下でより詳細に説明されるはずであるが、本例では、キーシンボルとコードシンボルとの間の直接マッピングの簡単な場合が説明される。
【００５０】
セキュリティマトリックスマッピング４０２がエンドユーザーに送信される正確なフォーマットは重要ではなく、バックチャンネルの属性に依存することができる。例えば、ユーザーデバイス３４４は、グラフィックフォーマットで情報を表示することができ、この場合に、セキュリティマトリックス４０２は、対応するグラフィックフォーマットで送信され得る。代替的に、バックチャンネルがＳＭＳバックチャンネルである場合には、セキュリティマトリックス４０２の表現をテキストフォーマット、例えば、‘０＝Ｘ；１＝ａ；２＝Ｑ；…’などに送信することがより便利であり得る。
【００５１】
セキュリティマトリックス４０２が送信されるフォーマットに関わらず、タイムライン４００は、ワンタイムセキュリティデータ４０２、４０３及び受取人口座番号（３４５−００１  ９１５６７１８２）に従う検証コードの生成を示す。４０４において示したように、対応する検証コードは、口座番号の７番目、８番目、１０番目及び１１番目の桁（‘９’、‘１’、‘６’及び‘７’）をマトリックス４０２内の対応するシンボル、すなわち、‘ｈ’、‘ａ’、Ｍ、‘ｓ’にマッピングすることによって得られた‘ｈａＭｓ’である。この検証コードは、ユーザーによって自分のウェブブラウザ上に提示された確認スクリーンに入力され、主チャンネルを介して送信される４０６。
【００５２】
コードは、通常の実施形態に従って、何らの変更もなく、単純に送信４０８を介してこのコードを通過するＭＩＭ／ＭＩＢ１１４／１２２によって傍受される。しかしながら、ＭＩＭ／ＭＩＢ１１４／１２２が取引を改ざんするために受取人口座番号を事前に修正したので、送信４０６から送信４０８に通過されたコードは、ＳＳＰ１０６によって最初に受信された口座番号と一致しない。従って、ＳＳＰ１０６が検証コード４０４を受信して有効性を検証しようとするとき、この有効性の検証は失敗するはずであり、重要取引情報の不正修正が検出されるであろう。また、ＭＩＭ／ＭＩＢ攻撃者１１４／１２２がセキュリティマトリックスマッピングシステムが使用されたことを気付いた場合であっても、ワンタイムセキュリティデータ４０２、４０３を得るために、バックチャンネルに対するアクセスなしに不正に修正された受取人口座番号と一致させるための検証コードを生成することができない。従って、本発明を実現するシステム及び方法は、図１ａ、図１ｂ及び図２に関連して前記で示されて記述されたように、既存のＭＩＭ／ＭＩＢ攻撃を阻止することができるか、少なくとも大幅に緩和させることができる。
【００５３】
図５は、ＳＳＰ１０６と本発明の実施形態によるセキュリティシステム３２６との間の通信を示すタイムライン５００を示す。タイムライン５００に示した送信は、図４のタイムライン４００に示した交換の前後に生じる。これらの送信は、ＳＳＰ１０６がセキュリティマトリックス４０２を生成するためにセキュリティシステム３２６によって提供されたサービスを活用して、エンドユーザーから再び受信された検証コードを有効性検証することができるようにする。しかし、理解され得るように、セキュリティシステム３２６がＳＳＰ１０６とは別途の遠隔サービスとして実施される必要はない。セキュリティシステム３２６と共に示され、それに関連するすべての機能は、代替的にＳＳＰ１０６の構成要素として実現され得る。しかし、遠隔サービスとしてのセキュリティシステム３２６の実施形態は、全体機能が各場合に複製される必要なく、少なくとも関連するセキュリティサービスが複数のＳＳＰ１０６によって使用され得るようにする利点がある。また、エンドユーザーは、単一のセキュリティシステムプロバイダーに登録し、自分の関連ユーザーの好みをデータベース３３０内に確立した後に、複数のＳＳＰプロバイダーにわたって同一の口座及び好みを使用することができる。
【００５４】
タイムライン５００に示したように、ＳＳＰ１０６が有効性検証を必要とする要求された取引細目を受信したとき、セキュリティシステム３２６に送信される要求５０２を生成する。この要求は、互換可能なワンタイムセキュリティデータを生成するためにセキュリティシステム３２６によって要求される任意の追加情報またはパラメーターを識別することができる。例えば、要求５０２は、セキュリティシステム３２６がデータベース３３０からの任意の関連ユーザーの好みをセキュリティマトリックスの生成に組み込むことができるように、ユーザーの識別を含むことができる。要求５０２は、このような特定の有効性検証要求に特定されるＳＳＰ１０６によって供給された任意のパラメーターをまた含むことができる。例えば、ワンタイムセキュリティデータがセキュリティマトリックスを含む場合、パラメーターは、受取人口座番号に基づいた有効性検証のために‘０’と‘９’の間の桁のみを含むことができるキーシンボルセットの識別を含むことができる。しかし、他の文脈において、検証コードの生成に使用された取引情報は、キーシンボルセットが、例えば、すべてのアルファベット文字及び選択された特殊文字を含めてより大きくなるように、口座名のようなものなどを含むことができる。さらに、要求５０２は、コードシンボルセット、及び／またはコードシンボルセットに使用すべきシンボルなどの数Ｎを定義したパラメーターを含むことができる。
【００５５】
要求５０２の受信時、セキュリティシステム３２６は、対応するセキュリティマトリックスを生成し、そのマトリックスを含む応答５０４が送信される。その後、ＳＳＰ１０６、またはシステム３００の他の構成要素が、応答５０４で返送されたセキュリティマトリックスを使用して、バックチャンネルを介してユーザーデバイス３４４にユーザーに送信されるメッセージを生成するであろう。
【００５６】
その後、ユーザーは、タイムライン４００に示されたように、ＳＳＰ１０６に再送信される検証コード４０４を生成して入力する。その後、ＳＳＰ１０６は、セキュリティシステム３２６に対するさらなる要求５０６を生成する。このさらなる要求５０６は、セキュリティシステム３２６が主チャンネルを介して受信された検証コードを有効性検証し、検証コードが成功的に有効性検証されるか否かを示すさらなる応答５０８を返送するためのことである。セキュリティシステム３２６に送信されたメッセージ５０６は、セキュリティシステム３２６が検証コードを有効性検証するために必要なパラメーターを含むことができる。これらのパラメーターは、ユーザーの識別、返送された検証コード自体、及び検証コードを生成するために使用される関連取引細目、例えば、受取人口座番号、または他の重要情報を含むことができる。その後、セキュリティシステム３２６は、エンドユーザーによって入力され、返送されるべき検証コードを再生性するために、取引細目と共に、応答５０４を介して事前に生成され返送されたワンタイムセキュリティデータのそのレコード、及びデータベース３３０から検索された任意の関連ユーザーの好みを使用する。その後、このように局部的に生成された検証コードは、取引が有効性検証されるか否かを決定するために、要求５０６に含まれたコードと比較され得る。その比較の結果が、応答５０８に返送される。その後、ＳＳＰ１０６は、有効性検証結果５０８によって取引を実行するか否かを決定することができる。
【００５７】
前述したように、本発明のいくつかの実施形態において、ユーザーは、セキュリティシステム３２６に登録されることができ、検証コード４０４を生成するためにキーシンボル及び／またはコードシンボルに対して実行される追加の操作を定義するユーザー口座レコード内に格納された関連ユーザーの好みデータを有することができる。ユーザーに提供されることができ、自分の口座レコード内に格納され得る可能な操作の徹底的でないリストが以下に列挙され、一般に、検証コードを修正するための適した操作は、セキュリティシステム３２６が共同に譲渡された米国特許第８，８６９，２５５号に記述されたような認証（例えば、安全なログイン）サービスを提供するようにまた構成されるときに利用可能な操作のサブセットを含むことができる。実際に、いくつかの実施形態において、セキュリティシステム３２６は、複数の目的のために、例えば、ログインプロセスの一部として、ユーザーを最初に認証し、続いてユーザーが要求した取引を有効性検証するためにＳＳＰ１０６によって使用され得る。この方式で、ＭＩＭ／ＭＩＢ攻撃者１１４／１２２が初期ログインプロセス中にユーザーのパスワードを取得することがまた防止され得る。
【００５８】
ユーザーの好みによって提供され得る操作は、以下を含む：
・ポジティブオフセット（ｐｏｓｉｔｉｖｅ  ｏｆｆｓｅｔ）、すなわち、検証コード４０４を生成する際に各コード値に適用される増分（必要な場合、数字は、９＋１＝０となるようにラップすることができ、文字はＺ＋１＝Ａとなるようにラップすることができる）；
・ネガティブオフセット（ｎｅｇａｔｉｖｅ  ｏｆｆｓｅｔ）、すなわち、各コード値に適用される減分（必要な場合、逆ラッピングが使用され得る）；
・増分がポジティブオフセットのように各コード値に適用されるが、増分自体の大きさは検証コードの各要素によって増加する、増加型ポジティブ増分、またはポジティブ‘クロール（ｃｒａｗｌ）’；
・減分がネガティブオフセットのように各コード値に適用されるが、減分の大きさが検証コードの各要素によって増加する、増加型ネガティブ増分；及び／または
・検証コードを公式化するために使用すべき全体コード内のコード値などのサブセットを識別する、マスク（従って、マスクは、前記実施例で記述された補足的なセキュリティデータ４０３と類似の機能を実行するが、‘取引当たり（ｐｅｒ  ｔｒａｎｓａｃｔｉｏｎ）’基準ではなく。‘ユーザー当たり（ｐｅｒ−ｕｓｅｒ）’基準で実行する）。
【００５９】
ここで、図６を参照すると、前述したタイムライン及び一般的なシステムアーキテクチャに対応する、本発明を実現する取引セキュリティ方法を示すフローチャート６００が示されている。
【００６０】
ステップ６０２において、ユーザーは、ＳＳＰ１０６で認証する。この認証は、ユーザーＩＤ及びパスワードのような識別及び認証情報を使用してＳＳＰ１０６にサインインすることを含むことができる。選択的に、認証プロセスは、米国特許第８，８６９，２５５号に記述されたような方式でセキュリティシステム３２６のサービスを使用することによってより安全になることができる。
【００６１】
ステップ６０４において、ユーザーは、取引を実行することを望み、例えば、インターネットバンキングポータルを介した資金振込みの場合に、受取人口座番号及び取引金額のような重要な細目を含む取引細目を入力する。ステップ６０６において、取引細目は、ＳＳＰ１０６に送信され、その時点で、ＭＩＭ／ＭＩＢ攻撃者１１４／１２２による潜在的な傍受にさらされる。
【００６２】
ステップ６０８において、ワンタイムセキュリティデータが、例えば、ＳＳＰ１０６とセキュリティシステム３２６との間の相互作用５０２，５０４を介して生成される。結果として生じたセキュリティデータは、バックチャンネルを介して送信される。
【００６３】
ステップ６１０において、ＳＳＰ１０６は、ユーザーが検証コードを入力するための機能を含む確認ページを生成してエンドユーザーに提供する。ユーザーは、セキュリティデータ、重要取引細目、及び任意の適用可能なユーザーの好みに従って適切な検証コードを決定し、その後、ステップ６１２でコードを入力する。
【００６４】
ステップ６１４において、ユーザーによって入力された検証コードはＳＳＰ１０６に送信され、その時点で、ＭＩＭ／ＭＩＢ攻撃者１１４／１２２による潜在的な傍受及び再送信を受ける。
【００６５】
ステップ６１６において、例えば、図５に示されたように、ＳＳＰ１０６とセキュリティシステム３２６との間の相互作用５０６、５０８を介して、検証コードが有効性検証される。このような有効性検証結果に応じて、ステップ６１８で取引が確認されるか、または拒否される。
【００６６】
前記実施形態の説明は、本発明の原理を例示する役割を果たすが、エンドユーザーに追加的な便宜を提供する変形例を含め、多くの変形例が可能であることが理解されるであろう。例えば、スマートフォンまたはタブレットのような‘スマートデバイス’のユーザーには、検証コードの生成を支援するために専用アプリケーション（または‘アプリ’）が提供され得る。例えば、専用アプリ、ＳＳＰ１０６及び／またはセキュリティシステム３２６からユーザーに代わって通信を受信することができる。これらの通信は、例えば、信頼される発信番号からのＳＭＳを介して、またはセキュリティシステム３２６及びアプリ内の適切にセキュリティされたコード要素などのみに知られた秘密情報（例えば、秘密キー）に基づいて、インターネットまたは一部の他の通信ネットワークを介して確立され得る安全な暗号化されたチャンネルを介して受信され得る。
【００６７】
図７は、本発明を実現するスマートフォンアプリの例示的なスクリーンディスプレイを示す。ユーザーは、ＳＳＰ１０６との取引を開始する前にアプリを開いてアプリの実行を開始することができるか、またはアプリは、バックチャンネルをモニタリングして、セキュリティマトリックス情報４０２の受信時に自動的に開かれることができる。このとき、ディスプレイ７００は、テキスト入力ボックス７０２を介して関連取引細目、例えば、インターネットバンキング資金振込みの受取人口座番号を入力することをユーザーに促すことを示すことができる。受信されたセキュリティマトリックスデータと共に、この情報を所有すると、アプリは、検証コードを演算して確認ページに入力するために、すなわち、プロセス６００のステップ６１２でユーザーに提示することができる。対応する例示的なスクリーンディスプレイ７０４は、ユーザーに対応する検証コード７０６を提供する。
【００６８】
検証コード７０６を生成するためにユーザーがスマートフォンアプリまたは類似のものを使用する実施形態では、ユーザーが検証コードを手動で生成する必要があるときに妥当であるものよりも、より複雑な演算が使用され得る。例えば、アプリは、重要取引データの項目（例えば、受取人口座番号７０２）を対応する検証コード７０６に変換するために実行される動作を指定するセキュリティマトリックス４０２及び／または他のワンタイムセキュリティデータを受信することができる。前記動作は、例えば、ＭＤ５、ＳＨＡ−１、ＳＨＡ−２、または他の公知されたハッシングアルゴリズムを使用して、変換された重要取引データのハッシュを演算することを含むことができ、検証コードは、演算されたハッシュから導出され得る。この場合、ＭＩＭ／ＭＩＢ攻撃者が検証コードから元の変換された重要取引データを導出することは、計算上妥当でないことであるため、攻撃者が重要取引データに適用された変換を決定することは不可能である。従って、ＭＩＭ／ＭＩＢ攻撃者は、任意の不正に修正された重要取引データと一致するそれ自体の検証コードを生成することができないであろう。
【００６９】
図８は、安全なサービスプロバイダーと本発明を実現するスマートデバイスアプリとの間の信頼バックチャンネルを確立するためのシステム８００の概路図である。示したように、アプリが通信するセキュリティシステム３２６は、どのような潜在的な攻撃者に対してもアクセスできないように、安全に格納される関連秘密キー８０６を有する。対応する公開キー８０４は、アプリが自分の公式供給源から始まったものであることを保障する、アップルアプリストア（Ａｐｐｌｅ  Ａｐｐ  Ｓｔｏｒｅ）またはグーグル プレイ（Ｇｏｏｇｌｅ  Ｐｌａｙ）のような信頼できるアプリストア８０８を介してエンドユーザーが利用できるようにするスマートデバイスアプリ８０６に事前にロードされ、エンドユーザーデバイス８１０にダウンロードする前に修正または改ざんされない。一応エンドユーザーデバイス８０４上で実行すると、アプリは、固有の暗号キーを生成し、事前にロードされた公開キー８０４を使用して暗号化し、暗号化された暗号キーをセキュリティシステム３２６に送信することができる。その後、このような固有の暗号キーは、セキュリティシステム３２６とユーザースマートデバイス８０４との間の対称的暗号化通信のために使用され得る。セキュリティを強化するために、対称暗号化キーは、必要に応じて、頻繁にユーザーデバイス８０４上のアプリによって再生性されることができ、特にそれぞれの使用後に代替され得る。
【００７０】
代替の実施形態において、信頼できるアプリストア８０２から入手可能なアプリに事前にロードされた情報は、アプリがセキュリティシステム３２６で発信した着信ＳＭＳメッセージを認識できるように、セキュリティシステム３２６に関連付けられた固有の電話番号であり得る。
【００７１】
本発明の特定の実施形態及び変形例が本明細書に記述されたが、さらなる修正例及び代替例が関連技術分野の当業者には明らかであることが理解されるであろう。特に、これらの実施例などは、本発明の原理を例示するために提供され、該原理を実施するための多数の特定の方法を提供することである。一般に、本発明の実施形態は、検証コードが２つの遠隔位置で、例えば、エンドユーザー位置及びセキュリティシステム位置において、独立的に生成され得る技術的配置を提供することに依拠し、ここで、検証コードは、１次通信チャンネルを介した伝送中の重要取引データの任意の修正が独立的に生成された検証コードなどでの不一致として検出され得るように、重要取引データの少なくとも１つの項目に依存する。本発明を実現する配置は、検証コードを生成するために使用されるワンタイムセキュリティデータをセキュリティシステム位置からエンドユーザー位置に送信するために２次チャンネルを使用する。従って、本発明の実施形態によって提供されたセキュリティを組織的に損傷させることは、１次及び２次通信チャンネルの両方の侵入を必要とする。
【００７２】
従って、記述された実施形態は、本発明の一般的な特徴及び原理を教示する目的のために例として提供されるものとして理解されるべきであり、添付された特許請求の範囲に定義された本発明の範囲を限定するものとして理解されるべきではない。
【図１（ａ）】
2018519562.tif 000003
【図１（ｂ）】
2018519562.tif 000004
【図２】
2018519562.tif 000005
【図３】
2018519562.tif 000006
【図４】
2018519562.tif 000007
【図５】
2018519562.tif 000008
【図６】
2018519562.tif 000009
【図７】
2018519562.tif 000010
【図８】
2018519562.tif 000011
【国際調査報告】
2018519562.tif 000012
2018519562.tif 000013