JP2500103B2 - 疑似端末リンクの確立方法及びその装置 - Google Patents

疑似端末リンクの確立方法及びその装置

Info

Publication number
JP2500103B2
JP2500103B2 JP5319497A JP31949793A JP2500103B2 JP 2500103 B2 JP2500103 B2 JP 2500103B2 JP 5319497 A JP5319497 A JP 5319497A JP 31949793 A JP31949793 A JP 31949793A JP 2500103 B2 JP2500103 B2 JP 2500103B2
Authority
JP
Japan
Prior art keywords
pseudo
file
terminal
device driver
pty
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
JP5319497A
Other languages
English (en)
Other versions
JPH06243065A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06243065A publication Critical patent/JPH06243065A/ja
Application granted granted Critical
Publication of JP2500103B2 publication Critical patent/JP2500103B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、広くはコンピュータ・
システムのセキュリティを図る装置及びその方法に関
し、特に、疑似端末リンクを用いるコンピュータ・アプ
リケーション・プログラムに対するアクセスのセキュリ
ティを確立するための装置及びその方法に関連する。
【0002】
【従来の技術】オペレーティング・システムである「U
NIX」は、一般的にコンピュータのオペレーティング
・システムのファミリである。オペレーティング・シス
テムUNIXは、コンピュータ・システムのためのタス
ク分配、ファイル・システム、及び入出力(I/O)制
御を行う。しかしながら、あるコンピュータ・オペレー
ティング・システムは、UNIXの命令構造に類似の命
令構造を利用しているが、UNIXとして認知されな
い、即ちそれらのオペレーティング・システムは「UN
IX類似」のオペレーティング・システムとして知られ
ている。この点を考慮して、UNIXを基礎とするコン
ピュータ・システム、即ちUNIXオペレーティング・
システムを用いるコンピュータ・システムについての以
下の議論には、UNIXオペレーティング・システムと
同様にUNIX類似のオペレーティング・システムを用
いるコンピュータ・システムも包含されるものとする。
【0003】一般的にUNIXシステムは、階層的方法
で論理的に配置されたそのソフトウェアを有する。この
階層の中で、最下位のレベルには、デバイス・ドライバ
として知られるデバイス入出力(I/O)プログラムが
含まれ、それらはプリンタ、端末、メモリ等々のハード
ウェアと直接相互動作する。それより上のレベルには、
ファイルを記憶し且つ処理するためのファイル・システ
ムが含まれる。そして、アプリケーション・レベルとし
て知られる最上位のレベルには、オペレーティング・シ
ステムを介してハードウェアと相互動作するアプリケー
ション・プログラムが含まれる。ファイル・システム及
びデバイス・ドライバを含むオペレーティング・システ
ム全体は、普通「カーネル」と呼ばれる。ファイル・シ
ステム及びデバイス・ドライバの他にカーネルは、メモ
リ管理及び中央演算処理装置(CPU)のスケジューリ
ング等の補助的なサービスをも提供する。
【0004】アプリケーション・レベルは通常、「シス
テム・コール(System call)」として知られる命令を
用いてカーネルからのサービスを要求する実行可能なフ
ァイルまたはアプリケーション・プログラムを含む。シ
ステム・コールを用いてアプリケーション・プログラム
は、情報を検索し、他の実行可能なルーチンを開始し、
データを作成し、またデータを検索するために種々のフ
ァイルを開くことができる。
【0005】UNIX環境において、ファイルのセキュ
リティは、一般的に以下に記載する技術,すなわちファ
イル保護フラグまたはファイル保護コードの組を変更す
る技術を用いてカーネルによって提供される。これらの
フラグは、特定のファイルにアクセスするものを制御す
る。しかしながらいくつかの形式のファイル、特に疑似
テレタイプ(疑似tty:pseudo-teletype)の文字特殊
ファイル(character-special file)は、少なくとも初
期時には、UNIXベースのコンピュータで実行される
いずれのプロセス(実行されるアプリケーション・プロ
グラム)についてもアクセス可能でなければならない。
一般的に疑似tty文字特殊ファイルは、コンピュータ
間のネットワーク通信を容易にする。結果として、いず
れのプロセスにも他のコンピュータと通信可能にするた
めに、疑似tty文字特殊ファイルに関係するファイル
保護フラグの設定は、いずれのプロセスに対しても初期
時にはこれらのファイルにアクセス可能であるように設
定されている。カーネルは、いずれのプロセスにもこれ
らのファイルへアクセスすることを許可するので、一旦
このファイルが開かれると、これらのファイルへアクセ
スする各プロセスがセキュリティ・レベルを追加しなけ
ればならない。通常このセキュリティ機能は、アプリケ
ーション・プログラム内のサブルーチンによって有効化
され、開いている(open:オープンされた)それぞれの疑
似tty文字特殊ファイルの保護フラグを変更するよう
にカーネルに命令する。
【0006】ネットワーク通信を容易にするために用い
られるアプリケーション・プログラムは、「通信アプリ
ケーション」として知られている。セキュリティ・レベ
ルをさらに追加するために、各通信アプリケーション・
プログラムは、正当なプロセス(通常「スーパーユーザ
(SUPERUSER)」と呼ばれる)として実行されなければ
ならない。このようにセキュリティ機能を設けるため、
正当なプロセスはカーネルに対して、疑似tty文字特
殊ファイルのファイル保護フラグ及びオーナシップを変
更するように引き続いて要求することができる。
【0007】いくつかの例においては、これらの正当な
プロセスが適切なセキュリティを設けないために、悪意
あるユーザがそのネットワークへの端末接続を介して、
UNIXベースのコンピュータに入力しようとするデー
タまたはそれから出力しようとするデータを受信するこ
とが可能である。特に、テルネット(telnet)、アール
・ログイン(rlogin)、またはX-ウィンドウズ(X-win
dows)等の通信アプリケーション・プログラムが、端末
とアプリケーションプログラムとの間の接続を容易にす
るための疑似端末として知られる特殊な形式の文字特殊
ファイルを使用する場合、ある重大なセキュリティ問題
が生じる。これらのセキュリティ問題の特異性を論じる
に先立ち、これらの問題が複雑であるので疑似端末利用
の基本について論じる必要がある。
【0008】「疑似端末(pseudo-terminal)」は、デ
バイス・ドライバのルーチン・セットにより制御される
特殊な形式の疑似tty文字特殊ファイルである(以
降、デバイス・ドライバルーチンと必要な疑似tty文
字特殊ファイルとの組合わせを、「疑似端末(pty)
デバイス・ドライバ」という)。ptyデバイス・ドラ
イバは、通信アプリケーション・プログラム(以降、
「通信アプリケーション」という)があたかもUNIX
ベースのコンピュータへ接続された実際の端末であるか
のように、他のアプリケーション・プログラムに対して
インターフェースすることを可能にするものである。特
異な通信アプリケーションの例として、「telnet」があ
る。特に、遠隔側でネットワークに接続されたコンピュ
ータ、即ち遠隔コンピュータが、同じネットワークに接
続されたUNIXベースのホスト・コンピュータに接続
しようとする場合、この遠隔コンピュータはtelnetを介
してホスト・コンピュータに接続する。その場合、遠隔
コンピュータは、汎用的な通信ソフトウェアを用いてホ
スト・コンピュータ内のtelnet通信アプリケーションに
接触し、それに対してアクセスを要求する。ホスト・コ
ンピュータの内部では2つのptyデバイス・ドライバ
が使用されており、遠隔コンピュータによりアクセスさ
れているtelnet通信アプリケーションとホスト・コンピ
ュータ内のいずれかのユーザ・アプリケーションとの間
を容易に疑似端末接続する。引き続いて、ホスト・コン
ピュータ及びその上で実行されているいずれかのユーザ
・アプリケーションが、遠隔コンピュータを、直接ホス
ト・コンピュータに接続されている端末として見る。遠
隔コンピュータ及び中継するネットワークは、そのユー
ザ・アプリケーションにとっては透過になる。
【0009】さらに特殊な例として、遠隔コンピュータ
からUNIXベースのコンピュータへの遠隔ログインを
実行するプロセスがあり、遠隔コンピュータによりネッ
トワークを介してホスト・コンピュータ上に常駐する遠
隔ログイン通信アプリケーションへアクセスすることに
より開始される。典型的な遠隔ログイン・アプリケーシ
ョンとしては、ホスト及び遠隔コンピュータが双方とも
UNIXベースのコンピュータであるとみなす「アール
・ログイン(rlogin)か、あるいは、標準INTERN
ETアプリケーションであって、ほとんどのTCP/I
P(Transmission Control Protocol/Internet Protoco
l)のインプリメンテーションがホスト・コンピュータ
のオペレーティング・システムに関わらずサポートする
「telnet」である。
【0010】遠隔コンピュータが遠隔ログイン通信アプ
リケーションにアクセスすると、このアプリケーション
は、システム・コールである「フォーク(fork)」を実
行する。「フォーク」システム・コールは、この場合、
遠隔ログイン・アプリケーションのコピーを実行してい
たプロセスのコピーを作る。結果的に、子プロセスと呼
ばれる遠隔ログイン・アプリケーションのコピーが、ネ
ットワークを介して遠隔コンピュータと相互動作するた
めに続けられる。一方、親プロセスと呼ばれる遠隔ログ
イン・アプリケーションは休止状態となって、遠隔コン
ピュータによるホスト・コンピュータへの次のアクセス
要求を待つ。
【0011】子プロセス(以降、「サーバ・プロセス」
と云う)は、一対の疑似端末(pty)ファイルとして
知られる疑似tty文字特殊ファイルを開く。この一対
のptyファイルは、pty「マスタ」ファイル及びp
ty「スレーブ」ファイルからなる。ptyマスタ・フ
ァイルは、pryスレーブ・ファイルと論理的に関係し
ている。即ち、いわゆる疑似端末リンクが、2つのファ
イルを互いに接続する。この方法では、マスタ・ファイ
ルに入る命令及び他のデータがスレーブ・ファイルに渡
され、またその逆も行われる。2つのptyファイルが
開いているとき、それぞれがデバイス・ドライバのルー
チン・セットによって制御され、それによって各pty
ファイルとそれぞれのデバイス・ドライバ・ルーチンと
の組合わせが、2つのptyファイル間のpty論理リ
ンクを形成する。
【0012】次に、サーバ・プロセスが「フォーク」シ
ステム・コールを実行して、サーバ・プロセスのコピー
(子)を作る。このとき、これらのプロセスのそれぞ
れ、即ちサーバ・プロセスとその子プロセスは、pty
マスタ・ファイル及びptyスレーブ・ファイルの双方
に対してオープン接続を有する。二重接続を終了するた
めに、サーバ・プロセスは、そのptyスレーブ・ファ
イルへの接続を閉じる(close)。同様に、サーバ・プ
ロセスの子プロセスは、そのptyマスタ・ファイルへ
の接続を閉じる。その結果、サーバ・プロセスとその子
プロセスとの間に論理的通信パスが存在することにな
る。子プロセスは、このパスを端末接続として見る。即
ち、子プロセスから端末への直接的な接続として見る。
その後、子プロセスは、ログイン・シェル・アプリケー
ションのために「実行(exec)」システム・コールを出
して、遠隔コンピュータのホスト・コンピュータへのロ
グインを容易にする。この方法で、ptyスレーブ・フ
ァイルは、ログイン・シェル・アプリケーションに接続
された状態になる。結果的に、遠隔コンピュータは、ホ
スト・コンピュータへ接続された端末と同様の方法で動
作することになる。遠隔コンピュータのキーボード上で
タイピングされたどのような情報も、ログイン・シェル
・アプリケーションへの入力となる。そして、このアプ
リケーションから返されたどのような情報も遠隔コンピ
ュータの表示装置へ転送される。この時点で、遠隔コン
ピュータのユーザは、ホスト・コンピュータへのログイ
ンを進めてその中の情報にアクセスすることが可能であ
る。
【0013】遠隔コンピュータとホストコンピュータ間
の通信のセキュリティを容易にするためにtelnet等の通
信アプリケーションは、ptyファイルを開いた後に、
あるセキュリティ警告を行う。特に、サーバ・プロセス
の形で通信アプリケーションがptyマスタ・ファイル
及びptyスレーブ・ファイルを開いた後には、そのサ
ーバ・プロセスは、ptyスレーブ・ファイルのアクセ
ス許可コード及びオーナシップを変更して、他のユーザ
が引き続いてこのファイルにアクセスすることを禁止す
る。変更すべきアクセス許可コード及びオーナシップを
イネーブルにするために、このptyスレーブ・ファイ
ルのアクセス及びオーナシップを変更する各アプリケー
ションは、スーパーユーザ状態を有していなければなら
ない。
【0014】サーバ・プロセスが最初にptyファイル
を開くとき、許可コードは通常「rw.rw.rw.」
であるが、この中の各コードは左から右へそれぞれ、現
在のオーナー、オーナーをメンバとするグループ、及び
その残りの者に対応する。許可コードの中の「r」は、
ユーザがそのファイルを読み取ることができることを示
しており、「w」は、ユーザがそのファイルに書き込む
ことができることを示している。「x」は、そのファイ
ルが実行可能であることを示している。この特別な例に
おいては「x」が用いられていないことを注記する。即
ち、このファイルは実行不能であり、従って「x」は、
点(.)によって置き換えられている。通常、ptyフ
ァイルの最初のオーナーは、スーパーユーザ名「ルート
(root)」であり、その許可コードによって、いずれの
ユーザでも命令に従ってそのファイルにアクセスするこ
とができる。従ってptyファイルの場合、ptyマス
タ・ファイル及びptyスレーブ・ファイルの双方に対
して、初期にはいずれのプロセスからもアクセスするこ
とができる。
【0015】一旦開かれたptyリンクのセキュリティ
を確立するために、サーバ・プロセスが変更される。即
ち、(a)ptyスレーブ・ファイルのアクセス許可コ
ードを「rw..w....」に、(b)ptyスレー
ブ・ファイルのオーナーをサーバ・プロセスの有効なユ
ーザ識別子(UID)に変更する。コード及びオーナー
の変更の後は、現在のユーザのみがこの開かれたpty
スレーブ・ファイルを読み取り且つ書き込むことができ
る。さらに、インプリメンテーションが規定されている
グループのユーザは、そのファイルに書き込むことが許
可される。一方、外部の者はその開いているptyスレ
ーブ・ファイルに全くアクセスすることができない。こ
のアクセス制限は、ある程度のセキュリティを実現す
る。しかしながら、アプリケーション・プログラムが、
開かれたptyスレーブ・ファイルのセキュリティを担
っているので、いくつかのアプリケーションがそのよう
なセキュリティ手段を含んでいない場合も予測できる。
その場合、許可コード及びオーナーシップは変更され
ず、その結果、全てのユーザがいつでも開かれたpty
ファイルにアクセスすることができる。
【0016】ptyスレーブ・ファイルのアクセス許可
コード及びオーナーシップを変更することによって実現
される限定されたセキュリティを逃れるために、不正な
ユーザは、いわゆる「タイミング・ウィンドウ(timing
window)」を利用することができる。これは、pty
ファイルを開く時点と許可コード及びオーナシップを変
更する時点との間に存在する。即ち、タイミング・ウィ
ンドウは、ファイルを開く動作とその開くファイルの許
可コード及びオーナシップを変更する動作との間に生じ
る時間的間隔である。通常、ファイルを開く動作とその
開くファイルの許可コード及びオーナシップを変更する
動作とは、非アトミック動作である。概して、非アトミ
ック動作とは、多数のシステム・コールを用いて特定の
タスクを実行する動作である。タイミング・ウィンドウ
の存在は、従来から「アクセス時間対検査時間」の問題
であり、タイミング・ウィンドウが存在するために、不
正ユーザは不正なプロセスを呼出すことができ、許可コ
ード及びオーナーシップの変更の前にptyファイルを
開くことによって容易にファイルのセキュリティを侵す
ことができる。一旦ファイルが、あるプロセスにより開
かれると、その後の許可またはオーナーシップの変更
は、変更前にファイルを開いたプロセスによるアクセス
に対しては効力を及ぼさない。その結果、一旦不正なプ
ロセスがptyスレーブ・ファイルにアクセスしたなら
ば、正当なプロセスは、そのファイルの許可コード及び
オーナーシップを変更することによってファイルから不
正なプロセスを切り放すことができない。よって、不正
なユーザがptyスレーブ・ファイルに接続されたまま
になる。この方法により、不正なプロセスがptyマス
タ・ファイルとptyスレーブ・ファイルとの間のリン
クのセキュリティを侵す。従って不正なプロセスは、遠
隔コンピュータにより伝送されるユーザID及びパスワ
ード情報を含むいかなるデータをも受信可能である。不
正なユーザは、後にホストコンピュータのセキュリティ
に侵入する際に利用するためにこの情報を記憶すること
ができる。それ以外にも、不正なプロセスは、誤ったデ
ータを遠隔コンピュータに送ることができる。この方法
により不正なプロセスは、遠隔コンピュータのユーザに
対してそのユーザID、パスワードあるいは他の機密情
報を不正なプロセスに対して伝送するよう要求すること
ができる。こうして、このような悪意ある行為によりホ
スト・コンピュータのセキュリティが侵されることにな
る。
【0017】このように、ptyマスタ・ファイルとp
tyスレーブ・ファイルとの間の安全なリンクを形成す
るための方法及び装置が必要とされる。さらに、このよ
うな方法及び装置は、アプリケーション・プログラムを
セキュリティ機能の負担から解放し、且つスーパーユー
ザとして当該アプリケーションを実行することを不要に
するものでなければならない。この方法及び装置はカー
ネル内に常駐すべきである。
【0018】
【発明が解決しようとする課題】本発明の目的は、アプ
リケーション・プログラムが疑似端末リンクを要求する
場合にいつでも、ptyマスタ・ファイルとptyスレ
ーブ・ファイルとの間の安全なリンクを形成することで
ある。本発明の別の目的は、疑似端末リンクを保護する
ためにセキュリティ機能を実行する負担からアプリケー
ション・プログラムを解放することである。本発明の別
の目的は、疑似端末リンクを保護するためにセキュリテ
ィ機能を実行するスーパーユーザとしてアプリケーショ
ン・プログラムが動作することを不要にすることであ
る。
【0019】
【課題を解決するための手段】これらの目的は、カーネ
ル内で動作する本発明の技術によって達成される。この
技術は、正当な(authorized)プロセスによるptyス
レーブ・ファイルへのアクセスの前に不正な(unauthor
ized)ユーザまたは不正なプロセスがptyスレーブ・
ファイルにアクセスしないことを保証するものである。
この技術の概要は、ptyマスタ・ファイル及びpty
スレーブ・ファイルの状態がある条件(規則)を満足す
る場合にのみ、これらのファイルへのアクセスが可能に
なると云うものである。さらにこの技術は、いずれかの
不正なプロセスがptyスレーブ・ファイルを開こうと
試みる前に、当該ファイルの許可コード及びオーナーシ
ップを変更するものである。
【0020】特に、アプリケーション・プログラムから
疑似端末(pty)マスタ・ファイルを開くための要求
を受信した場合、その要求は、第1の規則セットを満足
した後にのみ許可される。この第1の規則セットとは、
ptyマスタ・ファイルが事前に開かれていないこと、
及びこの開かれるptyマスタ・ファイルに関係するp
tyスレーブ・ファイルが現在閉じていることである。
ptyマスタ・ファイル及びptyスレーブ・ファイル
の現在の状態がこれらの規則を満足する場合、このpt
yマスタ・ファイルを開くことを許可される。
【0021】引き続いて、アプリケーション・プログラ
ブからptyスレーブ・ファイルを開くための要求を受
信すると、本発明は、第2の規則セットを満足する場合
にのみこの要求を許可する。この第2の規則セットと
は、関連するptyマスタ・ファイルが開かれる前にp
tyスレーブ・ファイルが開かれていないこと、及びp
tyスレーブ・ファイルを開くよう要求しているプロセ
スのユーザ識別子(UID)が以前にptyマスタ・フ
ァイルを開いたプロセスと同じ有効なUIDを有するこ
とである。これらの規則を満足する場合、ptyスレー
ブ・ファイルを開くことを許可される。この方法によ
り、ptyマスタ・ファイル及びptyスレーブ・ファ
イルとの間の疑似端末リンクが、不正にptyスレーブ
・ファイルに接続された不正なプロセスから守られる。
【0022】さらにセキュリティを強化するために、本
発明は、ptyスレーブ・ファイルへのアクセスを制限
するためにオーナー及びアクセス許可コードを変更す
る。このアクセス制限は、アプリケーション・プログラ
ムが最初にptyスレーブ・ファイルを開くときの自動
的な動作として実現される。こうして、ptyファイル
のオーナーは、通常「ルート」であるスーパーユーザ名
から、アクセス要求しているアプリケーション・プログ
ラムの有効UIDへ変更される。さらに、アクセス許可
コードが「rw.rw.rw.」から「rw..
w....」へと変更されることによって、現在のユー
ザ(オーナー)が読取り及び書込みアクセス可能にな
り、オペレーティング・システムにより規定された特定
のユーザ・グループ内のユーザのみが書込みアクセス可
能になり、そしてそのグループ以外のユーザはアクセス
不能になる。
【0023】重要なことは、疑似端末リンクのセキュリ
ティを提供する本発明が、UNIXベースのコンピュー
タ・システムのカーネル内で実行されることである。特
に、本発明のセキュリティ技術は、ptyマスタ・ファ
イル及びスレーブ・ファイルを開こうとするアプリケー
ション・プログラムにより行われる「オープン(ope
n)」システム・コールに応答して実行されるプログラ
ム・ルーチンへ組み込まれる。このように、本発明によ
って、疑似端末を利用するアプリケーション・プログラ
ムは、疑似端末リンクのためのセキュリティ手段を供与
する負担から解放される。さらに、カーネル内のセキュ
リティ技術を用いることによって、アプリケーション・
プログラムは、ptyスレーブ・ファイルの許可コード
及びオーナーを容易に変更するためにスーパーユーザと
して動作する必要がなくなる。
【0024】
【実施例】本発明は、UNIXまたはUNIXに類似の
オペレーティング・システムを用いるコンピュータ・シ
ステムにおいて動作する。特に、本発明は、AIX(Ad
vanced Interactive Executive)オペレーティング・シ
ステムを実行するモデルES/9000コンピュータ・
システム内で機能することができる。AIX及びES9
000は、双方ともIBM社から市販されている。
【0025】アプリケーション・レベルからセキュリテ
ィ機能を実行する義務を確実に排除するために、本発明
はカーネルのデバイス・ドライバ・レベルに常駐する。
特に本発明は、アプリケーション・プログラムからのシ
ステム・コールに応答して、ptyマスタ・ファイル及
びptyスレーブ・ファイルを開くプロセスに包含され
る。このように、いずれかのアプリケーション・プログ
ラムがptyマスタ・ファイル及びptyスレーブ・フ
ァイルを開く場合には必ず、本発明がこれら2つのファ
イルの間の安全なリンクを提供することになる。その場
合、そのアプリケーション・プログラムがこのリンクを
保護するために何らかのセキュリティ手段を供与するか
否かは関係ない。
【0026】一般的に本発明は、カーネルがアプリケー
ション・プログラム(プロセス)に対して双方のpty
ファイルを開くこと(オープン)を許可するに先立っ
て、様々な規則を満足することを要求することによって
動作する。これらの規則を以下に記載する。 (1)アプリケーション・プログラムによるファイル・
オープン要求があった場合、その時点でptyマスタ・
ファイルは閉じて(クローズ)いなければならない。即
ち、ptyマスタ・ファイルは、1回だけ開くことがで
きる。 (2)ptyマスタ・ファイルが開かれる場合、その開
かれるptyマスタ・ファイルに関係するptyスレー
ブ・ファイルはその時点で閉じていなければならない。 (3)ptyスレーブ・ファイルは、その関係するpt
yマスタ・ファイルが開かれる前には、カーネルによっ
て開くことができない。 (4)ptyスレーブ・ファイルを最初に開くプロセス
は、以前にそのptyマスタ・ファイルを開くことを要
求したプロセスと同じ有効なユーザ識別子(UID)を
持っていなければならない。
【0027】上記の(1)及び(2)の規則は、第1の
規則セットを構成し、これはカーネルがptyマスタ・
ファイルを開く前に満足されなければならない。同様
に、(3)及び(4)の規則は、第2の規則セットを構
成し、これはカーネルがptyスレーブ・ファイルを開
く前に満足されなければならない。
【0028】さらに、ptyスレーブ・ファイルを開く
にあたり、アクセス許可及びファイルのオーナーシップ
を即座に且つ自動的に変更することによって正当なユー
ザのみがptyスレーブ・ファイルに対して読取り及び
書込みを行うことが可能になる。それのみでなく、ホス
ト・コンピュータのオペレーティング・システムにより
規定されたユーザ・グループ内のユーザであれば、開い
ているptyスレーブ・ファイルに書込むことが可能に
なる。コードで云うならば、カーネルはアクセス許可
を、通常の「rw.rw.rw.」から「rw..
w....」へと変更する(「」内は、左から順に現オ
ーナー、当該オーナーをメンバとするグループ、その
他、に対する許可コードである)。さらに、カーネルは
ptyスレーブ・ファイルのオーナーシップを現在のオ
ーナー名(通常は「ルート」であるがこれが必須ではな
い)から、このときこのファイルへアクセス要求してい
るプロセスの有効UIDへと変更する。そして、グルー
プ識別子(GID)が、ホスト・コンピュータのオペレ
ーティング・システムによって指示されたグループ(通
常「tty」という名であるがこれが必須ではない)へ
変更される。アプリケーションが、カーネルに対してp
tyスレーブ・ファイルを閉じること(クローズ)を要
求する場合、及びこのファイルのクローズが最後のクロ
ーズである場合、ファイルのアクセス許可及びオーナー
シップは、それらの元の値に戻される。
【0029】上記の規則を用いて、また、開かれたpt
yスレーブ・ファイルのアクセス許可及びオーナーシッ
プを即座に且つ自動的に変更することにより、本発明
は、不正なユーザが正当なユーザと同時に同じptyス
レーブ・ファイルに対してアクセスできなくすることを
保証する。こうして本発明は、ptyマスタ・ファイル
とptyスレーブ・ファイルとの間の疑似端末リンクに
対する効果的なセキュリティを可能にする。
【0030】図1は、ネットワーク110を介して遠隔
コンピュータ・システム120と接続されたUNIXベ
ースのホスト・コンピュータ・システム100のハイレ
ベルのブロック図である。ホスト・コンピュータ100
は、中央演算処理装置(CPU)50及び記憶装置60
を備えている。CPU50は、双方向パス55を介して
記憶装置60にアクセスする。ネットワークのホスト・
コンピュータへのアクセスを容易にする種々のプログラ
ム、ドライバ及びファイルは、記憶装置60に記憶され
ている。記憶装置60は、例えば、半導体のランダム・
アクセス・メモリ、リード・オンリ・メモリ、ハードデ
ィスク等またはこれらの組み合わせにより構成される。
この記憶装置の特定のインプリメンテーションは、本発
明とは関係ない。一般に、ネットワーク110は、遠隔
コンピュータ120との間でライン115で表されるよ
うな全二重通信を行う。同様に、ホスト・コンピュータ
100も、ライン105で表されるように全二重パスに
よってネットワーク110に接続されている。ネットワ
ーク110の例としては、多数のパーソナル・コンピュ
ータ(遠隔コンピュータ)を相互に接続するローカル・
エリア・ネットワーク(LAN)である。さらにホスト
・コンピュータ100の例としては、IBM社のモデル
ES/9000コンピュータ・システムがある。当業者
であれば、ネットワークの構成及びホスト・コンピュー
タの特定のモデルが、本発明による動作にとって重要で
はないことが容易に理解できるであろう。さらに、ネッ
トワーク通信を実動化するためのハードウェア及びソフ
トウェアについては、本発明を構成するものではないの
で図1に示していない。
【0031】典型的なUNIXベースのホスト・コンピ
ュータのように、ホスト・コンピュータ100内には、
ファイル及びプログラム(実行可能なファイル)が階層
的に配置されている。最上位レベルはアプリケーション
・レベル125、中間レベルはファイル・システム・レ
ベル130、及び最下位レベルはデバイス・ドライバ・
レベル136である。ファイル・システム・レベル13
0及びデバイス・ドライバ・レベル135は、カーネル
140の構成要素である。
【0032】一般的に、デバイス・ドライバ・レベル1
35は、汎用的なプログラムを有している。これらのプ
ログラムは、プロセスが、ディスク、テープ・ドライ
ブ、端末、印刷装置及びネットワーク等の周辺装置と通
信できるように設計されている。アプリケーション・レ
ベル125に常駐するネットワーク通信アプリケーショ
ン・プログラム、即ち典型的なものとしては「telnet」
や「アール・ログイン(rlogin)」などであるが、これ
らは、「ログイン・シェル」等の(レベル125におけ
る)ローカル・アプリケーションとの端末接続をシミュ
レートするために疑似端末デバイス・ドライバを利用す
る。以下では、ネットワーク・アプリケーションとして
「telnet」を用いることを例に挙げて、主に論述するこ
ととする。以下の論述によれば「アール・ログイン」の
使用については、当業者にとって明白であろう。
【0033】図2は、通信アプリケーション(telnet)
が、遠隔コンピュータとホスト・コンピュータ内のログ
イン・シェルとの間で容易に通信するために、疑似端末
対を開くプロセス200を示している。プロセス200
は、ホスト・コンピュータが遠隔コンピュータからのア
クセス要求を受信したとき、ステップ201において開
始される。要求を受信したことにより、ステップ202
において、通信アプリケーションであるtelnetが休止状
態から起動する。テルネットが稼働しているとき、それ
は「telnetデーモン」として知られる。telnetデーモン
・プロセス205は、遠隔コンピュータをホスト・コン
ピュータへ接続する疑似端末対を開くことを容易にす
る。
【0034】ネットワークからの接続要求を受信する
と、ステップ210において、プロセスは「フォーク
(fork)」システム・コールを実行して子プロセスを作
成する(以降、サーバ・プロセス220と呼ぶ)。サー
バ・プロセス220は、telnetデーモン・プロセス20
5と同一のコピーである。この方法でサーバ・プロセス
220は、遠隔コンピュータからの通信の処理を続行す
ることができる。一方、ステップ215においてtelnet
デーモン・プロセスはその休止状態に戻り、別の通信要
求を待つ。
【0035】ステップ235においてサーバ・プロセス
は、「オープン(open)」システム・コールを出し、カ
ーネルに対してptyマスタ・ファイルを開くことを要
求する。同様に、ステップ240においてサーバ・プロ
セスは「オープン」システム・コールを出し、カーネル
に対してptyスレーブ・ファイルを開くことを要求す
る。これらの「オープン」システム・コールがptyマ
スタ・ファイル及びptyスレーブ・ファイルを開く特
定のプロセスについては、以下に図4及び図5を参照し
て詳細に述べる。図2に示すように、一旦カーネルが双
方のptyファイルを開くと、ステップ245において
サーバ・プロセスは、「フォーク(fork)」システム・
コールを出してサーバ・プロセスを複製する。さらに、
「フォーク」システム・コールは、これらのptyマス
タ・ファイル及びptyスレーブ・ファイルのファイル
記述子を複製する。この方法で、サーバ・プロセスの子
プロセス及びサーバ・プロセスは、双方のptyファイ
ルへ接続される。
【0036】簡潔にするために、以後、サーバ・プロセ
スの子プロセスを「ログイン子」プロセスと云うことに
する。サーバ・プロセス220とログイン子プロセス2
55との間に疑似端末リンクを得るために、ステップ2
50においてサーバ・プロセスは、ptyスレーブ・フ
ァイルとサーバ・プロセス220との間の接続を閉じ
る。同様に、ステップ260においてログイン子プロセ
スは、ptyマスタ・ファイルとログイン子プロセス2
55との間の接続を閉じる。結局、サーバ・プロセス2
20に接続されたptyマスタ・ファイルは、ログイン
子プロセス255に接続されたptyスレーブ・ファイ
ルに完全に連結される。このように、ptyマスタ・フ
ァイル及びptyスレーブ・ファイルとの間の疑似端末
リンクが、遠隔コンピューをログイン子プロセスに接続
する。ステップ265においてログイン子プロセスは、
「実行(exec)」システム・コールを介してログイン・
シェル・プログラムを実行し、ログイン・シェル・プロ
セス270を発生する。ログイン・シェル・プロセスは
アプリケーション・プログラムであり、ステップ275
において、ユーザ即ちこの例では遠隔コンピュータに対
して、ホストコンピュータへのログインを可能にする。
【0037】疑似端末リンクを形成するそれ以外の方法
としては、サーバ・プロセス220が単独でptyマス
タ・ファイルのみを開き、そしてログイン子プロセス2
55が単独でpryスレーブ・ファイルのみを開くよう
にしてもよい。疑似端末リンクは、これら2つの開かれ
たファイルの間に出現する。この方法では、前述の、双
方のptyファイルへの不必要な接続を閉じるステップ
が省かれる。
【0038】図3は、ネットワーク110からログイン
・シェル・プロセス370への接続を形成するために用
いられる様々なドライバ及びプロセスの最終的な接続配
置を示している。
【0039】先ず、ネットワーク110からの情報がte
lnetデーモン・プロセス325に接続される。一般的に
この接続は、ネットワークへの「ソケット」接続と通常
呼ばれるものにより行われる。このソケット接続は、ラ
イン315で示されるようにtelnetデーモン・プロセス
325に接続されたネットワーク・デバイス・ドライバ
310で表されている。
【0040】前述のように、破線330で示される「フ
ォーク」システム・コールはサーバ・プロセスを生じ
る。引き続いて、telnetデーモン・プロセス325は休
止状態となって、ネットワークからの次のログイン要求
を待つ。その結果としてライン320は、ソケットとサ
ーバ・プロセス335の間の接続を表している。「フォ
ーク」及び「実行」システム・コールによって、ライン
340で示すようにサーバ・プロセス335がログイン
・シェル・プロセス370を生じる。さらに、ptyマ
スタ・ファイルを開くことによってサーバ・プロセス
は、ライン345で示すように、サーバ・プロセス33
5へ接続されるptyマスタ・デバイス・ドライバ35
0を起動する。同様に、ptyスレーブ・ファイルを開
くことによってログイン・シェル・プロセスは、ライン
365で示すように、ログイン・シェル・プロセス37
0へ接続されるptyスレーブ・デバイス・ドライバ3
60を起動する。ptyスレーブ・デバイス・ドライバ
360は、疑似端末リンク355によってptyマスタ
・デバイス・ドライバ350と連結される。この方法で
は、ptyマスタ・デバイス・ドライバに書込まれる全
てのデータは、端末入力と一致するフォーマットでpt
yスレーブ・デバイス・ドライバに伝送される。同様
に、ptyスレーブ・デバイス・ドライバに書込まれる
全てのデータもまた、同じフォーマットでptyマスタ
・デバイス・ドライバに伝送される。結果として、この
ptyデバイス・ドライバの対は、遠隔コンピュータ
(図示せず)がホスト・コンピュータに対してログイン
するために必要な端末の意味(semantics)を与える。
【0041】カーネル・レベル140は、ptyスレー
ブ・デバイス・ドライバとpryマスタ・デバイス・ド
ライバの間の疑似端末リンクのセキュリティを提供す
る。セキュリティ手段は、図2のステップ235におけ
るptyマスタ・ファイルに対する「オープン」システ
ム・コール、及び図2のステップ240におけるpty
スレーブ・ファイルに対する「オープン」システム・コ
ールを実行するルーチンの中に組み込まれる。図4は、
サーバ・プロセスが要求したときにカーネルがptyマ
スタ・ファイルを開く、即ち「オープン」システム・コ
ールを用いるルーチン400の流れ図である。ptyマ
スタ・ファイルが安全な環境で開かれることを保証する
ためには、ptyマスタ・ファイル及びptyスレーブ
・ファイルの現状態が、前述の第1の規則セット(規則
(1)及び規則(2))を満足しなければならない。特
に、ステップ404において「オープン」システム・コ
ールが開始されると、ステップ405においてルーチン
400は、ptyマスタ・ファイルがいずれかのプロセ
スによって既に開かれているか否かを問い合わせる。p
tyマスタ・ファイルが既に開かれている場合、ステッ
プ410においてカーネルは「オープン」システム・コ
ールが失敗したと見なし、サーバ・プロセスに対するエ
ラー標示へ戻る。しかし、ptyマスタ・ファイルがま
だ開かれていない場合、カーネルは規則(1)が満足さ
れたと見なし、このルーチンをステップ415へ進め
る。
【0042】ステップ415においてこのルーチンは、
そのptyマスタ・ファイルに関係するptyスレーブ
・ファイルが、現在開かれているか否かを問い合わせ
る。ptyスレーブ・ファイルが開いている場合、ステ
ップ420においてカーネルは「オープン」システム・
コールが失敗したと見なし、サーバ・プロセスに対する
エラー標示へ戻る。しかし、ptyスレーブ・ファイル
が現在開かれていない場合、カーネルは規則(2)が満
足されたと見なし、このプロセスをステップ425へ進
める。ステップ425において、通常の「オープン」シ
ステム・コールが、ptyマスタ・ファイルを開くため
に実行される。「通常の「オープン」システム・コー
ル」という言葉は、UNIX環境の下で普通にptyフ
ァイルを開くために用いられる「オープン」システム・
コールを記述するために用いたものである。この通常の
「オープン」システム・コールが完了すると、即ちpt
yマスタ・ファイルが開かれた後、ステップ430にお
いてこのルーチンはサーバ・プロセスに戻る。
【0043】図5は、サーバ・プロセスが要求したとき
にカーネルがptyスレーブ・ファイルを開くルーチン
500の流れ図である。ptyスレーブ・ファイルが安
全な環境で開かれることを保証するためには、ptyマ
スタ・ファイル及びptyスレーブ・ファイルの現状態
が、前述の第2の規則セット(規則(3)及び規則
(4))を満足しなければならない。ptyマスタ・フ
ァイルを開く前にはptyスレーブ・ファイルを開くこ
とができないことを保証するために、ステップ505に
おいてこのルーチンは、ptyマスタ・ファイルが現在
開いているか否かを問い合わせる。ptyマスタ・ファ
イルが現在開いていない場合、「オープン」システム・
コールは失敗し、そしてステップ510においてカーネ
ルはサーバ・プロセスに対してエラー標示を送る。しか
し、ptyマスタ・ファイルが開かれている場合、カー
ネルは規則(3)が満足されたと見なし、ルーチンをス
テップ515に進める。
【0044】ステップ515においてこのルーチンは、
現在のシステム・コールがこのptyスレーブ・ファイ
ルを開くための最初のものであるか否かを問い合わせ
る。これがptyスレーブ・ファイルに対する最初の
「オープン」システム・コールである場合、ファイルの
セキュリティを容易にするために、以下に述べる引き続
くステップにおいてカーネルはptyスレーブ・ファイ
ルに対するユーザ識別子(UID)、グループ識別子
(GID)、及びアクセス許可コードを変更する。しか
しながら、この「オープン」システム・コールが別のユ
ーザにより先に実行されたそれより後のものであった場
合、このユーザは経路520に沿って、UID、GI
D、及び許可コードを変更することなく「オープン」シ
ステム・コールのルーチンにアクセスすることができ
る。ここで別のユーザとは、例えば、先に開かれたpt
yスレーブ・ファイルに対して書込みを許可された指定
グループ内のユーザである。従って、ステップ515に
おける問い合わせの結果が否定であった場合、ステップ
540においてルーチンは、ptyスレーブ・ファイル
を開くために通常の「オープン」システム・コールを行
う。しかしながら、ステップ515における問い合わせ
の結果が肯定であった場合、ステップ525においてル
ーチンは、ptyスレーブ・ファイルにアクセス要求し
ているアプリケーション・プロセスの有効UIDを、先
に開かれた関係するptyマスタ・ファイルの有効UI
Dと比較する。これらの有効UIDが一致しない場合、
ステップ530においてカーネルは、「オープン」シス
テム・コールが失敗したと見なし、サーバ・プロセスに
対してエラー標示を送る。そうでない場合、即ちこれら
の有効UIDが一致する場合、ステップ535において
ptyスレーブ・ファイルのオーナーが、通常「ルー
ト」である現在の名前から、アクセス要求しているプロ
セスの有効UIDへと変更される。この例においては、
オーナー名はサーバ・プロセスのUIDに変更される。
さらにptyスレーブ・ファイルのGIDも、必要であ
れば新しい値、通常は「tty」に変更することができ
る。ファイルのオーナーシップを変更する特定のプロセ
スは、周知の技術である。従ってこのプロセスについて
のさらに詳細な説明は不要である。
【0045】ファイルのオーナーシップの変更と同時
に、ステップ535においてルーチン500は、pty
スレーブ・ファイルのアクセス許可コードを、通常「r
w.rw.rw.」である現在の値から「rw..
w....」へと変更する。このアクセス制限は、オペ
レーティング・システムにより指定されたグループ内の
ユーザ以外のいずれのユーザによるptyスレーブ・フ
ァイルへのアクセスも防ぐ。この方法では、最初にpt
yスレーブ・ファイルを開くユーザのみが、読取り
(「r」)及び書込み(「w」)の権利を有する。ま
た、指定されたグループのユーザであれば書込みの権利
を有することになり、それによって、ファイル・ユーザ
のログイン中にそのユーザに対してメッセージを送るこ
とができる。例えば、差し迫ったシステム故障の警告等
のメッセージである。そして、このグループ外のユーザ
は、現在開かれているptyスレーブ・ファイルにアク
セスする権利がない。本発明の目的に従い、ptyスレ
ーブ・ファイルのUID、GID、及びオーナーシップ
の変更は、1つのシステム・コール、即ち、アトミック
動作により実現される。
【0046】ステップ540においてルーチンは、通常
の方法で「オープン」システム・コールを実行する。ス
テップ545においてルーチン500は、「オープン」
システム・コールの回数の経過を保存しておくためにカ
ウンタ(スレーブ・ファイル・カウンタ)を増分させ
る。カウンタの計数は、以下に記載する「クローズ」シ
ステム・コール中に利用される。安全な方法でptyス
レーブ・ファイルを開くためのルーチン500は、ステ
ップ550においてサーバ・プロセスに戻る。引き続い
て、前述のように、サーバ・プロセスは遠隔コンピュー
タに対し、その遠隔コンピュータが正当なものである場
合、ログイン・シェル並びにホスト・コンピュータ内の
種々のファイルやプログラムにアクセスできるようにす
る。
【0047】図6は、遠隔コンピュータとホスト・コン
ピュータの間の通信パスの終了に対して、カーネルがp
tyスレーブ・ファイルを閉じるルーチン600の流れ
図である。このクローズは、最終のまたは最後のクロー
ズと呼ばれるものである。
【0048】ルーチン600は、ステップ605におい
てカーネルが、「クローズ」システム・コール要求を受
信することから開始される。スレーブ・ファイル・カウ
ンタ(図5のステップ545及び図6のステップ62
0)は、所定のptyスレーブ・ファイルに関する最初
にファイルが開かれた時点からの「オープン」及び「ク
ローズ」のそれぞれの回数の計数を保存する。このよう
にスレーブ・ファイル・カウンタは、スレーブ・ファイ
ルの「オープン」システム・コール毎にその計数を増分
させ、「クローズ」システム・コール毎にその計数を減
分させる。スレーブ・ファイル・カウンタのカウンタの
計数が1より大きければ、ステップ607においてルー
チン600は、今回のクローズが最終のまたは最後の
「クローズ」システム・コールではないと見なす。この
例では、ルーチンは経路608を経て進む。引き続いて
ステップ615は、通常の方法により、クローズ要求し
ているプロセスとptyスレーブ・ファイルの間の接続
を閉じる。そうでない場合、即ちスレーブ・ファイル・
カウンタの計数が1であるならば、ステップ607にお
いてルーチン600は、今回の「クローズ」システム・
コールが最終のまたは最後の「クローズ」システム・コ
ールとなるべきものと見なす。その結果、ステップ61
0において、以前に変更されたUID、GID、及び許
可コードが、それらの元の値にアトミック動作により戻
される。その後、ステップ615においてプロセスは、
通常の方法で「クローズ」システム・コールを実行す
る。「クローズ」システム・コールが完了すると、ステ
ップ620においてルーチンは、スレーブ・ファイル・
カウンタを減分させる。最後に、ptyスレーブ・ファ
イルを閉じるためのルーチンはステップ625において
サーバ・プロセスに戻る。以上、本発明を組み込んだ1
つの例を挙げて詳細に記載してきたが、当業者であれ
ば、本発明の要旨を包含する他の多くの変形例を容易に
発案できるであろう。
【0049】
【発明の効果】「オープン」システム・コールのルーチ
ンにおいて、疑似端末ファイルの対に対して規則に基づ
くアクセスを行うことによって、アプリケーション・プ
ログラムはptyマスタ・ファイルとptyスレーブ・
ファイルの間のリンクのセキュリティを図る必要がなく
なる。本発明の進歩的な技術は、セキュリティの負担を
カーネルに委ねることによって、セキュリティを汎用的
ベース上で行うものである。即ち、ホスト・コンピュー
タ上で実行される全てのアプリケーションに対して行う
ことができる。従っていずれかのアプリケーションが、
telnet、アール・ログイン(rlogin)、X−ウィンドウ
等のアプリケーションを含む疑似端末を開くための「オ
ープン」システム・コールを実行する任意のアプリケー
ションをホスト・コンピュータが実行しているときに
は、本発明によってホスト・コンピュータを不正なアク
セスから保護することができる。
【図面の簡単な説明】
【図1】ネットワーク環境において動作するUNIXベ
ースのホスト・コンピュータ100を示したハイレベル
・ブロック図である。
【図2】遠隔コンピュータが、ネットワークを介してU
NIXベースのホスト・コンピュータへのアクセスを獲
得するプロセス200の流れ図である。
【図3】本発明を実施するために使用される図1のホス
ト・コンピュータ100内におけるファイル及びプロセ
スの関係を示したブロック図である。
【図4】ptyマスタ・ファイルとptyスレーブ・フ
ァイルの間の疑似端末リンクを不正なアクセスから保護
するためのセキュリティ手段を含む、「オープン」シス
テム・コールを実行するためのルーチン400の流れ図
である。
【図5】ptyマスタ・ファイルとptyスレーブ・フ
ァイルの間の疑似端末リンクを不正なアクセスから保護
するためのセキュリティ手段を含む、「オープン」シス
テム・コールを実行するためのルーチン500の流れ図
である。
【図6】「クローズ」システム・コールを実行するため
のルーチン600の流れ図である。
【符号の説明】
50 中央演算処理装置(CPU) 60 記憶装置 100 ホスト・コンピュータ 110 ネットワーク 125 アプリケーション・レベル 140 カーネル 310 ネットワーク・デバイス・ドライバ 325 telnetデーモン・プロセス 330 「フォーク」システム・コール 335 サーバ・プロセス 340 「フォーク」及び「実行」システム・コール 350 ptyマスタ・デバイス・ドライバ 355 疑似端末リンク 360 pryスレーブ・デバイス・ドライバ 370 ログイン・シェル・プロセス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン・ハワード・ケース アメリカ合衆国12401 ニューヨーク州、 キングストン、メイン・ストレート 265 (72)発明者 リチャード・アレン・ファビッシュ アメリカ合衆国12580 ニューヨーク州、 スタッツバーグ、ホロー・リッジ・ロー ド 19

