(57)【要約】【課題】中間者攻撃が存在しても、安全な通信を実現することを可能とする。【解決手段】端末装置から送信されるデータであり、その端末装置の利用者により入力されたデータを、その端末装置において複数のデータに分割し、それらの複数に分割されたデータそれぞれを、複数の他のデータそれぞれの一部として置換して、送信されるデータを受信する受信部と、受信されたデータを、複数の他のデータそれぞれの一部が置換された複数のデータに分割し、分割された複数のデータそれぞれの一部を抽出する抽出部とを備えるサーバ装置を提供する。【選択図】図１
2015225329.tif 000002
【特許請求の範囲】
【請求項１】
端末装置から送信されるデータであり、前記端末装置の利用者により入力されたデータを、前記端末装置において複数のデータに分割し、前記複数に分割されたデータそれぞれを、複数の他のデータそれぞれの一部として置換し、送信されるデータを受信する受信部と、
前記受信されたデータを、前記複数の他のデータそれぞれの一部が置換された複数のデータに分割し、分割された複数のデータそれぞれの一部を抽出する分割抽出部と
を備えるサーバ装置。
【請求項２】
前記端末装置の前記利用者により入力されたデータおよび前記複数の他のデータそれぞれは文字列であり、前記端末装置の利用者により入力されたデータを構成する文字の種類と前記複数の他のデータそれぞれを構成する文字の種類は同じである請求項１に記載のサーバ装置。
【請求項３】
前記端末装置の前記利用者により入力されたデータを、前記端末装置において複数のデータに分割させ、前記複数に分割されたデータそれぞれを、複数の他のデータそれぞれの一部と置換させるためのプログラムを前記端末装置に送信する請求項１または２に記載のサーバ装置。
【請求項４】
前記プログラムを、前記端末装置の前記利用者が前記データを入力するための画面情報とともに送信する請求項３に記載のサーバ装置。
【請求項５】
前記プログラムは、前記画面情報に前記端末装置の前記利用者が入力した秘密情報に応じて、前記端末装置の利用者により入力されたデータの分割、前記複数に分割されたデータそれぞれの前記複数の他のデータそれぞれの一部との置換、または、前記複数の他のデータの生成のいずれか一以上を前記端末装置に実行させるためのプログラムである請求項４に記載のサーバ装置。
【請求項６】
入力されたデータを受け付ける受付部と、
生成された複数のデータをそれぞれ保持する複数のデータ保持部と
前記受け付けられたデータを複数のデータに分割し、前記複数のデータ保持部に分配する分配部と、
送信部と、
を備え、
前記複数のデータ保持部のそれぞれは、前記分配部より分配され、分割されたデータを、保持するデータの一部と置換して得られるデータを記憶し、
前記送信部は、前記複数のデータ保持部それぞれに記憶されたデータを送信する端末装置。
【請求項７】
前記複数のデータ保持部が保持する生成された前記複数のデータそれぞれおよび前記受付部が受け付けるデータは文字列であり、前記複数のデータ保持部が保持する前記生成された前記複数のデータを構成する文字の種類と前記受付部が受け付けるデータを構成する文字の種類とは同じである請求項６に記載の端末装置。
【請求項８】
前記分配部による前記分配および前記複数のデータ保持部のそれぞれによる前記置換のいずれかまたは両方は、プログラムにより制御される請求項６または７に記載の端末装置。
【請求項９】
前記生成された複数のデータそれぞれは、前記プログラムを前記端末装置により実行して生成されたデータである請求項８に記載の端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバおよび端末装置等に関する。特に、サーバおよび端末が通信を行う際に、中間者攻撃が行われても情報漏えいを予防することができるサーバ、端末、通信方法等に関する。
【背景技術】
【０００２】
インターネットなどによる通信技術を手軽に用いることができるようになってきた。このため、電子商取引やインターネットバンキングが広く利用されている。
【０００３】
一方で、コンピュータウィルス、マルウェアによる情報漏えいも頻繁に発生するようになってきている。さらに、Ｍａｎ  ｉｎ  ｔｈｅ  Ｂｒｏｗｓｅｒ攻撃やＭａｎ  ｉｎ  ｔｈｅ  Ｍｉｄｄｌｅ攻撃などの中間者攻撃も行われるようになってきている。ここで、中間者攻撃とは、サーバおよび端末などが行う通信の途中に割り込み、通信に関するデータを改ざんする手法である。この手法では、例えば、端末からインターネットバンキングのサーバに振込の情報が送信される場合に、端末から送信される口座番号を改ざんし、不正な口座番号に振込を行わせようとすることが行われ得る。
【０００４】
中間者攻撃を検出する技術としては、例えば特許文献１および特許文献２が知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第７７２１３３３号明細書
【特許文献２】米国特許第８３７０８９９号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、中間者攻撃を検出する技術は、安全な通信を行う前提の一つではあるが、安全な通信を直接保障するものではない。そこで、本発明では、中間者攻撃が存在しても、安全な通信を実現することを可能とする技術について開示を行う。
【課題を解決するための手段】
【０００７】
本発明の一実施形態として、端末装置から送信されるデータであり、その端末装置の利用者により入力されたデータを、その端末装置において複数のデータに分割し、それらの複数に分割されたデータそれぞれを、複数の他のデータそれぞれの一部として置換して送信されるデータを受信する受信部と、受信されたデータを、複数の他のデータそれぞれの一部が置換された複数のデータに分割し、分割された複数のデータそれぞれの一部を抽出する分割抽出部とを備えるサーバ装置を提供する。
【０００８】
本発明の一実施形態として、入力されたデータを受け付ける受付部と、生成された複数のデータをそれぞれ保持する複数のデータ保持部と、受け付けられたデータを複数のデータに分割し、複数のデータ保持部に分配する分配部と、送信部と、を備え、複数のデータ保持部のそれぞれは、分配部より分配され、分割されたデータを、保持するデータの一部と置換して得られるデータを記憶し、送信部は、前記複数のデータ保持部それぞれに記憶されたデータを送信する端末装置を提供する。
【発明の効果】
【０００９】
本発明によれば、中間者攻撃が存在しても、安全な通信を実現することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係るシステムの機能ブロック図である。
【図２】本発明の一実施形態に係るシステムの端末装置における画面遷移の一例図である。
【図３】本発明の一実施形態に係るシステムにおける端末装置からサーバへデータが送信される際のデータの遷移の一例図である。
【図４】本発明の一実施形態に係るシステムの動作時のシーケンス図である。
【図５】本発明の一実施形態に係るシステムの端末装置の処理のフローチャートである。
【図６】本発明の一実施形態に係るシステムのサーバの処理のフローチャートである。
【発明を実施するための形態】
【００１１】
本発明を実施するための形態について、図面を参照しながら、実施形態として説明を行う。なお、本発明は、以下に説明する実施形態に限定されることなく、種々の変形を行って実施することも可能である。
【００１２】
図１は、本発明の一実施形態に係るシステムの機能ブロック図の一例である。システム１００は、サーバ１０１と端末装置１０２とを有し、サーバ１０１と端末装置１０２とは、インターネットに代表される通信網１０３を通じて通信を行うことが可能となっている。なお、図１においては、サーバ１０１および端末装置１０２がそれぞれ１台示されているが、実際には、任意の台数とすることができる。
【００１３】
端末装置１０２は、フィールドデータ受付部１０４と、フィールドデータ分配部１０５と、データ保持部１（１０６）と、データ保持部２（１０７）と、データ保持部３（１０８）と、データ保持部４（１０９）と、データ送信部１１０と、データ保持部制御部１１１と、分配制御部１１２とを有する。
【００１４】
フィールドデータ受付部１０４は、フィールドに入力されたデータを受け付ける。ここでフィールドとは、情報を入力するために、端末装置１０２内で動作するブラウザ（図示せず）などにより端末装置１０２のディスプレイ（図示せず）に表示される入力エリアである。例えば、文字列情報を入力するテキストエリア、選択を入力するためのラジオボタンなどが入力エリアの例である。
【００１５】
システム１００が、例えば銀行のインターネットバンキングを実現するためのシステムである場合には、フィールドデータ受付部１０４は、インターネットバンキングを利用する利用者が操作する端末装置１０２で動作するブラウザが表示する入力エリアであり、画面内の振込先銀行名、振込先の口座の預金種別、振込先の口座番号、振込先口座の名義人名、振込金額などを入力する入力エリアに入力されたデータのいずれか１以上を受け付ける。
【００１６】
フィールドデータ受付部１０４は、例えば、ブラウザの表示する画面内の「送信」ボタンが押下されたときに、入力エリアに入浴されたデータを受け付けることができる。また、スクリプトやプログラムなどを記述しておき、マウスカーソルが特定の入力エリアの上に位置したことやクリックが行われたことを示すイベントが発生すると、そのイベントに対応するイベント処理関数によりフィールドデータ受付部１０４が動作し、入力エリアに入力されたデータを受け付けることができるようになっていてもよい。
【００１７】
なお、フィールドとして、ブラウザに表示される入力エリアを主な例として説明したが、本発明はブラウザに限定されることなく、例えば、特定の用途に専用に作られたプログラムによる入力エリアであってもよい。
【００１８】
また、フィールドデータ受付部１０４は、フィールドに入力されたデータとともに、そのデータが入力されたフィールドの識別子を受け付けるようになっていてもよい。これにより、複数のフィールドが存在する場合に、どのフィールドに入力され受け付けられたデータであるかを識別することができる。フィールドの識別子は、端末装置１０２のメモリなどの記憶領域に格納され、必要に応じて、データ送信部１１０によりサーバ１０１に送信することができる。
【００１９】
フィールドデータ分配部１０５は、フィールドデータ受付部１０４が受け付けたデータを、各データ保持部、すなわちデータ保持部１（１０６）と、データ保持部２（１０７）と、データ保持部３（１０８）と、データ保持部４（１０９）のそれぞれに分配する。ここに分配とは、同じデータをデータ保持部１（１０６）と、データ保持部２（１０７）と、データ保持部３（１０８）と、データ保持部４（１０９）に保持させる意味で使用してもよいし、あるいは、フィールドデータ受付部１０４が受け付けたデータをバイト単位や文字単位によりデータ保持部の個数のデータに分割し、それぞれの分割されたデータをデータ保持部１（１０６）と、データ保持部２（１０７）と、データ保持部３（１０８）と、データ保持部４（１０９）に保持させる意味で使用してもよい。さらに、同一の分割されたデータが異なるデータ保持部に保持されることがないという意味で使用してもよい。
【００２０】
例えば、７バイトで表現される半角の数字７ケタの口座番号を、最初の２バイトのデータ、次の２バイトのデータ、さらに次の２バイトのデータ、そして最後の１バイトのデータのように複数個のデータに分割し、最初の２バイトのデータをデータ保持部１（１０６）に保持させ、次の２バイトのデータを、データ保持部２（１０７）に保持させ、さらに次の２バイトのデータを、データ保持部３（１０８）に保持させ、最後の１バイトのデータをデータ保持部４（１０９）に保持させるようにフィールドデータ分配部１０５が動作することができる。
【００２１】
分配制御部１１２は、フィールドデータ分配部１０５によるデータの分配を制御する。すなわち、フィールドデータ受付部１０４が受け付けたデータを、何個のデータに分割し、また、分割されたそれぞれのデータが何バイトになるかというように大きさを指定し、また、どのように分割し、さらに分割されたそれぞれのデータをどのデータ保持部に保持させるかを制御する。また、後に説明するように、フィールドデータ分配部１０５により分配されたデータにより一部が置換されるデータを生成する。
【００２２】
各データ保持部（図１においては、データ保持部１（１０６）と、データ保持部２（１０７）と、データ保持部３（１０８）と、データ保持部４（１０９））は、フィールドデータ分配部１０５により分配されるデータを保持する。また、各データ保持部は、生成されたデータを保持する。例えば、分配制御部１１２により生成された乱数などのランダムなデータを保持することができる。この場合、各データ保持部は、生成されたデータの一部をフィールドデータ分配部１０５により分配されるデータに置換して保持することができる。言い換えると、各データ保持部は、フィールドデータ分配部１０５により分配されるデータを、生成されたデータの一部として置換する。これにより、フィールドデータ分配部１０５により分配されるデータが、生成されたデータの一部となる。生成されたデータのどの部分を置換するかについては、例えば分配制御部１１２により制御がされる。例えば、生成されたデータのうち、置換がされるべき部分の位置のデータである一部のデータを、所定の文字などとすることにより、置換する部分の位置を指定することができる。なお、「置換」という言葉を用いたが、結果として置換がされたのと同じ効果が得られるのであれば、どのような操作が行われてもよい。
【００２３】
分配制御部１１２により生成されるデータは、フィールドデータ分配部１０５により分配されるデータが文字列を表わす場合（言い換えるとフィールドデータ受付部１０４が受け付けるデータが文字列である場合）、その文字列を構成する文字と同じ種類の文字により構成される文字列であることが好ましい。また、文字の属性も同じであることが好ましい。例えば、フィールドデータ分配部１０５により分配されるデータが文字の種類として半角の数字により構成される文字列を表わす場合には、分配制御部１１２により生成されるデータも半角の数字により構成される文字列を表わすことが好ましい。また、フィールドデータ分配部１０５により分配されるデータが文字の属性としてアルファベットの大文字により校正される文字列を表わす場合には、分配制御部１１２により生成されるデータも大文字により構成される文字列を表わすことが好ましい。このように文字の種類・属性を同じとすることにより、生成されたデータの一部をフィールドデータ分配部１０５により分配されるデータに置換すると、どの文字が置換されたのかを推定することが困難となり、中間者攻撃に対する耐性が向上する。
【００２４】
また、生成されるデータのバイト数などによるデータサイズは、フィールドデータ分配部１０５によりそれぞれ分配されるデータのデータサイズより大きいことが好ましい。これにより、中間者攻撃に対する耐性が向上する。
【００２５】
データ送信部１１０は、各データ保持部により保持されたデータをサーバ１０１に送信する。例えば、データ保持部１（１０６）、データ保持部２（１０７）、データ保持部３（１０８）、データ保持部４（１０９）に保持されたデータを順次、各データ保持部から読み出し、通信網１０３を介してサーバ１０１に送信する。このときに、どのフィールドから入力されたデータに関して、各データ保持部に保持されているデータが送信されているのかを表わすために、上述したようにメモリなどに格納されているフィールドの識別子を送信してもよい。また、フィールドの識別子を各データ保持部に保持させておくこともできる。
【００２６】
データ保持部制御部１１１は、各データ保持部を制御し、具体的には、データ保持部の数を制御する。したがって、図１に示すように、データ保持部の数は常に４であることはなく、任意の数に制御がされる。これにより、フィールドごとに異なる数のデータ保持部を用いるようにすることが可能となり、また、通信セッションごとに異なる数のデータ保持部を用いるようにすることなどもできる。これにより、中間者攻撃に対する耐性が向上する。
【００２７】
なお、データ保持部制御部１１１および分配制御部１１２のいずれかまたは両方の動作は、サーバ１０１など端末装置１０２の外部から送信され受信されるプログラムにより制御、実現されるのが好ましい。言い換えると、データ保持部制御部１１１および分配制御部１１２の機能は、サーバ１０１など端末装置１０２の外部から送信され受信されるプログラムを端末装置１０２において実行することにより実現されるのが好ましい。この場合、そのようなプログラムは、例えば、端末装置１０２内で動作するブラウザにより実行されるスクリプトなどにより実行することができるものであってもよい。
【００２８】
より具体的には、端末装置１０２内で動作するブラウザがサーバ１０１と通信を行い、入力エリアを表示するためのＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋ−ｕｐ  Ｌａｎｇｕａｇｅ）の記述に含まれるスクリプトなどとして、そのようなプログラムが実現されていてもよい。この場合、ＨＴＭＬの記述に含まれるスクリプトなどのプログラムは、一つに限定されることなく、複数のプログラムがサーバ１０１などに記憶されており、端末装置１０２がサーバ１０１と通信を行う都度、異なるプログラムが選択されＨＴＭＬの記述に含まれて端末装置１０２に受信されるようにするのが好ましい。また、そのようなプログラムを端末装置１０２がダウンロードするためのＵＲＬがＨＴＭＬの記述の中に含まれていてもよい。端末装置１０２がサーバ１０１と通信を行う都度、異なるプログラムがＨＴＭＬの記述に含まれることにより、中間者攻撃が行われても、データの改ざんなどが困難となるからである。
【００２９】
上述のようにデータ保持部制御部１１１および分配制御部１１２は、サーバ１０１など端末装置１０２の外部から送信され受信されるプログラムにより実現される場合には、フィールドデータ分配部１０５および各データ保持部の機能は、そのようなプログラムにより実現することができる。すなわち、フィールドデータ分配部１０５の機能は、データの受付がされたことを表わすイベントに対応するイベント処理関数として実現され、各データ保持部の機能は、フィールドデータ分配部１０５から分配されるデータおよび分配制御部１１２により生成されたデータを受信すると、受信したデータをメモリなどに保持し、データ送信部１１０から要求がされると、保持しているデータを出力するオブジェクトとして実現することができる。
【００３０】
サーバ１０１は、データ受信部１１４と、データ分割部１１５と、データ抽出部１１６と、分割抽出制御部１１７と、処理部１１８とを有する。
【００３１】
データ受信部１１４は、端末装置１０２のデータ送信部１１０が送信するデータを受信する。受信したデータは、サーバ１０１のメモリなどの記憶領域に格納される。
【００３２】
データ分割部１１５は、データ受信部１１４が受信し、サーバ１０１のメモリなどの記憶領域に格納されたデータを、端末装置１０２の各データ保持部に対応させて分割する。端末装置１０２のデータ送信部１１０は、各データ保持部が保持するデータを順次読み出して送信する処理を行うので、データ分割部１１５は、この処理に対応して、データ受信部１１４が受信し、サーバ１０１のメモリなどの記憶領域に格納されたデータを、分割し、各データ保持部が保持していたデータをサーバ１０１内において復元する。
【００３３】
例えば、データ保持部１（１０６）が１０バイト、データ保持部２（１０７）が１５バイト、データ保持部３（１０８）が８バイト、データ保持部４（１０９）が１２バイトのデータを保持し、これらが順にデータ送信部１１０により読み出され、４５バイトのデータとして送信され、データ受信部１１４により受信されたとする。このとき、データ分割部１１５は、最初から１０バイトのデータ、それに続く１５バイトのデータ、それに続く８バイトのデータ、さらにそれに続く１２バイトのデータに分割する。これにより、各データ保持部が保持していたデータが復元される。
【００３４】
データ抽出部１１６は、データ分割部１１５が分割により復元したデータから、各データ保持部がフィールドデータ分配部１０５により分配されたデータを抽出する。これにより、フィールドデータ受付部１０４により受け付けられたデータが復元される。
【００３５】
なお、ここの説明においては、データ分離部１１５とデータ抽出部１１６とに分けて説明を行ったが、これは説明の便宜によるものであり、実際には、データ分離部１１５とデータ抽出部１１６とは、一つの部により形成されていてもよい。
【００３６】
分割抽出制御部１１７は、データ分割部１１５およびデータ抽出部１１６の動作を制御する。具体的には、データ分割部１１５は、サーバ１０１のメモリなどの記憶領域に格納されたデータを、分割し、各データ保持部が保持していたデータをサーバ１０１内において復元するが、このとき、端末装置１０２が有するデータ保持部の数や、分配制御部１１２が生成したデータの長さなどの情報が必要である。そこで、分割抽出制御部１１７は、データ保持部の数、分配制御部１１２が生成したデータの長さなどの情報に基づいて、データ分割部１１５によるデータの分割を制御する。
【００３７】
ここに、データ保持部の数、分配制御部１１２が生成したデータの長さなどの情報は、端末装置１０２とサーバ１０１の分割抽出制御部１１７とにおいて共有される。このため、例えば、サーバ１０１から、共有される情報を端末装置１０２に送信したり、逆に、端末装置１０２からサーバ１０１に送信されたりする。例えば、データ保持部の数、分配制御部１１２が生成したデータの長さなどの情報を生成するプログラムをサーバ１０１から端末装置１０２に送信したり、端末装置１０２からサーバ１０１に送信されたりする。あるいは、第３のサーバ装置からサーバ１０１と端末装置１０２とに送信されたりする。この時の送信において、送信される情報やプログラムは暗号化されるのが好ましい。また、サーバ１０１と端末装置１０２とが相互に情報を交換し、サーバ１０１と端末装置１０２とで、データ保持部の数、分配制御部１１２が生成したデータの長さなどの情報の同意を形成してもよい。また、データ保持部の数、分配制御部１１２が生成したデータの長さなどの情報は、固定されるものではなく、データ毎に、また、セッション毎に変化するようにするのが好ましい。
【００３８】
また、データ抽出部１１６は、データ分割部１１５が分割により復元したデータから、各データ保持部がフィールドデータ分配部１０５により分配されたデータを抽出するが、このとき、端末装置１０２が有する分配制御部１１２が生成したデータのどの位置が置換されたかの情報が必要である。そこで、分割抽出制御部１１７は、この情報に基づいて、データ抽出部１１６によるデータの抽出を制御する。
【００３９】
処理部１１８は、データ抽出部１１６により抽出されたデータを用いて処理を行う。処理には様々なものがあり、どのような処理を行うべきかは、例えば端末装置１０２内のフィールドデータ受付部１０４がどのフィールドからデータを受け付けたかに依存して決定される。フィールドデータ受付部１０４がどのフィールドからデータを受け付けたかの情報は、例えば、データ送信部１１０がデータを送信する際に、送信されるデータとともに送信され、サーバ１０１のデータ受信部１１４により受信され、適切な処理を行うような処理がされるようになっていてもよい。
【００４０】
図２（ａ）〜（ｃ）は、システム１００がインターネットバンキングを実現するためのシステムである場合の端末装置１０２における画面遷移の一例を示す。端末装置１０２の利用者が、サーバ１０１などへのリンクをポータルサイトにおいて選択したり、サーバ１０１などのＵＲＬをブラウザに入力したりすると、サーバ１０１などから端末装置１０２に対して通信網１０３を介してＨＴＭＬなどにより記述されたデータが送信され、端末装置１０２のディスプレイに、ログイン画面として図２（ａ）に例示される画面２０１が端末装置１０２のディスプレイに表示される。
【００４１】
図２（ａ）において、画面２０１には、お客様番号を入力する入力エリア２０２とパスワードを入力する入力エリア２０３とが表示されている。利用者は、自分のお客様番号とパスワードとを入力し、リターンキーを押下するなどの操作を行うと、お客様番号とパスワードとが認証情報としてサーバ１０１などに送信され、認証が行われる。
【００４２】
認証に成功すると、サーバ１０１などは、インターネットバンキングサービスの中から利用者が必要とするサービスを選択するための画面構成をＨＴＭＬなどにより記述されたデータを端末装置１０２に送信する。
【００４３】
図２（ｂ）は、端末装置１０２のディスプレイに、利用者が必要とするサービスを選択するための画面２１１が表示されている例を示す。画面２１１においては、口座の残高を確認するための残高照会ボタン２１２と、振込を行うための振込ボタン２１３とが示されている。
【００４４】
利用者が振込ボタン２１３を選択して押下などすると、振込のためのデータを入力するための画面が端末装置１０２のディスプレイに表示される。図２（ｃ）に示す画面２２１は、振込のためのデータを入力するための画面の一例である。また、この画面のＨＴＭＬなどによる記述にスクリプトなどのプログラムが含まれ、このプログラムを端末装置１０２により実行することにより、フィールドデータ受付部１０４、フィールドデータ分配部１０５、各データ保持部、分配制御部１１２、データ保持部制御部１１１などの機能が実現されるようになっていてもよい。
【００４５】
利用者が、入力エリア２２２に振込先の銀行名を入力し、入力エリア２２３に振込先の銀行の支店名を入力する。また、利用者は、振込先の口座の種別を入力エリア２２４に入力し、振込先の口座番号を入力エリア２２５に入力し、予め利用者に配布されている契約者カードの「ア」列第３行に記載されている数字を入力エリア２２６に入力し、振込額を入力エリア２２７に入力する。なお、契約者カードは、利用者と配布した銀行以外には秘密にされているので、契約者カードに記載されている「ア」列第３行の情報は秘密情報の一例である。また、これらの振込のためのデータを入力するための画面は複数の画面により構成されていてもよい。
【００４６】
利用者が振込ボタン２２８を選択して押下すると、フィールドデータ受付部１０４が動作し、入力されたデータを受け付ける。例えば、入力エリア２２５に入力された振込先の口座番号がデータとして受け付けられる。もちろん、他の入力エリアに入力されたデータも受け付けられるようになっていてもよい。
【００４７】
図３は、入力エリア２２５に入力された振込先の口座番号がデータとしてフィールドデータ受付部１０４に受け付けられた際の処理を概念的に説明する図である。口座番号である「1234567」が受け付けられると、分配制御部１１２の制御により、フィールドデータ分配部１０５により、最初から２バイトのデータである「12」、次の２バイトのデータである「34」、それに続く２バイトのデータである「56」、最後の１バイトのデータである「7」に分割され、また、それぞれが各データ保持部に分配される。
【００４８】
また、分配制御部１１２は、例えば「158_36_」、「6_4_3181」、「158_36_」および「158_362」というデータを生成し、各データ保持部に保持させる。すると、各データ保持部は、生成された各データの「_」の文字をフィールドデータ分配部１０５により分配されたデータの各バイトにより置換する。このとき分配制御部１１２は、「_」の位置をどこにするかを、例えば、入力エリア２２６に入力されたデータに依存して決定してもよい。
【００４９】
図３において、符号３０２、３０３、３０４および３０５がそれぞれデータ保持部１（１０６）、データ保持部２（１０７）、データ保持部３（１０８）およびデータ保持部４（１０９）の記憶領域を表わしている。このため、データ保持部１（１０６）は、「1581362」というデータを保持する。同様に、データ保持部２（１０７）、データ保持部３（１０８）およびデータ保持部４（１０９）のそれぞれは、「63443181」、「1585366」および「1587662」というデータを保持することになる。
【００５０】
データ送信部は、「1581362」、「63443181」、「1585366」および「1587662」というデータを各データ保持部から順次読み出し、通信網１０３を介してサーバ１０１へ「15813626344318115853661587662」を送信する（符号３０６）。
【００５１】
サーバ１０１のデータ受信部１１４が、「15813626344318115853661587662」を受信すると、分割抽出制御部１１７の制御にしたがって、データ分割部１１５は、「1581362」、「63443181」、「1585366」および「1587662」というデータに分割し、それぞれを符号３０７、３０８、３０９および３１０により示される記憶領域に格納する。
【００５２】
次に、分割抽出制御部１１７の制御にしたがって、データ抽出部１１６は、「1581362」から「12」を抽出し、「63443181」から「34」を抽出し、「1585366」から「56」を抽出し、「1587662」から「7」を抽出する。なお、分割抽出制御部１１７は、画面２２１（図２（ｃ））において利用者が契約者カードの「ア」列第３行に記載されている数字を入力するよう求められたことに対応して入力される「ア」列第３行に記載されている秘密情報に応じて、「1581362」、「63443181」、「1585366」および「1587662」それぞれからデータを抽出するように制御を行うこともできる。
【００５３】
最終的には、データ抽出部１１６の処理により「1234567」（３１１）が得られて、処理部１１８へ伝達され、振込先の口座番号として処理がされる。
【００５４】
以上のように、中間者攻撃により、端末装置１０２とサーバ１０１との通信の途中に割り込みがされたとしても、どのように置換が行われているかが不明なままでは、「15813626344318115853661587662」から振込先の口座番号を改ざんすることは困難となる。
【００５５】
図４は、端末装置１０２とサーバ１０１との通信のシーケンス図の一例を示す。ステップＳ４０１において、端末装置１０２から画面情報要求がされると、ステップＳ４０２において、サーバ１０１などから図２（ａ）に示す画面の画面情報が端末装置１０２に返信される。ステップＳ４０３において、端末装置１０２から認証情報が送信されると、送信先において認証が行われ、利用者の認証がされれば、ステップＳ４０４において、図２（ｂ）に示す画面の画面情報が端末装置１０２に返信される。ステップＳ４０５において、端末装置１０２において「振込」ボタンが選択され押下されると、「振込」が選択されたことを示す選択情報がステップＳ４０５において送信され、それに応じて、ステップＳ４０６において、図２（ｃ）に示す画面の画面情報が端末装置１０２に返信される。利用者が振込に必要な情報を入力し、「振込」ボタン２２８を押下すると、入力された情報の全てまたは一部が、フィールドデータ受付部１０４と、フィールドデータ分配部１０５と、各データ保持部と、分配制御部１１２と、データ保持部制御部１１１とにより処理がされた結果を含むデータがステップＳ４０７において送信される。これに対応して、サーバ１０１においては、データ分割部１１５、データ抽出部１１６および分割抽出制御部１１７が動作する。ステップＳ４０８においては、処理が完了したことを示す画面（図示せず）の画面情報が返信される。
【００５６】
図５は、端末装置１０２におけるフィールドデータ受付部１０４と、フィールドデータ分配部１０５と、各データ保持部と、分配制御部１１２と、データ保持部制御部１１１と、データ送信部１１０による処理のフローチャートの一例を示す。
【００５７】
ステップＳ５０１において、フィールドデータ受付部１０４により、フィールドデータの受付が行われる。ステップＳ５０２において、データ保持部制御部１１１と分配制御部１１２とにより、データ保持部の数と分配方法の決定がされる。ステップＳ５０３の処理として、データ保持部の生成が行われる。ステップＳ５０４の処理として、フィールドデータ分配部１０５によりデータの分配が行われる。このとき、分配制御部１１２により生成されたデータの置換がされる。ステップＳ５０５の処理として、データ送信部１１０によりデータの送信がされる。
【００５８】
図６は、サーバ１０１におけるデータ受信部と、データ分割部１１５と、データ抽出部１１６とによる処理の一例を示す。
【００５９】
ステップＳ６０１の処理として、データ受信部１１４により、データの受信がされる。ステップＳ６０２の処理として、受信されたデータの分割がされる。ステップＳ６０３の処理として、分割されたデータからデータの抽出がされる。
【符号の説明】
【００６０】
１００  システム、１０１  サーバ、１０２  端末、１０３  通信網、１０４  フィールドデータ受付部、１０５  フィールドデータ分配部、１０６  データ保持部１、１０７  データ保持部２、１０８  データ保持部３、１０９  データ保持部４、１１０  データ送信部、１１１  データ保持部制御部、１１２  分配制御部、１１４  データ受信部、１１５  データ分割部、１１６  データ抽出部、１１７  分割抽出制御部、１１８  処理部
【図１】
2015225329.tif 000003
【図２】
2015225329.tif 000004
【図３】
2015225329.tif 000005
【図４】
2015225329.tif 000006
【図５】
2015225329.tif 000007
【図６】
2015225329.tif 000008