JP2005208752A - コマンドインタプリタ・プログラム、情報処理装置及び方法 - Google Patents

コマンドインタプリタ・プログラム、情報処理装置及び方法 Download PDF

Info

Publication number
JP2005208752A
JP2005208752A JP2004012189A JP2004012189A JP2005208752A JP 2005208752 A JP2005208752 A JP 2005208752A JP 2004012189 A JP2004012189 A JP 2004012189A JP 2004012189 A JP2004012189 A JP 2004012189A JP 2005208752 A JP2005208752 A JP 2005208752A
Authority
JP
Japan
Prior art keywords
character string
command
program
encrypted
input
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.)
Pending
Application number
JP2004012189A
Other languages
English (en)
Other versions
JP2005208752A5 (ja
Inventor
Munenori Shimizu
宗徳 清水
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2004012189A priority Critical patent/JP2005208752A/ja
Publication of JP2005208752A publication Critical patent/JP2005208752A/ja
Publication of JP2005208752A5 publication Critical patent/JP2005208752A5/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 第三者に漏洩させたくない情報を暗号化してバッチファイルやスクリプトに記述でき、たとえバッチファイルやスクリプトが閲覧されても情報が漏洩することを阻止できるコマンドインタプリタ・プログラム、情報処理装置及び方法を提供する。
【解決手段】 入力された文字列(100)の少なくとも一部(103,104)を暗号化し(110)、暗号化された部分(123,124)を復号化(133)することで前記文字列(100)を復元し、復元された前記文字列(100)に応じたプログラムの実行を指示する(135)。
【選択図】 図1

Description

本発明は、コマンドインタプリタ・プログラム、情報処理装置及び方法に関し、特に、セキュリティ機能を有するコマンドインタプリタ・プログラム、情報処理装置及び方法に関する。
計算機上で目的プログラム名や実行に必要なコマンドを入力し所望のプログラムを実行する方法はCUI(Command User Interface)として一般的である。このようなCUI環境のために、OSがUnix(登録商標)の場合は、非特許文献1にあるように、“sh”や“csh”のようなシェルと呼ばれるコマンドインタプリタ・プログラムがコマンドを解釈して所望のプログラムを実行させている。また、MS-Windows(登録商標)ではコマンドプロンプトと呼ばれるプログラムにコマンドを解釈させ所望のプログラムを実行させることができる。
このようなコマンドを複数、バッチファイルに記述し連続して実行させることもできる。ここで言うバッチファイルはUnix(登録商標)ではシェルファイルとも言われ、MS-Windows(登録商標)ではBATファイルとも言われるファイルである。通常、バッチファイルには変数や処理の制御も記述でき、簡単なプログラムとして使用することができる。例えば非特許文献2には、Unix(登録商標)のシェルスクリプトでの変数の使い方や制御文の記述方法が説明されている。通常のバッチファイルはテキストファイルであり、テキストエディタなどを用いることで簡単に作成や変更が可能である。このため、複数のプログラムを連続実行させる場合や、操作者がその場にいない夜間などに処理を自動実行させる場合に広く使われている技術である。
さらには、“Perl”や“Tk”のように、より機能の高いスクリプト処理プログラムでも、非特許文献3や非特許文献4にあるように、スクリプト内から所望のプログラムを実行させることが可能である。さらには、MS-Windows(登録商標)においては、コマンドを少なくとも1個以上をBATファイルに記述しておき、そのBATファイルアイコンをマウスで指定しダブルクリックなどの方法で実行させることも可能である。
坂本文著,「続・楽しいUNIX」,株式会社アスキー,1993年(2.1 シェルってなんだろう) 坂本文著,「UNIXツールガイドブック」,共立出版株式会社,1986年(第7章 C-SHELLプログラミング) Larry Wall、Tom Christiansen、Randal L. Schwarts著,近藤嘉雪訳,「プログラミングPerl改訂版」,株式会社オライリー・ジャパン,1997年(P.264-P.265) Brent B. Welc著,橋口陽一、中込知之、棚橋直美訳,「Tcl/Tk入門」,株式会社トッパン,1997年(P.85-P.87)
計算機上で上記のようなバッチファイルやスクリプトを利用して所望のプログラムを実行させる場合、プログラムによっては他の計算機の機能を利用したり資源にアクセスするためのログイン名やパスワードが必要なものがある。また、データベースシステムを利用するプログラムでは、データベースシステムに対するログイン名やパスワードが必要なものもある。このようなプログラムをバッチファイルやスクリプトから自動で実行させるためには、バッチファイルやスクリプトにログイン名やパスワードをプログラムの引数で与えるよう記述する必要がある。
しかし、バッチファイルやスクリプトは簡単に閲覧できることが多く、そのためにログイン名やパスワードのように第三者に漏洩させたくない情報が容易に漏洩してしまうというセキュリティ上の問題が生じる場合があった。
そこで、本発明は、第三者に漏洩させたくない情報を暗号化してバッチファイルやスクリプトに記述でき、たとえバッチファイルやスクリプトが閲覧されても情報が漏洩することを阻止できるコマンドインタプリタ・プログラム、情報処理装置及び方法を提供することを目的とする。
本発明の一側面は、入力された文字列を解釈して、それに応じたプログラムをコンピュータに実行させるためのコマンドインタプリタ・プログラムに係り、文字列を入力する入力ステップのコードと、前記入力ステップにより入力された前記文字列の少なくとも一部を暗号化する暗号化ステップのコードと、前記暗号化ステップにより暗号化された前記文字列の少なくとも一部を復号化することで前記文字列を復元する復元ステップのコードと、前記復元ステップにより復元された前記文字列に応じたプログラムを実行を指示する指示ステップのコードとを含むことを特徴とする。
本発明の別の側面は、入力された文字列を解釈して、それに応じたプログラムをコンピュータに実行させるためのコマンドインタプリタ・プログラムに係り、特定の置換指示文字列を含む第1のコマンド文字列が暗号化された暗号化文字列と、前記置換指示文字列に対応する置換文字列とを入力する入力ステップのコードと、前記入力ステップにより入力された前記暗号化文字列を復号化する復号化ステップのコードと、前記復号化ステップにより復号化された前記第1のコマンド文字列に含まれる前記置換指示文字列を、前記置換文字列で置換することで第2のコマンド文字列を生成する生成ステップのコードと、前記生成ステップにより生成された前記第2のコマンド文字列に応じたプログラムの実行を指示する指示ステップのコードとを含むことを特徴とする。
本発明の更に別の側面は、コンピュータにプログラムを実行させるための方法に係り、文字列を入力する入力ステップと、前記入力ステップにより入力された前記文字列の少なくとも一部を暗号化する暗号化ステップと、前記暗号化ステップにより暗号化された前記文字列の少なくとも一部を復号化することで前記文字列を復元する復元ステップと、前記復元ステップにより復元された前記文字列に応じたプログラムの実行を指示する指示ステップとを有することを特徴とする。
また、本発明の更に別の側面は、複数のプログラムを格納した記憶デバイスと、前記記憶デバイスに接続され、前記複数のプログラムを選択的に実行するプロセッサとを有する情報処理装置に係る。前記プロセッサは、入力した文字列の少なくとも一部を暗号化し、暗号化した前記文字列の少なくとも一部を復号化することで前記文字列を復元し、復元した前記文字列に応じたプログラムを実行する。
本発明の更に別の側面は、コンピュータにプログラムを実行させるための方法に係り、特定の置換指示文字列を含む第1のコマンド文字列が暗号化された暗号化文字列と、前記置換指示文字列に対応する置換文字列とを入力する入力ステップと、前記入力ステップにより入力された前記暗号化文字列を復号化する復号化ステップと、前記復号化ステップにより復号化された前記第1のコマンド文字列に含まれる前記置換指示文字列を、前記置換文字列で置換することで第2のコマンド文字列を生成する生成ステップと、前記生成ステップにより生成された前記第2のコマンド文字列に応じたプログラムの実行を指示する指示ステップとを含むことを特徴とする。
また、本発明の更に別の側面は、複数のプログラムを格納した記憶デバイスと、前記記憶デバイスに接続され、前記複数のプログラムを選択的に実行するプロセッサとを有する情報処理装置に係る。前記プロセッサは、特定の置換指示文字列を含む第1のコマンド文字列が暗号化された暗号化文字列と、前記置換指示文字列に対応する置換文字列とを入力し、入力した前記暗号化文字列を復号化し、復号化した前記第1のコマンド文字列に含まれる前記置換指示文字列を、前記置換文字列で置換することで第2のコマンド文字列を生成し、生成した前記第2のコマンド文字列に応じたプログラムを実行する。
本発明によれば、第三者に漏洩させたくない情報を暗号化してバッチファイルやスクリプトに記述でき、たとえバッチファイルやスクリプトが閲覧されても情報が漏洩することを阻止できるコマンドインタプリタ・プログラム、情報処理装置及び方法が提供される。
以下、図面を参照して本発明の好適な実施形態について詳細に説明する。
図3は、本発明の実施に好適な計算機300の構成例を示すブロック図である。
301はプログラムを解釈して演算などを実行するCPU、302はCPU301の実行に必要なメモリ、303は外部装置との入出力を制御する入出力インタフェース、304はCRTや液晶のような出力を表示する表示装置、305はキーボードやマウスなどの入力装置、310はプログラムやデータを格納するハードディスクである。
ハードディスク310には少なくとも、Unix(登録商標)のようなOS(オペレーティングシステム)311が搭載されており、計算機300はメモリ302にロードされたOS311をCPU301が実行することでハードディスク310や入出力インタフェース303などを管理している。また、ハードディスク310にはOS311の他に、文字列暗号化プログラム314と暗号化コマンド実行プログラム315が搭載され、後述する文字列暗号化機能および暗号化コマンド機能をこの計算機300によって実現させることができる。さらに、このハードディスク310には、バッチファイル316、スクリプト317、バッチファイル316を解釈し実行するためのシェルプログラム312、スクリプト317を解釈し実行するためのスクリプト処理プログラム313、バッチファイル316やスクリプト317からの呼び出しに応じて実行される処理プログラム318なども搭載されている。その他、プログラムの実行に必要なデータやプログラムが出力するデータもハードディスク310に格納される。
CPU301は、OS311による管理の下、実行するプログラムをハードディスク310からメモリ302にロードして、そのプログラムを実行する。プログラムが出力をする場合は入出力インタフェース303を介して表示装置304に文字や画像を表示する。また、プログラムが入力を必要とする場合は入出力インタフェース303に要求を出し、入力装置305を介して情報が入力されるまで待機する。
暗号化文字列を生成する場合は、ユーザは、シェルプログラム312を実行させて、入力装置305を介して文字列暗号化プログラム314を実行するためのコマンドを入力する。これにより文字列暗号化プログラム314が起動することになる。シェルに対して入力する文字列暗号化プログラム314を実行するためのコマンドには、暗号化対象文字列を引数として含めることができる。文字列暗号化プログラム314が実行されると、指定された暗号化対象文字に対応する列暗号化文字列が表示装置304に表示される。ユーザは、表示装置304に表示されたその暗号化文字列を用いた暗号化コマンドを引数とする、暗号化コマンド実行プログラム315を起動するためのバッチファイルやスクリプトを、バッチファイル316やスクリプト317として記述することができる。
シェルプログラム312やスクリプト処理プログラム313から起動された暗号化コマンド実行プログラム315は、引数から暗号化コマンドを得、暗号の復号化や文字列の置換を行い、所望の処理を行う処理プログラム318の起動を行う。
以下、本実施形態における文字列暗号化プログラム314および暗号化コマンド実行プログラム315による処理例を、図1を参照して説明する。以下の説明では、バッチファイル316やスクリプト317に第三者に漏洩させたくない文字列を含むコマンドを記述する必要があると仮定する。
図1において、100がバッチファイル316またはスクリプト317に記述しなければならないコマンドの例を示している。このうち、101がターゲット・プログラム名で、102〜105がコマンド・オプションの引数を示している。ここで、103はログイン名、104はパスワードであり、第三者に漏洩させたくない文字列である。これら103と104を除く文字列はそれぞれ、運用中に変更があり、第三者に漏洩しても問題のない文字列である。
まず、暗号化対象である103を文字列暗号化プログラムの引数として実行することで暗号化文字列123を得る。同様に104から暗号化文字列124を得る。そして、元のコマンドの暗号化対象文字を暗号化文字に置き換えることで暗号化コマンド120を作成することができる。ここで、暗号化文字は他の文字列と区別がつくよう“#”で囲まれたものとし、暗号化文字列の中には“#”は現れないようになっている。
バッチファイルやスクリプトには、この暗号化コマンド全体を暗号化コマンド実行プログラムの引数となるよう記述する。この記述では、ログイン名やパスワードは暗号化されており、この記述のあるバッチファイルやスクリプトを閲覧しただけで元の文字列が漏洩することはない。また、運用中に変更のある文字列はそのまま記述されており、変更が必要な場合は容易に変更することが可能である。
暗号化コマンド実行プログラム315は、図1に示すような暗号化コマンド実行機能130を実現する。まず、暗号化コマンド全体(120)を引数として受け取り(131)、暗号化コマンド内にある暗号化文字列である123と124を抽出する(132)。抽出された暗号化文字列は復号化されて、元の文字列である103と104が得られる(133)。そして、暗号化コマンドの暗号化文字列123と124を、復号化により得られた元の文字列103と104に置き換えることで実際に実行する元のコマンド100を得て(134)、これを実行する(135)。
次に、本実施形態における文字列暗号化プログラム314および暗号化コマンド実行プログラム315による別の処理例を、図2を参照して説明する。
図2において、200がバッチファイル316またはスクリプト317に記述しなければならないコマンドの例を示しており、図1に示した例と同様に、201がターゲット・プログラム名で、202〜205がコマンド・オプションの引数を示している。ここで、203はログイン名、204はパスワードであり、第三者に漏洩させたくない文字列である。その他の文字列は、運用中に変更があり、第三者に漏洩しても問題のない文字列である。
暗号化コマンド生成者は、運用中に変更のある文字列である202と205を置換指示文字列である211と212に置き換えた仮コマンド210を作成する。そして、仮コマンド210を文字列暗号化プログラムの引数として実行することで暗号化仮コマンド231を得る。そして、この暗号化仮コマンド231に置換指示文字列に対応した置換文字列である232と233を追加することで暗号化コマンド230を作成する。
バッチファイルやスクリプトには、この暗号化仮コマンド231と置換文字列232,233を暗号化コマンド実行プログラム315の引数となるよう記述する。この記述では、ログイン名やパスワードは暗号化されており、この記述のあるバッチファイルやスクリプトを閲覧しただけで元の文字列が漏洩することはない。また、運用中に変更のある文字列はそのまま記述されており、変更が必要な場合は容易に変更することが可能である。
暗号化コマンド実行プログラム315は、図2に示すような暗号化コマンド実行機能240を実現する。まず、暗号化仮コマンド231を第1引数として受け取り(241)、これを復号化して(242)、元の仮コマンド210を得る。また、第2引数以後を置換文字列232,233として受け取り(243)、仮コマンド中の置換指示文字列211と212を、置換文字列232と233に置き換えることで実際に実行する元のコマンド200を得て(244)、これを実行する(245)。
以上のような処理によれば、第三者に漏洩させたくない情報をバッチファイルやスクリプトに暗号化して記述でき、バッチファイルが閲覧されても情報が漏洩することを阻止できる。また、運用中に変更になる情報は暗号化せずそのままの記述ができるため、簡単に変更できることで、運用に対して柔軟な対応が可能である。
また、本発明をラッパーとして使用することで、どのようなプログラムに対しても適応が可能であり、かつバッチファイルやスクリプトを実行するシェルやスクリプト処理プログラムにも依存しない。
なお、本発明は上記に例で示した説明に限定されるわけではなく、本発明の趣旨の範囲内において、適宜変形、組み合わせが可能なことは言うまでもない。
また、暗号化の方法も本発明を達成することができれば限定されるものではない。
(実施例1)
上述した暗号化コマンド実行プログラムについて、より詳細に説明する。
本実施例では、暗号化処理として同一の暗号化キーを使用する共通鍵暗号化方式を利用し、UNIX(登録商標)で動作する“CryptExe1”というプログラムで説明する。このプログラムは、文字列暗号化機能と暗号化コマンド実行機能の両方を持っているプログラムである。このプログラム内にはあらかじめ暗号化キー“encrypkey”を埋め込んでいる。
ある処理を行うためにCシェル用のシェルスクリプトに以下のようなコマンドを記述する必要がある場合を例を説明する。
: : :
set FILE = /usr/buf/snd030832
: : :
sendfile $FILE -l login -p passwd -s svr01 -d /usr/tmp03
: : :
ここで、“set FILE = /usr/buf/snd030832”は変数への文字列の代入であり、“FILE”という変数に文字列“/usr/buf/snd030832”を代入している。この例では単に文字列が代入されているが、Cシェルのプログラムにより条件で異なる文字列を代入させることも可能である。
“sendfile”は実行するプログラム名で、他の計算機にファイルを転送する機能のプログラムである。“$FILE”は転送したいファイルのパス名が入った変数名で、ここでは“/usr/buf/snd030832”という転送元のファイルのパス名が変数に代入されている。“login”と“passwd”は転送先の計算機にログインするためのログイン名とパスワード、“svr01”は転送先の計算機を識別するサーバ名、“/usr/tmp03”は転送するファイルを格納するディレクトリのパス名である。ここで、“login”と“passwd”は送信先の計算機にログインするための情報であり、第三者に漏洩すると、その第三者が送信先の計算機にログインができるようになりセキュリティ上問題がある。また、“svr01”と“/usr/tmp03”は定期的に変更することがあるサーバ名とディレクトリ名である。
このコマンドをそのままバッチファイルに記述すれば、バッチファイルが閲覧されることにより“login”と“passwd”は簡単に漏洩してしまう。これを防ぐために以下のようにログイン名とパスワードを暗号化する。
> CryptExe1 -key encrypkey login
#bnD5g#

> CryptExe1 -key encrypkey passwd
#df8klG#
ここで“-key”は“CryptExe1”の文字列暗号化機能を実行させるオプションであり、“encrypkey”は暗号化キーである。この暗号化キーが一致していなければ正しい暗号化は行われないため、正しい暗号化キーを知っている人でなければ正しい暗号化文字列を生成することができない。これによって、“login”と“passwd”に対応する暗号化文字列“#bnD5g#”と“#df8klG#”を得ることができる。暗号化文字列は暗号化してある部分とそうでない部分を区別しやすいよう“#”で囲まれた文字列として生成し、暗号化文字列の先頭と最後以外には“#”が入らないようになっている。そして、この暗号化文字を使ってバッチファイルには以下のように記述する。
: : :
set FILE = /usr/buf/snd030832
: : :
CryptExe1 sendfile $FILE -l #bnD5g# -p #df8klG# -s svr01 -d /usr/tmp03
: : :
ここで“CryptExe1”は暗号化コマンド実行機能を実行する。Cシェルは変数“$FILE”を“/usr/buf/snd030832”に置換して、“CryptExe1”を実行する。“CryptExe1”は以下のように処理を実行する。
(1)引数を連結して一つの文字列として暗号化コマンド“sendfile $FILE -l #bnD5g# -p #df8klG# -s svr01 -d /usr/tmp03”を受け取る。
(2)“#”で囲まれた暗号化文字列である“#bnD5g#”と“#df8klG#”を抽出する。
(3)内部に埋め込まれた暗号化キーである“encrypkey”を使い暗号化文字列を復号化し、元の文字列である“login”と“passwd”を得る。
(4)暗号化文字の“#bnD5g#”と“#df8klG#”をそれぞれ、復号化した文字“login”と“passwd”に置き換えた実行コマンド“sendfile /usr/buf/snd030832 -l login -p passwd -s svr01 -d /usr/tmp03”を生成する。
(5)子プロセスを生成するシステムコール“fork”を発行する。
(6)新しく生成された子プロセスはシステムコール“exec”を発行し、実行コマンドを実行するプロセスとなる。子プロセスを生成した親プロセスではシステムコール“wait”を発行し子プロセスの終了を待機する。
(7)子プロセスが処理を終了すると、待機している親プロセスにそのことが通知され、親プロセスも処理を中止する。
以上の実施例によれば第三者に漏洩させたくないログイン名とパスワードを暗号化してバッチファイルに記述でき、情報の漏洩を防ぐことができる。また、運用中に変更になるサーバ名と転送ファイルを格納するディレクトリは暗号化せずに記述されており、容易に変更が可能である。
なお、上記の例はCシェルで使用するシェルスクリプトであったが、スクリプト処理プログラムであるPerlでは以下のように暗号化コマンドの実行を記述することができる。
: : :
$FILE = "/usr/buf/snd030832" ;
: : :
system
"CryptExe1 sendfile $FILE -l #bnD5g# -p #df8klG# -s svr01 -d /usr/tmp03";
: : :
また、スクリプト処理プログラムであるTclでは以下のように暗号化コマンドの実行を記述することができる。
: : :
set file "/usr/buf/snd030832"
: : :
[exec CryptExe1
"sendfile $file -l #bnD5g# -p #df8klG# -s svr01 -d /usr/tmp03"]
: : :
(実施例2)
上述した実施例1の方法では、シェルスクリプトと“CryptExe1”が盗用され、引数をそのまま出力するようなプログラムを使うことで暗号化文字列から復号化した文字列を得ることができてしまう。例えば、引数を順番に出力する“prtArg”というプログラムは以下のように動作するとする。
> prtArg abc def
ARG1 = abc
ARG2 = def
“prtArg”のようなプログラムを作成することは容易である。実施例1のシェルスクリプトから暗号化文字に対して以下のように“CryptExe1”を使用することで、容易に元の文字列を得ることができる。
> cryptExe1 prtArg #bnD5g# #df8klG#
ARG1 = login
ARG2 = passwd
このような実施例1で想定される問題を解決した実施例を“CryptExe2”というプログラムで説明する。“CryptExe2”が文字列暗号化機能を実行する場合は実施例1の“CryptExe1”と同様であるが、暗号化文字を示す前後の“#”を付加しない。暗号化は以下のようにコマンド全体に対して行う。
> cryptExe2 -key encrypkey
"sendfile /usr/buf/snd030832 -l login -p passwd -s svr01 -d /usr/tmp03”
anjAR$jfak;l@uy8FG5FasgKTJR+$SGHgreRGRWrrgesfTHR
そして得られた暗号化文字を使って、シェルスクリプトに以下のように記述する。
: : :
CryptExe2 "anjAR$jfak;l@uy8FG5FasgKTJR+$SGHgreRGRWrrgesfTHR"
: : :
“CryptExe2”が暗号化コマンド実行機能を実行する場合は、引数を1個しか取らない。複数の引数を指定した場合はエラーを出力しターゲット・プログラムの実行は行わない。2個の引数を指定し、エラーを出力した例を以下に示す。
> CryptExe2 prtArg "anjAR$jfak;l@uy8FG5FasgKTJR+$SGHgreRGRWrrgesfTHR"
Error : Too meny argument (CryptExe2)
本実施例の“CryptExe2”では第一引数全体が暗号化されているため、暗号化文字列の範囲を指定する“#”は不要である。
これにより、シェルスクリプトや“CryptExe2”が盗用されても、暗号化したログイン名やパスワードを復号化することはできない。なぜなら、“CryptExe2”は暗号化コマンドとして引数を1個しか取らないため、引数を表示する“prtArg”のようなプログラムを実行させる記述が挿入できなくなっているためである。
(実施例3)
上述の実施例2ではコマンド全体を暗号化するため、運用中に設定を変更させたい場合もコマンド全体を再度暗号化する手順が必要となり手間が多い。また、暗号化コマンドの提供者とシェルスクリプトの運用者が異なる場合は暗号化コマンドの提供者に暗号化を依頼する必要があり、緊急の設定変更が必要な場合の対応が遅れることもある。さらに、Cシェルなどの変数を使うこともできないので、シェルスクリプトの記述の柔軟性が欠けるといった問題がある。
このような実施例2で想定される問題を解決した実施例を“cryptExe3”というプログラムで説明する。“cryptExe3”を使用する場合は、運用で変更がある文字列や変数で置換したい文字列を置換指示文字列で置き換えた仮コマンドを暗号化する。例えば、実施例1で説明したコマンドでは、以下のように仮コマンドを暗号化する。
> cryptExe3 -key encrypkey "sendfile $1$ -l login -p passwd -s $2$ -d $3$"
qoSfHhdtrhTRH5(GDsddffFREHTnhshO&Fshfd
ここで、置換指示文字列は“$1$”、“$2$”、“$3$”であり、それぞれ元のコマンドの“$FILE”、“svr01”、“/usr/tmp03”を置き換えている。そして得られた暗号化仮コマンドを使って、シェルスクリプトには以下のように記述する。
: : :
set FILE = /usr/buf/snd030832
: : :
CryptExe1 "qoSfHhdtrhTRH5(GDsddffFREHTnhshO&Fshfd" $FILE svr01 /usr/tmp03
: : :
ここで“CryptExe3”は暗号化コマンド実行機能を実行する。“$FILE”はこの暗号化コマンドを実行する際にCシェルによって“/usr/buf/snd030832”に置換される。“CryptExe3”は以下のように処理を実行する。
(1)“CryptExe3”は第1引数を暗号化仮コマンドとして受け取る。
(2)内部に埋め込まれた暗号化キーである“encrypkey”を使い暗号化仮コマンドを復号化し、元の仮コマンドである“sendfile $1$ -l login -p passwd -s $2$ -d $3$”を得る。
(3)置換文字列として第2引数以後の“/usr/buf/snd030832”、“svr01”、“/usr/tmp03”を受け取る。
(4)仮コマンド中の置換指示文字列“$1$”、“$2$”、“$3$”を、それぞれ置換文字列の“/usr/buf/snd030832”、“svr01”、“/usr/tmp03”と置き換えた実行コマンド“sendfile /usr/buf/snd030832 -l login -p passwd -s svr01 -d /usr/tmp03”を生成する。
(5)子プロセスを生成するシステムコール“fork”を発行する。
(6)新しく生成した子プロセスはシステムコール“exec”を発行し、実行コマンドを実行するプロセスとなる。子プロセスを生成した親プロセスではシステムコール“wait”を発行し子プロセスの終了を待機する。
(7)子プロセスが処理を終了すると、待機している親プロセスにそのことが通知され、親プロセスも処理を中止する。
以上説明した実施例によれば、第三者に漏洩させたくないログイン名とパスワードは暗号化仮コマンドとしてバッチファイルに記述でき、情報の漏洩を防ぐことができる。また、運用中に変更になるサーバ名と転送ファイルを格納するディレクトリは暗号化せずに置換文字列として記述されており、容易に変更が可能である。さらに、暗号化仮コマンドは第1引数のみに与えるよう規定しているため、引数を表示する“prtArg”のようなプログラムを実行させる記述が挿入できなくなっており、バッチファイルと“CryptExe3”が盗用されてもログイン名とパスワードを復号化することはできない。
以上、本発明の実施形態を詳述したが、本発明は、前述の実施形態の機能を実現するソフトウェアのプログラムを、コンピュータに直接あるいは遠隔から供給し、そのコンピュータがその供給されたプログラムコードを読み出して実行することによって達成される。
したがって、本発明の機能処理をコンピュータで実現するために、そのコンピュータにインストールされるプログラムコード自体およびそのプログラムを格納した記憶媒体も本発明を構成することになる。つまり、本発明の特許請求の範囲には、本発明の機能処理を実現するためのコンピュータプログラム自体、およびそのプログラムを格納した記憶媒体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、そのホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明のクレームに含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
実施形態における計算機の処理例を説明する図である。 実施形態における計算機の別の処理例を説明する図である。 本発明の実施に好適な計算機の構成例を示すブロック図である。

Claims (8)

  1. 入力された文字列を解釈して、それに応じたプログラムをコンピュータに実行させるためのコマンドインタプリタ・プログラムであって、
    文字列を入力する入力ステップのコードと、
    前記入力ステップにより入力された前記文字列の少なくとも一部を暗号化する暗号化ステップのコードと、
    前記暗号化ステップにより暗号化された前記文字列の少なくとも一部を復号化することで前記文字列を復元する復元ステップのコードと、
    前記復元ステップにより復元された前記文字列に応じたプログラムを実行を指示する指示ステップのコードと、
    を含むことを特徴とするコマンドインタプリタ・プログラム。
  2. 前記復元ステップのコードは、
    前記暗号化ステップにより暗号化された前記文字列の少なくとも一部を抽出する抽出ステップのコードと、
    前記抽出ステップにより抽出された前記文字列の少なくとも一部を復号化する復号化ステップのコードと、
    前記暗号化ステップにより暗号化された前記文字列の少なくとも一部を、前記復号化ステップでの復号化結果で置換する置換ステップのコードと、
    を含むことを特徴とする請求項1に記載のコマンドインタプリタ・プログラム。
  3. 入力された文字列を解釈して、それに応じたプログラムをコンピュータに実行させるためのコマンドインタプリタ・プログラムであって、
    特定の置換指示文字列を含む第1のコマンド文字列が暗号化された暗号化文字列と、前記置換指示文字列に対応する置換文字列とを入力する入力ステップのコードと、
    前記入力ステップにより入力された前記暗号化文字列を復号化する復号化ステップのコードと、
    前記復号化ステップにより復号化された前記第1のコマンド文字列に含まれる前記置換指示文字列を、前記置換文字列で置換することで第2のコマンド文字列を生成する生成ステップのコードと、
    前記生成ステップにより生成された前記第2のコマンド文字列に応じたプログラムの実行を指示する指示ステップのコードと、
    を含むことを特徴とするコマンドインタプリタ・プログラム。
  4. 請求項1から3までのいずれかに記載のコマンドインタプリタ・プログラムを格納したコンピュータ読み取り可能な記憶媒体。
  5. コンピュータにプログラムを実行させるための方法であって、
    文字列を入力する入力ステップと、
    前記入力ステップにより入力された前記文字列の少なくとも一部を暗号化する暗号化ステップと、
    前記暗号化ステップにより暗号化された前記文字列の少なくとも一部を復号化することで前記文字列を復元する復元ステップと、
    前記復元ステップにより復元された前記文字列に応じたプログラムの実行を指示する指示ステップと、
    を有することを特徴とする方法。
  6. 複数のプログラムを格納した記憶デバイスと、
    前記記憶デバイスに接続され、前記複数のプログラムを選択的に実行するプロセッサと、
    を有し、
    前記プロセッサは、
    入力した文字列の少なくとも一部を暗号化し、
    暗号化した前記文字列の少なくとも一部を復号化することで前記文字列を復元し、
    復元した前記文字列に応じたプログラムを実行する
    ことを特徴とする情報処理装置。
  7. コンピュータにプログラムを実行させるための方法であって、
    特定の置換指示文字列を含む第1のコマンド文字列が暗号化された暗号化文字列と、前記置換指示文字列に対応する置換文字列とを入力する入力ステップと、
    前記入力ステップにより入力された前記暗号化文字列を復号化する復号化ステップと、
    前記復号化ステップにより復号化された前記第1のコマンド文字列に含まれる前記置換指示文字列を、前記置換文字列で置換することで第2のコマンド文字列を生成する生成ステップと、
    前記生成ステップにより生成された前記第2のコマンド文字列に応じたプログラムの実行を指示する指示ステップと、
    を含むことを特徴とする方法。
  8. 複数のプログラムを格納した記憶デバイスと、
    前記記憶デバイスに接続され、前記複数のプログラムを選択的に実行するプロセッサと、
    を有し、
    前記プロセッサは、
    特定の置換指示文字列を含む第1のコマンド文字列が暗号化された暗号化文字列と、前記置換指示文字列に対応する置換文字列とを入力し、
    入力した前記暗号化文字列を復号化し、
    復号化した前記第1のコマンド文字列に含まれる前記置換指示文字列を、前記置換文字列で置換することで第2のコマンド文字列を生成し、
    生成した前記第2のコマンド文字列に応じたプログラムを実行する
    ことを特徴とする情報処理装置。
JP2004012189A 2004-01-20 2004-01-20 コマンドインタプリタ・プログラム、情報処理装置及び方法 Pending JP2005208752A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004012189A JP2005208752A (ja) 2004-01-20 2004-01-20 コマンドインタプリタ・プログラム、情報処理装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004012189A JP2005208752A (ja) 2004-01-20 2004-01-20 コマンドインタプリタ・プログラム、情報処理装置及び方法

Publications (2)

Publication Number Publication Date
JP2005208752A true JP2005208752A (ja) 2005-08-04
JP2005208752A5 JP2005208752A5 (ja) 2007-03-01

Family

ID=34898643

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004012189A Pending JP2005208752A (ja) 2004-01-20 2004-01-20 コマンドインタプリタ・プログラム、情報処理装置及び方法

Country Status (1)

Country Link
JP (1) JP2005208752A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007156511A (ja) * 2005-11-30 2007-06-21 Brother Ind Ltd 画像データ送信システム、および画像データ送信システム用プログラム
JP5736549B1 (ja) * 2014-03-11 2015-06-17 パナソニックIpマネジメント株式会社 情報処理装置及び情報処理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09259044A (ja) * 1996-03-21 1997-10-03 Fuji Xerox Co Ltd 機密保護機能付き情報処理装置および機密保護方法
JPH10161864A (ja) * 1996-11-28 1998-06-19 Nippon Telegr & Teleph Corp <Ntt> ソフトウェアの保護方式
JP2001067268A (ja) * 1999-08-24 2001-03-16 Toshiba Corp コンテンツ管理方法及び記憶媒体
JP2003509621A (ja) * 1999-09-14 2003-03-11 フオルクスワーゲン・アクチエンゲゼルシヤフト 惰性運転中にスロットルバルブによって内燃機関を運転するための方法及び装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09259044A (ja) * 1996-03-21 1997-10-03 Fuji Xerox Co Ltd 機密保護機能付き情報処理装置および機密保護方法
JPH10161864A (ja) * 1996-11-28 1998-06-19 Nippon Telegr & Teleph Corp <Ntt> ソフトウェアの保護方式
JP2001067268A (ja) * 1999-08-24 2001-03-16 Toshiba Corp コンテンツ管理方法及び記憶媒体
JP2003509621A (ja) * 1999-09-14 2003-03-11 フオルクスワーゲン・アクチエンゲゼルシヤフト 惰性運転中にスロットルバルブによって内燃機関を運転するための方法及び装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007156511A (ja) * 2005-11-30 2007-06-21 Brother Ind Ltd 画像データ送信システム、および画像データ送信システム用プログラム
JP5736549B1 (ja) * 2014-03-11 2015-06-17 パナソニックIpマネジメント株式会社 情報処理装置及び情報処理方法

Similar Documents

Publication Publication Date Title
US6944857B1 (en) Method, system, computer program product, and article of manufacture for updating a computer program according to a stored configuration
US7089553B1 (en) Method, system, computer program product, and article of manufacture for downloading a remote computer program according to a stored configuration
US8230222B2 (en) Method, system and computer program for deploying software packages with increased security
US7992084B2 (en) Document management apparatus, document management method, document management program, and storage medium
JP2005235055A (ja) 情報処理装置および情報処理装置におけるセキュリティ確保方法
CN110263531B (zh) 一种初始化账号的密码处理方法、系统以及电子设备
US8284942B2 (en) Persisting private/public key pairs in password-encrypted files for transportation to local cryptographic store
JP4027482B2 (ja) 暗号復元を行う翻訳装置およびその方法
KR101134116B1 (ko) 응용프로그램과 부가응용프로그램의 결합 방법 및 실행 방법
CN114547558A (zh) 授权方法、授权控制方法及装置、设备和介质
CN106326691A (zh) 加解密功能的实现方法、装置及服务器
US8607226B2 (en) Solution for locally staged electronic software distribution using secure removable media
CN112270002B (zh) 全盘加密方法、系统运行方法和电子设备
JP2004171367A (ja) 回路動作シミュレーション装置、回路動作シミュレーション方法、回路動作シミュレーションプログラム、および回路情報復号化プログラム
US7703092B1 (en) Method, system, computer program product, and article of manufacture for installation and configuration of a computer program according to a stored configuration
US7290137B2 (en) Information processing apparatus, executable module generating method, and storage medium
JP4818279B2 (ja) プログラム処理装置、プログラム処理方法及びプログラム
JP2005208752A (ja) コマンドインタプリタ・プログラム、情報処理装置及び方法
US7003800B1 (en) Self-decrypting web site pages
US8214908B2 (en) Electronic musical apparatus, control method therefor, and program for implementing the control method
JP5368969B2 (ja) ソフトウェアのインストール方法、インストールシステム、および、コンピュータプログラム
Freeman et al. Mastering Ansible: Effectively automate configuration management and deployment challenges with Ansible 2.7
Freeman et al. Mastering Ansible: Automate configuration management and overcome deployment challenges with Ansible
JP4128982B2 (ja) 情報処理装置及びその情報処理方法、コンピュータプログラム及び記憶媒体
Bowen et al. Apache administrator's handbook

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070115

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100402

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100527

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100614

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101217