目次


IBM Cognos 10 暗号化サービス 【CSK編】

Comments

1. はじめに

IBM Cognos® Business Intelligence は、単一のサービス指向アーキテクチャー (SOA) 上で、あらゆるビジネス・インテリジェンス機能を提供する製品です。より最適な意思決定を行うために必要なレポート作成、分析、スコアカード処理、およびイベント管理の機能とビジネスのパフォーマンスの監視、傾向の分析、結果の測定をWebベースで行います。

IBM Cognos Business Intelligence にはWebアプリケーションで広く使われている共通鍵暗号、公開鍵暗号、電子署名、電子証明書(ディジタル証明書)といったセキュリティーの仕組みが組み込まれており、それらは暗号化サービスと暗号化プロバイダとのやりとりで実現されています。IBM Cognos Business Intelligenceの通信と機密データは、暗号化サービスや暗号化プロバイダが提供する仕組みを使って保護され、暗号化サービスはCSK(Common Symmetric Key)を使って情報を暗号化し、暗号化プロバイダは、暗号化サービスで利用するCSKを暗号化して署名をつけ、各コンポーネントに安全に配信します。

システム管理者はCognos®の通信内容がどのように保護されるのかや、暗号化や署名に使用する鍵の有効期限をCognos Configuration の暗号化サービスや暗号化プロバイダで設定することが可能です。

暗号化サービスで設定された有効期限を越えると通信を正しく行うことができなくなり、Cognosシステムの動作に影響がでる可能性があります。有効期限はデフォルトで365日のように長期間で設定するため、システム管理者は暗号サービスに関する設定を正しく理解し、適宜Cognosシステムのメンテナンスを行う必要があります。

これまでにCognosの管理者がメンテナンス中にサービスを起動しようとして暗号情報の生成に失敗し、サービスが起動できなくなるといった報告事例があります。これらの事例はセキュリティーに関する技術的理解を深め暗号化サービスを適切に設定しておくことにより未然に防ぐことができます。当記事ではIBM Cognos® Business Intelligence暗号化サービスに関する製品ドキュメントや公開されている技術情報への理解をより深めていただくことを目的としています。

Webサービスで利用される一般的なセキュリティーの仕組みについてはdeveloperWorksドキュメントのWebセキュリティー入門: 第1回 「セキュリティー対策を考える」や、Webセキュリティー入門: 第2回「さらに知りたいセキュリティー(SSL)の仕組み」などをご参照ください。

当記事ではIBM Cognos Business Intelligence 製品の管理者またはそれに相当する知識を保有する方を対象としており、IBM Cognos® Business Intelligence製品のセキュリティーアーキテクチャーを大きく2つの要素(暗号化サービスと暗号化プロバイダ)に分類し、まずは暗号化サービスの内容と設定についてご紹介します。次の記事では、暗号化プロバイダとその設定をご紹介しますので当記事と組み合わせてお役立てください。

2. IBM Cognos 10 のセキュリティーアーキテクチャー

IBM Cognos 10 のセキュリティーアーキテクチャーは、複数のサービスがそれぞれの役割を担うことで成り立っており、既存の認証プロバイダと柔軟に連携を図ることができます。それらの主なサービスは、"IBM Cognos Application Firewall"(略称:CAF)、"IBM Cognos 認証サービス"、"IBM Cognos 承認サービス"、"暗号化サービス"などです。このセキュリティーモデルのイメージ図は下記の通りです。

図1. アーキテクチャーのイメージ図
図1. アーキテクチャーのイメージ図
図1. アーキテクチャーのイメージ図

それぞれのサービスや機能の概要について簡単に説明します。

IBM Cognos Application Firewall
Cognos ポータルにログインするときやレポート実行など、クライアントからの要求が各サービスに送信される前や処理される前に、それらの内容はCAFによって検証されます。要求の検証、エラーメッセージの隠蔽、パラメータによる署名などの機能があります。

IBM Cognos 認証サービス
IBM Cognos 製品の外部にある認証プロバイダを利用するサービスです。IBM Cognos 製品では、LDAPなどが持つ認証の機能はなく、外部の認証プロバイダを別途準備する必要があります。

IBM Cognos 承認サービス
ユーザごとにアクセスできるデータや実行可能な操作を指定するプロセスのことで、例えば、承認されたユーザのみ、フォルダ内のレポートの編集が行えるようになります。

暗号化サービス
IBM Cognos コンポーネント間通信でやり取りされるデータや、Cognos Configuration に設定された情報、配布機能で利用されるアーカイブなどは、暗号化サービスによって保護されます。デフォルトでは組み込みのCA(Certificate Authority)を使用していますが、サポートされるサードパーティ製のCAに変更することもできます。

それでは次に、暗号化サービスについて見ていきましょう。

3. 暗号化サービス

