<<第1実施形態>>
以下、本発明の第1の実施の形態について図面を参照して説明する。以下の説明において、同一の部分には同一の符号を付してあり、同一の部分の名称及び機能等は、特記なき限り同じとなっている。このため、同一の部分についての重複する説明は繰り返さない。また、本明細書において、「機能の実行の禁止」と「機能の禁止」は、同義である。
図1は、本実施の形態に係る携帯型端末装置の機能制限システムの構成を示す概要図である。携帯型端末装置の所定の機能が禁止(実行禁止)されるべき研究施設等のエリア40の入口と出口に、それぞれ端末管理装置(端末制御装置)20が設置される。
携帯型端末装置1を所持するユーザ41は、入口において、入口に設置された端末管理装置20が提示したロックコードを携帯型端末装置1に入力することで、所定の機能を禁止した状態でエリア40に入場する。
ユーザ41はエリア40を出場する際、出口において、出口に設置された端末管理装置20が提示した解除コードを携帯型端末装置1に入力することにより、所定の機能の禁止を解除する。入口に設置された端末管理装置20と出口に設置された端末管理装置20は通信回線で結ばれ、それらは、ユーザ毎に(或いは携帯端末装置1毎に)異なるロックコード、解除コードを提示する。
図1では、エリア40の入口と出口が分かれているが、入口と出口を共有する場合は(即ち、出入口が1つの場合は)、端末管理装置20は1台のみで足り、その共有された出入口に設置された1台の端末管理装置20が上記ロックコードと解除コードの双方をユーザ41に対して発行する。
また、端末管理装置20をエリア40とは別の場所に設置し、全てのユーザに共通のロックコードと解除コードを発行するようにしても構わない。その場合、例えば、その共通のロックコードと解除コードを紙等に印刷し、ロックコードをエリア40の入口に、解除コードを出口に掲示する。
図2は、本実施の形態に係る携帯型端末装置1としての携帯電話機の機能構成を示すブロック図である。携帯型端末装置1は、機能制御手段10、メモリ11、キー入力手段2、撮像手段3、表示手段4、音声入力手段5、通信手段13、タイマー手段14及びカウンタ手段15を備える。
機能制御手段10は、CPU(Central Processing Unit)およびCPU上で実行されるプログラムによって実現され、携帯型端末装置1全体の機能を制御する。メモリ11は、RAM(Random Access Memory)またはRAMとROM(Read Only Memory)を含んで構成され、メモリ11上にプログラムや作業データなどが置かれる。
キー入力手段2は、ユーザからの文字入力やメニュー操作のためのキー入力を受け付ける。キー入力手段2は、0〜9の数字やひらがな等の他、「*」(アスタリスク)や「#」(シャープ)等の記号のキー入力を受け付ける。撮像手段3は、動画もしくは静止画を撮影する。表示手段4は、メニュー、ユーザへのメッセージや画像などの表示を行う。音声入力手段5は、通話時や録音時に音声を入力する。通信手段13は、通話やデータ通信時などにおいて、基地局と通信を行う。
タイマー手段14は、時刻(現在時刻)を計測するものである。タイマー手段14は、携帯型端末装置1の電源(主電源)がオフの時も図示されないバッテリを駆動源として動作し、時刻を計測し続ける。カウンタ手段15は、メモリ11上に構成されている。機能制御手段10がタイマー手段14の計測結果を参照することにより、(原則として)一定時間が経過するごとにカウンタ手段15のカウント値は更新される。
携帯型端末装置1は、音声による通話機能、TV(テレビ)電話機能、録音機能、カメラ機能、メール送受信機能、Webページを閲覧するためのWebブラウザ機能、所謂アプリ機能などの複数の機能を実現可能となっている。それらの複数の機能の内の何れかの機能の実行は、所定の操作によって禁止され、該禁止を行う際に用いるロックコード及び該禁止を解除する際に用いる解除コードは、コード入力手段12を介して入力される。コード入力手段12は、キー入力手段2及び撮像手段3を用いて構成されるが、キー入力手段2を用いることなく又は撮像手段3を用いることなく、コード入力手段12を構成することも可能である。
携帯型端末装置1の動作状態は、互いに異なる複数の動作状態から択一的に選択される。その選択動作は、例えば、機能制御手段10或いは上記CPUによって行われる。上記複数の動作状態には、通常状態、休止状態、および電源オフ状態が含まれる。通常状態及び休止状態は、携帯型端末装置1の電源(主電源)がオンである場合に選択される動作状態であり、電源オフ状態は、電源(主電源)がオフである場合に選択される動作状態である。
通常状態では、携帯型端末装置1の有する機能を(上記所定の操作によって禁止されていない限り)全て実行可能である。休止状態は、キー入力手段2等を用いた携帯型端末装置1への操作を一定時間行わなかったとき、或いは、携帯型端末装置1が図3のように折り畳み式である場合に携帯型端末装置1を折り畳んだときに、選択される動作状態である。携帯型端末装置1の動作状態が休止状態となっている場合において、キー入力手段2等を用いた何らかの操作を携帯型端末装置1に施すと、或いは、携帯型端末装置1が図3のように折り畳み式である場合に携帯型端末装置1を折り畳んだ状態から開いた状態に移行させると、携帯型端末装置1の動作状態は直ちに上記通常状態に移行する。
休止状態では、一部の機能を除いて携帯型端末装置1の有する機能の殆どが停止している(実行されないようになっている)。具体的には例えば、休止状態では、タイマー手段14による時刻の計測機能及び電話の着信を待ち受ける受信待ち機能等を除いて、携帯型端末装置1の有する機能の殆どが停止している。電源オフ状態では、タイマー手段14による時刻の計測機能を除いた他の全ての機能が停止している。上記のように、通常状態だけでなく、休止状態及び電源オフ状態においても、タイマー手段14は時刻の計測を行う。
尚、携帯型端末装置1の動作状態として、通常状態、休止状態、および電源オフ状態以外の他の動作状態を別途設けるようにしても構わない。
図3は、本実施の形態に係る携帯型端末装置1としての携帯電話機の外観図である。携帯電話機は折り畳み式となっており、図3(a)及び(b)は、それぞれ、その折り畳みを開いた際における表面概観図及び側面概観図である。携帯型端末装置1の表面側にはLCD(Liquid Crystal Display)などで実現される表示手段4とキー入力手段2が配置され、背面側にはレンズ及び撮像素子などで実現される撮像手段3が配置される。
図4は、本実施の形態に係る端末管理装置20の機能構成を示すブロック図である。端末管理装置20は、CPU21、メモリ22、表示手段23、キー入力手段24、撮像手段25、HDD(Hard Disk Drive)26、通信手段27を備える。
端末管理装置20の機能は、CPU21上で実行されるプログラムによって実現される。メモリ22は、RAMまたはRAMとROMを含んで構成され、実行中のプログラムや作業データなどを格納する。表示手段23は、メニュー、メッセージや画像などの表示を行う。
キー入力手段24は、ユーザから文字入力や各種操作のためのキー入力を受け付ける。撮像手段25は、動画もしくは静止画を撮影する。HDD26は、プログラムや保存すべきロックコード及び解除コード等を格納する。CPU21は、通信手段27を用いて他の端末管理装置20とデータ通信を行うことにより、他の端末管理装置20のHDD26に保存されたロックコード及び解除コード等の各種データを複数の端末管理装置20間で共有する。
図13を参照して、本実施の形態に係る端末管理装置20における、ロックコードの生成、解除コードの生成及びそれらの保存の処理手順について説明する。図1のように2台の端末管理装置20を用いる場合、図13を参照して説明されるステップS20〜S23の処理は、エリア40の入口に設置された端末管理装置20が行う。
まず、ステップS20にて、携帯型端末装置1を所持するユーザ41がキー入力手段24を介してユーザIDを端末管理装置20(入口側の端末管理装置20)に入力する。CPU21は、入力された該ユーザIDをメモリ22に格納する。ユーザIDが二次元コードやバーコード等の画像で符号化されている場合、撮像手段25による二次元コード等の撮影画像データをメモリ22に格納し、CPU21が該撮影画像データからユーザIDを復号する(復号されたユーザIDは、メモリ22に格納される)。
ステップS20を終えて移行するステップS21において、CPU21はロックコードと解除コードを生成し、続くステップS22にてCPU21はHDD26にユーザIDとロックコードと解除コードを互いに関連付けて保存する。その後、ステップS23にてCPU21は、表示手段23にロックコードを出力する(表示させる)。ユーザ41は、出力されたロックコードをコード入力手段12(図2)を介して携帯型端末装置1に入力する。詳細は後述するが、これにより、ロックコードにて指定された携帯型端末装置1の所定の機能(以下、機能Aという)が禁止される。
ステップS20にて入力されるユーザIDは、携帯型端末装置1を所持するユーザ41ごとに(或いは携帯型端末装置1ごとに)個別に設定されており、ユーザ41が異なれば(或いは携帯型端末装置1が異なれば)該ユーザIDも異なる。尚、全てのユーザ41(或いは携帯型端末装置1)に対して同じロックコード及び解除コードを用いるようにしてもよく、その場合は、ユーザIDは不要となり上記ステップS20の処理は省略される。
以下、ステップS21にて生成されるロックコード及び解除コードについて説明する。
図6に、ロックコードのデータ構造例を示す。ロックコードは、ヘッダ情報、期間情報、機能禁止フラグ、ロック鍵データ及びハッシュ値から構成される。
ロックコードのヘッダ情報には、ロックコードを識別するための固定の文字列からなる識別子、バージョン番号及びロックコードのデータサイズなどが含まれる。
期間情報には、機能Aの実行禁止を行う期間を示すデータが含まれている。例えば、期間情報にて機能Aの実行を禁止する秒数などを指定する。
機能禁止フラグは複数のフラグから成り、機能禁止フラグによってどの機能の実行を禁止するかが特定される。例えば図7のように、2進数の各ビットにどの機能を禁止するか否かのフラグが割り当てられ、それらのビット(フラグ)によって機能禁止フラグは構成される。そして、1が立っているビットの機能を禁止すると解釈する。
ロック鍵データは、後述するように、機能Aの実行禁止を解除する解除鍵データが正しいか否かを判定するために使用される。
ロックコードにおけるハッシュ値は、ロックコード(ロックコードのハッシュ値以外のデータ)を原文とし、該原文から公知技術であるMD5(Message Digest 5)、SHA−1(Secure Hash Algorithm 1)などの一方向性ハッシュ関数を用いて生成されたハッシュ値であり、ロックコードが改竄されていないことを確認するために使用される。
尚、図6に示したロックコードは一例であり、処理において期間情報を考慮しない(後述する図5のステップS17に関する処理を行わない)、もしくは、あらかじめ定めた期間だけ機能Aを禁止するのであれば期間情報は省略可能であり、また、禁止する機能がカメラ機能などあらかじめ定めた機能だけであるならば機能禁止フラグは省略可能である。
図8に、解除コードのデータ構造例を示す。解除コードは、ヘッダ情報、解除鍵データ及びハッシュ値から構成される。
解除コードのヘッダ情報には、解除コードを識別するための固定の文字列からなる識別子、バージョン番号及び解除コードのデータサイズなどが含まれる。
解除鍵データは、後述するように、所定の演算に用いられ、機能Aの実行禁止を解除するか否かを判定するために用いられる。
解除コードにおけるハッシュ値は、解除コード(解除コードのハッシュ値以外のデータ)を原文とし、該原文から公知技術であるMD5、SHA−1などの一方向性ハッシュ関数を用いて生成されたハッシュ値であり、解除コードが改竄されていないことを確認するために使用される。
ステップS21にて生成されるロックコードのロック鍵データ(図6参照)をKL、そのロックコードと同時生成される解除コードの解除鍵データ(図8参照)をKUとして、ロック鍵データ及び解除鍵データについて詳細な説明を行う。ステップS21にて同時生成されたロックコードと解除コードは対となっており、ロックコードと対を成す解除コードを用いなければ、携帯型端末装置1の機能禁止を解除することはできない。ロック鍵データKLは、解除鍵データKUに対して所定の演算を施すことによって得られる値を示す。ロック鍵データKLと解除鍵データKUの関係は、下記式(1)によって表される。本実施の形態では、その所定の演算に公知技術であるMD5、SHA−1などの一方向性ハッシュ関数Hを用い、KUのハッシュ値をKLとしているが、一方向性ハッシュ関数Hの代わりに暗号化関数を用いるようにしてもよい。
KL = H(KU) ・・・(1)
KLからKUを求めるのは非常に困難であるため、ロックコードを知ったユーザが不正に解除コードを生成し、携帯型端末装置1の機能禁止を解除することはできない。また、KUを128ビット以上にするなど十分に長いデータにしておけば、不正なユーザがKUを全数探索することでKLと一致するKUを見つけるといったことが抑制され、安全性が増す。反対に、ロックコード及び解除コードの入力の手間を軽減することを目的に、KU及びKLのデータ長を短くしても良い。
図15に、ステップS22にて生成され、HDD26に保存されるロックコード及び解除コードの例を示す。上述したように、生成されたロックコード及び解除コードはユーザIDと関連付けてHDD26に保存される。尚、ロックコードの代わりに、ロックコードに対して公知技術であるMD5やSHA−1などの一方向性ハッシュ関数を用いて得たハッシュ値を保存するようにしてもよい。
次に、図14を参照して、本実施の形態に係る端末管理装置20における解除コードの出力の処理手順について説明する。図1のように2台の端末管理装置20を用いる場合、図14を参照して説明されるステップS30〜S32の処理は、エリア40の出口に設置された端末管理装置20が行う。そして、その場合、入口に設置された端末管理装置20のHDD26に保存された解除コードは、ユーザIDと関連付けられつつ、通信手段27を介して出口に設置された端末管理装置20に共有される(ロックコード等のその他の各種データも共有可能である)。尚、3台以上の端末管理装置20を利用することも可能であるが、その場合、各端末管理装置20が扱うあらゆるデータは、全ての端末管理装置20間で共有可能である。
まず、ステップS30にて、携帯型端末装置1を所持するユーザ41がキー入力手段24を介してユーザIDを端末管理装置20(出口側の端末管理装置20)に入力する。CPU21は、入力された該ユーザIDをメモリ22に格納する。ユーザIDが二次元コードやバーコード等の画像で符号化されている場合、撮像手段25による二次元コード等の撮影画像データをメモリ22に格納し、CPU21が該撮影画像データからユーザIDを復号する(復号されたユーザIDは、メモリ22に格納される)。
ステップS30を終えて移行するステップS31において、CPU21は、ステップS30で入力されたユーザIDに関連付けられてHDD26に保存されている解除コードを読み出す。その後、ステップS32にてCPU21は、表示手段23に解除コードを出力する(表示させる)。ユーザ41は、出力された解除コードをコード入力手段12を介して携帯型端末装置1に入力する。これにより、携帯型端末装置1の機能Aの実行禁止が解除される。
尚、本実施の形態ではステップS30にてユーザIDを入力するようにしているが、全てのユーザ41(或いは携帯型端末装置1)に対して同じロックコード及び解除コードを用いる場合は、上記ステップS30の処理は省略可能である。
次に、端末管理装置20で生成したロックコード及び解除コードを表示手段23に表示する方法について説明する。
図9は、公知技術である二次元コードの一例である。二次元コードは、図9に示す如く、白と黒の微小な矩形にそれぞれ0または1の信号を割り当てることで、情報を画像に符号化する技術である。最近は、多くの携帯電話機にカメラ(図2の撮像手段3に相当)を使って二次元コードを読み取る機能が装備されており、ユーザはカメラで撮影するだけで情報を入力することができる。端末管理装置20は、ロックコード及び解除コードをこのような二次元コードに符号化して表示手段23に表示する。
尚、二次元コードではなく、公知技術であるバーコードを用いてロックコードや解除コードを符号化し、表示手段23に表示するようにしてよいし、電子透かし技術を用いて、写真などの画像にロックコードや解除コードを埋め込んで表示手段23に表示するようにしてもよい。
また、カメラ(図2の撮像手段3)を用いることなく、キー入力でロックコードや解除コードが入力できるよう、文字を用いてロックコードや解除コードを符号化し、表示手段23に表示するようにしてもよい。
通常、コンピュータ内でデータを表現するとき、16進数が用いられる。一方、携帯型情報端末1として携帯電話機を想定した場合、16進数をそのまま入力するためには文字入力モードを頻繁に切り替える必要があり、非常に不便である。そこで、端末管理装置20で文字を用いてロックコードや解除コードを符号化するときは、12進数に変換する。12進数であれば、例えば「*」に10進数の10、「#」に10進数の11を割り当てることで、文字入力モードを数字モードにしたまま、ロックコードや解除コードの入力を行うことができる。なおかつ、10進数と比べ、データを少ない桁で表現できるため、少ないキー入力回数でロックコードや解除コードの入力を行うことが出来る。
一般に、或る値のn進数(nは2以上の整数)への変換は、その或る値をnで次々に割っていった余りを下位の桁から並べていくことで容易に行うことができる。例えば、16進数で「1FCC6A93」という値は、12で割った余りが11、10、9、8、11、7、10、2,1であるので、その値を12進数で表現すると「12*7#89*#」となる。
次に、図5を参照して、本実施の形態に係る携帯型端末装置1における、機能の実行禁止及び禁止解除の処理手順について説明する。図5は、その処理手順を示すフローチャートである。
まず、機能制御手段10は、ユーザ(管理者)から所定の機能(機能A)の実行禁止を要求されると、ステップS10にて、コード入力手段12よりロックコードの入力を行い、入力されたロックコードをメモリ11に格納する。つまり、エリア40の入口に設置された端末管理装置20が発行したロックコードをメモリ11に格納する。ステップS10を終えて移行するステップS11において、機能制御手段10は、メモリ11に格納されたロックコードが正しいコードであるか否かの検証を行い、正しければステップS12に移行して携帯型端末装置1の機能Aの実行を禁止する。一方、正しくなければ図5の処理を終了する。
ステップS12を終えて移行するステップS13にて、機能制御手段10は、ユーザからキー入力手段2等を介して認証コードの要求があるかを確認する。認証コードの要求がなければ、そのままステップS15に移行するが、認証コードの要求があれば、機能制御手段10がステップS14にて表示手段4に認証コードの表示を行ってからステップS15に移行する。
ステップS15において、コード入力手段12は解除コードの入力を受け付ける。解除コードが入力された場合、機能制御手段10は、その解除コードをメモリ11に格納し、更にステップS16にて、格納された解除コードが正しいかどうかの確認を行う。エリア40の出口に設置された端末管理装置20が発行した正規の解除コードをステップS15にて入力していれば、ステップS16において、格納された解除コードは正しいと判断される。
ステップS15にて解除コードが入力されない場合、または、ステップS16にて解除コードが正しいものではないと判断された場合は、ステップS17に移行する。ステップS17において、機能制御手段10は、タイマー手段14とカウンタ手段15からの情報に基づいて、機能Aの実行禁止を行ってから所定の時間が経過しているか否かの確認を行う。機能Aの実行禁止を行ってから所定の時間が経過していない場合は、上述のステップS13に戻ってステップS13〜S17の処理が繰り返される。機能Aの実行禁止を行ってから所定の時間が経過している場合、または、ステップS16にて解除コードが正しいと判断された場合は、ステップS18に移行する。ステップS18において、機能制御手段10は携帯型端末装置1の機能Aの実行禁止を解除する。
ステップS10におけるロックコードの入力とステップS15における解除コードの入力を受け付けるコード入力手段12について説明する。
コード入力手段12にキー入力手段2が使われるとき、ロックコード及び解除コードは、キー入力手段2を構成するボタン(キー)を介して入力される。この場合、ロックコード及び解除コードは文字にて符号化されており、コード入力手段12(または機能制御手段10)は、キー入力手段2を介して入力された符号化された文字を復号化することにより、ロックコード及び解除コードの入力を得る。
キー入力手段2は、物理的なボタンに限らず、表示手段4上に表示された仮想キーボードによって構成されていてもよい。一般的に、コンピュータ内のデータは16進数にて表現されるが、特に携帯電話機の場合、0〜9の数字を表すボタン並びに「*」及び「#」の記号を表すボタンが備えられているため、0〜9の数字だけで入力できる10進数、あるいは、0〜9の数字に「*」及び「#」の記号を加えた12進数でロックコード及び解除コードが表現されていると、入力時に文字入力モードを変更せずにデータが入力できるので望ましい。
尚、或る値のn進数(nは2以上の整数)への変換は、その或る値をnで次々に割っていった余りを下位の桁から並べていくことで容易に行うことができる。例えば「*」に10進数の10、「#」に10進数の11を割り当てた12進数のデータ「12*7#89*#」があったとき、16で割った余りは「3、9、10、6、12、12、15、1」であるので、その12進数のデータを16進数に変換すると「1FCC6A93」となる。このように、コード入力手段12を介して入力されたコード(ロックコード及び解除コード)は、携帯型端末装置1内で扱いやすい形式に変換される。
また、コード入力手段12に撮像手段3が使われるとき、ロックコード及び解除コードは、バーコード、図9に示したような二次元コード、または写真などに埋め込まれた電子透かしとして符号化されている。つまり、ロックコード及び解除コードは、画像として符号化されている。コード入力手段12は、撮像手段3によって撮影された符号化された画像を復号化することにより、ロックコード及び解除コードの入力を得る。バーコード、二次元コード及び電子透かしについては公知技術であるので、それらの説明を割愛する。ロックコード及び解除コードが長いデータであっても、それらの入力に撮像手段3を用いるようにすれば、入力が容易となる。
尚、コード入力手段12に撮像手段3が使われるとき、カメラ機能が禁止されていても、解除コードを入力する場合に限り、撮像手段3を有効化する(つまり、解除コードを入力する場合に限って、カメラ機能の禁止を解除する)。このとき、撮像した画像が一時的な揮発性の作業メモリにのみ書き込まれ、メモリカード等の不揮発メモリに書き込まれないようにすれば、機密上の問題は生じない。
次に、図6を参照してステップS11の処理について詳細に説明する。ステップS11では、ロックコードのハッシュ値以外のデータに対して公知技術である一方向性ハッシュ関数を用いてハッシュ値を求め、そのハッシュ値がロックコード内のハッシュ値と一致するか否かを判断することでロックコードに誤りや改竄がないかの確認を行う。また、この際、ヘッダ情報、期間情報及び機能禁止フラグが不正な値でないかの確認も行う。
次に、図6、図7及び図10を参照してステップS12の処理について詳細に説明する。ステップS12では、例えば図7に示されるようなロックコードの機能禁止フラグに従って、指定された機能(機能A)の実行を禁止し、ロックコードをメモリ11に保存する。この機能禁止フラグの採用により、管理者は所望の機能だけを選択して禁止することが可能となる。また、この際、ロックコードの期間情報を元に機能の実行禁止を行う秒数をカウント値としてメモリ11上のカウンタ手段15に保存するとともに、タイマー手段14から取得した現在時刻をカウント値の更新時刻としてカウンタ手段15に記録する。
また、指定された機能(機能A)の実行を禁止するに先立って、不正なロックコードによってユーザが不利益を被らないよう、図10のように、どの機能がどれくらいの期間禁止されるかの確認メッセージを表示手段4に表示し、その機能の禁止をキャンセルできるようにしておくことが望ましい。
次に、図11を参照してステップS13及びS14の処理について詳細に説明する。ステップS13においてユーザがメニュー操作などで認証コードを表示するように要求すると、ステップS14において機能制御手段10は、表示手段4に図11に示されるような認証コードの表示を行う。例えば、認証コードとして、ロックコードのハッシュ値または該ハッシュ値に所定の演算を施して得られる値を表示する。詳細は後述するが、この認証コードは、携帯型端末装置1の機能Aが正しく禁止されているかを確認するために用いられる。
例えば、認証コードを二次元コード等の画像にて符号化したものを表示手段4に表示させるようにするとよい。この場合、認証コードを表す画像を読み取って復号化することにより管理者(端末管理装置20)は認証コードを確認することができるため、ユーザが正しいロックコードで携帯型端末装置1の機能を禁止しているかの確認が容易化される。勿論、認証コードを文字にて符号化するようにしても構わない。
次に、図8を参照してステップS16の処理について詳細に説明する。ステップS16において、機能制御手段10は、解除コードのヘッダ情報に基づいて解除コードの書式が正しいか否かを判別する。更に、機能制御手段10は、解除コードのハッシュ値以外のデータに対して公知技術である一方向性ハッシュ関数を用いてハッシュ値を求め、そのハッシュ値が解除コード内のハッシュ値と一致するか否かを判断することで解除コードに誤りや改竄がないかの確認を行う。その後、上記式(1)に従い、解除鍵データKUからロック鍵データKLを求める。そして、求められたロック鍵データKLと機能Aを禁止(実行禁止)した際のロック鍵データとを比較し、一致している場合にステップS18にて機能Aの実行禁止を解除する。
次に、ステップS17の処理について詳細に説明する。機能制御手段10は、タイマー手段14から取得した現在時刻とカウンタ手段15に記録されたカウント値の最終の(最新の)更新時刻との差に基づいてカウント値を修正する。カウント値は、時間の経過につれて変化していくが、記録されたカウント値の最終の更新時刻によって、カウント値が変化した最終の(最新の)時刻が特定される。
例えば、2時間、機能Aの実行を禁止する場合を考える。この場合、ステップS12にて「7200」の値がカウント値としてカウンタ手段15に保存され、この時のタイマー手段14の計測による現在時刻が「14:00:00」(14時ちょうど)であるなら、カウント値の更新時刻として「14:00:00」がカウンタ手段15に記録される。この後、機能Aの実行禁止が行われてから1秒が経過するとタイマー手段14の計測による現在時刻は「14:00:01」となり、その現在時刻とカウンタ手段15に記録されている最終の更新時刻との差は1秒となる。このため、機能制御手段10は、カウント値を「7199」(=7200−1)に修正し、それと同時にカウント値の更新時刻を現在時刻である「14:00:01」に修正する。
上記のような修正が繰り返されカウント値が0になると、機能制御手段10は、2時間が経過したと判断してステップS18にて機能Aの実行禁止を解除する。このように、機能制御手段10は、機能Aの実行を禁止してからの経過時間を(間接的に)表すカウント値を参照して、その経過時間を認識し、その経過時間が期間情報(図4参照)に従った時間(上記の例の場合、2時間)に達したときに機能Aの実行禁止を解除する。これにより、解除コードを入力しなくても(例えば、入力し忘れたとしても)、所定の時間がすれば自動的に機能Aの実行禁止が解除され、ユーザの便宜が図られる。尚、上記例では、カウンタ手段15は、ダウンカウンタとなっているが、アップカウンタとしても構わない。
次に、図17を参照して、携帯型端末装置1の動作状態が休止状態または電源オフ状態から通常状態に移行した場合におけるカウンタ手段15の修正処理手順について説明する。図17は、その移行時におけるカウンタ手段15の修正処理手順を表すフローチャートである。携帯型端末装置1の動作状態が通常状態(第1動作状態)となっている間は、カウンタ手段15のカウント値及びカウント値の更新時刻の変更は、上述の如く行われるが、携帯型端末装置1の動作状態が休止状態及び電源オフ状態(第2動作状態)となっている間は、カウンタ手段15のカウント値及びカウント値の更新時刻の変更は行われない。
まず、ステップS50にて携帯型端末装置1の動作状態が休止状態または電源オフ状態から通常状態に移行すると、ステップS51にて機能制御手段10は、現在、何らかの機能の実行が禁止されているかの確認を行う(今の場合、機能Aが禁止されている)。禁止が行われていない場合は図17の処理を直ちに終了するが、禁止が行われている場合、ステップS52にて機能制御手段10は、タイマー手段14から取得した現在時刻とカウンタ手段15に記録されているカウント値の最終の更新時刻との差からカウント値と最終の更新時刻の修正を行う。
例えば、休止状態または電源オフ状態から通常状態への移行時(例えば、電源投入時)における、タイマー手段14の計測による現在時刻、カウント値の最終の更新時刻及びカウント値が、それぞれ、「14:30:00」、「14:00:00」及び「7200」の場合、現在時刻と最終の更新時刻との差は30分(1800秒)であるから、カウント値は「5400」(=7200−1800)に修正されるとともに最終の更新時刻は「14:30:00」に修正される。
この修正処理により、機能Aの実行が禁止されている間、、携帯型端末装置1の動作状態が休止状態または電源オフ状態となっていても、機能Aの実行を禁止する期間情報が正しく反映される。
次に、図18を参照して、ユーザが時刻を変更した際のカウンタ手段15の修正処理手順について説明する。
まず、ステップS60にて携帯型端末装置1の時刻が変更されたとき、ステップS61にて機能制御手段10は、現在、何らかの機能の実行が禁止されているかの確認を行う(今の場合、機能Aが禁止されている)。禁止が行われていない場合は図18の処理を直ちに終了するが、禁止が行われている場合、ステップS62にて機能制御手段10は、タイマー手段14から取得した現在時刻(変更後の現在時刻)をカウンタ手段15に記録されたカウント値の最終更新時刻に設定する。
例えば、タイマー手段14の計測による現在時刻、カウント値の最終の更新時刻及びカウント値が、それぞれ、「14:30:00」、「14:30:00」及び「5400」の場合において、現在時刻が「14:30:00」から「15:00:00」に変更された場合、機能制御手段10は、カウント値の最終の更新時刻を、変更後の現在時刻である「15:00:00」に変更する(カウント値は修正されない)。
これにより、ユーザが携帯型端末装置1の時刻を変更しても機能Aを禁止する期間情報が正しく反映されるため、ユーザが不正に時刻を進めても、設定された時間が経過するまでは自動的に機能禁止が解除されないようにすることができる。尚、現在時刻の変更は、時刻変更手段としても機能するキー入力手段2等を介して行われる。
次に、携帯型端末装置1の機能Aが正しく禁止されているかを端末管理装置20で検証する処理を、図16を用いて説明する。
まず、ステップS40にて、CPU21は、検証対象となる携帯型端末装置1を所持するユーザのユーザIDの入力を受け、受けたユーザIDをメモリ22に格納する。ユーザIDが二次元コードやバーコード等の画像で符号化されている場合、撮像手段25による二次元コード等の撮影画像データをメモリ22に格納し、CPU21が該撮影画像データからユーザIDを復号する(復号されたユーザIDは、メモリ22に格納される)。
ステップS40に続くステップS41において、CPU21は、ステップS40で入力されたユーザIDに関連付けられてHDD26に保存されているロックコードを読み出す。更にステップS42にて、CPU21は、キー入力手段24を介して図5のステップS14にて表示された認証コードの入力を受け、受けた認証コードをメモリ22に格納する。認証コードが二次元コードやバーコード等の画像で符号化されている場合、撮像手段25による二次元コード等の撮影画像データをメモリ22に格納し、CPU21が該撮影画像データから認証コードを復号する(復号された認証コードは、メモリ22に格納される)。
ステップS42に続くステップS43において、CPU21は、ステップS41にて読み出したロックコードから演算される認証コードと、ステップS42にて入力した認証コードが一致するか否かを確認する。それらが一致している場合、CPU21はステップS44にて携帯型端末装置1の機能Aが正しく禁止されていると判断し、その旨を表示手段23(図4)等を用いて報知する。一方、一致していない場合は、CPU21はステップS45にて携帯型端末装置1の機能Aが正しく禁止されていないと判断し、その旨を表示手段23(図4)等を用いて報知する。
このように、端末管理装置20は、機能Aが正しく禁止されていることに対応する正規な認証コードが、端末管理装置20が発行したロックコードに基づいて生成されていることを利用して、機能Aの禁止状態を検証する。
尚、上述したように、複数の端末管理装置20を用いる場合、各端末管理装置20のHDD26に保存された内容(解除コード等)は、通信手段27を介して全ての端末管理装置20に共有される。また、本実施の形態ではステップS40にてユーザIDを入力するようにしているが、全てのユーザ41(或いは携帯型端末装置1)に対して同じロックコード及び解除コードを用いる場合は、上記ステップS40の処理は省略可能である。
例えば、管理者が提示したロックコード(端末管理装置20が発行したロックコード)とは別のロックコードと解除コードのペアをユーザが所有している場合を想定する。解除コードを知らないユーザは正当なロックコードは解除することはできないが、不正なユーザが、あらかじめ不正なロックコードで携帯型端末装置1の機能を禁止し、あたかも正当なロックコードで携帯型端末装置1の機能を禁止したふりをすることが考えられる。不正なロックコードを使用したときは認証コードが正当なロックコードを使用したときと異なる。このため、管理者がエリア40への入室チェック等を行う際に、上記の処理にて認証コードの確認を行うことにより、ユーザが正当なロックコードを使用したか、不正なロックコードを使用したかを判別することが可能となる。
また、不正なユーザが2台の携帯型端末装置1を所有しており、一方の携帯型端末装置1の表示手段4に正当な認証コードを表示させておいて、他方の携帯型端末装置1の表示手段4に同じ認証コードを表示する嘘の画面を表示させる、といった不正行為も考えられる。この場合に備え、ロックコードのハッシュ値と時刻情報(タイマー手段14の計測による時刻を表す情報)と秘密の値から改めてハッシュ値を求めたものを認証コードとして用いるようにしてもよい。このようにすれば、仮に不正なユーザが陰に隠れて一方の携帯型端末装置1で認証コードを表示させ、その認証コードの取得の後、他方の携帯型端末装置1に同じ認証コードを表示する嘘の画面を表示させても、認証コードは刻々と変わるので、不正な認証コードであることを判別可能となる。また、ユーザは、ロックコードのハッシュ値と時刻情報を取得することはできるものの、秘密の値を知ることはできないため、ユーザが不正に認証コードを生成させることもできない。これにより、不正なユーザに嘘の認証コードだけを表示するプログラムが使われるのを防止することができる。
<<第2実施形態>>
以下、本発明の第2の実施の形態について図面を参照して説明する。本明細書及び各図において、同一の部分には同一の符号を付してあり、同一の部分の名称及び機能等は、特記なき限り同じとなっている。このため、同一の部分についての重複する説明は繰り返さない。
第2の実施の形態に係る携帯型端末装置及び端末管理装置の構成ブロック図や、携帯型端末装置の機能の実行禁止及び禁止解除の処理手順等は、基本的には、第1の実施の形態におけるそれらと同じであるため、それらの重複する説明を省略する。
第2の実施の形態が第1の実施の形態と異なる点は、ロックデータのデータ構造と解除鍵データの使用方法だけであるため、異なる部分についてのみ説明する。以下、第2の実施の形態に係る端末管理装置が、図13のステップS21にて生成するロックコード及び解除コードについて説明する。
図12に、第2の実施の形態のステップS21にて生成されるロックコード(第2の実施の形態に係る端末管理装置が生成するロックコード)のデータ構造例を示す。ロックコードは、ヘッダ情報、期間情報、機能禁止フラグ、乱数データ、ロック鍵データ及びハッシュ値から構成される。尚、解除コードのデータ構造例は、図8を用いて上述したものと同じである。
ロックコードのヘッダ情報には、ロックコードを識別するための固定の文字列からなる識別子、バージョン番号及びロックコードのデータサイズなどが含まれる。
期間情報には、所定の機能(以下、機能Aという)の実行禁止を行う期間を示すデータが含まれている。例えば、期間情報にて機能Aの実行を禁止する秒数などを指定する。
機能禁止フラグは複数のフラグから成り、機能禁止フラグによってどの機能の実行を禁止するかが特定される。例えば図7のように、2進数の各ビットにどの機能を禁止するか否かのフラグが割り当てられ、それらのビット(フラグ)によって機能禁止フラグは構成される。そして、1が立っているビットの機能を禁止すると解釈する。
乱数データ及びロック鍵データは、後述するように、機能Aの実行禁止を解除する解除鍵データが正しいか否かを判定するために使用される。
ロックコードにおけるハッシュ値は、ロックコード(ロックコードのハッシュ値以外のデータ)を原文とし、該原文から公知技術であるMD5、SHA−1などの一方向性ハッシュ関数を用いて生成されたハッシュ値であり、ロックコードが改竄されていないことを確認するために使用される。
尚、図12に示したロックコードは一例であり、処理において期間情報を考慮しない(図5のステップS17に関する処理を行わない)、もしくは、あらかじめ定めた期間だけ機能Aを禁止するのであれば期間情報は省略可能であり、また、禁止する機能がカメラ機能などあらかじめ定めた機能だけであるならば機能禁止フラグは省略可能である。
また、乱数データは、CPU21等(図4)に含まれる公知の乱数発生手段によってロックコードごとに個別に設定されるが、乱数データをロックコードごとに個別に設定するのではなく予め定めたデータを乱数データとして取り扱うようにするのであれば、乱数データは省略可能である。ロックコードから乱数データを省略する場合は、その乱数データに対応する上記の予め定めたデータを事前にメモリ11及びHDD26等に格納しておく必要がある。
第2の実施の形態のステップS21にて生成されるロックコードのロック鍵データ(図12参照)をKL、乱数データをRとし、且つ、そのロックコードと同時生成される解除コードの解除鍵データ(図8参照)をKUとして、それらの関係について詳細な説明を行う。ステップS21にて同時生成されたロックコードと解除コードは対となっており、ロックコードと対を成す解除コードを用いなければ、携帯型端末装置の機能禁止を解除することはできない。
ロック鍵データKLは、被暗号化データである乱数データRに対して所定の暗号化を施すことにより得られるデータである。この暗号化に、暗号化鍵と復号化鍵が異なる公知技術である非対称鍵暗号(公開鍵暗号)を用いてもよいし、暗号化鍵と復号化鍵が同一の公知技術である対象鍵暗号(共通鍵暗号)を用いてもよい。
K1を鍵(暗号化鍵)としてRを暗号化する関数をEとすると、KLは下記式(2)のように表される。関数Eに対応する、K2を鍵(復号化鍵)としてKLを復号化する関数をDとすると、Rは下記式(3)のように表される。尚、暗号に非対称鍵暗号を用いる場合はK1とK2は異なる値であり、対象鍵暗号を用いる場合はK1とK2は共通の値となる。
KL = E(K1,R) ・・・(2)
R = D(K2,KL) ・・・(3)
解除鍵データKUには、復号化鍵K2の値が設定される。一般には、ロック鍵データKLと乱数データRからは解除鍵データKUを知ることができないため、ロックコードだけを知ったユーザが不正に解除コードを生成することはできない。
次に、図8を参照して本実施形態におけるステップS16の処理を説明する。ステップS16において、機能制御手段10は、解除コードのヘッダ情報に基づいて解除コードの書式が正しいか否かを判別する。更に、機能制御手段10は、解除コードのハッシュ値以外のデータに対して公知技術である一方向性ハッシュ関数を用いてハッシュ値を求め、そのハッシュ値が解除コード内のハッシュ値と一致するか否かを判断することで解除コードに誤りや改竄がないかの確認を行う。その後、上記式(3)に従い、解除鍵データKUを鍵としてロック鍵データKLを復号する。そして、その復号によって得られたデータと機能Aを禁止(実行禁止)した際の乱数データRとを比較し、一致している場合にステップS18にて機能Aの実行禁止を解除する。
本明細書及び各図に示された実施の形態はすべての点において例示であって制限的なものではないと考えられるべきである。本発明の範囲は、実施の形態の説明ではなく特許請求の範囲によって示され、本発明の範囲には、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれる。
携帯型端末装置としての携帯電話機を例に挙げて本発明の実施の形態を上述したが、本発明(上述の実施の形態にて示した技術)は、携帯電話機の他、携帯情報端末、携帯可能な比較的小型のパーソナルコンピュータ、デジタルビデオカメラ及びデジタルスチルカメラ等の様々な携帯型端末装置(携帯型電子機器)を対象として広く適用可能である。