Programmering

Oracle to Java devs: Stopp signering av JAR-filer med MD5

Fra og med april vil Oracle behandle JAR-filer signert med MD5-hashing-algoritmen som om de ikke var signerte, noe som betyr at moderne utgivelser av Java Runtime Environment (JRE) vil blokkere disse JAR-filene fra å kjøre. Skiftet er for lang tid siden MD5s sikkerhetssvakheter er velkjente, og sikrere algoritmer bør brukes til kodesignering i stedet.

"Fra og med utgivelsene fra April Critical Patch Update, planlagt til 18. april 2017, vil alle JRE-versjoner behandle JARer signert med MD5 som usignerte," skrev Oracle på sin Java-nedlastingsside.

JAR-filer med kodesignering samlet med Java-biblioteker og applets er en grunnleggende sikkerhetspraksis, ettersom den lar brukerne vite hvem som faktisk skrev koden, og den har ikke blitt endret eller ødelagt siden den ble skrevet. De siste årene har Oracle styrket Javas sikkerhetsmodell for bedre å beskytte systemer mot ekstern utnyttelse og for å la bare signert kode utføre visse typer operasjoner. En applikasjon uten gyldig sertifikat er potensielt usikker.

Nyere versjoner av Java krever nå at alle JAR-filer skal signeres med en gyldig kodesigneringsnøkkel, og fra og med Java 7 Update 51 er usignerte eller selvsignerte applikasjoner blokkert for kjøring.

Kodesignering er en viktig del av Java sin sikkerhetsarkitektur, men MD5-hasjen svekker den beskyttelsen kodesignering skal gi. MD5 dateres tilbake til 1992, og brukes til enveis hashing: å ta en innspill og generere en unik kryptografisk representasjon som kan behandles som en identifiserende signatur. Ingen to innganger skulle resultere i samme hash, men siden 2005 har sikkerhetsforskere gjentatte ganger vist at filen kan endres og fortsatt ha samme hash i kollisjonsangrep. Mens MD5 ikke lenger brukes til TLS / SSL - Microsoft utfaset MD5 for TLS i 2014 - er det fremdeles utbredt i andre sikkerhetsområder til tross for svakhetene.

Med Oracles endring vil "berørte MD-5-signerte JAR-filer ikke lenger bli betraktet som klarerte [av Oracle JRE] og vil ikke kunne kjøres som standard, for eksempel når det gjelder Java-applets eller Java Web Start-applikasjoner," Erik Costlow, en Oracle produktsjef med Java Platform Group, skrev tilbake i oktober.

Utviklere må bekrefte at JAR-filene deres ikke er signert ved hjelp av MD5, og hvis den har det, signere berørte filer på nytt med en mer moderne algoritme. Administratorer må sjekke med leverandører for å sikre at filene ikke er MD5-signert. Hvis filene fremdeles kjører MD5 på tidspunktet for overgangen, vil brukerne se en feilmelding om at applikasjonen ikke kunne gå. Oracle har allerede informert leverandører og kildelisensinnehavere om endringen, sa Costlow.

I tilfeller der leverandøren er avviklet eller ikke vil signere applikasjonen på nytt, kan administratorer deaktivere prosessen som ser etter signerte applikasjoner (som har alvorlige sikkerhetsmessige implikasjoner), sette opp egendefinerte distribusjonsregelsett for applikasjonens plassering eller opprettholde et unntakssted Liste, skrev Costlow.

Det var nok av advarsler. Oracle sluttet å bruke MD5 med RSA-algoritme som standard JAR-signeringsalternativ med Java SE6, som ble utgitt i 2006. MD5-avskrivningen ble opprinnelig kunngjort som en del av oktober 2016 oppdateringen om kritisk oppdatering og var planlagt å tre i kraft denne måneden som en del av Januar CPU. For å sikre at utviklere og administratorer var klare for skiftet, har selskapet besluttet å utsette overgangen til April Critical Patch Update, med Oracle Java SE 8u131 og tilsvarende utgivelser av Oracle Java SE 7, Oracle Java SE 6 og Oracle JRockit R28.

“CAs sikkerhetsråd applauderer Oracle for sin beslutning om å behandle MD5 som usignert. MD5 har blitt avviklet i årevis, noe som gjør flyttingen fra MD5 til en kritisk oppgradering for Java-brukere, ”sa Jeremy Rowley, konserndirektør for nye markeder i Digicert og medlem av CAs sikkerhetsråd.

Det har gått lang tid å avvikle MD5, men det er ikke nok. Oracle bør også se på avskriving av SHA-1, som har sitt eget sett med problemer, og vedta SHA-2 for kodesignering. Denne handlingen ville være i tråd med den gjeldende migreringen, ettersom store nettlesere har lovet å slutte å støtte nettsteder som bruker SHA-1-sertifikater. Med de fleste organisasjoner som allerede er involvert i SHA-1-migreringen for TLS / SSL, er det fornuftig for dem å også flytte resten av sertifikatet og nøkkelsigneringsinfrastrukturen til SHA-2.

Den gode nyheten er at Oracle planlegger å deaktivere SHA-1 i sertifikatkjeder forankret av røtter som er inkludert som standard i Oracle's JDK samtidig som MD5 blir avviklet, ifølge JRE og JDK Crypto Roadmap, som skisserer tekniske instruksjoner og informasjon om pågående kryptografisk jobbe for Oracle JRE og Oracle JDK. Minimum nøklelengde for Diffie-Hellman økes også til 1024 bits senere i 2017.

Veikartet hevder også at Oracle nylig har lagt til støtte for SHA224withDSA og SHA256withDSA signaturalgoritmer til Java 7, og deaktivert Elliptic Curve (EC) for nøkler på mindre enn 256 bits for SSL / TLS for Java 6, 7 og 8.

$config[zx-auto] not found$config[zx-overlay] not found