JP3976201B2 - ネットワークによる入力装置の入力特徴を用いた個人認証方法、そのプログラム及びプログラムの記録媒体 - Google Patents

ネットワークによる入力装置の入力特徴を用いた個人認証方法、そのプログラム及びプログラムの記録媒体 Download PDF

Info

Publication number
JP3976201B2
JP3976201B2 JP2003568548A JP2003568548A JP3976201B2 JP 3976201 B2 JP3976201 B2 JP 3976201B2 JP 2003568548 A JP2003568548 A JP 2003568548A JP 2003568548 A JP2003568548 A JP 2003568548A JP 3976201 B2 JP3976201 B2 JP 3976201B2
Authority
JP
Japan
Prior art keywords
data
input
time
key
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2003568548A
Other languages
English (en)
Other versions
JPWO2003069492A1 (ja
Inventor
幸市郎 小路
隆 野崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Science Park Corp
Original Assignee
Science Park Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Science Park Corp filed Critical Science Park Corp
Publication of JPWO2003069492A1 publication Critical patent/JPWO2003069492A1/ja
Application granted granted Critical
Publication of JP3976201B2 publication Critical patent/JP3976201B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0861Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/316User authentication by observing the pattern of computer usage, e.g. typical user behaviour

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Social Psychology (AREA)
  • Biomedical Technology (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Numerical Control (AREA)
  • User Interface Of Digital Computer (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Debugging And Monitoring (AREA)
  • Collating Specific Patterns (AREA)
  • Storage Device Security (AREA)

Description

本発明は、電子計算機のキーボード等の入力装置の入力特徴を用いたネットワークによる個人認証方法、そのプログラム及びプログラムの記録媒体に関する。更に詳しくは、例えば個人認証用のパスワード等を入力する際に、個人がキーボードのキーを操作する特徴・癖などを利用して個人認証を行うことができる、ネットワークによる入力装置の入力特徴を用いた個人認証方法、そのプログラム及びプログラムの記録媒体に関する。
従来から、電子計算機などにアクセスするためには、予め決めたパスワードを入力して個人認証を行うパスワード認証方法(以下、方法1という。)がある。パスワードは、電子計算機に接続されているキーボードなどのデバイスから入力することが多い。このとき、パスワードはそれを構成する記号(文字、数字、記号)ごとに対応するキーボタンを押下して入力を行う。間違って入力しても、バックスペースなどの機能キーを利用して再度書き直しすることが可能である。
また、キーボードのキーを打つときの時間を認証要素の一つに取り入れたキーボードの入力特徴を用いたパスワード認証方法(以下、方法2という。)が知られている。この方法2では、キーボードのキーを押下し始める時間(タイム1)、キーを押下し終わる時間(タイム2)などを取り入れている。あるキーを押してから次のキーを押すまでの時間をユーザごとに事前に登録して、認証要素の一つにする。さらに、キーを押下しつづける時間(タイム3)、キーから指を離してから次のキーから離すまでの時間(タイム4)などを認証要素に加えているものも提案されている。
上記のようなパスワード認証は専用のプログラムを用意して行っている。この専用プログラムは、ユーザモード(後述の説明を参考)で動作し、ユーザがキーボードからアクセスした時間を取得している。正確には、ユーザがアクセスした入力デバイスを制御するデバイスドライバから、上記のタイム1、タイム2などの入力時間に関する情報を取得している。次に、従来の電子計算機のデバイスドライバ、動作モード等について説明する。
電子計算機は、中央演算処理装置(CPU)、記憶装置(メモリ、ハードディスク等)、入力装置(キーボード、マウス等)、出力装置(ディスプレイ等)、周辺機器(プリンタ、スキャナ等)へ接続するためのカードスロットなどの多くのハードウェア資源からなり、かつ記憶装置に記憶されているOS(Operating System)によってこれらのハードウェアが制御されて動作する。
電子計算機で動作する各種アプリケーションプログラムはOS上で動作する。OSは電子計算機の全ての動作を制御し、異なるハードウェア仕様の違いを吸収し、アプリケーションプログラムに共通の環境を提供するものである。つまり、OSは、キーボード入力や画面出力といった入出力機能、ディスクやメモリの管理など、多くのアプリケーションプログラムから共通して利用される基本的な機能を提供し、電子計算機のシステム全体を管理するソフトウェアで、「基本ソフトウェア」とも呼ばれることがある。
電子計算機のハードウェアは複数のメーカによって生産されて、メーカによってその仕様が異なることがある。電子計算機を利用するプログラム開発者にとっては、このハードウェアの仕様の違いを意識しないで、アプリケーションプログラムの開発を行うことが望ましい。ハードウェアのこの仕様の違いはOSが吸収しアプリケーションプログラムに対して共通の環境を提供する。
アプリケーションプログラムの開発者は、OSの提供する機能を利用することによって、開発の手間を省くことができ、アプリケーションプログラムの操作性を統一することができる。あるOS向けに開発されたアプリケーションプログラムは、基本的にはそのOSが動作するどのような電子計算機でも利用できる。
OSには、MS-DOS(登録商標)、UNIX(登録商標)、Linux、FreeBSD(登録商標)などに代表される数多くの種類があり、企業や家庭の一般ユーザが利用するOSとして最もポピュラーなのはMicrosoft社のWindowsシリーズである。DTP業界やマルチメディア業界では、Apple社のMac OS(登録商標)が広く利用されている。企業のサーバや学術機関では各社のUNIX系のOSや、無償配布されているLinuxやFreeBSDなどのUNIX系のOSが使われることが多い。近年、サーバ用のOSとしてMicrosoft社のWindows NT/2000(登録商標)がシェアを伸ばしている。
〔従来のアーキテクチャ〕
ここで、図13にはOSの代表的なものとしてWindows NT/2000(登録商標)のアーキテクチャの概要を図示している。図13からわかるように、Windows NT/2000は、全体的に概略するとハードウェア2、OS3、実際のユーザが要求する機能を実現するアプリケーションプログラム4という階層構造に成っている。マイクロカーネル51はOS3の全体的な管理を行うためのプログラムであり、マイクロカーネル51の階層を中心にして、その層の上で動作する各種ソフトウェア(カーネルモードソフトウェア)がカーネルモード8を構成している(後述の説明を参照)。そして、一番上の階層にあるアプリケーションプログラム4がユーザモード9で動作している(後述の説明を参照)。
OS3は大きく分けて、エグゼクティブ50、マイクロカーネル51、ハードウェア抽象化層(HAL)52からなる階層構造を有する。HAL52は、ハードウェア2のすぐ上の層に位置したハードウェアの制御を重視したプログラムで、プロセッサなどの多種多様なハードウェアの仕様を吸収し、上位層のサービス(マイクロカーネル51,エグゼクティブ50等)に同じ環境(機種に依存しない)を提供するためのプログラムである。
マイクロカーネル51は、システム全体の基本的な機能を提供するものである。エグゼクティブ50は、マイクロカーネル51、HAL52で提供されるサービス機能を利用してOS3の主なサービスの提供を実現するためのプログラムの総体である。エグゼクティブ50には、キャッシュマネージャ53、オブジェクトマネージャ54、プロセスマネージャ55、メモリマネージャ56、I/Oマネージャ57等の代表的なエグゼクティブプログラムが含まれている。
オブジェクトマネージャ54は、動作しているオブジェクト(ある目的の機能を実現するためのプログラム)を監視し制御・調整を行うためのプログラムである。プロセスマネージャ55は、動作しているプロセス(ある機能だけを行うためのプログラム)を監視し調整を行うためのプログラムである。キャッシュマネージャ53とメモリマネージャ56は、メモリ・仮想メモリを制御・調整するためのプログラムである。I/Oマネージャ57は、OS3の入出力機能を監視・制御するプログラムである。電子計算機がこのエグゼクティブ50で動作するとき、カーネルモード8と呼ばれている。
カーネルモード8では、OS3を操作するためのすべての命令が実行可能であり、仮に間違った命令を実行するとシステム全体に悪影響を及ぼしかねない。また、OS3の機能には、アプリケーションプログラム等のユーザに対して完全に開放されているユーザモード9がある。このユーザモード9では、システムに悪影響を与えないように、OS3を操作する命令を制限している。システムに悪影響を与えるような命令をシステムが自動的にとらえてくれるため、ユーザにとっては使い易い環境になっている。
しかし、このような制限を設けることはOS3の機能の制限と同じことなので、ユーザモード9で動作するアプリケーションプログラム4は、ハードウェア2に関わる部分には直接アクセスできなくなり、カーネルモード8を経由しなければならない。カーネルモード8はOS3の機能をフルに使うことが可能であり、各入出力装置へも完全にアクセスできる。また、カーネルモード8で動作するプログラムはユーザモード9のプログラムより優先的に処理され、高いパフォーマンスを得ることができる。
デバイスドライバ5はOS3に属し、電子計算機の外部ハードウェアを管理するためのソフトウェアであり、カーネルモード8で動作する。通常、デバイスドライバ5一つに対して同じ属性を持つデバイスが一つだけ存在する。ユーザモード9で動作するアプリケーションプログラム4は、各デバイスにアクセスするためにデバイスドライバ5を経由しなければならない。
例えば、図14に示すようにデバイスAからデバイスBへデータを転送する場合には、データの流れは「デバイスA」→「デバイスドライバA」→(カーネルモード8からユーザモード9へと動作モードの切換)「アプリケーションプログラム4」(ユーザモード9からカーネルモード8へと動作モードの切換)→「デバイスドライバB」→「デバイスB」となり、システムはカーネルモード8からユーザモード9へ又はユーザモード9からカーネルモード8へと動作モードの切り替えを行いながら処理を進めている。
ユーザモード9とカーネルモード8の切り替えは時間がかかる処理で、画像データなどのような大量のデータを転送するとき、転送速度が遅くなり、転送時間がかかる。このため、アプリケーションレベルで転送速度の高速化を図ることが困難である。アプリケーションプログラム4の処理ごとにユーザモード9とカーネルモード8の切り替えを行わなければならないからである。
ここで、従来のデバイス間にデータ転送をするときの動作手順を説明する。図14は、アプリケーションプログラム4及びデバイスドライバ5と動作モード8,9の関係の概要を図示している。図から分かるように、アプリケーションプログラム4はユーザモード9で動作している。
デバイスドライバ5は、OS3に組み込まれてカーネルモード8で動作している。電子計算機のハードウェア2を構成するデバイス6は、各種の内部デバイスと電子計算機に接続されている外部デバイスからなり、それぞれ固有のデバイスドライバ5からのみ制御される。つまり、デバイス6へのアクセスは全てデバイスドライバ5を介して行われる。デバイスドライバ5は、OS3を介して、アプリケーションプログラム4からの命令により動作する。
次にデータ伝送の流れを図15のフローチャートを参照しながら説明する。ユーザモード9で動作するアプリケーションプログラム4が、デバイスAからデバイスBへとデータを転送するときのデータの流れをシステムの動作モード8,9を比較しながら説明する。まず、アプリケーションプログラム4がデータの転送要求(命令)を出す(S50)。
このときは、デバイスAに対してデータ送信の要求(S51)、デバイスBに対してデータ受信の要求を出す(S52)。システムの動作モードはユーザモード9からカーネルモード8に切り替わる。デバイスドライバAがデータ送信の要求を受け取り(S53)、デバイスAに送信する(S54)。デバイスAがデータ送信の要求を受け取り(S55)、データを送信する(S56)。送信されたデータをデバイスドライバAが受信し(S57)、このデータを内部処理して(S58)、アプリケーションプログラム4へデータを送信する(S59)。
システムの動作モードがカーネルモード8からユーザモード9に切り替わり、アプリケーションプログラム4がデータを受信して処理し(S60、S61)、処理結果をデバイスドライバBへ送信する(S62)。システムの動作モードは再びユーザモード9からカーネルモード8に切り替わる。デバイスドライバBはデータを受信し(S63)、このデータを内部処理し(S64)、結果をデバイスBへ送信する(S65)。
デバイスBはデータを受け取り(S66)、データ受取済の情報をデバイスドライバBへ送る(S67)。デバイスドライバBはそのデータ受取済の情報を受け取り(S68)、アプリケーションプログラム4へデータ転送完了を通知する(S69)。システムはユーザモード9に替わり、アプリケーションプログラム4がデータ転送完了を受け取り(S70)、次の処理にかかり、一連のデータ転送の処理が終了する(S71)。
このように、データは「デバイスA」→「デバイスドライバA」→(動作モードの切り替え)「アプリケーションプログラム4」(動作モードの切り替え)→「デバイスドライバB」→「デバイスB」と転送される。この間、システムの動作モードはカーネルモード8とユーザモード9とに繰り返し切り替わりながら動作している。大量のデータを取り扱うようになるとこの動作モードの切り替え処理の数が多くなる。
更に、システム上に他のアプリケーションプログラムが同時に動作しているとき、このアプリケーションプログラムのためにシステムが動作モードの切り替えをするため、システム全体として動作モードの切り替え回数が多くなり、アプリケーションプログラム同士の実行処理が遅くなる原因になる。これは、動作モードの切り替え回数の増大はデータの送受信処理の低速化、特に画像処理などのリアルタイム性が強く求められる場合は、画面上に表示される画像の乱れなどの原因になりかねない。
このようなシステムにおいて、システムのパフォーマンスを確保するためにはハードウェア開発・設計技術と共にそれらのハードウェア2を制御するデバイスドライバ5の開発技術が重要になる。特に画像データのような大量のデータの転送を行うとき、ユーザモード9とカーネルモード8の切り替えを少なくして、データ転送の高速化を図ることが望ましい。また、データの保全性が強く求められているときユーザが触れないカーネルモード8内で転送することが望ましい。特に、パスワードを利用してユーザ認証を行うときには秘密データであるそのパスワードデータの保全性がとても重要になる。
特許文献1には、カーネルモードにおいて、階層構造のドライバ間で制御権を示すデータの転送技術が開示されているが、本発明の個人認証技術に関しては開示されてない。
次に個人認証を行う手順について述べる。
次に、ユーザが電子計算機に接続されているキーボードからパスワード(例えば、「PIANO」というパスワードとする。)を入力し、パスワード認証専用のアプリケーションプログラムが認証を行っている場合を考える。この場合は、キーボードはデバイス6に、パスワード認証専用のアプリケーションプログラムはアプリケーションプログラム4に対応する。また、キーボードのキーボードドライバはデバイスドライバ5に対応する。
アプリケーションプログラム4が、キーボードから入力されているキー操作の情報を取得する手順を、図16のフローチャートを用いて説明する。キー操作の情報としては、どのキーを押下したか又は離したかなどの情報がある。
まずは、アプリケーションプログラム4が起動される(ユーザモード、S80)。そして、アプリケーションプログラム4がキーボードドライバに対してキーボードから入力されるデータを送信するように指示を出す(ユーザモード、S81)。キーボードドライバがこの指示を受けて(モードが切り替えてカーネルモード、S82)、キーボードに対して操作データの送信要求を送信する(カーネルモード、S83)。
キーボードは、操作データの送信要求を受信し(S84)、操作データを送信する(S85)。キーボードドライバはこのデータを受け取り(カーネルモード、S86)、このデータを内部処理して(S87)、アプリケーションプログラム4へ送信する(カーネルモード、S88)。アプリケーションプログラム4は、キーボードドライバからの操作データを受け取り(モードが切り替えてユーザモード、S89)、システム時計のデータを受け取り、キー操作の時間を把握する(S90)。
そして、次の処理に移る(S91)。このように一連の操作が終わる(S92)。もう一度、操作データが必要な場合は、S80〜S92を繰り返して行う。このように、キーで一文字を入力する一連の操作は、ユーザモード、カーネルモード、ユーザモードを切り替えながら行われている。次のキー操作については同様な作業を繰り返して行う。このようにユーザモード、カーネルモードを切り替えながらパスワードの全ての文字を受け取ってから、暗号化し、認証を行う。
前述した方法1の場合は、パスワードを他人に知られやすいため、他人が不正アクセスしやすいという欠点がある。個人のキーボードを打つ癖などの個人の入力特徴を用いた前述した方法2の方がこのような問題点を克服している。しかし、いったん電子計算機にログインした後はだれでも使える状態になる。ユーザがログインした後、電子計算機を少し離れるなどの場合、他人がきてアクセスしたり、ユーザになりすましていたりすることが可能である。
また、電子計算機で他のアプリケーションプログラムが動作しているときに、パスワード専用のアプリケーションプログラムがデバイスドライバから入力に関する情報を受け取る。この受け取りの動作は、ユーザモード、カーネルモードの切り替えを行いながら行うために、正確な入力時間を取得できなくなり、入力時間の誤差が大きくなる。これが正規のユーザの認証率が下がる原因になりかねない。正規のユーザの認証率を上げるためには、認証精度を下げるしか方法がなくなってしまう。
図9は、横軸にユーザがキーボードから文字を入力するときのキーを押下する時間をとり、縦軸にはキーを押下しつづける時間をとってグラフ化したものである。図9のグラフ(a)のは、ユーザが入力するときの真のグラフとする。入力特徴を有するあるユーザが個人の入力するときの時間誤差を取り入れると、ユーザがあるキーを入力したのは四角60で大体グラフ化できる。
アプリケーションプログラムでキーを押下するときの時間を取得するときは、図9のグラフ(b)に示すように、そのユーザが入力する時の時間の誤差範囲が楕円61で示されるように拡大してしまう。また、他のアプリケーションなど電子計算機の中央演算処理装置などの負荷がかかる処理をしているときは、線62と線63のように時間ずれが大きくなってくる。これが大きくなると、本来のユーザの入力特徴が現れなくなってしまう。
また、上記のような認証を実現しているアプリケーションプログラムは、ユーザモードで動作するアプリケーションプログラムであり、個人のキーを打つときのタイミング抽出には時間差ができてしまう。例えば、ユーザモードにおいてほとんどのアプリケーションプログラムが動作しない場合と大量処理を行っているアプリケーションプログラムが動作している場合とのタイミング抽出に差があることは上記の説明から明白である。このためには、ユーザの認証をするときに、予め誤差範囲を大きくとっておく必要があり、認証精度の低下につながりかねない。
特許文献2にはキーボードの入力特徴を用いて個人認証を行う方式が提案されている。しかしながらこの方式は、前述したカーネルモードの切換数が多くて正確なタイミング抽出がこの方式では困難である。
国際公開WO98/47074号公報 特開2000−305654号公報
本発明は上述のような技術背景のもとになされたものであり、下記の目的を達成する。
本発明の目的は、電子計算機利用者の個人認証を電子計算機のOSの動作モードであるカーネルモードで行うことができる、ネットワークによる電子計算機の入力装置の入力特徴を用いた個人認証方法、そのプログラム及びプログラムの記録媒体を提供する。
本発明の他の目的は、電子計算機利用者のキーボート等の入力装置の操作時間を正確なタイミングで抽出することができる、ネットワークによる電子計算機の入力装置の入力特徴を用いた個人認証方法、そのプログラム及びプログラムの記録媒体を提供する。
本発明の更に他の目的は、アプリケーションプログラムとデバイスドライバとの共通のインターフェースを用いて、データの秘密性を保護することができ、しかもデータの安全転送を図ることができる、ネットワークによる電子計算機の入力装置の入力特徴を用いた個人認証方法、そのプログラム及びプログラムの記録媒体を提供する。
本発明の更に他の目的は、ネットワークを経由して電子計算機利用者をオンライン監視し、不正アクセスを防止することができる、ネットワークによる電子計算機の入力装置の入力特徴を用いた個人認証方法、そのプログラム及びプログラムの記録媒体を提供する。
本発明のネットワークによる個人認証方法、そのプログラム及びプログラムの記録媒体は、上記の目的を達成するために次の手段をとる。
ネットワークによる入力装置の入力特徴を用いた個人認証方法は、
ネットワーク網へ接続されている第1のネットワークカード、及び入力装置を含む複数のデバイスが接続されていて、OSによって制御されて動作し、かつ前記デバイスを制御するためのデバイスドライバを備えている電子計算機と、前記ネットワーク網へ接続されるための第2のネットワークカード、及び前記電子計算機のユーザの個人情報からなるデータベースを記憶した記憶手段を有するサーバと
からなるネットワークシステムにおいて用いられる入力装置の入力特徴を用いた個人認証方法である。
前記電子計算機は、前記入力装置によってユーザが入力するとき、前記ユーザが操作するときの前記入力装置から前記電子計算機に入力される情報である操作データをカーネルモードで共通インターフェース手段によって取得し、
前記操作データを含む入力データをサーバへ伝送し、
前記サーバは、入力データを受信し、分析して操作特徴を求め、
前記操作特徴を前記個人情報と比較して前記ユーザの個人認証を行うことを特徴とする。
前記電子計算機は、前記デバイスドライバの共通のインターフェースを提供するもので、前記OSの全ての命令が実行できる動作モードであるカーネルモードで動作する共通インターフェース手段を有する。
前記共通インターフェース手段は、
前記電子計算機上に動作しているアプリケーションプログラムからの、前記サーバへの接続要求を受信し、受信した前記接続要求を後記フロー制御手段に送信し、前記接続要求によって制御された前記デバイスドライバから受信したデータ若しくは後記フロー制御手段から受信したデータからなる命令実行結果を前記アプリケーションプログラムに通知するためのアプリケーションインターフェース手段と、
前記デバイスドライバから受信データを取り込むためのインターフェース手段と、
(a)前記入力装置の前記デバイスドライバから受信した前記受信データに受信した時刻を示す入力時間を追加、及び前記受信データ暗号化、又は(b)前記第1のネットワークカードの前記デバイスドライバから受信した暗号化された前記受信データ復号化するデータ処理を行って送信データを作成するデータ処理手段と、
(c)前記アプリケーションインターフェース手段から受信した前記サーバへの前記接続要求に含まれるネットワークパラメータを前記第1のネットワークカードの前記デバイスドライバへ送信して前記電子計算機と前記サーバを接続させ、更に、(d)前記送信データを受信して、前記送信データを解析し、(d−1)前記送信データが前記第1のネットワークカードの前記デバイスドライバから受信した前記受信データを復号化したもので、前記アプリケーションプログラムへのデータの場合は前記アプリケーションインターフェース手段へ送信し、(d−2)前記送信データが前記暗号化されたもので、前記ネットワークへのデータの場合は前記第1のネットワークカードの前記デバイスドライバへ送信し、(d−3)前記送信データが前記第1のネットワークカードの前記デバイスドライバから受信した前記受信データを復号化したもので、前記入力装置からデータを要求する場合は前記入力装置の前記デバイスドライバにデータを要求する処理を行うためのフロー制御手段と
からなると良い。
前記電子計算機は、前記入力装置によってユーザが入力するとき、前記操作データを前記入力装置の前記デバイスドライバから前記インターフェース手段によって前記受信データとして取得し、
前記データ処理手段によって、前記操作データに受信した時刻を示す前記入力時間を追加して、前記入力データを作成し、
前記入力データを前記第1のネットワークカードによって前記サーバへ伝送すると良い。
前記サーバは、前記入力データを前記第2のネットワークカードによって受信し、前記入力データを分析して前記ユーザの前記入力装置を操作する操作特徴を求め、
前記操作特徴を前記個人情報と比較して前記ユーザの個人認証を行う
ことを特徴とする。
前記入力装置はキーボードであり、
前記入力時間は、前記キーボードのあるキーを押下するときの第1時間情報、又は前記キー若しくは他のキーを押下後に離すときの第2時間情報を用いた時間情報であると良い。
更に、前記個人認証はニューラルネットワーク手法を用いると良い。
前記ニューラルネットワーク手法は、学習ベクトル量子化法であると良い。
前記学習ベクトル量子化法は、
前記個人情報からなる教師データの特徴を示す特徴ベクトルを学習して求め、
前記学習は、
前記特徴ベクトルm、mが教師データxに対してもっとも近い距離にあるとき、tは前記学習の回数、mは教師データxと異なるクラスに属する場合、mは教師データxと同じクラスに属する場合において、
(t+1)=m(t)−σ(t)[x(t)−m(t)]
(t+1)=m(t)+σ(t)[x(t)−m(t)]...(式1)
(t+1)=m(t) for k≠i,j
0<σ(t)<1
式で前記特徴ベクトルを更新して行われ、
前記入力時間を含む前記入力データから計算される前記操作特徴と前記特徴ベクトルとの距離を求め前記ユーザを識別すると良い。
前記操作特徴は、
前記キーボードのあるキーが押下されてからそのキーを離すまでの間隔である第1タイム、
前記キーボードのあるキーが押下されてから次のキーが押下されるまでの間隔である第2タイム、
前記キーボードのあるキーを離してから次のキーが押下されるまでの間隔である第3タイム、及び
前記キーボードのあるキーを離してから次のキーを離すまでの間隔である第4タイムの内少なくとも1つのタイムであると良い。
ネットワークによる入力装置の入力特徴を用いた個人認証プログラムは、
ネットワーク網へ接続される第1のネットワークカード、及び入力装置を含む複数のデバイスが接続されていて、OSによって制御されて動作し、かつ前記デバイスを制御するためのデバイスドライバを備えている電子計算機と、
前記ネットワーク網へ接続されるための第2のネットワークカード、及び前記電子計算機を利用するユーザの個人情報からなるデータベースを記憶した記憶手段を有するサーバと
からなるネットワークシステムに前記ユーザの個人認証を実現させるための個人認証プログラムである。
前記個人認証プログラムは、電子計算機用プログラムとサーバ用プログラムから構成される。
前記電子計算機用プログラムは、
前記OSの全ての命令が実行できる動作モードであるカーネルモードで動作し、及び
前記電子計算機に、前記ユーザが前記入力装置によって入力するとき、前記入力装置を前記ユーザが操作するときの前記入力装置から前記電子計算機に入力される情報である操作データを取得し、前記操作データに入力時間を追加した入力データを用いて前記サーバへの送信データを作成し、前記第1のネットワークカードによって前記ネットワーク網へ前記送信データを送信するための取得機能
を実現させるためのプログラムであり、
前記取得機能は、
前記電子計算機で動作しているアプリケーションプログラムからの前記サーバへの接続要求を受信し、受信した前記接続要求を後記フロー制御機能に送信し、前記接続要求によって制御された前記デバイスドライバから受信したデータ若しくは後記フロー制御機能から受信したデータからなる命令実行結果を前記アプリケーションプログラムに通知するためのアプリケーションインターフェース機能と、
前記入力装置の前記デバイスドライバへアクセスして前記操作データを取得するためのインターフェース機能と、
前記操作データに前記アクセスした時間に関する情報を追加して前記入力データ作成し、前記第1のネットワークカードで送信可能な前記送信データを作成するためのデータ処理機能と、
前記第1のネットワークカードへ前記送信データの送信、及び前記第1のネットワークカードから受信データの受信を行うためのネットワーク送受信機能と、
前記サーバから前記電子計算機に送信されたデータであるサーバ要求を前記受信データとして前記ネットワーク送受信機能を介して受信して、前記受信データが前記アプリケーションプログラムへのアプリケーションデータか、又は前記個人認証のための個人認証要求か、又は正当なユーザではないとき出される不正アクセスを防止するための不正アクセス防止命令かを解析し、(1)前記受信データが前記アプリケーションデータの場合は前記アプリケーションインターフェース機能へ送信し、(2)前記受信データが前記個人認証要求命令の場合は前記入力装置の前記デバイスドライバにデータを要求するようインターフェース機能に指示し、又は(3)前記受信データが前記不正アクセス防止命令の場合は(3−1)前記受信データの命令に含まれる前記入力装置からの入力を一時停止、若しくは停止するようインターフェース機能に指示して前記入力装置の前記デバイスドライバからの入力を一時停止若しくは停止させ、又は(3−2)前記アプリケーションプログラムへ前記受信データ通知するための前記フロー制御機能と
からなることを特徴とする。
前記サーバ用プログラムは、
前記サーバに、前記第2のネットワークカードによって前記送信データを受信し、前記入力データを分析して前記ユーザの前記入力装置を操作する操作特徴を求めるための分析機能、及び
前記操作特徴を前記個人情報と比較して前記ユーザの個人認証を行うための認証機能を実現させるためのプログラムである
ことを特徴とする。
更に、前記データ処理機能は、
前記送信データを暗号化するための暗号化機能、及び
暗号化された前記受信データを復号化するための復号化機能
を有すると良い。
前記フロー制御機能は、
前記受信データに前記ユーザが個人認証されなかったことを示す不認証データがある場合、前記取得機能を停止、一時停止、又は不認証の情報を前記電子計算機の管理者に通知すると良い。
前記入力装置はキーボードであると良い。
前記操作データは、前記キーボードのキーを押下し、前記押下してから前記キーを離す操作する時間の情報であり、
前記操作特徴は、
前記キーボードのあるキーが押下されてからそのキーを離すまでの時間である第1タイム、
前記キーボードのあるキーが押下されてから次のキーが押下されるまでの時間である第2タイム、
前記キーボードのあるキーを離してから次のキーが押下されるまでの時間である第3タイム、及び
前記キーボードのあるキーを離してから次のキーを離すまでの時間である第4タイムから選択される何れかの1以上のタイムであると良い。
前記分析機能は、
前記キーボードのあるキーが押下されてからそのキーを離すまでの間隔である第1タイム、
前記キーボードのあるキーが押下されてから次のキーが押下されるまでの間隔である第2タイム、
前記キーボードのあるキーを離してから次のキーが押下されるまでの間隔である第3タイム、及び
前記キーボードのあるキーを離してから次のキーを離すまでの間隔である第4タイムの内少なくとも1つのタイムを計算すると良い。
前記操作データは前記キーボードの機能キーを操作する操作データであると良い。
前記個人認証機能はニューラルネットワーク手法である学習ベクトル量子化法を用い、学習ステップと識別ステップとからなると良い。
前記学習ステップは、
前記個人情報を読み込む第1ステップと、
前記個人情報の特徴を表す特徴ベクトルを作成する第2ステップと、
前記特徴ベクトルを学習して最適な特徴ベクトルである最適特徴ベクトルを求める第3ステップと、
前記最適特徴ベクトルを出力する第4ステップと
からなると良い。
前記第3ステップは、
前記個人情報xと前記特徴ベクトルとの距離を計算、最短距離の前記特徴ベクトルmを計算する第5ステップと、
前記特徴ベクトルmのクラスを求める第6ステップと、
前記第6ステップで求めたクラスが前記個人情報xのクラスと比較する第7ステップと
前記第7ステップの結果が同じクラスであるとき、前記特徴ベクトルを式
=m+σ[x−m]、0<σ<1;
で更新する第8ステップと、
前記第7ステップの結果が違うクラスであるとき、前記特徴ベクトルを式
=m−σ[x−m]、0<σ<1;
で更新する第9ステップと
前記ステップ5から9を所定回数繰り返して、結果を前記最適特徴ベクトルとして出力する第10ステップと
からなると良い。
前記識別ステップは、
前記学習ステップで作成された最適特徴ベクトルを読み込む第11ステップと、
前記入力データを読み込みする第12ステップと、
前記入力データと前記特徴ベクトルとの距離を計算する第13ステップと、
前記第13ステップの計算結果から最短距離の特徴ベクトルを特定する第14ステップと、
前記第14ステップの前記最短距離の特徴ベクトルのクラスを前記ユーザの識別として出力する第15ステップと
からなると良い。
前記ネットワーク網はインターネットであると良い。前記ネットワーク網は無線ネットワークであると良い。前記ネットワークによる入力装置の入力特徴を用いた個人認証プログラムは、電子計算機用プログラムを記録したネットワークによる入力装置の入力特徴を用いた個人認証プログラムの記録媒体であっても良い。
前記データベースは、前記キーを識別するコード、前記キーを押下する又は離反するタイム、前記押下又は前記離反を示す識別を有すると良い。
前記識別結果は、前記ユーザごとに結果ファイルを作成して、又は前記結果ファイルに追加されて記憶媒体に保存されると良い。
前記結果ファイルからは前記入力装置から入力している前記ユーザが誰であるかを判断すると良い。
また、前記暗号化又は前記復号化の処理は、
暗号化・復号化専用カードを用いて行うと良い。
本発明のネットワークによる電子計算機の入力装置の入力特徴を用いた個人認証方法、そのプログラム及びプログラムの記録媒体は次の利点を有する。
本発明は、電子計算機利用者の個人認証のためのキーボート等の操作時間のデータの収集を、ネットワークを経由して、電子計算機のOSの動作モードであるカーネルモードで行うので、正確なタイミングを抽出でき個人認証の信頼性が高くなる。
本発明は、ネットワークを経由して、アプリケーションプログラムとデバイスドライバとの共通のインターフェースを用い、このインターフェースドライバのプログラムを利用した個人認証を行うので、データの秘密性が保護され、かつデータの安全転送を図ることができる。
本発明は、ネットワークを経由して電子計算機の利用者を個人認証およびオンライン監視できるので、不正アクセスを防止することができる。
次に、本発明の実施の形態を説明する。
(共通インターフェースドライバ)
図1は、本発明の電子計算機のインターフェースドライバプログラムの実施の形態を示す概念図であり、共通インターフェースドライバを用いたOSの概念図である。図2は、データを転送するときのデータ及び命令の流れを示すフローチャートである。
電子計算機1はCPU、メモリ、周辺機器などのハードウェア2から構成され、これらのハードウェア2を記憶装置に記憶されているOS3によって制御し動作させる。エンドユーザが使うアプリケーションプログラム4のOS3が提供する環境で動作する。OS3には、周辺機器を制御するデバイスドライバ5が含まれており、アプリケーションプログラム4からの命令に従って、デバイス6を制御し、デバイス6(A)からデータを受信したり、デバイス6(B)へデータを送信したりする。
この実施の形態では、各デバイスドライバ5の共通の窓口となり、アプリケーションプログラム4とのやり取りをまとめて共通インターフェースドライバ7が行っている。また、アプリケーションプログラム4からの命令によって、デバイス6間のデータの送受信も制御することができる。共通インターフェースドライバ7は、デバイスドライバ5(A)とデバイスドライバ5(B)間のインターフェースで、カーネルモード8で動作するものである。
更に詳細に説明すれば、デバイス6には、デバイスAとデバイスBがあり、それぞれをデバイスドライバAとデバイスドライバBにより制御される。デバイスAからデバイスBへデータを転送する場合のデータの流れを図2のフローチャートに示す。ユーザモード9で動作するアプリケーションプログラム4が、デバイスAからデバイスBへとデータを転送するとき(S1)、データ転送の要求(命令)を出す(S2)。このときは、システムの動作モードはユーザモード9である。
システムの動作モードはカーネルモード8に切り替わり、共通インターフェースドライバ7はアプリケーションプログラム4からのデータ転送の要求を受け取り(S3)、共通インターフェースドライバ7はこのデータ転送の要求を分析して(S4)、各処理部に指示を出す。デバイスドライバAに対してデータ送信の要求を出す(S5)。デバイスドライバBに対してデータ受信の要求を出す(S6)。
デバイスドライバAが共通インターフェースドライバ7からのデータ送信の要求を受け取り(S7)、デバイスAに送信する(S8)。デバイスAがデータ送信の要求を受け取り(S9)、データをデバイスドライバAへ送信する(S10)。デバイスドライバAがデータを受信し(S11)、内部処理して(S12)、共通インターフェースドライバ7に渡す(S13)。共通インターフェースドライバ7は、データを受信し、圧縮・暗号化等の処理をして(S14)から、結果をデバイスドライバBへ送信する(S15)。
デバイスドライバBは共通インターフェースドライバ7からデータを受信し(S16)、内部処理し(S17)、この内部処理した処理結果をデバイスBへ送信する(S18)。デバイスBはデータを受け取り(S19)、データ受取済の情報をデバイスドライバBへ送る(S20)。デバイスドライバBはそのデータ受取済の情報を受け取り(S21)、データ転送完了の情報を共通インターフェースドライバ7に送る(S22)。
共通インターフェースドライバ7はデータ転送完了の情報を受け取り(S23)、アプリケーションプログラム4へデータ転送完了の情報を通知して次の命令を待機する(S24)。ここで、システムの動作モードはカーネルモード8からユーザモード9に替わり、アプリケーションプログラム4がデータ転送完了の情報を受け取り(S25)、次の処理にかかる。
これで、データ伝送の一連の作業が終了する(S26)。このように、データは「デバイスA」→「デバイスドライバA」→「共通インターフェースドライバ7」→「デバイスドライバB」→「デバイスB」と転送され、この間、システムの動作モードはカーネルモード8で動作し、モードの切り替えを行う必要がなくなる。
また、データはユーザモード9のアプリケーションプログラム4を経由せずに直接カーネルモード8でデバイス6間に転送され、大量のデータを高速に転送できるようになる。また、アプリケーションプログラム4から直接に取り扱いできないカーネルモード8で転送されているためデータの保全性も高まる。
デバイスBは、キーボード、マウスなどの入力装置をはじめとする様々デバイスである場合は、各デバイスはそれぞれデバイスドライバを備えている。これらのデバイスドライバは並列に共通インターフェースドライバ7に接続され、共通インターフェースドライバ7を通って互いにまたはアプリケーションプログラム4とデータのやり取りを行う。
共通インターフェースドライバ7は、データ圧縮、暗号化、復号化等をはじめとする処理行う機能を備えことによって、アプリケーションプログラム4から要求されたときにこれらの機能を使ってデバイス間またはアプリケーションプログラム4とデバイスA,Bとの間のデータ送受信を高速に行う。
その他に、共通インターフェースドライバ7は受信したデータの時間を表すタイムスタンプ機能を備えることによって、デバイスA,Bから受け取ったデータ等にタイムスタンプを押すことができる。このタイムスタンプ機能を使えば、デバイスA,Bから入力されるデータの入力時間に関する情報を正確把握することができる。
特に、ユーザの入力特徴を用いて個人認証を行うなどの入力時間がとても重要になる場合は、より正確な時間を把握できるようになる。
ユーザがキーボードからIDとパスワードを入力し、この入力する際の入力特徴・癖を利用して個人認証を行う場合を考える。このとき、共通インターフェースドライバ7を用いて、キーボードから入力される情報(操作データ)を取得する。この情報には、キーボードのどのキーが押されたかを特定する情報がある。
また、共通インターフェースドライバ7でこの情報にタイムスタンプを追加する。タイムスタンプ処理されたキーボード情報を個人認証するときに分析することで、ユーザの入力特徴を計算でき、ユーザキーボードを操作する入力特徴を考慮した個人認証を行うことができる。
この計算のときは下記の第1〜4タイムの内から1つ以上のタイムを利用することができる。このタイムには、キーボードのあるキーが押下されてからそのキーを離すまでの間隔である第1タイム、キーボードのあるキーが押下されてから次のキーが押下されるまでの間隔である第2タイム、キーボードのあるキーを離してから次のキーが押下されるまでの間隔である第3タイム、キーボードのあるキーを離してから次のキーを離すまでの間隔である第4タイムがある。
また、これらの第1〜4タイムを利用して統計処理されたものをユーザの入力特徴として利用できる。
(個人認証方法の実施の形態1)
次に、カーネルモードで動作するこの共通インターフェースドライバプログラムを用いた個人認証方法の実施の形態1について説明する。キーボードからパスワードを入力してユーザの個人認証を行う手順を説明する。図3は共通インターフェースドライバ7の実施の形態を示す図であり、特に、電子計算機11の共通インターフェースドライバ7の内部構成、コマンド及びデータの流れを示す。
ユーザはキーボード15のキーを操作してパスワード等を入力し、アプリケーションプログラム4で個人認証を行う。このとき、共通インターフェースドライバ7を経由して、アプリケーションプログラム4とキーボード15間にデータのやりとりが行われる。共通インターフェースドライバ7は、データ取込部18、TDIクライアント部(TDI Client Driver部)20、データ処理部(暗号化部、復号化部を備えている)19、APインターフェース部17、フロー制御部25などから構成され、各部分の概略機能は次の通りである。
データ取込部18は、キーボードドライバであるHID24からキーボード15の操作データなどを受信し、共通インターフェースドライバ7に入力するためのものである。APインターフェース部17は、アプリケーションプログラム4と共通インターフェースドライバ7間のインターフェースを提供し、アプリケーションプログラム4からのパラメータ設定や動作開始などのコマンドを受け取り、分析して、各処理部に対して動作パラメータを渡し、データの送受信状況を監視する。
データ処理部19は、データ取込部18から受け取ったデータの暗号化・圧縮・タイムスタンプなどの処理するためのものである。データ取込部18から入力された操作データを受け取り、その入力時間を示すタイムスタンプを追加して、APインターフェース部17を介してアプリケーションプログラム4、又はTDIクライアントドライバ部20を介してネットワークに送信したりする。
TDIクライアントドライバ部20は、LANボードドライバ21と共通インターフェースドライバ7とのインターフェースを提供する。LANボードドライバ21は、プロトコルドライバ22と、NDIS(Network Driver Interface Specification)ドライバ23から構成され、LANボード16を制御し、ネットワークへデータを伝送するときの接続確立とプロトコルの制御を行う。
プロトコルドライバ22は、ネットワークにデータを転送する際の通信プロトコルを制御するものである。NDISドライバ23は、プロトコルドライバ22とLANボード16とのインターフェースを提供するものである。TDIクライアントドライバ部20は、パケット化されたデータをデータ処理部19から受け取ってプロトコルドライバ22に出力する。
フロー制御部25は、特定の命令によってデータ取込部18を制御し、外部からアクセス不可にする制御を行うためのものである。上記特定の命令は、アプリケーションプログラム4、又はネットワークからのものであっても良い。特に、不正アクセス防止のために利用されるものである。
次に、電子計算機11の個人認証専用のアプリケーションプログラム4がキーボード15から入力されるパスワードを用いて個人認証を行う手順を図4のフローチャートを参照しながら説明する。
このフローチャートはユーザモード9で動作しているアプリケーションプログラム4の命令により共通インターフェースドライバ7が、キーボード15からパスワードのデータを受け取り、アプリケーションプログラム4に送信する手順を示す。まず、アプリケーションプログラム4は、キーボード15からパスワードデータの送受信の命令を出力し、データ受信が始まる(S100)。この出力命令は、Windowsの標準仕様で提供されているインターフェースを介して共通インターフェースドライバ7に出力される。
共通インターフェースドライバ7のAPインターフェース部17は、アプリケーションプログラム4からの命令を受信する(S101)。命令には、データ取込みパラメータ及び動作開始コマンドなどが含まれている。そして、APインターフェース部17はデータ取込みパラメータをフロー制御部25に渡す(S102)。フロー制御部25は、データ取込パラメータを受け取り(S103)、そのデータ取込パラメータを解析して(S104)、データ取込部18に渡す(S105)。
データ取込部18は、データ取込みパラメータの設定を行い(S106)、HID24への接続処理を行い(S107)、キーボード15からの操作データを受信する準備が完了する。キーボード15からの操作データはHID24を通してデータ取込部18の受信バッファに取り込まれる(S108)。そして、データ取込部18は受信バッファに入っている操作データをデータ処理部19に渡す(S109)。
データ取込部18は、APインターフェース部17から要求があったときに(S110)、アプリケーションプログラム4へ送るために、操作データを受け取った状況、データ処理の進行状況などの必要な情報を作成する(S111)。作成された情報はフロー制御部25を介してAPインターフェース部17に渡される(S112)。そして、続けて操作データを受信する必要がある場合は、S108〜110(又はS112)を繰り返して、操作データの受信を行う。
データ処理部19では、受け取った操作データのデータ処理を行い(S114)。このデータ処理では、アプリケーションプログラム4に必要な付加情報であるキーボードからの入力時間等を示すタイムスタンプ処理、又は暗号化をはじめとする必要な処理が行われる。
そして、これらの処理されたデータを元にしてアプリケーションプログラム4へ送信するための送信データが作成される(S115)。このときは、処理データが長い場合は区切ってパケット化したりする(S116)。フロー制御部25は、データ処理部19からの送信データを受信し(S117)、その受信したデータを解析して(S118)、APインターフェース部17に渡す(S119)。
最後にAPインターフェース部17は、アプリケーションプログラム4へ操作データを送信し(S120)、アプリケーションプログラム4からの要求を監視し(S121)、指示がない場合は、操作データの取り込みが継続して行われる(S121→S108)。ストップ指示があるときは(S121)、その命令を各処理部17〜20,25に指示して、処理を終了させる(S122)。
図6は、個人認証を行うときの動作手順を示すフローチャートである。ユーザの個人認証のときは、ユーザID、パスワードなどを利用し、これらをキーボードから入力するときの入力特徴を利用している。この入力特徴は、キーボードのキーを押下、又は離反するときの時間情報を利用して計算されて求めたものである。共通インターフェースドライバ7ではキーを特定する情報に、タイムスタンプ(入力時間)を追加する。そして、この時間情報がサーバに送られて、サーバは個人認証のとき、下記の第1〜4タイムの内から1つ以上のタイムを計算して利用する(S155、S156)。
このタイムには、キーボードのあるキーが押下されてからそのキーを離すまでの間隔である第1タイム、キーボードのあるキーが押下されてから次のキーが押下されるまでの間隔である第2タイム、キーボードのあるキーを離してから次のキーが押下されるまでの間隔である第3タイム、キーボードのあるキーを離してから次のキーを離すまでの間隔である第4タイムがある。また、これらの第1〜4タイムを利用して統計処理されたものをユーザの入力特徴として利用できる。
図10は、横軸にユーザがキーボードから文字を入力するときのキーを押下する時間をとり、縦軸にはキーを押下しつづける時間をとってグラフ化したものである。前述の図9と同様である。図10のグラフ(a)のは、ユーザが入力するときの真のグラフとする。個人が入力するときの時間誤差を取り入れると、ユーザがあるキーを入力したのは四角60で大体グラフ化できる。
共通インターフェースドライバ7でキーを押下するときの時間を取得するときは、図10のグラフ(b)に示すように、そのユーザが入力する時の時間の誤差範囲が楕円64で示されるようになる。また、他のアプリケーションなど電子計算機の中央演算処理装置などの負荷がかかる処理をしているときは、線65と線66が僅かに傾いて時間のずれを示している。図10のグラフ(b)の楕円64は、図9のグラフ(b)の楕円61と比べ大幅に小さくなっていることがわかる。また、線66も同様に線63と比べ時間ずれ少なくなっている。
図10のグラフ(b)には、あるキーを押下した時間を点Aで、そのキーを離反した時間を点Bで、次のキーを押下、離反した時間をC、Dでそれぞれ表している。前述の第1タイムはT1=B−Aとなり、第2タイムはT2=C−Aとなる。そして、同様に、第3タイム、第4タイムは、T3=C−B、T4=D−Bとそれぞれなる。
(実施の形態2)
次に、ネットワークを利用した個人認証の実施の形態を示す。図5には、本実施の形態2のシステムの概要を示している。ユーザが利用する電子計算機11がネットワーク26を介して個人認証サーバ28に接続されている。ユーザが電子計算機11にアクセスするためのキーボード15、マウス27などの入力装置が電子計算機11に接続されている。また、電子計算機11は、ネットワーク26に接続されるためのネットワークカード(図示せず)を備えている。
上記のネットワーク26は、LAN又はインターネット等の通信用のどんなネットワークであっても良い。個人認証サーバ28上で個人認証のアプリケーションプログラムが動作し、電子計算機11の共通インターフェースドライバ7を制御する。このためには、TCP/IPのようなプロトコルを利用することが可能である。個人認証サーバ28はIPアドレスを利用してユーザが利用している電子計算機11を特定し、その電子計算機11の共通インターフェースドライバ7を制御することができる。
共通インターフェースドライバ7は、個人認証アプリケーションプログラムの指示通りに、不正アクセスしようとするユーザをアクセス不可能にする。そのためには、入力装置からアクセスを停止させたり、入力装置から特定又は全てのアプリケーションへのアクセスを制限したり、または電子計算機のシステム全体をロック状態にしたりする機能を備えている。
個人認証サーバ28は記憶媒体を有し、予め用意されたデータベース29が格納されている。電子計算機11を操作しているユーザが正規のユーザであることを特定するためには、個人認証アプリケーションプログラムがデータベース29の該ユーザに関する情報と電子計算機11から送られてくる情報と比較して特定する。
このユーザ認証のためには、少なくてユーザの氏名または予め与えられたIDが必要であり、かつ、個人入力の特徴を示す情報を有するパスワード等が必要である。個人入力の特徴を示す情報には、ユーザがキーボード15のあるキーを押下しつづける時間、あるキーを押下してから次のキーを押下するまでの時間等が必要である。
次に、これらの動作を図6に図示したフローチャートを参照しながら説明する。電子計算機11が作動して(S150)、電子計算機11の記憶媒体に格納されているOSが起動される(S151)。OSが標準仕様で整えているネットワーク機能が予め設定された設定により、ネットワーク26を経由して個人認証サーバ28に接続される(S152)。
個人認証サーバ28は新しく接続された電子計算機11を特定し、個人認証アプリケーションプログラムはそのユーザの認証を行うためにパスワード等を要求する(S153)。この要求を電子計算機11が受け取り、ユーザに対してパスワード等の要求を求める。ユーザがパスワード等を入力すると、それを個人認証サーバ28に送信する(S154)。個人認証サーバ28はこのパスワード等を受け取り、個人認証アプリケーションプログラムがユーザの認証を行う(S155)。
個人認証アプリケーションプログラムは電子計算機11からの情報を個人認証サーバ28のデータベース29と比較して、ユーザのパスワード等が正しいかの判定を行い(S156)、この判定は正式なユーザであるときは、ユーザが電子計算機11にアクセスできる許可を送信する(S157)。
そして、続けてユーザが電子計算機11にアクセスする要素をオンライン監視する(S158→S159)。もし、パスワードの照合だけなら認証作業が終了する(S158→END)。
オンライン監視するときは、所定の一定期間待機して(S159、S160)、共通インターフェースドライバ7で文字の入力情報(入力データ)を作成して(S161)、個人認証サーバ28へこの文字入力に関する情報である入力データを送信する(S162)。この電子計算機11から送られてきた文字入力に関する情報を受け取ったら個人認証サーバ28が個人認証を行う(S163)。よって、正当なユーザが電子計算機11を利用しているかを判断する(S164)。
正当のユーザが利用していると判断されたときは続けて次の認証まで所定時間待機する(S165→S159)。不正アクセスと判断された場合は(S166)、管理者(責任者)に通知する(S168)。また、S156のステップでパスワード等の照合のとき、パスワード等に誤りがある場合は不許可となり(S167)、管理者(責任者)に通知する(S168)。
そして、初期設定等の判断により、電子計算機11をアクセスするレベルを判定して、使用不可能にする(S169)。このレベルとは、パスワードの誤りによる電子計算機11へのアクセスを一切不可能にするシステムロック状態、又は、入力装置からのアクセスできなくする入力不可能状態、そして、動作しているアプリケーションが続けて動作しながら入力ができなくなる状態等がある。
そして、最後は電子計算機11へのアクセス者に対して、電子計算機へのアクセスができなくなったことを通知して一連の認証作業が終了する。共通インターフェースドライバ7でデバイスドライバを制御することで、電子計算機11へアクセスしている状況を一切制御することができるため、S169での電子計算機11をシステムロック・入力不可能等の状態にすることができる。後述するフロー制御部25はこれらの制御機能を整えており、上記のような状態を作り、制御する。
また、これらの状態になった場合は、一定時間がたったら再度パスワード認証状態にする、又は管理者(責任者)の許可で元の状態に戻すなどの柔軟制御が可能である。また、電子計算機11の電源を切り再度作動させなければ復帰できない状態にもすることもできる。
上記のような制御は、一例を示すものであり、必ずしも本実施の形態2のような制御と同様にする必要はない。上記のような機能を備えているような形態でも良い。また、マウス27やキーボード15などの入力装置だけに限る必要もなく、ネットワークカード、その他の周辺機器も同様に扱うことができる。
ユーザの個人認証のときは、ユーザID、パスワードなどを利用し、これらをキーボードから入力するときの入力特徴を利用する方法もある。この入力特徴は、キーボードのキーを押下、又は離反するときの時間情報を利用して計算されて求めたものである。
共通インターフェースドライバ7ではキーを特定する情報に、タイムスタンプ(入力時間)を追加し入力データを作成する。そして、この入力データが個人認証サーバ28に送られて、個人認証サーバ28は個人認証のとき、下記の第1〜4タイムの内から1つ以上のタイムを計算して利用する(S155、S156)。
このタイムには、キーボード15のあるキーが押下されてからそのキーを離すまでの間隔である第1タイム、キーボード15のあるキーが押下されてから次のキーが押下されるまでの間隔である第2タイム、キーボード15のあるキーを離してから次のキーが押下されるまでの間隔である第3タイム、キーボード15のあるキーを離してから次のキーを離すまでの間隔である第4タイムがある。これらの第1〜4タイムは、前述のT1〜T4の計算と同様に求める。
また、これらの第1〜4タイムを利用して統計処理されたものをユーザの入力特徴として利用できる。また、同様にオンライン監視のときも、上記の第1〜4タイムから1つ以上のタイム又は統計処理されたものを利用して判定を行う(S163,S164のとき)。
次に、本実施の形態2を示す共通インターフェースドライバ7の動作を図7、図8に図示したフローチャートを参照しながら説明する。共通インターフェースドライバ7の構成は上記の図3に示した実施の形態1と同じであり、各部分の機能も同様である。ここで、上記の実施の形態で記述した機能および、それとは追加となる機能を利用して説明をする。
電子計算機11が作動し、OSが起動すると、OSの初期設定、または専用のアプリケーションプログラムの要求により電子計算機11をネットワーク26上の個人認証サーバ28に接続し、ネットワーク26を介しての個人認証を要求する。この要求をOSの提供するインターフェースを通して、共通インターフェースドライバ7のAPインターフェース部17が受信する(S201)。
この個人認証サーバ28への接続要求にはネットワーク26への接続に必要な諸パラメータや動作開始コマンドなどが含まれる。APインターフェース部17は、フロー制御部25を通して、この諸ネットワークパラメータをTDIクライアントドライバ部20に渡す(S202)。TDIクライアントドライバ部20はNDISドライバ23への接続処理を行い(S203)、プロトコルドライバ22のネットワークパラメータの設定を行う(S204)。
よって、個人認証サーバ28への接続要求をLANボードドライバ21で送信し、ネットワーク26に接続されている個人認証サーバ28に接続し、個人認証サーバ28の要求を待機する(S205)。そして、個人認証サーバ28からの要求を受信する(S206)。TDIクライアントドライバ部20が個人認証サーバ28から送られてきたサーバ要求を受信しデータ処理部19に渡す(S206,S207)。データ処理部19はサーバ要求を受信し(S208)、サーバ要求を復号化して(S209)、フロー制御部25に送信する(S210)。
フロー制御部25はこの要求を受け取って解析する(S211)。サーバ要求が何を目的とするものであるか、アプリケーションプログラム4へのデータか、または個人認証のための要求かを解析する。また、外部からの不正アクセスがあり、その防止のために命令かを解析する。個人認証のためのキーボード15からのアクセス情報である場合は、キーボード15の入力データをサーバに返すように各部に指示する(S212,S213)。
データ取込部18は、フロー制御部25の指示を受信し(S222)、HID24への接続を行う(S223)。そして、キーボード15の操作データを受信バッファに取り込み(S224)、この受信バッファの操作データをデータ処理部19に転送する(S225)。データ処理部19は、受信バッファの操作データを受け取り、入力時間の情報を追加したりするタイムスタンプ処理等の処理を行い(S226)、暗号化処理を行う(S227)。
そして、ネットワーク26に送信しやすいパケットデータを作成して送信データにする(S228)。送信データは、TDIクライアントドライバ部20の送信バッファへ送信される(S229)。そして、TDIクライアントドライバ部20は送信バッファからプロトコルドライバ22に送信データを送信して、個人認証サーバ28への送信が完了したことをフロー制御部26に通知する(S230,S231)。
フロー制御部25は、パケット送信完了を受信し(S232)、アプリケーションプログラム4などへの情報提供が必要な場合はそれを作成してAPインターフェース部17に渡す(S233〜S235)。そして、キーボード15から入力データを送信する必要が無い場合は一連の動作が終わり、個人認証サーバ28からの次の指示がくるまで待機する(S236→S205)。
こうして、個人認証サーバ28から出された指示は、TDIクライアントドライバ部20を通して受信され(S205〜S207)、データ処理部19でその復号化処理が行われて(S208〜S210)、フロー制御部25で解析される(S211〜S213)。このとき、個人認証サーバ28からキーボード15の入力データは不正アクセス、つまり、正当なユーザではない、との判断がなされた場合はフロー制御部25がそれに対応する指示を各部に送信する(S214)。
必要な場合は、アプリケーションプログラム4にAPインターフェース部17を通して知らせる(S215,S216,S220,S221)。データ取込部18は、フロー制御部25からの指示がある場合は(S217)、HID24からの入力を一時停止させてフロー制御部25からの次の指示があるまでに待機状態になる(S218,S219)。
そして、このように一連の不正アクセスに対応した後システムから再要求があるか、あるいは個人認証サーバ28からその訂正命令が来るまで待機状態に入る。この場合は、ユーザに成りすました行為、他人がパスワードを持ってアクセスしようとした場合などに即座に対応し得る。
(実施の形態3)
次にオンライン監視の実施の形態3について述べる。本実施の形態のシステム構成は実施の形態2のシステムの図5と同じであり、以下、実施の形態2と異なる部分および異なる動作についてのみ説明する。
本実施の形態3は、電子計算機にアクセスしているユーザが正当なユーザであるかを監視するためのシステムである。ユーザは電子計算機にアクセスするときは、ログインする必要はなくアクセスし作業を続ける。しかし、電子計算機11をネットワーク26経由で個人認証サーバ28から監視を行う。
個人認証サーバ28は監視用の監視プログラムとデータベース29を有し、電子計算機11にアクセスしているユーザが正当のユーザかを監視する。この監視の作業は、前記の前記の実施の形態2と同様図6のフローチャートのS158〜S170のステップである。前記の実施の形態2では、S170で終了している。
しかし、S170で終了するのではなく、一定時間に電子計算機11からのアクセスを制限したり、又は、電子計算機11からアクセスできるアプリケーションプログラム4を制限したりすることができる。そして一定の時間が経ったら再び、S158から監視活動を再開する。
(実施の形態4)
上記の実施の形態で示すように共通インターフェースドライバ7を用いてパスワード認証を行うときは、キーボード15から入力されるキーの操作データを直接扱うことが可能になるためには、「バックスペース」、「左シフト」、「右シフト」などの機能キーを利用したパスワード認証が可能である。
例えば、「PIANO」、バックスペース(以下、BSという。)、バックスペース(以下、BSという)、「NO」というふうに入力すると、結果として「PIANO」というふうに見える。従来は、「PIANO」「BS、BS」「NO」と入力したものと、直接「PIANO」と入力したものは同等に扱われていた。これは、BS等の機能キーをパスワード認証などのときに扱わないで、ただ入力ミスを訂正するときに扱われていたためである。
機能キーをパスワード認証に利用すると、「PIANO」「BS、BS」「NO」と入力した履歴が、直接「PIANO」と入力した履歴と違っているためにパスワードとして利用することが可能になる。これを個人の入力特徴と組み合わせて個人認証を行うと強力な個人認証になる。
(実施の形態5)
次に、暗号化/復号化専用カード31を用いた実施の形態5を図11で説明する。本実施の形態5では、電子計算機11の暗号化・復号化処理をそれ専用のカードである暗号化/復号化専用カード31で行う。電子計算機11の共通インターフェースドライバ7の構成部分および処理は、前述の実施の形態1〜4と同様であり、その処理内容は省略する。但し、暗号化/復号化専用カード31を利用するために、データ処理部19の構成、および暗号化・復号化の処理は異なる。
図11に図示したように、暗号化/復号化専用カード31は電子計算機の付属ハードウェアであり、カードドライバ30によって制御されてデータのやり取りを行う。カードドライバ30は、共通インターフェースドライバ7のデータ処理部19とデータ送受信を行っている。つまり、データ処理部19は、暗号化又は復号化しようとするデータだけをカードドライバ30へ送信し、処理されたデータを受信する構成になっている。この動作の手順を図12のフローチャートを参照しながら説明する。
データ処理部19は、データを暗号化又は復号化処理を行おうとするときは、カードドライバ30へ接続処理を行う(S300)。そして、暗号化又は復号化処理するデータをカードドライバ30へ送信し(S301)、処理されたデータを受信するために待機する(S302)。
カードドライバ30は、このデータを受信し(S303)、暗号化/復号化専用カード31へ接続処理を行い、データを渡し(S304)、処理されたデータを受信するために待機する(S305)。暗号化/復号化専用カード31は、このデータを暗号化又は復号化処理して処理データをカードドライバ30へ返す。
カードドライバ30は、暗号化/復号化専用カード31から返信されてきた処理データを受信してデータ処理部19へ送信する(S306、S307)。データ処理部19は、この処理されたデータを受信して次の処理にかかる。
本実施の形態5は、あくまで一つの実施の例であり、共通インターフェースドライバ7から暗号化/復号化専用カード31へのアクセスは、データ取込部18等を通して自由に実施できるものとする。また、動作手順を示すフローチャートは、ここで一つのデータだけを扱っているが、一連のデータまたオンライン監視に適したデータを連続的に暗号化又は復号化処理を行うのに適した手順に変更できるものとする。
(実施の形態6)
図17には、実施の形態6の概要を図示している。実施の形態6の個人認証システムは、少なくともクライアント201とサーバ202とから構成される。クライアント201とサーバ202はネットワーク203によって互いに接続され、データの送受信を行う。ネットワーク203はクライアント201とサーバ202がデータの送受信を行うことが可能なLAN又はインターネット等の、有線または無線のどのようなネットワークであっても良い。
クライアント201は、少なくともキーボード15とLANボード16を有する電子計算機である。クライアント201には共通インターフェースドライバ7がインストールされている。共通インターフェースドライバ7は実施の形態1から5の共通インターフェースドライバ7と同様の機能を有するためここでは詳記しない。共通インターフェースドライバ7はユーザがキーボード15から入力するデータを取得してサーバ202へ送信する機能を有する。詳しくは、ユーザが押下又は離反したキーの識別データ(キーコード)とその時間データを含む入力データを取得してサーバ202へ送信する。
サーバ202には、ユーザ認証プログラム204がインストールされている。サーバ202は、ユーザがキーボード15から入力するときの入力特徴を示すデータからなるユーザデータベース205を有する。ユーザ認証プログラム204は、クライアント201から送信されてくる入力データを受信し、その入力データをユーザデータベース205のデータと比較しながら解析を行ってユーザを特定する。
〔LVQの概要〕
ユーザ認証プログラム204は、入力データを解析するとき、ニューラルネットワーク手法を用いてデータ解析を行う。例えば、学習ベクトル量子化アルゴリズム(Learning Vector Quantization、以下は略してLVQという。)を用いている。LVQはT.Kohonenによって開発された手法であり、LVQ1からLVQ3までと複数のバージョンがある。
本実施の形態6ではLVQ1を用いた。その他のLVQアルゴリズムやニューラルネットワーク手法のアルゴリズムを用いても良い。LVQについての詳細な説明は、T.Kohonen著「“Self-Organizing Maps”(Springer Series in Information Sciences,30,2000;Springer Verlag)」などに記載されている公知技術であるのでここでは詳記しない。
初期状態に与えられる標本データ(以下、教師データという。)を複数の特徴ベクトルで特徴付けられるクラスに分けて量子化し、入力ベクトルと各特徴ベクトルとの距離を計算する。この距離がもっとも近づいた特徴ベクトルが属するクラスを入力ベクトルが属するクラスと判定する方法である。
LVQ1は次式によって表現され、学習は次のように行われる。初期状態では、クラスを特徴付ける複数の特徴ベクトルが与えられている。入力された教師データと全ての特徴ベクトルとの距離を計算し、距離が一番近い特徴ベクトルの属するクラスを教師データの属するクラスと推定することができる。
指定個数の特徴ベクトルをクラスごとに生成して、乱数を用いてこれを初期化し学習を開始する。このときの乱数の値は各クラスのベクトルデータの最大・最小値の間である。下記の式1にしたがって特徴ベクトルを更新して学習を行う。この学習を所定回数行うことによって、教師データに対して最適な特徴ベクトルを得る。
、mは教師データxに対してもっとも近い距離にある特徴ベクトルである。mは教師データxと異なるクラスに属する場合、mは教師データxと同じクラスに属する場合である。σ(t)は係数で、0から1の値を取る。
(t+1)=m(t)−σ(t)[x(t)−m(t)]
(t+1)=m(t)+σ(t)[x(t)−m(t)]…(式1)
(t+1)=m(t) for k≠i,j
〔個人特徴〕
本実施の形態6で、ユーザの入力特徴はユーザが特定のキーを押下する時間、そのキーを離反する時間を用いて次のように表す。キーを押下するときの押下時間、押下したキーを離反するときの離反時間を用いる。ユーザがタイピングするキーはその前後にタイピングしたキーとの相対関係によってユーザの入力特徴になる。
図18には、その例を図している。ユーザの入力特徴を示すデータとして次の種類の時間を用いている。図中の横軸は時間軸である。下向きの大きな矢印でキーを押下した動作の時間を示している。同様に、上向きの大きな矢印ではキーを離反した動作の時間を示している。この二つの矢印が一組になって一つのキーを押下し離反してタイピングする動作を表す。共通インターフェースドライバ7は、ユーザがキーボード15から入力するとき各タイピングしたキーを識別するキーコード、キーの押下時間、離反時間を取得し、入力データとしてサーバ202へ送信する。
図18のグラフ(a)には、キー1からキー3までをタイピングする例を示している。t1、t2、t3はキー1からキー2の時間的な相互関係を示している。t1はキー1の押下時間からキー2の押下時間までの時間、t2はキー1の離反時間からキー2の押下時間までの時間、t3はキー1の離反時間からキー2の離反時間までの時間をそれぞれ表している。
t1’、t2’、t3’はt1、t2、t3の場合と同様にキー2とキー3との時間的な相互関係をそれぞれ表している。t2とt2’はキー1の離反時間、キー2の押下時間、又はキー2の離反時間、キー3の押下時間の相対関係によってマイナスの値をとることが可能である。
図18のグラフ(b)には、キー1からキー3までをタイピングする他の例を示している。t4、t5、t4‘、t5’、t4”はキー1からキー3の時間的な相互関係を示している。t4はキー1の押下時間からキー1の離反時間までの時間、t5はキー1の離反時間からキー2の押下時間までの時間である。t4’はキー2の押下時間からキー2の離反時間までの時間、t5’はキー2の離反時間からキー3の押下時間までの時間で、t4”はキー3の押下時間からキー3の離反時間までの時間である。
t5とt5’はキー1の離反時間、キー2の押下時間、又はキー2の離反時間、キー3の押下時間の相対関係によってマイナスの値をとることが可能である。
〔クライアントでの処理〕
本実施の形態6では、クライアント201ではユーザがキーボード15から入力するときの入力データをとってサーバ202へ送信する。クライアント201では、カーネルモードで動作する共通インターフェースドライバ7でキーに関するデータを取得している。共通インターフェースドライバ7の動作については前記の実施の形態1から5においてで詳細に説明しているため説明を省略する。
図19には、共通インターフェースドライバ7で取得しサーバ202へ送信する入力データの例を図している。入力データは、「番号」210、「時間」211、「IP」212、「キーコード」213、「押/離」214の欄からなっている。「番号」210はキーのデータを取得した順番で、「時間」211はキーのデータを取得したときの時間である。「時間」211は実時間の100ナノ秒単位で表示されている。
「IP」212はクライアント201を識別するためのネットワーク上のアドレスである。「キーコード」213はキーのコード番号である。「キーコード」213は国又は国際機関で定まられたキーコード、又はキーボードの物理的なコード番号であっても良い。「押/離」214はキーを押下した又は離反したか示す欄で、「1」は押下、「0」は離反に対応する。
共通インターフェースドライバ7は、データ取込部18によってキーのデータを取得し、データ処理部19でキーのデータに入力時間を付け加えるなどとして入力データを作成する(図3を参照)。作成した入力データはTDIクライアントドライバ部20によって、LANボードドライバ21を経てサーバ202へ送信される。
〔サーバでの処理〕
サーバ202では、クライアント201から送信されてくる入力データを受信して入力データファイル206としてハードディスクやメモリなどの記憶媒体に保存する。サーバ202では、予め特定ユーザの入力するデータを取得してユーザデータベース205を作成している。ユーザ認証プログラム204、入力データファイル206のデータをユーザデータベース205のデータと比較してユーザの識別を行う。
ユーザ認証プログラム204は学習部208と識別部209とから構成される。学習部208はユーザデータベース205から特徴ベクトルを生成するためのプログラムである。識別部209は、入力データを特徴ベクトルと比較してユーザの識別を行うためのプログラムである。以下、各部の詳細な働きを示す。
〔学習部208〕
学習部208では、教師データを読み込んで特徴ベクトルを求める。読み込みした教師データからは、例えば図18に例示したような入力されたキー、その押下、離反の時間データ、そのキーの前後に入力されたキーと関連する時間データを求めて特徴データとする。図18に例示したt1からt3又はt4、t5はその一例である。読み込んだすべての教師データに対する特徴データを求めて、全特徴データの特徴を示す特徴ベクトルを求める。
図20のフローチャートに学習部208の動作手順を図示している。サーバ202のユーザ認証プログラム204を起動させると、学習部208が実行される(S400)。保存されているユーザデータベース205から教師データを読み込む(S401)。ユーザデータベース205は、テキスト、バイナリ等の形式のファイルとして保存されている。指定された数の教師データを読み終わるまで次の教師データを読み込みする(S402→S401)。
読込まれた教師データが正しく読み込まれたかを判定する(S403)。正確に読込むことができなかった場合は、学習部208のプログラムを強制終了する(S404)。正確に読込まれた場合は、特徴ベクトルを初期化する(405)。特徴ベクトルの初期化では指定された数の特徴ベクトルを生成し、乱数を用いて初期化する。乱数は各クラスのベクトルの最大値と最小値との間の値を取る。
そして、学習を開始する。学習回数の初期化(L=0)を行い(S406)、LVQ学習を所定回数nだけ行う(S407〜S409)。LVQ学習では式1で表されるように特徴ベクトルを更新する。σは0.1と固定し学習を行っている。
学習を所定回数nだけ行った後、学習した結果である特徴ベクトルを書き出して(S410)、学習部208が終了する(S411)。特徴ベクトルはテキスト又はバイナリ形式で出力されてサーバ402の記憶装置に記憶される。
〔識別部209〕
学習部208のプログラムが実行されて、特徴ベクトルを出力して終了すると、識別部209のプログラムが実行される。図21のフローチャートには、識別部209のプログラムの手順を図示している。識別部209のプログラムが開始すると(S420)、学習部208で出力された特徴ベクトルを読み込む(S421)。特徴ベクトルを読み込んで、検証するユーザの入力データを読み込む(S422)。
入力データはクライアント201から送信されてサーバ202に入力データファイル206として保存されている。入力データを読み終わると、識別処理を行う(S423)。識別処理が終了すると識別結果を出力して(S424)、次の入力データを読み込み識別する(S425→S422)。次の入力データが無い又は終了する指示がある場合はプログラムを終了する(S426)。
〔識別結果〕
識別部209のプログラムで出力される識別結果はサーバ202の記憶装置にテキスト又はバイナリ形式のファイルとして記憶される。図22には、識別結果の例を図示している。識別結果を「読み込みファイル」220の行と「識別結果」221の列とから成る表で図示している。「読み込みファイル」220の行と「識別結果」221列はそれぞれ「A」、「B」、...、「G」の各行、各列から構成されている。
「読み込みファイル」220の各行は入力データを示し、「識別結果」221の各列は教師データの各特徴ベクトルを示す。各行と各列に対する交差するセルは、入力データが各特徴ベクトルに属する割合をパーセントで示している。識別部209のプログラムは、入力データである「読み込みファイルA」222を読み込み、この入力データがどの特徴ベクトルに属するかを求めて、結果をパーセントで出力している。
この表からは、クライアント201のキーボードから入力しているユーザが誰であるかを判断することができる。「読み込みファイルA」222のユーザは、「特徴ベクトルA」224を有するユーザである可能性は「75%」、「特徴ベクトルB」225を有するユーザである可能性は「6%」である。「読み込みファイルB」223のユーザは、「特徴ベクトルA」224を有するユーザである可能性は「0%」、「特徴ベクトルB」225を有するユーザである可能性は「100%」である。
このように、各ユーザの個人特徴によって本人特定は「100%」ものもあれば、他のユーザの特徴と似ているため「70%」から「80%」ぐらいのものもある。
本発明は、カーネルモードでキーボードからの入力の正確なタイミングを抽出しており、タイミングの正確さが求められるセキュリティ保護関連の分野、例えば、個人情報、国家機密情報、企業秘密などの管理システムに組み込んで利用すればより安全が高めることが可能である。
図1は、本発明の実施の形態を示す概念図である。
図2は、本発明の実施の形態の動作を示すフローチャートである。
図3は、共通インターフェースドライバの構成図である。
図4は、図3の動作を示すフローチャートである。
図5は、ネットワーク経由で個人認証を行う概念図である。
図6は、図5の動作手順を示すフローチャートである。
図7は、ネットワーク経由で個人認証を行うとき共通インターフェースドライバの動作手順を示すフローチャート(1)である。
図8は、図7のフローチャート(1)の続きのフローチャート(2)である。
図9は、従来の個人入力特徴を示すグラフである。
図10は、本発明の個人入力特徴を示すグラフである。
図11は、暗号化/復号化専用カードを用いた共通インターフェースドライバの機能ブロック図である。
図12は、図11の動作を示すフローチャートである。
図13は、Windowsのアーキテクチャを示す図である。
図14は、従来のOSとデバイスドライバの概念図である。
図15は、従来のデバイスドライバの動作手順を示すフローチャートである。
図16は、従来のキー操作データ取得のフローチャートである。
図17は、実施の形態6の概要を示す図である。
図18は、実施の形態6のキーの読み取りの時間間隔を示す図である。
図19は、実施の形態6の入力データの例を示す図である。
図20は、実施の形態6の学習部のプログラムの例を示すフローチャートである。
図21は、実施の形態6の識別部のプログラムの例を示すフローチャートである。
図22は、実施の形態6の識別結果を示す例である。

Claims (17)

  1. ネットワーク網へ接続される第1のネットワークカード、及び入力装置を含む複数のデバイスが接続されていて、OSによって制御されて動作し、かつ前記デバイスを制御するためのデバイスドライバを備えている電子計算機と、
    前記ネットワーク網へ接続されるための第2のネットワークカード、及び前記電子計算機のユーザの個人情報からなるデータベースを記憶した記憶手段を有するサーバと
    からなるネットワークシステムにおいて、
    前記電子計算機上に動作しているアプリケーションプログラムからの、前記サーバへの接続要求を受信し、受信した前記接続要求を後記フロー制御手段に送信し、前記接続要求によって制御された前記デバイスドライバから受信したデータ若しくは後記フロー制御手段から受信したデータからなる命令実行結果を前記アプリケーションプログラムに通知するためのアプリケーションインターフェース手段と、
    前記デバイスドライバから受信データを取り込むためのインターフェース手段と、
    (a)前記入力装置の前記デバイスドライバから受信した前記受信データに受信した時刻を示す入力時間を追加、及び前記受信データを暗号化、又は(b)前記第1のネットワークカードの前記デバイスドライバから受信した暗号化された前記受信データを復号化するデータ処理を行って送信データを作成するデータ処理手段と、
    (c)前記アプリケーションインターフェース手段から受信した前記サーバへの前記接続要求に含まれるネットワークパラメータを前記第1のネットワークカードの前記デバイスドライバへ送信して前記電子計算機と前記サーバを接続させ、更に、(d)前記送信データを受信して、前記送信データを解析し、(d−1)前記送信データが前記第1のネットワークカードの前記デバイスドライバから受信した前記受信データを復号化したもので、前記アプリケーションプログラムへのデータの場合は前記アプリケーションインターフェース手段へ送信し、(d−2)前記送信データが前記暗号化されたもので、前記ネットワークへのデータの場合は前記第1のネットワークカードの前記デバイスドライバへ送信し、(d−3)前記送信データが前記第1のネットワークカードの前記デバイスドライバから受信した前記受信データを復号化したもので、前記入力装置からデータを要求する場合は前記入力装置の前記デバイスドライバにデータを要求する処理を行うためのフロー制御手段と
    からなる前記デバイスドライバの共通のインターフェースを提供するもので、前記OSの全ての命令が実行できる動作モードであるカーネルモードで動作する共通インターフェース手段を前記電子計算機が有し、
    前記電子計算機は、前記入力装置によってユーザが入力するとき、前記入力装置を前記ユーザが操作するときの前記入力装置から前記電子計算機に入力される情報である操作データを前記入力装置の前記デバイスドライバから前記インターフェース手段によって前記受信データとして取得し、
    前記データ処理手段によって、前記操作データに受信した時刻を示す前記入力時間を追加して、入力データを作成し、
    前記入力データを前記第1のネットワークカードによって前記サーバへ伝送し、
    前記サーバは、前記入力データを前記第2のネットワークカードによって受信し、前記入力データを分析して前記ユーザの前記入力装置を操作する操作特徴を求め、
    前記操作特徴を前記個人情報と比較して前記ユーザの個人認証を行う
    ことを特徴とするネットワークによる入力装置の入力特徴を用いた個人認証方法。
  2. 請求項1において、
    前記入力装置はキーボードであり、
    前記入力時間は、前記キーボードのあるキーを押下するときの第1時間情報、又は前記キー若しくは他のキーを押下後に離すときの第2時間情報を用いた時間情報である
    ことを特徴とするネットワークによる入力装置の入力特徴を用いた個人認証方法。
  3. 請求項2において、
    前記操作特徴は、
    前記キーボードのあるキーが押下されてからそのキーを離すまでの間隔である第1タイム、
    前記キーボードのあるキーが押下されてから次のキーが押下されるまでの間隔である第2タイム、
    前記キーボードのあるキーを離してから次のキーが押下されるまでの間隔である第3タイム、及び
    前記キーボードのあるキーを離してから次のキーを離すまでの間隔である第4タイムの内少なくとも1つのタイムである
    ことを特徴とするネットワークによる入力装置の入力特徴を用いた個人認証方法。
  4. 請求項1において、
    前記個人認証は、ニューラルネットワーク手法である学習ベクトル量子化法を用いる
    ことを特徴とする電子計算機の入力装置の入力特徴を用いた個人認証方法。
  5. 請求項4において、
    前記学習ベクトル量子化法は、
    前記個人情報からなる教師データの特徴を示す特徴ベクトルを学習して求め、
    前記学習は、
    前記特徴ベクトルm、mが教師データxに対してもっとも近い距離にあるとき、tは前記学習の回数、mは教師データxと異なるクラスに属する場合、mは教師データxと同じクラスに属する場合において、
    (t+1)=m(t)−σ(t)[x(t)−m(t)]
    (t+1)=m(t)+σ(t)[x(t)−m(t)]...(式1)
    (t+1)=m(t) for k≠i,j
    0<σ(t)<1
    式で前記特徴ベクトルを更新して行われ、
    前記操作特徴と前記特徴ベクトルとの距離を求め前記ユーザを識別する
    ことを特徴とする電子計算機の入力装置の入力特徴を用いた個人認証方法。
  6. 請求項5において、
    前記入力装置はキーボードであり、
    前記操作特徴は、
    前記キーボードのあるキーが押下されてからそのキーを離すまでの時間である第1タイム、
    前記キーボードのあるキーが押下されてから次のキーが押下されるまでの時間である第2タイム、
    前記キーボードのあるキーを離してから次のキーが押下されるまでの時間である第3タイム、及び
    前記キーボードのあるキーを離してから次のキーを離すまでの時間である第4タイムから選択される何れかの1以上のタイムである
    ことを特徴とする電子計算機の入力装置の入力特徴を用いた個人認証方法。
  7. ネットワーク網へ接続される第1のネットワークカード、及び入力装置を含む複数のデバイスが接続されていて、OSによって制御されて動作し、かつ前記デバイスを制御するためのデバイスドライバを備えている電子計算機と、
    前記ネットワーク網へ接続されるための第2のネットワークカード、及び前記電子計算機を利用するユーザの個人情報からなるデータベースを記憶した記憶手段を有するサーバと
    からなるネットワークシステムに前記ユーザの個人認証を実現させるための個人認証プログラムにおいて、
    前記個人認証プログラムは、電子計算機用プログラムとサーバ用プログラムから構成され、
    前記電子計算機用プログラムは、
    前記OSの全ての命令が実行できる動作モードであるカーネルモードで動作し、及び
    前記電子計算機に、前記ユーザが前記入力装置によって入力するとき、前記入力装置を前記ユーザが操作するときの前記入力装置から前記電子計算機に入力される情報である操作データを取得し、前記操作データに入力時間を追加した入力データを用いて前記サーバへの送信データを作成し、前記第1のネットワークカードによって前記ネットワーク網へ前記送信データを送信するための取得機能
    を実現させるためのプログラムであり、
    前記取得機能は、
    前記電子計算機で動作しているアプリケーションプログラムからの前記サーバへの接続要求を受信し、受信した前記接続要求を後記フロー制御機能に送信し、前記接続要求によって制御された前記デバイスドライバから受信したデータ若しくは後記フロー制御機能から受信したデータからなる命令実行結果を前記アプリケーションプログラムに通知するためのアプリケーションインターフェース機能と、
    前記入力装置の前記デバイスドライバへアクセスして前記操作データを取得するためのインターフェース機能と、
    前記操作データに前記アクセスした時間に関する情報を追加して前記入力データを作成し、前記第1のネットワークカードで送信可能な前記送信データを作成するためのデータ処理機能と、
    前記第1のネットワークカードへ前記送信データの送信、及び前記第1のネットワークカードから受信データの受信を行うためのネットワーク送受信機能と、
    前記サーバから前記電子計算機に送信されたデータであるサーバ要求を前記受信データとして前記ネットワーク送受信機能を介して受信して、前記受信データが前記アプリケーションプログラムへのアプリケーションデータか、又は前記個人認証のための個人認証要求か、又は正当なユーザではないとき出される不正アクセスを防止するための不正アクセス防止命令かを解析し、(1)前記受信データが前記アプリケーションデータの場合は前記アプリケーションインターフェース機能へ送信し、(2)前記受信データが前記個人認証要求命令の場合は前記入力装置の前記デバイスドライバにデータを要求するようインターフェース機能に指示し、又は(3)前記受信データが前記不正アクセス防止命令の場合は(3−1)前記受信データの命令に含まれる前記入力装置からの入力を一時停止、若しくは停止するようインターフェース機能に指示して前記入力装置の前記デバイスドライバからの入力を一時停止若しくは停止させ、又は(3−2)前記アプリケーションプログラムへ前記受信データ通知するための前記フロー制御機能と
    からなり、
    前記サーバ用プログラムは、
    前記サーバに、前記第2のネットワークカードによって前記送信データを受信し、前記入力データを分析して前記ユーザの前記入力装置を操作する操作特徴を求めるための分析機能、及び
    前記操作特徴を前記個人情報と比較して前記ユーザの個人認証を行うための認証機能を実現させるためのプログラムである
    ことを特徴とするネットワークによる入力装置の入力特徴を用いた個人認証プログラム。
  8. 請求項7において、
    前記データ処理機能は、
    前記送信データを暗号化するための暗号化機能、及び
    前記第1のネットワークカードから受信したもので、暗号化された前記受信データを復号化するための復号化機能
    を有する
    ことを特徴とするネットワークによる入力装置の入力特徴を用いた個人認証プログラム。
  9. 請求項7において、
    前記フロー制御機能は、
    前記第1のネットワークカードから受信した前記受信データに前記ユーザが個人認証されなかったことを示す不認証データがある場合、前記取得機能を停止、一時停止、又は不認証の情報を前記電子計算機の管理者に通知する
    ことを特徴とするネットワークによる入力装置の入力特徴を用いた個人認証プログラム。
  10. 請求項7において、
    前記入力装置はキーボードであり、
    前記分析機能は、
    前記キーボードのあるキーが押下されてからそのキーを離すまでの間隔である第1タイム、
    前記キーボードのあるキーが押下されてから次のキーが押下されるまでの間隔である第2タイム、
    前記キーボードのあるキーを離してから次のキーが押下されるまでの間隔である第3タイム、及び
    前記キーボードのあるキーを離してから次のキーを離すまでの間隔である第4タイムの内少なくとも1つのタイムを計算する
    ことを特徴とするネットワークによる入力装置の入力特徴を用いた個人認証プログラム。
  11. 請求項10において、
    前記操作データは前記キーボードの機能キーを操作する操作データである
    ことを特徴とするネットワークによる入力装置の入力特徴を用いた個人認証プログラム。
  12. 請求項7において、
    前記個人認証機能はニューラルネットワーク手法である学習ベクトル量子化法を用い、学習ステップと識別ステップとからなる
    ことを特徴とする電子計算機の入力装置の入力特徴を用いた個人認証プログラム。
  13. 請求項12において、
    前記学習ステップは、
    前記個人情報を読み込む第1ステップと、
    前記個人情報の特徴を表す特徴ベクトルを作成する第2ステップと、
    前記特徴ベクトルを学習して最適な特徴ベクトルである最適特徴ベクトルを求める第3ステップと、
    前記最適特徴ベクトルを出力する第4ステップと
    からなることを特徴とする電子計算機の入力装置の入力特徴を用いた個人認証プログラム。
  14. 請求項12において、
    前記第3ステップは、
    前記個人情報xと前記特徴ベクトルとの距離を計算、最短距離の前記特徴ベクトルmを計算する第5ステップと、
    前記特徴ベクトルmのクラスを求める第6ステップと、
    前記第6ステップで求めたクラスが前記個人情報xのクラスと比較する第7ステップと
    前記第7ステップの結果が同じクラスであるとき、前記特徴ベクトルを式
    =m+σ[x−m]、0<σ<1;
    で更新する第8ステップと、
    前記第7ステップの結果が違うクラスであるとき、前記特徴ベクトルを式
    =m−σ[x−m]、0<σ<1;
    で更新する第9ステップと
    前記ステップ5から9を所定回数繰り返して、結果を前記最適特徴ベクトルとして出力する第10ステップと
    からなることを特徴とする電子計算機の入力装置の入力特徴を用いた個人認証プログラム。
  15. 請求項12又は13において、
    前記識別ステップは、
    前記学習ステップで作成された最適特徴ベクトルを読み込む第11ステップと、
    前記入力データを読み込みする第12ステップと、
    前記入力データと前記特徴ベクトルとの距離を計算する第13ステップと、
    前記第13ステップの計算結果から最短距離の特徴ベクトルを特定する第14ステップと、
    前記第14ステップの前記最短距離の特徴ベクトルのクラスを前記ユーザの識別としで出力する第15ステップと
    からなることを特徴とする電子計算機の入力装置の入力特徴を用いた個人認証プログラム。
  16. 請求項7ないし9の内から選択される1項において、
    前記ネットワーク網はインターネットである
    ことを特徴とするネットワークによる入力装置の入力特徴を用いた個人認証プログラム。
  17. 請求項7〜9、及び16の中から選択される1項に記載の電子計算機用プログラムを記録したネットワークによる入力装置の入力特徴を用いた個人認証プログラムの記録媒体。
JP2003568548A 2002-02-15 2003-02-17 ネットワークによる入力装置の入力特徴を用いた個人認証方法、そのプログラム及びプログラムの記録媒体 Expired - Lifetime JP3976201B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2002037848 2002-02-15
JP2002037848 2002-02-15
PCT/JP2003/001634 WO2003069492A1 (fr) 2002-02-15 2003-02-17 Procede d'authentification individuelle utilisant une caracteristique de saisie sur un appareil de saisie par l'intermediaire d'un reseau, programme associe et support d'enregistrement contenant ce programme

Publications (2)

Publication Number Publication Date
JPWO2003069492A1 JPWO2003069492A1 (ja) 2005-06-09
JP3976201B2 true JP3976201B2 (ja) 2007-09-12

Family

ID=27678136

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003568548A Expired - Lifetime JP3976201B2 (ja) 2002-02-15 2003-02-17 ネットワークによる入力装置の入力特徴を用いた個人認証方法、そのプログラム及びプログラムの記録媒体

Country Status (5)

Country Link
US (1) US7287273B2 (ja)
JP (1) JP3976201B2 (ja)
CN (1) CN100541471C (ja)
AU (1) AU2003211268A1 (ja)
WO (1) WO2003069492A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016530802A (ja) * 2013-07-28 2016-09-29 スクエア, インコーポレイテッドSquare, Inc. パスコード入力セキュリティのための生のセンサインプットの暗号化
US10083442B1 (en) 2012-06-12 2018-09-25 Square, Inc. Software PIN entry
US10540657B2 (en) 2013-09-30 2020-01-21 Square, Inc. Secure passcode entry user interface

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0631140B2 (ja) * 1984-09-26 1994-04-27 株式会社東芝 エレベ−タの地震管制方法および管制装置
EP1598738A4 (en) * 2003-02-26 2009-04-01 Science Park Corp COMPUTER CONTAINING PRINTING CONTROL PROGRAM, PROGRAM, AND PROGRAM RECORDING MEDIUM
GB0404696D0 (en) * 2004-03-02 2004-04-07 Level 5 Networks Ltd Dual driver interface
US7302708B2 (en) * 2004-03-11 2007-11-27 Harris Corporation Enforcing computer security utilizing an adaptive lattice mechanism
JP4607489B2 (ja) * 2004-04-21 2011-01-05 株式会社エヌ・ティ・ティ・ドコモ データ処理装置およびデータ処理方法
US7426582B1 (en) * 2005-04-29 2008-09-16 American Megatrends, Inc. Method, system, and apparatus for servicing PS/2 devices within an extensible firmware interface environment
US7415547B1 (en) 2005-04-29 2008-08-19 American Megatrends, Inc. Tracking states of communication between PS/2 hardware and hardware drivers within an extensible firmware interface environment
JP2007213389A (ja) * 2006-02-10 2007-08-23 Toshiba Corp 認証システム、認証方法、認証プログラム
JP5140978B2 (ja) * 2006-09-26 2013-02-13 カシオ計算機株式会社 クライアント装置およびプログラム
JP2007066322A (ja) * 2006-10-05 2007-03-15 Ntt Docomo Inc データ処理装置およびデータ処理方法
KR100952644B1 (ko) * 2009-04-17 2010-04-13 주식회사 잉카인터넷 키보드 입력데이터의 보안시스템 및 방법
US20120144460A1 (en) * 2010-12-07 2012-06-07 Netanel Raisch Methods and devices for access authenication on a computer
CN102098380A (zh) * 2010-12-22 2011-06-15 中兴通讯股份有限公司 在移动终端中自定义快捷方式的方法和装置
CN102542210A (zh) * 2010-12-31 2012-07-04 富泰华工业(深圳)有限公司 对文件使用权限管理的电子装置及方法
WO2012117701A1 (ja) * 2011-03-02 2012-09-07 日本電気株式会社 データ制御システム、データ制御方法およびデータ制御用プログラム
US8521942B2 (en) 2011-03-21 2013-08-27 Microsoft Corporation HID over simple peripheral buses
US8590018B2 (en) * 2011-09-08 2013-11-19 International Business Machines Corporation Transaction authentication management system with multiple authentication levels
US8832798B2 (en) * 2011-09-08 2014-09-09 International Business Machines Corporation Transaction authentication management including authentication confidence testing
US8725916B2 (en) * 2012-01-07 2014-05-13 Microsoft Corporation Host side implementation for HID I2C data bus
WO2014064676A1 (en) * 2012-10-22 2014-05-01 Cyber-Ark Software Ltd. Maintaining continuous operational access augmented with user authentication and action attribution in shared environments
US9147056B2 (en) 2014-01-09 2015-09-29 International Business Machines Corporation User authentication
CN108965291B (zh) * 2018-07-11 2021-04-16 平安科技(深圳)有限公司 混合应用程序的注册登录方法、系统及计算机设备
CN114115740B (zh) * 2021-11-26 2024-06-07 百度在线网络技术(北京)有限公司 数据存储方法及装置、数据获取方法及装置、电子设备
US20230244479A1 (en) * 2022-01-28 2023-08-03 Mikroelektronika D.O.O. Natural language code and comment completion generator

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557686A (en) * 1993-01-13 1996-09-17 University Of Alabama Method and apparatus for verification of a computer user's identification, based on keystroke characteristics
JPH0855021A (ja) * 1994-08-10 1996-02-27 Fujitsu Ltd 鍵認証方式
US6212574B1 (en) * 1997-04-04 2001-04-03 Microsoft Corporation User mode proxy of kernel mode operations in a computer operating system
JP2000092046A (ja) 1998-09-11 2000-03-31 Mitsubishi Electric Corp 遠隔認証システム
JP2000132514A (ja) * 1998-10-21 2000-05-12 Hitachi Ltd 個人認証方法
JP4120997B2 (ja) 1998-10-23 2008-07-16 富士通株式会社 不正アクセス判断装置及び方法
JP2000305654A (ja) * 1999-04-15 2000-11-02 Kazunari Men キーボードの入力特徴を用いた個人認証
KR100341147B1 (ko) * 1999-12-03 2002-07-13 박재우 인터넷/인트라넷 기반하에서의 생체정보를 이용한 사용자 인증시스템 및 그 운용방법
JP2001356871A (ja) * 2000-06-14 2001-12-26 Hitachi Kokusai Electric Inc 暗証コードとキー入力タイミング値による個人認証装置
US20030065626A1 (en) * 2001-09-28 2003-04-03 Allen Karl H. User verification for conducting health-related transactions

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10083442B1 (en) 2012-06-12 2018-09-25 Square, Inc. Software PIN entry
US10185957B2 (en) 2012-06-12 2019-01-22 Square, Inc. Software pin entry
US10515363B2 (en) 2012-06-12 2019-12-24 Square, Inc. Software PIN entry
US11823186B2 (en) 2012-06-12 2023-11-21 Block, Inc. Secure wireless card reader
JP2016530802A (ja) * 2013-07-28 2016-09-29 スクエア, インコーポレイテッドSquare, Inc. パスコード入力セキュリティのための生のセンサインプットの暗号化
US10540657B2 (en) 2013-09-30 2020-01-21 Square, Inc. Secure passcode entry user interface

Also Published As

Publication number Publication date
CN1633649A (zh) 2005-06-29
WO2003069492A1 (fr) 2003-08-21
JPWO2003069492A1 (ja) 2005-06-09
CN100541471C (zh) 2009-09-16
US7287273B2 (en) 2007-10-23
US20050229000A1 (en) 2005-10-13
AU2003211268A1 (en) 2003-09-04

Similar Documents

Publication Publication Date Title
JP3976201B2 (ja) ネットワークによる入力装置の入力特徴を用いた個人認証方法、そのプログラム及びプログラムの記録媒体
JP4350150B2 (ja) 電子計算機のファイルシステムドライバの制御方法
CN110799941B (zh) 防盗和防篡改的数据保护
KR100737628B1 (ko) 고정형 토큰 및 이동형 토큰 모두를 이용한 어테스테이션
US11902436B1 (en) Cryptographic key management to prevent data exfiltration
JP4219561B2 (ja) 信頼できる計算プラットフォームのためのスマートカード・ユーザインターフェイス
US10078754B1 (en) Volume cryptographic key management
JP4323473B2 (ja) コンピュータセキュリティシステムおよび方法
KR101755995B1 (ko) 동형 암호를 이용한 특성벡터 기반 원격 바이오 인증 방법 및 시스템
US9553858B2 (en) Hardware-based credential distribution
KR101402542B1 (ko) 지속형 보안 시스템 및 지속형 보안 방법
TWI431501B (zh) 在usb訊標上的密碼鍵容器
US20070130473A1 (en) System and method for access control
EP2130159B1 (en) Secure data storage and retrieval incorporating human participation
US9268492B2 (en) Network based management of protected data sets
JPWO2003069491A1 (ja) 電子計算機の入力装置の入力特徴を用いた個人認証方法、そのプログラム及びプログラムの記録媒体
US20160119150A1 (en) Out-of-band encryption key management system
US8095966B1 (en) Methods and apparatus for password management
CN115510486A (zh) 文件处理方法、系统、电子设备、存储介质及芯片
KR101745390B1 (ko) 데이터 유출 방지장치 및 그 방법
US10114654B2 (en) Method of booting a production computer system
Alves et al. Benchmarking the security protocol and data model (SPDM) for component authentication
KR101003242B1 (ko) 유에스비 메모리 장치에 저장된 소프트웨어 불법복제방지 시스템 및 유에스비 메모리 장치에 저장된 소프트웨어를 실행하는 방법
Butler et al. Protecting Portable Data with Host Validation

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061016

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070416

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070419

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070515

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070614

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100629

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 3976201

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100629

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110629

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120629

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120629

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130629

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130629

Year of fee payment: 6

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130629

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term