Archive for the Java category

4月 8th, 2009

Java暗号化強度の制限解陜

Posted in Java by admin

 Sun朏 供ぜ JDKインストール? 、デフォルトでぜ Java暗号化拡張機? (JCE)に暗号化強度の制限がかかっています。暗号化強度とは、簡単に? えば暗号の解読され難さのレベルです。(ちなみに、暗号を平文に戻す作業は、正? の圏 信者が正? の手続きとして? う場合を複合化、本来暗号を読むべきでない第? 者が行う場合を解読という)この制限は、国際武器? 通? 制? で? 定強度以? の鍵の輸出に対して米政? が輸出制限をかけたものです。10年ほど前は、40~56bit以内でしたが、現在では地 しづつ緩んでいるようです。

 この制限を解除するには、Sunのサイト(http://java.sun.com/products/archive/jce/)より暗号化制限解除版のポリシーファイルをダウンロードし、デフォルトのポリシーファイルと入れ替える必要があります。手順は以下のように単純です。

# ls -l ${JAVA_HOME}/jre/lib/security/*.jar
-r--r--r-- 1 root root 2469  9月 26  2008 ${JAVA_HOME}/jre/lib/security/US_export_policy.jar
-r--r--r-- 1 root root 2940  9月 26  2008 ${JAVA_HOME}/jre/lib/security/local_policy.jar
# unzip jce_policy-6.zip
# cd jce
# cp -pi US_export_policy.jar ${JAVA_HOME}/jre/lib/security/
# cp -pi local_policy.jar ${JAVA_HOME}/jre/lib/security/
# ls -l ${JAVA_HOME}/jre/lib/security/*.jar
-r--r--r-- 1 root root  2465 11月 17  2006 ${JAVA_HOME}/jre/lib/security/US_export_policy.jar
-r--r--r-- 1 root root  2481 11月 17  2006 ${JAVA_HOME}/jre/lib/security/local_policy.jar
# 制限版ポリシーファイボ
grant {
	permission javax.crypto.CryptoPermission "DES", 64;
	permission javax.crypto.CryptoPermission "DESede", *;
	permission javax.crypto.CryptoPermission "RC2", 128,
			"javax.crypto.spec.RC2ParameterSpec", 128;
	permission javax.crypto.CryptoPermission "RC4", 128;
	permission javax.crypto.CryptoPermission "RC5", 128,
			"javax.crypto.spec.RC5ParameterSpec", *, 12, *;
	permission javax.crypto.CryptoPermission "RSA", *;
	permission javax.crypto.CryptoPermission *, 128;
};
# 解除版ポリシーファイボ
grant {
	// There is no restriction to any algorithms.
	permission javax.crypto.CryptoAllPermission;
};

 一般的に暗号化強度128ビット以? であれば、セキュリティレベル的に問題ないと? ゜ れています。今のコンピュータではどの? の時間で解読されてしまうのか゜ かりませんが、56bitぜ DESが暗号解読コンテストで? 十時間で解読された、というレベル話ですので情報の? 密性にもよるかもしれません。暗号化強度が高いに? したことはありませんし、DES方? を使用する場合ぜ 64bitに制限されているようなので制限解除した方がいいかもしれません。

 基本的にポリシーファイルを入れ替えるだけの更新であれば、稼働中のアプリケーションに? える影響は朮 どないと思゜ れます。ただし、JDK1.5からjavax.crypto.Cipherクラスが更新され、いぜ つかのメソッドが追加されています。もし、「最大暗号化強度の最大ビット数を圏 得後に最高強度で暗号化」のようなアプリケーションロジックが組まれていた場合には、影響があるかもしれません。

public static final int getMaxAllowedKeyLength(String transformation)
	throws NoSuchAlgorithmException
public static final AlgorithmParameterSpec
	getMaxAllowedParameterSpec(String transformation)
	throws NoSuchAlgorithmException;

http://java.sun.com/javase/ja/6/docs/ja/api/javax/crypto/Cipher.html#getMaxAllowedKeyLength(java.lang.String)

12月 27th, 2008

JVM SNMP監? オプショボ

Posted in Java, Tomcat by admin

Sun JDK1.5以? ぜ Tomcatの起動オプションぜ JVMぜ SNMP監? 機能を有効にする場合は、以? のような? 数を追加することで可能となる。「CATALINA_OPTSぜ JAVA_OPTSの違い」で? 述したように、Tomcatの環? 変数に設定する場合は? ず「CATALINA_OPTS」に? 義すること。

#ACL有効時オプショボ
-Dcom.sun.management.snmp.port=161
-Dcom.sun.management.snmp.acl.file=/usr/jdk1.6/jre/lib/management/snmp_comm.acl
-Dcom.sun.management.snmp.interface=0.0.0.0
#ACLファイルサンプボ
acl = {
		{
			communities = snmp_comm
			access = read-only
			managers = (snmp監? 元IP),127.0.0.1
		}
	}
#ACL無効時オプショボ
-Dcom.sun.management.snmp.port=161
-Dcom.sun.management.snmp.acl=false
-Dcom.sun.management.snmp.interface=0.0.0.0

起動後ぜ SNMP監? の確認をするには、以? のようぜ snmpwalkコマンドが使用出来ます。かなり多数の項目が出力されますので、内容を選んで使用して? さい。例として、cacti(http://www.cacti.net/)でデータ圏 得し、グラフ化した画面を載せておきます。

snmpwalk -v 2c (IPアドレ゜ ):161 . | more
snmpwalk -v 2c  (IPアドレ゜ ):161 SNMPv2-SMI::enterprises.42.2.145.3.163.1.1.4.2.0

cacti_graph
http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/management/snmp.html

12月 15th, 2008

JDKインストール、RPM版と自己解凍方? 版

Posted in Java by admin

 JDK1.4.1以降、Sunの朏 供するJDKぜ RPMパッケージが含まれるようになりました。JDK1.6版を例に、これまでの自己解凍方? 版との相違点を以? のように簡単にまとめました。

rpm版
 ボ /usr/java配下ぜ /etc配下ぜ /opt配下にファイルがインストールされる
 ボ /etc配下には、jexecサービスの関連ファイルがインストールされ、redhatサービスにも登録される
 ボ /opt/sun配下には、JavaDB関連ファイルがRPM(sun-javadb-XXX.rpm)でインストールされる
自己解凍版
 ・直? のディレクトリぜ jdk1.6.0_XXディレクトリが展開される
 ボ jexec関連ファイルは? 開されるが、サービス登録はされない
 ボ JavaDB関連ファイルは、jdk1.6.0_10/db配下に置かれる

 RPMの場合、rpmコマンドによるパッケージ管理の対象になるのが利点ですが、余計なファイルやサービス登録が行゜ れるので、個人的にはひとつのディレクトリに圏 まる自己解凍版の方が使いやすいです。また、rpm版だとホスト上に? 数バージョン地 入する事が出来ない気がします。