(57)【特許請求の範囲】
【請求項１】
ネットワーク上でサービスを提供するサービスサーバと接続された代行装置であって、
安全性が保証されたネットワークである安全ネットワークを介して前記サービスサーバと接続されており、
前記サービスサーバの利用者が使用する端末装置から前記サービスサーバを経由して送信された、前記サービスサーバに対して行う操作の代行を要求する代行要求を受信した際に、前記利用者の認証を行う利用者認証手段と、
前記利用者認証手段による認証が成功したことを条件に、前記代行要求により要求された操作を、前記安全ネットワークを介して前記サービスサーバに対して行うサーバ操作代行手段とを有し、
前記利用者認証手段は、
前記サービスサーバの利用者との間で共有されるコードであって、ｎ個（ｎ：２以上の整数）の数字が所定の順序で配列してなる質問セットと、前記ｎ個の数字に夫々対応するｎ個の数字が前記所定の順序で配列してなる返事セットとからなるコードを記憶しており、
前記利用者の認証に際して、前記質問セットに含まれる各数字を前記所定の順序で送信することを前記利用者に要求すると共に、該要求に応じて前記利用者が前記端末装置から送信したｉ番目（１≦ｉ≦ｎ）の数字を受信する度に、前記返事セットに含まれるｉ番目の数字を前記端末装置に返送することを特徴とする代行装置。
【請求項２】
前記利用者認証手段は、
前記端末装置から受信した数字のうちの、しかるべき順位でしかるべき数字を受信した数字の割合に基づいて前記認証を行うことを特徴とする請求項１に記載の代行装置。
【請求項３】
前記利用者認証手段は、
前記端末装置から受信した数字のうち、１番目からｊ番目（１＜ｊ＜ｎ）までの数字が夫々前記質問セットに含まれる１番目からｊ番目の数字であり、ｋ番目（ｊ＜ｋ≦ｎ）からｎ番目の数字が夫々前記質問セットに含まれるｋ番目（ｊ＜ｋ≦ｎ）からｎ番目の数字であり、「ｊ＋１」番目と「ｋ−１」番目の数字が前記質問セットに含まれる「ｊ＋１」番目と「ｋ−１」番目の数字と夫々異なる場合に、
前記認証が成功したとすると共に、前記端末装置から受信した「ｊ＋１」番目から「ｋ−１」番目の数字が、前記代行要求が要求する操作の内容を示すコマンドであると認識し、
前記サーバ操作代行手段は、前記コマンドが示す操作を前記サービスサーバに対して行うことを特徴とする請求項１に記載の代行装置。
【請求項４】
前記サービスサーバの認証情報を有し、該認証情報に基づいて前記サービスサーバを認証するサービス真偽検証手段をさらに備え、
前記代行手段は、前記利用者認証手段による認証が成功し、かつ前記サービス真偽検証手段による検証が成功したことを条件に、前記代行要求により要求された操作を前記サービスサーバに対して行うことを特徴とする請求項１から３のいずれか１項に記載の代行装置。
【請求項５】
前記コードを生成して前記利用者と前記利用者認証手段に供するコード生成手段をさらに備えることを特徴とする請求項１から４のいずれか１項に記載の代行装置。
【請求項６】
ネットワーク上でサービスを提供するサービスサーバと、
安全性が保証されたネットワークである安全ネットワークを介して前記サービスサーバと接続された代行装置とを備え、
前記代行装置は、
前記サービスサーバの利用者が使用する端末装置から前記サービスサーバを経由して送信された、前記サービスサーバに対して行う操作の代行を要求する代行要求を受信した際に、前記利用者の認証を行う利用者認証手段と、
前記利用者認証手段による認証が成功したことを条件に、前記代行要求により要求された操作を、前記安全ネットワークを介して前記サービスサーバに対して行うサーバ操作代行手段とを有し、
前記利用者認証手段は、
前記サービスサーバの利用者との間で共有されるコードであって、ｎ個（ｎ：２以上の整数）の数字が所定の順序で配列してなる質問セットと、前記ｎ個の数字に夫々対応するｎ個の数字が前記所定の順序で配列してなる返事セットとからなるコードを記憶しており、
前記利用者の認証に際して、前記質問セットに含まれる各数字を前記所定の順序で送信することを前記利用者に要求すると共に、該要求に応じて前記利用者が前記端末装置から送信したｉ番目（１≦ｉ≦ｎ）の数字を受信する度に、前記返事セットに含まれるｉ番目の数字を前記端末装置に返送することを特徴とするシステム。
【請求項７】
前記利用者認証手段は、
前記端末装置から受信した数字のうちの、しかるべき順位でしかるべき数字を受信した数字の割合に基づいて前記認証を行うことを特徴とする請求項６に記載のシステム。
【請求項８】
前記利用者認証手段は、
前記端末装置から受信した数字のうち、１番目からｊ番目（１＜ｊ＜ｎ）までの数字が夫々前記質問セットに含まれる１番目からｊ番目の数字であり、ｋ番目（ｊ＜ｋ≦ｎ）からｎ番目の数字が夫々前記質問セットに含まれるｋ番目（ｊ＜ｋ≦ｎ）からｎ番目の数字であり、「ｊ＋１」番目と「ｋ−１」番目の数字が前記質問セットに含まれる「ｊ＋１」番目と「ｋ−１」番目の数字と夫々異なる場合に、
前記認証が成功したとすると共に、前記端末装置から受信した「ｊ＋１」番目から「ｋ−１」番目の数字が、前記代行要求が要求する操作の内容を示すコマンドであると認識し、
前記サーバ操作代行手段は、前記コマンドが示す操作を前記サービスサーバに対して行うことを特徴とする請求項６に記載のシステム。
【請求項９】
安全性が保証されたネットワークである安全ネットワークを介して、ネットワーク上でサービスを提供するサービスサーバと接続された代行装置により、前記サービスサーバに対して行う操作の代行を行う代行方法において、
前記サービスサーバの利用者が使用する端末装置から前記サービスサーバを経由して送信された、前記代行を要求する代行要求を受信した際に、前記利用者の認証を行う利用者認証ステップと、
前記利用者認証ステップによる認証が成功したことを条件に、前記代行要求により要求された操作を、前記安全ネットワークを介して前記サービスサーバに対して行うサーバ操作代行ステップとを有し、
前記利用者認証ステップは、
前記サービスサーバの利用者と、前記代行装置との間で共有されるコードであって、ｎ個（ｎ：２以上の整数）の数字が所定の順序で配列してなる質問セットと、前記ｎ個の数字に夫々対応するｎ個の数字が前記所定の順序で配列してなる返事セットとからなるコードにおける前記質問セットに含まれる各数字を前記所定の順序で送信することを前記利用者に要求すると共に、該要求に応じて前記利用者が前記端末装置から送信したｉ番目（１≦ｉ≦ｎ）の数字を受信する度に、前記返事セットに含まれるｉ番目の数字を前記端末装置に返送することを特徴とする代行方法。
【請求項１０】
ネットワーク上でサービスを提供するサービスサーバに対して行う操作の代行を、安全性が保証されたネットワークである安全ネットワークを介して前記サービスサーバと接続されたコンピュータに実行せしめるプログラムであって、
前記サービスサーバの利用者が使用する端末装置から前記サービスサーバを経由して送信された、前記代行を要求する代行要求を受信した際に、前記利用者の認証を行う利用者認証ステップと、
前記利用者認証ステップによる認証が成功したことを条件に、前記代行要求により要求された操作を、前記安全ネットワークを介して前記サービスサーバに対して行うサーバ操作代行ステップとを有し、
前記利用者認証ステップは、
前記サービスサーバの利用者と、前記代行装置との間で共有されるコードであって、ｎ個（ｎ：２以上の整数）の数字が所定の順序で配列してなる質問セットと、前記ｎ個の数字に夫々対応するｎ個の数字が前記所定の順序で配列してなる返事セットとからなるコードにおける前記質問セットに含まれる各数字を前記所定の順序で送信することを前記利用者に要求すると共に、該要求に応じて前記利用者が前記端末装置から送信したｉ番目（１≦ｉ≦ｎ）の数字を受信する度に、前記返事セットに含まれるｉ番目の数字を前記端末装置に返送する処理を前記コンピュータに実行せしめることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サービスサーバに対する操作を代行する技術に関する。
【背景技術】
【０００２】
ネットワーク上でサービスを提供する際の利用者の本人認証について、様々な手法が考案されている。
【０００３】
これらの手法のうちに、ＯＴＰ（ワン・タイム・パスワード）による本人認証が増えている。ＯＴＰによる本人認証の種類は、時刻同期方式や、チャレンジ・レスポンス方式などが知られている。
【０００４】
時刻同期方式は、サービスを提供する側の認証装置と、ユーザに交付されるＯＴＰ生成機（トークンとも呼ばれる）との両方に時刻を同期させておき、それぞれにＯＴＰを生成して比較照合する方式である。
【０００５】
チャンレンジ・レスポンス方式は、認証のたびに、認証装置が利用装置（例えばユーザ端末）に擬似乱数（チャレンジという）を与えて、事前共有秘密鍵で擬似乱数からＯＴＰ（レスポンスという）を生成して比較照合する方式である。なお、擬似乱数は、計算によって求められた乱数列である。
【０００６】
時刻同期方式では、認証装置とＯＴＰ生成機の時刻同期ずれが生じた際に、照合が失敗してしまうという問題がある。チャレンジ・レスポンス方式では、暗号化された乱数（レスポンス）の桁数が長いと、ユーザの入力の手間がかかる一方、レスポンスの桁数が短いと、類推されやすいというジレンマがある。
【０００７】
特許文献１は、上記問題を解決する技術を開示している。図２２を参照して説明する。
図２２は、特許文献１における図１に対応し、特許文献１に開示された技術を適用したワンタイムパスワード認証システム１を示す。
【０００８】
図２２に示すように、ワンタイムパスワード認証システム１は、ＯＴＰ生成機１０と、利用者端末装置３０、認証サーバ装置５０を備える。利用者端末装置３０と認証サーバ装置５０は、ネットワーク９０により接続されている。
【０００９】
ユーザが利用者端末装置３０から、ＷＥＢブラウザなどで認証サーバ装置５０のＵＲＬにアクセスしてログイン画像を呼び出す。認証サーバ装置５０は、利用者端末装置３０がアクセスしてきた時刻をもとに、擬似乱数を発生させて乱数情報を生成し、ログイン画面に乱数情報を表示する。
【００１０】
ユーザは、ＰＩＮ（Ｐｅｒｓｏｎａｌ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  Ｎｕｍｂｅｒ）と、ログイン画面に表示された乱数情報とをつなげてＯＴＰ生成機１０に入力する。ＯＴＰ生成機１０は、内部メモリにＰＩＮ、利用者識別情報、事前共有鍵を記憶しており、ユーザが入力したＰＩＮの照合を行う。ユーザが入力したＰＩＮが内部メモリに記憶されたＰＩＮと一致すれば、ＯＴＰ生成機１０は、乱数情報とＰＩＮと利用者識別情報と事前共有鍵を用いてＯＴＰを生成して表示部に表示する。
【００１１】
ユーザは、ＯＴＰ生成機１０の表示部に表示されたＯＴＰを目視で確認し、認証サーバ装置５０のログイン画面に使用者識別情報とＯＴＰを入力する。認証サーバ装置５０は、利用者識別情報とＯＴＰを受け付けて、認証を行う。
【００１２】
この技術によれば、ユーザが、通常記憶しているＰＩＮに対して乱数を追加して入力するので、乱数の桁数が少なくとも安全性を保つことができると共に、乱数の桁数を少なくすることによってユーザの入力ミスを減らすことができる。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００９−４３１５８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
ところで、上述したいずれの方法も、ユーザが利用する端末装置と、サービスを提供する側の認証装置との接続経路、及び端末装置自身の安全性が保証されている前提下で効用を発揮する。
【００１５】
一方、近年、一時的にネットワーク環境を提供するネットカフェなどの登場により、端末装置、及び端末装置からの接続経路の安全性が保証されない環境で、ユーザがネットワーク上のサービスを利用することが増えている。このような環境において、認証のみならず、通信中の情報の改竄、盗聴、成りすましなどの問題が生じやすく、対策が求められている。
【課題を解決するための手段】
【００１６】
本発明の１つの態様は、ネットワーク上でサービスを提供するサービスサーバと接続された代行装置である。この代行装置は、安全性が保証されたネットワークである安全ネットワークを介して前記サービスサーバと接続されており、利用者認証手段と、サーバ操作代行手段を有する。
【００１７】
利用者認証手段は、前記サービスサーバの利用者が使用する端末装置から前記サービスサーバを経由して送信された、前記サービスサーバに対して行う操作の代行を要求する代行要求を受信した際に、前記利用者の認証を行う。
【００１８】
サーバ操作代行手段は、前記利用者認証手段による認証が成功したことを条件に、前記代行要求により要求された操作を、前記安全ネットワークを介して前記サービスサーバに対して行う。
【００１９】
利用者認証手段は、サービスサーバの利用者との間で共有されるコードを記憶しており、該コードは、ｎ個（ｎ：２以上の整数）の数字が所定の順序で配列してなる質問セットと、前記ｎ個の数字に夫々対応するｎ個の数字が前記所定の順序で配列してなる返事セットとからなる。利用者認証手段は、利用者の認証に際して、前記質問セットに含まれる各数字を前記所定の順序で送信することを前記利用者に要求すると共に、該要求に応じて前記利用者が前記端末装置から送信したｉ番目（１≦ｉ≦ｎ）の数字を受信する度に、前記返事セットに含まれるｉ番目の数字を前記端末装置に返送する。
【００２０】
なお、上記態様の代行装置を方法やプログラムに置換えて表現したもの、前記プログラムを記録した記録媒体、該代行装置を備えたシステムなども、本発明の態様としては有効である。
【発明の効果】
【００２１】
本発明にかかる技術によれば、サービスサーバの利用者が使用する端末装置の安全性、または端末装置からサービスサーバへのネットワークの安全性が保証されない環境においても、利用者がサービスサーバに対して行いたい操作を安全に行うことができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施の形態にかかるシステムを示す図である。
【図２】コード表の例を示す図である。
【図３】事前準備段階のシーケンスの例を示す図である。
【図４】コードに含まれる数値で定義されるコマンドの例を示す図である。
【図５】コマンドの別の例を示す図である。
【図６】図１におけるシステムにおける操作代行装置のフェーズ遷移図を示す図である。
【図７】図６に示すフェーズ遷移を実現するための処理を擬似コードで表現したものを示す図である。
【図８】図７にて利用されている記号の説明を示す図である。
【図９Ａ】実行シーケンスの例を示す図である（その１）。
【図９Ｂ】実行シーケンスの例を示す図である（その２）。
【図９Ｃ】実行シーケンスの例を示す図である（その３）。
【図１０】コード選択の条件の模式を示す図である。
【図１１】利用者が適切なコードを選択するために行う作業の一例を示す図である。
【図１２】コマンド受信フェーズでの処理の模式を示す図である。
【図１３】利用者の認証処理を説明するための図である。
【図１４】本発明の第１の実施例にかかるシステムを示す図である。
【図１５】図１４に示すシステムに含まれる操作代行装置ソフトウェアの内部構成の模式図である。
【図１６】利用者視点での事前準備段階の流れを示す図である。
【図１７】コード表の例を示す図である。
【図１８】コマンド表の例を示す図である。
【図１９】利用者と、Ｗｅｂサーバと、操作代行ソフトウェアとの間での値のやり取りの例を示す図である。
【図２０】コマンドの構成例を示す図である。
【図２１】本発明の第２の実施例にかかるシステムを示す図である。
【図２２】従来技術の例を説明するための図である。
【発明を実施するための形態】
【００２３】
以下、図面を参照して本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００２４】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００２５】
図１は、本発明の実施の形態にかかるシステム１００を示す図である。システム１００は、ネットワーク上でサービスを提供するサービスサーバ１０５と、安全ネットワーク２０６を介してサービスサーバ１０５と接続された操作代行装置２１６と、ネットワーク１０４を介してサービスサーバ１０５と接続された端末装置１０３を備える。なお、ネットワーク１０４と端末装置１０３は、安全性が保証されていないものである。
安全ネットワーク２０６は、安全性が保証され、該ネットワーク上を伝送されるデータに対する盗聴、改ざんの危険性が無いネットワークである。なお、安全ネットワーク２０６は、自身の安全性が保証されているが、サービスサーバ１０５の真偽を保証しているわけではない。
【００２６】
操作代行装置２１６は、サービス真偽検証手段２０９、利用者認証手段２１１、コード表生成手段２１３、サーバ操作代行手段２１５を備える。サービス真偽検証手段２０９は外部接続２０７により安全ネットワーク２０６と接続されており、サーバ操作代行手段２１５は外部接続２０８により安全ネットワーク２０６と接続されている。利用者認証手段２１１は、内部接続２１０によりサービス真偽検証手段２０９と接続され、内部接続２１４によりサーバ操作代行手段２１５と接続され、内部接続２１２によりコード表生成手段２１３と接続されている。
【００２７】
コード表生成手段２１３は、操作代行装置２１６の外部から任意のタイミングで与えられる契機を元に動作し、コード表２１８を生成する。生成されたコード表２１８は、安全な経路２１７により利用者１０１に提示する。コード表２１８は、利用者１０１に提示したコード表２１８と同一の複製を内部に保管し、事前準備のタイミングで発生する利用者認証手段２１１からのコード表要求に応じて内部接続２１２により利用者認証手段２１１へ提供する。サービス真偽検証手段２０９は、安全ネットワーク２０６を経由して操作代行手段２１６に接続してきたサービスサーバ１０５の真偽を検証する。サービス真偽検証手段２０９は、サービスサーバ１０５の真正を確認したら、その接続コネクションを内部接続２１０により利用者認証手段２１１に再接続し、サービスサーバ１０５と利用者認証手段２１１が通信可能な状態にする。利用者認証手段２１１は、サービスサーバ１０５からの接続を受けて、まずはサービスサーバ１０５に接続している利用者２０１の利用者認証を実行する。後述されるしかるべき利用者認証手続きの結果、利用者認証が成功した場合、次に利用者からの操作代行依頼信号を受信する。受信に成功した場合には内部接続２１４を経由してサーバ操作代行手段２１５に操作代行を依頼する。サーバ操作代行手段２１５は、利用者認証手段２１１から内部接続２１４を経由して任意のタイミングでもたらされる操作代行依頼を受けて該当のサーバ操作を実行する。サーバ操作は外部接続２０８を経由してサービスサーバ１０５に対して実行される。
【００２８】
コード表生成手段２１３は、複数のコードを含むコード表２１８を生成する。コードは、ｎ個（ｎ：２以上の整数）の数字が所定の順序で配列してなる質問セットと、質問セットのｎ個の数字に夫々対応するｎ個の数字が上記所定の順序で配列してなる返事セットとからなる。なお、本発明における「数字」は、数値、文字、記号などを含むが、分かりやすいように、以下の説明において、「数字」の例として「数値」を用いる。
【００２９】
図２は、コード表生成手段２１３により生成されたコード表２１８の例を示す。図示のように、コード表２１８は、コード３０２、コード３０３、コード３０４の集合であり、シード値をインデックスとしてコードを複数格納した表である。図２に示す例では、コード表２１８に３つのコードが含まれているが、コード表２１８に格納されるコードの数は、３に限らず、１以上の任意の数であってもよい。また、図２に示す例において、各コードの質問セットと返事セットに含まれる数字の個数ｎが４であるが、これも４に限られることがない。
【００３０】
コード表２１８は、例えば印刷物や電子情報の形で利用者に提供される。夫々のコードは、前述したように、質問セットと返事セットからなる。以降、質問セットに含まれる各数字をＱとする。返事セットに含まれる各数字は、ある質問Ｑを与えられた際に該質問Ｑと対になる回答であり、以降回答Ｒという。以下、質問Ｑと回答Ｒの組「Ｑ，Ｒ」を応答セット３０５と呼ぶ。図２から分かるように、コードは、複数の応答セットからなるリストである。なお、応答セットは順序を持って保持される。
【００３１】
利用者認証手段２１１は、利用者の認証に際して、コード表２１８に含まれるコードの質問セットに含まれる各数字を上記順序で送信することを利用者に要求すると共に、該要求に応じて利用者が端末装置１０３から送信したｉ番目（１≦ｉ≦ｎ）の数字を受信する度に、同一のコードの返事セットに含まれるｉ番目の数字を端末装置１０３に返送する。
【００３２】
システム１００の処理を具体的に説明する。時系列に沿って、事前準備の段階、利用者１０１と操作代行装置２１６間で互いの真正の確認と命令の伝達をする段階、操作代行装置２１６による代行の実行および実行結果を利用者１０１への通知をする段階を順に説明する。
【００３３】
まず事前準備段階について説明する。図３は、この段階のシーケンスを示す。
利用者１０１は、操作代行装置２１６のコード表生成手段２１３に新たなコード表を生成する指示４０１を出す。この指示は操作代行装置２１６の外部から任意のタイミングで与えられる。指示４０１を受けたコード表生成手段２１３は、コード表２１８（図中Ｃ）を生成し（４０２）、安全な経路２１７を用いて利用者１０１に提示する（４０３）。同時に内部接続２１２を用いて、生成したコード表Ｃを利用者認証手段２１１に送信する（４０４）。利用者１０１と利用者認証手段２１１は、コード表Ｃを次のサービスの認証処理に利用するために保持する（４０５、４０６）。
【００３４】
次に利用者１０１と操作代行装置２１６間で互いの真正の確認と命令の伝達を行う段階について説明する。時系列的には、事前準備段階と本段階の間には一定の時間の隔たりがあり、実際の利用シーンではこの間に利用者１０１は、安全な経路２１７で操作代行装置２１６にアクセス（または操作）することが可能な地点から、信頼できない端末装置１０３の前に移動したとする。以降、利用者１０１が操作代行装置２１６に代行を依頼する操作を符号化してリストで表現したものをコマンドと呼ぶ。
【００３５】
コード内の数字によるコマンドの実現手法の例を説明する。例えば、コード内に含まれる数字（ここでは数値）の集合をＢとしたとき、Ａ⊆Ｂとなるような数値の集合Ａを定義し、Ａの要素の順列でコマンドを定義することが可能である。ここで、Ｂを｛０，１，２，３，４，５，６，７，８，９｝とし、Ａを｛１，２，３｝とした場合に、図４に示す複数のコマンドを定義することができる。なお、図４における丸括弧（）は、数値の順列を示す。
【００３６】
なお、コマンドに関する知識は事前に利用者１０１と操作代行装置２１６の間で合意が取られているものとするが、新規に利用者が作成したコマンドの意味を操作代行装置２１６が理解できるならば、コマンドの形式を事前完全に合意する必要は無い。図５は、コマンドの形式が不完全に定義されている例を示す。この例の場合、電話番号「１２３４」を入力するコマンドは、（１，３，１，１，２，３，４）となる。
【００３７】
本実施の形態では、コマンドと操作を一対一対応させる必要があるため、操作代行装置２１６内で利用されるコマンドの重複があってはならない。またコマンドを表現するときに用いる値は、コード表に含まれる値から選択する必要がある。
【００３８】
図６は、本段階における操作代行装置２１６の状態（フェーズ）遷移図を示す。また、図６に示すフェーズ遷移を実現するための処理を擬似コードで表現したものを図７に示す。図７にて利用されている記号の説明を図８で示す。本段階は、操作代行装置利用前の処理フェーズ、コード選択フェーズ、信頼度向上フェーズ７０１、コマンド受信フェーズ７０２、コマンド確認実行フェーズ７０３、処理結果送信準備フェーズ７０５、処理結果送信フェーズ７０６、処理結果信頼フェーズ７０９及びセッション切断７１０から構成される。なお、最後のセッション切断７１０は、利用者の認証から、コマンドに該当する処理の代行操作の実行及びその代行操作実行結果の送信までの処理のいずれかが失敗した際に遷移する状態であり、終了状態である。状態遷移の詳細については後述する。
【００３９】
図９Ａ〜Ｃは、本段階の代表的な実行シーケンスを示す。なお、図９Ａ〜Ｃでは、図６における「Ｑ受信タイムアウト」及び「コード最後尾に到達」という遷移条件に関しては省略されている。これは本条件による状態遷移は全ての状態の全てのタイミングで起きる可能性があるからである。操作代行装置利用前の処理フェーズ８０１では、利用者１０１によるサービスサーバ１０５へのアクセス（８０３）の後、サービスサーバ１０５中で利用者の操作を必要とする状況が発生し（８０４）、その結果操作代行要請８０５がサービス真偽検証手段２０９に送付される。サービス真偽検証手段２０９では、サービスサーバ１０５が利用者の期待するサーバ（以降「真正サーバ」という）であることを検証する（８０６）。サービスサーバ１０５が真正サーバであると判断する手法は、ＩＰアドレスの確認、サーバ証明書の利用など既知の手法が利用できるため、ここでは説明を割愛する。サービスサーバ１０５が真正サーバである場合、操作代行要請が利用者認証手段２１１に転送される（８０７）。
【００４０】
コード選択フェーズ８０２は、利用者１０１と操作代行装置２１６の間で、今後一連の処理で利用する特定のコードを一意に決定するためのフェーズである。まず利用者認証手段２１１は、利用者１０１に対して、コードの選択と入力を要求する（８０８）。要求を受けた利用者１０１は、事前準備段階で獲得したコード表２１８から条件にあう適切なコードを選択する（８０９）。図１０は、条件の模式を示す。
【００４１】
コード選択の必須条件は、コードの個数と値の分布から生じる２種類の条件がある。コードの個数に関する条件は、以降のフェーズにて発生する利用者１０１と操作代行装置２１６間の送受信処理（以降「シーケンス」という）を１回実行するとコードを先頭から１つ消費するため、代行操作を完了するために必要なシーケンス数分のコード長を最低限確保しなければならない、という制約を満たすための条件である（９０４）。値の分布から生じる条件は、このコード中へのコマンドの埋込み箇所となる、コード中のコマンドの先頭値C_headと異なる文字からからコマンドの長さC_length分だけ後ろの値がコマンドの終端値C_tailと異なるような部分、がコード中に存在する事と、コマンド挿入部分の前後に利用者１０１、操作代行装置２１６の双方が信頼度向上処理を行うためのシーケンスを実行できるだけの値が確保可能である事、という条件である（９０１、９０２）。図１１は、利用者１０１が適切なコードを選択（８０９）するために行う作業の一例を示している。
【００４２】
また、図１０では、利用者が代行結果を折り返し受信したい場合に考慮すべき追加条件も示している。追加条件は、コードの個数に関する条件である（９０６、９０７、９０８、９０９）。利用者１０１は、図１０に示す各条件を操作代行装置２１６側で満たせるようにコード中後方の応答セットの個数を確保する必要がある。実際の運用では、利用者は十分な長さのコードを選択する事で満たせると考えられる。提示するコードが先に挙げた条件を満たせるならば、作業内容は図１１に示す例と異なってもよい。
【００４３】
コードの選択が完了すれば、利用者１０１は、利用するコードを操作代行装置２１６へ返信する。追加条件にコードが合致しているかを判断するのは操作代行装置２１６であり、利用者１０１は、コードが必須条件に加えて追加条件にも合致すると推定して最適である思われるコードを選択する。そのため、利用者１０１の選択したコードが、本フェーズおけるコマンド実行結果埋め込み処理の際に不適切であり、本フェーズが失敗する可能性はある。但し、埋め込みが失敗してもコマンドの実行そのものは行われるため、利用者１０１は、コマンド実行結果の受信を望まなければ、追加条件を考慮せずにコードを選択してもよい。
【００４４】
信頼度向上フェーズ７０１は、利用者１０１が操作代行装置２１６の真正を確認するためのフェーズである。利用者１０１及び利用者認証手段２１１は、互いに対向の真正を確認するために本フェーズを実行する。本フェーズをもって利用者１０１は、操作代行装置２１６の真正を確認したことになる。本フェーズでは、利用者１０１は、コード選択フェーズにて選択した（８０９）コードの先頭から順番に応答セットを一個ずつ取り出し、その中に含まれるＱを操作代行装置２１６に送信する（２１６）。利用者認証手段２１１は、Ｑに対応するＲを自身の保有するコードから選択し（８１７）、利用者１０１に向けて返信する（８１８）。Ｒを受け取った利用者１０１は自身の持つコードにてＲが一致する事を確認する。本フェーズを複数回連続で実行した場合に、コード表２１８に関する知識を持っていない第三者が操作代行装置２１６に成り済まして正しいＲを返答できる確率が非常に少ないため、正しいＲを確認した時点で利用者１０１の信頼度が向上する（８１９）。正解の回数を「装置正解数」とする。
【００４５】
操作代行装置２１６の信頼度が利用者１０１の主観にも依存するため、利用者１０１は操作代行装置２１６が真正であると判断する（８２０）まで本フェーズを好きなだけ繰り返し行う。本フェーズを１回実行する度にコード中の応答セットを一つ消費するため、本フェーズは最大コードのサイズだけ繰り返すことができる。利用者の目的がサービスサーバ１０５の真正の確認のみである場合、処理をここで終了すればよい。間違ったＲを受信した場合、利用者１０１はその時点で操作代行装置２１６が偽であるとして作業を終了する。本フェーズにおいて利用者１０１と操作代行装置２１６の関係が対称であるため、本フェーズにより操作代行装置２１６から見た利用者１０１の真正の確認も同時に実行される。操作代行装置２１６内で閾値の形で信頼度を定義し（７１２）、本フェーズ中のシーケンス実行回数がその信頼度を越えた時点で利用者１０１が真正であると判断する。
【００４６】
コマンド受信フェーズ７０２は、利用者１０１からのコマンドを受信するフェーズである。本フェーズはコードの隠蔽を目的としているため、信頼度向上フェーズに続いて滞りなく実行される。本フェーズは、コード選択フェーズにて事前に目処をつけておいたコード中の一部に対して、コマンドを置換、もしくは加算（１１０１）して操作代行装置２１６に送信する処理である。図１２は、この処理の模式図を示す。
【００４７】
本フェーズ内のシーケンスで送信される値は前段階の信頼度確立フェーズ及びこの後行われる各フェーズで送信される値と比較して、外部的にはさしたる変化が無いため、本フェーズに移行、本フェーズから脱出した事をコード表２１８に関する知識を入手していない第三者が観測した場合に区別する事ができない。その結果、信頼できない端末１０３、信頼できないネットワーク１０４上において、中間者の攻撃を回避することができる。図１１に示したコマンド挿入方法によれば、本フェーズに突入するタイミングは、操作代行装置２１６が、初めて想定するＱとは違う値を受信した場合（８２３）である。この際、先の信頼度確立フェーズにて十分な信頼度が確保されている場合に、操作代行装置２１６は、許容できる範囲で、今受信した値はコマンドであると仮定して（８１６）、これを記録し、正しいＱを受け取った際に返信すべきＲを返信する（８２７）。
【００４８】
図１３は、許容できる範囲を定義するための思想を示す。利用者が真正である場合、コマンドの値列の回数だけ送信され、その後は全て正しいＱとなる。そのため、送信された値列の正しい値と間違った値の割合は、コマンドの送信完了以降は必ず増加する。一方利用者が偽の場合には、送信される値列中に間違った値が広く分布する。そこで値を受け取るたびに常に値列中の正解と間違いの割合を計算し、ある閾値を超えたならそれはコマンドではない、と判断する。利用者１０１は、コマンドを送信完了すると（８２８）、次の値として操作代行装置２１６が送信してきた最新のＲの次の応答セットのＱを送信する（８２９）。
【００４９】
コマンド確認実行フェーズは、先のコマンド受信フェーズが終了したことを確認して、コマンドすなわち代行処理を実行するフェーズである。コマンド受信フェーズにて利用者１０１が真正と判断した場合に、コマンド受信終了（８２８）以降の利用者１０１からの送信情報（８２９）がすべて正解であることを確認する。本フェーズにおけるはじめてのＱの受信（８２９）以降、操作代行装置２１６は、決められた回数だけ本フェーズを実行し、コマンド送信フェーズで送信された値列がコマンドであるかどうかを判断する。信頼度が閾値を超えたらコマンドである判断する（８３２）。コマンドであると判断したら、操作代行装置２１６は、操作の代行処理を行う（８３６、８３７、８３８）。利用者認証手段２１１は、コマンドを確認したため、サーバ操作代行手段２１５に処理開始の依頼を行う（８３６）。これを受けたサーバ操作代行手段２１５は、サービスサーバ１０５に対して要求された処理を実行する（８３７）。サービスサーバ１０５は、処理結果を元にサービス処理を利用者１０１に対して行い（８３８）、処理が完了すれば処理の成否などの情報を処理結果として利用者認証手段２１１に返す（８３９）。利用者認証手段２１１では、以降の処理結果送信フェーズ（７０５）にて処理結果を送信する目的で現在利用しているコード中に処理結果を埋め込むために、処理結果を埋め込み可能な場所をコード中から探し出す（８４０）。なお、利用者視点では本フェーズ及び次の処理結果送信準備フェーズは意識されず、次に間違ったＲを受信する段階である、処理結果の送信（８４６）を受けて、初めて処理結果送信フェーズに移動したことを意識する（８３５）。この際再度に受信した間違ったＲは、処理結果送信フェーズの最初の値であると利用者１０１は新式する。
【００５０】
処理結果送信準備フェーズ７０４は、コマンド確認実行フェーズにて探された（８４０）処理結果を埋め込み可能な場所まで、コードの不要な部分を破棄するフェーズである。本フェーズでは、埋め込み位置までコードを読み捨てる（８４４）。
【００５１】
処理結果送信フェーズ７０５は、操作代行装置２１６から処理結果を利用者１０１に提示するフェーズである。コマンド受信フェーズ８０２と同様に、本フェーズでは操作代行装置２１６は、コード中の応答セットのＲに対して処理結果を置換もしくは加算し、利用者１０１は、今までのシーケンスと同様の処理でＲの代わりにコマンド実行結果を受け取る。
【００５２】
認証結果信頼フェーズ７０６は、処理結果送信準備フェーズ７０４にて利用者が受信したコマンド実行結果の真正を確かめるフェーズである。コマンド受信フェーズ７０２における操作代行装置２１６の処理と同様にして利用者１０１はコマンド実行結果の真正を確認する。
【００５３】
また、全てのフェーズにて、一定時間利用者からのＱの提示がなくなった場合、及び信頼度が閾値を下回った場合、操作代行装置２１６は、利用者の信頼性が失われたものと考え、本セッションを切断し、利用したコードを今後無効として再利用不可能にする。
【００５４】
具体的な実施例を用いて本発明の技術をより詳細に説明する。
＜第１の実施例＞
この実施例は、利用者の各家庭に操作代行装置を配置した上で、コマンド表の出力を紙媒体に行い、利用者は公共の場に設置された信頼できない公共端末からＷｅｂサーバ上のサービスを利用する例である。
【００５５】
図１４は、該実施例のシステム４００を示す。システム４００は、ネットワークを介してサービスを提供するＷｅｂサーバ１４０４と、利用者１０１が居住する社宅１４０６に設置された家庭内サーバ１４０９と、公共の場１４０１に設置された公共端末１４０２を備える。公共端末１４０２は、インターネット１４０３を介してＷｅｂサーバ１４０４に接続されている。また、社宅１４０６には、印刷装置１４１０と出力指示用デバイス１４１４が設けられており、これらは、家庭内サーバ１４０９と接続されている。
【００５６】
家庭内サーバ１４０９は、ネットワーク接続１４０７により、ＶＰＡ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）１４０５を介してＷｅｂサーバ１４０４と接続される。ＶＰＡ１４０５は、安全ネットワークである。
【００５７】
また、家庭内サーバ１４０９には、操作代行装置ソフトウェア１４０８が実装されている。操作代行装置ソフトウェア１４０８は、家庭内サーバ１４０９のハードウェアと協働して、サービス真偽検証手段２０９、利用者認証手段２１１、コード表生成手段２１３、サーバ操作代行手段２１５を実現する。
【００５８】
図１５は、操作代行装置ソフトウェア１４０８の内部構成の模式図である。コード表生成手段２１３は、コード表生成機能１５１１と、コード表出力機能１５１０により実現される。コード表生成機能１５１１は、利用者１０１によって操作される出力指示用デバイス１４１４と安全な経路１５１８で接続されている。コード表出力機能１５１０は、コード表１４１３を紙媒体に出力するための印刷装置１４１０と安全な経路１４１５で接続されている。出力指示用デバイス１４１４は、パーソナルコンピュータ等を利用して実現できる。印刷装置１４１０は、一般に市販されているプリンターで実現できる。安全な経路１５１８と１４１５は、出力指示用デバイス１４１４と印刷装置１４１０を、操作代行ソフトウェア１４０８が実行されている家庭内サーバ１４０９とを直接接続する物理的な信号線である。
【００５９】
利用者認証手段２１１は、コマンド解釈機能１５０７と、メッセージ正当性確認機能１５０６と、コード表データベース１５０９と、コマンドデータベース１５０８を有する。コード表データベース１５０９は、内部接続１５１７によりコード表出力機能１５１０と接続されている。コード表データベース１５０９とコマンドデータベース１５０８は、ともにデータであるため、データベースシステムの利用で実現できる。利用者認証手段２１１は、内部接続１５１５によりサービス真偽検証手段２０９と接続されている。コード表データベース１５０９には、コード表出力機能１５１０から受け取った現在有効なコード表が格納されている。コマンドデータベース１５０８には、利用者１０１が送信してくる可能性のあるコマンドが記録されている。
【００６０】
サービス真偽検証手段２０９は、Ｗｅｂサーバ正当性確認機能１５０３と、Ｗｅｂサーバリスト１５０５と、Ｗｅｂサーバ認証情報１５０４を有する。サービス真偽検証手段２０９は、ネットワーク接続１４０７を介して、Ｗｅｂサーバ１４０４経由のコマンド実行要求１５０２を待ち受けている。また、Ｗｅｂサーバ１４０４経由のコマンド実行要求１５０２のレスポンスのためのＷｅｂサーバ１４０４経由のコマンド実行結果応答１５０１を行う。Ｗｅｂサーバリスト１５０５には、アクセス許可を出すＷｅｂサイトのリストが格納されている。Ｗｅｂサーバ認証情報１５０４には、Ｗｅｂサーバ正当性確認機能１５０３がアクセスしてきたＷｅｂサーバの真正を確認するための情報が格納されている。Ｗｅｂサーバリスト１５０５及びＷｅｂサーバ認証情報１５０４は、ともにデータであるため、データベースのシステムの利用で実現できる。サーバ操作代行手段２１５は、コマンド実行用プロトコルスタック１５１３とコマンド操作実行機能１５１２により実現される。コマンド実行用プロトコルスタック１５１３は、ネットワーク接続１４０７を経由して外部のＷｅｂサーバのコマンド実行のためのインターフェイスと接続している。コマンド実行のためのインターフェイスはＳＯＡＰなどで実現できる。これらすべての機能は、コンピュータ上のプログラムとして実現できる。また、すべての内部接続はプログラムの関数として実現できる。
【００６１】
以下、まず、時系列に沿って、家庭内での事前準備である事前準備段階と、利用者と認証代行装置間で互いの真正の確認と命令の伝達をする段階の中における、公共端末１４０２を経由してＷｅｂサービスを利用する直前の、送信する値列の生成までを利用者の観点から説明する。次に、その後の公共端末１４０２を経由してＷｅｂサービスの利用を開始する段階を説明する。それぞれの時において、各機能内でどのような処理を行うか説明する。なお、利用者１０１、Ｗｅｂサーバ１４０４、操作代行ソフトウェア１４０８の間での値のやり取りについては、図１９に例示している。
【００６２】
事前準備段階について説明する。図１６は、利用者視点での事前準備段階の流れを示す。図示のように、事前準備は、時系列に沿って、サービス利用前の処理２００９とＷｅｂサービス利用直前の処理２０１０の２つに大別できる。
【００６３】
サービス利用前の処理２００９には、コマンドの登録処理２００１とコードの生成処理２００２がある。コマンドの登録処理２００１では、利用者１０１は、コマンドデータベース１５０８にコマンドを登録する。この際の登録処理は家庭内サーバ１４０９に接続したパーソナルコンピュータなどの外部端末を利用すればよい。
【００６４】
利用者１０１は、登録したコマンドをコマンド表１４１２として携帯する。図１８は、コマンド表１４１２の例を示す。コマンドは、前述した所定の条件を満たせばどんな値列でもかまわないが、実際に運用する場合には値列のコンテキストからコマンドの内容が連想されないように注意して構成することが好ましい。例えば、値列をアルファベットで構成した際に、「ログイン」を示すコマンドの値列を"login"にすべきではない。このような値列を前述した置換方式でコードに挿入すると、攻撃者がシーケンスからコンテキストを読み取れてしまう場合があるからである。
【００６５】
コードの生成（２００２）で、利用者１０１は、出力指示用デバイス１４１４からコード表生成機能１５１１にコード表生成を依頼する。図１７は、コード表生成機能１５１１により生成されるコード表の例を示す。
【００６６】
コード表生成機能１５１１は、予め与えられている所定のフォーマットに対して、所定の関数を用いて値を当てはめてコード表を完成する。図中下線が引かれている値は、コード表生成機能１５１１が当てはめたものである。すなわち、図１７から下線の引かれた部分を除外したものが所謂所定のフォーマットの一例である。
【００６７】
所定の関数としては、乱数生成器などが利用できる。この場合は、乱数生成器から出力される乱数を順番に所定のフォーマットの空欄に当てはめればよい。シード値はコードを判別するためだけの値であるから、これを特に乱数生成に絡める必要は無い。
【００６８】
場合によっては乱数ではなく、コマンドをより隠蔽しやすくするよう故意に生成された値列でもコードとなり得る。例えば全てのコマンドで同じ値を「５→５」と続けている場合などでは、コードの無意味な部分にも「５→５」という値列を挿入しておく、などの方法である。コード表生成機能１５１１は、コード表の生成が完了したら、そのコード表をコード表出力機能１５１０に渡す。コード表出力機能１５１０は、それを受けて印刷装置１４１０にコード表を出力すると共に、同一のコード表を新たなコード表として利用者認証手段２１１のコード表データベース１５０９に登録する。登録されたコード表は利用者とサービスサーバ間の通信２００７が完了するまで保管される。
【００６９】
その後、利用者１０１は、印刷出力されたコマンド表１４１２、及びコード表１４１３を携帯して公共端末１４０２まで移動する（２００８）。この際、利用者はこれらの表が攻撃者に渡らないように注意を払う必要がある。公共端末１４０２を用いてＷｅｂサーバ１４０４にアクセスしている際に、特に秘密にすべき重要な操作、例えばパスワードの入力や、氏名、年齢などの個人情報の入力などを行うシーンが発生すると、次のＷｅｂサービスの利用直前（２０１０）の処理を行ったうえで、利用者１０１とＷｅｂサーバ１４０４間の通信（２００７）を行うことで、操作代行装置ソフトウェア１４０８に操作を代行させることができ、公共端末１４０２及びインターネット１４０３を経由させることなく操作を完了することができ、目的を達成できる。
【００７０】
Ｗｅｂサービス利用直前（２０１０）には、埋め込むコマンドの準備（２００３）、利用するコードの選択（２００５）、送信する値列の構成（２００６）の処理がある。
【００７１】
埋め込むコマンドの準備（２００３）で、利用者１０１は、自身の携帯しているコマンド表１４１２から、操作代行を依頼したいコマンドを探し出す。この際、埋め込むコマンドに追加情報を入力する必要がある場合は、それを追記した完全なコマンドを構成する。図２０は、コマンドの構成例を示す。
【００７２】
まず、利用者１０１は、コマンド表１４１２から利用するコマンド（「予約する部屋番号を入力」）を見つけ出す（１９０７）。本コマンドが実行されると、代理操作装置ソフトウェア１４０８は、利用者１０１に代わりＷｅｂサーバ１４０４に対して部屋の予約という操作を行う。本コマンドには部屋番号を追記する必要があるため、このままでは不完全である。利用者１０１は、この場合、コマンドに追加情報である「部屋番号」を追加する。
【００７３】
利用するコードの選択（２００５）では、完成したコマンドを埋め込むことが可能なコードをコード表１４１３から選択する必要がある。図２０の例では、「シード値４５のコードの５番目の数値がコマンドの先頭と異なる値であり、そこからコマンド長の５個分離れた９番目の値がコマンドの終端と異なる値である」ため、この部分にコマンドを埋め込むことが可能である（１９０６）。
【００７４】
送信する値列の構成（２００６）では、利用者は埋め込む部位をコマンドに置換して送信すべき値列を生成する（１９０３）。この作業は、実際の通信時に行ってもよい。
【００７５】
次いで、その後に公共端末１４０２を経由してＷｅｂサービスの利用を開始する段階を説明する。本段階では利用者１０１は、公共端末１４０２を操作して操作代行を操作代行ソフトウェア１４０８に依頼する。図１９は、この際に送受信される値のシーケンスの例を示す。これにより、利用者１０１もしくはＷｅｂサーバ１４０４が代理操作を要求することができる。
【００７６】
要求が発生するタイミングの具体例としては、例えば、利用者１０１がＷｅｂサイト上でホテルの部屋を予約しようとして、部屋番号の入力に代理入力を選択したタイミングである。操作代行装置ソフトウェア１４０８から見ると、利用者１０１とは直接接続していないため、Ｗｅｂサーバ１４０４経由のコマンド実行要求１５１４がＷｅｂサーバ１４０４から発生しているように見える。Ｗｅｂサーバ１４０４経由のコマンド実行要求１５１４]は、安全なネットワークＶＰＡ１４０５及びそれと接続しているネットワーク接続１５０３を経由してサービス真偽検証手段２０９へ送信される。
【００７７】
ここで、ＶＰＡ１４０５経由で通信内容が保証されているため、サービス真偽検証手段２０９は、Ｗｅｂサーバ１４０４との対話でＷｅｂサーバの真正を検証する。真正検証のためにはＷｅｂサーバ認証情報に格納されているＷｅｂサーバを特徴付ける情報を用いる。Ｗｅｂサーバを特徴付ける情報は、例えばＩＰアドレスなどを用いることができる。
【００７８】
Ｗｅｂサーバ１４０４の真正が確認されたら、サービス真偽検証手段２０９は、自身が所有するＷｅｂサーバリストに含まれるサービスオーダを参照して、該Ｗｅｂサーバに対する操作代行実行の可否を確認する。操作代行実行が可能であれば、サービス真偽検証手段２０９は、Ｗｅｂサーバ１４０４からのコマンド実行要求１５０２を利用者認証手段２１１に接続する。この接続は内部接続により実現される。
【００７９】
利用者認証手段２１１のメッセージ正当性確認機能１５０６は、図９Ａ〜Ｃ、図１１の際に説明した処理を行う。図１９は、これらの処理の具体例を示す。図示のように、シーケンス１８５６を受信した段階で、メッセージ正当性確認機能１５０６は、それまでの入力異常が入力異常ではなくコマンドであると推測する。正当性確認機能１５０６は、コマンドと推測された値列をコマンド解釈機能１５０７に渡しコマンドの実行を要請する。コマンド解釈機能１５０７は、コマンドデータベース１５０８に格納されているコマンドの一覧から、該当するコマンドとそれに対応する操作を見つけ、コマンドの解釈を行う。実行するコマンドが判明した段階で、コマンド解釈機能１５０７は、サーバ操作代行手段２１５]にコマンドの実行を依頼する。コマンド操作実行機能１５１２は、コマンド実行用プロトコルスタック１５１３を操作して対象のＷｅｂサーバ１４０４に対して操作代行を実行する。操作命令をＷｅｂサーバに伝える方法としては、ＳＯＡＰなどの既存技術の利用が可能である。
【００８０】
本実施例のシステム４００によれば、安全性が保証されていないために操作命令の改ざん、盗聴、成り済まし、破棄などの危険性がある公共端末及びインターネットを経由しても、サービスサーバに対して安全に操作命令を実行できる。その理由は、端末に依存しない利用者の手元で実行できる暗号化手段を利用することで端末の危険性リスクを除外できるからである。
【００８１】
また、本実施例のシステム４００によれば、安全性が保証されていない公共端末及びインターネットを経由して、利用者とＷｅｂサーバ相互に相手を信頼して、安全に操作を実行できる。その理由は、擬似的な暗号ストリームを構築する暗号化手順を用いることで、攻撃があったことを直ちに検知できるからである。
【００８２】
さらに、本実施例のシステム４００によれば、送信情報が破棄される危険性がある公共端末及びインターネットを経由してＷｅｂサーバを介して安全に操作命令を送信することができる。その理由は、情報が秘匿通信路に送信されるタイミングを隠蔽できる手法が用いられているからである。
【００８３】
＜第２の実施例＞
本第２の実施例は、前述した第１の実施例におけるコマンド表、コード表の携帯方式を変更し、ネットワーク上に利用者宅選択装置を加えることで、複数の利用者による同時利用に対応したものである。図２１を参照して説明する。
【００８４】
本実施例のシステム３０００は、Ｗｅｂサーバ２１１３を複数の利用者（２１０５、２１１１）が同時に利用する事を想定して構成されている。図２１にて、利用者は二人であるが、複数であれば何人でもよい。本実施例では、第１の実施例で説明した操作代行装置ソフトウェア１４０８を各利用者宅（２１３０、２１２９）に配置している（図中２１２７、２１２２）。また利用者に対してコード表とコマンド表を提示する手段として携帯端末２１０６と２１０７を用いている点と、安全ネットワークとしてＮＧＮ２１１６を用いている点とが第１の実施例と異なる。また、Ｗｅｂサーバ２１１３と安全ネットワークＮＧＮ２１１６間に、利用者選択装置２１１５が配置されている点も、第１の実施例と異なる。
【００８５】
本実施例では、利用者視点での動作は第１の実施例と基本的には同じであるが、コード表、コマンド表の部分について第１の実施例と異なる。本実施例ではコード表、コマンド表は携帯端末２１０６と２１０７に電子的に記録される。利用者は代行したい操作を携帯端末に入力することで、その操作を示すコマンドの選択処理、コマンドに適したコードの選択処理（８０９）、コードへのコマンド置換処理は携帯端末上で自動的に行われ、利用者に対しては次に入力すべき値が携帯端末から提示される。利用者は携帯端末に表示された値を信頼できない端末２１０４と２１１０の画面を通じて入力する。また、操作代行装置からの返答Ｒについても利用者は画面上からＲを読み取り携帯端末に入力する。入力を受けた携帯端末では処理結果の判別処理を電子的に行い処理結果の成否を利用者に提示する。Ｗｅｂサーバ２１１３は、Ｗｅｂ  ＡＰＩ２１１４を経由して利用者選択装置２１１５に接続する。利用者選択装置２１１５は、接続してきた利用者を判別し、各利用者の利用者宅の操作代行装置（２１２７、２１２２）に対してＷｅｂサーバ２１１３を再接続する。これ以降の動作については第１の実施例と同様である。利用者宅選択装置２１１５については、例えばＷｅｂ画面で利用者に対して自身の情報を入力させる、などの方法により利用者を判別する事を実現する。
【００８６】
本第２の実施例のシステム３０００は、第１の実施例のシステム４００と同様の効果を得ることができる。さらに、Ｗｅｂサーバ２１１３が同時に複数の利用者に対して本発明を利用したサービスを提供する事が可能である。同様に、各利用者は自宅に自身の操作代行装置及びそれに関する情報を保管する事が可能であり、自身がそれらの情報を管理する事により安心感を得られる。
【００８７】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述各実施の形態、実施例に対して、さまざまな変更、増減、組合せを加えてもよい。これらの変更、増減、組合せが加えられた変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【００８８】
１  ワンタイムパスワード認証システム  １０  ＯＴＰ生成機
３０  利用者端末装置  ５０  認証サーバ装置
９０  ネットワーク  １００  システム
１０１  利用者  １０２  ＧＵＩ
１０３  端末装置  １０４  ネットワーク
１０５  サービスサーバ  ２０６  安全ネットワーク
２０７  外部接続  ２０８  外部接続
２０９  サービス真偽検証手段  ２１０  内部接続
２１１  利用者認証手段  ２１２  内部接続
２１３  コード表生成手段  ２１４  内部接続
２１５  サーバ操作代行手段  ２１６  操作代行装置
２１７  経路  ２１８  コード表
３０２  コード  ３０３  コード
３０４  コード  ３０５  応答セット
４００  システム  １４０１  公共の場
１４０２  公共端末  １４０３  インターネット
１４０４  Ｗｅｂサーバ  １４０５  ＶＰＡ
１４０６  社宅  １４０７  ネットワーク接続
１４０８  操作代行装置ソフトウェア  １４０９  家庭内サーバ
１４１０  印刷装置  １４１１  紙出力
１４１２  コマンド表  １４１３  コード表
１４１４  出力指示用デバイス  １４１５  安全な経路
１５０１  コマンド実行結果応答  １５０２  コマンド実行要求
１５０３  Ｗｅｂサーバ正当性確認機能  １５０４  Ｗｅｂサーバ認証情報
１５０５  Ｗｅｂサーバリスト  １５０６  メッセージ正当性確認機能
１５０７  コマンド解釈機能  １５０８  コマンドデータベース
１５０９  コード表データベース  １５１０  コード表出力機能
１５１１  コード表生成機能  １５１２  コマンド操作実行機能
１５１３  コマンド実行用プロトコルスタック  １５１５  内部接続
１５１７  内部接続  １５１８  安全な経路
１６０１  コード表の例  ２１０４  端末
２１０５  利用者  ２１０６  携帯端末
２１０７  携帯端末  ２１１０  端末
２１１１  利用者  ２１２２  操作代行装置ソフトウェア
２１１３  Ｗｅｂサーバ  ２１１５  利用者選択装置
２１２７  操作代行装置ソフトウェア  ２１２９  利用者宅
２１３０  利用者宅  ２１１４  Ｗｅｂ  ＡＰＩ
２１１６  ＮＧＮ  ３０００  システム
【図１】
0005549507.tif 000002
【図２】
0005549507.tif 000003
【図３】
0005549507.tif 000004
【図４】
0005549507.tif 000005
【図５】
0005549507.tif 000006
【図６】
0005549507.tif 000007
【図７】
0005549507.tif 000008
【図８】
0005549507.tif 000009
【図９Ａ】
0005549507.tif 000010
【図９Ｂ】
0005549507.tif 000011
【図９Ｃ】
0005549507.tif 000012
【図１０】
0005549507.tif 000013
【図１１】
0005549507.tif 000014
【図１２】
0005549507.tif 000015
【図１３】
0005549507.tif 000016
【図１４】
0005549507.tif 000017
【図１５】
0005549507.tif 000018
【図１６】
0005549507.tif 000019
【図１７】
0005549507.tif 000020
【図１８】
0005549507.tif 000021
【図１９】
0005549507.tif 000022
【図２０】
0005549507.tif 000023
【図２１】
0005549507.tif 000024
【図２２】
0005549507.tif 000025