Programmering

Oracle to Java devs: Stop med at underskrive JAR-filer med MD5

Fra og med april behandler Oracle JAR-filer, der er underskrevet med MD5-hashing-algoritmen, som om de ikke var signeret, hvilket betyder, at moderne udgivelser af Java Runtime Environment (JRE) vil blokere for, at disse JAR-filer kører. Skiftet er længe forsinket, da MD5s sikkerhedssvagheder er velkendte, og mere sikre algoritmer bør bruges til kodesignering i stedet.

”Fra og med udgivelserne fra April Critical Patch Update, planlagt til den 18. april 2017, vil alle JRE-versioner behandle JAR'er, der er signeret med MD5, som usignerede,” skrev Oracle på sin Java-download-side.

Kodesignering af JAR-filer samlet med Java-biblioteker og applets er en grundlæggende sikkerhedspraksis, da det lader brugerne vide, hvem der faktisk skrev koden, og den er ikke blevet ændret eller ødelagt, siden den blev skrevet. I de senere år har Oracle styrket Javas sikkerhedsmodel for bedre at beskytte systemer mod ekstern udnyttelse og kun tillade underskrevet kode at udføre bestemte typer operationer. En applikation uden et gyldigt certifikat er potentielt usikker.

Nyere versioner af Java kræver nu, at alle JAR-filer skal underskrives med en gyldig kodesigneringsnøgle, og startende med Java 7 Update 51 er usignerede eller selvsignerede applikationer blokeret for kørsel.

Kodesignering er en vigtig del af Java's sikkerhedsarkitektur, men MD5-hash svækker den meget beskyttede kodesignering skal give. MD5 går tilbage til 1992 og bruges til envejs hashing: at tage et input og generere en unik kryptografisk repræsentation, der kan behandles som en identificerende signatur. Ingen to input skal resultere i den samme hash, men siden 2005 har sikkerhedsforskere gentagne gange vist, at filen kunne ændres og stadig have den samme hash i kollisionsangreb. Mens MD5 ikke længere bruges til TLS / SSL - Microsoft udfasede MD5 for TLS i 2014 - er den fortsat udbredt i andre sikkerhedsområder på trods af dens svagheder.

Med Oracle's ændring vil “berørte MD-5-signerede JAR-filer ikke længere blive betragtet som tillid [af Oracle JRE] og vil ikke være i stand til at køre som standard, f.eks. I tilfælde af Java-applets eller Java Web Start-applikationer,” Erik Costlow, en Oracle-produktchef hos Java Platform Group, skrev tilbage i oktober.

Udviklere skal kontrollere, at deres JAR-filer ikke er underskrevet ved hjælp af MD5, og hvis det er tilfældet, underskrive de berørte filer igen med en mere moderne algoritme. Administratorer skal kontakte leverandører for at sikre, at filerne ikke er MD5-signerede. Hvis filerne stadig kører MD5 på tidspunktet for overgangen, vil brugerne se en fejlmeddelelse om, at applikationen ikke kunne gå. Oracle har allerede informeret leverandører og kildelicenshavere om ændringen, sagde Costlow.

I tilfælde, hvor sælgeren er afviklet eller ikke villig til at underskrive applikationen igen, kan administratorer deaktivere processen, der kontrollerer for underskrevne applikationer (som har alvorlige sikkerhedsimplikationer), opsætte tilpassede implementeringsregelsæt til applikationens placering eller opretholde et undtagelsessted Liste, skrev Costlow.

Der var masser af advarsler. Oracle stoppede med at bruge MD5 med RSA-algoritme som standard JAR-signeringsindstilling med Java SE6, som blev frigivet i 2006. MD5-afskrivningen blev oprindeligt annonceret som en del af opdateringen af ​​den kritiske programrettelse i oktober 2016 og var planlagt til at træde i kraft denne måned som en del af Januar CPU. For at sikre, at udviklere og administratorer var klar til skiftet, har virksomheden besluttet at udskyde skiftet til April Critical Patch Update med Oracle Java SE 8u131 og tilsvarende udgivelser af Oracle Java SE 7, Oracle Java SE 6 og Oracle JRockit R28.

”CA-sikkerhedsrådet bifalder Oracle for sin beslutning om at behandle MD5 som usigneret. MD5 er blevet afskaffet i årevis, hvilket gør flytningen væk fra MD5 til en kritisk opgradering for Java-brugere, ”sagde Jeremy Rowley, administrerende vicepræsident for nye markeder i Digicert og medlem af CAs sikkerhedsråd.

Forældelse af MD5 har længe været kommet, men det er ikke nok. Oracle bør også se på afskrivning af SHA-1, som har sit eget sæt problemer, og vedtage SHA-2 til kodesignering. Denne fremgangsmåde ville være i tråd med den nuværende migration, da store browsere har lovet at stoppe med at understøtte websteder, der bruger SHA-1-certifikater. Med de fleste organisationer, der allerede er involveret i SHA-1-migrationen til TLS / SSL, er det fornuftigt for dem også at skifte resten af ​​deres certifikat og nøglesigneringsinfrastruktur til SHA-2.

Den gode nyhed er, at Oracle planlægger at deaktivere SHA-1 i certifikatkæder, der er forankret af rødder inkluderet som standard i Oracle's JDK, samtidig med at MD5 bliver afskaffet ifølge JRE og JDK Crypto Roadmap, der beskriver tekniske instruktioner og information om igangværende kryptografisk arbejde for Oracle JRE og Oracle JDK. Den mindste nøgellængde for Diffie-Hellman øges også til 1.024 bit senere i 2017.

Vejkortet hævder også, at Oracle for nylig tilføjede understøttelse af SHA224withDSA og SHA256withDSA signaturalgoritmer til Java 7 og deaktiverede Elliptic Curve (EC) for nøgler på mindre end 256 bit til SSL / TLS til Java 6, 7 og 8.

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