デフォルトのインストール環境では暗号化サービスの配下に、Cognos 暗号化プロバイダが設定されています。暗号化プロバイダには、SSL(Secure Socket Layer) サービス、BI Bus メッセージによる信頼された要求、配布プロセスの暗号化、一時ファイルの暗号化が含まれます。

実際に、暗号化サービスの設定画面(Cognos Configuration)を確認します。下記の図はデフォルトインストール時の設定画面です。

3.1. Cognos Configurationの設定画面

“暗号化”の設定

図2. Cognos Configuration ― 暗号化
図2. Cognos Configuration ― 暗号化
図2. Cognos Configuration ― 暗号化

Cognos Configurationの暗号化の設定では、CSK設定、SSL設定、詳細アルゴリズム設定を調整できます。SSL設定では、IBM Cognos コンポーネント間でSSL通信を行う際に使用します。詳細アルゴリズム設定では、暗号化のために使用するメッセージダイジェストのアルゴリズムや、データの署名用に使用するアルゴリズムを選択できます。

では最後に、CSK設定(Common Symmetric Key)について解説します。

図3. Cognos Configuraion ― CSK設定
図3. Cognos Configuraion ― CSK設定
図3. Cognos Configuraion ― CSK設定

3.2. CSK(Common Symmetric Key)設定

共通対象鍵 - CSK(Common Symmetric Key)
Cognos Configuration の”暗号化”でパスワードや有効期限を設定します。CSKによって保護されるデータは、設定ファイル(Cognos Configuration)で設定されたContent StoreデータベースやSMTPサーバーのユーザIDやパスワード、認証プロバイダに関する情報、そしてBiBusを経由してやり取りされるデータです。
その他、Content Storeに保存されている信頼された認証情報や、クエリデータベースの認証情報、レポートの出力バージョンなどが保護されます。

分散インストールした場合でも、CSK設定のデフォルトは図3のように“対象鍵をローカルに保存”が有効となっています。
ここで、分散インストールを行った場合のCSKの設定例と考慮点についてご紹介します。

表1. 各CognosコンポーネントのCSK設定の例と考慮点
対象鍵をローカルに保存有効(デフォルト)無効
説明CSKファイルはローカルに保存されます。CSKファイルはローカルに保存されず、暗号化操作を行うたびにContent Managerに要求します。
パフォーマンスとセキュリティーローカルに保存されたデータを参照するため、“無効”の設定と比較してパフォーマンスは高いですが、ローカルにデータが保存されているためフォルダへのアクセス権などに関するセキュリティー面について注意が必要です。Content Managerにネットワークを経由してCSKを要求します。そのため、情報がローカルにある場合と比較してパフォーマンスは劣りますが、データはローカルに保存されていないため、セキュリティー面は向上します。
IBM Cognos コンポーネントファイヤーウォールの内側にContent Manager と Applicationを配置してセキュリティーのリスクを補うことが可能です。一般的にファイヤーウォールの外側に配置されることが多いGatewayの場合、外部からのアクセスに対してセキュリティーレベルの高いものがよいでしょう。

上記の情報をもとに、ご利用環境の設定にお役立て下さい。

共通対象鍵の有効期限は、デフォルトで365日が設定されていますが、運用にかかるワークロード軽減のためだけに、デフォルトの設定よりも大きな値に変更することはセキュリティー上好ましくありませんので、定期的に有効期限を更新するようにしてください。

CSKの有効期限が切れてしまった場合、単一マシンにすべてのコンポーネントがインストールされた単一インストールの構成ではサービス開始そのものに問題はなく、暗号情報の更新はサービス起動時に行われます。
一方、分散インストールの場合、各コンポーネントの設定によってはローカルにCSKを保存しているものも想定され、それらのすべてが適切に更新されていない場合は、サービスが利用できなくなることも考えられます。
その場合の対処として、一度、サービスを停止させてからすべてのコンポーネントにある暗号情報をクリアし、再作成することでサービスを利用することができます。暗号情報のクリアは手動でフォルダを削除する手順となりますが、詳細は下記のTechNotesの記事をご参考にして下さい。

How to Regenerate Cryptographic Keys (US)
続いて、サンプルケース(1台のマシンにすべてのコンポーネントをインストールしたもの)を使って、Cognosサービス起動の様子を見ていきます。

4. サンプルケース (1台構成)

Cognos Configuration の起動、設定の保存、サービスの開始の順に詳細を解説します。構築した環境は以下の構成で行い、インストール時のオプションやインストール後の設定についてもすべてデフォルトで行いました。

表2. 環境構成
OSMicrosoft Windows Server 2003 R2 SP2
IBM CognosIBM Cognos 10.0.1
Java version1.6.0
DatabaseSQL Server 2005
認証プロバイダSunOne LDAP v5.2

