Javaの抱える7月28日問題は大丈夫?
特定の条件に合致するJavaベースのソフトウェアが、今年の7月28日以降に正常に動かなくなる可能性があります。
その条件とは、JCE (Java Cryptography Extension) 1.2.1を使用しているソフトウェアです。インフォテリアでも以前に出荷していたASTERIA R2が該当するため、お客様に更新方法をご案内しました。ASTERIAは既に200社近い企業で採用いただいていますが、旧バージョンのR2で稼動しているところは多くなく、提供先も把握できているので大きな問題ではありません。しかし、この問題はASTERIAに限らず世の中にある様々なJavaベースのシステムで障害を発生させる可能性があるので、1ケースでも多く事前に障害を回避できるようにと考え、ここでお知らせします。
このJCEの問題は、具体的にはJCE 1.2.1をサインした証明書が2005年7月28日に期限切れとなり、JCEの特定のメソッドが正常に作動しなくなるものです。結果として、JCEを含んだソフトウェアが正しく機能しなくなることがあります。なお、この問題はJCE 1.2.2で修正されています。(Sunのドキュメント:ただし、証明書が切れる日付は明言されていません)
この問題は、当然パッケージソフトだけでなくJCE 1.2.1を使って開発された個別システムにも該当します。JCEは暗号化関係の処理を行うための拡張モジュールで、例えばSSL対応のWebサイトなどでも使われることがあります。既にJCEをアップデート済みのソフトウェアやシステムは問題ありませんが、JCE 1.2.1を含んで出荷されたまま使用されたり、JCE 1.2.1を使ってカットオーバーしたままメンテナンスできていないシステムなども少なからず存在するのではないでしょうか。
当方で確認したところ、該当するJAR内部のクラスファイルのタイムスタンプは、JCE 1.2.1で2000/07/28、JCE 1.2.2で2002/06/27となっており※1、この約2年の間に開発され現在も使用されているソフトやシステムがこの問題に遭遇する危険性があります。あなたの開発したシステム、使っているシステムは大丈夫でしょうか?JCE 1.2.1を使用していないかどうかを再確認することをお勧めします。
※1 厳密にいうと、このタイムスタンプはビルド日であり、リリース日はその後となります。JCE 1.2.1のリリース日は、2000年9月という記録がありますので、ビルドからリリースまでは1~2ヶ月と推察されます。