日本-日本語

製品  >  ソフトウェア  >  OpenVMS  >  マニュアル

OpenVMS マニュアル


≫ 

OpenVMS V8.3
ライブラリ

タイトルページ
目次
まえがき
第 1 章:V8.3の新機能
第 2 章:一般ユーザ機能
第 3 章:システム管理機能
第 4 章:光メディアのマスタリング
第 5 章:プログラミング機能
第 6 章:InfoServerユーティリティ
第 7 章:関連製品の機能
第 8 章:新規および改訂されたドキュメント
第 9 章:英語版ドキュメント一覧
第 10 章:各英語版ドキュメントの内容
索引
PDF
OpenVMS ホーム

HP OpenVMS
V8.3 新機能説明書


目次 索引



ファイルを暗号化する際に省略時の DESCBC 以外のアルゴリズムを選択するには,DCL の ENCRYPT コマンドでデータと鍵のアルゴリズム修飾子が指定可能で,DECRYPT コマンドでは鍵アルゴリズム修飾子が指定可能です。

AES を使用してファイルを暗号化する場合は, /DATA_ALGORITHM=AESmmmkkk と /KEY_ALGORITHM=AESmmmkkk の両方を指定します。

  • mmm は,AES モード,ECB,CBC,CFB,OFB のいずれか

  • kkk は,鍵のサイズ,128 ビット,192 ビット,256 ビットのいずれか (16 バイト,24 バイト,32 バイトの鍵)

Encrypt は,鍵と鍵アルゴリズムが一致することを期待します。 AES 鍵は AES 鍵アルゴリズムとともに使用し, DES 鍵は DES 鍵アルゴリズムとともに使用する必要があります。 ENCRYPT コマンドで /DATA_ALGORITHM=AESmmmkkk を指定しなかった場合の省略時のデータ・アルゴリズムは DES となります。 DES 鍵と KEY_ALGORITHM=DES を使用する場合も同じことがいえます。データは強力なアルゴリズムで保護されますが,鍵はそうではありません。

注意

AES 鍵と DES 鍵,および各データ・アルゴリズムを混在させる機能は, OpenVMS Version 8.3 で使用できなくなりました。混在させた場合は,ENCRYPT$_AESMIXDES エラー状態となります。

AES を使用してファイルを復号化する場合は, /KEY_ALGORITHM=AESmmmkkk 修飾子だけを指定します。これは,ランダムな鍵が格納されているランダム鍵レコードを復号化するためにこの鍵アルゴリズムが使用され,ランダムな鍵を使用してファイルのデータ・レコードが復号化されるためです。データ・アルゴリズムの指定は不要であり,実際,修飾子が認識できないというエラー・メッセージが表示されます。

注意

暗号化操作では,/KEY_ALGORITHM を指定せずに /DATA_ALGORITHM=AES を指定すると,エラーが発生します。省略時のアルゴリズム DESCBC を使用して,ランダムな鍵とファイル情報が格納されているランダム鍵レコードが暗号化されます。しかし,Encrypt は,ユーザの鍵が KEY アルゴリズムと一致することを期待します。一致しないと,エラーが発生します。つまり,key-name が AES 鍵の名前と値の場合,鍵が論理名テーブルから取り出され,DES マスタ鍵で復号化されると,鍵は誤って復号化され,操作が失敗して次のメッセージが表示されます。


%STR-F-FATINTERR, fatal internal error 

ENCRYPT /DATA_ALGORITHM=AES /KEY_ALGORITHM=AES

AES には,省略時の暗号化および復号化ルーチン (AESCBC128) があり,モードと鍵のサイズが指定されずに AES が指定された場合 (すなわち /AES だけが指定された場合) に使用されます。これは,次の例のように,AES ファイル暗号化のショートカットとして使用できます。


$ ENCRYPT file-name key-name /KEY=AES /DATA=AES 



