(58)【調査した分野】(Int.Cl.,DB名)
ハードキーボード又は表示部に表示された第1のソフトキーボードの各キーに対するユーザ操作により前記各キーに割り当てられた文字が入力されたとき、当該文字と異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字を出力するプロセッサを備え、
前記プロセッサは、
前記ハードキーボード又は前記第1のソフトキーボードの各キーに割り当てられた文字に対して、当該文字とは異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字を前記各キーに割り当てた第2のソフトキーボードを生成し、前記第1のソフトキーボードの各キーに対するユーザ操作により当該キーに割り当てた文字が入力されたとき、当該キーに対応する前記第2のソフトキーボードのキーに割り当てた文字を出力し、
ユーザ操作により前記第1のソフトキーボードの各キーに割り当てられた文字が入力される場合において前記情報処理装置がアクセスした認証局における統一位置資源子の一部である固有情報に基づいて、前記第2のソフトキーボードの各キーに対する文字の割り当てを行う
ことを特徴とする情報処理装置。
前記プロセッサは、前記第1のソフトキーボードの各キーに割り当てられた文字に対して空白文字を前記表示部に表示させることを特徴とする請求項1記載の情報処理装置。
前記プロセッサは、前記第1のソフトキーボードの各キーに割り当てられた文字に対してボタン又は記号を前記表示部に表示させることを特徴とする請求項1記載の情報処理装置。
【発明を実施するための形態】
【0017】
以下、本発明を実施するための形態について説明する。
【0018】
[第1の実施の形態]
第1の実施の形態について説明する。
図1は第1の実施の形態における情報処理装置10の構成例を表している。
【0019】
情報処理装置10は、例えば、スマートフォン、フィーチャーフォン、タブレット、パーソナルコンピュータ、ゲーム装置などである。情報処理装置10は、例えば、スマートデバイスと称する場合がある。
【0020】
情報処理装置10は、ハードキーボード101、表示部102、プロセッサ160を備える。また、表示部102は第1のソフトキーボード103を表示する。ただし、情報処理装置10は、ハードキーボード101と第1のソフトキーボード103のうちいずれか一方を備えるようにしてもよい。
【0021】
第1のソフトキーボード103は、例えば、表示部102の画面上をユーザが操作(タップ操作やなぞる操作など)することで、第1のソフトキーボード103の各キーに対する操作を行うことができる。
【0022】
プロセッサ160は、ハードキーボード101又は表示部102に表示された第1のソフトキーボード103の各キーに対するユーザ操作により前記各キーに割り当てられた文字が入力されたとき、当該文字と異なる種類の文字を出力する。又は、プロセッサ160は、ユーザ操作により前記各キーに割り当てられた文字が入力されたとき、当該文字と同一種類で当該文字とは異なる文字を出力する。
【0023】
例えば、ユーザ操作によって”1234”を入力した場合、情報処理装置10は当該文字と同一の種類(数字)であって入力した文字と異なる文字からなる文字列”9935”を出力する。このように、本情報処理装置10はユーザが単なる数字の昇順をパスワードとして入力しても、関連性がない文字列がパスワードとして出力することができる。
【0024】
また、例えば、ユーザ操作によって、”1234”を入力した場合、情報処理装置10は当該文字と異なる種類(大文字のアルファベット、小文字のアルファベット、又は記号)の文字からなる文字列”Axj!”を出力することができる。このように、ユーザが単なる数字の昇順をパスワードとして入力しても、関連性がない文字列をパスワードとして出力することができる。
【0025】
情報処理装置10から出力される文字がパスワードとして認証局などに送信されることで、例えば、認証局ではパスワードに基づく認証を行うことになる。これにより、例えば、サービスに対するパスワードの設定を行うことが可能となる。
【0026】
従って、本情報処理装置10は、ユーザが簡易なパスワードを入力しても一定の場合よりも強度の高いパスワードを設定することできる。
【0027】
また、
図1に示すように本情報処理装置10では、プロセッサ160において文字を出力するようにしているが、出力する文字をメモリなどに保存することはしていない。従って、本情報処理装置10ではパスワードを装置内に保存しなくてもパスワードの設定が可能となる。
【0028】
[第2の実施の形態]
次に第2の実施の形態について説明する。
【0029】
<情報処理装置(又はスマートデバイス)の構成例>
情報処理装置の構成例について説明する。
図2は情報処理装置10の構成例を表す図である。情報処理装置10は、例えば、スマートデバイスなどと称される場合がある。スマートデバイスとは、例えば、フィーチャーフォン、スマートフォン、タブレット、パーソナルコンピュータ、ゲーム装置などの端末装置である。スマートデバイス10は、無線通信又は有線通信を行うことができ、或いは無線通信も有線通信も双方とも行うことも可能である。以下では、情報処理装置10としてスマートデバイスを例にして説明する。
【0030】
スマートデバイス10は、インターネットなどのネットワークへアクセスし、ネットワークを介して様々なサービスの提供を受けることができる。サービスとしては、例えば、短文投稿サイトへの書き込みや読み出しなどのサービス、テキストチャットサービス、インターネット電話サービス、などがある。例えば、スマートデバイス10は、ネットワークを介して、サービスを提供するサーバ装置にアクセスし、当該サーバ装置から種々のサービスの提供を受けることができる。
【0031】
スマートデバイス10においてこのようなサービスを受ける場合、パスワードが要求される場合がある。ユーザはスマートデバイス10を介してパスワードを入力する。入力されたパスワードは認証局に送信され、認証局においてパスワードに基づいて認証が行われる。認証局において認証により許可されるとスマートデバイス10はサービスの提供を受けることが可能となる。
【0032】
なお、スマートデバイス10に対してユーザが入力するパスワードは、1文字でも良いし、複数の文字からなる文字列でもよい。また、スマートデバイス10から出力されるパスワードも、1文字でも良いし、文字列でもよい。例えば、文字列とは連続した複数の文字のことであるが、以下においては、文字列と文字とをとくに区別することなく用いる場合がある。
【0033】
また、本第2の実施の形態における文字の種別としては、例えば、大文字のアルファベット(以下、「大文字」と称する場合がある)、小文字のアルファベット(以下、「小文字」と称する場合がある)、数字、記号がある。パスワードとして用いられる文字は、例えば、このような文字の種類に含まれる文字が用いられるものとする。
【0034】
図2に示すようにスマートデバイス10は、アプリケーション100、初期シード保存DB(Data Base)110、乱数発生器120、設定データ保存DB130、入力メソッド140、ソフトキー表示部(又はハードキーボード)150を備える。
【0035】
なお、第1の実施の形態におけるハードキーボード101は、例えば、ハードキーボード150に対応する。また、第1の実施の形態における表示部102は、例えば、ソフトキー表示部150に対応する。
【0036】
なお、アプリケーション100、乱数発生器120、及び入力メソッド140は、例えば、プロセッサ160により実行(又は実現)される機能である。例えば、プロセッサ160が所定のプログラムを実行することで、アプリケーション100、乱数発生器120、及び入力メソッド140の各機能を実行することができる。以下では、例えば、プロセッサ160により実行される機能として、アプリケーション100や乱数発生器120、及び入力メソッド140について説明する。
【0037】
アプリケーション100は、例えば、ブラウザ・アプリケーションなどである。アプリケーション100は、サービスを提供するサーバ装置などにアクセスしてコンテンツを取得(又はダウンロード)し、取得したコンテンツをWebページとしてソフトキー表示部150に表示させる。
【0038】
また、アプリケーション100は、例えば、ソフトキー表示部150に表示されたWebページに対するユーザ操作に応じて入力メソッド140を起動させる。具体的には、HTML(Hyper Text Markup Language)言語で記述されたコンテンツの場合、type属性が”password”のinput要素(又は「入力要求」)をユーザが選択(又は指定)した場合、アプリケーション100(又はプロセッサ160)がメモリから所定のプログラムを読み出して実行することで入力メソッド140を起動させる。入力メソッド140が起動されることで、スマートデバイス10において文字の入力が可能となり、ユーザはパスワードの入力が可能となる。
【0039】
さらに、アプリケーション100は固有情報を生成し、生成した固有情報を入力メソッド140へ出力する。固有情報は、例えば、パスワード入力画面がソフトキー表示部150に表示された場合においてアプリケーション100がアクセスしたURL(Uniform Resource Locator:統一資源位置指定子)の一部である。
【0040】
例えば、パスワード入力画面のURLが「www.exmaple.co.jp/login.html?uid=1234」の場合、ファイル名やパラメータ名を除いたドメイン部(又はドメイン名)(「www.exmaple.co.jp」)であって、当該ドメイン部のうち最末端部(「www」)を除いた部分(「exmaple.co.jp」)が固有情報となる。
【0041】
なお、アプリケーション100が固有情報を生成して入力メソッド140へ送信しているが、これは、アプリケーション100において固有情報を生成するためのプログラムが実行されることでこのような機能を実現している。ブラウザ・アプリケーション100は、デバイス固有のアプリケーションとなっている場合が多く、アプリケーション100においてこのようなプログラムを作成しておくことは比較的容易である。従って、デバイスメーカでビルドイン(又はスマートデバイス10と一体的に作成)された、又は、ダウンロードされた、ブラウザ・アプリケーション100によって固有情報が取得可能であるとする。なお、固有情報は、アプリケーション100からOS(Operating System)を経由して入力メソッド140へ出力されてもよい。
【0042】
さらに、アプリケーション100は入力メソッド140からパスワードとして送信された文字列を受信し、受信したパスワードを認証局などへ送信する。認証局などにおいてパスワードに基づく認証が行われる。
【0043】
初期シード保存DB110は初期シード(又はシード値)を記憶する。初期シードは、例えば、乱数が生成されるときに使用される最初の設定値のことである。初期シードは、例えば、ユーザがソフトキー表示部150に表示されたソフトキーボード(以下では、「ソフトキー」と称する場合がある)又はハードキーボード150を操作することでスマートデバイス10に入力される。プロセッサ160は、ユーザ操作を検知し、入力された文字又は文字列を初期シードとして初期シード保存DB110に格納する。ユーザにより入力された任意の文字又は文字列そのものを初期シードとすることもできるし、入力された文字又は文字列に対して加工(例えばハッシュ値への変換)した加工物を初期シードとしてもよい。
【0044】
初期シードは、パスワードとして実際にサービスを受けるときに直接使用されるものではないため、一定の場合よりも強度が高い文字列にしなくてもよい。また、初期シードは乱数の生成に使用されるものであり、ユーザが関知しないデータであってもよい。このようなデータの例としては、スマートデバイス10の製造番号やSIM(Subscriber Identity Module)カードのICCID(Integrated Circuit Card Identifier)(SIMカード固有の識別番号)などがある。プロセッサ160はRAMやSIMカードのメモリからこのようなデータを読み出して、初期シード保存DB110に格納してもよい。
【0045】
乱数発生器120は、初期シード保存DB110から初期シードを読み出し、入力メソッド140から固有情報を受け取り、初期シードと固有情報とに基づいて乱数を発生(又は生成)する。乱数の生成方法は、例えば、特定のハッシュ関数を使用するものや疑似乱数列を使用するもの、疑似乱数列としてrand関数やメルセンヌ・ツイスタを用いるものなど、公知の生成方法でよい。
【0046】
設定データ保存DB130は設定データ(又は設定値、以下、とくに区別することなく「設定データ」と称する場合がある)を記憶する。設定データとしては、例えば、設定文字数などがある。設定文字数とは、例えば、ソフトキー表示部(又はハードキーボード)150における一つ一つのキーに対して割り当て可能な文字数を表す。
図2の例では、ソフトキー表示部(又はハードキーボード)150の[1]キーに対して、[Aq]の2文字が割り当てられており、この場合の設定文字数は「2」となる。[1]キーに対して[A]が割り当てられる場合は、設定文字数は「1」となる。このような設定データは、例えば、ユーザによるハードキーボード150の操作やソフトキー表示部150に表示されたソフトキーボードに対する操作により、予め設定データ保存DB130に格納されるものとする。或いは、設定データ保存DB130において予めデフォルトデータが格納されていてもよい。
【0047】
入力メソッド140は、例えば、スマートデバイス10に文字を入力させるための機能ブロックである。例えば、日本語の場合、平仮名文字や片仮名文字をハードキーボード150やソフトキーボードの各キーに一つ一つ割り当てるのは困難であるため、複数のキーを組み合わせて平仮名文字や片仮名文字の入力が可能となっている。このような文字の入力を可能にする機能が、例えば、入力メソッド140である。スマートフォンなどの場合でも、ソフトキーボードが表示される領域は他のスマートデバイスと比較して小さく、そのため、アルファベットの入力に対するキーも不足している。このような場合を考慮して、入力メソッド140ではアルファベットなどを含む文字の入力を可能としている。
【0048】
なお、入力メソッド140は、例えば、フロントエンドプロセッサ(FEP)やインプットメソッドなどと称される場合もある。入力メソッド140は、例えば、OS(Operating System)において標準的に装備される場合がある。
【0049】
また、入力メソッド140は、アプリケーション100から取得した固有情報を乱数発生器120へ出力し、乱数発生器120は初期シード保存DB110から取得した初期シード値と、入力メソッド140から取得した固有情報によって乱数を生成する。そして、入力メソッド140は、取得した乱数と設定データ保存DB130から読み出した設定文字数に基づいて、ハードキーボード又はソフトキー表示部150に表示されたソフトキーボードの各キーに対して文字を割り当てる。
【0050】
この場合、入力メソッド140は、ハードキーボード又はソフトキー表示部150に表示されたソフトキーボードの各キーに対して、当該文字とは異なる種類の文字、又は当該文字とは同一種類であって当該文字とは異なる文字をランダムに割り当てる。
【0051】
図2の例では、入力メソッド140は、ソフトキー表示部150に表示された[1]キーに対して”Aq”を割り当て、[2]キーに対して”x3”を割り当て、[3]キーに対して”j+”を割り当てている。
【0052】
入力メソッド140は、このようにランダムに割り当てたソフトキーボードを生成し、生成したソフトキーボードに基づいて、パスワードとして文字又は文字列を出力する。従って、ユーザがハードキーボード又はソフトキー表示部150に表示されたソフトキーボードに対する操作によりパスワードとして文字列を入力すると、当該文字列とは異なる種類の文字列を出力する。或いは、入力メソッド140は、当該文字列とは同一の種類の文字列であって当該文字列とは異なる文字列を出力する。この出力する文字列がアプリケーション100に対して設定されるパスワードとなっている。
図2の例では、ユーザが[1][2][3][4]キーをこの順番で入力すると、入力メソッド140は、文字列”Aqx3j+!S”をパスワードとしてアプリケーション100へ出力する。
【0053】
ソフトキー表示部(又は表示部)150は、例えば、液晶モニタであって、入力メソッド140又はアプリケーション100の指示によりソフトキーボードを表示する。ユーザがソフトキー表示部150に表示されたソフトキーボードをタップしたりなぞったりするなどの操作を行うと、ソフトキー表示部150はこれを検知し、操作したキーに対応する位置情報とキーコードなどをアプリケーション100へ送信する。キーコードは、各キーを一意に識別する識別情報である。ソフトキー表示部150はユーザによるソフトキーボード上の操作を検知するためにタッチセンサなどを備えるようにしてもよい。なお、ソフトキー表示部150は、例えば、Webページの表示など、ソフトキーボード以外の表示を行ってもよい。
【0054】
ハードキーボード150は、例えば、スマートデバイス10に接続された物質的な装置としてのキーボードである。
【0055】
<動作例>
次にスマートデバイス10における動作例について説明する。
図3及び
図4は動作例を表すフローチャートである。このうち、
図3はキーに対する文字の割り当てに関する動作例を表しており、
図4は割り当て後、パスワードが出力されるまでの動作例を表している。
図3及び
図4における各処理は、例えば、入力メソッド140において行われる。なお、以下においては、ハードキーボード150の場合とソフト表示部150に表示されるソフトキーボードの場合において、代表してソフトキーボードを例にして説明することにする。
【0056】
<1.新規のソフトキーボードの生成処理>
入力メソッド140は処理を開始すると(S10)、アプリケーション100からイベントを受信する(S11)。例えば、入力メソッド140は、入力要求のイベントや、他のアプリケーションが起動されたことを示すイベントなど、各種イベントをアプリケーション100から受信する。
【0057】
次に、入力メソッド140はイベントの付加情報を取得する(S11)。付加情報としては、例えば、入力要求のイベントの場合、パスワードモードやデキストモードなどのモードの種別、入力文字数などがある。例えば、入力メソッド140は、アプリケーション100からイベントの付加情報を取得する。
【0058】
なお、イベントや付加情報は、例えば、アプリケーション100において生成される。例えば、アプリケーション100はHTML言語によるコンテンツを取得した場合、ユーザによってtype属性が”password”であるinput要素が選択されると、イベントとして入力要求、付加情報としてパスワードモードを入力メソッド140へ出力する。また、アプリケーション100は、ユーザによってtype属性が”text”であるinput属性が選択されると、イベントとして入力要求、付加情報としてテキストモードを入力メソッド140へ出力する。
【0059】
次に、入力メソッド140は、イベントが入力要求か否かを判別する(S13)。例えば、入力メソッド140はアプリケーション100から受信したイベントが「入力要求」であるか否かにより判別する。
【0060】
入力メソッド140は、イベントが「入力要求」ではないとき(S13でNo)、当該イベントに対応した処理を行い、一連の処理を終了する(S14)。例えば、入力メソッド140は入力要求以外のイベント(例えば、「他のアプリケーションが起動された」)などを受信すると、当該イベントに対応した処理を行い、一連の処理を終了する。
【0061】
一方、入力メソッド140は、イベントが「入力要求」のとき(S13でYes)、入力要求がパスワードモードか否かを判別する(S15)。例えば、入力メソッド140は、パスワードモードであることを示す付加情報をアプリケーション100から受信したか否かにより判別する。
【0062】
入力メソッド140は、入力要求がパスワードモードではないとき(S15でNo)、他のモードによる入力要求に関する処理を行う(S16)。例えば、入力要求であっても、テキストモードの場合は、入力メソッド140は入力したテキストをアプリケーション100へ出力するなどの処理を行う。
【0063】
一方、入力メソッド140は、入力要求がパスワードモードのとき(S15でYes)、設定データを設定データ保存DB130から取得する(S17)。この場合、入力メソッド140は、設定データとして、設定文字数と入力可能な文字種を取得する。入力可能な文字種としては、例えば、大文字、小文字、数字、又は記号がある。
【0064】
次に、入力メソッド140は、ソフトキー表示部150に表示されたソフトキーボードの全てのキーのうち、削除キーやカーソル移動キーなどの制御キーを除く、文字入力が可能な1つ1つのキーに対して、S18からS23までの処理を繰り返す(ループ1)。
【0065】
また、入力メソッド140は、設定文字数で設定した文字数の1文字1文字について、S20からS23までの処理を行う(ループ2)。
【0066】
ループ1とループ2により、例えば、入力メソッド140は表示されたソフトキーボードのキー1つ1つに対して、設定文字数の1文字1文字について、S21からS23を行う。
【0067】
入力メソッド140は、S21において、固有情報を乱数発生器120へ出力し、乱数発生器120から乱数を取得する。この場合、入力メソッド140は、S20からS23までのループ中において毎回、乱数発生器120から乱数を取得するのではなく、最初に乱数を取得した後はメモリに記憶しておき、その都度、メモリから乱数を取得するようにしてもよい。
【0068】
次に、入力メソッド140は、入力可能な文字種から乱数に従って文字を選択する(S22)。
【0069】
例えば、入力メソッド140は以下のようにして文字を選択する。すなわち、得られた乱数が「n」(nは自然数)、入力可能な文字の個数が「m」個あるとする。n≦mの場合、入力メソッド140は入力可能な文字の中でn番目の文字を選択する。他方、n>mの場合、入力メソッド140は、mod(n,m)番目の文字を選択する。この場合、mod(n,m)はnをmで割った余りを表している。
【0070】
具体的には、大文字と小文字は全部で52種類、数字は10種類、記号が10種類あるとして、入力可能な文字の個数が「72」個ある場合を考える。この場合、得られた乱数が「30」のとき、入力メソッド140は30番目の文字(例えば”d”)を選択する。また、得られた乱数が「100」の場合、入力メソッド140はmod(72,100)=28番目の文字(例えば”b”)を選択する。
【0071】
次に、入力メソッド140は処理対象となるキーに対して文字を割り付ける(S23)。例えば、入力メソッド140は、処理対象となるキーに対してS22で選択した文字を割り当てる。入力メソッド140は、割り当て後、各キーのキーコードと当該キーに対して割り当てた文字とを対応させてメモリなどに記憶する。
【0072】
例えば、入力メソッド140は、[1]キーに”A”を割り当てた場合、[1]キーのキーコード”KEYCODE_1”と”A”とを対応させてメモリに記憶する。
【0073】
入力メソッド140は、設定文字数分、S20からS23を繰り返すと、S18へ移行して、処理対象となるキーを変えて、再び、S10からS23までの処理を繰り返す。入力メソッド140は、このような処理を、ソフトキー表示部150に表示されたソフトキーボードの全てのキーに対して処理を行うと処理はS24へ移行する。入力メソッド140は、例えば、全てのキーに対して文字を割り当てると、ソフトキーボードを新規に生成することになり、このようなソフトキーボードがメモリに記憶される。
【0074】
次に、入力メソッド140はソフトキー表示部150にソフトキーボードを表示する(S24)。入力メソッド140は、乱数に従った文字の割り当てを終了し、ユーザが操作する対象となるソフトキーボードをソフトキー表示部150へ表示させる。
【0075】
ユーザが操作する対象となるソフトキーボードの表示は、例えば、以下のようにして行われる。すなわち、入力メソッド140は各キーの位置情報(例えば(x1,y1)など)とキーコードをメモリから読み出してソフトキー表示部150へ出力する。ソフトキー表示部150では、これらの情報に従って各位置にキーを表示することでソフトキーボードを表示する。
図2では、ソフトキー表示部150に表示されるソフトキーボードはテンキー仕様となっている例を表している。
【0076】
<2.パスワード出力処理>
入力メソッド140は、パスワード出力処理を開始すると(S30)、イベントとイベントの付加情報をアプリケーション100から受信する(S31,S32)。
【0077】
例えば以下のような処理が行われる。すなわち、ユーザがソフトキー表示部150に表示されたソフトキーボードをタップすると、ソフトキー表示部150のタッチセンサなどがこれを検知して、タップイベントとともに、操作したソフトキーボードのキーコードをアプリケーション100へ通知する。
【0078】
ハードキーボード150やソフトキー表示部150に表示されたソフトキーボードの各キーに対して、一意のキーコードが割り当てられている。例えば、キーが[1],[2],…[0],[#],[*]に対しては、キーコードとして”KEYCODE_1”,”KEYCODE_2”,…,”KEYCODE_0”,”KEYCODE_POUND”,”KEYCODE_STAR”が夫々割り当てられている。例えば、ユーザが[1]キーをタップすると、ソフトキー表示部150は[1]キーに対するキーコード”KEYCODE_1”をアプリケーション100へ送信する。
【0079】
アプリケーション100は、取得したタップイベントに基づいてキー入力イベントを生成し、取得したキーコードとタップ数(又は入力文字数)を含む付加情報を生成する。アプリケーション100は、生成したキー入力イベントと付加情報を入力メソッド140へ送信する。
【0080】
次に、入力メソッド140は、受信したイベントがキー入力イベントか否かを判別する(S33)。例えば、入力メソッド140は、アプリケーション100からキー入力イベントを受信したか否かにより判別する。
【0081】
入力メソッド140は、受信したイベントがキー入力イベントではないとき(S33でNo)、受信した他のイベントに対する処理を行い、一連の処理を終了する(S34)。
【0082】
一方、入力メソッド140は、受信したイベントがキー入力イベントのとき(S33でYes)、キーの種別を判別する(S35)。例えば、入力メソッド140は、アプリケーション100から付加情報として受信したキーコードに基づいてキーの種別を判別する。
【0083】
入力メソッド140は、キーの種別が「文字入力キー」のとき(S35で「文字入力キー」)、キーに割り当てた文字を取得する(S36)。
【0084】
例えば、以下の処理が行われる。すなわち、入力メソッド140は、付加情報として受信したキーコードが”KEYCODE_1”から”KEYCODE_0”、”KEYCODE_STAR”、”KEYCODE_POUND”のいずかであればキーの種別が「文字入力キー」と判別する。そして、入力メソッド140は、メモリにアクセスして、付加情報として受信したキーコードに対応する割り当て文字を読み出す。
図2の例では、入力メソッド140は、キー[1]のキーコード”KEYCODE_1”に対応する文字”Aq”、キー[2]のキーコード”KEYCODE_2”に対応する文字”x3”などをメモリから夫々取得する。
【0085】
次に、入力メソッド140は、取得した文字をアプリケーション100へ送信する(S37)。例えば、入力メソッド140は、キー[1][2][3][4]に対応する文字列”Aqx3j+!S”をアプリケーション100へ送信する。
【0086】
次に、入力メソッド140は、ループ1を繰り返す(S38〜S40)。ループ1の処理は
図3におけるループ1と同様である。この動作例の詳細については第6の実施の形態において説明する。本第2の実施の形態では、入力メソッド140はループ1を行うことなく、一連の処理を終了する(S41)。
【0087】
一方、入力メソッド140は、キーの種別がその他の制御キーのとき(S35で「その他の制御キー」)、その他の制御キーに対する処理を行う(S42)。その他の制御キーとしては、例えば、カーソルを左右に移動させるキー、入力した文字を削除するキー、メニューキーなどがある。入力メソッド140は、付加情報として受信したキーコードがこのような制御キーである場合、当該制御キーに対応する処理(カーソルを左右に移動させたり、入力した文字を削除したりするなど)を行う。
【0088】
一方、入力メソッド140は、キーの種別が決定キーのとき(S35で「決定キー」)、確定イベントをアプリケーション100へ送信する(S43)。例えば、入力メソッド140は、取得したキーコードが”KEYCODE_SELECT”や”KEYCODE_ENTER”のとき、入力した文字を確定したことを表す確定イベントをアプリケーション100へ送信する。
【0089】
なお、
図4の動作例では、入力メソッド140は文字を取得するとアプリケーション100へ送信しているが(S37)、例えば、取得した文字をメモリなどに保持しておき、本処理(S43)において、確定イベントとともに取得した文字をアプリケーション100へ送信してもよい。この場合、決定キーの操作により、入力メソッド140は取得した文字をアプリケーション100へ送信する。
【0090】
次に、入力メソッド140は、ソフトキー表示部150に表示されたソフトキーボードを消去する(S44)。例えば、入力メソッド140は、ソフトキー表示部150に対してソフトキーボードの表示の停止を指示し、ソフトキー表示部150はこの指示に従って画面上に表示されたソフトキーボードを消去する。
【0091】
そして、入力メソッド140は一連の処理を終了する(S41)。
【0092】
このように本第2の実施の形態においてスマートデバイス10は、ハードキーボード150又はソフトキーボードの各キーに対して、当該キーに割り当てられた文字とは異なる種類の文字、又は当該キーに割り当てられた文字とは同一種類であるが当該文字とは異なる文字を割当てたソフトキーボードを生成している。そして、スマートデバイス10は、ハードキーボード150又はソフトキーボードの各キーに対する操作が行われたとき、生成したソフトキーボードに基づいて、操作により入力された当該キーに割り当てられた文字とは異なる種類の文字、又は当該文字とは同一種類であって当該文字とは異なる文字を出力する。当該文字がパスワードとして、例えば、サービスを提供するサーバ装置などに送信される。
【0093】
従って、例えば、ユーザが[1],[2],[3],[4]といった昇順の簡易な数字列をパスワードとして入力しても、本スマートデバイス10では、複雑でわかりにくい文字列(”Aqx3j+!S”)をパスワードとすることができる。或いは、ユーザが誕生日などの数字列をパスワードとして入力しても、本スマートデバイス10は、誕生日とは何ら関係のない複雑でわかりにくい文字列をパスワードとして出力できる。
【0094】
また、本スマートデバイス10では、更に、設定文字数によって各キーに対する割り当て文字数を設定できる。上述したように、例えば、ユーザが[1],[2],[3],[4]の4文字を入力したとしても、スマートデバイス10では、”Aqx3j+!S”と8文字のパスワードを出力することができる。このように本スマートデバイス10では、ユーザが入力した文字数よりも多いパスワードを出力することができ、この点からも、より複雑な文字列をパスワードとして出力可能である。
【0095】
よって、本スマートデバイス10では、一般の人よりもセキュリティ意識が低く、またリテラシーの低いユーザが簡易なパスワードを入力しても、一定の場合よりも強度が高いパスワードの設定が可能となる。
【0096】
また、本スマートデバイス10では、初期シードや設定文字数はメモリなどに保存されるものの、パスワード自体はメモリなどに保存していない。従って、本スマートデバイス10は、パスワードを装置内に保存しなくてもパスワードの設定が可能である。このため、本スマートデバイス10ではハッキングなどによるパスワードの流出の可能性を回避できる。初期シードはメモリに保存されるものの、パスワードは初期シードから乱数に基づいて生成されるため、初期シードからパスワードを特定することは困難であり、パスワード流出の可能性は限りなく低い。
【0097】
さらに、本スマートデバイス10では、例えば、URLに基づいてパスワードを生成して出力するようにしている。従って、本スマートデバイス10は異なるサービスに対して異なるパスワードを出力することができる。
【0098】
さらに、乱数発生器120では、例えば、固有情報(例えば、「example.co.jp」)に基づいて乱数を発生している。そのため、本スマートデバイス10では、ドメイン名の詐称(例えば、「example−co.jp」や「example−co−jp.com」など)に対して異なる乱数を発生できる。従って、本スマートデバイス10は、ドメイン名を詐称したサイトなどへは異なるパスワードを出力することになり、ユーザのパスワード流出などを回避でき、ユーザの安全性を確保できる。
【0099】
[第3の実施の形態]
次に第3の実施の形態について説明する。上述した第2の実施の形態においては、入力したパスワードと出力されるパスワードは異なるため、ユーザは、ソフトキー表示部150で表示されるソフトキーボードの各キーについてどのような文字が割り当てられているか気にしなくてもよい。そのため、各キーについて、表示されるソフトキーボードの文字と、ソフトキーボードに割り当てられた文字とが一致しなくてもよい。本第3の実施の形態では、表示されるソフトキーボードの各キーの文字を、割り当てられた文字やキーの配置位置とは無関係に表示させる例について説明する。
【0100】
図5は本第3の実施の形態におけるスマートデバイス10の構成例などを表している。
図5に示す例では、ソフトキー表示部150に表示されるソフトキーボードとしては、左上から順番に[x][0][j]、次段では左から順番に[−][s][n]などとなっている。
図5に示すソフトキーボードの各キーの文字は、
図2に示すソフトキーボードの各キーの文字に対して異なる文字となっている。
【0101】
この場合、ユーザは、第2の実施の形態で説明した[1],[2],[3],[4]の各キーの位置とそのタップ順を記憶しておけばよく、この順番で各キーをタップすればよい。
図5の例では、ユーザは[x],[0],[j],[−]の各キーをタップして入力する。入力メソッド140は、文字列”Axj!”(設定文字数は「1」)をパスワードとして出力する。ソフトキーボードの各キーの表示がどのような表示であっても、ユーザはこの順番で各キーをタップすることで、毎回同じ文字列”Axj!”がパスワードとして出力される。
【0102】
例えば、入力メソッド140は以下のような割り当て処理とパスワード出力処理を行う。すなわち、入力メソッド140は、最初に、
図2に示すソフトキーボードの各キーに対して文字の割り当てを行う(
図3のS18からS23)。このとき、入力メソッド140は、各キーのキーコードと、割り当てた文字とを対応させてメモリに記憶するが、更に、キーの位置情報もこれらに対応させて記憶するようにする。例えば、入力メソッド140は、キーコード”KEYCODE_1”([1]キーを表す)、割り当てた文字”A”、位置情報(x1,y1)をメモリに記憶する。
【0103】
そして、入力メソッド140は、ソフトキーボードの表示を行うが(S24)、例えば、以下のような処理を行う。
【0104】
すなわち、入力メソッド140は、位置情報に基づいてランダムにキーコードを選択する。この場合、入力メソッド140は乱数発生器120を用いて、1つ1つの位置情報に対してキーコードを選択してもよい。これにより、表示されるソフトキーボードの各キーはランダムな文字が表示可能となる。例えば、(x1,y1)に対して、”KEYCODE_x”([x]キーを表す)が選択されたとき、
図5に示すように、ソフトキーボードの左上の位置に「x」キーを表示させることが可能となる。
【0105】
そして、入力メソッド140は、S23でメモリに記憶されたキーコード(例えば”KEYCODE_1”)に代えて、ランダムに選択したキーコード(例えば”KEYCODE_x”)を上書きして記憶する。これにより、メモリには新たにランダムに割り当てたキーコード(例えば”KEYCODE_x”)、割り当てた文字(例えば”A”)、位置情報(例えば、(x1,y1))が対応して記憶される。入力メソッド140は、メモリに記憶された位置情報(例えば(x1,y1))とキーコード(例えば、”KEYCODE_x”)とをソフトキー表示部150へ出力することで、ランダムに割り当てたソフトキーボードが表示される(S24)。
【0106】
ユーザがキー入力を行った場合、アプリケーション100はユーザが操作した位置の位置情報(例えば(x1,y1))をソフトキー表示部150からから取得する。アプリケーション100は付加情報として位置情報を入力メソッド140へ出力し(
図4のS32)、入力メソッド140は位置情報に基づいて、当該位置に割り当てられた文字(例えば、”A”)をメモリから読み出して取得する(S36)。以降は第2の実施の形態と同様に実施できる。
【0107】
標準的なテンキーは左上には[1]キーが配置され、左上のキーに対しては”A”が割り当てられているが、本第3の実施の形態では[1]とも”A”とも無関係の[x]キーが表示される。
【0108】
本第3の実施の形態におけるスマートデバイス10では、表示されたソフトキーボードの各キーに対してランダムに文字を割り当てているため、ユーザがタップしたキーからパスワードを類推することは困難である。例えば、ユーザが[1],[2],[3],[4]と入力した場合よりも、[x],[0],[j],[−]を入力した方が、覗き見した人は混乱が生じる可能性が高い。従って、本第3の実施の形態では、パスワードを覗き見した人を混乱させ、覗き見によるパスワードの流出を防止できる。
【0109】
このようなソフトキーボードのランダムな表示は、例えば、ユーザがパスワード入力後毎回行われてもよいし、一定期間経過毎にランダムに表示するようにしてもよい。例えば、
図3に示すソフトキーボードの表示(S24)について一定期間毎にランダムに割り当てを行うようにしたり、
図4のループ1が終了した後に、ランダム表示によるソフトキーボードの表示(S24)を行うようにしたりすればよい。
【0110】
[第4の実施の形態]
第3の実施の形態でも説明したようにソフトキー表示部150に表示されたソフトキーボードに対してユーザはどのような文字が割り当てられているか気にしなくてもよい。本第4の実施の形態では、表示されるソフトキーボードの各キーに何も表示しないようにした例である。この場合、ユーザはキーの位置と組み合わせをパスワードとして記憶しておけばよい。
【0111】
図6は本第4の実施の形態におけるスマートデバイス10の構成例などを表す図である。
図6に示すように、ソフトキー表示部150にはソフトキーボードが表示されるが、ソフトキーボードの各キーには文字が割り当てられておらず印字のない状態となっている。
【0112】
本第4の実施の形態では、例えば、ユーザは各キーに何も表示されていないキーに対して、左側列を上から順番に4つをタップするものとしてパスワードを記憶しており、この順番で各キーをタップする。この場合、入力メソッド140は文字列”A!9p”をパスワードとしてアプリケーション100へ出力する。
【0113】
例えば、入力メソッド140は以下のような割り当て処理とパスワード出力処理を行う。すなわち、入力メソッド140は、ソフトキーボードに対する文字の割り当てを行う(
図3のS10からS23)が、この場合、各キーの位置情報に基づいて文字の割り当てを行うようにすればよい。例えば、ソフトキーボードの左上のキーに対しては、入力メソッド140は当該キーの位置情報(例えば(x1,y1))に対して文字の割り当て(例えば”A”)を行い、位置情報と割り当てた文字とを対応させてメモリに記憶する。
【0114】
また、入力メソッド140は、例えば、各キーに対して何も印字されていないソフトキーボードに関する情報をメモリから読み出してソフトキー表示部150へ出力することで、キーに何も印字されていないソフトキーボードを表示してもよい(S24)。
【0115】
パスワードの出力処理(
図4)については、第3の実施の形態と同様に、入力メソッド140はタッチセンサなどにより検出された位置情報(例えば(x1,y1))に基づいて割り当てた文字(例えば”A”)をメモリから読み出してアプリケーション100へ送信すればよい(
図4のS30からS37)。
【0116】
本第4の実施の形態も第3の実施の形態と同様に、ソフトキーボードの各キーには印字がないため、覗き見によるパスワード流出を防ぐことができる。
【0117】
なお、このように各キーに文字の印字がないことを、例えば、無文字、空白文字、或いは空文字列が表示されるなどと称する場合もある。
【0118】
[第5の実施の形態]
第3の実施の形態でも説明したようにソフトキー表示部150に表示されたソフトキーボードに対してユーザはどのような文字が割り当てられているか気にしなくてもよい。本第5の実施の形態では、ユーザがソフトキーボードのキーをタップするのではなく、パターンをなぞることでパスワードを入力するようにした例である。
【0119】
図7は本第5の実施の形態におけるスマートデバイス10の構成例などを表す図である。
図7に示すように、ソフトキー表示部150にはソフトキーボードに代えて、[◎]が表示される。このボタン(又はマーク、或いは点、以下、「ボタン」と称する場合がある)は、位置の識別を可能としており、ソフトキーボードにおける特定の文字に割り当てられている点を表示している。ユーザはこの[◎]ボタンを自分で決めた順番でなぞる。例えば、
図7に示すように、左側列に表示された[◎]ボタンを上から順番になぞる。この場合、入力メソッド140は文字列”A!9p”をパスワードとしてアプリケーション100へ出力する。
【0120】
例えば、入力メソッド140は以下のような割り当て処理とパスワード出力処理を行う。すなわち、入力メソッド140は、第4の実施の形態と同様に、各[◎]ボタンの位置情報(例えば、(x1,y1))に基づいて、各[◎]ボタンに対する文字の割り当て(例えば”A”)を行う(
図3のS10からS23)。そして、入力メソッド140は、位置情報(例えば(x1,y1))と[◎]ボタンの情報をメモリなどから読み出してソフトキー表示部150へ出力することで、ソフトキーボードの各位置に[◎]ボタンを表示させることができる(S24)。
【0121】
パスワードの入力については、第3の実施の形態と同様に、入力メソッド140はタッチセンサなどにより検出された位置情報(例えば(x1,y1))に基づいて、割り当てた文字(例えば”A”)をメモリから読み出してアプリケーション100へ送信すればよい(
図4のS37)。
【0122】
本第5の実施の形態においても、表示されるのは[◎]ボタンであり、ユーザが文字を入力するようにはなっておらず、パスワード入力を覗き見した人を混乱させ、覗き見によるパスワードの流出を防止することができる。
【0123】
なお、本第5の実施の形態では表示されるボタン又はマークの例として[◎]を例にして説明したが、単なる点[・]や[△]など、[◎]以外のボタンなどであってもよい。このようなボタンやマーク、点などは、例えば、特殊文字や囲み文字、合成用文字と称される場合がある。これらのボタンやマーク、点などは、例えば、文字の一種である。
【0124】
[第6の実施の形態]
第3の実施の形態でも説明したようにソフトキー表示部150に表示されたソフトキーボードに対してユーザはどのような文字が割り当てられているか気にしなくてもよい。本第6の実施の形態では、タップ(又は押下)回数によってソフトキーボードに割り当てる文字をランダムに変更する例である。
【0125】
図8は第6の実施の形態におけるスマートデバイス10の構成例などを表す図である。
図8に示すようにユーザが[0],[0],[0],[0]の各キーをタップした場合、入力メソッド140はタップ回数の「4」を検出し、検出した回数「4」を乱数発生器120へ入力回数として送信する。入力メソッド140は乱数発生器120から乱数を受信し、受信した乱数に応じたキーの割り当てパターンを生成する。この場合、入力メソッド140は4つの割り当てパターンを生成する。入力メソッド140は、4つの割り当てパターンを順番に用いることで、ユーザが表示されたソフトキーボードの同じキーを連続してタップしても、異なる文字列を出力することができる。
【0126】
図8の例では、ユーザが[0],[0],[0],[0]をタップした場合、入力メソッド140は、1回目の割り当てにより割り当てた”@”、2回目の割り当てにより割り当てた”a”、3回目の割り当てにより割り当てた”0”、4回目の割り当てにより割り当てた”S”を順番に出力する。従って、入力メソッド140は文字列”@a0S”をパスワードとしてアプリケーション100へ出力する。
【0127】
例えば、入力メソッド140は以下のような割り当て処理とパスワード出力処理を行う。すなわち、入力メソッド140は、例えば、
図3に示すS10からS23までの処理により1回目のキー割り当てを行う。そして、入力メソッド140はソフトキーボードを表示する(S24)。ユーザは表示されたソフトキーボード上で複数回タップ(例えば4回)する。アプリケーション100はこれを検出して、付加情報として入力メソッド140へ送信する。入力メソッド140は入力回数(例えば4回)をアプリケーション100から受信する(
図4のS32)。
【0128】
その後、入力メソッド140は、ループ1のループ処理(S38からS40)を(入力回数−1)回分、繰り返すことで、入力回数に応じたキーの割り当てを行うことができる。例えば、ユーザが4回タップすると、1つめの割り当てパターンは
図3の処理で生成され、2〜4つめの割り当てパターンは
図4のループ1で生成される。
【0129】
そして、入力メソッド140は、入力回数毎に生成した割り当てパターンを用いて、入力した文字に対応する文字をパスワードとしてアプリケーション100へ出力する(S37)。
【0130】
本第6の実施の形態においても、ユーザがハードキーボード又はソフトキーボードにおいて同じキーを複数回連続して入力しても、入力メソッド140は、毎回異なるキーの割り当てパターンを生成するようにしている。従って、入力メソッド140は、毎回異なる文字又は毎回異なる種別の文字をパスワードとして出力可能である。
【0131】
上述したようにユーザが[0]キーを4回タップしても、入力メソッド140はより複雑な文字列”@a0S”をパスワードとして出力している。従って、ユーザが簡易なパスワードを入力しても、本スマートデバイス10は一定の場合よりも強度の高いパスワードを出力できる。
【0132】
[第7の実施の形態]
例えば、ユーザがスマートデバイス10を入手し、当該ユーザが覗き見により入手したパスワードの入力手順(タップ順とパターンなど)で不正アクセスを行う場合がある。本第7の実施の形態では、表示されるソフトキーボードの各キーの文字(例えば第1の文字)と、当該文字に対して割り当てた異なる種類の文字又は同一種類で異なる文字との関係を保ったまま、表示されるソフトキーボードのキー配列(又は各キーに割り当てられた第1の文字)をランダムに変更させる例である。ユーザは、ソフトキーボード上に配置されたキーを記憶した順番でタップしてパスワードの入力を行う。
【0133】
図9は本第7の実施の形態のスマートデバイス10の構成例などを表す図である。
図9に示す例は、ソフトキーボードはテンキー仕様で表示される例を表している。例えば、ユーザは[1],[2],[3],[4]の各キーをこの順番で入力することを記憶しており、この順番で入力すると、入力メソッド140は”Axj!”をアプリケーション100へ出力する。この場合、1回タップされる毎に、テンキーとして表示されるソフトキーボードの各キーの位置がランダムに変化し、表示されるソフトキーボードのキー配置をランダムに表示させるようにしている。
【0134】
例えば、入力メソッド140は以下のような割り当て処理とパスワード出力処理を行う。すなわち、入力メソッド140は、第2の実施の形態と同様に、表示された通常のテンキーによるソフトキーボードの各キーに対して、文字の割り当てを行う(
図3のS10からS23)。そして、入力メソッド140は、ソフトキーボードの表示を行う(S24)が、例えば、以下のようにして行う。
【0135】
すなわち、ソフトキーボードの左上の位置座標を(x1,y1)とし、入力メソッド140は当該位置に、複数のキーコードの中からランダムに選択したキーコード”KEYCODE_7”(=[7])を割り当てる。入力メソッド140は、位置情報(例えば(x1,y1))と選択したキーコード(例えば”KEYCODE_7”)とをソフトキー表示部150へ出力することで、ソフトキーボードの左上に[7]キーを表示させることができる。このとき、入力メソッド140は、選択したキーコード”KEYCODE_7”の位置情報を(x3,y1)から(x1,y1)に上書きしてメモリに記憶する。これにより、キーコード”KEYCODE_7”に割り当てた文字(”9”)の割り当てを保つことができる。入力メソッド140は、ソフトキーボードの全キーに対してこのような処理を繰り返すことで、キー配置をランダムに表示したソフトキーボードを表示する。
【0136】
ソフトキーボードの表示が行われた後は、入力メソッド140は、例えば、
図4に示すフローチャートによりパスワードの出力が可能となる。この場合、ループ1のループ処理(S38とS40)に代えて、入力メソッド140は、上述したソフトキーボードの表示を行う。すなわち、入力メソッド140は、キー入力として文字入力キーの1文字(又は1タップ操作)に対して、S31からS37までの処理を行って割り当てた文字をアプリケーション100へ送信する。そして、入力メソッド140は上述したソフトキーボードの表示を行う。これにより、1回のユーザのタップにより、再びランダムにキーが表示されたソフトキーボードを表示させることができる。これを繰り返すことで、入力メソッド140は、ユーザによる1回のタップ毎に毎回異なるキー配列となるソフトキーボードを表示させることが可能となる。
【0137】
本第7の実施の形態では、タップ順やパターンなどを覗き見したユーザが本スマートデバイス10を使用してパスワードを入力しても、ソフトキーボードのキー配列はタップ毎に毎回ランダムに異なる表示となるため、覗き見による不正なアクセスを防止することができる。
【0138】
[第8の実施の形態]
第8の実施の形態では、ブラウザ・アプリケーション100に代えて、WebViewが利用された場合の動作例である。
図10はWebView175を含むスマートデバイス10の構成例などを表す図である。
【0139】
WebView175、例えば、ソフトキー表示部150の画面内においてWebページを表示させるようにしたソフトウェア又はGUI(Graphic User Interface)コンポーネントである。WebView175により、Webページ内に広告や他のWebページを表示させることが可能となる。例えば、プロセッサ160はメモリなどに記憶された所定のプログラムを読み出して実行することで、WebView175の機能を実行できる。
【0140】
第2の実施の形態においては、アプリケーション100が固有情報を生成して入力メソッド140へ出力することについて説明した。例えば、このような固有情報を生成しない(或いはこのような機能を持っていない)サードベンダ製のアプリケーション170の場合、当該アプリケーション170は固有情報を入力メソッド140へ送信することができない。
【0141】
他方、WebView175において、例えば、getURL()メソッドを利用することで、WebView175からURLを取得することが可能である。WebView175では、getURL()メソッドと、取得したURLから固有情報を生成する機能とを、WebView175を実行するプログラム内に作成しておけばよい。これにより、アプリケーション170が固有情報を生成することができない場合でも、WebView175により固有情報を生成することが可能となり、入力メソッド140は、第2の実施の形態と同様に、ハードキーボードやソフトキーボードの各キーに対してランダムに文字を割り当てることができる。
【0142】
例えば、以下のような処理が行われる。すなわち、アプリケーション170はアクセスした先のURLをWebView175へ送信する。WebView175は、受信したURLに基づいて、ネットワーク300を介してコンテンツ(又はドキュメント)をダウンロードし、Webページ(又はコンテンツ)をソフトキー表示部150へ表示する。コンテンツ内には、type属性が”password”のinput要素が存在し、ユーザが当該inputを選択すると、WebView175は入力要求を入力メソッド140へ送信する。また、入力メソッド140は固有情報をWebView175へ要求し、WebView175はアプリケーション170から取得したURLに基づいて固有情報を生成し、入力メソッド140へ送信する。以降は、スマートデバイス10は第2の実施の形態と同様に
図3や
図4に示す処理を行う。
【0143】
本第8の実施の形態では、ブラウジング・アプリケーション100に代えて、WebView175を用いた場合でも、第2の実施の形態と同様に、各キーにランダムに文字を割り当てることができ、一定よりも強度の高いパスワードの設定が可能となる。
【0144】
[第9の実施の形態]
スマートデバイス10を介してユーザに提供されるサービスについて、複数のアプリケーションで同じサービスが提供される場合がある。例えば、Webページによりサービスが提供される場合と、専用のアプリケーションが実行されてサービスが提供される場合などがある。本第9の実施の形態では、複数のアプリケーションで同一のサービスが提供される場合でも、同一のパスワードの設定を可能にする例である。
【0145】
本第9の実施の形態では、例えば、第8の実施の形態と同様にWebView175を用いて処理を行う(例えば
図10)。
【0146】
複数のアプリケーションで同一のサービスが提供される場合でも、ユーザの認証が行われる認証局のURLは同一である場合がある。この場合、WebView175が認証画面を表示させるようにし、アプリケーション170から取得した認証画面に関するURLに基づいて固有情報を生成し、入力メソッド140へ送信する。
【0147】
従って、複数のアプリケーションで同一のサービスが提供される場合でも、固有情報は複数のアプリケーションで同一とすることができる。ユーザが入力した初期シードを複数のアプリケーションで用いることで、入力メソッド140では複数のアプリケーションにおいて同一の固有情報と同一の初期シードを得ることができ、同一のパスワードをアプリケーション100へ送信できる。
【0148】
従って、ユーザは、同一のサービスであれば、複数のアプリケーションで異なるパスワードを入力することがなくなり、同一のパスワードの設定が可能であり、複数のパスワードを記憶することなく当該サービスを受けることができる。
【0149】
なお、本第9の実施の形態では、
図10に示すアプリケーション170は複数のアプリケーションを含んでいてもよい。
【0150】
[第10の実施の形態]
本第10の実施の形態では、ユーザが別のスマートデバイスを用いて同一のサービスの提供を受ける例について説明する。例えば、スマートフォン、タブレット、パーソナルコンピュータ、ゲーム装置など、それぞれのスマートデバイスについて、同一のサービスについて同一のパスワードを出力することができれば、異なるスマートデバイス10で同一のサービスの提供を受けることが可能である。
【0151】
図11は本第10の実施の形態におけるスマートデバイス10の構成例を表している。
図11に示すスマートデバイス10は、例えば、Microsoft社製のOSであるWindows(登録商標)OS(以下、単に「OS」と称する場合がある)185上で実行されるソフトキーアプリケーション180のモジュールの構成例を表している。OS185とソフトキーアプリケーション180は、例えば、プロセッサ160がメモリなどに記憶された所定のプログラムを読み出して実行することで実現される。
【0152】
ソフトキーアプリケーション180は、初期シード保存DB110、設定データ保存DB130、ソフトキー表示部181、文字割り付け部182、表示URL取得部183、及びキーイベント送信部184を備える。
【0153】
ソフトキー表示部181は、例えば、第2の実施の形態のソフトキー表示部150と同様に、表示画面上にソフトキーボードを表示し、ユーザからの入力を受け付ける。ソフトキー表示部181は、ソフトキーボードだけではなく、Webページなどを表示してもよい。
【0154】
文字割り付け部182は、初期シード保存DB110と設定データ保存DB130から初期シードと設定文字数をそれぞれ読み出し、表示URL取得部183からURLを取得し、初期シードと設定文字数、及びURLに基づいて文字の割り当てを行う。
【0155】
このとき、文字割り付け部182では、URLから固有情報を生成する。また、文字割り付け部182は、例えば、乱数発生器120を内部に有してもよい。文字割り付け部182は、初期シードと生成した固有情報とに基づいて乱数を発生させ、第2の実施の形態と同様に、乱数に基づいてハードキーボード150又はソフトキーボードの各キーに対してランダムに文字を割り当てる。この場合、文字割り付け部182は、各キーに対して設定文字数分の文字を割り当てる。
図11の例では、第2の実施の形態と同様に、設定文字数が「2」の場合の例を表している。
【0156】
表示URL取得部183は、例えば、OS185からブラウザのオブジェクト(例えば、InternetExplorerオブジェクト)を取得し、さらに、LocationURLプロパティを取得することで、Webページ(又は認証画面)のURLを取得する。表示URL取得部183は取得したURLを文字割り付け部182へ出力する。
【0157】
キーイベント送信部184は、ユーザが入力した文字に対して文字割り付け部182により割り当てられた文字をキー入力イベントとしてOS185へ送信する。この場合、キーイベント送信部184は、例えば、Sendkeysメソッドを利用してキー入力イベントを送信してもよい。
【0158】
以上により、第2の実施の形態で説明した機能をOS185上のアプリケーションとして実行することができる。なお、スマートデバイス10が取得したコンテンツ内に含まれるinput要素がアクティブになった場合に、プロセッサ160がメモリから所定のプログラムを読み出してソフトキーアプリケーション180を実行するようにしてもよい。
【0159】
図12はスマートフォン11とパーソナルコンピュータ(以下、「PC」と称する場合がある)12からユーザが同一のサービスにアクセスする場合の動作を説明するための図である。
【0160】
スマートフォン11としてはアンドロイド端末、PC12としてはWindows端末でもよい。スマートフォン11もPC12も、いずれもスマートデバイス10の一例である。
【0161】
スマートフォン11には、第2の実施の形態で説明したブラウザ・アプリケーション100と初期シード保存DB110、入力メソッド140、スマートフォンOS186を備える。スマートフォン11には、更に、乱数発生器120や設定データ保存DB130を備えていてもよいが、
図12では省略されている。ブラウザ100や入力メソッド140、スマートフォンOS186は、例えば、スマートフォン11のプロセッサ160により実現される機能である。
【0162】
また、PC12には、初期シード保存DB110、ソフトキーアプリケーション180、OS185、及びブラウザ187を備える。ソフトキーアプリケーション180、OS185、ブラウザ187は、例えば、PC12のプロセッサ160により実現される機能である。
【0163】
この場合、ユーザはスマートフォン11にもPC12にも同一の初期シードを入力する。これにより、同一の初期シードが双方の初期シード保存DB110において保存される。
【0164】
サービスの認証画面が表示される場合のURLは、スマートフォン11とPC12で異なる場合がある。例えば、PC12では「login.example.jp」、スマートフォン11では「login−sp.example.jp」となる場合がある。
【0165】
しかし、スマートフォン11の入力メソッド140では、第2の実施の形態でも説明したように、ドメイン部の末端部を削除した固有情報を作成しているため、固有情報として「example.jp」を得ることができる。また、PC12におけるソフトキーアプリケーション180の文字割り付け部182においても固有情報として「example.jp」を取得できる。従って、いずれも同一の固有情報を得ることができる。
【0166】
スマートフォン11とPC12においては、初期シードは双方とも同一、固有情報も双方とも同一であり、双方の乱数発生器において同じアルゴリズムにより乱数を発生させることで、同一の割り当て文字を出力することができる。従って、同一のパスワードが双方のスマートデバイスから送信されるため、ユーザは異なる端末からでも同一のサービスを受けることができる。
【0167】
[第11の実施の形態]
例えば、Webページの1ページ内に複数のinput要素が存在する場合がある。各input要素で異なるパスワードの入力が可能となるように、input要素の名前(又はinput要素のname属性の値)を固有情報に加えてもよい。
【0168】
例えば、認証画面のURLが「www.example.co.jp」、ユーザによって選択されたinput要素のフォームが「input type=”password” name=”id1”」の場合、固有情報は「example.co.jp.id1」となる。このような固有情報は、例えば、アプリケーション100やWebView175においてURLとinput要素に基づいて生成される。入力メソッド140はこの固有情報に基づいて文字の割り当てを行えばよい。
【0169】
また、固有情報としては、アプリケーション100を識別するパッケージ名やアクティビティ名が含まれてもよい(又は利用されてもよい)。パッケージ名とアクティビティ名は、例えば、アプリケーションプログラムなどを識別する識別名である。パッケージ名とアクティビティ名は、URLと同様にドメイン名が使用されており、URLと同様に固有情報として使用可能である。
【0170】
例えば、ダウンロードなどによりスマートデバイス10のメモリにアプリケーションプログラムなどが記憶される際にパッケージ名やアクティビティ名により当該プログラムなどがメモリに記憶される。プロセッサ160はメモリから当該プログラムを読み出してアプリケーション100を実行する際に、当該プログラムのパッケージ名やアクティビティ名も読み出して、アプリケーション100やWebView175へ出力する。これにより、アプリケーション100やWebView175では、パッケージ名やアクティビティ名に基づいて固有情報を生成することが可能となる。
【0171】
[第12の実施の形態]
固有情報として、例えば、スマートデバイス10において認証の際に利用した、セキュリティ証明書やデジタル証明書などの電子証明書が用いられてもよい。このような電子証明書は、スマートデバイス10が認証局との間で交換されるもので、例えば、スマートデバイス10は認証局から受信可能である。アプリケーション100やWebView175では、メモリに記憶された電子証明書に関する情報を読み出して、電子照明書に関する情報(例えば、電子証明書を発行した発行元のURLなど)に基づいて、固有情報を生成すればよい。固有情報には、電子証明書に関する情報が含まれる。固有情報としては、例えば、サービスの提供元によって異なるものであれば固有情報として使用可能である。
【0172】
[第13の実施の形態]
第2から第12の実施の形態においては、例えば、アプリケーション100やWebView175がinput要素を判別すると、入力メソッド140を起動させて入力メソッド140により文字の割り当てを行う例について説明した。
【0173】
例えば、ユーザが指定したinput要素について、そのtype属性として”password”が指定されていない場合もある。そのような場合でも、Webページ上に表示された所定のラジオボタンなどの操作によりユーザがパスワード入力を有効化した場合、本スマートデバイス10では上記した実施の形態と同様に文字を割り当てて、パスワードを出力するようにする。
【0174】
この場合、例えば、アプリケーション100やWebView175(又はタッチセンサなど)が、当該ラジオボタンの操作が行われたことを検出すると、パスワードの入力を示す入力要求を入力メソッド140へ出力する。これにより、本第12の実施の形態におけるスマートデバイス10においても、上記した実施の形態と同様に、
図3と
図4により実施することができる。
【0175】
[その他の実施の形態]
第3から第13の実施の形態においては、いずれも入力メソッド140が文字の割り当てを行う例について説明した。従って、第3から第13の実施の形態においても、第2の実施の形態と同様に、ユーザが簡易なパスワード入力を行っても、一定の場合よりも強度の高いパスワードを出力することができる。また、スマートデバイス10は、例えば、
図3と
図4に示す処理を行うことで、出力するパスワードそのものを内部に保存することなく、一定の場合よりも強度の高いパスワードを出力することができる。
【0176】
また、第2から第13の実施の形態において、入力メソッド140において割り当てる文字の種類としては、大文字と小文字のアルファベット、数字、記号について説明した。例えば、割り当てる文字の種別としては、片仮名や平仮名などの日本語、ハングル文字、漢字など、様々な種類の文字が含まれてもよい。また、ソフトキー表示部150において表示されるソフトキーボードについても、テンキー仕様のソフトキーボードだけではなく、アルファベット仕様のソフトキーボードや平仮名文字や片仮名文字仕様のソフトキーボード、ハングル文字仕様のソフトキーボードなど、様々な文字の種類のソフトキーボードやハードキーボードであってもよい。
【0177】
図13(A)と
図13(B)はスマートデバイス10のハードウェアの構成例を表す図である。
図13(A)は例えば無線通信可能なスマートデバイス10、
図13(B)は有線通信可能なスマートデバイス10の構成例を夫々表している。
【0178】
図13(A)に示すように、スマートデバイス10は、プロセッサ160、ROM190、RAM191、メモリ192、表示部193、無線部195、及びアンテナ196を備える。
図13(A)に示すスマートデバイス10としては、例えば、スマートフォン、フィーチャーフォン、タブレットなどがある。
【0179】
プロセッサ160は、ROM190に記憶されたプログラムをRAM191にロードし、ロードしたプログラムを実行することで、アプリケーション100,170、乱数発生器120、入力メソッド140、ソフトキー表示部150の機能を実行できる。また、プロセッサ160は、ロードしたプログラムを実行することで、ソフトキーアプリケーション180の機能を実行できる。プロセッサ160は、例えば、第2から第13の実施の形態における、アプリケーション100,170、乱数発生器120、入力メソッド140、及びソフトキーアプリケーション180に対応する。
【0180】
なお、プロセッサ160は、例えば、CPU(Central Processing Unit)やFPGA(Field Programmable Gate Array)、DSP(Digital Processing Unit)、その他のコントローラであってもよい。
【0181】
メモリ192には、例えば、初期シード保存DB110と設定データ保存DB130を記憶する。メモリ192は、例えば、第2から第13の実施の形態における、初期シード保存DB110と設定データ保存DB130に対応する。
【0182】
表示部193は、ソフトキーボードやWebページなどを表示する。表示部193は、例えば、第2から第13の実施の形態におけるソフトキー表示部150に対応する。
【0183】
無線部195は、プロセッサ160から出力されたデータなどを無線信号へ変換してアンテナ196へ出力したり、アンテナ196から出力された無線信号からデータなどを抽出してプロセッサ160へ出力する。アンテナ196は基地局や他のスマートデバイスとの間で無線信号を交換する。
【0184】
図13(B)に示すように、更に、通信IF(Interface)198を備える。
図13(B)に示すスマートデバイス10としては、例えば、パーソナルコンピュータなどがある。
【0185】
通信IF198は、プロセッサ160から出力されたデータなどを外部のネットワークへ出力可能なフォーマットに変換して、変換後のデータなどを外部へ送信する。また、通信IF198は、外部から所定フォーマットのデータなどを受信して、データなどを抽出し、抽出したデータをプロセッサ160へ出力する。
【0187】
(付記1)
ハードキーボード又は表示部に表示された第1のソフトキーボードの各キーに対するユーザ操作により前記各キーに割り当てられた文字が入力されたとき、当該文字と異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字を出力するプロセッサ
を備えることを特徴とする情報処理装置。
【0188】
(付記2)
前記プロセッサは、ユーザ操作により入力された前記文字に対して、当該文字と異なる種類の複数の文字、又は当該文字と同一種類で当該文字とは異なる複数の文字を出力することを特徴とする付記1記載の情報処理装置。
【0189】
(付記3)
前記プロセッサは、前記ハードキーボード又は前記ソフトキーボードの各キーに対するユーザ操作により入力された設定文字数に従って、前記複数の文字を出力することを特徴とする付記2記載の情報処理装置。
【0190】
(付記4)
前記プロセッサは、前記ハードキーボード又は前記第1のソフトキーボードの各キーに割り当てられた文字に対して、当該文字とは異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字を前記各キーに割り当てた第2のソフトキーボードを生成し、前記第1のソフトキーボードの各キーに対するユーザ操作により当該キーに割り当てた文字が入力されたとき、当該キーに対応する前記第2のソフトキーボードのキーに割り当てた文字を出力することを特徴とする付記1記載の情報処理装置。
【0191】
(付記5)
前記プロセッサは、ユーザ操作により前記第1のソフトキーボードの各キーに割り当てられた文字が入力される場合において前記情報処理装置がアクセスした認証局における統一位置資源子の一部である固有情報に基づいて、前記第2のソフトキーボードの各キーに対する文字の割り当てを行うことを特徴とする付記4記載の情報処理装置。
【0192】
(付記6)
前記プロセッサは、ユーザ操作により前記第1のソフトキーボードの各キーに割り当てられた文字が入力される場合において前記情報処理装置がアクセスした認証局の統一位置資源子の一部である固有情報と初期シードとに基づいて生成した乱数に基づいて、前記第2のソフトキーボードの各キーに対する文字の割り当てを行うことを特徴とする付記4記載の情報処理装置。
【0193】
(付記7)
前記固有情報は、前記統一位置資源子に含まれるドメイン名のうち「www」を除いた部分であることを特徴とする付記5記載の情報処理装置。
【0194】
(付記8)
前記プロセッサは、前記第1のソフトキーボードの各キーに割り当てられた文字に対して、当該文字と同一又は異なる種類の文字からランダムに選択した文字を前記表示部に表示させることを特徴とする付記1記載の情報処理装置。
【0195】
(付記9)
前記プロセッサは、前記第1のソフトキーボードの各キーに割り当てられた文字が入力されて当該文字と異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字を出力する毎に、又は、一定期間経過毎に、前記第1のソフトキーボードの各キーに代えてランダムに選択した文字を前記表示部に表示させることを特徴とする付記8記載の情報処理装置。
【0196】
(付記10)
前記プロセッサは、前記第1のソフトキーボードの各キーに割り当てられた文字に対して空白文字を前記表示部に表示させることを特徴とする付記1記載の情報処理装置。
【0197】
(付記11)
前記プロセッサは、前記第1のソフトキーボードの各キーに割り当てられた文字に対してボタン又は記号を前記表示部に表示させることを特徴とする付記1記載の情報処理装置。
【0198】
(付記12)
前記プロセッサは、前記ハードキーボード又は前記第1のソフトキーボードの各キーに割り当てられた文字に対し、当該文字と異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字を各キーに割り当てた第2のソフトキーボードを生成し、ユーザによる前記ハードキーボード又は前記第1のソフトキーボードの各キーに対する操作毎に前記第2のソフトキーボードの各キーに割り当てる文字を変更することを特徴とする付記1記載の情報処理装置。
【0199】
(付記13)
前記プロセッサは、前記第1のソフトキーボードの各キーに割り当てられた文字と、当該文字と異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字との対応関係を保持したまま、ユーザによる操作毎に、前記第1のソフトキーボードの各キーに割り当てた文字の配置を変更することを特徴とする付記1記載の情報処理装置。
【0200】
(付記14)
前記プロセッサは、Webページを前記表示部に表示させる機能又Webページ内に他のWebページを前記表示部に表示させる機能を実行することで、ユーザ操作により前記第1のソフトキーボードの各キーに割り当てられた文字を入力するときに前記情報処理装置がアクセスした認証局における統一位置資源子の一部を固有情報として取得し、取得した固有情報に基づいて前記第2のソフトキーボードを生成する付記4記載の情報処理装置。
【0201】
(付記15)
前記プロセッサは、
前記第1のソフトキーボードを表示するソフトキー表示部と、
前記プロセッサによりネットワークを介してアクセスした装置の統一位置資源子を取得する表示URL取得部と、
前記統一位置資源子に基づいて、前記第1のソフトキーボードの各キーに割り当てられた文字に対して、当該文字と異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字を割り当てる文字割り付け部と、
前記割り付け部により割り当てた文字を送信するキーイベント送信部
の各機能を含むことを特徴とする付記1記載の情報処理装置。
【0202】
(付記16)
前記固有情報は、前記第1のソフトキーボードの各キーに割り当てられた文字を入力するときにユーザ操作により選択されたinput要素におけるname属性を含むことを特徴とする付記5記載の情報処理装置。
【0203】
(付記17)
前記固有情報は、前記固有情報を生成するプログラムを識別するパッケージ名又はアクティビティ名を含むことを特徴とする付記5記載の情報処理装置。
【0204】
(付記18)
前記固有情報には、前記情報処理装置が前記認証局との間で交換した電子証明書に関する情報が含まれることを特徴とする付記5記載の情報処理装置。
【0205】
(付記19)
前記文字の種類は、大文字のアルファベット、小文字のアルファベット、数字、及び記号であることを特徴とする付記1記載の情報処理装置。
【0206】
(付記20)
情報処理装置におけるコンピュータに実行させる入力制御プログラムであって、
ハードキーボード又は表示部に表示されたソフトキーボードの各キーに対するユーザ操作により前記各キーに割り当てられた文字が入力されたとき、当該文字と異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字を出力する処理を
コンピュータに実行させることを特徴とする入力制御プログラム。
【0207】
(付記21)
プロセッサを含む情報処理装置における入力制御方法であって、
前記プロセッサにより、ハードキーボード又は表示部に表示されたソフトキーボードの各キーに対するユーザ操作により前記各キーに割り当てられた文字が入力されたとき、当該文字と異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字を出力する
ことを特徴とする入力制御方法。