IBM Software Group WebSphere Message Broker for z/Linux パフォーマンスレポート ~ SSL通信 通信における 共通鍵暗号処理オフロー 通信におけるAES共通鍵暗号処理 における 共通鍵暗号処理オフロー ド機構の 機構の効果~ 効果~ 2009/08/25 ソフトウェア事業 WebSphere 第二テクニカルセールス システム製品事業 System zテクニカルセールス © 2009 IBM Corporation IBM Software Group IBM, WebSphere, DB2, Tivoli, Lotus, Rational, System zは、IBM Corporationの米国およびその他の国における商標です Linuxは、Linus Torvaldsの米国およびその他の国における登録商標です。 Javaおよび全てのJava関連の商標およびロゴは、Sun Microsystems, Inc.の米国およびその他の国における商標または登録商標です Microsoft ,WindowsおよびWindowsロゴは、Microsoft Corporationの米国およびその他の国における商標です 他の会社名、製品名およびサービス名等は、各社の商標または登録商標です 当資料に含まれる各ソフトウェアの仕様は変更されることがあります また、当資料は、当資料に記載される各ソフトウェアの仕様・品質を保証するものではありません ご注意 この資料に含まれる情報は可能な限り正確を期しておりますが、日本アイ・ビー・エム株式会社の正式なレビューを受けておらず、当資料に記載さ れた内容に関して日本アイ・ビー・エム株式会社は何ら保証するものではありません。 従って、この情報の利用またはこれらの技法の実施はひとえに使用者の責任において為されるものであり、資料の内容によって受けたいかなる被 害に関しても一切の保証をするものではありません。 当資料をコピー等で複製することは、日本アイ・ビー・エム株式会社および執筆者の承諾なしではできません。また、当資料に記載された製品名また は会社名はそれぞれの各社の商標または登録商標です。 2 © 2009 IBM Corporation IBM Software Group 当レポートの目的と測定結果 当レポートは下記を目的として作成しました。 – Linux on IBM System z (z/Linux)上にて、WebSphere Message Broker (WMB) のSOAPノードでSSL通信を行うにあたり、各技術文書に散在している構成情報を まとめ、構成例を示すこと。 – SSL通信で暗号化を行った際のオーバーヘッドと、System zに標準搭載されている 暗号処理オフロード機構CPACF (CP Assist for Cryptographic Function)を活用し た際の効果(オーバーヘッドをどれだけ低減できるか)を明確にすること。 – なお、暗号化方式としては今後主流になると考えられるAESを採用しました。 測定結果のポイントは次の通りです。 – WMBのSOAPノードを使ったSSL通信の設定を行い、次の結果が得られました。 SSL使用時のスループットへの影響 SSL使用時の単位処理当たりのCPUオーバーヘッド CPACFなし CPACFあり CPACFなし CPACFあり 1KB 35%低下 21%低下 92%増 19%増 4KB 43%低下 16%低下 181%増 9%増 – CPACFにより により、 使用時に スループット・CPU使用量 使用量に える性能低下を により、SSL使用時 使用時にスループット・ 使用量に与える性能低下 性能低下を大幅 に低減可能です 低減可能です。 です。メッセージ長 メッセージ長が増すほど効果 すほど効果があります 効果があります。 があります。 3 © 2009 IBM Corporation IBM Software Group 【参考】 SSLの仕組みとCPACFの効果が得られる処理 B が公開キーbを 送信システム A に送付 送信システムA 受信システムB 公開キーb 公開キーと秘密キーのペアで暗号化/復号化 ≠ 自動生成 公開キーb セッション暗号化キー (共通キー) 共通キーを公開 キーbで暗号化 秘密キーb 秘密キーbで共 通キーを復号化 公開キーでは 復号化できない 公開キーbで暗号化した共通キーを送付 安全にセッション暗号化キーを共有 ここからセッション暗号化キー (共通キー) を使用した 共通鍵暗号化アルゴリズムによる通信に切換 セッション暗号化キー (共通キー) 共通キーで暗号化しデータ送受信 共通キーで暗号化/復号化 4 CPACFの の効果が 効果が得られる処理 られる処理 共通キーで暗号化/復号化 © 2009 IBM Corporation IBM Software Group 測定環境 測定シナリオ 5 © 2009 IBM Corporation IBM Software Group 測定環境 z10(2097-716)の の1LPARに に2個 個のIFLと と16GBの のメモリを メモリを割り当ててテスト ててテストしました テストしました 。各コンポーネントの コンポーネントのバージョン・ バージョン・リリースは リリースは下記の 下記の通りです。 りです。 SLES10 SP2 WMB V6.1 DB2 UDB V9.1 J2RE 1.5 MQ V6 2097-716 (2IFL / 16GB メモリ) メモリ 6 © 2009 IBM Corporation IBM Software Group 測定に使用したWMBメッセージフローの概要 WMBの の1つの つのブローカー つの実行 つのタイプ つのブローカーに ブローカーに3つの つの実行グループ 実行グループを グループを定義し 定義し、次の3つの つのタイプの タイプのメッセージ・ メッセージ・フローを フローを稼働させまし 稼働させまし た。 - サービス・ 並列度10) サービス・リクエスター (並列度 並列度 - サービス・ サービス・プロバイダー(並列度 プロバイダー 並列度10) 並列度 - メッセージ・ 並列度1) メッセージ・クリーナー (並列度 並列度 (0) 入力キューにメッセージをためておく (1) MQGET メッセージ・ メッセージ・ クリーナー WMB 実行グループ 実行グループ EG3 (4) MQGET (3) MQPUT サービス・ サービス・ リクエスター x 10 WMB 実行グループ 実行グループ EG1 (2) SOAP/https サービス・ サービス・ プロバイダー x 10 WMB 実行グループ 実行グループ EG2 この通信においてCPACFの効果を計測 7 © 2009 IBM Corporation IBM Software Group メッセージフロー - サービス・リクエスター (1/2) requester.msgflow Sale_ipl5_requester.msgflow 8 © 2009 IBM Corporation IBM Software Group メッセージフロー - サービス・リクエスター (2/2) サービス・リクエスター・メッセージフロー – MQInput 入力キューからデータを受信。 – Compute MQMDの除去、文字コードの変換を行う。 – Sale_ipl5 Sale_ipl5_requesterサブフローを呼び出す。 – Compute1 MQMDの付与、文字コードの変換を行う。 – MQOutput 出力キューへデータを送信。 Sale_ipl5_requesterサブフロー – Request SOAP要求をサービス・プロバイダー・メッセージフローに送信し、 応答を待ち受ける。 – Extract 9 SOAPヘッダーを除去。 © 2009 IBM Corporation IBM Software Group メッセージフロー - サービス・プロバイダー (1/2) provider.msgflow ipl5_provider.msgflow 10 © 2009 IBM Corporation IBM Software Group メッセージフロー - サービス・プロバイダー (2/2) サービス・プロバイダー・メッセージフロー – SOAP Input SOAP要求の受信。WSDLから自動生成 – ipl5 ipl5_providerサブフローの呼び出し – Mapping 入力データと出力データのマッピング。 入力と出力では同じメッセージ定義を使用しており、 ほぼ同じデータを出力に流す(XMLの1エレメントを除去)。 – Trace1 メッセージ通過を確認するため、ファイルにログを出力 – SOAP Reply SOAP応答の送信 ipl5_providerサブフロー – Extract 11 SOAPヘッダーの除去 © 2009 IBM Corporation IBM Software Group メッセージフロー - メッセージ・クリーナー SimpleMQ.msgflow MQInput – サービス・リクエスターが出力したメッセージをMQGETする Compute – 何もしないで終了 12 © 2009 IBM Corporation IBM Software Group テストケース 下記の ケースの のケースも のケースも エレメン 下記の6ケース ケースの測定を 測定を実施。 実施。データは データは1KBの ケースも4KBの ケースも約40エレメン トのXMLを を使用。 使用。 ケース データサイ ズ No SSL 1KB 1KB SSL 1KB 1KB 有効 SSL+CPF 1KB 1KB 有効 No SSL 4KB 4KB SSL 4KB 4KB 有効 SSL+CPF 4KB 4KB 有効 SSL CPACF 暗号スイート SSL_RSA_WITH_AES_128_CBC_SHA SSL_RSA_WITH_AES_128_CBC_SHA 有効 SSL_RSA_WITH_AES_128_CBC_SHA SSL_RSA_WITH_AES_128_CBC_SHA SSL_RSA_WITH_AES_128_CBC_SHA 有効 SSL_RSA_WITH_AES_128_CBC_SHA 当テストで使用したWMBのメッセージフロー、メッセージ定義、入力データをプロジェクト交換用のzipファイルとして添 付しています。 このzipファイルをWMB Toolkitにインポートしてテストケースの詳細を確認可能です。 13 © 2009 IBM Corporation IBM Software Group 測定結果 14 © 2009 IBM Corporation IBM Software Group 測定結果サマリー 測定結果の ~3は はWMBの の実行グループ 測定結果のサマリーを サマリーを下表にまとめます 下表にまとめます。 にまとめます。EG1~ 実行グループ( グループ(プロセス) プロセス)です。 です。 EG1では ではリクエスター ではプロバイダー ではメッセージクリーナー ではリクエスター、 リクエスター、EG2では ではプロバイダー、 プロバイダー、EG3では ではメッセージクリーナーを メッセージクリーナーを稼働させました 稼働させました。 させました。 データ サイズ SSL CPACF 秒当たりの 処理件数 CPU使用率 (%) 1処理辺り のCPU使用 量[No SSL を1とした相 対値] 実行グループ別 CPU使用率 (%) 実メモリ使用量 (MB) 45.6 1 EG1 15.1 EG1 176.0 EG2 27.8 EG2 188.4 EG3 0.8 EG3 128.0 EG1 17.3 EG1 159.1 EG2 38.3 EG2 151.0 EG3 0.5 EG3 121.0 EG1 15.9 EG1 145.5 EG2 24.4 EG2 155.0 EG3 0.5 EG3 123.0 EG1 15.5 EG1 177.0 EG2 33.1 EG2 189.0 EG3 0.5 EG3 128.0 EG1 21.2 EG1 156.0 EG2 58.7 EG2 151.0 EG3 0.5 EG3 121.0 EG1 17.8 EG1 150.3 EG2 26.5 EG2 155.9 EG3 0.5 EG3 123.0 © 2009 IBM Corporation [ No SSLと の比較 ] No SSL 1KB SSL 1KB SSL+CPF 1KB No SSL 4KB SSL 4KB SSL+CPF 4KB 15 1KB 1KB 1KB 223.7 有効 有効 145.4 [-35%] 有効 4KB 4KB 4KB 175.4 [-21%] 199.0 有効 有効 112.8 [-43%] 有効 165.9 [-16%] 56.7 42.6 50.9 81.1 46.1 1.92 [+92%] 1.19 [+19%] 1 2.81 [+181%] 1.09 [+9%] IBM Software Group 測定結果 - 1KB - スループット SSL通信 通信を 低下しますが を有効化する の低下にとどめ 通信を行うとスループット うとスループットが スループットが35%低下 低下しますが、 しますが、CPACFを 有効化する事 する事により、 により、21%の 低下にとどめ る事ができます。 ができます。グラフの グラフの数値は 数値は秒当たりの 秒当たりの処理 たりの処理( 処理(リクエスター+ リクエスター+プロバイダー+ プロバイダー+メッセージクリーナー) メッセージクリーナー)のスルー プットです プットです。 です。 SSL Performance (SSL_RSA_WITH_AES_128_CBC_SHA) 250 223.7 200 Throughput 175.4 150 145.4 100 50 0 No SSL (1KB message) 16 SSL (1KB msg, No CPACF) SSL (1KB msg, CPACF) © 2009 IBM Corporation IBM Software Group 測定結果 - 1KB - 1処理当たりのCPU使用量 1処理 処理( 使用量の 処理(リクエスター+ リクエスター+プロバイダー+ プロバイダー+メッセージクリーナー) メッセージクリーナー)あたりのCPU使用量 あたりの 使用量の比較です 比較です。 です。 SSL通信 通信による のCPUオーバーヘッド オーバーヘッドを により19%の のオーバーヘッドにとどめることができます 通信による92%の による オーバーヘッドをCPACFにより により オーバーヘッドにとどめることができます 。 1処理あたりのCPU使用量(相対値) (1KB messages) 1.92 1.19 1 No SSL (1KB message) 17 SSL (1KB msg, No CPACF) SSL (1KB msg, CPACF) © 2009 IBM Corporation IBM Software Group 測定結果 - 4KB - スループット SSL通信 通信を 低下しますが を有効化する の低下にとどめ 通信を行うとスループット うとスループットが スループットが43%低下 低下しますが、 しますが、CPACFを 有効化する事 する事により、 により、16%の 低下にとどめ る事ができます。 ができます。グラフの グラフの数値は 数値は秒当たりの 秒当たりの処理 たりの処理( 処理(リクエスター+ リクエスター+プロバイダー+ プロバイダー+メッセージクリーナー) メッセージクリーナー)のスルー プットです プットです。 です。 SSL Performance (SSL_RSA_WITH_AES_128_CBC_SHA) 250 200 Throughput 199 165.9 150 112.8 100 50 0 No SSL (4KB message) 18 SSL (4KB msg, No CPACF) SSL (4KB msg, CPACF) © 2009 IBM Corporation IBM Software Group 測定結果 - 4KB - 1処理あたりのCPU使用量 1処理 処理( 使用量の 処理(リクエスター+ リクエスター+プロバイダー+ プロバイダー+メッセージクリーナー) メッセージクリーナー)あたりのCPU使用量 あたりの 使用量の比較です 比較です。 です。 SSL通信 通信による のCPUオーバーヘッド オーバーヘッドを によりわずか9%の のオーバーヘッドにとどめることがで 通信による181%の による オーバーヘッドをCPACFによりわずか によりわずか オーバーヘッドにとどめることがで きます。 きます。 1 処理あたりのCPU使用量(相対値) (4KB messages) 2.81 1.09 1 No SSL (4KB message) 19 SSL (4KB msg, No CPACF) SSL (4KB msg, CPACF) © 2009 IBM Corporation IBM Software Group 測定結果 - メモリ使用量 WMB実行 実行グループ 実行グループの グループのメモリ使用量 メモリ使用量をまとめました 使用量をまとめました。 をまとめました。 各ケースの ケースの開始前に 開始前に必ずしも実行 ずしも実行グループ 実行グループを グループを再始動していないため 再始動していないため、 していないため、メモリ使用量 メモリ使用量は 使用量は目安ととらえて 目安ととらえて下 ととらえて下さい。 さい。 ケース データサ イズ No SSL 1KB 1KB SSL 1KB SSL+CPF 1KB No SSL 4KB SSL 4KB SSL+CPF 4KB 20 1KB 1KB SSL CPACF 有効 有効 有効 4KB 4KB 4KB 有効 有効 有効 仮想メモリ使用量 (MB) 実メモリ使用量 (MB) 共用メモリ使用量 (MB) EG1 565.2 EG1 176.0 EG1 45.0 EG2 571.7 EG2 188.4 EG2 46.0 EG3 532.0 EG3 128.0 EG3 41.0 EG1 567.9 EG1 159.1 EG1 44.0 EG2 562.0 EG2 151.0 EG2 44.0 EG3 527.0 EG3 121.0 EG3 40.0 EG1 557.2 EG1 145.5 EG1 43.0 EG2 569.0 EG2 155.0 EG2 44.0 EG3 527.0 EG3 123.0 EG3 40.0 EG1 566.0 EG1 177.0 EG1 45.0 EG2 571.3 EG2 189.0 EG2 46.0 EG3 532.0 EG3 128.0 EG3 41.0 EG1 564.9 EG1 156.0 EG1 44.0 EG2 562.0 EG2 151.0 EG2 44.0 EG3 527.0 EG3 121.0 EG3 40.0 EG1 560.7 EG1 150.3 EG1 43.5 EG2 569.0 EG2 155.9 EG2 45.0 EG3 527.0 EG3 123.0 EG3 40.0 © 2009 IBM Corporation IBM Software Group 構成情報 ①WMBのSOAPノードでSSLを使用 ②CPACFを使用 21 © 2009 IBM Corporation IBM Software Group ①SSL構成 - 鍵ストア・ファイルの作成 鍵ストア・ファイルの生成にはWMB付属のkeytoolユーティリティーを使用。次 のコマンドを実行する事によって生成。 • /opt/ibm/mqsi/6.1/jre15/bin/keytool -genkey -keystore /home/wmbadmin/.keystore -storepass password -alias mykey 鍵ストア・ファイルを配置するディレクトリは任意です。 鍵ストア・ファイルの作成については下記リンクを参照のこと http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r1m0/topic/com.ibm.etools.mft.doc/a p12235_.htm 22 © 2009 IBM Corporation IBM Software Group ①SSL構成 - WMB (1/2) サービス・リクエスター・メッセージフローの設定 – SOAP RequestノードのHTTPトランスポートのタブでプロパティを次のように設定 • WebサービスURL: https://localhost:7843/WssSale/services/WssSale • プロトコル: TLS • 許可されたSSL暗号: SSL_RSA_WITH_AES_128_CBC_SHA – SSL、SSLv3ではAESはサポートされません。 – SOAP Requestノードについては、下記リンクを参照のこと。 http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r1m0/topic/com.ibm.etools.mft.doc/ac56190 _.htm WMBの実行環境の設定(リクエスター用) – 次のコマンドで鍵ストア・ファイルの場所を設定 • mqsichangeproperties WMBBROKER -o BrokerRegistry -n brokerTruststoreFile -v "/home/wmbadmin/.keystore" – 次のコマンドで鍵のパスワードを設定 • mqsisetdbparms WMBBROKER -n brokerTruststore::password -u temp -p password (*) このコマンドはブローカーが停止している時でないと実行できません。 – これらの設定については、下記リンクを参照のこと。 http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r1m0/topic/com.ibm.etools.mft.doc/ab60250 _.htm 23 © 2009 IBM Corporation IBM Software Group ①SSL構成 - WMB (2/2) サービス・プロバイダー・メッセージフローの設定 – SOAP InputノードのHTTPトランスポートのタブでプロパティを次のように設定 • HTTPSの使用: チェックを入れる – SOAPInputノードの設定については、下記リンクを参照のこと。 http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r1m0/topic/com.ibm.et ools.mft.doc/ac56170_.htm WMBの実行環境の設定(プロバイダー用) – 次のコマンドで鍵ストア・ファイルの場所とパスワードを設定 • mqsichangeproperties WMBBROKER -o HTTPSConnector -n keystoreFile,keystorePass -v "/home/wmbadmin/.keystore","password" – 鍵ストア・ファイルの設定については下記リンクを参照のこと。 http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r1m0/topic/com.ibm.et ools.mft.doc/an09148_.htm 24 © 2009 IBM Corporation IBM Software Group ②CPACFを使用するための構成 WMB関連設定 – /opt/ibm/mqsi/6.1/jre15/lib/security/java.securityを編集し、次の行を加える。 • security.provider.1=com.ibm.crypto.pkcs11impl.provider.IBMPKCS11Impl /home/wmbadmin/hwcrypto.cfg • providerのリストの先頭に指定すること。security.provider.1を割り当てること。 – 構成ファイル/home/wmbadmin/hwcrypto.cfgを作成。内容については次のペー ジを参照。 – WMBプロセスのオーナー(wmbadmin)をpkcs11グループに加える。 OS関連設定 – 次のコマンドでCPACFのデバイスドライバーをロードする。 (OS起動時に開始するように設定) • /etc/init.d/z90crypt start – 次のコマンドでPKCS11サブシステムを開始する。 (OS起動時に開始するように設定) • /etc/init.d/pkcsslotd start 25 © 2009 IBM Corporation IBM Software Group ②/home/wmbadmin/hwcrypto.cfg の内容 #IBM 4764 name = Sample library=/usr/lib/pkcs11/PKCS11_API.so64 description=4764 sample config slotListIndex = 0 disabledMechanisms = { CKM_MD5 CKM_SHA_1 # CKM_AES_CBC # CKM_AES_ECB # CKM_AES_CBC_PAD # CKM_DES_ECB # CKM_DES_CBC # CKM_DES_CBC_PAD # CKM_DES3_ECB # CKM_DES3_CBC # CKM_DES3_CBC_PAD } 26 © 2009 IBM Corporation IBM Software Group Appendix. CPACFの情報 mtsles10:~ # icainfo The following CP Assist for Cryptographic Function (CPACF) operations are supported by libica on this system: SHA-1: yes SHA-256: yes SHA-512: yes DES: yes TDES-128: yes TDES-192: yes AES-128: yes AES-192: yes AES-256: yes PRNG: yes mtsles10:~ # cat /proc/driver/z90crypt zcrypt version: 2.1.0 Cryptographic domain: 14 Total device count: 2 PCICA count: 0 PCICC count: 0 PCIXCC MCL2 count: 0 PCIXCC MCL3 count: 0 CEX2C count: 0 CEX2A count: 2 requestq count: 0 pendingq count: 0 Total open handles: 0 27 Online devices: 1=PCICA 2=PCICC 3=PCIXCC(MCL2) 4=PCIXCC(MCL3) 5=CEX2C 6=CEX2A 0066000000000000 0000000000000000 0000000000000000 0000000000000000 Waiting work element counts 0000000000000000 0000000000000000 0000000000000000 0000000000000000 Per-device successfully completed request counts 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 © 2009 IBM Corporation IBM Software Group Appendix. その他のシステム情報 mtsles10:~ # SPident CONCLUSION: System is up-to-date! found SLE-10-s390x-SP2 mtsles10:~ # uname -r 2.6.16.60-0.21-default mtsles10:~ # cat /proc/cpuinfo vendor_id : IBM/S390 # processors : 2 bogomips per cpu: 3761.76 features : esan3 zarch stfle msa ldisp eimm dfp edat processor 0: version = 00, identification = 0B054F, machine = 2097 processor 1: version = 00, identification = 0B054F, machine = 2097 mtsles10:~ # cat /proc/sysinfo Manufacturer: IBM Type: 2097 Model: 716 E26 Sequence Code: 000000000004054F Plant: 02 Model Capacity: 716 00001264 Model Perm. Capacity: 716 00001264 Model Temp. Capacity: 716 00001264 CPUs Total: 28 CPUs Configured: 16 CPUs Standby: 0 CPUs Reserved: 12 Capability: 904 1350 Adjustment 02-way: 61500 Adjustment 03-way: 59260 Adjustment 04-way: 57480 Adjustment 05-way: 55800 Adjustment 06-way: 54700 Adjustment 07-way: 53600 Adjustment 08-way: 52500 28 61500 59500 57300 55700 54300 53100 52040 Adjustment 09-way: Adjustment 10-way: Adjustment 11-way: Adjustment 12-way: Adjustment 13-way: Adjustment 14-way: Adjustment 15-way: Adjustment 16-way: Adjustment 17-way: Adjustment 18-way: Adjustment 19-way: Adjustment 20-way: Adjustment 21-way: Adjustment 22-way: Adjustment 23-way: Adjustment 24-way: Adjustment 25-way: Adjustment 26-way: Adjustment 27-way: Adjustment 28-way: Secondary Capability: LPAR LPAR LPAR LPAR LPAR LPAR LPAR LPAR LPAR LPAR 51200 50100 49000 48000 47200 46400 45600 44800 44300 43900 43500 43100 42600 42300 42000 41700 41400 41100 40800 40400 904 51000 50000 49020 48120 47300 46500 45800 45200 44680 44120 43640 43200 42740 42360 41980 41600 41240 40960 40680 40360 Number: 11 Characteristics: Dedicated Name: CEC1LN1 Adjustment: 500 CPUs Total: 2 CPUs Configured: 2 CPUs Standby: 0 CPUs Reserved: 0 CPUs Dedicated: 2 CPUs Shared: 0 mtsles10:~ # rcz90crypt status Checking for module z90crypt: mtsles10:~ # rcpkcsslotd status Checking for service pkcsslotd: running running © 2009 IBM Corporation IBM Software Group Appendix. 有効化されている暗号スイートを調べるプログラム WMBの のSSLポート ポートを ポートを指定して 指定して、 して、次のプログラムを プログラムを実行する 実行する事 する事によって、 によって、有効化されている 有効化されている暗号 されている暗号スイート 暗号スイートを スイートを調 べる事 べる事ができます。 ができます。 GetCipherSuites.java import import import import import java.lang.*; java.security.*; java.util.*; java.io.*; javax.net.ssl.*; public class GetCipherSuites { //* WMB等のSSLポートを指定する。 static int port = 7843; static String hostname = "localhost"; public static void main(String args []) { try { SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault(); SSLSocket sslsocket = (SSLSocket) sslsocketfactory.createSocket(hostname, port); String[] ts = new String[50]; //* Enabled Protocol ts = sslsocket.getEnabledProtocols(); System.out.println("The number of Enabled Protocols is " + ts.length); for (int idx = 0; idx < ts.length; idx++) System.out.println((idx+1) + " " + ts[idx]); //* Supported CipherSuites ts = sslsocket.getSupportedCipherSuites(); System.out.println("The number of Supported Cipher Suites is " + ts.length); for (int idx = 0; idx < ts.length; idx++) System.out.println((idx+1) + " " + ts[idx]); //* Enabled CipherSuites ts = sslsocket.getEnabledCipherSuites(); System.out.println("The number of Enabled Cipher Suites is " + ts.length); for (int idx = 0; idx < ts.length; idx++) System.out.println((idx+1) + " " + ts[idx]); //* Supported Protocol } catch (Exception e) { System.out.println(e); e.printStackTrace(); } ts = sslsocket.getSupportedProtocols(); System.out.println("The number of Supported Protocols is " + ts.length); for (int idx = 0; idx < ts.length; idx++) System.out.println((idx+1) + " " + ts[idx]); 29 } } © 2009 IBM Corporation IBM Software Group Appendix. 有効化されている暗号スイートを調べるプログラム z/Linux版 版WMB V6.1での での実行結果 での実行結果 The number of Supported Protocols is 5 1 SSLv3 2 TLS 3 TLSv1 4 SSL 5 SSL_TLS The number of Enabled Protocols is 5 1 SSLv3 2 TLS 3 TLSv1 4 SSL 5 SSL_TLS The number of Supported Cipher Suites is 36 1 SSL_RSA_WITH_RC4_128_MD5 2 SSL_RSA_WITH_RC4_128_SHA 3 SSL_RSA_WITH_AES_128_CBC_SHA 4 SSL_DHE_RSA_WITH_AES_128_CBC_SHA 5 SSL_DHE_DSS_WITH_AES_128_CBC_SHA 6 SSL_RSA_WITH_3DES_EDE_CBC_SHA 7 SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA 8 SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA 9 SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA 10 SSL_DHE_DSS_WITH_RC4_128_SHA 11 SSL_RSA_WITH_DES_CBC_SHA 12 SSL_RSA_FIPS_WITH_DES_CBC_SHA 13 SSL_DHE_RSA_WITH_DES_CBC_SHA 14 SSL_DHE_DSS_WITH_DES_CBC_SHA 15 SSL_RSA_EXPORT_WITH_RC4_40_MD5 16 SSL_RSA_EXPORT_WITH_DES40_CBC_SHA 17 SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA 18 SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA 19 SSL_RSA_WITH_NULL_MD5 20 SSL_RSA_WITH_NULL_SHA 21 SSL_DH_anon_WITH_AES_128_CBC_SHA 22 SSL_DH_anon_WITH_RC4_128_MD5 30 23 SSL_DH_anon_WITH_3DES_EDE_CBC_SHA 24 SSL_DH_anon_WITH_DES_CBC_SHA 25 SSL_DH_anon_EXPORT_WITH_RC4_40_MD5 26 SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA 27 SSL_KRB5_WITH_RC4_128_SHA 28 SSL_KRB5_WITH_RC4_128_MD5 29 SSL_KRB5_WITH_3DES_EDE_CBC_SHA 30 SSL_KRB5_WITH_3DES_EDE_CBC_MD5 31 SSL_KRB5_WITH_DES_CBC_SHA 32 SSL_KRB5_WITH_DES_CBC_MD5 33 SSL_KRB5_EXPORT_WITH_RC4_40_SHA 34 SSL_KRB5_EXPORT_WITH_RC4_40_MD5 35 SSL_KRB5_EXPORT_WITH_DES_CBC_40_SHA 36 SSL_KRB5_EXPORT_WITH_DES_CBC_40_MD5 The number of Enabled Cipher Suites is 18 1 SSL_RSA_WITH_RC4_128_MD5 2 SSL_RSA_WITH_RC4_128_SHA 3 SSL_RSA_WITH_AES_128_CBC_SHA 4 SSL_DHE_RSA_WITH_AES_128_CBC_SHA 5 SSL_DHE_DSS_WITH_AES_128_CBC_SHA 6 SSL_RSA_WITH_3DES_EDE_CBC_SHA 7 SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA 8 SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA 9 SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA 10 SSL_DHE_DSS_WITH_RC4_128_SHA 11 SSL_RSA_WITH_DES_CBC_SHA 12 SSL_RSA_FIPS_WITH_DES_CBC_SHA 13 SSL_DHE_RSA_WITH_DES_CBC_SHA 14 SSL_DHE_DSS_WITH_DES_CBC_SHA 15 SSL_RSA_EXPORT_WITH_RC4_40_MD5 16 SSL_RSA_EXPORT_WITH_DES40_CBC_SHA 17 SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA 18 SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA © 2009 IBM Corporation IBM Software Group Appendix. 有効化されている暗号スイートを調べるプログラム Windows版 版WMB V6.1での での実行結果 での実行結果 The number of Supported Protocols is 3 1 SSLv2Hello 2 SSLv3 3 TLSv1 The number of Enabled Protocols is 3 1 SSLv2Hello 2 SSLv3 3 TLSv1 The number of Supported Cipher Suites is 33 1 SSL_RSA_WITH_RC4_128_MD5 2 SSL_RSA_WITH_RC4_128_SHA 3 TLS_RSA_WITH_AES_128_CBC_SHA 4 TLS_DHE_RSA_WITH_AES_128_CBC_SHA 5 TLS_DHE_DSS_WITH_AES_128_CBC_SHA 6 SSL_RSA_WITH_3DES_EDE_CBC_SHA 7 SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA 8 SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA 9 SSL_RSA_WITH_DES_CBC_SHA 10 SSL_DHE_RSA_WITH_DES_CBC_SHA 11 SSL_DHE_DSS_WITH_DES_CBC_SHA 12 SSL_RSA_EXPORT_WITH_RC4_40_MD5 13 SSL_RSA_EXPORT_WITH_DES40_CBC_SHA 14 SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA 15 SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA 16 SSL_RSA_WITH_NULL_MD5 17 SSL_RSA_WITH_NULL_SHA 18 SSL_DH_anon_WITH_RC4_128_MD5 19 TLS_DH_anon_WITH_AES_128_CBC_SHA 20 SSL_DH_anon_WITH_3DES_EDE_CBC_SHA 21 SSL_DH_anon_WITH_DES_CBC_SHA 22 SSL_DH_anon_EXPORT_WITH_RC4_40_MD5 23 SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA 24 TLS_KRB5_WITH_RC4_128_SHA 25 TLS_KRB5_WITH_RC4_128_MD5 31 26 TLS_KRB5_WITH_3DES_EDE_CBC_SHA 27 TLS_KRB5_WITH_3DES_EDE_CBC_MD5 28 TLS_KRB5_WITH_DES_CBC_SHA 29 TLS_KRB5_WITH_DES_CBC_MD5 30 TLS_KRB5_EXPORT_WITH_RC4_40_SHA 31 TLS_KRB5_EXPORT_WITH_RC4_40_MD5 32 TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA 33 TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5 The number of Enabled Cipher Suites is 15 1 SSL_RSA_WITH_RC4_128_MD5 2 SSL_RSA_WITH_RC4_128_SHA 3 TLS_RSA_WITH_AES_128_CBC_SHA 4 TLS_DHE_RSA_WITH_AES_128_CBC_SHA 5 TLS_DHE_DSS_WITH_AES_128_CBC_SHA 6 SSL_RSA_WITH_3DES_EDE_CBC_SHA 7 SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA 8 SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA 9 SSL_RSA_WITH_DES_CBC_SHA 10 SSL_DHE_RSA_WITH_DES_CBC_SHA 11 SSL_DHE_DSS_WITH_DES_CBC_SHA 12 SSL_RSA_EXPORT_WITH_RC4_40_MD5 13 SSL_RSA_EXPORT_WITH_DES40_CBC_SHA 14 SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA 15 SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA © 2009 IBM Corporation