ファイルを復号化する際に省略時の DESCBC 以外のアルゴリズムを選択するには,DCL DECRYPT コマンドで鍵アルゴリズム修飾子だけを指定します。 AES を使用して復号化するときには,/KEY_ALGORITHM=AESmmmkkk 修飾子だけを指定します。ここで mmm は AES モードです。

指定が必要なのは鍵アルゴリズムだけです。データ・アルゴリズムは,暗号化されたファイルの鍵レコード中に,他のファイル情報とともに格納されています。鍵レコードは,ファイルを暗号化する際にユーザが指定した暗号鍵で暗号化されています。復号化操作の際,ユーザの鍵を使用してデータ鍵 (暗号化の際に生成されたランダムな鍵) が格納された鍵レコードを復号化し,そのアルゴリズムとともに使用して,ファイル中の残りのデータ・レコードが復号化されます。

3.5.11 ENCRYPT$ENCRYPT_FILE() API

AES ファイル・フラグ

ENCRYPT$ENCRYPT_FILE() API の形式は次のとおりです。


ENCRYPT$ENCRYPT_FILE(input-file, output-file,                        key-name, algorithm, file-flags,                        item-list ) 

ENCRYPT$ENCRYPT_FILE( ) API では,AES アルゴリズムを使用してファイルを暗号化する場合に使用される,追加の FILE_AES フラグ・マスク (および値) があります。 ENCRYPT$ENCRYPT_FILE_FLAGS は,暗号化の方向,ファイルの圧縮などのファイル操作を制御するために使用されます。 FILE_AES フラグは,ファイルの AES の初期化や暗号化操作を制御し, AES 鍵にフラグを設定します。

  • ENCRYPT$M_FILE_AES

  • ENCRYPT$V_FILE_AES

オプションの項目リストは,データ・アルゴリズム・パラメータを指定変更するために使用します。その目的は,アルゴリズムを,機能的に似ていて名前が異なる別のアルゴリズムで置き換えることです。ランダム鍵レコードに格納されているアルゴリズム名を,オーバーライド記述子でユーザが指定したアルゴリズムの名前で指定変更します。これにより,復号化環境のアルゴリズム名と異なるアルゴリズム名を使用して暗号化されたファイルを開くための方法が提供されます。

3.5.12 レコードの暗号化と復号化

ファイル・レコードは,次の Encrypt API で暗号化および復号化を行うことができます。


ENCRYPT$ENCRYPT_ONE_RECORD (input, output, key-name, algorithm) 
 
ENCRYPT$DECRYPT_ONE_RECORD (input, output, key-name, algorithm) 

1 レコードの暗号化で AES を使用するには,最初に AES 鍵を作成し,論理名テーブルに格納します (暗号化される)。 AES 鍵の名前と,選択した AESmmmkkk (モードと鍵のサイズ) アルゴリズムに対する ASCII テキストが格納されている記述子のアドレスを指定します。入力バッファと出力バッファ (記述子のアドレス) も指定します。

これらの 1 レコードの API では,鍵が論理名テーブルにすでに存在していることが前提です。これらの API は,主に少量のデータまたは数レコードだけを暗号化および復号化するために使用します。これは,ENCRYPT$ENCRYPT_ONE_RECORD( ) API の呼び出し時にオーバヘッドとなる操作があるためです。この API を呼び出すと,関数 ENCRYPT$INIT(),ENCRYPT$ENCRYPT() および ENCRYPT$DECRYPT(),ENCRYPT$FINI() も呼び出されます。 INIT,DECRYPT,および FINI 関数は,ユーザが key-name パラメータで指定した鍵の名前を使用して論理名テーブル中の鍵を復号化するために,最初の INITIAL の中で再帰的に呼び出されます。

多数のレコードを暗号化または復号化する必要がある場合は, ENCRYPT$xxCRYPT_ONE_RECORD() 呼び出しを使用 しないことをお勧めします。代わりに,API 関数 ENCRYPT$ENCRYPT() および ENCRYPT$DECRYPT() を使用して,通常の操作を行ってください。そのためには,暗号化や復号化を行う前に ENCRYPT$INIT() 関数を使用してコンテキストを初期化し,アプリケーションが終了する前に ENCRYPT$FINI() API を呼び出してメモリ構造体を解放します。

