LoginSignup
1
0

More than 3 years have passed since last update.

java.security.InvalidKeyException: Illegal key size or default parametersとなった時の対応方法

Last updated at Posted at 2020-05-14
  • 環境
    • Red Hat Enterprise Linux Server release 6.3 (Santiago)
    • java version "1.7.0_79"

事象 : 複合化する処理が動いたらInvalidKeyExceptionが発生した

ほかのサーバから送られてきたパラメータを複合化する処理が動いたらInvalidKeyExceptionが発生した

java.security.InvalidKeyException: Illegal key size or default parameters
        at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1011)
        at javax.crypto.Cipher.implInit(Cipher.java:786)
        at javax.crypto.Cipher.chooseProvider(Cipher.java:849)
        at javax.crypto.Cipher.init(Cipher.java:1213)
        at javax.crypto.Cipher.init(Cipher.java:1153)
...省略...

原因 : (Java8以下の場合)AES256bitの鍵長が使えないから

Java では標準ライブラリの Cipher クラスを使えば、サードパーティのライブラリを使うことなく AES 暗号を扱うことができます。しかし、AES 暗号はアメリカの輸出規制の対象になっているらしく、標準では 128bit までの鍵しか扱えません。
Java 9時代のAES 256暗号 - Qiita

対応 : ポリシーファイルを入れ替える

  1. Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files for JDK/JRE DownloadからJavaのバージョンに合ったzipファイルをダウンロードする
    • 今回はJava1.7なのでUnlimitedJCEPolicyJDK7.zipをダウンロード
  2. 解凍したディレクトリ内のjar(local_policy.jarUS_export_policy.jar)を配置するサーバへ転送する
  3. Javaのインストールディレクトリを確認する
  4. {javaのインストールディレクトリ}/jre/lib/security/にあるlocal_policy.jarUS_export_policy.jarのバックアップを取る
  5. {javaのインストールディレクトリ}/jre/lib/security/に解凍したディレクトリ内のjarを配置する
# jarを配置するサーバへ転送する
$ scp -i /path/to/{秘密鍵}.pem /path/to/zip/UnlimitedJCEPolicy/*.jar ponsuke@{サーバ}:/home/ponsuke/
local_policy.jar      100% 2500    12.2KB/s   00:00
US_export_policy.jar  100% 2487    12.1KB/s   00:00

# サーバにログイン
$ ssh -i /path/to/{秘密鍵}.pem ponsuke@{サーバ}
Last login: Thu May 14 20:56:50 2020 from 10.0.1.10

# Javaのインストールディレクトリを確認する
$ printenv JAVA_HOME
/usr/java/default

# jarのバックアップを取る
$ cd $JAVA_HOME/jre/lib/security/
$ sudo mv local_policy.jar local_policy.jar.bak
[sudo] password for ponsuke:
$ sudo mv US_export_policy.jar US_export_policy.jar.bak

# 解凍したディレクトリ内のjarを配置する
$ sudo mv /home/ponsuke/*.jar .
$ ls -la | grep jar
-rw-r--r--   1 ponsuke appl  2487  5月 14 21:36 2020 US_export_policy.jar
-rw-r--r--.  1 root    root  2397  4月 11 03:55 2015 US_export_policy.jar.bak
-rw-r--r--   1 ponsuke appl  2500  5月 14 21:36 2020 local_policy.jar
-rw-r--r--.  1 root    root  2865  4月 11 03:55 2015 local_policy.jar.bak
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0