日本−日本語 |
|
|
HP OpenVMS: システム・セキュリティ・ガイド > パート III システム管理者のためのセキュリティ第9章 暗号化機能の使用 |
|
この章では以下の内容について説明します。
ファイルの暗号化および復号を行う前に,まずキーを作成する必要があります。 キーの定義には,次のように ENCRYPT/CREATE_KEY コマンドを使用します。 ENCRYPT /CREATE key-name key-value [ qualifiers ] パラメータの意味は以下のとおりです。
AES キーに対しては,次のように /AES 修飾子を追加する必要があります。 $ ENCRYPT /CREATE_KEY keyname "This is my secret key" /AES このコマンドは,キーの長さが 21 文字の AES キーを生成します。 キー長の最短要件を満たし,暗号の最大文字数(約240)を超えない範囲でキーの長さを指定する必要があります。 /AES 修飾子についての詳細は,『HP OpenVMS DCL ディクショナリ』 を参照してください。 キーのアルゴリズムの指定には,/KEY_ALGORITHM 修飾子を使用します。/AES 修飾子を使用する際の DES キーおよび AESCBC128 に対するデフォルトのキー・アルゴリズムは DESCBC です。 詳細は 9.2.7.1 項 「/KEY_ALGORITHM 修飾子」 を参照してください。 ENCRYPT /CREATE_KEY コマンドでキー名を指定する際には,以下のルールに従って文字列を指定してください。
キー名を忘れないように,意味のある文字列を使用して指定してください。
ENCRYPT /CREATE_KEY コマンドでキー値を指定する際は,次のルールでテキスト文字列あるいは16進数の定数を指定してください。 ASCII テキスト文字列 (デフォルト):
次のコマンドでは,文字列値(And you yourself shall keep the key of it)で HAMLET という名前のキーを定義しています。
16 進数の定数:
次のコマンドは,16 進数 2F4A98F46BBC11D で ARCANE という名前のキーを定義しています。
キー値を選択する際には ウイーク・キーは使用しないでください。 ウイーク・キーとは,文字列あるいは文字列グループを反復したパターンのキー値です。 このようなパターンのキー値を使用すると,認証されていないユーザが簡単に復号できる暗号になってしまう可能性があります。 たとえば,16 進数定数 0101010101010101 やテキスト文字列 'abcabcabc' はウイーク・キーです。 ウイーク・キーを使用すると,次のような状況が発生する可能性があります。
あるウイーク・キーで暗号化した後に別のウイーク・キーで暗号化すると,元のプレーンテキストに戻る場合があります。 HP は既知のウイーク・キーのテーブルを提供しています。ユーザが定義したキーは,このテーブルを参照してチェックされ,ウイーク・キーに該当する場合はエラー・メッセージが表示されます。 キーが正しく作成されたかどうかを確認するには,/LOG 修飾子を使用します。 たとえは,次のコマンドはキー HAMLET が定義されたことを報告しています。
次の例は AES キーを確認しています。
このコマンドでは,DES キーとではないことを示すために AES キーのフラグが指定されています。 キーを定義する際,暗号化された形式でキー格納テーブルに保管されます。キー値はキー名の下に保管されます。ファイルを暗号化する際,プロセスは保管された情報を取り出し,次の処理を行います。
キー格納テーブルには,どのユーザがキーにアクセス可能かが定義されています。次のキー格納テーブルがユーザ・アクセスを制御します。
キー格納テーブルにキーを入力する場合は,次の ENCRYPT /CREATE_KEY 修飾子を使用します。
ファイルを暗号化する際に使用するキーは,そのファイルのパスワードとして機能します。 第三者には秘密にしておくことが重要です。 また,キー値は忘れないようにしてください。 ファイルの復号には,キーとキー値の両方が必要になります。 プロセス・キー格納テーブルに保管されたキーは,テーブルにキーを定義したプロセスが存在する間,存続します。 他のプロセス固有の構造体と同様,ユーザがログアウトするとプロセス・キー格納テーブルは見えなくなります。 意味のあるキー値は憶えやすいですが,ニックネームや愛車の製造メーカなど,第三者が容易に推測できる値は避けてください。 キー名や値を,オフィスの見える場所に張ったりファイルに保管することも避けてください。 オペレ-ティング・システムのパスワードと同様に,キー値を長くすれば,推測される可能性は低くできます。 DES アルゴリズムでは,最低で 8 文字の長さのキー値を必要とします。キー値のセキュリティを向上させるために,8 文字以上の値を指定してください。 AES アルゴリズムでは,必要な最小キー・サイズは下記のとおりです。
ENCRYPT /CREATE_KEY コマンドでキーを定義した後,このキーを使用してファイルを暗号化してください。キーの他に,プレーン・テキスト・ファイルを指定して ENCRYPT コマンドを実行してください。 ENCRYPT コマンドの構文は次のとおりです。 ENCRYPT file-spec key-name [ qualifiers ] パラメータの意味は以下のとおりです。
次の例は,キーの定義方法と,AES および DES アルゴリズムを使用して定義されたキーで testfile.txt ファイルを暗号化する方法を示しています。
AES キーが必要な場合,/DATA_ALGORITHM および /KEY_ALGORITHM で AES アルゴリズムを指定する必要があります。 /DATA_ALGORITHM 修飾子が指定されていない場合, デフォルトで DESCBC データ・アルゴリズムが使用されます。 /KEY_ALGORITHM 修飾子が指定されていない場合,デフォルトで DESCBC キー・アルゴリズムが使用されます。 ENCRYPT コマンドで指定するプレーンテキスト・ファイルは,ディレクトリ・ファイルではなく,ディスクに存在するファイルを指定してください。 複数のファイルを指定する場合は,ファイル指定にワイルドカードを使用してください。 ファイル選択を制御するには,適切な ENCRYPT コマンド修飾子を使用します。 ワイルドカード文字を使用する場合は,不正なブロックを含むディレクトリ・ファイルあるいはファイルを指定しないように注意してください。 暗号化処理の出力は暗号文ファイルです。 暗号化された入力ファイルごとに 1 つの暗号文ファイルが作成されます。 デフォルトでは,ENCRYPT コマンドは,現在の入力ファイルよりもバージョン番号が 1 つ高い,同じ名前の暗号文ファイルを出力します。 別の出力ファイル名を指定するには /OUTPUT 修飾子を使用します。 デフォルトから変更したいファイル指定部分だけを指定してください。 たとえば,次のコマンドは,現在のディレクトリにあるワイルドカード・ファイル指定 *.COM で一致するすべてのファイルを暗号化します。 /OUTPUT 修飾子は,ファイル・タイプ ENC で出力ファイルを作成することを指定してします。 FRANCISSCOTT はファイルの暗号化に使用されるキーです。
すでに存在するファイルは指定しないでください。たとえば,すでに NEWS.DAT;2 が存在する場合は,NEWS.DAT;2 の名前で出力ファイルを指定することはできません。ただし,入力ファイルおよび出力ファイルのどちらにも,ファイル名として NEWS.DAT を指定することはできます。 デフォルトでは,暗号化処理についての情報は表示されません。 SYS$COMMAND にファイル暗号化処理についての情報を表示するには,/SHOW 修飾子を使用してください。 /SHOW 修飾子の形式は次のとおりです。 /SHOW=keyword あるいは /SHOW=keyword-list 次のキーワードを 1 つあるいは複数指定します。
FILES キーワードは,入力および出力のファイル指定を表示します。 たとえば,次のコマンドの /SHOW=FILES は,暗号化の際に, 各入出力ファイル指定を表示することを指定しています。
各ファイル操作が完了した後に暗号化ストリームの統計値を表示する場合は,STATISTICS キーワードを使用します。次のような統計値が表示されます。
次のコマンドは,SYS$COMMAND に暗号化ストリーム統計値を表示することを指定しています。
複数の入力ファイルを指定するには,入力ファイル指定にワイルドカードを使用して ENCRYPT コマンドを実行します。 次の ENCRYPT コマンド修飾子でファイルを選択することができます。
/BACKUP 修飾子は,最新のバックアップの日付データをもとに,暗号化するファイルを選択します。 この修飾子は,/BEFORE あるいは /SINCE 修飾子のいずれかを使用している場合のみ機能します。 /BACKUP 修飾子の形式は次のとおりです。 /BACKUP /BEFORE[=time] あるいは /BACKUP /SINCE[=time] time パラメータには OpenVMS 時間を指定します。 時間の指定を省略すると TODAY が使用されます。TODAY は現在の年月日の 00:00:00 です。 次のコマンドは,現在のディレクトリにあるファイルのうち,00:00:00 15-APR-2009 以前のバックアップ・コピーを持ち,ワイルドカードファイル指定 *.COM と一致するすべてのファイルを暗号化することを選択します。
/BACKUP 修飾子は /EXPIRED あるいは /MODIFIED 修飾子と同時には使用しないでください。 /BEFORE 修飾子は,この修飾子に指定した時間よりも前に作成されたファイルを, 暗号化するファイルとして選択します。 /BEFORE 修飾子の形式は次のとおりです。 /BEFORE[=time] time パラメータには OpenVMS 時間を指定します。 時間の指定を省略した場合,TODAY が使用されます。TODAY は現在の年月日の 00:00:00 です。 次のコマンドは,現在のディレクトリにあるファイルのうち,00:00:00 15-APR-2009 よりも前に作成され,ワイルドカードファイル指定 *.COM に一致するすべてのファイルを暗号化します。
/BY_OWNER 修飾子は,特定の UIC を持つファイルを暗号化する際に使用します。 UIC の指定を省略すると,現在のプロセスの UIC が使用されます。 /BY_OWNER 修飾子の形式は次のとおりです。 /BY_OWNER=uic uic パラメータにはファイルの所有者の UIC を指定します。 次のコマンドは,現在のディレクトリに存在し,UIC が [FLYNN] のユーザが所有するファイルのうち,ワイルドカード指定 *.COM に一致するすべてのファイルを選択しています。
デフォルトでは,暗号化の対象として選択されたことを確認するためのプロンプトは表示せず,コマンド行で指定されたすべての入力ファイルが処理されます。 暗号化されるファイルごとにファイル名を示したプロンプトを表示したい場合は,/CONFIRM 修飾子を指定してください。 プロンプトに対する応答によって,個々のファイルを暗号化するかどうかが決まります。
次のコマンドは,現在のディレクトリに存在するファイルのうち,ワイルドカード指定 *.COM に一致するすべてのファイルを暗号化の対象として選択しています。 /CONFIRM 修飾子が指定されているため,暗号化するファイルごとに確認のためのプロンプトが表示されます。MOVE.COM;3 ファイルに対する応答は肯定的なので,出力ファイル MOVE.COM;4 が作成されます。
暗号化の対象から除外するファイルを指定する場合は,/EXCLUDE 修飾子を使用します。/EXCLUDE 修飾子で指定するファイル指定と一致するファイルは暗号化されません。/EXCLUDE 修飾子の形式は次のとおりです。 /EXCLUDE=(file-spec[,...]) file-spec パラメータには,暗号化せずにそのまま残すファイルの名前を指定します。 ファイル指定ではワイルドカードが使用可能です。 このファイル指定にデフォルト値はありません。 ディレクトリ・ファイルは暗号化できないため,それらを /EXCLUDE 修飾子で指定する必要はありません。 ただし,/EXCLUDE=*.DIR, と指定しても, %ENCRYPT-W-FILNODIR, file encryption of directories is not supported, filename.dirという警告メッセージは表示されません。 次のコマンドは,/EXCLUDE で指定した LOGIN.COM を除き,現在のディレクトリにあり *.COM のワイルドカード指定に一致するすべてのファイルを暗号化します。
/EXPIRED 修飾子は,満了日になる日付にもとづいて暗号化するファイルを選択します(満了日は SET FILE /EXPIRATION_DATE コマンドで設定されます)。 この修飾子は,/BEFORE あるいは /SINCE と同時に使用する場合のみ意味を持ちます。/EXPIRED 修飾子の形式は次のとおりです。 /EXPIRED /BEFORE[=time] あるいは /EXPIRED /SINCE[=time] time パラメータには OpenVMS 時間を指定します。 時間の指定を省略した場合,TODAY が使用されます。TODAY は現在の年月日の 00:00:00 です。 次のコマンドは,現在のディレクトリにあるファイルのうち,*.COM のワールドカード指定に一致し,00:00:00 15-APR-2009 で満了日になるすべてのファイルを暗号化の対象として選択します。
/EXPIRED 修飾子は /BACKUP あるいは /MODIFIED と同時には使用しないでください。 /MODIFIED 修飾子は,ファイルの修正日時にもとづいて,暗号化するファイルを選択します。この修飾子は,/BEFORE あるいは /SINCE 修飾子と同時に使用する場合のみ機能します。 /MODIFIED 修飾子の形式は次のとおりです。 /MODIFIED /BEFORE[=time] あるいは /MODIFIED /SINCE[=time] time パラメータには OpenVMS 時間を指定します。 時間の指定を省略した場合,TODAY が使用されます。TODAY は現在の年月日の 00:00:00 です。 次のコマンドは,現在のディレクトリにある *.COM のワイルドカード指定に一致するすべてのファイルのうち 00:00:00 15-APR-2009 以降に変更されたものを暗号化の対象として選択します。
/MODIFIED 修飾子は /BACKUP あるいは /EXPIRED と同時には使用しないでください。 /SINCE 修飾子は,この修飾子で指定された日時以降に作成されたファイルを暗号化の対象として選択します。/SINCE 修飾子の形式は次のとおりです。 /SINCE[=time] time パラメータには OpenVMS 時間を指定します。 時間の指定を省略した場合,TODAY が使用されます。TODAY は現在の年月日の 00:00:00 です。 次のコマンドは,現在のディレクトリにあるワイルドカード指定 *.COM に一致するすべてのファイルのうち 00:00:00 15-APR-2009.以降に作成されたのものを暗号化の対象として選択します。
デフォルトでは,ENCRYPT が入力ファイルを暗号化し,出力ファイルに書き込んでも,入力ファイルはそのまま残されます。 ただし,ファイルのセキュリティの観点から,ファイルを暗号化した後,プレーンテキスト・ファイルを削除することを検討してください。 DCL の DELETE コマンドに /ERASE 修飾子を指定することにより,ディスクからプレーンテキスト・ファイルの内容を削除することができます。 あるいは,次の修飾子を指定して ENCRYPT コマンドを使用することができます。
/DELETE 修飾子は,暗号化処理が完了し出力ファイルに書き込んだ後に,入力ファイルを削除します。 入力ファイルに複数のバージョンがある場合は,すべてのファイルは削除されません。 /DELETE は,暗号化の対象となったバージョンの入力ファイルのみを削除します。 次のコマンドは,暗号化キー TWENTYFIVECENTS を使用して,SAVEDMAIL.MAI ファイルを削除します。 /DELETE 修飾子が指定されているため,暗号化されたデータが出力ファイルに書き込まれた後に,入力ファイルが削除されます。
ファイルを削除あるいはパージするとファイルのヘッダ・レコードが破壊されるため,通常の方法ではそのファイルにアクセスできなくなります。 ただしそのファイルの情報は,上書きされるまではディスク上に残されます。このようなファイル・データをディスクから取り出す技法をディスク・スカビンジングと呼びます。ディスク・スカビンジングでデータを取り出せないようにするには,/DELETE 修飾子と同時に /ERASE 修飾子を使用します。 /ERASE を指定すると,OpenVMS オペレーティング・システムは,入力ファイルが保管されていた場所をデータ・セキュリティ・パターンで上書きします。 これにより,そのデータはディスク上に存在しなくなります。 次のコマンドは,SAVEDMAIL.MAI を暗号化した後,入力ファイルを削除する前にデータ・セキュリティ・パターンでデータを上書きすることを指定しています。
ファイルはランダムに生成されるデータ・キーにより暗号化されます。この処理の利点の 1 つは,全く同じ 2 つのプレーンテキスト形式のファイルを同じコマンドを使用して暗号化しても,暗号化されたそれぞれのファイルが同じにならない点です。 DES を実装した OpenVMS の暗号化機能では,次の DES アルゴリズム・モードを使用します。
これらのモードでは,それぞれ次のように、異なる暗号化処理を実行します。
AES アルゴリズムは次のモードを使用します。
データ・キーおよびファイル・データを暗号化するための暗号化アルゴリズムを選択できます。図 9-1 は,暗号化のキーとアルゴリズムの関係を示しています。この図では以下のことを説明しています。
mmm には,CBC,ECB,CFB,あるいは OFB のいずれかのモードを指定し,kkk には 128,192,あるいは 256 ビットを指定します。 修飾子は,次のように復号処理に影響します。
キーおよび初期化ベクトルの暗号化にデフォルト以外のアルゴリズムを指定する場合は,/KEY_ALGORITHM 修飾子を使用します。 この修飾子の形式は以下のとおりです。 /KEY_ALGORITHM={DESCBC (デフォルト)|AESmmmkkk} たとえば,次のコマンドは,データ・キーと初期化ベクトルを保護するために TWENTYFIVECENTS キーと共に DESCFB アルゴリズムを使用しています。
次の例のように,AESCBC128 の指定を短縮して,/KEY_ALGORITHM=AES を使用することができます。
ファイルの暗号化にデフォルト以外のアルゴリズムを指定する場合は,/DATA_ALGORITHM 修飾子を指定します。この修飾子の形式は次のとおりです。 /DATA_ALGORITHM={DESCBC (デフォルト)|AESmmmkkk} たとえば,次のコマンドは Cipher Feedback モードの DES アルゴリズム (DESCFB) を使用して SAVEDMAIL.MAI ファイルを暗号化します。
ファイルの暗号化で /DATA_ALGORITHM 修飾子にデフォルトの DESCBC を使用する場合,復号の際にはこの修飾子は省略できます。 次のように AESCBC128 の指定を省略して /DATA_ALGORITHM=AES を使用することができます。
ファイルの暗号化にデフォルトの DESCBC 以外のアルゴリズムを選択する場合, DCL の ENCRYPT コマンドではデータとキーのアルゴリズム修飾子を使用でき, DECRYPT コマンドではキーのアルゴリズム修飾子を使用できます。 AES でファイルを暗号化する場合,/DATA_ ALGORITHM=AESmmmkkk と/KEY_ALGORITHM=AESmmmkkk の両方を指定してください。
キーとそのキー・アルゴリズムは一致していなければなりません。 AES キーは AES キー・アルゴリズムで使用しなければなりません。 また,DES キーは DES キー・アルゴリズムで使用しなければなりません。ENCRYPT コマンドで /DATA_ ALGORITHM=AESmmmkkk が指定されていない場合のデフォルトのデータ・アルゴリズムは DES です。DES キーと KEY_ALGORITHM=DES を使用するとデータは強力なアルゴリズムで保護されますが,キーは保護されません。
AES で復号する場合は,/KEY_ ALGORITHM=AESmmmkkk 修飾子のみを指定してください。 これは,そのファイルのデータ・レコードを復号する際に使用されるランダム・キーを含むランダム・キー・レコードの復号に,このキー・アルゴリズムが使用されるためです。 データ・アルゴリズムの指定は必須ではありませんが,指定がない場合は unrecognized-qualifier エラー・メッセージが出力されます。
暗号化の前にプレーンテキスト・ファイルのサイズを小さくしておくには,/COMPRESS 修飾子を使用します。 データ圧縮を使用すると,暗号化したファイルを物理的に転送する際のメディアの容量と,ネットワーク間で転送する際の時間を節約できます。 圧縮の効果は,ファイル内のデータの構造に依存します。この修飾子を使用するかどうかを判断する際には,性能低下との兼ね合いを考慮してください。一般に,圧縮ファイルは復号処理は速くなりますが,暗号化の処理時間は長くなります。次のような場合は /COMPRESS 修飾子の使用を検討してください。
次のコマンドでは,暗号化の前に SAVEDMAIL.MAI ファイルを圧縮しています。
認証とは,ファイルが変更されていないかどうかを確認するためのチェック処理です。 ENCRYPT/AUTHENTICATE コマンドは,プレーンテキスト・ファイルあるいは暗号文ファイルの変更を検出します。 ファイルの内容をもとに Message Authentication Code (MAC) が計算され,1 つ あるいは複数のファイルに関連付けられます。 セキュリティ MAC を作成しないように特別に要求している場合を除き,セキュリティ設定をもとに追加の MAC が作成されます。 後でファイルの整合性を確認したい場合,MAC を再計算し,現在の値と保管されている MAC とを比較します。 ENCRYPT /AUTHENTICATE コマンドを使用する前に,MAC とファイルを関連付ける処理を完了してください。
ENCRYPT /AUTHENTICATE コマンドの構文は次のとおりです。 ENCRYPT /AUTHENTICATE file-spec key-name [ qualifiers ] パラメータの意味は次のとおりです。
SYS$OUTPUT に認証処理に関する要約レポートが表示されます。 ENCRYPT /AUTHENTICATE では次の修飾子を使用できます。
また,ENCRYPT コマンドで利用可能な次のファイル選択修飾子をすべて使用することができます。 /BACKUP,/BEFORE,/BY_OWNER,/CONFIRM,/EXCLUDE,/EXPIRED,/MODIFIED および /SINCE.。 以下の項で,/DATABASE,/LOG,/SECURITY,/OUTPUT および /UPDATE 修飾子を ENCRYPT /AUTHENTICATE で使用する方法について説明します。 ファイルとの MAC の関連付けや,以前の MAC と新しい MAC の置き換えには,/UPDATE 修飾子を使用します。/UPDATE 修飾子は,ファイルの内容とセキュリティ設定から作成された 2 つの異なる MAC をアップデートします。次のコマンドは,現在のディレクトリのすべてのファイルに対して MAC 値を作成します。
2 組の要約情報が表示されます。 最初の要約情報はファイルの内容から生成された MAC 値のもので,2 つめの要約情報はセキュリティ情報から生成された MAC 値のものです。 MAC がこれらのファイルに関連付けられるのは初めてなので,認証済み(要約メッセージ 1) あるいは認証失敗(要約メッセージ 2) と報告されているものはありません。それぞれの要約レポートの最後のメッセージは,これらのファイルに関付けられた古い MAC が無いことを示しています。 MAC はバイナリ・データベースに保管されます。このため,/NODATABASE あるいは /NOSECURITY を /UPDATE と共に指定することはできません。 他に修飾子が指定されていなければ,ENCRYPT /AUTHENTICATE コマンドは以前の MAC と現在の MAC を比較します。また,現在 MAC が関連付けられていないファイルについても報告されます。 次のコマンドでは,現在のディkレクトリにあるすべてのファイルについての状態を報告しています。
データベース・ファイルは MAC 値をバイナリ形式で保管します。デフォルトでは, ファイルの内容から生成されたバイナリ MAC 値は SYS$LOGIN:ENCRYPT$MAC.DAT に保管されます。/DATABASE 修飾子を使用して別のファイルに MAC 値を保管することもできます。 次のコマンドは,MAC 値を保管する代替ファイルを選択しています。
/NODATABASE を指定すると MAC 値は保管されません。 次回 ENCRYPT /AUTHENTICATE コマンドを使用したときには確認すべき現在の MAC 値は存在しないため,新しいファイルとして処理されます。 /UPDATE 修飾子が使用されている場合,セキュリティ設定に基づく MAC エントリは自動的に作成され,セキュリティ・データベースに保管されます。 セキュリティ設定に基づいた MAC 値を生成したくない場合は,ENCRYPT /AUTHENTICATE コマンドで /NOSECURITY 修飾子を使用してください。 セキュリティ・データベース内のエントリは,所有者,プロテクション設定,あるいは ACL (設定されている場合) などのセキュリティ設定を使用して生成されます。デフォルトでは,セキュリティ MAC 値は ENCRYPT$SEC.DAT データベースに保管されます。セキュリティ MAC 値を代替ファイルに設定する場合は /SECURITY 修飾子を使用できます。 次のコマンドでは,セキュリティ MAC 値を保管する代替ファイルを選択しています。
MAC 値と状態情報は,バイナリ MAC データベースに加え,読み取り可能な形式でも保管されます。デフォルトでは,読み取り可能な MAC 値は SYS$LOGIN:ENCRYPT$MAC.LIS に保管されます。 読み取り可能な値を代替ファイルに保管する場合は,/OUTPUT 修飾子を使用します。デフォルトのファイル拡張子は .LIS です。 次のコマンドでは,リスト・ファイルとして SYS$LOGIN:08MAC.LIS を指定しています。
SYS$OUTPUT の内容を表示するには,次のようなコマンドを実行します。
このリスト・ファイルの作成を行なわない場合は,/NOOUTPUT 修飾子を使用します。 各ファイルの認証処理の結果を表示するには,/LOG 修飾子を使用します。たとえば, 次のコマンドは,使用している端末画面にそれぞれの認証処理の結果を表示しています。
必要なくなくなったキーはキー格納テーブルから削除してください。ENCRYPT /REMOVE_KEY コマンドで,キー・テーブルに保管されている暗号化キー値の名前を指定してください。 ここで指定するキー名は,ENCRYPT/CREATE_KEY コマンドで前に定義した文字列です。 ENCRYPT /REMOVE_KEY コマンドの形式は次のとおりです。 ENCRYPT /REMOVE_KEY key-name [ qualifiers ] デフォルトでは,ENCRYPT /REMOVE_KEY コマンドはプロセス・キー格納テーブルからキー定義を削除します。プロセスをログアウトした際,プロセス・キー格納テーブルからキー定義が削除されます。 ジョブ,グループ,あるいはシステムの格納テーブルからキー定義を削除するには,ENCRYPT /REMOVE_KEY コマンドで /JOB,/GROUP,あるいは /SYSTEM 修飾子を指定してください。 グループあるいはシステム・キーを作成する際に特権が必要なのと同様に,それらを削除するためには特権が必要になります。 たとえば,次のコマンドはシステム・キー格納テーブルから HAMLET キーを削除しています。 $ DECRYPT /REMOVE_KEY HAMLET /SYSTEM キーの削除を確認するには,/REMOVE_KEY コマンドで /LOG 修飾子を指定してください。次の例では,キー HAMLET が削除されたことを示しています。
暗号化したファイル内のデータにアクセスするには,DECRYPT コマンドでファイルを復号してください。以下に手順を示します。
DECRYPT file-spec key-name [ qualifiers ] パラメータの意味は次のとおりです。
次に例を示します。
復号する暗号文ファイルとして,ディスク上に存在するファイルを指定します。 ディレクトリ・ファイルは指定できません。 DECRYPT コマンドで複数の入力ファイルを指定するには,ファイル指定でワイルドカード文字を使用してください。 ファイル選択を制御するには,適切な DECRYPT コマンド修飾子を指定してください。 ワイルドカード文字を使用する際は,ディレクトリ・ファイルや不正ブロックを含むファイルを指定しないように注意してください。 復号処理の結果,プレーンテキスト・ファイルが生成されます。 復号処理された各入力ファイルごとにプレーンテキスト・ファイルが生成されます。デフォルトでは,DECRYPT コマンドは,入力ファイル指定で指定したファイル名と同じ名前でバージョン番号が 1 つ高い出力ファイルにプレーンテキストを書き込みます。 /OUTPUT 修飾子を使用して,出力先に別のファイルを指定することもできます。/OUTPUT 修飾子を指定する場合,デフォルトのファイル指定と異なる部分だけを指定します。完全なファイル名を指定する必要はなく,デフォルトの入力指定と同じ部分は省略できます。 たとえば,次の DCL コマンドでは,現在のディレクトリにある *.ENC のワイルドカード指定と一致するすべてのファイルを選択しています。/OUTPUT 修飾子には,作成されるすべてのファイルのファイル・タイプが COM であることを指定しています。
デフォルトでは,復号処理に関する情報は SYS$COMMAND には表示されません。 この情報を表示させる場合は,/SHOW 修飾子を使用してください。/SHOW 修飾子の形式は次のとおりです。 /SHOW=keyword あるいは /SHOW=keyword-list 以下のキーワードを 1 つあるいは複数指定します。
復号処理の際の入力および出力ファイル指定を表示するには,FILES キーワードを使用してください。たとえば,下記のコマンドの /SHOW=FILES は,復号処理の際に表示する各入力および出力ファイル指定を指定しています。
各ファイルの復号操作の完了時に暗号ストリームの統計値を表示するには,STATISTICS キーワードを使用します。表示される統計値は以下のとおりです。
次のコマンドでは,SYS$COMMAND に復号ストリームの統計値を表示することを指定しています。
入力ファイル指定でワイルドカードを使用することにより, DECRYPT コマンドで複数の入力ファイルを指定することができます。このコマンドでは,ファイルの選択用に次の修飾子が用意されています。
以降の項で,これらの修飾子について説明します。 /BACKUP 修飾子は,最新のバックアップの日付をもとに,復号するファイルを選択します。この修飾子は,/BEFORE あるいは /SINCE 修飾子とともに使用する場合のみ機能します。 /BACKUP 修飾子の形式は次のとおりです。 /BACKUP /BEFORE[=time] /BACKUP /SINCE[=time] time パラメータには OpenVMS 時間を指定します。 時間の指定を省略した場合,TODAY が使用されます。TODAY は現在の年月日の 00:00:00 です。 次のコマンドは,現在のディレクトリにある 00:00:00 15-APR-2009 以前にバックアップ・コピーが作成されているファイルのうち,ワイルドカード指定 *.COM に一致するすべてのファイルを復号します。
/BACKUP 修飾子は /EXPIRED あるいは /MODIFIED 修飾子とは同時には使用しないでください。 /BEFORE 修飾子は,指定した日付よりも作成日が古いファイルを,復号するファイルとして選択します。/BEFORE 修飾子の形式は次のとおりです。 /BEFORE[=time] time パラメータには OpenVMS 時間を指定します。 時間の指定を省略した場合は,TODAY が使用されます。TODAY は現在の年月日の 00:00:00 です。 次のコマンドは,現在のディレクトリにあるファイルのうち 00:00:00 15-APR-2009 以前に作成されワイルドカード指定 *.COM に一致するすべてのファイルを復号の対象として選択しています。
/BY_OWNER 修飾子は,特定の所有者認識コード(UIC)を持つファイルを復号の対象として選択します。 この修飾子で UIC が選択されていない場合,現在のプロセスの UIC が使用されます。 /BY_OWNER 修飾子の形式は次のとおりです。 /BY_OWNER=uic uic パラメータにはファイルの所有者の UIC を指定します。 デフォルトでは,復号対象の各ファイルごとの確認は行なわずに,コマンド行で指定したすべての入力ファイルが処理されます。 復号するファイルごとに,名前を示したプロンプトを表示したい場合は,/CONFIRM 修飾子を使用します。 この場合,ユーザの応答によって,個々のファイルを復号するかどうかが制御されます。 次のいずれかの応答を使用することができます。
以下のコマンドは,現在のディレクトリにあるファイルのうち,ワイルドカードファイル指定 *.COM に一致するすべてのファイルを復号対象として選択しています。 /CONFIRM 修飾子が指定されているため, 復号処理するかどうかファイルごとに確認のプロンプトが表示されます。 プロンプトに対して肯定的に応答しているので,MOVE.COM;3 ファイルに対して出力ファイル MOVE.COM;4 が作成されます。
復号操作でファイルの除外を指定する場合は,/EXCLUDE 修飾子を使用してください。この修飾子で指定したファイル指定に一致するファイルは復号されません。/EXCLUDE 修飾子の形式は次のとおりです。 /EXCLUDE=((file-spec)[,...]) file-spec パラメータには暗号化されたまま残すファイルを指定します。 ファイルの指定が 1 つだけの場合は,カッコは省略できます。 ファイル指定ではワイルドカードが使用可能です。 /EXCLUDE 修飾子にはデフォルトのファイル指定はありません。 ディレクトリ・ファイルは暗号化されないので,/EXCLUDE 修飾子でディレクトリを指定する必要はありません。 ただし,/EXCLUDE=*.DIR を指定したとしても次のような警告メッセージが表示されることはありません。 %ENCRYPT-W-FILNODIR, file encryption of directories is not supported, filename.dir 次のコマンドでは,現在のディレクトリにあるファイルのうち,/EXCLUDE で指定されている LOGIN.COM を除き,*.COM のワールドカード指定で一致するすべてのファイルを復号することを選択しています。
/EXPIRED 修飾子は,設定されている満了日に基づいて,復号するファイルを選択します(満了日は,SET FILE/EXPIRATION_DATE コマンドで設定されます)。この修飾子は,/BEFORE あるいは /SINCE 修飾子が指定されている場合のみ意味を持ちます。/EXPIRED 修飾子の形式は次のとおりです。 /EXPIRED /BEFORE[=time] /EXPIRED /SINCE[=time] time パラメータには OpenVMS 時間を指定します。 時間の指定を省略した場合,TODAY が使用されます。TODAY は現在の年月日の 00:00:00 です。 次のコマンドは,現在のディレクトリにあるファイルのうち,00:00:00 15-APR-2009 以降に満了日となる *.COM のワイルドカード指定で一致するすべてのファイルを復号することを選択しています。
/EXPIRED 修飾子は,/BACKUP あるいは /MODIFIED 修飾子と同時には使用しないでください。 /MODIFIED 修飾子は,最後に修正した日付にもとづいて,復号するファイルを選択します。 この修飾子は,/BEFORE あるいは /SINCE 修飾子が指定されている場合のみ機能します。 /MODIFIED 修飾子の形式は次のとおりです。 /MODIFIED /BEFORE[=time] /MODIFIED /SINCE[=time] time パラメータには OpenVMS 時間を指定します。 時間の指定を省略した場合,TODAY が使用されます。TODAY は現在の年月日の 00:00:00 です。 次のコマンドは,現在のディレクトリにあるファイルのうち,00:00:00 15-APR-2009 以降に変更されたワイルドカード指定 *.COM に一致するファイルを復号します。
/MODIFIED 修飾子は,/BACKUP あるいは /EXPIRE 修飾子と同時には使用しないでください。 /SINCE 修飾子は,復号するファイルとして,指定した時間以降に作成されたファイルを選択します。/SINCE 修飾子の形式は次のとおりです。 /SINCE[=(time)] time パラメータには,OpenVMS 時間を指定します。 時間の指定を省略した場合は TODAY が使用されます。TODAY は現在の年月日の 00:00:00 です。 次のコマンドは,現在のディレクトリにあるファイルのうち,00:00:00 15-APR-2009 以降に作成されたワイルドカード指定 *.COM で一致するすべてのファイルを選択しています。
デフォルトでは,入力ファイルは,復号されファイルに出力された後もそのまま残されます。ディスク容量の節約のため,ファイルを復号した後,暗号化ファイルをディスクから削除してもかまいません。 DCL の DELETE コマンドで /ERASE 修飾子を指定してディスクからファイルの内容を消去するか,あるいは DECRYPT コマンドで /DELETE および /ERASE 修飾子を使用してファイルの内容を消去することができます。 /DELETE 修飾子は,復号操作が完了して出力ファイルに書き込み,ファイルをクローズした後に,入力ファイルを削除します。入力ファイルに複数のファイル・バージョンがある場合は,それらはすべて削除されます。 /DELETE は暗号化されたファイルに対してのみ機能します。 次のコマンドは, 暗号キー TWENTYFIVECENTS で SAVEDMAIL.MAI ファイルを復号することを指定しています。/DELETE 修飾子が指定されているので,出力ファイルを出力した後,入力ファイルが削除されます。
ディスクのスカビンジングを防ぐためには,/DELETE 修飾子とともに /ERASE 修飾子を使用します。 たとえば,次のコマンドは,暗号キー TWENTYFIVECENTS を使用して SAVEDMAIL.MAI ファイルを復号します。 この際,データ・セキュリティ・パターンで入力ファイルが消去され,ファイルが削除されます。
次のコマンドでは,暗号キー TWENTYFIVECENTS を使用して SAVEDMAIL.MAI ファイルが復号されますが,ファイルの削除の前に,データ・セキュリティ・パターンによる入力ファイルの消去は行なわれません。
暗号化に使用するアルゴリズム修飾子によって,次のように復号時の手順が決まります。
/KEY_ALGORITHM 修飾子の形式は次のとおりです。 /KEY_ALGORITHM=(algorithm) algorithm パラメータには次のいずれかの値を指定します。
たとえば,SAVEDMAIL.MAI を /KEY_ALGORITHM=DESCFB を指定して暗号化した場合,次のように /KEY_ALGORITHM=DESCFB 修飾子を使用してファイルを復号してください。
OpenVMS の BACKUP ユーティリティは,機能的に同等のバックアップ・コピーを作成することにより,ファイルあるいはボリュームを破損から保護する機能を提供します。 BACKUP ユーティリティによって作成されるファイルはセーブセットと呼ばれ,セーブセット内のデータは BACKUP ユーティリティでのみ読み取り可能な BACKUP 形式で書き込まれます。 セーブセットを作成する際,BACKUP /ENCRYPT コマンドを使用して暗号化することもできます。
BACKUP /ENCRYPT はキーを必要とします。セーブセット内のファイルはすべて同じキーで暗号化されます。暗号化されたセーブセットの書き込み操作で /ENCRYPT 修飾子を使用した場合,BACKUP ユーティリティは,日時およびその他の一時的なデータから 16 バイトのランダム番号のキーを生成します。このランダム番号をよりランダムにするために,BACKUP は,この 16 バイト値をそれ自身を使用して DESCBC アルゴリズムのキーとしてもう一度暗号化します。その結果の最初の 8 バイトは,セーブセットに対する暗号化キーとしてとして使用され,次の 8 バイトはコンテキスト領域に対する初期化ベクトルとして使用されます。 この処理の利点の 1 つは,同じコマンドを使用して,同じ 1 セットのファイルから作成された 2 つのセーブセットが暗号化形式では同じにならない点です。 次のいずれかのコマンドを実行すると,システムが生成する暗号化キーと初期化ベクトルを無効にすることができます。
セキュリティをより高めるには,パラメータ無しで /ENCRYPT 修飾子を指定してください。 この場合,ソフトウェアはキー値の入力を求めるプロンプトを表示します。入力した値はエコーされません。確認のため,値の再入力のためのプロンプトを表示します。 ENCRYPT /CREATE_KEY コマンドでキーを定義する場合, BACKUP コマンド行で /ENCRYPT=(NAME=(key-name)) 修飾子を使用してキー名を指定します。 デフォルトでは,BACKUP は,DESCBC アルゴリズムを使用してセーブセット・データを暗号化します。デフォルトを無効にするためにユーザが指定したキーとアルゴリズムは,データ・キーと初期化ベクトルの暗号化のためだけに使用されます。 BACKUP ユーティリティは,暗号化の結果をBACKUP サマリ・レコードの BACKUP 属性としてセーブセットに記録します。 セーブセットのリストアあるいはリスト操作の際に,BACKUP は,システムが生成するキーあるいはユーザが提供するキーをデータ・キーおよび初期化ベクトル値の復号のために使用します。 BACKUP コマンドの /SAVE_SET 修飾子は,次のように入力セーブセット修飾子および出力セーブセット修飾子の両方として機能します。
次の例では,以下のように,デフォルト・ディレクトリの暗号化バックアップ・ファイルを作成しています。
次の例では,ディスク上のすべてのファイルの最新バージョンのセーブセットを作成しています。このセーブセットは,DESCFB アルゴリズムとキー値 Make peace で暗号化されます。
セーブセットを暗号化する際,BACKUP はセーブセット内に情報を保管しません。このため,暗号化されたセーブセットを復号する場合は,BACKUP がデータ暗号制御レコードを 探すように RESTORE コマンドで /ENCRYPT 修飾子を指定してください。 暗号化されていないセーブセットをリストアする際に間違って /ENCRYPT を指定した場合,BACKUP はこの修飾子を無視します。暗号化されセーブセットを /ENCYRPT 修飾子を指定せずに,あるいはキー名を指定して,リストアしようとすると,次のようなエラー・メッセージが表示されます。
次のコマンドは,BACKUP /ENCRYPT コマンドで作成されたセーブセットから SALARY.DAT ファイルをリストアします。
BACKUP は暗号化されたセーブセットを次のように復号します。
BACKUP /ENCRYPT を使用して, 配布キット内のセーブセットの暗号化に使用されたキーを持っているカスタマーだけが利用可能になるような配布メディアを作成することができます。 次の例では,ENCRYPT/CREATE_KEY コマンドで 3 つのキーが定義されています。これらのキーのそれぞれで各製品のセーブセットが暗号化され,ソフトウェア配布メディアが作成されています。
生成されるセーブセットは,適切なキーを持っているカスタマーのシステム上にのみリストアできます。 次の例ではセーブセット WOLKIT をリストアしています。
次の例では,コマンド行でキー名とキー値を入力しない形でセーブセット SDXKIT をリストアしています。 この場合,BACKUP /ENCRYPT コマンドは情報の入力を求めるプロンプトを表示します。 入力内容は画面にはエコーされません。
|
|