3.5.13 データの暗号化と復号化

ENCRYPT$ENCRYPT() ルーチンと ENCRYPT$DECRYPT() ルーチンは,最大 64 Kバイトのデータを暗号化処理するために,アプリケーションによって使用されます。


ENCRYPT$ENCRYPT (context, input, output [,output-length] [,initialization-vector]
ENCRYPT$DECRYPT (context, input, output [,output-length] [,initialization-vector]

これらのルーチンでは, ENCRYPT$ENCRYPT() や ENCRYPT$DECRYPT() を使用してデータ・ブロックの暗号化や復号化を行う前に, ENCRYPT$INIT() ルーチンで暗号化コンテキストを初期化する必要があります。コンテキスト・データ構造体を解放するために,最後に ENCRYPT$FINI() ルーチンを呼び出します。

出力バッファは,ブロック長の単位でパディングされたブロックを格納できる必要があります。ブロック長は,AES の場合は 16 バイトです (DES では 8 バイトです)。 output-length の値と initialization-vector (IV) パラメータは省略できます。 output-length は,書き込まれる (暗号化または復号化される) バイト数です。

AES IV は,16 バイトの値を参照するポインタです。内部構造体は,AES に対応できるように拡張されています。 DES IV は,8 バイトの値を参照するクォドワードです。

3.5.14 長さとブロック・モード・パディング

AES ブロックモード・アルゴリズム (AESCBCxxx および AESECBxxx) は, 16 バイトのブロック境界までデータをパディングします。 AES の場合,暗号化と復号化を行うと,1 バイトは 16 バイト, 72 バイトは 80 バイトなどとなります。 AES のパディング文字は,パディングされたバイト数を表す 16 進数です。たとえば,1 バイトのデータを暗号化すると,暗号化された 1 バイトのデータの後ろに 15 文字の 0F がパディングされ, 72 バイトのデータを暗号化すると,暗号化された 72 バイトのデータの後ろに 08 が 8 バイト分パディングされます。 DESECB モードと DESCBC モードでは,常にゼロがパディングされます。文字ストリーム・モード (AESCFBxxx, AESOFBxxx,DESCFB) ではデータがパディングされず, output-length パラメータは実際のバイト数に一致します。

3.5.15 新しい AES 暗号化鍵,フラグ・マスク,値

新しい AES 暗号化 API ルーチンはありません。ただし,AES アルゴリズムとさまざまな鍵長の値に対応するために, OpenVMS Version 8.3 では AES 鍵と AES ファイル・フラグ・マスクおよび値が追加されていいます。

  • AES 鍵フラグ
    ENCRYPT$DEFINE_KEY( ),ENCRYPT$DELETE_KEY( ), ENCRYPT$GENERATE_KEY( ) の各 API に対して,KEY_AES マスクの値を AES 鍵として指定します (参照渡しのロングワードとして指定)。

    • ENCRYPT$M_KEY_AES

    • ENCRYPT$V_KEY_AES

  • AES ファイル・フラグ
    追加の FILE_AES フラグ・マスク (および値) は, AES アルゴリズムを使用してファイルを暗号化する際に ENCRYPT$ENCRYPT_FILE( ) API で指定します。
    ENCRYPT$ENCRYPT_FILE_FLAGS フラグは,暗号化の方向,ファイルの圧縮などのファイル操作を制御するために使用します。 FILE_AES フラグは,ファイルの AES 初期化と暗号化操作および以下の AES 鍵のフラグを制御します。

    • ENCRYPT$M_FILE_AES

    • ENCRYPT$V_FILE_AES

AES アルゴリズム,モード,および鍵長 (128 ビット,192 ビット,または 256 ビット) は,API ENCRYPT$ENCRYPT_FILE( ) および ENCRYPT$INIT( ) の algorithm パラメータで指定するか, ENCRYPT$GENERATE_KEY( ) API の algorithm-name パラメータで指定します。このパラメータは,以下のように文字列記述子の形式で,参照渡し (ポインタ) です。

  • ブロック・モードの暗号化

    • AESCBC128 ! Cipher Block Chaining

    • AESCBC192 ! Cipher Block Chaining

    • AESCBC256 ! Cipher Block Chaining

    • AESECB128 ! Electronic Code Book

    • AESECB192 ! Electronic Code Book

    • AESECB256 ! Electronic Code Book

  • ストリーム・モードの暗号化

    • AESCFB128 ! Cipher Feedback

    • AESCFB192 ! Cipher Feedback

    • AESCFB256 ! Cipher Feedback

    • AESOFB128 ! Output Feedback

    • AESOFB192 ! Output Feedback

    • AESOFB256 ! Output Feedback

注意

AESCBC128 は省略時の暗号化であり,ユーザの鍵の暗号化および復号化を行って論理名に格納するためにも使用されます。これらの暗号化は,新しいイメージ・ファイル SYS$SHARE:ENCRYPT$ALG$AES.EXE 内のアルゴリズム・テーブルに格納された順序 (上記の順序) で検索されます。



以下の AES 暗号化操作はサポートされないため,お勧めできません。

  • MAC (Message Authentication Code)
    MAC (Message Authentication Code) は,ファイルのデータまたはそのセキュリティ設定に対する変更を検出します。現在,MAC 操作では DES だけがサポートされています。 AES はサポートされていません。
    MAC は,コマンド修飾子 /AUTHENTICATE で使用します。 MAC は,ファイルのデータ (およびセキュリティ属性) を暗号化し, 2 つの個別のデータベース (Db) に格納します。ファイルの変更を検出するために,MAC が再計算され,Db の MAC と比較されます。
    認証コードは,/UPDATE 修飾子で生成され, /OUTPUT=file-name 修飾子でログに記録または表示されます。次に例を示します。


    $ encrypt /AUTHENTICATE /UPDATE *.exe KeyName /out=tt: 
    


    MAC は IV も使用しますが,基となるアルゴリズムおよびキーが設定されたファイル MAC のモードは DESCBC です。 MAC は,ファイルのデータとファイルのセキュリティ属性が,最終的に DESCBC で暗号化されたブロックです。

  • ENCRYPT/COMPRESS
    ENCRYPT/COMPRESS を BACKUP ファイル・セーブ・セットで使用すると,復号化の際にエラーが発生するため,お勧めしません。これは,通常,ゼロでない /GROUP_SIZE を指定して作成した大規模なセーブ・セットで発生します。
    ENCRYPT/COMPRESS は正しく行われますが,復号化に失敗する可能性があります。暗号化操作の際に,/DELETE 修飾子を使用してオリジナルの BACKUP セーブ・セット・ファイルを削除する場合は,大きな問題になります。

  • AES でのファイルの暗号化
    AES ファイルを暗号化する際には,/DATA=AESmmmkkk と /KEY=AESmmmkkk アルゴリズムの両方を指定します。ここで,mmm はモード (CBC,ECB,CFB,OFB のいずれか), kkk は鍵サイズ (128 ビット,192 ビット,または 256 ビット) です。

  • AES および DES の鍵とアルゴリズムの混在
    Encrypt は,鍵と鍵アルゴリズムが一致することを期待します。 AES 鍵は AES 鍵アルゴリズムとともに使用し, DES 鍵は DES 鍵アルゴリズムとともに使用する必要があります。 /DATA_ALGORITHM 修飾子に AES を指定せず, /KEY_ALGORITHM 修飾子に AES 鍵とともに AES を指定すると,省略時のデータ・アルゴリズムは DES となります。セキュリティ上の理由から,このような指定を行うと,コマンド行で ENCRYPT$_AESMIXDES エラーが発生します。 DES 鍵と KEY_ALGORITHM=DES を使用する場合も同じことがいえます。データは強力なアルゴリズムで保護されますが,鍵はそうではありません。鍵とデータ・アルゴリズムで DES と AES を混在させるコマンド行の機能は,OpenVMS 8.3 で使用できなくなりました。 AES と DES の鍵とアルゴリズムを混在させると,他のエラーが発生することもあります。



3.6 Monitor ユーティリティの機能拡張

ここでは,Monitor ユーティリティの機能拡張について説明します。

3.6.1 Align コマンド (I64 のみ)

Monitor ユーティリティは,アラインメント・フォルトに関する情報を表示するように拡張されました。この新しい MONITOR ALIGN コマンドは,Integrity サーバの OpenVMS でのみ有効で,Integrity サーバ・システムでの性能の問題をトラブルシューティングする際に役立ちます。

MONITOR ALIGN クラスは,秒あたりのアラインメント・フォルトの発生率と総アラインメント・フォルト数を,モード (カーネル・モード,エグゼクティブ・モード,スーパバイザ・モード,およびユーザ・モード) ごとに表示します。秒あたりのアラインメント・フォルト率が非常に高い場合は, SDA 経由で動作する Alignment Fault ユーティリティ (FLT) を使用し,アラインメント・フォルトの原因を解析してください。

Integrity サーバ・システムでは,すべてのアラインメント・フォルトはオペレーティング・システムで処理されるため,アラインメント・フォルトの発生率を追跡するためにカウンタをカウントアップすることができます。 Alpha では,アラインメント・フォルトはコンソールの PALcode で修正されるため,カウンタをカウントアップするためには大きなオーバヘッドが必要になります。そのため,MONITOR ALIGN コマンドは Integrity サーバでのみ使用できます。

ヘッダ・インクルード・ファイル $MONDEF も拡張され,新しい ALIGN クラスのレコード定義が追加されています。以前は,各クラス・タイプ・レコードの定数は用意されていませんでしたが, Version 8.3 の $MONDEF では,クラス番号用のシンボリック定数定義を MNR_CLS$K_xxx としてインクルードします。

次の例を参照してください。


$ monitor align 
                         ALIGNMENT FAULT STATISTICS 
                               on node MTDIB9 
                          11-JAN-2006 16:58:07.25 
 
                                     CUR        AVE        MIN        MAX 
 
    Kernel Alignment Faults       19529.00   19529.00   19529.00   19529.00 
    Exec Alignment Faults          7581.00    7581.00    7581.00    7581.00 
    Super Alignment Faults            0.00       0.00       0.00       0.00 
    User Alignment Faults        164972.00  164972.00  164972.00  164972.00 
 
 Total Alignment Faults       192082.00  192082.00  192082.00  192082.00 



3.6.2 PROCESSES クラス向けの新しいクラス名修飾子

MONITOR ユーティリティの PROCESSES クラスでは,プロセスごとのモードの使用状況を監視するために,4 つの新しいクラス名修飾子を使用することができます。これは,さまざまな CPU モードを最も多く消費しているプロセスを見つけるのに役立ちます。たとえば,大量のスーパバイザ・モードが使用されていることが MONITOR MODES コマンドで表示された場合は,新しい MONITOR PROCESSES/TOPSUPERVISOR の表示によって,どのプロセス (したがってどのユーザ) が消費しているかが分かります。

新しい修飾子を次の表に示します。

表 3-2 MONITOR ユーティリティの PROCESSES クラスに対するクラス名修飾子
コマンドと修飾子 説明
MONITOR PROCESSES /TOPKERNEL カーネル・モードの使用量が上位のプロセス
MONITOR PROCESSES /TOPEXECUTIVE エグゼクティブ・モードの使用量が上位のプロセス
MONITOR PROCESSES /TOPSUPERVISOR スーパバイザ・モードの使用量が上位のプロセス
MONITOR PROCESSES /TOPUSER ユーザ・モードの使用量が上位のプロセス

詳細は,『OpenVMS システム管理ユーティリティ・リファレンス・マニュアル』の「Monitor ユーティリティ (MONITOR)」の章を参照してください。


目次 索引

印刷用画面へ
プライバシー 本サイト利用時の合意事項