e-business の発展と共に、データ・セキュリティーは、Internet
ユーザーにとってますます重要になってきました。Secure Sockets Layer (SSL) プロトコルによって、Internet
経由の機密情報の転送は、保護されています。
SSL は、情報を以下の問題から保護します。
- インターネットの盗聴
- データ盗難
- トラフィック分析
- データ変更
- トロイの木馬ブラウザー / サーバー
IMS Connector for Java が IMS Connect と通信するための 1 つの
方法として、TCP/IP ソケットが使用されることがあります。
IMS Connector for Java が TCP/IP を使用している場合には、2 つの
エンティティー間の TCP/IP 通信を保護するために SSL を使用できます。
IMS Connector for Java が提供する SSL サポートは、IMS Connect が提供する
サポートと連動して、公開鍵と秘密鍵の組み合わせ、および対称鍵暗号化スキームを
使用し、クライアントおよびサーバー認証、データ機密性、および保全性を
実現しています。
SSL は、TCP/ IP 通信プロトコルの上
位に位置するため、SSL 対応のサーバーは、SSL 対応のクライアントに対し
てそのサーバー自身の認証を行うことができます。また、この逆も行うことができます。認証が一度完了すると、サーバーおよびクライアントは、同じくデータ保全性を保持する暗号化
された接続を確立できます。
WebSphere® 環境で実行される場合に
SSL をサポートするために、IMS Connector for Java は、IBM® によって実装された Java Secure Socket Extension (IBM
JSSE) を使用します。
SSL ライブラリーは、WebSphere Studio Application Developer
Integration Edition、Rational Application Developer、および WebSphere Application
Server に組み込まれています。
SSL 概念
証明書
ディジタル証明書は、その証明書の所有者の ID を検証するディジタル文書です。ディジタル証明書には、名前、会社、および公開鍵などの個人に関する情報が含まれています。証明書は、信頼のおける権威組織である Certificate Authority (CA) によ
ってディジタル署名を使用して署名されます。
認証局
Certificate Authority (CA) は、ユーザーおよびシステムに対するディジタル証明書の作成および発行を行う信頼できる組織です。
CA は、有効な信任状として証明書の信頼性の基礎を確立します。
証明書管理
証明書および秘密鍵は、鍵ストアと呼ばれるファイルに保管されます。鍵ストアは、鍵の材料のデータベースです。鍵ストア情報は、次の 2 つのカテゴリー、鍵項目およびトラステッド認証項目にグループ化できます。2 つの項目は、セキュリティーのために、別々に保管できます。
- 鍵ストア
- 鍵ストアは、ユーザーの秘密鍵などの鍵項目を IMS Connector for Java に保持します。
- トラストストア
- トラストストアは、ユーザーにとって信頼できる証明書のみを保管する鍵ストアです。トラストストアへのエントリーの追加は、
ユーザーがそのエンティティーを信頼できると判断した場合にのみ行うようにする必要があります。トラストストアのエントリーの例として、ターゲット IMS Connect に関する証明書などがあります。
利便性を考慮して、IMS Connector for Java では、ユーザーは
鍵項目およびトラステッド証明書項目を鍵ストアに保管することも、トラストストアに
保管することもできるようになっています。ユーザーは、従来どおり、それらの項目を別々に保管するように選択できます。IMS
Connector for Java では、対応するすべてのプラットフォームで鍵ストア・タイプ「JKS」および X.509 証明書のみが
サポートされています。z/OS 上では、IMS Connector for Java により、RACF 鍵リングの JCERACFKS (ソフトウェア暗号化) および JCE4758RACFKS (ハードウェア暗号化) 鍵ストアもサポートされます。
SSL プロセス
SSL プロトコルは、サーバー認証、クライアント認証 (オプション)、
その後に続く暗号化された会話で構成されています。次のシナリオでは、SSL プロセスのステップを説明します。
サーバー認証
カスタマー Alice は、
機密情報を銀行に送信しようとしています。Alice は、彼女が個人情報を送信しようとしているサーバーが、本当に彼女の銀行かどうかを確認する必要があります。SSL サーバー認証によって、クライアントは、サーバーの
ID を確認できます。SSL 対応のクライアント・ソフトウェアは、公開鍵暗号化標準技法を使用して、
サーバーの証明書および公開 ID が有効で、その証明書および ID が、クラ
イアントのトラステッド認証局 (CA) のリストの 1 つから発行されていることを確認します。
クライアント認証
同様に、銀行は、情報を送信しているのが、Alice 本人であることを確認する必要があります。SSL クライアント認証によって、サーバーは、クライアントの ID を確認できます。
SSL 対応のサーバー・ソフトウェアは、サーバ
ー認証で使用されたものと同じ技法を使用して、
クライアントの証明書および公開 ID が有効であり、その証明書および ID が、サーバーのトラステッド認証局 (CA) のリストの 1 つから発行されていることを確認します。
SSL ハンドシェーク
Alice と銀行は共に、その証明書および秘密鍵を鍵ストアに保管します。Alice と銀行間の実際の SSL セッションは、クライアントおよびサーバー間のハンドシェーク・シーケンスに従って確立されます。シーケンスは、サーバーがサーバー証明書を提供するように構成されているか、クライアント証明書を要求するように構成されているか、およびどの暗号スイートが使用されているかによって異なることがあります。暗号 (cipher) とは、暗号化アルゴリズムです。SSL プロトコルは、クライアントおよびサーバーが、暗号スイートと折衝し、お互いに認証し、証明書を伝送し、セッション鍵を確立する方法を決定します。暗号スイートで使用されるアルゴリズムをいくつか示します。
- DES - データ暗号化標準
- DSA - ディジタル・シグニチャー・アルゴリズム
- KEA - 鍵交換アルゴリズム
- MD5 - メッセージ・ダイジェスト・アルゴリズム
- RC2 および RC4 - Rivest 氏によって開発された暗号方式
- RSA - 暗号化および認証両方の公開鍵アルゴリズム
- RSA 鍵交換 - RSA アルゴリズムに基づく SSL の鍵交換
- SHA-1 - セキュア・ハッシュ・アルゴリズム
- SKIPJACK - FORTEZZA 準拠のハードウェアに実装された非公開の対称鍵アルゴリズム
- Triple-DES - DES を 3 重に適用したアルゴリズム。
SSL 2.0 および SSL 3.0 プロトコルでは、暗号スイートの重複セットがサポートされています。管理者は、クライアントおよびサーバーの両方に対して、サポートされている任意の暗号スイートを使用可能、
または使用不可にできます。SSL ハンドシェーク中に特定のクライアントおよびサーバーが情報を交換する場合、そのクライアントおよびサーバーは、両方で使用可能な暗合スイートの中で最も強度の高いものを識別し、SSL セッションで使用します。
Transport Layer Security、バージョン 1 (TLS V1) は、SSL 3.0 プロトコルの後継です。IMS
Connector for Java では、TLS V1 のみが サポートされています。後方互換性の問題はありません。