まず、本発明の実施形態の概略を説明する。
本発明の第1の実施形態では、パスワードによる認証に加え、時刻に基づいた認証を組み合わせる。具体的には、ユーザIDやパスワードの入力が行なわれた後、認証ボタンの押下といった所定の操作が行なわれた時点での時刻の秒の値が、予め設定した値と一致するか否かに基づいて認証を行なう。これにより、従来に比して安全性の高い認証装置を提供することができる。
更に、本発明の第2の実施形態では、パスワードによる認証及び時刻による認証に加え、電子コンパスから取得した方位情報に基づいた認証も組み合わせるようにする。この場合も、従来に比して安全性の高い認証装置を提供することができる。
以上が本発明の実施形態の概略である。
<第1の実施形態>
次に、本発明の実施形態について図面を参照して詳細に説明する。まず、第1の実施形態である情報端末100の構成について図1を参照して説明する。
図1を参照すると、情報端末100は、制御部110、不揮発性メモリ120、時計部130、キーボード140、ディスプレイ150及びバス160を含む。また、制御部110は、CPU111、ROM112及びRAM113を含む。これら各部はバス160を介して相互に接続されている。
情報端末100は、本実施形態特有の、時刻を利用した認証を行なう情報端末である。本実施形態における情報端末100は、携帯端末であっても良いが、デスクトップPC(Personal Computer)等の据え置きで利用する装置であっても良い。また、情報端末100が、具体的にどのような用途のための装置であるかということに特に制限はない。そのため、以下の説明においては、特に本実施形態における認証に関連する部分について説明を行なう。ただし、情報端末100は、以下で説明を行なう部分以外にも、電源部や他の端末との通信を行なうための通信部等の、情報端末としての一般的な機能ブロックを含んでいるものとする。
ここで、情報端末100全体は、制御部110により制御される。ここで、制御部110に含まれる各部について説明する。
CPU111は、演算処理を行なうためのCPU(Central Processing Unit)である。
また、ROM112は、CPU111が実行する各種の制御用プログラムを格納したROM(Read Only Memory)である。ROM112には、例えば情報端末100を情報端末として機能させるための制御用プログラムや、認証を行なうための制御用プログラムが格納される。
RAM113は、CPU111がプログラムを実行する上で一時的に必要とされるデータを格納するためのRAM(Random Access Memory)である。
制御部110では、CPU111がROM112から各種制御用プログラムを読み込み、読み込んだ制御用プログラムをRAM113にて展開させながら、これらの各種制御用プログラムに基づいた演算処理を行なう。そして、制御部110は、演算結果に基づいて情報端末100内のハードウェアを制御することにより、情報端末100の機能は実現される。つまり、本実施形態は、ハードウェアとソフトウェアが協働することにより実現することができる。
不揮発性メモリ120は、端末に電源が供給されない状態であってもデータを保持できるメモリである。例えば、不揮発性メモリ120には、認証時における認証処理に必要な情報を、「認証用情報テーブル」として格納する。かかる認証用情報テーブルについては、図2を参照して後述する。
時計部130は、情報端末100の電源が切られていても情報端末100に内蔵されているバッテリ(不図示)から電源供給を受けて現在時刻を刻み続けるデバイスである。制御部110は、必要に応じて時計部130から現在時刻や現在の日付を取得することができる。
キーボード140は、ユーザの操作を受け付ける部分である。例えば、キーボード140は、認証時に、ユーザがIDやパスワード等を入力するために使用される。
ディスプレイ150は、制御部110が各種の情報を出力するための画面である。例えば、ディスプレイ150は、認証時に、現在時刻等を含んだ認証画面を表示する。認証画面の具体的な内容については、図3を参照して後述する。
なお、キーボード140とディスプレイ150を、例えば、表示画面付きのタッチパネルにより、一体として実現するようにしても良い。
次に、図2を参照して、不揮発性メモリ120に格納される「認証用情報テーブル」について説明する。図2を参照すると、認証用情報テーブルは、「ユーザID」、「パスワード」及び「設定時刻(秒)」を属性として含む。これら各属性について説明する。
「ユーザID」には、認証を行なうユーザを識別するための情報が格納される。例えば、ユーザ名や、所定の文字数の数字とアルファベットの組み合わせが格納される。
「パスワード」には、認証を行なう際に利用するパスワードが格納される。例えば、ユーザが決めた文字、数字及び記号の少なくとも何れかからなるパスワードが格納される。
「設定時刻(秒)」には、時刻による認証を行なうための秒の値が格納される。なお、格納される秒の値は、時刻の秒を60進法で表わした値とする。つまり、格納される秒の値は、00乃至59の何れかの値となる。以下の説明及び各図面においても、時刻の秒は60進法で表わすものとする。
そして、認証時、ユーザID及びパスワードの入力を受け付け、格納されているユーザID及びパスワードと入力されたユーザID及びパスワードとが一致し、「設定時刻(秒)」に格納された値と、認証ボタンの押下等の所定の操作が行なわれた時刻の秒の値が、一致した場合に認証成功となる。かかる「設定時刻(秒)」の値は、情報端末100のメーカやユーザにより設定されるようにしても良い。また、そうするのではなく、情報端末100がかかる値を決定し、決定した値をユーザに何らかの方法にて通知するようにしても良い。何れにしても、認証に先立って、ユーザが、かかる値が幾つであるのかを把握しているようにしておく必要がある。
そして、かかる値を把握したユーザは、かかる値を自身で記憶し、認証時にかかる値を思い出せるようにしておく。
なお、ユーザがかかる値を忘れてしまうことを防止するために、ユーザが所定の操作を行なった場合には、ディスプレイにかかる値を表示するようにしても良い。また、ユーザが、かかる値を他人に知られないようにメモをすることにより、認証時にかかる値を思い出せるようにしても良い。ただし、このようにディスプレイにかかる値を表示したり、メモをするようにしたりすると、かかる値が悪意を持った第三者に知られてしまう可能性が高くなる。そのため、ディスプレイにかかる値を表示するための操作方法を難解なものとしたり、メモを第三者に見られない場所にて保管したりするような対策を講じることが望ましい。
つまり、かかる値はパスワードとして機能するので、一般的なパスワードの管理方法と同じように、第三者がかかる値を把握できないように、物的にも人的にも管理を行なう必要がある。
次に、図3を参照して、認証時に、ディスプレイ150に表示される認証画面の例について説明する。なお、かかる認証画面は、制御部110が生成してディスプレイ150に表示させるものとする。
図3を参照すると、認証画面には、「ユーザIDの入力欄」、「パスワードの入力欄」、「認証ボタン」、「現在の日付と時刻」が含まれる。
「ユーザIDの入力欄」は、ユーザが、認証時にユーザ自身のユーザIDを入力する欄である。
「パスワードの入力欄」は、ユーザが、認証時にユーザIDに対応するパスワードを入力する欄である。
「認証ボタン」は認証の実行指示の際に、ユーザが押下するボタンである。
「現在の日付と時刻」は、制御部110が時計部130から取得した日付や時刻に基づいて表示される現在の日付と時刻である。
かかる認証画面を参照したユーザは、まずユーザID及びパスワードを、それぞれユーザIDの入力欄及びパスワードの入力欄に入力する。そして、ユーザは、図2に示されている認証用情報テーブルに格納されている設定時刻に含まれる秒を自分で記憶しており、認証画面又は他の画面に表示されている現在の日付と時刻を参照し、現在の時刻に含まれる秒が、自分で記憶している秒と一致した時点で認証ボタンを押下する。
なお、「ユーザIDとパスワード入力後、所定の時刻に認証ボタンを押下して下さい。」等のメッセージを表示してしまうと、時刻が認証のキーの一つになっているということが情報端末100を不正に取得した第三者に把握されてしまう。そこで、少なくとも「所定の時刻に認証ボタンを押下して下さい。」のような表示はしないこととする。
次に、本実施形態の認証時の動作を表わす図である図4のフローチャートを参照して、本実施形態における認証時の動作について詳細に説明する。
なお、以下の各動作は、特に説明のない限り、制御部110の制御に基づいて行なわれるものとする。
また、認証は、情報端末100の起動時や、ネットワークへのログイン時や、ネットワークを介したコンピュータシステムへのログイン時や、情報端末100上で動作する各種アプリケーションプログラム上で必要が生じた時等に行なわれる。ただし、これは例示に過ぎず、任意のときに認証を行なうことができる。
制御部110は、ユーザ認証が必要な場面になると、図3を参照して説明した認証画面を、ディスプレイ150に表示し、ユーザに対してユーザID及びパスワードの入力を求める(ステップS11)。
図3を参照して説明したように、認証画面の右下には現在時刻が表示されている。制御部110は、時計部130から取得した現在時刻に基づいて、ディスプレイ150に表示する認証画面の時刻を随時最新の値に更新する(ステップS13)。
次に、ユーザからのユーザIDやパスワードの入力を受け付けたか否かを確認する(ステップS15)。
ユーザからのユーザIDやパスワードの入力を受け付けた場合には(ステップS15においてYes)、次のステップS17に進む。一方で、ユーザからのユーザIDやパスワードの入力を受け付けていない場合には(ステップS15においてNo)、次のステップS17は省略し、ステップS19に進む。
ステップS17では、制御部110が、受け付けたユーザIDやパスワードを記憶する。また、制御部110は、受け付けたユーザIDやパスワードを、ディスプレイ150が表示する認証画面のユーザIDの入力欄やパスワードの入力欄へ表示させる(ステップS15)。但し、パスワードは、第三者に覗き見られた際に、第三者にパスワードの内容を把握されないように、所定の記号で表示をするようにする。かかる所定の記号としては、図3に表わすように例えば「*」を用いる。
次に、認証ボタンが押下されたか否かを確認する(ステップS19)。
認証ボタンが押下された場合には(ステップS19においてYes)、制御部110は、認証ボタンの押下を受け付けた時点での現在時刻に含まれる秒の値を記憶する。そして、次のステップS21に進み、認証処理を開始する。認証ボタンの押下は、認証処理の開始を指示すること、あるいは認証処理の開始を要求することを意味する。
一方で、認証ボタンが押下されない場合には(ステップS19においてNo)、ステップS13に戻り、上述のステップS13以降の処理を繰り返す。繰り返しの周期は、1秒よりも桁違いに短い周期とする。
ステップS21以降では、認証を行なうフェーズである認証フェーズに入る。
まず、制御部110は、ユーザIDの入力欄に入力されたユーザIDに基づいて、認証に用いる認証用情報テーブルの特定を試みる。具体的には、ユーザIDの入力欄に入力されたユーザIDと同一のユーザIDを含む認証用情報テーブルが存在するかを確認する。
ここで、ユーザIDの入力欄に入力されたユーザIDと同一のユーザIDを含む認証用情報テーブルが存在しない場合には、入力されたユーザIDが誤っていることとなるので(ステップS21においてNG)、認証は失敗となる。この場合にはステップS29に進む。そして、ステップS29では、所定の認証失敗処理を実行する。
ここで、かかる所定の認証失敗処理の具体的な内容は特に限定されないが、例えば、ステップS11に戻って再度の入力を促す処理とすると良い。また、他にも、例えば情報端末100の機能をロックして、情報端末100を利用することができない状態とする処理としても良い。
一方で、入力されたユーザIDと同一のユーザIDを含む認証用情報テーブルが存在する場合には、入力されたユーザIDは正しいものであるので(ステップS21においてOK)、ステップS23に進む。
ステップS23では、ユーザが入力したパスワードと、ステップS21において特定した認証用情報テーブルに格納されているパスワードとを比較することにより、ユーザが入力したパスワードが正しいものであるかを確認する。
比較した両パスワードが同一ではない場合は、ユーザが入力したパスワードは誤ったものであるので(ステップS23においてNG)、認証は失敗となる。この場合にはステップS29に進む。そして、ステップS29では、所定の認証失敗処理を実行する。
一方で、比較した両パスワードが同一である場合は、入力されたユーザIDは正しいものであるので(ステップS23においてOK)、ステップS25に進む。
ステップS25では、ステップS19において記憶した、認証ボタンの押下を受け付けた時点での現在時刻に含まれる秒の値と、ステップS21において特定した認証用情報テーブルに格納されている設定時刻(秒)に含まれる秒の値を比較する。これにより、ユーザが、現在時刻に含まれる秒の値がテーブルの設定時刻(秒)に格納されている秒の値と一致した時に、適切に認証ボタンを押下したか否かを確認する(ステップS25)。
ここで、認証ボタンを押下するユーザが、情報端末100の正当なユーザなのであれば、上述したように、予め認証用情報テーブルの設定時刻(秒)に格納されている秒の値を把握している。そのため、かかるユーザは、認証画面の現在時刻を参照し、現在の時刻の秒の値が、認証用情報テーブルの設定時刻(秒)に格納されている秒の値と同じ値になった時点で認証ボタンを押下する。この場合は、適切に認証ボタンが押下されたこととなり(ステップS25においてOK)、認証は成功したものとみなし、所定の認証成功処理を行なう(ステップS27)。
かかる認証成功処理の内容は認証を行なった理由により異なる。例えば、情報端末100の起動時に認証を行なったならば、ユーザが情報端末100の機能を利用可能な状態とするための処理を行なう。また、例えば、ネットワークにログイン時に認証を行なったならば、情報端末100にネットワークを利用した通信を可能な状態とするための処理を行なう。
一方で、情報端末100の正当なユーザではない第三者は、そもそも、設定時刻(秒)に格納されている秒の値と同じ時刻に認証ボタンを押下する必要があることを把握していない。また、設定時刻(秒)に格納されている秒の値が幾つであるのかも把握していない。そのため、情報端末100の正当なユーザではない第三者は、設定時刻(秒)に格納されている秒の値と異なる時刻に認証ボタンを押下する可能性が高い。このように、設定時刻(秒)に格納されている秒の値と異なる時刻に認証ボタンを押下した場合は、不適切に認証ボタンが押下されたこととなり(ステップS25においてNG)、認証は失敗となる。この場合にはステップS29に進む。そして、ステップS29では、所定の認証失敗処理を実行する。
以上説明した本実施形態では、ユーザIDやパスワードが誤っている場合のみならず、設定時刻(秒)に格納されている秒の値と異なる時刻に認証ボタンが押下された場合にも、認証が失敗したものとして取り扱う。
これにより、正当なユーザではない第三者が、正当なユーザIDとパスワードを何らかの手段で不正に取得していたとしても、情報端末100の機能を利用することができなくなる。
つまり、本実施形態は、正当なユーザではない第三者が不正に情報端末100の機能を利用することを防止することが可能となる、という効果を奏する。
<第2の実施形態>
次に、第2の実施形態について説明する。本第2の実施形態は、上述した第1の実施形態における、パスワード及び時刻を利用した認証に加えて、更に、電子コンパスを利用して認証を行なうというものである。
なお、その他の基本的な構成や動作については、本第2の実施形態と上述した第1の実施形態とで共通する。そこで、かかる共通点については、以下では説明を省略し、特に相違点について詳細に説明を行なう。
まず、本実施形態である情報端末200の構成について図5を参照して説明する。
図5を参照すると、情報端末200は、制御部210、不揮発性メモリ220、時計部230、キーボード240、ディスプレイ250、バス260及び電子コンパス270を含む。また、制御部210は、CPU211、ROM212及びRAM213を含む。これら各部はバス260を介して相互に接続されている。ここで、電子コンパス270以外の各部のそれぞれは、第1の実施形態における情報端末100に含まれる同名の部分と同様の構成であるので説明を省略する。なお、情報端末100は据え置きで使用する装置でも実現可能であると説明した。しかし、情報端末200は、電子コンパスを用いて、情報端末200が向いている方位に応じた認証を行なうことから、情報端末200はユーザが向きを容易に変更することが携帯端末により実現することとする。
電子コンパス270は、情報端末200の現在の方位を測定する。そして、情報端末200は、電子コンパス270が測定した方位に基づいて認証を行なう。電子コンパス270は、例えば、地磁気を検知する磁気センサと、センサからの信号に基づいて方位角を演算するマイコンの組み合わせにより実現することができる。なお、情報端末200が、例えばスマートフォンであれば地図を回転させて表示させる等の用途で電子コンパスが搭載されていることがある。その場合には、かかる電子コンパスを、本実施形態における電子コンパス270として利用すれば良い。
次に、図6を参照して、不揮発性メモリ220に格納される「認証用情報テーブル」について説明する。図6を参照すると、認証用情報テーブルは、「ユーザID」、「パスワード」、「設定時刻(秒)」及び「方位角」を属性として含む。
ここで、「ユーザID」、「パスワード」及び「設定時刻(秒)」については、図2を参照して説明した第1の実施形態の認証用情報テーブルと同じ内容であるので説明を省略する。
「方位角」には、方位による認証を行なうための方位角の値が格納される。本例では、方位角を左手系北基準で表わす。本例で格納されているのは、90°(東を表わす)である。そのため、情報端末200の向きを東に変えることによって、電子コンパス270の測定する方位を東向きとすることにより、認証が成功する。
なお、このように方位を360°で表わす場合に、電子コンパス270の測定する方位を、認証用情報テーブルに格納されている方位角の値と、1°の狂いもなく、完全に同一とすることは難しい。
そこで、本実施形態では、認証用情報テーブルに格納されている方位角の値と完全に一致しなくとも、認証用情報テーブルに格納されている方位角の値を含んだ所定の角度の範囲と一致するのであれば認証が成功として取り扱うようにする。
本例では、かかる所定の角度の範囲を±5°とする。つまり、本例では、電子コンパス270の測定する方位角が、85°乃至95°の範囲に入った場合に認証が成功したものとして取り扱う。
そして、かかる認証用情報テーブルに格納されている方位角の値は、情報端末200のメーカやユーザにより設定されるようにしても良い。また、そうするのではなく、情報端末200が、かかる値を決定し、決定した値をユーザに何らかの方法にて通知するようにしても良い。何れにしても、認証に先立って、ユーザが、かかる値が幾つであるのかを把握しているようにしておく必要がある。
そして、かかる値を把握したユーザは、かかる値を自身で記憶し、認証時にかかる値を思い出せるようにしておく。
なお、かかる値はパスワードとして機能するので、一般的なパスワードの管理方法と同じように、第三者がかかる値を把握できないように、物的にも人的にも管理を行なう必要がある点については、上述した設定時刻(秒)の値と同じである。
なお、所定の角度の範囲をどの程度にするのかについても、情報端末200のメーカやユーザにより設定されるようにしても良い。また、そうするのではなく、情報端末200が、かかる所定の角度の範囲を決定するようにしても良い。ただし、所定の角度については、ユーザに通知しても良いが、通知しなくても良い。つまり、所定の角度については、ユーザが把握していなくとも良い。
次に、本実施形態の認証時の動作を表わす図である図7のフローチャートを参照して、本実施形態における認証時の動作について詳細に説明する。
なお、以下の各動作は、特に説明のない限り、制御部210の制御に基づいて行なわれるものとする。
また第1の実施形態と同様に、認証は、情報端末の起動時や、ネットワークへのログイン時や、ネットワークを介したコンピュータシステムへのログイン時や、情報端末200上で動作する各種アプリケーションプログラム上で必要が生じた時等に行なわれる。ただし、これは例示に過ぎず、任意のときに認証を行なうことができる。
ここで、ステップS11乃至ステップS29における処理の内容は、上述した第1の実施形態と同様であるので、説明を省略する。一方で、本実施形態では、ステップS31、ステップS33、ステップS35及びステップS37の4つのステップが追加されているので、これら追加されたステップについて説明をする。
まず、ステップS31とステップS33について説明する。本実施形態では、認証を成功させるためには、上述したように、ユーザが情報端末200の向きを調整することにより、電子コンパス270の測定する方位を、認証用情報テーブルに格納されている方位角の値を含む所定の角度の範囲内とする必要がある。
ユーザにかかる調整を行なわせるためには、ディスプレイ150が表示する認証画面に、電子コンパス270の測定する現在の方位角に基づいたコンパスの画像や、電子コンパス270の測定する現在の方位角の値を含ませることが望ましい。
しかしながら、ステップS11の段階で、これらコンパスの画像や、方位角の値を認証画面に表示してしまうと、正当なユーザではない第三者が不正に認証を試みるときに、方位が認証キーの1つとなっていることを気付かれてしまうおそれがある。なぜならば、通常、認証画面において現在時刻が表示されていることは不自然ではないが、認証画面においてコンパスの画像や、方位角の値が表示されていることは不自然だからである。
そこで、本実施形態では、ステップS11の段階では、これらコンパスの画像や、方位角の値は、認証画面に表示させない。そして、方位が認証キーであることを把握しているユーザから、所定の操作を受け付けたことを契機として、これらコンパスの画像や、方位角の値を認証画面に初めて表示させる。
これにより、正当なユーザではない第三者に方位が認証キーの1つとなっていることを気付かれてしまうことを防止することができる。
なお、かかる所定の操作は、例えば、所定のボタンの押下とする。他にも、単なるボタンの押下ではなく、複数のボタンを所定の順番で押下するというものでも良い。また、他にも、所定のボタンを所定の時間以上長押しするというものであっても良い。
また、どのような操作を所定の操作とするのかを、ユーザが決定できるようにしても良い。このようにすれば、正当なユーザではない第三者が所定の操作がどのようなものであるのかということを把握することができない。
また、所定の操作を、ユーザID及びパスワードを入力する場面では通常行なわない操作とすると良い。このようにすれば、正当なユーザではない第三者が適当に行なった操作に基づいて、所定の操作が偶然行なわれてしまうことを防止することができる。
そして、具体的な処理として、まずかかる所定の操作を受け付けたか否かを判定する(ステップS31)。そして、所定の操作を受け付けない場合は(ステップS31においてNo)、認証画面の表示内容を変えることなく、ステップS19からの処理を継続する。
一方で、所定の操作を受け付けた場合は(ステップS31においてYes)、認証画面にコンパスの画像や、方位角の値を追加して表示する(ステップS33)。この場合の認証画面の例について図8を参照して説明する。
図8に表わされるように、ステップS32における処理を行なった後の認証画面には、画面の左下にコンパスの画像及び方位角の値を表示する。ユーザはこれらの表示を参照しながら情報端末200の向きを調整することにより、電子コンパス270の測定する方位を、認証用情報テーブルに格納されている方位角の値を含む所定の角度の範囲内とすることができる。
次に、ステップS35とステップS37について説明する。
ステップS21乃至ステップS25の判定において全てOKだった場合に、制御部210は、電子コンパス270から、電子コンパス270が測定している現在の情報端末200の方位を、方位角の値として取得する(ステップS35)。
そして、制御部210は、電子コンパス270から取得した方位角が、図6を参照して説明した認証情報用テーブルに格納されている方位角の値を含む所定の角度の範囲内に有るか否かを確認する(ステップS37)。
確認の結果、電子コンパス270から取得した方位角が、所定の角度の範囲内にない場合は(ステップS37においてNG)、認証は失敗したとして取り扱い、認証失敗処理を行なう(ステップS29)。
一方で、確認の結果、電子コンパス270から取得した方位角が、所定の角度の範囲内にある場合は(ステップS37においてOK)、認証が成功したとして取り扱い、認証成功処理を行なう(ステップS27)。
以上説明した、本実施形態は上述の第1の実施形態と同様の効果を奏する。また、本実施形態では、更に、電子コンパス270が測定した方位に基づく認証も行なうことから、第1の実施形態に比較して、より確実に認証ができ、安全性を高めることが可能となる、という効果も奏する。
<第3の実施形態>
次に、第3の実施形態について説明する。本第3の実施形態は、上述した第1の実施形態や第2の実施形態において、情報端末100や情報端末200が行っていた認証の一部又は全部を認証サーバにて行なうというものである。本第3の実施形態は、例えば、ネットワークに接続された認証サーバにて認証を行なう必要が有る場合に好適である。
なお、基本的な構成や動作については、本第3の実施形態と上述した第1の実施形態や第2の実施形態とで共通する。そこで、かかる共通点については、以下では説明を省略し、特に相違点について詳細に説明を行なう。
まず、本実施形態における認証サーバ300と各情報端末との接続、及び認証サーバ300の構成について図9を参照して説明する。
図9を参照すると、本実施形態は、情報端末100、情報端末200、認証サーバ300及びネットワーク400を含む。
情報端末100及び情報端末200は、ネットワーク400を介して認証サーバ300と通信可能に接続する。なお、ネットワーク400は、インターネットやLAN(Local Area Network)、あるいは、これらの組み合わせにより実現される。
ここで、情報端末100及び情報端末200の構成及び動作は、第1の実施形態や第2の実施形態として既に説明しているので、重複した説明及び図示を省略する。
更に、図9を参照すると、認証サーバ300は、制御部310、不揮発性メモリ320、時計部330及びバス340を含む。また、制御部310は、CPU311、ROM312及びRAM313を含む。これら各部はバス340を介して相互に接続されている。ここで、これら各部のそれぞれは、第1の実施形態における情報端末100や第2の実施形態における情報端末200に含まれる同名の部分と基本的に同様の構成であるので説明を省略する。ただし、本実施形態では、制御部が情報端末を制御するのではなく、認証サーバ300を制御する点が異なる。そのため、制御部は認証サーバ300を実現するための一般的な機能を更に含むものとする。
次に、本実施形態の動作について図10のシーケンス図を参照して説明を行なう。なお、以下の説明では、情報端末100と認証サーバ300の動作について説明するが、情報端末200も情報端末100と同様の動作を行なう。
まず、上述のステップS11乃至ステップS19の処理を行ない、認証ボタンの押下を受け付けたこと(ステップS19においてYes)を契機として、情報端末100が認証用の情報を認証サーバ300に対して送信する(ステップA51)。具体的にどのような情報を認証用の情報として送信するかについては後述する。
認証用の情報を受信した認証サーバ300は、受信した認証用の情報を用いて認証用処理を行なう(ステップA53)。かかる認証用処理は、ステップS21乃至ステップS25として、認証端末100が行なう認証処理の一部又は全部と同様の認証処理である。
そして、認証サーバ300は認証結果を、情報端末100に対して送信する(ステップA55)。ここで、認証結果とは、認証に成功したか否かを表わす情報である。
認証結果を受信した情報端末100は、認証結果に応じた処理を行なう(ステップA57)。例えば、受信した認証結果が認証に成功したことを表わす情報であった場合には、ステップS27の処理を行なう。一方で、受信した認証結果が認証に失敗したことを表わす情報であった場合には、ステップS29の処理を行なう。
以上説明した、本実施形態により、認証サーバにより認証を行なう場合であっても、実施形態1や実施形態2と同様に時刻の秒を利用した認証を行なうことが可能となる。これにより、認証サーバにより認証を必須とするサービス等を利用する場合であっても、認証の安全性を高めることが可能となる。
ここで、上述のステップA53にて情報端末100から送信される認証用の情報と、ステップA53にて認証サーバ300が実行する認証の内容について更に説明をする。
本実施形態では、認証用の情報と認証サーバ300が実行する認証の内容の組み合わせとして、例えば4つのパターンが考えられる。
まず、第1のパターンでは、前提として認証サーバ300は、図2に表わされるような認証用情報テーブルと同等の情報を予め記憶しておく。一方で、情報端末100は、図2に表わされるような認証用情報テーブルと同等の情報を記憶しなくても良い。
ただし、情報端末100が認証情報用テーブルと同等の情報を記憶しておき、認証時に情報端末100が、認証用テーブルと同等の情報を認証サーバ300に送信するようにしても良い。また、認証サーバ300が、図示を省略している他の装置が記憶している認証情報用テーブルと同等の情報を参照できるようにしても良い。
そして、本第1のパターンでは、認証用の情報に、情報端末100が受け付けた「ユーザID」及び「パスワード」と、情報端末100が認証ボタンの押下を受け付けた時刻の「秒」とを含ませる。そして、認証サーバ300はステップS21、ステップS23及びステップS25に相当する認証を全て行なう(ステップA53)。そして、これらの認証結果を情報端末100に対して送信する(ステップA55)。これにより、認証サーバ300を利用する場合であっても、上述した各実施形態と同様に時刻の秒を利用した認証を行なうことができる。
次に、第2のパターンでは、前提として認証サーバ300は、図2に表わされるような認証用情報テーブルに含まれる正しいユーザID及び正しいパスワードを予め記憶しておく。一方で、情報端末100は、図2に表わされるような認証用情報テーブルに含まれる正しいユーザID及び正しいパスワードを記憶しておく必要は無いが、認証用情報テーブルに含まれる「設定時刻(秒)」の情報は記憶しておく。
ただし、情報端末100が認証情報用テーブルと同等の情報を記憶しておき、認証時に情報端末100が正しいユーザID及び正しいパスワードを認証サーバ300に送信するようにしても良い。また、認証サーバ300が、図示を省略している他の装置が記憶している認証情報用テーブル内の正しいユーザID及び正しいパスワードを参照できるようにしても良い。
なお、以下で説明する第3のパターン及び第4のパターンにおいても、前提として情報端末100及び認証サーバ300が記憶しておくべき情報は、本第2のパターンと同様である。
そして、本第2のパターンでは、情報端末100がステップS25における、時刻の秒を利用した認証を行なう。そして、認証用の情報に、情報端末100が行なった、時刻の秒を利用した認証が「成功したか否かを表わす情報」と、情報端末100が受け付けた「ユーザID」及び「パスワード」を含ませる。そして、認証サーバ300は、ステップS21及びステップS23の認証を行なう(ステップA53)。また、情報端末100が行なった、時刻の秒を利用した認証が「成功したか否かを表わす情報」を参照することにより、かかる時刻の秒を利用した認証が成功したか否かを確認する。
そして、認証サーバ300は、認証サーバ300にて行なった認証が全て成功し、且つ、情報端末100が行なった、時刻の秒を利用した認証が成功している場合にのみ、認証成功を表わす認証結果を情報端末100に送信し、それ以外の場合には、認証失敗を表わす認証結果を情報端末100に送信する。これにより、認証サーバ300を利用する場合であっても、上述した各実施形態と同様に時刻の秒を利用した認証を行なうことができる。
次に、第3のパターンでは、情報端末100がステップS25における、時刻の秒を利用した認証を行なう。そして、時刻の秒を利用した認証が成功した場合にのみ、認証用の情報を認証サーバ300に送信し、時刻の秒を利用した認証が失敗した場合には認証用の情報を認証サーバ300に送信しない。
そのため、時刻の秒を利用した認証が失敗した場合には認証サーバ300が認証を行なうことはできないこととなる。
一方で、時刻の秒を利用した認証が成功した場合に送信する認証用の情報には、情報端末100が受け付けた「ユーザID」及び「パスワード」を含ませる。そして、認証サーバ300は、ステップS21及びステップS23の認証を行なう(ステップA53)。また、認証サーバ300は、認証サーバ300にて行なった認証結果を情報端末100に対して送信する(ステップA55)。これにより、認証サーバ300を利用する場合であっても、上述した各実施形態と同様に時刻の秒を利用した認証を行なうことができる。
また、第3のパターンでは、認証サーバ300は、各情報端末から認証用の情報が送信された場合に、一般的なユーザIDとパスワードを利用した認証を行なうこととなる。また、認証サーバ300は、各情報端末から認証用の情報が送信されない場合には何らの処理も行なわない。つまり、第3のパターンでは認証サーバ300は、本実施形態特有の処理を行なう必要がない。そのため、実施形態に合わせてそれまでの認証サーバを変更することなく本実施形態を実施することが可能となる。
次に、第4のパターンでは、情報端末100がステップS25における、時刻の秒を利用した認証を行なう。
そして、時刻の秒を利用した認証が成功した場合には、認証用の情報に、情報端末100が受け付けた「ユーザID」及び「パスワード」を含ませる。
一方で、時刻の秒を利用した認証が失敗した場合には、認証用の情報に、情報端末100が受け付けた「ユーザID」と、情報端末100が受け付けた「パスワード」を書き換えることにより生成した誤った内容の「パスワード」を含ませる。
そして、認証サーバ300は、ステップS21及びステップS23の認証を行なう(ステップA53)。また、認証サーバ300は、認証サーバ300にて行なった認証結果を情報端末100に対して送信する(ステップA55)。ここで、時刻の秒を利用した認証が失敗した場合には、誤った内容の「パスワード」を受信しているので、認証は失敗となる。これにより、認証サーバ300を利用する場合であっても、上述した各実施形態と同様に時刻の秒を利用した認証を行なうことができる。
また、第4のパターンでは、認証サーバ300は、各情報端末の要求に応じて、一般的なユーザIDとパスワードを利用した認証を行なうこととなる。この場合に、認証サーバ300は、本実施形態特有の処理を行なう必要がない。そのため、実施形態に合わせてそれまでの認証サーバを変更することなく本実施形態を実施することが可能となる。
以上説明した各実施形態は、以下に述べるような多くの効果を奏する。
各実施形態が奏する第1の効果は、安全性の高い認証を提供できることである。
その理由は、ユーザIDやパスワードに加えて、時刻情報を組み合わせることで登録された正規のユーザしか知りえない情報が増加する為である。また、認証画面に現在時刻を表示することは、各実施形態の方法に拠らず一般的に行なわれていることであり、特徴的な動作を行なう必要がないことから、時刻が認証のキーになっているということが第三者に知られる可能性も小さい。
また、時刻が認証のキーになっているということを知らないならば、認証に失敗した第三者は、第三者が入力したユーザIDやパスワードが誤っていたと認識する可能性が高い。この場合に、第三者は異なるユーザIDやパスワードを入力して再度の認証を試みるものと考えられる。しかし、この場合には、ユーザIDやパスワードは誤った内容のものを入力することになるので、以後の認証は成功することはない。よって、上述したように各実施形態では安全性を高めることが可能となる、という効果を奏する。
この点、万が一ショルダハッキング等を行なわれた場合であっても、この時刻が認証キーとなっていることが第三者に怪しまれる危険も少ないという効果に変わりはない。なお、ショルダハッキングは、パスワードなどの重要な情報を入力しているところを後ろから近づいて、パスワードの内容等を肩越しに覗き見るというものである。
また、上述したように第2の実施形態であれば、更に、方位に基づく認証も行なうことから、登録された正規のユーザしか知りえない情報が増加することとなるので安全性をより高めることができる。また、登録された正規のユーザしか知り得ない所定の操作を行なわなければ、方位に関する情報を参照できないようにすると、登録された正規のユーザしか知りえない情報が、更に増加することとなるので安全性をより一層高めることができる。
また、各実施形態が奏する第2の効果は、一般的な従来のユーザ認証方法に比して、ユーザの不便が増すことが無いということである。
その理由は、時刻情報の秒の値を認証に用いるので、ユーザは何かを追加で入力する必要もなく、最大でも約1分間待つだけで認証が行なえるためである。
また、各実施形態が奏する第3の効果は、従来の認証装置に対して、新たなハードウェアの構成を追加する必要が無いということである。
その理由は、時刻情報の秒の値を認証に用いるので、認証装置の現在時刻を認証画面に表示するだけでよいためである。
また、第3の実施形態が奏する更なる効果は、認証サーバにより認証を行なう場合であっても、実施形態1や実施形態2と同様に時刻の秒を利用した認証を行なうことが可能となる、という点である。これにより、認証サーバにより認証を必須とするサービス等を利用する場合であっても、認証の安全性を高めることが可能となる。
また、上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
例えば、上述の各実施形態では、ユーザIDと文字及び/又は数字によるパスワードとをキーボード等から入力しているが、携帯端末やカード等の媒体を使用した認証の場合、ユーザIDは携帯端末やカード等の媒体からの読み取りによって入力することとし、文字及び/又は数字によるパスワードのみをキーボード等から入力するようにしてもよい。
また、上述の各実施形態では、文字及び/又は数字によるパスワードを生のまま記憶しているが、パスワードを非可逆に変換(ハッシュ化等)して生成した認証データとして記憶し、入力されたパスワードについても同様の変換を行ない、生のパスワード同士の比較ではなく、変換して生成された認証データ同士の比較によってパスワードの正当性をチェックするようにしてもよい。この場合、記憶されているパスワードと入力されたパスワードとが一致するとは、記憶されているパスワードを非可逆に変換して生成した認証データと、入力されたパスワードを非可逆に変換して生成した認証データとが一致することを意味する。
また、上述の各実施形態では、認証用情報テーブルに格納する設定時刻(秒)の値は、60進法で表した時刻の秒に対応する値なので、00乃至59の何れかの値となると説明した。この場合、ユーザID等を入力中に認証ボタンを押下する時刻が経過してしまった場合、認証ボタンを押下するまで、最大で約1分の待機をする必要が生じていた。
例えば、設定時刻(秒)の値が「15」であったとする。そして、ユーザID及びパスワードを入力した時点での現在時刻の秒の値が「16」であったとする。すると、ユーザは、直ぐに認証ボタンを押下することはできず、一分待機して、再度現在時刻の秒の値が「15」となるのを待ってから、認証ボタンを押下することとなっていた。これでは、待機時間が長くなり、実用上利便性に欠けるとされる場合もあり得る。
そこで、各実施形態を変形して、認証用情報テーブルに格納する設定時刻(秒)の数値としては、60進数で表わされる00乃至59の秒を2桁の10進数で表わしたときの1の位の数値のみを用いるようにしてもよい。この場合、認証用情報テーブルに格納する設定時刻(秒)の数値として、1の位の数値のみ記憶するようにしてもよい。
すなわち、認証用情報テーブルに格納する設定時刻(秒)の値を0乃至9の何れかの値に限定するようにしても良い。このようにすれば、10秒に一回、認証ボタンを押下する時刻が到来するので、認証ボタンを押下する時刻を待機する時間を短くすることができる。
また、上述した各実施形態では、認証ボタンを押下があった時点の現在時刻の秒の値が、認証用情報テーブルに格納する設定時刻(秒)の値が同一の値であった場合に認証成功として取り扱っていた。しかし、ユーザによっては、秒単位でタイミングを合わせて認証ボタンを押下することが困難な場合も考えられる。
そこで、各実施形態を変形して、認証ボタンの押下があった時点の現在時刻の秒の値が、認証用情報テーブルに格納する設定時刻(秒)の値から所定の数だけ前後した数字であった場合も、認証成功として取り扱うようにしても良い。所定の数だけ前後とは、例えば、+1秒、−1秒、又は、±1秒ずれていても良いということである。言い換えると、方位角における所定の角度の範囲のように所定の数値の範囲を定めるようにしても良いということである。
例えば、かかる所定の数が±1秒であり、設定時刻(秒)の値が「15」であったとする。この場合には、ユーザが認証ボタンを押下した時点での現在時刻の秒の値が、14、15及び16の何れかであれば認証が成功したものとして取り扱う。これにより、秒単位でタイミングを合わせて認証ボタンを押下することが困難なユーザに対しても、各実施形態による認証装置を提供することが可能となる。
更に、例えば、上述の各実施形態ではユーザが認証ボタンを押下した時点での現在時刻の秒の値が、認証用情報テーブルに格納された設定時刻(秒)の値と同一の値であるか否かに基づいて認証を行っていた。これを変形して、認証ボタンの押下ではない所定の操作を受け付けた時点での現在時刻の秒の値が、認証用情報テーブルに格納された設定時刻(秒)の値と同一の値であるか否かに基づいて認証を行なうようにしても良い。
かかる所定の操作は、例えば、単なるボタンの押下ではなく、複数のボタンを所定の順番で押下するというものでも良い。また、他にも、所定のボタンを所定の時間以上長押しするというものであって、長押し開始時点の現在時刻の秒の値に基づいて認証を行なうものであっても良い。
また、他にも、例えば、ユーザID又はパスワードの一文字目の入力を行なった時点での現在時刻の秒の値に基づいて認証を行なうものであっても良い。また、パスワードの最後の一文字を入力した時点で認証処理を開始するようにして、パスワードの最後の一文字を入力した時点での現在時刻の秒の値と、認証用情報テーブルに格納された設定時刻(秒)の値とが同一の値であるか否かに基づいて認証を行なうようにしても良い。
更に、上述の説明では、設定時刻(秒)として、1つの値を記憶し、この1つの値を利用して認証を行っていたが、複数の値を記憶して、この複数の値を利用して認証を行なうようにしても良い。
そして、所定の操作を複数回受け付け、受け付けたそれぞれの時刻の秒の値と、設定時刻(秒)として記憶している複数の値が完全に一致したならば認証成功とするようにしても良い。
複数の所定の操作は、例えば認証ボタンの複数の押下であっても良い。また、複数のボタンの押下であっても良い。
また、例えば所定のボタンの長押しする場合の、押下開始時刻と押下終了時刻が設定時刻(秒)として記憶している複数の値が完全に一致したならば認証成功とするようにしても良い。
更に、例えば、第1の実施形態において、ステップS21乃至ステップS25のそれぞれを行なう順序は前後しても良い。同様に、第2の実施形態において、ステップS21乃至ステップS25並びにステップS35及びステップS37のそれぞれを行なう順序は前後しても良い。
更に、例えば、第2の実施形態において、方位角に基づいた認証を行なう旨を説明したが、電子コンパス270が天頂角も測定できるような場合には、方位角と共に又は方位角に代えて、天頂角にも基づいた認証も行なうようにすると良い。
更に、例えば、第2の実施形態においてステップS35にて電子コンパス270から現在の方位角を取得していたが、ユーザが認証ボタンを押下した時点で、すなわち、ステップS19においてYesとなった時点で、電子コンパス270から現在の方位角を取得するようにしても良い。ただし、現実的には、ステップS21乃至ステップS25の判定処理は、ごく短時間で行なわれることから、このようにしたとしても取得される方位角は同じ値となると考えられる。
更に、例えば、第3の実施形態において、第2の実施形態と第3の実施形態と組み合わせるならば、情報端末100が送信する認証の情報に、方位角を含ませるようにしても良い。そして、ステップS37の認証処理を認証サーバ300が行なうようにしても良い。
更に、例えば、各実施形態では、ユーザIDを用いて、ユーザについて認証を行なったが、ユーザ以外の他の対象についてのIDを用いて、ユーザ以外の他の対象についての認証を行っても良い。
なお、上述したように認証は、情報端末の起動時や、ネットワークへのログイン時や、ネットワークを介したコンピュータシステムへのログイン時や、100上で動作する各種アプリケーションプログラム上で必要が生じた時等、様々な状況下で行なわれる。
これに対応して、一部又は全部の内容が異なる認証用情報テーブルを、複数用意しておいても良い。例えば、情報端末の起動時に行なう認証に用いる認証用情報テーブルと、ネットワークへのログイン時に行なう認証に用いる認証用情報テーブルとの2つの認証用情報テーブルを用意しておいても良い。そして、ユーザIDや、パスワードの内容等を各テーブルで異ならせるようにしても良い。
なお、上記の情報端末は、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記の情報端末により行なわれる認証方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1) ユーザを識別するための識別情報と、文字及び/又は数字による第1のパスワードと、時計が示す時刻情報に関連する数値である第2のパスワードとを記憶する記憶手段と、
認証時、前記識別情報及び前記第1のパスワードの入力を受け付け、記憶されている前記識別情報及び前記第1のパスワードと入力された前記識別情報及び前記第1のパスワードとが一致し、所定の操作もしくは所定の入力を受け付けた時刻に対応する時刻情報と、前記第2のパスワードとが対応するならば認証成功と判定する制御手段と、
を備えることを特徴とする認証装置。
(付記2) 前記第2のパスワードは、60進数で表わされる秒を2桁の10進数で表わしたときの数値であることを特徴とする付記1に記載の認証装置。
(付記3) 前記所定の操作又は所定の入力を受け付けた時刻と、前記第2のパスワードとが対応するとは、両者の数値が一致すること又は前記所定の操作又は所定の入力を受け付けた時刻が、前記第2のパスワードの数値に対して所定の数値の範囲内であることを特徴とする付記1又は2に記載の認証装置。
(付記4) 前記制御手段は、前記識別情報、前記第1のパスワード及び前記第2のパスワードを利用した前記認証に加えて、自認証装置が向いている方位に基づいた認証を更に行なうことを特徴とする付記1乃至3の何れか1に記載の認証装置。
(付記5) 前記記憶手段は、所定の方位を表わす情報を第3のパスワードとして更に記憶し、
前記制御手段は、
前記識別情報、前記第1のパスワード及び前記第2のパスワードを利用した前記認証が成功し、且つ、前記認証時に自認証装置が向いている方位と、前記第2のパスワードとして前記記憶手段が記憶している情報により表わされる方位が同一の方位又は所定の角度の範囲の方位であるならば認証成功と判定することを特徴とする付記4に記載の認証装置。
(付記6) 前記制御手段は、前記ユーザが前記第1のパスワードを入力するための画面に、現在時刻の秒の値を出力することを特徴とする付記1乃至5の何れか1に記載の認証装置。
(付記7) 他の認証装置が認証の少なくとも一部を行なう場合に、
前記制御手段は、自制御手段が行なった認証が成功したと判断できなかったならば、前記他の認証装置による認証が失敗となるような認証用の情報を前記他の認証装置に送信する処理、又は前記他の認証装置が認証を行なうために必要な認証用の情報を前記他の認証装置に送信しない処理を行なうことを特徴とする付記1乃至6の何れか1に記載の認証装置。
(付記8) 前記他の認証装置による認証が失敗となるような認証用の情報とは、ユーザから入力されたパスワードの内容を改変したものであることを特徴とする付記7に記載の認証装置。
(付記9) 予め、第1のパスワードと、第2のパスワードとしての1桁もしくは2桁の数字とを記憶しておき、認証時、入力画面に少なくとも現在時刻の秒を表示し、第1のパスワードを入力した後に認証処理を指示するキー入力を行ない、第1のパスワードが一致し、認証処理を指示するキー入力があった時点の現在時刻の秒の数字が、前記第2のパスワードと一致したときに、認証成功とする認証装置。
(付記10) 付記9において、認証処理を指示するキー入力があった時点の現在時刻の秒の数字が、前記第2のパスワードの数字から所定の数だけ前後した数字であった場合も、認証成功とする認証装置。
(付記11) 付記9又は10において、第1のパスワード及び第2のパスワードとは異なる第3のパスワードを記憶しておき、認証に用いる認証装置。
(付記12) ユーザを識別するための識別情報と、文字及び/又は数字による第1のパスワードと、時計が示す時刻情報に関連する数値である第2のパスワードとを記憶する記憶ステップと、
認証時、前記識別情報及び前記第1のパスワードの入力を受け付け、前記記憶ステップにて記憶した前記識別情報及び前記第1のパスワードと入力された前記識別情報及び前記第1のパスワードとが一致し、所定の操作もしくは所定の入力を受け付けた時刻に対応する時刻情報と、前記記憶ステップにて記憶した前記第2のパスワードとが対応するならば認証成功と判定する制御ステップと、
を行なうことを特徴とする認証方法。
(付記13) コンピュータを認証装置として機能させる認証プログラムであって、
前記コンピュータを、
ユーザを識別するための識別情報と、文字及び/又は数字による第1のパスワードと、時計が示す時刻情報に関連する数値である第2のパスワードとを記憶する記憶手段と、
認証時、前記識別情報及び前記第1のパスワードの入力を受け付け、記憶されている前記識別情報及び前記第1のパスワードと入力された前記識別情報及び前記第1のパスワードとが一致し、所定の操作もしくは所定の入力を受け付けた時刻に対応する時刻情報と、前記第2のパスワードとが対応するならば認証成功と判定する制御手段と、
を備える認証装置として機能させることを特徴とする認証プログラム。