1. Cognos Configurationを起動
JVMのバージョンチェックなど暗号化を行うための適合性を検証します。 Cognos Configurationを起動する前に、IBM Cognos サービスが既に稼動している状態で、且つ、CSKの有効期限をこえている場合、稼働中のシステムがCSKの更新を行い、<c10 root>\configuration\csk フォルダ配下にあるファイルのタイムスタンプは、Cognos Configuration を起動した日付に更新されます。

2. パスワードを設定
共通対象鍵ストアのパスワード
上記のパスワードはデフォルトインストールでは‘NoPassWordSet’が定義されています。設定されたパスワードはCognos Configuration のファイルメニューにある‘名前を付けてエクスポート’で生成されたXMLファイルで確認することができます。

3. Cognos Configurationで保存ボタンを押下
Cognos Configuration にある設定情報を検証し、暗号情報の生成を行い設定を保存します。正しく保存が行えると、図4のような画面になります。

図4. Cognos Configuration 設定の保存
図4. Cognos Configuration 設定の保存
図4. Cognos Configuration 設定の保存

設定した情報は<c10 root>\configuration\cogstartup.xml ファイルに、暗号化され書き込まれます。

4. Cognos Configurationで保存ボタンを押下した後、サービスを開始
Cognosサービスを開始します。

図5. Cognos Configuration サービスの開始
図5. Cognos Configuration サービスの開始
図5. Cognos Configuration サービスの開始

メールサーバーに関する設定がない場合は図5のように警告が出力されますが、Cognosサービスの起動には影響ありません。

4.1. サンプルケース (暗号情報の確認)

CSKが更新されたことを確認するには、ファイルのタイムスタンプを確認する方法と、Keytoolユーティリティを利用する方法と、2つがあります。

方法 ①:“CSK”フォルダに生成されたファイルのタイムスタンプを確認
CSKの暗号情報は、<c10 root>\configuration\csk配下に生成されており、サービスを開始したときに、保存した設定ファイルの内容をもとにファイルのタイムスタンプが更新されることで、情報の更新が行われることを確認します。

方法 ②:JavaのKeytoolユーティリティプログラムを利用してKeystoreの内容を確認
JavaコマンドラインベースのKeytoolユーティリティーを利用して、生成された暗号情報の内容を確認し、CSKの更新された日付を確認できます。GUI版をご利用の際には、外部のサイトからダウンロードしてください。

Keytoolの実体は C:\Program Files\ibm\cognos\c10\bin\jre\6.0\bin 配下にあり、サンプルケースで利用したコマンドの例と、そこから得られた結果を下記にご紹介しますので、お役立て下さい。コマンドで使用できるオプションについては、-help で確認することができます。
※ご利用いただいているシステムのものとは、エントリ数などに違いがあります。

使用するコマンド例:
C:\Program Files\ibm\cognos\c10\bin\jre\6.0\bin>keytool.exe -list -keystore
 "C:\Program Files\ibm\cognos\c10\configuratin\csk\jCSKKeystore” -storepass
  cognos -storetype JCEKS -providerName IBMJCE

実行結果の例 - その(1):

図6. Keytoolコマンドライン実行結果
図6. Keytoolコマンドライン実行結果
図6. Keytoolコマンドライン実行結果

実行結果の例 - その(2):
日付が変わり、暗号情報の更新が行われているよう様子は図6の通りです。これは、コマンドラインベースではなく、GUI版を利用したイメージとなります。

図7. Keytoolユーティリティー(GUI版)
図7. Keytoolユーティリティー(GUI版)
図7. Keytoolユーティリティー(GUI版)

確認できているエントリを手動で削除した場合、情報の不整合が発生しサービスが開始できなくなる場合や、設定の保存が行えなくなるなど予期せぬ結果となる場合がありますので、Keytoolを利用する場合は確認用に留めて、ご利用下さい。

※なお、第4章のケースは、1つの設定例となり、複数台での構成や、SSL、ドメイン環境など、構成が違う場合、そこから得られる結果が異なる場合もあります。

5. おわりに

暗号化サービスに関する設定は、よく見落としがちで具体的にどのように設定を行っていけばよいのか迷う部分でもあります。特に、有効期限に関してデフォルトでは365日という長期間の設定がされているため、放置しがちな箇所だとも言えます。
この有効期限を無効にするといった機能や設定は現在のところありません。一般的なソフトウェアを利用する上でのセキュリティーの概念から、暗号強度が永久に確保されるものではないことを考慮した上で、Cognos Configuration上で適切な設定を行い、管理者が定期的にメンテナンスを行わなければなりません。その為、本番環境での運用時には有効期限に近づくと暗号情報の生成を定期的に行う必要があります。手順については製品ドキュメント「インストールおよび設定ガイド」をご参照ください。


ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Information Management
ArticleID=608311
ArticleTitle=IBM Cognos 10 暗号化サービス 【CSK編】
publish-date=10202015