Oracle to Java devs: Berhenti menandatangani file JAR dengan MD5

Mulai bulan April, Oracle akan memperlakukan file JAR yang ditandatangani dengan algoritma hashing MD5 seolah-olah tidak ditandatangani, yang berarti rilis modern Java Runtime Environment (JRE) akan memblokir file JAR tersebut agar tidak berjalan. Pergeseran sudah lama tertunda, karena kelemahan keamanan MD5 sudah diketahui, dan algoritme yang lebih aman sebaiknya digunakan untuk penandatanganan kode.

“Dimulai dengan rilis Pembaruan Patch Kritis April, yang direncanakan pada 18 April 2017, semua versi JRE akan memperlakukan JAR yang ditandatangani dengan MD5 sebagai tidak bertanda tangan,” tulis Oracle di halaman unduhan Java-nya.

File JAR penandatanganan kode yang dibundel dengan pustaka dan applet Java adalah praktik keamanan dasar karena memungkinkan pengguna mengetahui siapa yang sebenarnya menulis kode, dan kode itu belum diubah atau rusak sejak ditulis. Dalam beberapa tahun terakhir, Oracle telah meningkatkan model keamanan Java untuk lebih melindungi sistem dari eksploitasi eksternal dan hanya mengizinkan kode yang ditandatangani untuk menjalankan jenis operasi tertentu. Aplikasi tanpa sertifikat yang valid berpotensi tidak aman.

Versi Java yang lebih baru sekarang mengharuskan semua file JAR ditandatangani dengan kunci penandatanganan kode yang valid, dan dimulai dengan Java 7 Update 51, aplikasi yang tidak ditandatangani atau ditandatangani sendiri diblokir agar tidak dapat berjalan.

Penandatanganan kode adalah bagian penting dari arsitektur keamanan Java, tetapi hash MD5 melemahkan penandatanganan kode perlindungan yang seharusnya disediakan. Kembali ke tahun 1992, MD5 digunakan untuk hashing satu arah: mengambil input dan menghasilkan representasi kriptografi unik yang dapat diperlakukan sebagai tanda tangan pengenal. Tidak ada dua masukan yang menghasilkan hash yang sama, tetapi sejak 2005, peneliti keamanan telah berulang kali menunjukkan bahwa file dapat dimodifikasi dan masih memiliki hash yang sama dalam serangan tabrakan. Meskipun MD5 tidak lagi digunakan untuk TLS / SSL — Microsoft menghentikan MD5 untuk TLS pada tahun 2014 — itu tetap lazim di area keamanan lain meskipun memiliki kelemahan.

Dengan perubahan Oracle, "file JAR bertanda tangan MD-5 yang terpengaruh tidak lagi dianggap tepercaya [oleh Oracle JRE] dan tidak akan dapat dijalankan secara default, seperti dalam kasus applet Java, atau aplikasi Java Web Start", Erik Costlow, manajer produk Oracle dengan Java Platform Group, menulis kembali pada bulan Oktober.

Pengembang perlu memverifikasi bahwa file JAR mereka belum ditandatangani menggunakan MD5, dan jika sudah, tanda tangani ulang file yang terpengaruh dengan algoritme yang lebih modern. Administrator perlu memeriksa vendor untuk memastikan file tidak bertanda MD5. Jika file masih menjalankan MD5 pada saat peralihan, pengguna akan melihat pesan kesalahan bahwa aplikasi tidak dapat masuk. Oracle telah menginformasikan vendor dan pemegang lisensi sumber tentang perubahan tersebut, kata Costlow.

Jika vendor tidak berfungsi atau tidak mau menandatangani ulang aplikasi, administrator dapat menonaktifkan proses yang memeriksa aplikasi yang ditandatangani (yang memiliki implikasi keamanan yang serius), menyiapkan Set Aturan Penerapan kustom untuk lokasi aplikasi, atau memelihara Situs Pengecualian Daftar, tulis Costlow.

Ada banyak peringatan. Oracle berhenti menggunakan MD5 dengan algoritma RSA sebagai opsi penandatanganan JAR default dengan Java SE6, yang dirilis pada tahun 2006. Penghentian MD5 awalnya diumumkan sebagai bagian dari Pembaruan Patch Kritis Oktober 2016 dan dijadwalkan untuk berlaku bulan ini sebagai bagian dari CPU Januari. Untuk memastikan para pengembang dan administrator siap untuk peralihan, perusahaan telah memutuskan untuk menunda peralihan ke Pembaruan Patch Kritis April, dengan Oracle Java SE 8u131 dan rilis terkait dari Oracle Java SE 7, Oracle Java SE 6, dan Oracle JRockit R28.

“Dewan Keamanan CA memuji Oracle atas keputusannya untuk memperlakukan MD5 sebagai tidak ditandatangani. MD5 sudah tidak digunakan lagi selama bertahun-tahun, membuat perpindahan dari MD5 menjadi peningkatan penting bagi pengguna Java, ”kata Jeremy Rowley, wakil presiden eksekutif pasar berkembang di Digicert dan anggota Dewan Keamanan CA.

Menghentikan MD5 sudah lama terjadi, tetapi itu tidak cukup. Oracle juga harus melihat penghentian SHA-1, yang memiliki kumpulan masalahnya sendiri, dan mengadopsi SHA-2 untuk penandatanganan kode. Tindakan tersebut akan sejalan dengan migrasi saat ini, karena browser utama telah berjanji untuk berhenti mendukung situs web yang menggunakan sertifikat SHA-1. Dengan sebagian besar organisasi telah terlibat dengan migrasi SHA-1 untuk TLS / SSL, masuk akal bagi mereka untuk juga mengalihkan sertifikat dan infrastruktur penandatanganan kunci lainnya ke SHA-2.

Kabar baiknya adalah bahwa Oracle berencana untuk menonaktifkan SHA-1 dalam rantai sertifikat yang ditambatkan oleh root yang disertakan secara default di JDK Oracle pada saat yang sama MD5 tidak digunakan lagi, menurut JRE dan JDK Crypto Roadmap, yang menguraikan instruksi teknis dan informasi tentang kriptografi yang sedang berlangsung. bekerja untuk Oracle JRE dan Oracle JDK. Panjang kunci minimum untuk Diffie-Hellman juga akan ditingkatkan menjadi 1.024 bit nanti di tahun 2017.

Peta jalan juga mengklaim bahwa Oracle baru-baru ini menambahkan dukungan untuk algoritma tanda tangan SHA224withDSA dan SHA256withDSA ke Java 7, dan menonaktifkan Elliptic Curve (EC) untuk kunci kurang dari 256 bit untuk SSL / TLS untuk Java 6, 7, dan 8.