(57)【特許請求の範囲】
【請求項１】
ホストシステムと接続された電気通信システムであって、該電気通信システムとの接続に使用され該電気通信システムの中で固有の固有アドレスを有する電気通信インタフェースを備えた電気通信システムにおいて、前記電気通信インタフェースに接続し得る少なくとも１つの電子装置にエージェントを組み込むことにより該電子装置の概略位置の特定を補助する方法であって、
前記電子装置内の領域であって、前記電子装置が常態で使用されているときにはユーザが前記領域にアクセスすることができず、且つ、前記電子装置が常態で使用されているときにはユーザが前記領域内の対象を検知あるいは無効化することができない領域に備えられたエージェントが、
前記電子装置に、外部から入力される操作と無関係に、
前記電気通信インタフェースを介して当該電子装置と前記電気通信システムの間で前記ホストシステムとの通信用インタフェースを確立する処理と、
前記ホストシステムに当該電子装置の識別子を供給することにより前記ホストシステムによる当該電子装置の識別を可能にする処理とを実行させ、
前記ホストシステムが、前記電子装置が接続されている電気通信インタフェースの前記固有アドレスを受信することにより前記電子装置の概略位置の特定を補助する方法。
【請求項２】
前記エージェントはさらに、前記電子装置に、前記ホストシステムと通信するのに適したタイミングを決定する処理を実行させることを特徴とする請求項１の方法。
【請求項３】
前記電気通信システムが、前記ホストシステムに、前記電子装置が接続されている電気通信インタフェースの前記固有アドレスを供給することを特徴とする請求項１の方法。
【請求項４】
前記ホストシステムが、紛失したあるいは盗まれた電子装置のリストを予め保持しており、該リストに含まれる電子装置と供給された前記識別子により識別された電子装置とを比較し、識別子により識別された電子装置が紛失したあるいは盗まれた電子装置か否かを判断することを特徴とする請求項１の方法。
【請求項５】
前記ホストシステムが、識別子により識別された電子装置が紛失したあるいは盗まれた電子装置であると判断したときに、該電子装置が接続されている電気通信インタフェースの前記固有アドレスを前記電気通信システムから取得することを特徴とする請求項４の方法。
【請求項６】
前記電気通信システムが無線電気通信システムであり、
前記電子装置の識別子を供給する処理が、前記無線電気通信システムを介して識別子を供給する処理であることを特徴とする請求項１の方法。
【請求項７】
前記無線電気通信システムを介して前記ホストシステムに前記識別子を供給する処理において、ＲＦ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ）信号を利用することを特徴とする請求項６の方法。
【請求項８】
前記無線電気通信システムを介して前記ホストシステムに前記識別子を供給する処理において、マイクロ波信号を利用することを特徴とする、請求項７の方法。
【請求項９】
前記電気通信システムが地上通信線電気通信システムであり、
前記電子装置の識別子を供給する処理が、前記地上通信線電気通信システムを介して識別子を供給する処理であることを特徴とする請求項１の方法。
【請求項１０】
前記地上通信線電気通信システムが、電話回線を利用するシステムであることを特徴とする請求項９の方法。
【請求項１１】
前記地上通信線電気通信システムが、ケーブル回線を利用するケーブルテレビジョンネットワークであることを特徴とする請求項９の方法。
【請求項１２】
前記識別子が一連の文字で構成されており、前記電子装置の識別子を供給する処理が、前記一連の文字を供給する処理であることを特徴とする請求項１の方法。
【請求項１３】
前記一連の文字を供給する処理において、所定の方式で前記一連の文字を符号化して供給することを特徴とする請求項１２の方法。
【請求項１４】
前記一連の文字を供給する処理において、前記一連の文字を２つ以上のセグメントに分けてセグメントごとに伝送することを特徴とする請求項１３の方法。
【請求項１５】
前記エージェントを組み込む電子装置が、ハードドライブを有するコンピュータであることを特徴とする請求項１の方法。
【請求項１６】
前記電子装置内の領域が、前記ハードドライブのブートセクタであることを特徴とする請求項１５の方法。
【請求項１７】
前記電子装置内の領域が、前記ハードドライブの分割セクタであることを特徴とする請求項１５の方法。
【請求項１８】
前記ハードドライブ上にあるオペレーティングシステムの隠しシステムファイルの中で前記エージェントがロードされることを特徴とする請求項１５の方法。
【請求項１９】
前記エージェントがＲＯＭ  ＢＩＯＳからロードされることを特徴とする、請求項１５の方法。
【請求項２０】
前記ホストシステムに前記電子装置の識別子を供給する処理が、所定の時間間隔で周期的に識別子を供給する処理であることを特徴とする、請求項１の方法。
【請求項２１】
前記ホストシステムに前記電子装置の識別子を供給する処理において、１以上の所定の事象が発生したときに、前記所定の時間間隔での周期的な識別子の供給を開始することを特徴とする請求項２０の方法。
【請求項２２】
前記電気通信インタフェースがモデムであることを特徴とする、請求項１の方法。
【請求項２３】
前記識別子が、前記モデムが前記ホストシステムを呼び出すときに使用する１または複数の電話番号を構成する数字を使って符号化されることを特徴とする、請求項２２の方法。
【請求項２４】
前記ホストシステムが、前記１つまたは複数の電話番号を構成する数字を使って符号化され伝送された前記識別子を復号化し、該識別子が紛失したあるいは盗まれた電子装置の前記リストに含まれる電子装置のいずれかと一致する場合に限り前記モデムの呼び出しに応答することを特徴とする、請求項２３の方法。
【請求項２５】
前記エージェントが、他の実行中のアプリケーションを妨害しない常駐（ＴＳＲ：Ｔｅｒｍｉｎａｔｅ  ａｎｄ  Ｓｔａｙ  Ｒｅｓｉｄｅｎｔ）プログラムであることを特徴とする、請求項１５の方法。
【請求項２６】
前記エージェントは、前記電子装置に、前記識別子の供給を自動的にかつユーザの介入なしに開始させることを特徴とする、請求項１の方法。
【請求項２７】
前記エージェントは、前記電子装置に、前記識別子の供給を可聴信号あるいは可視信号を発せさせることなく行わせることを特徴とする、請求項２６の方法。
【請求項２８】
前記電話番号が、ダイヤルストリング表の中から選定されたプレフィックスとともに送信されることを特徴とする、請求項２３の方法。
【請求項２９】
電気通信システムを介した通信が成功するまで、前記ダイヤルストリング表に含まれるプレフィックスを１つずつ順番に電話番号のプレフィックスとしてつけてホストシステムを呼び出すことを特徴とする、請求項２８の方法。
【請求項３０】
ホストシステムと接続された電気通信システムと、該電気通信システムとの接続に使用され該電気通信システム内で固有のアドレスを有する電気通信インタフェースとを備えたシステムにおいて、前記電気通信インタフェースに接続し得る電子装置にエージェントを組み込み、該電子装置からの伝送データをホストシステムにより受信することにより、前記電子装置の概略位置の特定を補助する方法であって、
前記電子装置内の領域であって、前記電子装置が常態で使用されているときにはユーザが前記領域にアクセスすることができず、且つ、前記電子装置が常態で使用されているときにはユーザが前記領域内の対象を検知することもできない領域に備えられたエージェントが、
前記電子装置に、外部から入力される操作と無関係に、
前記電気通信インタフェースを介して当該電子装置と前記電気通信システムの間で前記ホストシステムとの通信用インタフェースを確立する処理と、
前記ホストシステムに当該電子装置に固有の識別子を供給する処理と、
前記ホストシステムが、前記電子装置が接続されている電気通信インタフェースの前記固有アドレスを取得できるように、前記ホストシステムと通信する処理とを実行させ、
前記ホストシステムは、
前記電子装置から該電子装置に固有の識別子を受信することにより該電子装置を識別する処理と、
前記受信した識別子を、紛失したあるいは盗まれた電子装置のリストと比較することにより、該電子装置が紛失したもしくは盗まれた装置か否かを判定する処理と、
前記電子装置が接続された前記電気通信インタフェースの固有アドレスを受信する処理とを実行することを特徴とする方法。
【請求項３１】
ホストシステムと接続された電気通信システムと、該電気通信システムとの接続に使用され該電気通信システム内で固有のアドレスを有する電気通信インタフェースとを備え、前記電気通信インタフェースに接続し得る電子装置にエージェントを組み込むことにより、前記電子装置の概略位置の特定を補助するシステムにおける前記電子装置であって、該電子装置は、
前記電子装置内の領域であって、前記電子装置が常態で使用されているときにはユーザが前記領域にアクセスすることができず、且つ、前記電子装置が常態で使用されているときにはユーザが前記領域内の対象を検知あるいは無効化することができない領域に備えられたエージェントにより、
外部から入力される操作と無関係に、前記電気通信インタフェースを介して当該電子装置と前記電気通信システムの間で前記ホストシステムとの通信用インタフェースを確立する手段、
前記ホストシステムに当該電子装置の識別子を供給することにより前記ホストシステムによる当該電子装置の識別を可能にする手段、および
前記ホストシステムと通信し、該ホストシステムが、前記電子装置が接続されている電気通信インタフェースの前記固有アドレスを受信することを可能にする手段として機能させられることを特徴とする電子装置。
【請求項３２】
前記エージェントはさらに、前記電子装置を、前記ホストシステムと通信するのに適したタイミングを決定する手段として機能させることを特徴とする請求項３１の電子装置。
【請求項３３】
前記電子装置が接続されている電気通信インタフェースの前記固有アドレスを前記ホストシステムに供給する機能を備えた電気通信システムに接続されることを特徴とする請求項３１の電子装置。
【請求項３４】
前記識別子により識別された電子装置が紛失したあるいは盗まれた電子装置であると判断したときに、該電子装置が接続されている電気通信インタフェースの前記固有アドレスを前記電気通信システムから取得する手段を備えたホストシステムと通信することを特徴とする請求項３３の電子装置。
【請求項３５】
前記電気通信システムが無線電気通信システムであり、
前記電子装置の識別子を供給する手段が、前記無線電気通信システムを介して識別子を供給することを特徴とする請求項３１の電子装置。
【請求項３６】
前記電子装置の識別子を供給する手段が、前記識別子の供給にＲＦ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ）信号を利用することを特徴とする請求項３５の電子装置。
【請求項３７】
前記電子装置の識別子を供給する手段が、前記識別子の供給にマイクロ波信号を利用することを特徴とする、請求項３６の電子装置。
【請求項３８】
前記電気通信システムが地上通信線通信システムであり、
前記電子装置の識別子を供給する手段が、該地上通信線電気通信システムを介して識別子を供給することを特徴とする、請求項３１の電子装置。
【請求項３９】
前記地上通信線通信システムが、電話回線を利用するシステムであることを特徴とする、請求項３８の電子装置。
【請求項４０】
前記地上通信線通信システムが、ケーブル回線を利用するケーブルテレビジョンネットワークであることを特徴とする、請求項３８の電子装置。
【請求項４１】
前記電子装置が、ハードドライブを有するコンピュータであることを特徴とする請求項３１の電子装置。
【請求項４２】
前記電気通信インタフェースがモデムであることを特徴とする、請求項３１の電子装置。
【請求項４３】
ホストシステムと接続された電気通信システムと、該電気通信システムとの接続に使用され該電気通信システム内で固有のアドレスを有する電気通信インタフェースとを備え、前記電気通信インタフェースに接続し得る電子装置にエージェントを組み込むことにより、該電子装置の概略位置の特定を補助するシステムであって、
前記電子装置内の領域であって、前記電子装置が常態で使用されているときにはユーザが前記領域にアクセスすることができず、且つ、前記電子装置が常態で使用されているときにはユーザが前記領域内の対象を検知あるいは無効化することができない領域に備えられたエージェントが、
前記電子装置を、
外部から入力される操作と無関係に、前記電気通信インタフェースを介して当該電子装置と前記電気通信システムの間で前記ホストシステムとの通信用インタフェースを確立する手段、
前記ホストシステムに当該電子装置の識別子を供給することにより前記ホストシステムによる当該電子装置の識別を可能にする手段、および
前記ホストシステムが、前記電子装置が接続されている電気通信インタフェースの前記固有アドレスを取得できるように、前記ホストシステムと通信する手段として機能させ、
前記ホストシステムが、
前記電子装置から該電子装置に固有の識別子を受信することにより該電子装置を識別する手段と、
前記受信した識別子を、紛失したあるいは盗まれた電子装置のリストと比較することにより、該電子装置が紛失したもしくは盗まれた装置か否かを判定する手段と、
前記電子装置が接続された前記電気通信インタフェースの固有アドレスを受信する手段とを備えることにより、前記電子装置の概略位置の特定を補助するシステム。
【請求項４４】
ホストシステムと接続された電気通信システムであって、該電気通信システムとの接続に使用され該電気通信システムの中で固有の固有アドレスを有する電気通信インタフェースを備えた電気通信システムにおいて、前記電気通信インタフェースに接続し得る少なくとも１つの電子装置にエージェントを組み込むことにより該電子装置の概略位置の特定を補助する方法であって、
前記エージェントが、
ユーザによる前記エージェントへのアクセスおよび前記エージェントの検知を防止する回避メソッドの呼び出しにより、該エージェントが検知され無効化されることを阻止するものであり、
前記電子装置に、外部から入力される操作と無関係に、
該電気通信インタフェースを介して当該電子装置と前記電気通信システムの間で前記ホストシステムとの通信用インタフェースを確立する処理と、
前記ホストシステムに当該電子装置の識別子を供給することにより前記ホストシステムによる当該電子装置の識別を可能にする処理とを実行させ、
前記ホストシステムが、前記電子装置が接続されている電気通信インタフェースの前記固有アドレスを受信することにより、前記電子装置の概略位置の特定を補助する方法。
【請求項４５】
前記電子装置が、ハードドライブを有するコンピュータであり、前記回避メソッドが、前記電子装置に、前記ハードドライブ上の前記エージェントが配置された位置からの読み出しおよび該位置への書き込みを回避するための処理を実行させることを特徴とする、請求項４４の方法。
【請求項４６】
ホストシステムと接続された電気通信システムであって、該電気通信システムとの接続に使用され該電気通信システムの中で固有の固有アドレスを有する電気通信インタフェースを備えた電気通信システムにおいて、前記電気通信インタフェースに接続し得る少なくとも１つの電子装置にエージェントを組み込むことにより該電子装置の概略位置の特定を補助する方法であって、
前記エージェントが、
前記電子装置に、外部から入力される操作と無関係に、
該電気通信インタフェースを介して当該電子装置と前記電気通信システムの間で前記ホストシステムとの通信用インタフェースを確立する処理と、
前記ホストシステムに当該電子装置の識別子を供給することにより前記ホストシステムによる当該電子装置の識別を可能にする処理とを実行させ、
前記ホストシステムが、
前記電子装置が接続されている電気通信インタフェースの前記固有アドレスを受信し、受信した固有アドレスを遠隔地にある他のシステムに送信することにより、
前記電子装置の概略位置の特定を補助する方法。
【請求項４７】
前記ホストシステムが、前記固有アドレスの送信に電子メールを使用することを特徴とする、請求項４６の方法。
【請求項４８】
前記ホストシステムが、前記固有アドレスの送信にファクシミリを使用することを特徴とする、請求項４６の方法。
【請求項４９】
前記ホストシステムが、前記固有アドレスの送信に電話回線を使用することを特徴とする、請求項４６の方法。
【請求項５０】
前記ホストシステムが、前記固有アドレスの送信にＲＦ信号を使用することを特徴とする、請求項４６の方法。
【発明の詳細な説明】
発明の背景
ラップトップコンピュータ及びセルラ電話のような多数の電子装置は、さらにコンパクトになり、携帯性に優れてきている。このような携帯性はユーザに非常に便利であるが、盗まれてしまう危険が増大する。これらの電子装置は、しばしば非常に高価であり、紛失し易くまた盗まれ易い。
これまで、紛失したあるいは盗まれたいろいろな種類の品物を取り戻すための手段を装備する試みがなされている。最も簡単な方式は、所有者の名前及び住所、あるいは自動車運転免許証番号のような他のＩＤで品物を特徴づけるものである。品物が正直な人に保管されているならば、所有者を見つけることができる。しかしながら、この方式は、装置上の可視マーキングを取り除いてしまうような盗人を思いとどまらせはしない。
パスワード保護方式は、盗みをやめさせるかあるいは品物を取り戻す点においてはっきりしない評価がある。データは盗みから保護することができるけれども、コンピュータハードウェアは見つけだすことも取り戻すこともできない。品物に無線送信機をつける別の方式が存在している。これは、自動車盗難防止装置に関連して行われている。警察あるいは商業団体は、適用可能な無線周波数を監視し、盗難車を探す努力をする。この方法は、セルラ電話あるいはラップトップコンピュータのようなより小さい品物には適していない。まず第一に、中に送信機を設置しようとしてこのような装置を分解することは不便なことである。第二に、このような送信機を取り付けるのに使用可能な便利な空間はあり得ない。さらに、指向性アンテナ等を含む多少精巧な監視装置が、無線送信源を追跡するのに必要とされる。
したがって、本発明の目的は、より小さい紛失したあるいは盗まれた物体、特にラップトップコンピュータ、セルラ電話、デスクトップコンピュータ及び他の小さい、ポータブル電子装置、あるいは高価なホーム・オフィス電子装置を追跡あるいは探索する改良された手段を提供することにある。本発明の目的は、関連装置の分解あるいは物理的変更を行うことなく設置することができるこのような電子装置を追跡するための改良された手段を提供することにある。
本発明の他の目的は、紛失したあるいは盗まれた品物を探索する改良された手段を提供することにあり、このような手段が許可されていないユーザによって使用不能にされる危険を減らすために、この手段は許可されていないユーザから隠されている。
本発明のさらに他の目的は、手段を使用不能にする、許可されていないユーザによる試みを積極的に妨害するような、紛失したあるいは盗まれた品物を探索する改良された手段を提供することにある。
本発明のさらに他の目的は、紛失したあるいは盗まれた品物を安価に、確実に探索する改良された手段を提供することにある。
本発明は、ＲＯＭ装置、ハードディスク等のような既存のメモリ装置上でプログラム化することができる小型コンピュータ、セルラ電話等用のセキュリティ装置をもたらすことによって、従来技術に関連する欠点を解決している。したがって、盗人には物理的変更は全然必要ないかあるいは明らかでない。セキュリティ装置の存在は、完全に隠され、たとえその存在の可能性が疑われるとしても、セキュリティ装置は容易に探索あるいは使用不能にすることができない。本発明による装置及び方法は、非常に費用効率が高く、比較的数少ない監視装置の、ソフトウェアあるいはハードウェア及び動作に対し比較的安価な修正を必要とする。
発明の概要
本発明は、ポータブルコンピュータのような紛失したあるいは盗まれた電子装置を取り戻すセキュリティ装置及び方法に関するものである。本発明は、電子装置が、電子装置上に予め規定されたタスクセットを伴うインテリジェントエージェントを移植することによって調査あるいは監視することができるようにする。本エージェントは、ロケーションを追跡し、シリアル番号を識別し、かつそのロケーションをエンドユーザ／所有者に電子的に通知することを含む多数のサービスができる予め選択されたホスト監視システムと通信する。本エージェントは、電子装置のソフトウェア／ファームウェア／ハードウェア内部に隠され、本装置の規則的動作を妨害することなしに作動する。本エージェントは、許可されていないユーザによる探索を回避し、許可されていないユーザによるエージェントの機能を無効にする試みを妨害するように設計されている。
本発明の一つの態様によれば、一体セキュリティシステムを装備した電子装置がある。セキュリティシステムは、離隔された時間間隔で遠隔局に信号を送信する手段を含んでいる。本信号は本装置の識別子を識別することを含んでいる。好ましくは、信号を送信する手段は、電気通信システムに接続できる電気通信インタフェースと、予め選択された電気通信番号をダイヤルする手段とを含んでいる。遠隔局は前記予め選択された電気通信番号を有する電気通信受信機を含んでいる。
電子装置がコンピュータである場合、信号を送信する手段は、予め選択された電気通信番号をダイヤルし、識別子を送信するように電気通信インタフェースに信号を供給する手段を含んでいる。電気通信インタフェースはモデムを含むことができる。信号を供給する手段はコンピュータ上でプログラム化されたセキュリティソフトウェアを含むことができる。
エージェントセキュリティシステムは、ハードディスクのブートセクタ上あるいはその代わりに、ＩＯ．ＳＹＳ、ＭＳＤＯＳ．ＳＹＳ、ＩＢＭＢＩＯ．ＣＯＭあるいはＩＢＭＤＯＳ．ＣＯＭのような隠しシステムファイル上に記録することができる。
本発明の他の態様によれば、紛失したあるいは盗まれた電子装置を追跡する方法が提供され、それによって電気通信インタフェースは第１の電気通信局で電気通信システムに接続できる。本方法は、電気通信インタフェースに信号を送信する手段を電子装置に装備することを含んでいる。本手段は、遠隔電気通信局にダイヤルする電気通信インタフェースに第１の信号を送信するようにプログラムによって指令される。これらの第１の信号は送信コンピュータの符号化ＩＤ（シリアル番号）を含んでいる。したがって、電気通信インタフェースは、目的の受信コンピュータに対応する遠隔電気通信局にダイヤルする。リング信号を検出すると同時に、遠隔コンピュータは、発呼者電話番号及び電話会社からの送信コンピュータＩＤを検索する。遠隔コンピュータは送信コンピュータのシリアル番号を復号化し、それと紛失したあるいは盗まれたコンピュータのシリアル番号の予め規定されたリストと比較する。送信コンピュータが予め規定されたリストにあるならば、呼び出しが応答されるだけである。
他の実施例では、遠隔コンピュータがリングに応答するならば、信号を送信する手段は電気通信インタフェースに第２の信号を自動的に送信し、電機通信インタフェースは、本装置のための識別子並びに任意の他の関連情報を識別する遠隔電気通信局に送信する。
本発明の他の態様によれば、一連の逐次ダイヤル番号の一部を使って送信コンピュータのシリアル番号を符号化する方法が提供されている。本方法では、ダイヤル番号シーケンス内の所定のディジットはシリアル番号のディジットの中の一つに対応する。符号化信号内の直前のディジットは、所定のディジットが示すシリアル番号シーケンス内のどのディジットかを示している。
【図面の簡単な説明】
これらの他の目的及び利点は、下記の詳細な説明及び添付図面を参照することによって明かになる。
図１は、本発明の教示による電子装置追跡システムの機能ブロック図である。
図２は、本発明の具体的な実施例を示す目的のための図１の簡略図である。
図２Ａは、オペレーティングシステム及びエージェントが同時に起動し、実行することができる処理のフローチャートである。
図２Ｂは、ホスト識別・フィルタリングサブシステムがエージェントからの不必要な呼び出しを識別し、取り除く処理のフローチャートである。図２Ｃは、ホストコンピュータ内部に含まれるホスト処理、監査・通信サブシステムがエージェントとデータを交換する処理のフローチャートである。
図２Ｄは、ホストコンピュータ内部に含まれるホスト通知サブシステムが監視装置の状態をエンドユーザに通知する処理のフローチャートである。
図３は、パーソナルコンピュータのブートアッププロセスを、エージェントセキュリティシステムをロードするポイントの候補とともに示したフローチャートである。
図３Ａは、エージェントセキュリティシステムのローディング開始方法を示すフローチャートで、オペレーティングシステムブートセクタがエージェントとともにロードされる形態を示している。
図３Ｂは、隠しシステムファイルＩＯ．ＳＹＳあるいはＩＢＭＢＩＯ．ＣＯＭがエージェントをロードするように変更された形態を示す図３Ａと同様なフローチャートである。
図３Ｃは、分割ブートセクタからエージェントがロードされる形態を示す図３Ａ及び図３Ｂと同様なフローチャートである。
図３Ｄは、エージェントセキュリティシステムがＲＯＭ  ＢＩＯＳ方式である図３Ｂ及び図３Ｃと同様なフローチャートである。
図３Ｆ、図３Ｇは、本発明の実施例によるエージェントが組み込まれた装置の処理を示すフローチャートである。
図３Ｈはコンピュータディスクの物理的構造の概略図である。
図４は、符号化／復号化法を示す概略図で、監視サービスが６０の電話番号を使用する襟を示す図である。
図４Ａは、符号化／復号化法を示す概略図で、監視サービスが３００の電話番号を使用する例を示す図である。
好適な実施例の説明
［システムの概観］
図１に示すように、電子製品監視システムは３つの主要部分（１）エージェントを実装した任意の電子装置からなるクライアント装置Ａ、（２）例えば交換通信システム、ケーブルネットワーク、無線／マイクロ波信号を使ったシステムなどの電気通信リンクＢ及び、（３）クライアント装置Ａとホスト監視システムＣとの間の通信制御するホスト監視システムＣを有する。
図１において、クライアント装置は、ケーブルビジョン装置Ａ２、ラップトップコンピュータＡ３、または、他のタイプの電子装置Ａ４などである。ただし、説明し易くするために、クライアント装置は、モデムＭに添付されたコンピュータＡ１からなるものとする。ホスト監視システムＣは、例えば共通電話回線Ｌ１のような適当な２方向媒体を介して、クライアントコンピュータ１０に対しでデータパケットを送信および受信する。電話回線Ｌ１は、公衆交換機Ｂ１（電話会社）を介してクライアント装置をホスト監視システムＣ、ひいては、ホストコンピュータ３に結合する。ホスト監視システムＣは、例えば電子郵便Ｎ１、ファクシミリＮ２、電話Ｎ３、または、ポケットベルＮ４のような適当な通信手段を介して、クライアント装置Ａの状態を、該当する加入者Ｃ３（所有者Ｏ、法的実施機関、または、監視会社）に通知する。ホスト監視システムＣは、更に、入来コールＣ１を識別およびフィルタリングする機能と、処理、監査、および、通信機能Ｃ２を提供する。
本発明の別の実施例において、ケーブルビジョン装置Ａ２は、ケーブルＬ２を介してケーブルビジョンネットワークＢ２に接続される。このケーブルＬ２は、ケーブルビジョンネットワークＬ２を、更に、ホスト監視システムに接続する。
本発明の別の実施例において、ラップトプコンピュータＡ３は、ＲＦ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ）伝送Ｌ３を介して、無線塔Ｂ３に接続される。これらのＲＦ伝送は、ホスト監視システムＣにおける衛星アンテナＳによって受信される。
本発明の更に別の実施例において、電子装置Ａ４は、マイクロ波信号Ｌ４を介して衛星Ｂ４へ接続される。マイクロ波信号Ｌ４は、更に、衛星Ｂ４を、ホスト監視システムＣにおける衛星アンテナへ接続する。
図２において、ホスト監視システムＣは、音声ボード２、ホスト監視コンピュータ３、ハードディスクコントローラ４、ハードディスク５、ＣＲＴ  ６、キーボード７、及び、プリンタ８を有する。ホスト監視コンピュータ３は、例えばＣＲＴモニタ６、キーボード７、及び、プリンタ８のような適当なディスプレイ装置に結合される。キーボード７は、オペレータがホスト監視システムＣと対話することを可能にする。例えば、オペレータは、既にシステム内へ呼び込まれているクライアントログファイルの印刷コマンドを入力するためにキーボード７を使用できる。ホストコンピュータ３は、ＩＢＭパーソナルコンピュータとして図示されている。ＭｉｃｒｏＳｏｆｔによるＶｉｓｕａｌ  Ｃ＋＋としてのホスト監視システムＣ用ソースコードは、付録として添付される。
電話回線１は、電話回線１を介して伝送された発呼者ＩＤ及びダイヤルされた番号両方の可聴音を受け取って認識するように適応された音声ボード２によってコンピュータ３に接続される。クライアントコンピュータ１０は、直列ポート９ａを介してモデム９に接続される。ホストコンピュータ３は、直列ポート２ａを介して音声ボード２に接続される。モデム９及び音声ボード２は従来の電話システムに従い公衆交換機９ｂを介して経路を決める電話回線１に接続される。コンピュータ１０とモデム９は第１の電気通信ステーションを形成し、他方、コンピュータ３と音声ボード２は第２の、或いは、遠隔電気通信システムを形成する。ホスト監視システムＣは、クライアントコンピュータ１０に対して、データパケットを送信および受信する。
呼出信号は、音声ボードへの入力として、電話回線１で受信される。本発明の実施例において、音声ボード２は、Ｄｉａｌｏｇｉｃ社製ＤＩＤ／１２０、ＤＴＩ／２１１、及び、Ｄ／１２Ｘ音声ボードであっても差し支えない。音声ボード２は、データバス２ａを介してホストコンピュータ３に結合される。音声ボード２は、呼出信号を識別するために作動する。即ち、この音声ボードは、発呼者ＩＤ及びダイヤルされた番号を受信し、これらを対応するディジタル信号に変換する。ホストコンピュータ３は、ハードディスク５に記憶されているリストに対して比較するためにこれらの信号を使用する。
本発明の実施例において、ハードディスクコントローラ４は、ハードディスクコントローラと呼ばれるＳｅａｇａｔｅ  Ｔｅｃｈ製メモリ制御ボードであっても差し支えない。ハードディスクコントローラ４は、ＳＴ−２５１と呼ばれるＳｅａｇａｔｅ  Ｔｅｃｈ製のハードディスクメモリ５を制御するために特に適切である。
エージェントは、ハードウェア、ソフトウェア、または、ファームウェアにインストールされる常駐プログラムである。エージェントのインストール方法は、図３Ａ、３Ｂ、３Ｃ、及び、３Ｄに、詳細に示す。エージェントは、インストールされると、所定期間が経過した後において或る所定の状態が発生した場合に、そのアイデンティティ及びそのロケーションをホストに報告する。これについては、図２Ａにおいて、更に説明する。クライアントソースコードは、付録のＢｏｒｌａｎｄによるＴａｚａｍアセンブラコードに記載されている。
［エージェントのインストールとロード］
エージェントは、コンピュータのオペレーティングシステムの一般的なブートアップシーケンスに際してインストールされる。図３は、一般的なパーソナルコンピュータ用のブートアッププロセスを示す。ブートアッププロセスの詳細については、付録Ｉにおいて検討する。本発明は、現在入手可能な、或いは、適当な修正を施して市販される他のタイプのコンピュータ及び電子装置に適用できることを理解されたい。以下に説明する本発明の実施例は、例えばクライアントコンピュータ１０のようなポータブルコンピュータにセキュリティソフトウェアをインストールするプロセスを示す。ソフトウェアは、一旦インストールすると検出不可能な状態に保持されなければならないので、インストールの方法は非常に重要である。更に、ソフトウェアは、できる限り消去困難でなければならない。要するに、本発明は、例えばＭＳ−ＤＯＳのようなオペレーティングシステムに隠れた状態に保持されるようにソフトウェアをインストールすることにより、これらの目的を達成する。ディスクブーツに際してエージェントセキュリティシステムをインストールする３つの代替的な方法を、それぞれ、図３Ａから３Ｃまでに示す。従来のブートアップの方法については、付録Ｉに詳細に示す。ＲＯＭを介してインストールする第４の代替的方法は図３Ｄに示す。同様に、システムは、ＭＳ．ＳＹＳ、または、ＩＢＭＤＯＳ．ＣＯＭによってもインストール出来るが、これらの方法は一層困難であり、以下に説明する３つの代替的方法ほどは好ましくない。ローディングプログラムＴＥＮＤＥＲ（付録に更に説明する）は、これらの代替的なインストール法の１つ又は複数を用いてエージェントをインストールするために用いることが出来る。従って、エージェントは様々なロケーションにインストール可能であり、それによって、第２および第３のエージェントによって第１のエージェントをバックアップサポートすることが出来る。クライアント装置にエージェントをインストールすることの出来る３つのロケーションを次に示す。
１．オペレーティングシステムのブートセクタ  −  図３Ａ参照。
２．例えばＭＳ−ＤＯＳ用ＩＯ．ＳＹＳ、または、ＰＣ−ＤＯＳ用ＩＢＭＢＩＯ．ＣＯＭのような隠れたシステムファイル。  −  図３Ｂ参照。
３．分割ブートセクタ  −  図３Ｃ参照。
オペレーティングシステムのブートセクタにあるエージェントをロードするためのエージェントロードシーケンスを図３Ａに示す。コンピュータ１０をパワーオンすると、ローディングシーケンスが始まる６４。当該技術分野においてよく知られているように、コンピュータ１０は、全ての構成要素が適切に作動していることを確かめるための初期テストルーチンを実施する。実例として組み込まれたプログラムは、ＩＢＭ−ＰＣ互換可能電源投入時自己テスト（ＰＯＳＴ：ポスト）ルーチンである。分割ブートセクタがロードされる６６。次に、インストールされたエージェントを有するオペレーティングシステムブートセクタがロードされる６７。エージェントの透明性を維持するために、ＣＰＵレジスタ（コンピュータの現状にの対応する）がセーブされる６８。エージェントをインストールする前に、遠隔手順ロード（ＲＰＬ）シグネチャのチェックが行われる６９。シグネチャが在れば、それによって、エージェントが既にメモリ内に在ることがわかるので、この場合エージェントは再ロードされない。一方、ＲＰＬシグネチャが無い場合には、エージェントをロードする準備が行われる。最初に、従来のメモリの一番上に、エージェントのためのスペースが確保される７０。次に、他のプログラムとの通信を可能にするプロセス間通信割込み（２Ｆｈ）がフックされる７１。ディスク入力／出力ハンドラーである割込み１３ｈがフックされる７２。旧タイマ割込みがセーブされ、新フックタイマ割込みが所定場所に置かれる７３。この段階において、システムの透明性を維持するために、ＣＰＵレジスタが復元される７４。もとのオペレーティングシステムブートセクタがロードされる７５。もとのオペレーティングシステムは、エージェントを実装できるように予め移動済みである。最終的に、オペレーティングシステムがロードされ７６、そして、再びランする７７。
図３Ｂにおいて、例えばＭＳ−ＤＯＳ用ＩＯ．ＳＹＳ又はＰＣ−ＤＯＳ用ＩＢＭＢＩＯ．ＣＯＭのような、隠れたシステムファイルからエージェントをロードするためのエージェントローディングシーケンス７８−９１を示す。このシーケンスは、オペレーティングシステムブートセクタについて説明した場合に類似している。ただし、オペレーティングシステムブートセクタを用いてエージェントをロードする代りに、エージェントは、オペレーティングシステムファイル８２を用いてロードされる（修正ＩＯ．ＳＹＳ、または、ＩＢＭＢＩＯ．ＣＯＭをロードする）。
図３Ｃにおいて、分割ブートセクタにあるエージェントをロードする場合のエージェントローディングシーケンス９２−１０４を示す。このシーケンスは、オペレーティングシステムブートセクタについて既に説明した場合に類似している。ただし、オペレーティングシステムブートセクタにあるエージェントをロードする代りに、エージェントは、オペレーティングシステム分割ブートセクタにあるエージェントをロードする９４。
図３Ｄにおいて、ＲＯＭ  ＢＩＯＳを介してエージェントをロードする場合のエージェントローディングシーケンス１０５−１１６を示す。この図は、ファームウェアに関する本発明の実施例を示す。このシーケンスは、オペレーティングブートセクタについて既に説明した場合に類似している。ただし、ＣＰＵレジスタがセーブされた後で、エージェントはＲＯＭからロードされる１０７。この場合、ＲＯＭは、システムを制御し、エージェントをロードすることが出来る。一旦、ＣＰＵレジスタが復元されると１１３、最早、ＲＯＭはエージェントをロードすることが出来ない。
図２Ａは、エージェント作動サイクルのフローチャートである。このワークサイクルは、コンピュータ１０が初めて電源投入された際にエージェントがロードされ、そして、オペレーティングシステムとエージェントが同時にランする方法を示す。一旦、クライアントコンピュータ１０が電源投入されると１１、当該コンピュータは、自己テスト（ＰＯＳＴ）を実施する１２。ＰＯＳＴは、システムのハードウェアをテストし、幾つかの装置を作動のために初期化し、マスターブートレコード（ＭＢＲ）をロードする１３。ＭＢＲはエージェントサブローダによってインストールされたので、サブローダがメモリ１４にロードされ、そして、実行される。サブローダの第１のタスクは、エージェント１５をメモリにロードすることである。次にサブローダは、オペレーティングシステム（ＯＳ）をメモリ１６にロードし、そして、制御をオペレーティングシステムに戻す。この段階において、オペレーティングシステム１７とエージェント１８は同時に実行中である。
［エージェントの機能］
図２Ａにおいて、エージェントの第１のジョブは、その状態（例えば、アイデンティティ、ロケーション、及び、その他の情報）を報告するために、ホスト監視システム（ホスト）１９を呼ぶための適切なタイミングを決定することである。第２に、あらゆる常駐プログラムと同様に、エージェントは、妨害するように設計されていない限り、実行中のあらゆるアプリケーションを妨害しない。従って、エージェントは、検出されることを回避することが可能である。エージェントは、ホストを毎秒１８回コールするべきであるかどうかを決定する。エージェントは、所定の期間が経過した場合、或いは、クライアントのホストへの接触を誘発する所定の事象が発生した場合に限りホストをコールする。エージェントは、現在の日付および時刻と、次回にエージェントがホストをコールしなければならない時点に対応する日付および時刻とを比較する。ホストをコールする時点であるとエージェントが判断した場合には、エージェントは、空いている（あらゆる実行中のアプリケーションによって現在使用されていない）通信装置を発見するために、コンピュータ１０内を徹底的に探索する２０。本実施例においては、通信装置はモデム９である。エージェントが空いている装置を一切発見出来なかった場合には、ホストをコールする試みを中止し、そして、サイクルを繰返す１８。ただし、エージェントが空いている通信装置の位置を特定できた場合には、エージェントはホストをコールする２１。ホストは、クライアント１０からのコールを受信すると、エージェントの識別子を調査し、そして、接続を実施するべきか否かを決定する。ホストが当該コールを受理しない場合には、エージェントは、（所定の期間が経過した後で）次の適切な時点まで  コールバックしない１８。ホストが当該コールを受理した場合には、エージェントは、その符号化されたアイデンティティ（通し番号）、ロケーション（発呼者ＩＤ）、及び、例えば現地日付および現地時刻のようなその他のあらゆる関連情報をホストに送る２３。次に、エージェントは、当該クライアントに関する何等かのデータまたはコマンドを持っているかどうかを調べる。ホストが送信されるべきデータ又はコマンドを一切持っていない場合には、エージェントは当該コールを終了し、そして、サイクルを繰り返す１８。そうでない場合には、ホストが当該コールを終了し、そして、サイクルを繰り返す１８前に、クライアントは、データ又はコマンドをホストから受信する。この作動サイクルについては、更に詳細に、図３Ｆ及び３Ｇに示し、そして、詳細なオペレーションの節で説明する。
システムは、エージェントの存在を検知されたりエージェントの機能を無効にされたりすることを回避するための周知のメソッドを実装することにより、不認定ユーザに対しては透明な状態を維持する。エージェントがインストールされたロケーションについて読取り又は書込みを行おうとする試みが回避され、エージェントは発見を免れる。エージェントのロケーションに関して読取り試行が行われる場合には、無意味なバイトからなるデータがシステムによって生成され、ユーザに返される。エージェントのロケーションに関して書込み試行が行われる場合には、クライアントコンピュータ１０は、入力データを受け入れ、そして、書込みが成功したことをユーザに通知する。ただし、データは実際には記憶されるわけではないので、エージェントは保護される。回避メソッドのルーチンを示すソースコードは、付録のファイルＳＮＴＬＩ１３Ｖ．ＡＳＭ内に記載されている。
［エージェント作動サイクルの詳細オペレーション］
図３Ｆを参照して、エージェントセキュリティシステムが「作動可能」モード１１７、１１８にある場合、特定期間内に発生する事柄について次に説明する。
一旦、システムの電源を投入すると、毎秒１８．２回の割合でタイマ割込みが発生する。タイマ割込み１８回毎に、相補金属酸化物半導体（ＣＭＯＳ）リアルタイムクロックがアクセスされ、そして、前回のリアルタイムクロックアクセスと比較するために時刻及び日付が記憶される。日付、及び／又は、時刻が将来に向かって変化すると、時刻変位を追跡するための措置は一切講じられない。このようにして、エージェントは、ホスト１１８をコールする時刻であるかどうかを決定する。従って、現在の日付が将来に向かって遥か十分に進んでいる（ホストをコールするための日付及び時刻が過ぎている）場合には、エージェントセキュリティシステムは、その動作モードを作動可能から警戒に変更し１１９、コールが行われて、ホストサーバとのトランザクションが完成する時までコールは規則正しく試みられる。システムの時刻が日付を遡及して適用されていた場合には、これも、作動可能から警戒へのモード変更の原因となる。
図３Ｆ及び３Ｇを参照しながら、エージェントセキュリティシステムが「警戒」モードにある場合に起きる事象について、次に説明する１１９−１６１。
通信ポートが存在するかどうかを調べるためのチェックが行われる（ポートアドレス表１２０による）１１９−１２５。最初に遭遇したポートが使用中でない場合には１２３、適当な割込みハンドラーを交換し、そして、当該割込みリクエストラインのマスクを除去することにより、そのポートは動的にフックされる１２３。エラーが発生した場合には、有効なポートが発見されるか、或いは、ポートのアドレス表を使い切るまで１２５、その次のポートがチェックされる１２４。適当なクリーンアップルーチンにより、「交換された」ポートをそれらの初期状態に復元する。
通信ポートが適切に反応する場合には、システムは、ヘイズ互換可能ＡＴコマンドを発行することにより、モデムへの接続を試みる１２８。モデムが存在しない場合には、その次のポートがチェックされる１２４。モデムが、「ＯＫ」によってＡＴコマンドに応答した場合には１２９、システムは、（初期化ストリング表から１３１）モデム初期化ストリングを送ることによってモデムを初期化しようと試みる１３０、１３２。モデムが「ＯＫ」１３４によって応答しない場合には、初期化の試行が失敗したことを意味する１３５。初期化の試行が失敗した場合には、表の中のその次のストリングが試みられ１３６、そして、有効な初期化ストリングが発見されるまで１３４、または、モデム初期化ストリング表を使い切るまで１３６、これが継続される（使い切った時点において、ルーチンは数秒間遅延し、その後で、最初の初期化ストリングを使用してスタートから再び試みる１３０）。
一旦、有効で利用可能な通信ポートが発見され、そして、機能モデムがそのポートと関連することが確認された場合には、システムは、遠隔ホストサーバに電話しようと試みる１３７、１３８。
ＰＢＸ、または、スイッチボード等々はダイヤリングプレフィックスによって退出する必要がある場合もあり得るので、ダイヤルストリング表１４０はコールを試みるために用いられる。成功した場合には１４１−１４３、遠隔ホストサーバからのＣＯＮＮＥＣＴ結果コード（数値、または、文字）が、クライアントコンピュータによって受信される１４３。ホストは、信号（「Ｑｕｅｒｙ」）をクライアントコンピュータに送り、その通し番号を要求する。クライアントコンピュータが質問信号１４８を受け取らない場合には、その送信は中止され１４９、そして、サイクルが反復される１１９。クライアントコンピュータが「Ｑｕｅｒｙ」信号を受け取った場合には、通し番号が送られる１５１。この時点において、電気通信が確立し、そして、クライアントコンピュータとサーバコンピュータのトランザクションが始まる。トランザクションが成功した場合には、その状態は「作動可能」となる。成功しなければ「警戒」のままである。何等かの理由によって、「ＮＯ  ＤＩＡＬＴＯＮＥ」事象が起きた場合には１４４、遅延が発生し１４７、そして、その次のダイヤルストリングが試みられる１４１。回線が「ＢＵＳＹ」である場合には１４５、同じダイヤルストリングを用いて、再ダイヤル回数が予め決められた回数になるか、もしくは、接続に成功するか、いずれかの状態になるまで再ダイヤルが試みられる１４６。
クライアントコンピュータから遠隔ホストサーバへのトランザクションは、電話会社またはキャリヤサービスによるコンピュータ通し番号の送信を伴う１５１。「発呼者ＩＤ」は、遠隔サーバによって暗黙受信される（一般に、「ＲＩＮＧ」として公知の初期電気通信事象）。「ＣＯＮＮＥＣＴ」と呼ばれる電気通信事象に際して、遠隔ホストサーバは、事実上クライアントに通し番号を送るよう指示する「ＱＵＥＲＹ」と呼ばれるベンダー特定メッセージをエージェントセキュリティシステムを備えたクライアントに送信する１４８。この通し番号の送信１５１に対し、サーバは、通し番号を実際に受信し１５２、処理した（確認した）１５４ことを肯定する応答を返す。クライアントコンピュータは、トランザクションの開始を断念する（ポートに対して、接続を切り、クリーンアップし、フックを外し１２７、１５５、そして、「警戒」モードに戻る１５６）以前に、この通し番号を、所定回数だけ送ることを試みる１５３。所定回数試みて成功しなければ、モデムの接続が切れる１６０。必要な他のクリーンアップ（例えば、最終コールの日付を現在に変える）もここでおこなわれる１６０。最終的に、状態は「作動可能」にリセットされる１６１。
着呼コンピュータに盗難が報告されていない場合には、着呼コンピュータに関するそれ以上の対策は実行されない。ただし、遠隔ホストサーバへ伝送された通し番号が、盗難に遭ったコンピュータの現在有効なリスト上の通し番号の１つにマッチする場合には、紛失装置の回復を容易にするために、それ以上の処理が行われる。この種の処理には、紛失装置に近い現地関係当局または当該装置の所有者に、自動または手動どちらかのコールを行うことが含まれる。
［ホストコンピュータによる識別およびフィルタリング］
ホストコンピュータは、エージェントからの不必要なコールを識別し、そして、これらをフィルタリングする。図２Ｂは、ホストコンピュータ３によって実行される識別およびフィルタリングのプログラムのフローチャートである。一旦、セキュリティプログラムが実行されると２６、音声ボードは、電話回線１において呼出信号を待つ２７。呼出信号が検出されると２８、音声ボード２は、電話回線１を介して電話会社９Ｂに信号を送ることによって入来コールを確認し、発呼者ＩＤおよびダイヤルされた番号をボードに送ることを要求する。次に、音声ボードは、これらの番号が受信されるまで待つ２９、３０。
一旦、発呼者ＩＤ及びダイヤルされた番号が受信されると、これらは、ハードディスクにセーブされる３１、３２。次に、セキュリティプログラムは、クライアントコンピュータ１０の通し番号のコード化されたバージョンを提供するダイヤルされた番号３３を（コード化については後述する）ハードディスク４に記憶された通し番号のリストと比較する。一致するものがない場合には、プログラムは、クライアントコンピュータ１０が電話回線１を切るまで、クライアントコンピュータからの電話呼び出しを放置する。好ましい実施例において、クライアントコンピュータは、応答のない呼び出しが３０秒間続いた後で電話を切るようにプログラムされる。ただし、一致するものがあった場合には、セキュリティプログラムは、クライアントコンピュータからの呼び出しに対しモデム３５に接続されている適当な受信回線を割り当て、呼び出しに応答する。
［クライアントコンピュータ通し番号の符号化］
図４において、クライアントコンピュータ１０の通し番号は、クライアントコンピュータによりダイヤルされホスト３に送信された番号の一部を使ってコード化される。本発明の好ましい実施例において、クライアントコンピュータは、そのクライアントコンピュータの６数字通し番号１７０を、６組の電話番号をダイヤルすることによってホストに伝送する１７２。最初の「１」の後のダイヤルされた最初から８数字は無意味である。ダイヤルされた第９番目数字「Ｎ」１７５は、ダイヤルされた第１０番目の数字が対応する通し番号内における数字の位置を指示する。ダイヤルされた第１０番目の数字「Ｄ」は、通し番号の第Ｎ番目の数字を提供する。ホストコンピュータ３は、ダイヤルされた６組の電話番号を受信し１７２、そして、ダイヤルされた第９番目および第１０番目の数字のみを拾い出して復号する。これにより、クライアントコンピュータ通し番号は再現される１７４。
例えば、シーケンス「８００−９９６−５５１１」において、関連数字は「１１」の部分だけである。最初の「１」は、その右隣の数字（１）が通し番号の第１番目の数字であることを示す。同様に、シーケンス「８００−９９６−５５２６」において、「２」は、その右隣の数（６）が通し番号の第２番目の数であることを示す。クライアントコンピュータ１０は、その６数字通し番号をホストに伝達するために、合計６個の数をダイヤルする１７２。
通し番号をコード化するためのこの方法に適応するためには、ホスト監視システムは、６０個の異なる電話番号を取得する必要がある。６０個全ての番号の最初から８個の数字は同じでなくてはならず、最後の２数字だけが相互に異なることが必要である。第９番目の数字は、通しコード内の６個の数字に対応して「１」から「６」までの数字に限ることが必要である。ただし、最後の数字は「０」から「９」まで変化しなければならない。
図４Ａに示す代替コード化システムは、クライアントコンピュータ１０がその通し番号１８０を伝達するためには、ただ３回だけホストをコールすることが必要であるように修正することが出来る。このコード化ディング方法によれば、通し番号１８６の２つの数字は、各コール毎に伝送される。従って、ダイヤルされる第８番目の数字１８５は、通し番号１８０を構成する２数字１８６で構成される３個のパケットに対応する「１」から「３」まで変化する。ダイヤルされる第９および第１０番目の数字１８６は、「０」から「９」まで変化する。ただし、そのためには、監視システムのオペレータが３００個の異なる電話番号を取得することが必要である。
［ホスト処理、監査、及び、通信サブシステム］
図２Ｃにおいて、ホスト処理、監査、及び、通信サブシステムは、クライアントコンピュータに対して、情報を送信および受信する。図２Ｃは、ホストコンピュータ３によって実行されるホスト通信プログラムのフローチャートである。ホストコンピュータ３が電源投入されると３６、通信装置は、クライアントコンピュータ１０からの電気通信開始信号を待つように命令される３７。電気通信装置は、クライアントコンピュータと交信するセッションを開始することによって開始信号を応答する。プログラムは、先ず、クライアントコンピュータがデータパケット４０を送信中であることを立証するために、クライアントコンピュータ３９をチェックし、そして、その次に、パケットを受信する４１。次に、プログラムは、クライアントコンピュータが、ホスト４２に送信するための何等かのデータ又はコマンドを持つかどうかを判定する。持っていない場合には、セッションは終了し４３、そして、サイクルが繰り返される３７。全てのデータパケットの受信が終了すると、プログラムは、ホストがデータパケットをクライアントコンピュータに送ることを可能にする。プログラムは、データパケットを送信する準備を行い４４、そして、各パケットを送信する前に４６、送信するべきデータパケットがまだ在ることを立証する。一旦、全てのデータパケットの送信が終了すると、プログラムは、セッション終了し４３、電話を切り、そして、全サイクルを繰り返す準備をする３７。ホスト側のソースコードについては、付録のビジュアルＣ＋＋（Ｍｉｃｒｏｓｏｆｔ）コードに開示されている。
［ホスト通知サブシステム下位組織］
ホスト通知サブシステムは、エンドユーザの電子装置の状態に関してエンドユーザに通知する。図１において、例えば、電子郵便Ｎ１、ファクシミリＮ２、ボケットベルＮ４、及び、電話コールＮ３のような種々の方法を示す。図２Ｄは、ホストコンピュータ３によって実行されるホスト通知プログラムのフローチャートである。ホスト通知プログラムは、何等かの未決定通知命令または命令が有るかどうかを判定する４８。未決定の通知が有る場合には、当該情報が検索される４９。次に、プログラムは、事前に選定された好ましい通知方法を決定し５０、そして、事前選定された通知方法に基づき、発送されるべきメッセージを公式化する５１。このメッセージは、エンドユーザ５２に発送される。メッセージを発送した後で、プログラムは、全サイクルを繰り返す４７。ホスト側ソースコードは、付録のビジュアルＣ＋＋（Ｍｉｃｒｏｓｏｆｔ）コードに開示されている。
［変形案および代替案］
前述の説明は、インテル８０Ｘ８６マイクロプロセッサ又は同等製品、及び、従来のＭＳ−ＤＯＳ又はＰＣ−ＤＯＳオペレーティングシステムを備えた従来のＰＣにおいてインストールされ、そして、作動するエージェントセキュリティシステムに関する。本システムは、例えば、商標Ｍａｃｉｎｔｏｓｈの下に販売されているコンピュータを含む他のタイプのコンピュータに適合するように改変可能であることが承認される。本システムは、急速に前進する技術分野においてシステム又はコンピュータが開発されるにつれて、他のタイプのオペレーティングシステム又はコンピュータに適合するように改変可能である。
更に、前述のシステムは、物理的な変更なしに既存のコンピュータに付加されることを意図したものである。他の方法は、図３Ｄに示すようなエージェントセキュリティシステムを含むように、この種のコンピュータのＲＯＭを改変することである。セキュリティ機能を備えないで販売されているコンピュータにとっては、この種の改変は実現可能であると、一般には見なされていないが、理論上では可能である。ポータブルコンピュータ、セル型電話、または、他のこの種製品のＲＯＭに、これらの製造時に、エージェントセキュリティシステムを組み込むことの可能性は更に大きい。前記の図３Ｄは、この種の改変されたＲＯＭからシステムにロードする方法を示す。
更に、上記の説明は、コンピュータ装置が、これに接続されたモデムを備えるか、或いは、内部モデムを有するものと仮定する。将来は、電話システムがディジタル化され、モデムが必要でなくなる可能性が大きい。
更に、システムをセル型電話のＲＯＭに含ませることも可能である。この場合、プログラムは、オーディオ信号を消音し、そして、正常なスクリーンディスプレイを維持することにより、コールしていることを隠すように設計されなければならない。更に、この方法によって改変した一体構造のセル型電話、或いは、他の或る種の電気通信装置を備えたポータブルコンピュータを供給可能であることも推測できる。本発明が発表された現時点においては、電気通信分野の近未来における発展方向は明確でない。本エージェントセキュリティシステムに関する主要電気通信基準は、出伝送（有線、無線信号、その他）が交換機構によって受け取られ、そして、受信した情報を交換機構によって遠隔ステーションに送らせる情報を含むことである。現時点において、この情報は電話番号である。しかし、遠隔ステーションの他の機能は、代替交換可能通信システムによって代替可能である。
付録として添付されている項目は、（１）従来のブートアップ法に関する説明、（２）エージェントの実装の詳細、（３）ルーチンの簡単な説明、（４）クライアント側およびホスト側両方のソースコードのコピーである。ホスト側ソースコードはビジュアルＣ＋＋（ＭｉｃｒｏＳｏｆｔ）である。クライアント側ソースコードは、ＢｏｒｌａｎｄによるＴａｚａｍアセンブラコードである。
当該技術分野における熟達者であれば、以上に記述した多数の詳細事項は一例として説明したに過ぎず、そして、次に示す請求の範囲に関して解釈されるべき本発明の適用範囲を制限することを意図するものではないことが理解できるはずである。
付録Ｉ  従来のブートアップ法
コンピュータディスクの図を図３Ｈに示す。この図は、ユーザデータ開始ロケーション１６２、分割間隙１６３、ブートセクタ１６４、分割セクタ１６５、及び、分割間隙１６６を示す。
図３において、パーソナルコンピュータ（ＰＣ）のスイッチを入れると５３、コンピュータは、先ず、従来の電源投入自己テスト（ＰＯＳＴ）を実施する５４。ＲＯＭ−ＢＩＯＳロード法を用いる場合には、この時点において、エージェントはロード可能である６０。ＰＯＳＴは、全てのハードウェア構成要素がランしていること、及び、中央処理装置（ＣＰＵ）及びメモリが適切に機能していることを確認する。ＰＯＳＴが完了すると、その次のタスクは、コンピュータの等速呼出記憶装置（ＲＡＭ）にソフトウェアをロードすることである。従来と同様に、ブートプログラムを有する読取り専用記憶（ＲＯＭ）装置が用いられる。ブートプログラムは、オペレーティングシステムを構成するファイルのためのハードディスク、ディスケット、または、フロッピーディスク上の特定のロケーションを探索する。一般的なディスクを図３Ｈに示す。一旦、これらのファイルが発見されると、ＲＯＭ上のブートプログラムは、ディスクの当該部分に記憶されたデータを読取り、当該データをＲＡＭ内の特定のロケーションにコピーする。ロードされるべきディスクブートセクタの第１の部分は、図３Ｈに１６５として示される分割ブートセクタである５５。この時点において、ロード分割ブートセクタ方法を使用することが出来る６１。次に、分割ブートセクタ１６５は、ディスクから残りのブートセクタ１６４、即ち、オペレーティングシステムブートセクタ５６をロードする。この段階において、エージェントは、ロードオペレーティングシステムブートセクタ法に従ってロード可能である６２。オペレーティングシステムブートセクタ１６４は、通常、パーソナルコンピュータにおいてはＩＯ．ＳＹＳ、または、ＩＢＭコンピュータにおいてはＩＢＭＢＩＯ．ＣＯＭと称するシステムファイルをメモリにロードする５７。この段階において、エージェントは、ＩＯ．ＳＹＳ、または、ＩＢＭＭＩＯ．ＣＯＭ法に従ってロード可能である。これらのファイルの各々は、ＤＯＳ  ＤＩＲからそれを隠す特別なファイル属性によって示される。次に、ＩＯ．ＳＹＳ、または、それと同等のファイルは、従来ＭＳ−ＤＯＳシステムにおいてＭＳＤＯＳ．ＳＹＳとよばれ、そして、ＰＣ−ＤＯＳシステムに関してはＩＢＭＤＯＳ．ＣＯＭとよばれる残りのオペレーティングシステムをロードする。次に、ＡＵＴＯＥＸＥＣ．ＢＡＴが処理され、そして、ランする５８。この段階において、オペレーティングシステムはランしている５９。本発明に基づくエージェントセキュリティシステムは、ブートアッププロセスに際してロードされ、従って、オペレーティングシステムに対して透明である。
付録ＩＩ  エージェントインスタレーションの詳細
一旦、エージェントの実装を可能にするＴＥＮＤＥＲプログラムが実行され、そして、これらの代替案の１つ、２つ、または、３つによってエージェントがロードされるべきであると判断されると、システムは初期化され、そして、コンピュータメモリの現状及びプログラマによって与えられる命令に従ってエージェントセキュリティシステムをインストールする試みを開始する。ＳＮＴＬＩＮＩＴルーチンは、エージェントセキュリティシステムを初期化し、そして、発呼プログラム（ＳＵＢＬＯＡＤＲ）により、ＡＸマイクロプロセッサレジスタを介して、３つの可能なローディングオプションのうちの１つが当該ルーチンにパスされる。この場合の発呼プログラムは、既に列挙された３つのロケーションの任意の１つに、それ自体がロードされたものである。ＳＵＢＬＯＡＤＲプログラムは、ユーザ入力用生成されたコンフィギュレーションファイル（暗号化されていても差し支えない）を読取る。コンフィギュレーションファイルの妥当性は、この時点において、腐敗しているかどうかについてチェックされる。何等かの理由により、ＳＵＢＬＯＡＤＲプログラムが、コンフィギュレーションファイルを読むことができない場合には、デフォルト設定表からエージェントセキュリティシステムを初期化する。
次に、ＳＵＢＬＯＡＤＲプログラムは、「ＲＰＬ」シグネチャを調べることによって、エージェントセキュリティシステムがメモリ内に在るかどうかをチェックする。ＳＵＢＬＯＡＤＲは、アプリケーションプログラマインタフェース（ＡＰＩ）エントリーポイントをセーブし、そして、セキュリティプログラムがメモリ内に在る場合には、どのバージョンであるかを判定する。メモリ内に無い場合には、ＳＵＢＬＯＡＤＲプログラムは、ＳＮＴＬＩＮＩＴルーチン用ディスクを探索する。ＳＵＢＬＯＡＤＲプログラムのバージョンに応じて、当該プログラムはＳＮＴＬＩＮＩＴルーチンの妥当性チェックを実施可能である。このルーチンは、１６又は３２ビットの周期的冗長検査（ＣＲＣ）、チェックサム検査、または、ハッシュカウントであっても差し支えない。
ＴＥＮＤＥＲプログラムは、これらの中のいずれがＳＮＴＬＩＮＩＴコードを含むように改変されているかを知るために、分割ブートセクタ、オペレーティングシステムブートセクタ、及び、ＩＯ．ＳＹＳ（或いは、ＰＣ−ＤＯＳシステムにおけるＩＢＭＢＩＯ．ＣＯＭ）をチェックする。エージェントが代替ロケーションのうちのいずれかに既にインストール済みであるかどうかを判定するために、コンフィギュレーションファイルとの比較が行われる。既にエージェントがインストールされている場合には、ＴＥＮＤＥＲプログラムは対策を行わない。そして、このプログラムは、ユーザによって要求された改変レベル（即ち、１つ、２つ、または、３つのエリアが改変されるべきであったかどうか）を追跡する。これらのエリアの各々は、全て、他のユーザの選定済み設定の間において、当該エリアに記入されたモデム関連情報を持つ。この時点において、ＴＥＮＤＥＲプログラムは、現在のコンフィギュレーションファイルをディスクに記入する。
次に、ＴＥＮＤＥＲプログラムは、これらを検査する分割ブートセクタ、オペレーティングシステムブートセクタ、及び、ＩＯ．ＳＹＳ、或いは、ＩＢＭＢＩＯ．ＣＯＭファイルのシステムスナップショットを撮り、判定し、そして、このファイルをディスクに記入する。次に、このプログラムは、分割間の分割間隙をチェックし、有効なブートセクタ間の未使用セクタ（これらは、分割セクタ、または、オペレーティングシステムブートセクタである筈である）の個数を算定する。
分割間隙には殆ど確実に少なくとも８Ｋのスペースがある１６３。エージェントセキュリティシステムは、僅かに４Ｋだけを必要とする。ＳＮＴＬＩＮＩＴモジュールは、通常ここに記憶されている。何等かの理由により、分割間隙に十分なスペースが無いか、或いは、データエリアが物理的に使用できない場合には、ＴＥＮＤＥＲプログラムは、セクタの適当なクラスタを選定し、当該データエリアを論理的に使用不能であるとマークし、そして、当該セクタのクラスタ内にＳＮＴＬＩＮＩＴを記憶する。ＴＥＮＤＥＲプログラムは、プログラムイメージを隠すために、システムに対して属性を隠す。次に、ＴＥＮＤＥＲプログラムは、使用されたクラスタの物理的座標を算定し、そして、この情報をコンフィギュレーションファイルに記入する。この時点において、システムは進行準備が整い、そして、プログラマがどのような戦略を選定したかには無関係に、オペレーティングシステムのローディングが完了する以前にロードされる。
ウィルスがハードディスクドライブのブートセクタを再感染させる方法と同じような方法において１６４、エージェントセキュリティシステムは、本発明に基づき、コンピュータの盗難に対する保護を助けるような技術を使用する。システムタイマプログラミング及び通信プログラミングのような技術を、ウィルスの技術と結合すると、新規な技術を創造することができる。なお、クライアントからの入来コールを扱うセキュリティ会社は、クライアントからそのホストへの連続したコールの間隔を任意の間隔に設定できることは容易に理解されよう。
一般に、システムは、次に示す２つの動作モードのうちの一方のモードにある。即ち、（１）サーバに対してコール／レポートする時点まで待つ、−「作動可能モード」、及び、（２）サーバをコールするか、又は、コールしようと試みる  −  「警戒モード」である。エージェントセキュリティシステムが、作動可能モードから警戒モードに作動モードを変更する場合には、作動可能化期間を最小期間まで短縮し、その結果、エージェントは、毎秒１８回の割合で、接続に成功するまで、ホストをコールする。作動可能モードにおける作動可能化期間は、前以て決定済みであり、週数単位でなければ、日数単位であることが好ましい。作動可能化期間（連続するコールの間の時間）を短縮することは、話中信号および他の一時的エラー状態によってトランザクションの試行が排除されることを防ぐために必要である。システムは、有効なトランザクションが完了するまで、警戒モードに留まる。
ＭＳ−ＤＯＳ及びＰＣ−ＤＯＳは単一ユーザ、単一タスクオペレーティングシステムとして設計されたので、多重タスク作動を提供するためにシステムを無人で、しかも、背景において自動で実行させるために、タイマ割込みが利用される。登録された所有者は背景プロセスの存在に気付いているが、ユーザ又は潜在的な窃盗犯人のどちらも、この背景プロセスには気が付かない。
標準的なパーソナルコンピュータにおいて、定例ハウスキーピングタスクは、ユーザからの命令なしにＣＰＵによって、周期的および自動的に実施される。或る期間中作動させなかった後で、フロッピーディスクモータの電源を切るようなタスクを実施するために、毎秒１８．２回の割合でコールされるようなタイマルーチンが有る。エージェントセキュリティシステムは、このタイマルーチン内にフックする。全タイマルーチンには約５５ミリセカンドを要し、そして、エージェントセキュリティシステムは、その期間内のＣＰＵタイムの小さい部分を利用する。これは、全タイマルーチンの０．５％未満に制限される。これは、全セキュリティプログラムを実行するには不十分な時間である。従って、セキュリティプログラムは、各タイマルーチンを用いた小さいインクリメントとして実行される。セキュリティプログラムの処理は、そのプログラムが実行されていることに気づかれない程度の短い時間で行わなければならない。気づかれてしまうほどの時間を使ってしまうと、コンピュータは著しく減速され、そして、プログラムの存在が疑われ兼ねない。
直列ポート及びモデムのセットアップルーチンは、タイマ割込みによってコールされなければならない。一旦、これが行われると、使用されている直列割込みハンドラーは、クライアントとホストシステムとの間のデータ転送細目をハンドルする。一旦、システムがセットアップされると、直列ポート割込みハンドラーは、クライアントとサーバとの間で行われるトランザクションを監視するモニタとして作動するタイマ割込みと共に実施される動作の大部分を実施する。前記ハンドラは、受信バッファを分析し、必要に応じて、適切な動作を行う。システムの通信部分は、一般に１ＲＱ３またはＩＲＱ４である自身の割込みロクエスト（ＩＲＱ）回線を介して、ＣＰＵへの自身のアクセスを持つので、自身に関する出および入来データ転送をハンドルすることができる。従って、システムは、クライアントマシンとサーバとの間のデータフローをハンドルすることが出来る。
そのタイムスライスの開始に際して、タイマ割込みは、エージェントセキュリティシステムにおいて、ユーザがモデムを使用する時にセットされるフラグ、即ち、ＩｎＣｏｍＩＳＲ（通信割込みサービスルーチンにおける）フラグバイトをチェックする。フラグがセットされる場合には、発生可能なあらゆる直列通信の進行を妨害しない用に、タイマ割込みは即座に退出するので、進行中の一切のトランザクションを分裂させることがない。フラグがセットされない場合には、タイマ割込みルーチンは、エージェントセキュリティシステムがエラー状態にあるかどうかを知るためにチェックする。エラー状態にない場合には、フラグがコールしたＴｉｍｅｒＩＳＲカウントがセットされ、タイマ割込みが進行中であることを示す。
延期された実行機能ポインタは、近未来に実行されるべきルーチンをポイントするために用いられる。タイマ割込みルーチンが終了する直前に、当該ルーチンは、その次に実行されるべきルーチンをポイントする。次のタイマ割込みが発生する場合、ポイントされたルーチンが実行される。当該ルーチンがまだ実行中である期間中に、次のタイマ割込みが起きないように、ルーチンは、５５ミリセカンド未満で完了しなければならない。
ＰＣのシステムバスには通信ポートで取り付けられ、これらのポートは全てが任意装置であり、そして、最初から４つのポートは、一般に、ＣＯＭ１、ＣＯＭ２、ＣＯＭ３、ＣＯＭ４と呼ばれる。オペレーティングシステムとしてＭＳ−ＤＯＳ又はＰＣ−ＤＯＳのみを使用するＰＣにおいては、４個以上の直列ポートを使用することは一般的でない。更に、エージェントセキュリティシステムにおいては、通常の電話回線または専用電気通信回線を用いて遠隔ホストサーバをコールできるようにモデムがこれらの直列ポートの１つに接続されることが要求される。警報が発せられた場合１１８、エージェントセキュリティシステムは、利用可能な直列ポート１１９−１２２を発見することが可能であることが要求され、一旦、それが行われると、モデムが取付けられているかどうかを知るためにチェックが行われ１２８−１２９、そして、そのポートに初期化ストリングを送ることによってその初期化を試みる１３２。成功した場合には、当該システムはダイヤルトーンをチェックし、そして、遠隔ホストサーバに対して静寂なコールを行うことを試みる１４１。一旦、サーバが接続されると、クライアントマシンは、サーバとのデータトランザクションを開始しようと試み、そして、クライアントマシンは、その通し番号、及び、トランザクションの一部であることが定義されるべき他のデータを送ることができる１５１。サーバは、パリティ無し８データビット及び１ストップビットと２４００ｂｐｓで接続するように構成される。従って、クライアントは、この構成にマッチする。これは、高い接続信頼性を可能にする。
付録ＩＩＩ  ルーチンの説明
ＳＮＴＬＩＮＩＴ：
このルーチンが従来のメモリ６７にハイにロードされ、そして、実行がそれにパスされた後において、マシン状態がセーブされる６８。従来のメモリは、例えば、インテル８０Ｘ８６互換可能コンピュータ上のメモリの最初の６４０キリバイト（６５５，３６０バイト）である。このルーチンの影響を受けるレジスタ１５は、スタックにセーブされる「マシン状態のセーブ」。ここに示すスタックはＬＩＦＯ構造であり、ＬＩＦＯは、「後入れ先出し」を意味する。そこには、ＣＰＵレジスタの内容を一時的にセーブすることが可能であり、従って、内容の初期値を復元することができる。
マイクロプロセッサレジスタＡＸは、３つの値のうちの１つをＳＮＴＬＩＮＩＴルーチンへパスするために用いられる。３つの値のうちのいずれがこのルーチンにパスされるかに応じて、３つの異なる動作コースが用いられる。各動作コースは、プログラムが自身をどのようにして初期化するかを記述する。要約すれば、このルーチンは、分割ブートセクタ５５、オペレーティングシステムブートセクタ５６、または、オペレーティングシステムの入力／出力モジュール５７のいずれかからエージェントセキュリティシステムを初期化する。
マイクロプロセッサレジスタＡＸが値０を含む場合：
分割セクタ１６５がメモリにロードされる（ＳＵＢＬＯＡＤＲモジュールのブートセクタバージョンによりディスク上に重ね書きされる）。このコードの実行に際して、ＳＮＴＬＩＮＩＴがコールされる。
マイクロプロセッサレジスタＡＸが値１を含む場合：
ハードディスクのブートセクタ５５（ＳＵＢＬＯＡＤＲモジュールのブートセクタバージョンによりディスク上に重ね書きされる）がメモリにロードされる。このコードの実行に際して、ＳＮＴＬＩＮＩＴルーチンがコールされる。
マイクロプロセッサレジスタＡＸが値２を含む場合：
ＩＯ．ＳＹＳ／ＩＢＭＢＩＯ．ＣＯＭ  の第１番目のセクタ５７（ＳＵＢＬＯＡＤＲモジュールのＩＯバージョンによりディスク上に重ね書きされる）がメモリにロードされる。
次に、このルーチンは、割込み２ＦＨ用アドレスのスタートに配置される「ＲＰＬ」シグネチャ６９、８４、９６、１０８に関してチェックすることにより、それが既にメモリ内に在るかどうかを知るためにテストする。それがメモリ内に在る場合には、このルーチンは退出する７７（プログラムの１部よりも多いコピーメモリへロードすることを回避するため）。それがまだメモリ内に無い場合には、それは、割込み２ＦＨを内部ルーチンにポイント（フック）し７１、そして、割込みＥＡＨ７２を用いて同様に行う。次に、オリジナルの割込み８ベクトルを内部メモリロケーション（エージェントセキュリティシステムに対して内部）にセーブした後で、それは、割込み８をフックする。
マシンの状態が復元され７４、そして、ルーチンは、分割表およびブートセクタ実行通路のための記憶場所００００：７Ｃ００Ｈ、または、ＩＯ実行通路のための００７０：０００Ｈにジャンプすることによって退出する７５、７６。
ＳＮＴＬＡＰＩ：
このＡＰＩは、外部プログラムにより使用するためのものである。これは、次に示す３つの機能を持つ。
１．エージェントセキュリティシステムの状態を得る。（エージェントが既にインストールされるかどうかを知るためにチェックする。）
２．エージェントセキュリティシステムの状態をセットする。
３．システムの通し番号をセットする。
ＳＷＡＰＩＮＴ：
ＳｗａｐＩｎｔは、ＣＰＵレジスタＢＸにおける割込み数に関するベクトルを、レジスタペアＤＳ：ＤＩによって指し示されたロケーションに現在のベクトルを記憶した後で、ＣＰＵレジスタペアＤＳ：ＣＸによって指し示された新規なベクトルにっよって代置することにより、既存の割込みベクトルを記憶する。ＣＰＵレジスタＤＩが０を含む場合には、ＣＰＵレジスタＢＸに含まれる割込み数に関するベクトルは記憶されない。
ＤＥＬＡＹＦＵＮＣ：
これは、ハードウェアタイミング目的用に用いられる遅延機能である。このルーチンは、図３Ｆ、ブロック１２５に使用される。
ＴＩＭＥＲＩＳＲ：
割込み８ｈ／１Ｃｈは、毎秒１８．２回の割合で実施されるシステムタイマ割込みであり、そして、次に示す機能を実施するために用いられる。
１．旧システムタイマ割込みをコールする。
２．通信割込みが発生しているかどうかを知るためにチェックし、そうであれば、即座に退出する。
３．影響されたＣＰＵレジスタをセーブする。
４．内部状態エラーに関してチェックし、そうであれば、即座に退出する。
５．状態ルーチンをコールする。
６．セーブされたＣＰＵレジスタを復元する。
ＡＣＴＩＶＥＲＯＵＴＩＮＥ：
ＡｃｔｉｖｅＲｏｕｔｉｎｅは、作動可能化期間を超過したかどうかを知るためにチェックする１１８。作動化期間とは、最後の有効なセキュリティコールから経過した時間的期間を意味する。この時間的期間は、サーバへのトランザクションに際してセットされるが、最初は約７日にセットされる。
ＣＨＥＣＫＮＥＸＴ  ＰＯＲＴ：
これは、有効な直列ポートに関するチェックであり、そして、直列ポートアドレス表をチェックし１２０、そして、その後で、それらの機能性を保証するためにこれらをテストすること１２２に関係する。有効な直列ポートが発見出来ない場合には、睡眠状態が入力される１２５。覚醒すると、このルーチンは繰り返される１１９。
ＤＥＬＡＹＬＯＯＰ：
この遅延は、話中信号、又は、発信音無し、及び、通信リンクに影響する可能性のある他の問題に起因する通信遅延のために用いられる。
ＰＯＲＴＦＩＮＤＩＮＩＴ：
この手順は、初期化するための有効な直列ポートの探求に際して以前に説明したＣＨＥＣＫＮＥＸＴＰＯＲＴ機能をコールする１１８、１１９。有効な直列ポートを発見した場合には、ポートアドレス、及び、その対応する割込みベクトルを記憶する。
ＰＯＲＴＦＩＮＤ：
これは、現在の直列ポートアドレスと関連した汎用非同期受信機送信機（ＵＡＲＴ）内のレジスタを動的にテストすることにより直列通信ポートが使用中であるかどうかを知るためのチェック１２３である。これは、特に、ＵＡＲＴの割込み作動化レジスタをテストする。このＵＡＲＴレジスタは、ＣＰＵのＡＬレジスタへ読取られ、そして、いずれかのビットがセットされると（論理１）、ポートは使用中であり、そうでない場合には、ポートは使われていない。これは、更に、ＵＡＲＴ内のモデム制御レジスタの割込み作動化ビットをテストする。ビットがセットされない場合には（論理１）、ポートは使用中でなく、従って、使用可能である。
有効なポートが見つかるか１２３、或いは、ルーチンが睡眠に行く１２５までポート表内の各直列ポートをチェックする。直列ポートが発見された場合には１２３、ルーチンは、システムＢＩＯＳを用いてＵＡＲＴを初期化するかどうかを決定する。１４Ｈルーチンに割込むか、または、このルーチンをバイパスすることにより、ＵＡＲＴレジスタを直接プログラムする。このプロセス期間中にエラーが発生した場合には、ルーチンから退出し、そして、ＣＲＥＣＫＮＥＸＴ  ＰＯＲＴが呼び出される。
直列ポートが、事前に定義されたビットレート、パリティ、ワードサイズ、ストップビットの個数等への初期化に成功した場合には１２８、１２９、ＵＡＲＴのあらゆる未決定エラーがクリアされる。直列ポートバッファがフラッシュされる（空になる）と、従って、旧データが２度目に選出される機会が失われる。割込み被駆動通信が未だセットアップされなかったので、タイマ割込みが各クロックチックをチェックする状態フラグがクリアされる。該当する割込み数が選定され、そして、旧割込みベクトルは、ＳＷＡＰＩＮＴをコールすることにより、新割込みベクトルと交換される。状態ＲＴＳ（送信要請）、及び、ＤＴＲ（データ端末準備完了）は、ＵＡＲＴにおいて使用可能にされる。次に、８２５９ＰＩＣのマスクが除去され、ＵＡＲＴにおける割込みが使用可能にされ、そして、ＣＰＵのためのハードウェア割込みが使用可能にされる。そして、このルーチンは退出する。
ＭＯＤＥＭＦＩＮＤＤＥＬＡＹ：
この手順は、ＭＯＤＥＭＦＩＮＤＩＮＩＴルーチンをポイントするために［状態-ルーチン］機能ポインタをセットし、次の割込みまで実行を遅延させる。
ＭＯＤＥＭＦＩＮＤＩＮＩＴ：
この定例ルーチンは、モデムに送るために、ストリングを指し示す、そして、ＣＯＭＴＲＡＮＳＩＮＩＴ定例ルーチンを呼ぶ。
ＭＯＤＥＭＩＮＩＴＩＮＩＴ：
この手順は、初期化ストリング１３１のテーブル表からの適切な初期化ストリングによってモデム１３０を初期化しようと試み、そして、モデムが初期化されるか、或いは、表の中にそれ以上初期化ストリングが無いか、どちらかになるまで、試みる。ＣＯＭＴＲＡＮＳＩＮＩＴルーチンは、この手順内からコールされる１３２−１３６。
ＭＯＤＥＭＩＮＩＴ：
この手順は、伝送状態をチェックし、そして、ＣＯＭＴＲＡＮＳ及びＣＯＭＴＲＡＮＳＣＨＥＣＫルーチン１３２をコールすることにより入来データについてチェックする１３２。この手順は、その次の当該ルーチンを指し示すジャンプ表にジャンプすることにより終了する。
ＭＯＤＥＭＣＡＬＬＩＮＩＴ：
このルーチンは、ダイヤルストリング表から１４０、電話番号（及び、必要に応じて該当するプレフィックス）を選定することにより１３９、コールしようと試みる１３７、１３８。コールが完了するか、又は、表の中に試行しようとする初期化ストリングがそれ以上無くなるまで、このように継続される。コールすることが出来なくなった場合１４４、ＣＬＥＡＮＵＰＲＯＵＴＩＮＥ及びＥＲＲＯＲＲＯＵＴＩＮＥ手順が、その次の状態（割込み８システムタイマチック）の期間中、実行されるはずである１５５。
ＭＯＤＥＭＣＡＬＬＩＮＩＴ２：
このルーチンは、伝送の状態をチェックし、それが完全であれば、終了する。この手順は、ＭＯＤＥＭＣＡＬＬＩＮＩＴルーチン内からコールされる。これは、結果的に、ＭＯＤＥＭＣＡＬＬ手順をコールする。
ＭＯＤＥＭＣＡＬＬ：
このルーチンは、伝送状態をチェックし、それが不完全であれば、終了する。更に、これは、データ受信されたかどうかを知るために、チェックする。
ＭＯＤＥＭＣＯＮＮＥＣＴＩＮＩＴ：
この手順は、（通信リンクのもう一方の端部において）ホストサーバからの質問を待ち１４８、そして、コンピュータの通し番号を送る１５１。コールすることが出来なかった場合には、その次の状態（割込み８システムタイマチック）の期間中、ＣＬＥＡＮＵＰＲＯＵＴＩＮＥ及びＥＲＲＯＲＲＯＵＴＩＮＥ手順が実行されるはずである１５５。
ＭＯＤＥＭＣＯＮＮＥＣＴ：
このルーチンは、伝送状態をチェックし、伝送が不完全である場合には、終了する。
ＣＬＥＡＮＵＰＲＯＵＴＩＮＥ：
このルーチンは、既知状態（ＡＣＴＩＶＥ）に戻すために、エージェントセキュリティシステムをリセットし１５５、１５６（ソースコードにおいてはＳｅｎｔｉｎｅｌとして参照されることもある）、伝送状態フラグをゼロ化し、ＵＡＲＴバッファをフラッシュする。次に、これは、全ての割込みを使用不可能にし、ＳＷＡＰＩＮＴ手順を介して旧通信割込みサービスルーチンを復元する。次に、これは、状態ルーチン機能ポインタをＣＬＥＡＮＵＰＲＯＵＴＩＮＥ（その次の割込み８期間中リムであるはず）にセットする。
ＥＲＲＯＲＲＯＵＴＩＮＥ：
エージェントセキュリティシステム状態は、ＳＮＴＬ  ＳＴＡＴＥＥＲＲＯＲ（エージェントセキュリティシステムはエラー状態に置かれる）にセットされる。
ＣＯＭＩＳＲ：
エージェントセキュリティシステムに電気通信サービスを提供する目的で、システム直列通信ポートのうちの１つ（及び、割込みリクエスト回線のうちの１つ）を制御するために使用される割込みサービスルーチンである。これは、ＳＥＮＤＢＹＴＥ及びＢＵＴ  ＰＵＴＣＨＡＲ手順をコールする。これは、低レベルのデータ送信および受信が伝送期間中に起きた場合、その詳細を扱う。
ＳＥＮＤＢＹＴＥ：
この手順は、参照された直列通信ポートへ、データの中の１つのバイト（ポートアドレス含む可変変数）を送ることを試みる。このルーチンは、１４１、１５１において用いられる。
ＣＯＭＴＲＡＮＳＩＮＩＴ：
この手順は、エージェントセキュリティシステムとモデムとの間のトランザクションを初期化する。トランザクションは、ホストサーバへの電気通信リンクを介して、データの１つのストリングをモデムに送ることに関係する１５１。ホストサーバは、データのストリングを受信した後において、結果として、データの１つのストリングを、エージェントセキュリティシステムを含むクライアントマシン１５２へ送り返す。ここにおいて、次に実施すべき動作を決定するために、送り返されたストリングは、エージェントセキュリティシステムによって分析される。
ＣＯＭＴＲＡＮＳ：
この手順は、エージェントセキュリティシステムとホストサーバとの間のトランザクションの保守に関する多くの技術的詳細を扱う１２９、１３４、１３５、１４３、１４４、１４５、１５２、１５７。例えば不完全トランザクション及び停動した伝送のような誤り処理（エラーハンドリング）に関して、この手順が主として責任を負う。
ＣＯＭＴＲＡＮＳＣＨＥＣＫ：
ホストサーバとクライアントセキュリティシステムとの間の完成されたトランザクションの結果をストリング表に対してチェックする。３つの可能な結果を次に示す。
１．入来データが完全に受信されなかった場合、クライアントＣＰＵのキャリーフラグがセットされる（論理１）。
２．機能がタイムアウトし（時間的しきい値を越える）、そして、ホストサーバから受信したストリングにマッチするエージェントセキュリティシステムの内部ストリングが無い場合、クライアントＣＰＵのキャリーフラグがセットされ、そして、ＡＨレジスタがゼロ化される。
３．マッチするストリングが発見された場合、クライアントＣＰＵ上のキャリーフラグがリセットされ（ローカルＯ）、そして、ＡＬレジスタは、内部のテーブルエントリーにマッチする値を含む。
ＢＵＦ＿ＦＬＵＳＨ：
クライアントマシン（エージェントセキュリティシステムを有する）の内部直列ポート通信受信バッファをフラッシュする。
バッファは円形キューである。円形キューは、ヘッドポインタが列の周辺でテールポインタを追跡する場合においてテールポインタを実際には決して補足することのないヘッドポインタ及びテールポインタと呼ばれるポインタを有するが、そこに記憶されたデータの各バイトを処理するデータ構造である。データの１つのバイトが直列ポートによって受信されると、その次のバイトが到着する（既存のラッチされたバイトを重ね書きする）以前に、そのバイトはラッチされ、そして、バッファ（この目的のために予約されているメモリの１つのエリア）内に配置されなければならない。
通信セッションがスタートする時には、全ての新規入来および出データが、未だバッファ内に残っている旧データによって汚染されないように、入力及び出力両バッファを、必ず、フラッシュすることが重要である。
ＢＵＦ＿ＧＥＴＣＨＡＲ：
内部の直列ポート通信受信バッファからキャラクタを入手し、そうすることによって、バッファからそのキャラクタを除去する。
ＢＵＦ＿ＰＵＴＣＨＡＲ：
内部の直列ポート通信受信バッファにキャラクタを加える。ヘッドポインタをインクレメントし、当該バッファが満杯であるかどうかを知るためにチェックし、そして、満杯であれば、キャリーフラグをそれにセットする。
ＢＵＦ＿ＩＮＣ＿ＰＴＲ：
クライアントＣＰＵレジスタＳＩに割り当てられたバッファポインタをインクリメントし、必要に応じて、それをラップする。
ＩＮＴ２ＦＶＥＣＴ：
エージェントセキュリティシステムのＲＡＭ常駐部分用として、従来のメモリの最上部の必要なスペースを予約する。文書化されていないＩｎｔｅｒｒｕｐｔ  ２１  Ｈ、Ｆｕｎｃｔｉｏｎ  ４ＡＨ、ＳｕｂＦｕｎｃｔｉｏｎ  ０６は、これを行うために使用される。
0004067035.tif 000002
0004067035.tif 000003
0004067035.tif 000004
0004067035.tif 000005
0004067035.tif 000006
0004067035.tif 000007
0004067035.tif 000008
0004067035.tif 000009
0004067035.tif 000010
0004067035.tif 000011
0004067035.tif 000012
0004067035.tif 000013
0004067035.tif 000014
0004067035.tif 000015
0004067035.tif 000016
0004067035.tif 000017
0004067035.tif 000018
0004067035.tif 000019
0004067035.tif 000020
0004067035.tif 000021
0004067035.tif 000022
0004067035.tif 000023
0004067035.tif 000024
0004067035.tif 000025
0004067035.tif 000026
0004067035.tif 000027
0004067035.tif 000028
0004067035.tif 000029
0004067035.tif 000030
0004067035.tif 000031
0004067035.tif 000032
0004067035.tif 000033
0004067035.tif 000034
0004067035.tif 000035
0004067035.tif 000036
0004067035.tif 000037
0004067035.tif 000038
0004067035.tif 000039
0004067035.tif 000040
0004067035.tif 000041
0004067035.tif 000042
0004067035.tif 000043
0004067035.tif 000044
0004067035.tif 000045
0004067035.tif 000046
0004067035.tif 000047
0004067035.tif 000048
0004067035.tif 000049
0004067035.tif 000050
0004067035.tif 000051
0004067035.tif 000052
0004067035.tif 000053
0004067035.tif 000054
0004067035.tif 000055
0004067035.tif 000056
0004067035.tif 000057
0004067035.tif 000058
0004067035.tif 000059
0004067035.tif 000060
0004067035.tif 000061
0004067035.tif 000062
0004067035.tif 000063
0004067035.tif 000064
0004067035.tif 000065
0004067035.tif 000066
0004067035.tif 000067
0004067035.tif 000068
0004067035.tif 000069
0004067035.tif 000070
0004067035.tif 000071
0004067035.tif 000072
0004067035.tif 000073
0004067035.tif 000074
0004067035.tif 000075
0004067035.tif 000076
0004067035.tif 000077
0004067035.tif 000078
0004067035.tif 000079
0004067035.tif 000080
0004067035.tif 000081
0004067035.tif 000082
0004067035.tif 000083
0004067035.tif 000084
0004067035.tif 000085
0004067035.tif 000086
0004067035.tif 000087
0004067035.tif 000088
0004067035.tif 000089
0004067035.tif 000090
0004067035.tif 000091
0004067035.tif 000092
0004067035.tif 000093
0004067035.tif 000094
0004067035.tif 000095
0004067035.tif 000096
0004067035.tif 000097
0004067035.tif 000098
0004067035.tif 000099
0004067035.tif 000100
0004067035.tif 000101
0004067035.tif 000102
0004067035.tif 000103
0004067035.tif 000104
0004067035.tif 000105
0004067035.tif 000106
0004067035.tif 000107
0004067035.tif 000108
0004067035.tif 000109
0004067035.tif 000110
0004067035.tif 000111
0004067035.tif 000112
0004067035.tif 000113
0004067035.tif 000114
0004067035.tif 000115
0004067035.tif 000116
0004067035.tif 000117
0004067035.tif 000118
0004067035.tif 000119
0004067035.tif 000120
0004067035.tif 000121
0004067035.tif 000122
0004067035.tif 000123
0004067035.tif 000124
0004067035.tif 000125
0004067035.tif 000126
0004067035.tif 000127
0004067035.tif 000128
0004067035.tif 000129
0004067035.tif 000130
0004067035.tif 000131
0004067035.tif 000132
0004067035.tif 000133
0004067035.tif 000134
0004067035.tif 000135
0004067035.tif 000136
0004067035.tif 000137
0004067035.tif 000138
0004067035.tif 000139
0004067035.tif 000140
0004067035.tif 000141
0004067035.tif 000142
0004067035.tif 000143
0004067035.tif 000144
0004067035.tif 000145
0004067035.tif 000146
0004067035.tif 000147
0004067035.tif 000148
0004067035.tif 000149
0004067035.tif 000150
0004067035.tif 000151
0004067035.tif 000152
0004067035.tif 000153
0004067035.tif 000154
0004067035.tif 000155
0004067035.tif 000156
0004067035.tif 000157
0004067035.tif 000158
0004067035.tif 000159
0004067035.tif 000160
0004067035.tif 000161
0004067035.tif 000162
0004067035.tif 000163
0004067035.tif 000164
0004067035.tif 000165
0004067035.tif 000166
0004067035.tif 000167
0004067035.tif 000168
0004067035.tif 000169
0004067035.tif 000170
0004067035.tif 000171
0004067035.tif 000172
0004067035.tif 000173
0004067035.tif 000174
0004067035.tif 000175
0004067035.tif 000176
0004067035.tif 000177
0004067035.tif 000178
0004067035.tif 000179
0004067035.tif 000180
0004067035.tif 000181
0004067035.tif 000182
0004067035.tif 000183
0004067035.tif 000184
0004067035.tif 000185
0004067035.tif 000186
0004067035.tif 000187
0004067035.tif 000188
0004067035.tif 000189
0004067035.tif 000190
0004067035.tif 000191
0004067035.tif 000192
0004067035.tif 000193
0004067035.tif 000194
0004067035.tif 000195
0004067035.tif 000196
0004067035.tif 000197
0004067035.tif 000198
0004067035.tif 000199
0004067035.tif 000200
0004067035.tif 000201
0004067035.tif 000202
0004067035.tif 000203
0004067035.tif 000204
0004067035.tif 000205
0004067035.tif 000206
0004067035.tif 000207
0004067035.tif 000208
0004067035.tif 000209
0004067035.tif 000210
0004067035.tif 000211
0004067035.tif 000212
0004067035.tif 000213
0004067035.tif 000214
0004067035.tif 000215
0004067035.tif 000216
0004067035.tif 000217
0004067035.tif 000218
0004067035.tif 000219
0004067035.tif 000220
0004067035.tif 000221
0004067035.tif 000222
0004067035.tif 000223
0004067035.tif 000224
0004067035.tif 000225
0004067035.tif 000226
0004067035.tif 000227
0004067035.tif 000228
0004067035.tif 000229
0004067035.tif 000230
0004067035.tif 000231
0004067035.tif 000232
0004067035.tif 000233
0004067035.tif 000234
0004067035.tif 000235
0004067035.tif 000236
0004067035.tif 000237
0004067035.tif 000238
0004067035.tif 000239
0004067035.tif 000240
0004067035.tif 000241
0004067035.tif 000242
0004067035.tif 000243
0004067035.tif 000244
0004067035.tif 000245
0004067035.tif 000246
0004067035.tif 000247
0004067035.tif 000248
0004067035.tif 000249
0004067035.tif 000250
0004067035.tif 000251
0004067035.tif 000252
0004067035.tif 000253
0004067035.tif 000254
0004067035.tif 000255
0004067035.tif 000256
0004067035.tif 000257
0004067035.tif 000258
0004067035.tif 000259
0004067035.tif 000260
0004067035.tif 000261
0004067035.tif 000262
0004067035.tif 000263
0004067035.tif 000264
0004067035.tif 000265
0004067035.tif 000266
0004067035.tif 000267
0004067035.tif 000268
0004067035.tif 000269
0004067035.tif 000270
0004067035.tif 000271
0004067035.tif 000272
0004067035.tif 000273
0004067035.tif 000274
0004067035.tif 000275
0004067035.tif 000276
0004067035.tif 000277
0004067035.tif 000278
0004067035.tif 000279
0004067035.tif 000280
0004067035.tif 000281
0004067035.tif 000282
0004067035.tif 000283
0004067035.tif 000284
0004067035.tif 000285
0004067035.tif 000286
0004067035.tif 000287
0004067035.tif 000288
0004067035.tif 000289
0004067035.tif 000290
0004067035.tif 000291
0004067035.tif 000292
0004067035.tif 000293
0004067035.tif 000294
0004067035.tif 000295
0004067035.tif 000296
0004067035.tif 000297
0004067035.tif 000298
【図１】
0004067035.tif 000299
【図２】
0004067035.tif 000300
【図２Ａ】
0004067035.tif 000301
【図２Ｂ】
0004067035.tif 000302
【図２Ｃ】
0004067035.tif 000303
【図２Ｄ】
0004067035.tif 000304
【図３】
0004067035.tif 000305
【図３Ａ】
0004067035.tif 000306
【図３Ｂ】
0004067035.tif 000307
【図３Ｃ】
0004067035.tif 000308
【図３Ｄ】
0004067035.tif 000309
【図３Ｆ（１）】
0004067035.tif 000310
【図３Ｆ（２）】
0004067035.tif 000311
【図３Ｇ（１）】
0004067035.tif 000312
【図３Ｇ（２）】
0004067035.tif 000313
【図３Ｈ】
0004067035.tif 000314
【図４】
0004067035.tif 000315
【図４Ａ】
0004067035.tif 000316