Claims (26)

    (57)【特許請求の範囲】
  1. 【請求項1】オペレーティング・システムを有するコン
    ピュータ・システムにおいて、疑似端末マスタ・ファイ
    ルと、該マスタ・ファイルに関連する疑似端末スレーブ
    ・ファイルとの間に安全な疑似端末リンクを確立するた
    めの方法であって、 前記疑似端末マスタ・ファイルを開くための第1の要求
    を第1のアプリケーション・プログラムから受信するス
    テップと、 前記疑似端末マスタ・ファイル及び前記疑似端末スレー
    ブ・ファイルの現在の状態が第1の規則セットを満足す
    る場合は前記第1の要求を許可し、それ以外の場合は該
    第1の要求を拒否するステップと、 前記第1の要求が許可された場合は前記疑似端末マスタ
    ・ファイルを開くステップと、 前記疑似端末スレーブ・ファイルを開くための第2の要
    求を第2のアプリケーション・プログラムから受信する
    ステップと、 前記疑似端末マスタ・ファイル及び前記疑似端末スレー
    ブ・ファイルの現在の状態が第2の規則セットを満足す
    る場合は前記第2の要求を許可し、それ以外の場合は該
    第2の要求を拒否するステップと、 前記第2の要求が許可された場合は、前記関連する疑似
    端末スレーブ・ファイルのアクセス許可コード及びオー
    ナーシップ情報を変更するステップと、 前記アクセス許可コード及びオーナーシップ情報が変更
    された後に、前記関連する疑似端末スレーブ・ファイル
    を開き、前記疑似端末マスタ・ファイルと該疑似端末ス
    レーブ・ファイルとを疑似端末リンクによって接続する
    ステップとを含む、 安全な疑似端末リンクの確立方法。
  2. 【請求項2】前記第1のアプリケーション・プログラム
    と前記第2のアプリケーション・プログラムが同一のプ
    ログラムである、請求項1に記載の方法。
  3. 【請求項3】前記第1の規則セットが、前記疑似端末マ
    スタ・ファイルと前記疑似端末スレーブ・ファイルが現
    在閉じていることを要件とする、請求項1に記載の方
    法。
  4. 【請求項4】前記第2の規則セットが、前記疑似端末マ
    スタ・ファイルが現在開いており、且つ該疑似端末マス
    タ・ファイルを開いた前記第1のアプリケーション・プ
    ログラムに関連する第1の有効ユーザ識別子が、前記疑
    似端末スレーブ・ファイルを開くよう現在要求している
    前記第2のアプリケーション・プログラムに関連する第
    2の有効ユーザ識別子と一致することを要件とする、請
    求項1に記載の方法。
  5. 【請求項5】前記変更ステップが、 前記疑似端末スレーブ・ファイルの個々のオーナーシッ
    プ情報を、第1のオーナー名から前記第2のアプリケー
    ション・プログラムに関連する有効ユーザ識別子へ変更
    するステップと、 前記アクセス許可コードを、第1の値から第2の値へと
    変更するステップとを含む、 請求項1に記載の方法。
  6. 【請求項6】前記変更ステップが、 前記疑似端末スレーブ・ファイルのグループ・オーナー
    シップ情報を、第1のグループ名から第2のグループ名
    へ変更するステップを含む、 請求項5に記載の方法。
  7. 【請求項7】前記変更ステップが、 前記疑似端末スレーブ・ファイルが最後に閉じられると
    き、前記アクセス許可コードを前記第2の値から前記第
    1の値へと変更し、且つ前記疑似端末スレーブ・ファイ
    ルの個々のオーナーシップ情報を前記有効ユーザ識別子
    から前記第1のオーナー名へと変更するステップを含
    む、 請求項5に記載の方法。
  8. 【請求項8】前記変更ステップが、クローズ・システム
    ・コールを用いるアトミックな方法である、請求項7に
    記載の方法。
  9. 【請求項9】前記第1のオーナー名が、スーパーユーザ
    名である、請求項5または7に記載の方法。
  10. 【請求項10】前記アクセス許可コードの前記第1の値
    が、「rw.rw.rw.」であり、且つ前記第2の値
    が、「rw..w....」である、請求項5または7
    に記載の方法。
  11. 【請求項11】前記変更ステップが、 前記疑似端末スレーブ・ファイルが最後に閉じられると
    き、前記疑似端末スレーブ・ファイルの前記グループ・
    オーナーシップ情報を前記第2のグループ名から前記第
    1のグループ名へ変更するステップを含む、 請求項7に記載の方法。
  12. 【請求項12】前記第2のグループ名が、前記オペレー
    ティング・システムのインプリメンテーションにより定
    義される、請求項6または11に記載の方法。
  13. 【請求項13】前記方法が、前記オペレーティング・シ
    ステムのカーネル内で実行される、請求項1に記載の方
    法。
  14. 【請求項14】オペレーティング・システムを有するコ
    ンピュータ・システムにおいて、疑似端末マスタ・デバ
    イス・ドライバ(350)と、該マスタ・デバイス・ド
    ライバに関連する疑似端末スレーブ・デバイス・ドライ
    バ(360)との間に安全な疑似端末リンクを確立する
    装置であって、 前記疑似端末マスタ・デバイス・ドライバを開くための
    第1の要求を第1のアプリケーション・プログラム(3
    35)から受信する手段(235)と、 前記疑似端末マスタ・デバイス・ドライバ及び前記疑似
    端末スレーブ・デバイス・ドライバの現在の状態が第1
    の規則セットを満足する場合は前記第1の要求を許可
    し、それ以外の場合は該第1の要求を拒否する手段(4
    05、410、415、420)と、 前記第1の要求が許可された場合は前記疑似端末マスタ
    ・デバイス・ドライバを開く手段(425)と、 前記疑似端末スレーブ・デバイス・ドライバを開くため
    の第2の要求を第2のアプリケーション・プログラム
    (370)から受信する手段(240)と、 前記疑似端末マスタ・デバイス・ドライバ及び前記疑似
    端末スレーブ・デバイス・ドライバの現在の状態が第2
    の規則セットを満足する場合は前記第2の要求を許可
    し、それ以外の場合は該第2の要求を拒否する手段(5
    05、510、515、525、530)と、 前記第2の要求が許可された場合は、前記関連する疑似
    端末・スレーブ・デバイス・ドライバのアクセス許可コ
    ード及びオーナーシップ情報を変更する手段(535)
    と、 前記アクセス許可コード及びオーナーシップ情報が変更
    された後に、前記関連する疑似端末スレーブ・デバイス
    ・ドライバを開き、前記疑似端末マスタ・デバイス・ド
    ライバと該疑似端末スレーブ・デバイス・ドライバとを
    疑似端末リンク(355)によって接続する手段(54
    0)とを含む、 安全な疑似端末リンクを確立する装置。
  15. 【請求項15】前記第1のアプリケーション・プログラ
    ムと前記第2のアプリケーション・プログラムが同一の
    プログラムである、請求項14に記載の装置。
  16. 【請求項16】前記第1の規則セットが、前記疑似端末
    マスタ・デバイス・ドライバと前記疑似端末スレーブ・
    デバイス・ドライバが現在閉じていることを要件とす
    る、請求項14に記載の装置。
  17. 【請求項17】前記第2の規則セットが、前記疑似端末
    マスタ・デバイス・ドライバが現在開いており、且つ該
    疑似端末マスタ・デバイス・ドライバを開いた前記第1
    のアプリケーション・プログラムに関連する第1の有効
    ユーザ識別子が、前記疑似端末スレーブ・デバイス・ド
    ライバを開くよう現在要求している前記第2のアプリケ
    ーション・プログラムに関連する第2の有効ユーザ識別
    子と一致することを要件とする、請求項14に記載の装
    置。
  18. 【請求項18】前記変更手段が、 前記疑似端末スレーブ・デバイス・ドライバの個々のオ
    ーナーシップ情報を、第1のオーナー名から前記第2の
    アプリケーション・プログラムに関連する有効ユーザ識
    別子へ変更する手段(535)と、 前記アクセス許可コードを、第1の値から第2の値へと
    変更する手段(535)とを含む、 請求項14に記載の装置。
  19. 【請求項19】前記変更手段が、 前記疑似端末スレーブ・デバイス・ドライバのグループ
    ・オーナーシップ情報を、第1のグループ名から第2の
    グループ名へ変更する手段を含む、 請求項18に記載の装置。
  20. 【請求項20】前記変更手段が、 前記疑似端末スレーブ・デバイス・ドライバが最後に閉
    じられるとき、前記アクセス許可コードを前記第2の値
    から前記第1の値へと変更し、且つ前記疑似端末スレー
    ブ・デバイス・ドライバの個々のオーナーシップ情報を
    前記有効ユーザ識別子から前記第1のオーナー名へと変
    更する手段(610)を含む、 請求項18に記載の装置。
  21. 【請求項21】前記変更手段が、クローズ・システム・
    コールを用いるアトミックな手段(610)である、請
    求項20に記載の装置。
  22. 【請求項22】前記第1のオーナー名が、スーパーユー
    ザ名である、請求項18または20に記載の装置。
  23. 【請求項23】前記アクセス許可コードの前記第1の値
    が、「rw.rw.rw.」であり、且つ前記第2の値
    が、「rw..w....」である、請求項18または
    20に記載の装置。
  24. 【請求項24】前記変更手段が、 前記疑似端末スレーブ・デバイス・ドライバが最後に閉
    じられるとき、前記疑似端末スレーブ・デバイス・ドラ
    イバの前記グループ・オーナーシップ情報を前記第2の
    グループ名から前記第1のグループ名へ変更する手段を
    含む、 請求項21に記載の安全な疑似端末リンクを形成する装
    置。
  25. 【請求項25】前記第2のグループ名が、前記オペレー
    ティング・システムのインプリメンテーションにより定
    義される、請求項19または24に記載の安全な疑似端
    末リンクを形成する装置。
  26. 【請求項26】前記装置が、前記オペレーティング・シ
    ステムのカーネル内にある、請求項14記載の装置。
