ハードウェア磁気テープ暗号化解説書
承認されたユーザーのみ磁気テープのデータにアクセスできるようにする
資産を保護し、組織のデータに対するリスク意識を高めるには、ファイアウォール、セキュリティー・ポリシー、アンチウイルス・ソフトウェア、教育などすべてを動員します。これらの方法でデータを保護することに投資しているのに、多くの会社がデータを保護しない状態でそのまま外部に送信しているのはなぜでしょうか。移動中に磁気テープを紛失したり、盗難に会うかもしれません。オフサイトのストレージ・ベンダーは磁気テープを紛失したり、置き場所を間違える可能性があります。戦略として磁気テープを暗号化すると、これらの懸念事項を多少でも解決するのに役立ちます。
磁気テープの暗号化では、ソフトウェアとハードウェアという 2 つの基本的な選択肢があります。あなたはどちらを使用しますか。暗号化に対応した磁気テープ・ドライブの価格が下がっていることを考えると、少ない予算しかない IT 部門でも検討できるのは、ほとんどのソフトウェア・ソリューションで見られるパフォーマンス低下という欠点もない、ハードウェアによるソリューションです。IBM Encryption Key Manager (EKM) は、磁気テープの暗号化に役立つ無償 IBM i 機構です。
この記事では、旧き良き IBM i 以外のプラットフォームを使用することなく EKM および 3592 磁気テープを使用する点に焦点を当てて説明します。EKM は、Java で作成されているため、多数のプラットフォームで動作します。IBM i の場合は EKM は無償ですが、Windows の場合は有償となります。IBM EKM guide (GA76-0418-08) は優れたリソースですが、IBM i を超える範囲で網羅し、i が他のプラットフォームに優先順位を譲る場合さえあります。警告: EKM ガイドは最新版を参照してください。旧バージョンは使用しないでください。資料の一部が不完全で、すでに内容が合っていません。
必要なもの
EKM を使用する場合は、次のものが必要です。
- LTO-4 または 3592-E05 など暗号化に対応した磁気テープ・ドライブ
- EKM を動作させるパーティション。バックアップを動作させるパーティションとは異なるパーティションでなければなりません。
- 3494 や 3577 などのテープ・ライブラリー (残念ながら i では 1 つ必要です)
- EKM ソフトウェア
- IBM i OS 5.4 5722-JV1 Java Developer Kit
- 8 J2SE 5.0 32 ビット・オプション
- 11 J2SE 6.0 32 ビット・オプション
- 5722AC3
- PTF SI24672 for 5722JV1
- IBM i OS 6.1 5761JV1 - IBM Developer Kit for Java
- 8 J2SE 5.0 32 ビット・オプション
- 11 J2SE 6.0 32 ビット・オプション
EKM は IBM i のバージョン 5.3 で動作しますが、サポートも終了に近づき、複雑になってきているため 5.4 以降を使用することをお勧めします。5.3 でなければならない場合は、EKM ガイドを参照し、フットワークを軽くして準備を怠らないでください。
多少、暗号化、暗号鍵の概念、QShell、および TCP/IP ポートについて理解しておかなければなりません。
どうしてそんな名前がついているの?
これらの磁気テープ製品の多くには複数の名前があります。混乱しますね。TS1120 は暗号化対応 3592 磁気テープ・ドライブの名前で、3592 モデル E05 とも呼ばれています。TS3400 テープ・ライブラリーも IBM モデル 3577 として知られています。LTO 磁気テープも市場では Ultrium として販売されています。
LTO-4 それとも 3592 磁気テープ?
2 種類のフォーマットがありますが、どちらを使用するべきでしょうか。LTO は多くのプラットフォームで動作するオープン・フォーマットで、一方 3592 は IBM 専有です。それぞれ同じ程度のパフォーマンスで、両方とも磁気テープとしてはハイエンドなパフォーマンスを備えています。したがって、現在所有しているのはどちらの磁気テープ・ドライブか、またどういった戦略をとるかを基準にして選択するべきでしょう。ただし、ハードウェア暗号化に対応しているのは LTO-4 ドライブだけです。
3494 テープ・ライブラリーは 3592 をサポートしていますが、LTO ドライブはサポートしておらず、新しい 3500 ライブラリーは両方をサポートしています。3500 の投資は小額ではなく ($22,000 以上)、3592-E05 磁気テープ・ドライブも高価で、定価は $8,000 以上です。このオプションを選択する場合、おそらくすでに IBM ハードウェアに投資しており、高価なテープ・ライブラリーが必要な大規模システムを所有しているでしょう。LTO-4 の統一小売価格はそれよりも低く、より安価な TS3100 ライブラリーに対応しています。TS3100 ライブラリーと LTO-4 ドライブ合わせて $8,000 以下で購入できます。他のプラットフォームと磁気テープ・テクノロジーを共有するつもり、あるいは、すでに LTO-2 または LTO-3 を使用している場合、LTO-4 を選択するのが正解でしょう。適合するカードがない場合は、SCSI または SAS カードの費用も考慮する必要がある点を覚えておいてください。
LTO と 3592 の暗号化処理は異なり、それぞれのフォーマットでは、異なった方法で磁気テープに鍵を格納します。運用面ではこのディスパリティーは問題になりませんが、少なくとも違いがある点は意識しておく必要があります。また 3592 は非対称鍵を使用し、LTO は対称鍵を使用します。
ハードウェア磁気テープ暗号化の動作方法
一言で言えば、ハードウェア磁気テープ暗号化は次のように行われます。バックアップが開始すると、テープ・ライブラリーは、使用中の磁気テープが、暗号磁気テープのボリューム ID 範囲にあるかどうかチェックします。その範囲にあれば、ライブラリーは鍵を求めて EKM に連絡し、磁気テープ・ドライブへの鍵を提供します。
リストアが行われると、磁気テープ・ドライブは、磁気テープが暗号化されていることを認識し、磁気テープを復号するために鍵を要求します。テープ・ライブラリーは鍵を求めて EKM に連絡し、データを復号します。磁気テープ・ドライブではなく、ライブラリーが EKM と通信する点を忘れないでください。
暗号化使用手順
3494 テープ・ライブラリーの 3592-E05 (TS1120) ドライブで EKM を設定するプロセスを見てみましょう。手順は次のとおりです。
- 証明書ストア (別名、鍵ストア) を作成する
- ストアの鍵を作成する
- EKM をインストールおよび構成する
- EKM を開始する
- テープ・ライブラリーを構成して EKM を使用する
- 暗号化バックアップを実行する
- 暗号化リストアを実行する
EKM のインストール
最新の累積 PTF パッケージがあることを確認し、Java 向けの PTF をグループ化します。これらは最新であることが不可欠で、時間の節約とトラブルを減らします。
幸いなことに、EKM には最新の IBM Java Runtime Environment (JRE) がすでにインストールされています。EKM をダウンロードすることもできます。
次のコマンドを実行して JAVA_HOME 環境変数を
/QOpenSys/QIBM/ProdData/JavaVM/jdk50/32bit に設定します。
ADDENVVAR ENVVAR(JAVA_HOME) VALUE('/QOpenSys/QIBM/ProdData/JavaVM/jdk50/32bit')
5.4 の場合は、PTF SI24672 for 5722JV1 をインストールし、制限付きでないポリシー・ファイルをコピーするには、次のコマンドを実行します。
CPY OBJ('/qibm/proddata/java400/jdk15/lib/security/US_export_
policy.jar') TODIR('/QOpenSys/QIBM/ProdData/JavaVM/jdk50/32bit/jre/lib/
security/')
「Object not found (オブジェクトが見つかりません)」というメッセージを受信したら、バージョン 5.0 の Java (別名、バージョン 1.5) がないことを示しており、エラーを無視できます。JDK 1.5 以降をインストールし、使用している場合は、このコピーを実行する必要があります。そうでないと、メッセージ「message=Private key not found to decrypt the DK. ErrorCode=0xEE0F」が EKM ログに記録されます。
鍵ストアの選択と設定
EKM はバックアップに使用しているパーティションとは別のパーティションにインストールして、実行します。EKM はテープ・ライブラリーへの暗号鍵を提供し、パーティション全体をリカバリーする場合、EKM はどこか別の場所で実行する必要があります。EKM の実行に使用するパーティションがない場合、Windows にインストールできます。また Windows には、別の場所でのリカバリーや、災害復旧テスト中に簡単に移送できるラップトップを持つ柔軟性があります。
さまざまな種類の証明書ストアがありますが、すべての証明書ストアがどのタイプの磁気テープ・ドライブとも動作するわけではありません。各種鍵ストアには、JCEKS、PKCS11IMPLKS、IBMi5OSKeyStore があります。「証明書ストア」および「鍵ストア」という用語は交互に用いられます。
IBMi5OSKeyStore は、IBM i HTTP Admin サーバーで IBM の Digital Certificate Manager (DCM) を使用して作成されます。この鍵ストアは LTO とは使用できません。LTO 磁気テープを使用する場合、代わりに JCEKS 鍵ストアを作成してください。3592 は JCEKS 鍵ストアも使用できます。iKeyman を使用して JCEKS 鍵ストアを作成できます。iKeyman 製品の多数の実装がありますが、GUI がある点で、IBM i Access for Windows に同梱の製品を使用するのが最も簡単です。JCES 鍵ストアを作成するには、IBM eServer iSeries Migration (SG24-7200-01) のセクション 6.2.1 「Creating a self-signed key」の手順に従ってください。作成後は JCEKS 鍵ストアを i システムの /EKM フォルダーに置いてください。
DCM を使用した IBMi5OSKeyStore の作成
EKM を実行する IBM i パーティションにサインオンし、次の手順を実行します。
- EKM ディレクトリー: md dir('/ekm') を作成します
- EKM を実行するパーティションで HTTP サーバーの *ADMIN インスタンスを開始します: STRTCPSVR *HTTP HTTPSVR(*ADMIN)
- ブラウザーを開き、http://mysystem:2001/ に移動します。mysystem は i システムの名前です。セキュリティー担当者の権限がある i プロファイルでサインオンします。
- "Digital Certificate Manager" を選択します
- "Select a Certificate Store" を選択します
- "Create New Certificate Store" を選択します
- "Other System Certificate Store" を選択し、Continue をクリックします
- "Certificate store file and pathname" で、/ekm/ekm.kdb を入力すると、i の /ekm フォルダーに鍵ストアが作成されます。Certificate store password で、ストアのパスワードを入力します。このパスワードは、後で EKM の KeyManagerConfig.properties ファイルで使用します。
証明書の作成
認証局で署名された証明書を使用する必要はありません。自分の証明書を使用できます。
- "Server or client certificate" を選択し、Continue をクリックします。
- "Local Certificate Authority (CA)" を選択し、Continue をクリックします。
- 鍵サイズは 1024 または 2048 から選択します。
- フィールドに情報を記入します (図 1)。証明書ラベルとスペースのない共通名を使用することをお勧めします。証明書ラベルは、テープ・ライブラリーの構成で使用します。
EKM プロパティー・ファイルの構成
EKM プロパティーを構成するには、次のコマンドを実行します。
CPY OBJ('/QIBM/ProdData/OS400/Java400/ext/KeyManagerConfig.
properties')
TODIR('/ekm')
KeyManagerConfig.properties は EKM プロパティー・ファイルです。
次に、次のコマンドを実行します。
EDTF '/ekm/ KeyManagerConfig.properties'
以下の行を変更し、kspwd 部分を鍵ストアに選択したパスワードに置き換えます。
- Admin.ssl.keystore.password = kspwd
- Admin.ssl.truststore.password = kspwd
- config.keystore.password = kspwd
- TransportListener.ssl.keystore.password = kspwd
- TransportListener.ssl.truststore.password = kspwd
EKM は、開始時にパスワードを見えにくくします。EKM の開始前にファイルのコピーを作成し、そのコピーを安全な場所に保管しておいてください。後で別のパーティションでもそのファイルが必要になります。
EKM に以下の行を追加します。(EDTF ファイル・エディターは簡単で、SEU に似ています。しかし、その説明については Scott Klement 氏の記事 "Handle Errors in Expect Scripts"?System iNetwork Programming Tips Newsletter、2009 年 4 月 23 日を参照してください。Scott 氏の話を一言で言えばこうです「EDTF は SEU とほとんど同じように動作します。画面左側のブランクに I を置いて新しい行を挿入します。D で削除、C でコピーなど、SEU のように扱うことができます。終わったら、F2 を押して変更内容を保存し、F3 で終了します」。
drive.acceptUnknownDrives = true
drive.default.alias2 = tape_encryption_self_signed_1
drive.default.alias1 = tape_encryption_self_signed_1M
EKM が開始したら、以下の行
TransportListener.ssl.keystore.password = mypassword
は以下のように変わります。
TransportListener.ssl.keystore.password.obfuscated = DF0C4A445852534E51441415151
各パーティションは、異なる方法でパスワードを見えにくくする点に注意してください。
EKM の開始
EKM を開始するには、次のコマンドを実行します。
SBMJOB CMD(QSH CMD('strEKM -server -propfile /EKM/KeyManagerConfig.properties 1> /EKM/stdout.log 2> /EKM/stderr.log')) JOB(EKM) JOBQ(QSYS/QUSRNOMAX)
このコマンドには、ファイル /EKM/stdout.log および /EKM/stderr.log にログを記録し、トラブルシューティングを簡単にするという利点があります。
EKM のテスト
EKM ログおよびポート 3801 両方をチェックし、EKM が動作していることを確認します。ファイルは /ekm/native_stdout.log および /ekm/native_stderr.log で、EKM 試行が開始すると作成されます。
EKM がポート 3801 で動作していることをチェックします。コマンド・ラインで NETSTAT *CNN と入力します。i への IP トラフィックすべてのリストが表示されます。F15 を入力し、情報をサブセットします。Local ポート範囲 Lower the value を * から 3801 に変更します。
ポート 3801 で接続が確立されるはずです (図 2)。接続されない場合は、エラーがないかどうか、/ekm ディレクトリーのログ native_stderr.log および native_stdout.log を再度確認します。
テープ・ライブラリーの設定
暗号化を使用する前に、ライブラリーまたは磁気テープ・ドライブのファームウェアをアップデートしなければならない場合があります。担当の IBM サービス・プロバイダーに確認してください。
3494 ライブラリーおよび 3500 ライブラリーは磁気テープ上のバーコードを使用して、磁気テープを暗号化に使用するかどうか判断します。一方、3400 は電源が入っているか切られています。具体的にはテープ・ライブラリー・ガイドを参照してください。ここでは、3494 ライブラリーの場合を示します。
3494 でのポリシー設定
これらの設定は、システムがダウンした場合、何らかの理由で EKM ジョブが失敗している場合、または暗号化にテープ・ボリュームを追加する場合のみ変更する必要があります。3494 コンソールから Manage Encryption メニューに移動し、Commands|System Management|Manage Encryption と選択します。次の 2 つのオプションを指定します。
- Barcode Encryption Policy (どの磁気テープが暗号化を使用するか設定するため)
- Key Label Entry / EKM IP Info
LME: Barcode Encryption Policy オプションを選択し、次の手順を実行します。
- Add/Modify をクリックし、EB0000-EB0999 というように暗号化に使用する磁気テープの範囲を追加します。この値範囲を基にして、磁気テープのボリューム ID が決まります。
- Key 1 Label フィールド入力で先に作成した証明書ラベルを使用します。例えば、tape_encryption_self_signed_1 となります。
LME: Key Label Entry / EKM IP Info オプションを選択し、次の手順を実行します。
- EKM を実行しているパーティションの IP アドレスを入力し、ポート 3801 を使用します。
- メニューを終了します。
Work with TCP/IP Connection Status (netstat *cnn) 画面をリフレッシュします。図 3 が示すように、テープ・ライブラリーの IP アドレスで 2 つ目の接続セッションが表示されるはずです。
暗号化バックアップおよびリストアの実行
フォーマット FMT3592A2E (* なし) を使用して 3592 テープを初期化します。磁気テープがすでに *FMT3592A2 というフォーマットになっている場合、バックアップは動作しますが、Backup、Recovery、Media Services (BRMS) などのテープ管理システムと混乱する場合があります。密度 FMT3592A2E が見つからない場合、磁気テープ・ドライブおよびライブラリーをオフやオンに構成変更すると INZTAP コマンドに追加される点に注意してください。
リストアは通常通り行います。テープ・ライブラリーは EKM から秘密鍵を要求し、磁気テープを復号します。
EKM の終了
EKM を終了するには、EKM ジョブを終了する必要があります。ジョブを見つけられない場合は、NETSTAT *CNN 画面でオプション 8 (ジョブの表示) を使用できます。このジョブが EKM です。
鍵ストアを取得して、別のパーティションで実行
IBM Navigator for i を使用して、/ekm ディレクトリーとその内容すべてを別のパーティションにコピーします。2 つ目のパーティションの keymanagerconfig.properties ファイルを見えにくいパスワードを持たない keymanagerconfig.properties ファイルと置き換えます。
2 つ目のパーティションで EKM を開始し、IP アドレスおよびポート情報をテープ・ライブラリーに追加します。
グッド・プラクティス
暗号化に何が必要かは各ショップが判断しなければなりませんが、ハードウェア暗号化のパフォーマンス・オーバーヘッドは無視できるほど少ないです。実際問題として、データ保護の必要性が優先度 No.1 です。暗号化では、その状態にいったん入ったら、永久に入ることになります。ビジネス要件により、磁気テープを永久に保存しなければならない場合もありますが、復号できない磁気テープは使いものになりません。まったく役に立ちません。これには、IBM も回避方法がありません。BRMS と IBM の磁気テープの専門家は、回避方法があるとお客様が考えているのではとひどく心配しています。
分かった
何度も言うようですが、鍵を失くさないでください。鍵がないと、回避方法はありません。IBM でもそのミスからあなたを救い出すことはできません。鍵ストアを保存し、安全な場所に保管してください。暗号化テープとともに鍵ストアをオフサイトに出さないでください。
6.1 では IBM i パーティションが Linux パーティションのように他の i パーティションでホストできるようになっています。IBM i パーティションを使用して EKM をホストする場合、暗号化テープをバックアップしている IBM i パーティションでホストされていないことを確認してください。
EKM または Java をアップデートする場合、1 次 EKM のパーティションを最初にアップデートすることをお勧めします。そうすれば、1 次 EKM が開始できなくても、2 次 EKM でバックアップが動作します。2 次 EKM を最初にアップグレードして、問題が発生している場合、1 次 EKM にも問題があるか、ダウンするまでわかりません。
両方の EKM を停止する必要がある場合、3 つ目のパーティションに EKM をインストールし、そのパーティションの EKM を使用するようライブラリーを変更します。いったん 3592 テープが暗号化されると、秘密鍵を取得し、EKM を実行してその鍵をテープ・ライブラリーに供給するまでラベルを見ることさえできません。
災害回復ベンダーを使用する場合、リカバリー対して適切な磁気テープ・ドライブおよびライブラリーをベンダーが持っており、暗号化テープのリストアを開始する前に、Key Manager を実行できることを確認します。リカバリーを早めるには、EKM をインストールした Windows ラップトップで EKM を実行できます。
EKM の実行中はプロパティー・ファイルを変更しないでください。また、変更を行っているときは EKM を開始しないでください。ファイルは EKM が終了すると再作成され、変更内容は失われます。
有効期限が切れた鍵は EKM では問題ではありません。EKM では、有効期限が切れた鍵を使用して新規保存し、有効期限が切れた鍵で磁気テープの復号もできます。
バックアップ中に EKM が使用できない場合は、磁気テープ・ドライブが故障する場合があります。再試行する前に、磁気テープ・ドライブ (またおそらくテープ・ライブラリー) の構成変更をオフまたはオンにする必要があります。
コストとパフォーマンスの理由付け
新しい磁気テープ・ドライブおよびライブラリーのオプションの中には高価なものもありますが、価格は急速に下がっています。SCSI、SAS、ファイバー・チャネル接続ドライブなど、接続形態の選択肢も豊富です。
では、どこでどのように、これら磁気テープで費用を節約できるのでしょう。
LTO-4 テープのコストはそれぞれ約 $75 で、3592 Extended はそれぞれ約 $150 です。しかし、それらはそれぞれ圧倒的とも言える 1.6 TB と 2.1 TB を保持しています。パフォーマンスも高いです。
ショップがかなりの時間が掛かる有人バックアップを行う場合、新しいドライブと磁気テープなら、オペレーターの残業がかなりなくなり、ダウンタイムも短縮できます。私たちのショップのバックアップは 3590 テープより 3592-E05 テープで 2 倍から 3 倍高速化しています。容量が多くなるということは、必要な磁気テープの数が少なくなるということです。磁気テープの数とメディア・ケースの数を減らし、オフサイト・ストレージのコストを大幅に節約できます。磁気テープ当たりの GB 当たりの価格は、大容量カートリッジでずっと下がっています (使用方法にもよりますが)。災害回復テストを行う場合は、ベンダー先でリストアする時間を短縮することで、経費節約できます。新しい磁気テープとライブラリーの TCO を算出する場合は、これらの要因を考慮してください。
Java バージョンと IBM i OS リリースの違い
IBM は Java 要求を処理するジョブの名前を QP0ZSPWP から QJVAEXEC に変更しました。この名前変更は EKM の動作には影響はありませんが、EKM が稼働しているかどうか判断しようとする場合は混乱する可能性があります。
その他の考慮事項
予算がたっぷりあり、戦略的に考えている場合は、EKM を簡単に使用できる GUI 製品の Tivoli Key Lifecycle Manager (TKLM) を検討してみてください。TKLM は EKM と置き換えるもので、Windows、Linux、AIX、および z/OS で使用できますが IBM i についてはまだアナウンスメントは出されていません。動作させるプラットフォームに関係なく、TKLM にはコストが掛かります。
EKM とこの記事の情報で心安らかになるよう、そして IBM i データの保護に役立つよう祈っています。