JP5319497A 1993-01-27 1993-12-20 疑似端末リンクの確立方法及びその装置 Expired - Lifetime JP2500103B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US009519 1993-01-27
US08/009,519 US5452460A (en) 1993-01-27 1993-01-27 Method and apparatus for creating secure pseudo-terminal links

Publications (2)

Publication Number Publication Date
JPH06243065A JPH06243065A (ja) 1994-09-02
JP2500103B2 true JP2500103B2 (ja) 1996-05-29

Family

ID=21738150

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5319497A Expired - Lifetime JP2500103B2 (ja) 1993-01-27 1993-12-20 疑似端末リンクの確立方法及びその装置

Country Status (2)

Country Link
US (1) US5452460A (ja)
JP (1) JP2500103B2 (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675771A (en) * 1993-09-28 1997-10-07 Bull Hn Information Systems Inc. Mechanism for enabling emulation system users to directly invoke a number of host system facilities for executing host procedures either synchronously or asynchronously in a secure manner through automatically created shell mechanisms
US5664098A (en) * 1993-09-28 1997-09-02 Bull Hn Information Systems Inc. Dual decor capability for a host system which runs emulated application programs to enable direct access to host facilities for executing emulated system operations
KR100200961B1 (ko) * 1995-12-30 1999-06-15 윤종용 팩시밀리의 수신결과 기록 장치 및 방법
US7130888B1 (en) * 1996-02-16 2006-10-31 G&H Nevada-Tek Method and apparatus for controlling a computer over a TCP/IP protocol network
US7100069B1 (en) * 1996-02-16 2006-08-29 G&H Nevada-Tek Method and apparatus for controlling a computer over a wide area network
US5894554A (en) * 1996-04-23 1999-04-13 Infospinner, Inc. System for managing dynamic web page generation requests by intercepting request at web server and routing to page server thereby releasing web server to process other requests
US5802518A (en) * 1996-06-04 1998-09-01 Multex Systems, Inc. Information delivery system and method
US6408329B1 (en) * 1996-08-08 2002-06-18 Unisys Corporation Remote login
US6499108B1 (en) 1996-11-19 2002-12-24 R. Brent Johnson Secure electronic mail system
US5970149A (en) * 1996-11-19 1999-10-19 Johnson; R. Brent Combined remote access and security system
US6578146B2 (en) 1996-11-19 2003-06-10 R. Brent Johnson System, method and article of manufacture to remotely configure and utilize an emulated device controller via an encrypted validation communication protocol
US20010039564A1 (en) * 1997-10-20 2001-11-08 Victor Hahn Log on personal computer
US6275855B1 (en) 1997-11-02 2001-08-14 R. Brent Johnson System, method and article of manufacture to enhance computerized alert system information awareness and facilitate real-time intervention services
US6405367B1 (en) * 1998-06-05 2002-06-11 Hewlett-Packard Company Apparatus and method for increasing the performance of Java programs running on a server
EP1163600A4 (en) * 1999-03-17 2004-03-03 Victor C Hahn METHODS AND APPARATUSES FOR INCREASING THE CAPACITY OF PERSONAL COMPUTERS
US6785894B1 (en) * 1999-04-09 2004-08-31 Sun Microsystems, Inc. Virtual device driver
US7287089B1 (en) * 2000-10-25 2007-10-23 Thomson Financial Inc. Electronic commerce infrastructure system
US7330830B1 (en) * 2000-10-25 2008-02-12 Thomson Financial Inc. Distributed commerce system
US7305360B1 (en) * 2000-10-25 2007-12-04 Thomson Financial Inc. Electronic sales system
US7293179B2 (en) * 2001-08-01 2007-11-06 Johnson R Brent System and method for virtual tape management with remote archival and retrieval via an encrypted validation communication protocol
US7571445B2 (en) * 2001-11-29 2009-08-04 Dell Products L.P. System and method for dynamic device driver support in an open source operating system
US7346930B1 (en) * 2002-10-31 2008-03-18 Sprint Communications Company L.P. Security framework bridge
US7590986B1 (en) * 2004-06-30 2009-09-15 Sun Microsystems, Inc. Methods and apparatus supporting access to multiple devices via a pseudo device driver
US7836034B2 (en) * 2005-05-16 2010-11-16 International Business Machines Corporation Method and apparatus for updating first data value before second data value
US8910272B2 (en) * 2008-02-28 2014-12-09 Hob Gmbh & Co. Kg Computer communication system for communication via public networks
JP5343841B2 (ja) * 2009-12-22 2013-11-13 ソニー株式会社 無線通信装置、無線通信方法、プログラム、および無線通信システム
US9141808B1 (en) * 2010-10-29 2015-09-22 Symantec Corporation Data loss prevention
US20130290475A1 (en) * 2012-04-25 2013-10-31 Akiri Solutions, Inc. Shared access to a remotely running application
US9928377B2 (en) * 2015-03-19 2018-03-27 Netskope, Inc. Systems and methods of monitoring and controlling enterprise information stored on a cloud computing service (CCS)
US11425169B2 (en) 2016-03-11 2022-08-23 Netskope, Inc. Small-footprint endpoint data loss prevention (DLP)
US10469525B2 (en) 2016-08-10 2019-11-05 Netskope, Inc. Systems and methods of detecting and responding to malware on a file system
US10834113B2 (en) 2017-07-25 2020-11-10 Netskope, Inc. Compact logging of network traffic events
US11416641B2 (en) 2019-01-24 2022-08-16 Netskope, Inc. Incident-driven introspection for data loss prevention
US11856022B2 (en) 2020-01-27 2023-12-26 Netskope, Inc. Metadata-based detection and prevention of phishing attacks
US11475158B1 (en) 2021-07-26 2022-10-18 Netskope, Inc. Customized deep learning classifier for detecting organization sensitive data in images on premises

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4672572A (en) * 1984-05-21 1987-06-09 Gould Inc. Protector system for computer access and use
US4652698A (en) * 1984-08-13 1987-03-24 Ncr Corporation Method and system for providing system security in a remote terminal environment
US4825354A (en) * 1985-11-12 1989-04-25 American Telephone And Telegraph Company, At&T Bell Laboratories Method of file access in a distributed processing computer network
US4882752A (en) * 1986-06-25 1989-11-21 Lindman Richard S Computer security system
FR2623309B1 (fr) * 1987-11-13 1994-04-08 Boule Jean Pierre Dispositif et procede de securisation d'echange de donnees entre un terminal videotex et un serveur
US4885789A (en) * 1988-02-01 1989-12-05 International Business Machines Corporation Remote trusted path mechanism for telnet
US4949248A (en) * 1988-07-15 1990-08-14 Caro Marshall A System for shared remote access of multiple application programs executing in one or more computers
US5124909A (en) * 1988-10-31 1992-06-23 Hewlett-Packard Company Software program for providing cooperative processing between personal computers and a host computer
GB8916586D0 (en) * 1989-07-20 1989-09-06 Int Computers Ltd Distributed data processing system
US5073933A (en) * 1989-12-01 1991-12-17 Sun Microsystems, Inc. X window security system
US5032979A (en) * 1990-06-22 1991-07-16 International Business Machines Corporation Distributed security auditing subsystem for an operating system

Also Published As

Publication number Publication date
US5452460A (en) 1995-09-19
JPH06243065A (ja) 1994-09-02

Similar Documents

Publication Publication Date Title
JP2500103B2 (ja) 疑似端末リンクの確立方法及びその装置
US5987517A (en) System having a library of protocol independent reentrant network interface functions for providing common calling interface for communication and application protocols
EP0803101B1 (en) A mechanism for linking together the files of emulated and host system for access by emulated system users
EP0972240B1 (en) An agent-implemented locking mechanism
US5740370A (en) System for opening cache file associated with designated file of file server only if the file is not subject to being modified by different program
US6578037B1 (en) Partitioned access control to a database
EP0438571B1 (en) Method and system for open file caching in a networked computer system
US7451482B2 (en) Protected execution environments within a computer system
EP0192243B1 (en) Method of protecting system files and data processing unit for implementing said method
US6381602B1 (en) Enforcing access control on resources at a location other than the source location
US4701840A (en) Secure data processing system architecture
EP0443423B1 (en) Method and apparatus for executing trusted-path commands
Gligor et al. Design and implementation of secure Xenix
WO2001025922A1 (en) Method and system for providing data security using file spoofing
WO1996009705A1 (en) A mechanism for providing security to a dual decor command host system
US7178165B2 (en) Additional layer in operating system to protect system from hacking
US5675771A (en) Mechanism for enabling emulation system users to directly invoke a number of host system facilities for executing host procedures either synchronously or asynchronously in a secure manner through automatically created shell mechanisms
US6766457B1 (en) Method for controlling access to a multiplicity of objects using a customizable object-oriented access control hook
US6732211B1 (en) Intercepting I/O multiplexing operations involving cross-domain file descriptor sets
US9516032B2 (en) Methods and systems for using derived user accounts
US20050055564A1 (en) Object model document for obfuscating object model therein
EP1830261B1 (en) Method and apparatus for data transfer between isolated execution contexts
US6986058B1 (en) Method and system for providing data security using file spoofing
Araki et al. An Access Control Mechanism for Object-Oriented Database Systems
Needham et al. Access Control

Legal Events

Date Code Title Description
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

LAPS Cancellation because of no payment of annual fees