Sådan repareres IPMI KVM JAVA BMCMD5withRSA og behandles som usigneret fejl

Som enhver god sysadmin holdt jeg mine servere og desktop side opdateret og patched hele tiden. Nylige Java-opdateringer har dog brudt mine IPMI KVM Java Applets på Dell, IBM, HP, Supermicro og FreeNAS mini-servere. Du får en fejl, der læses som følger:

Ubemærket program, der anmoder om ubegrænset adgang til systemet. Følgende ressource er underskrevet med en svag signatur algoritme MD5withRSA og behandles som usigneret.

Fejlen fortsætter som følger:

<?xml version="1.0" encoding="UTF-8"?>
 
<jnlp spec="1.0+" codebase="http://192.168.2.92:80/Java">
     <information>
        <title>JViewer</title>
        <vendor>American Megatrends, Inc.</vendor>
        <description kind="one-line">JViewer Console Redirection Application</description>
        <description kind="tooltip">JViewer Console Redirection Application</description>
        <description kind="short">
            JViewer enables a user to view the video display of managed server via KVM.  
            It also enables the user to redirect his local keyboard, mouse for managing the server remotely.
        </description>
    </information>
	<security>
		<all-permissions/>
	</security>
    <resources>
        <j2se version="1.5+"/>
        <jar href="release/JViewer.jar"/>
    </resources>
    <resources>
        <j2se version="1.5+"/>
        <jar href="release/JViewer-SOC.jar"/>
    </resources>
    <resources os="Windows" arch="x86">
    	<j2se version="1.5+"/>
    	<nativelib href="release/Win32.jar"/>
    </resources>    
    <resources os="Windows" arch="amd64">
           <j2se version="1.5+"/>
           <nativelib href="release/Win64.jar"/>
    </resources>
    <resources os="Linux" arch="x86">
    	<j2se version="1.5+"/>
    	<nativelib href="release/Linux_x86_32.jar"/>
    </resources>    
    <resources os="Linux" arch="i386">
    	<j2se version="1.5+"/>
    	<nativelib href="release/Linux_x86_32.jar"/>
    </resources>    
	<resources os="Linux" arch="x86_64">
	 	<j2se version="1.5+"/>
    	<nativelib href="release/Linux_x86_64.jar"/>
	</resources>	
	<resources os="Linux" arch="amd64">
	 	<j2se version="1.5+"/>
    	<nativelib href="release/Linux_x86_64.jar"/>
	</resources>
    <resources os="Mac OS X" arch="i386">
	<j2se version="1.5+"/>
	<nativelib href="release/Mac32.jar"/>
    </resources> 
    <resources os="Mac OS X" arch="x86_64">
	<j2se version="1.5+"/>
	<nativelib href="release/Mac64.jar"/>
    </resources> 
    <application-desc>
        <argument>-apptype</argument>
<argument>JViewer</argument>
<argument>-hostname</argument>
<argument>192.168.2.92</argument>
<argument>-kvmtoken</argument>
<argument>rjhWlxU7CiPFlKUE</argument>
<argument>-kvmsecure</argument>
<argument>0</argument>
<argument>-kvmport</argument>
<argument>80</argument>
<argument>-vmsecure</argument>
<argument>0</argument>
<argument>-cdstate</argument>
<argument>1</argument>
<argument>-fdstate</argument>
<argument>1</argument>
<argument>-hdstate</argument>
<argument>1</argument>
<argument>-cdnum</argument>
<argument>1</argument>
<argument>-fdnum</argument>
<argument>1</argument>
<argument>-hdnum</argument>
<argument>1</argument>
<argument>-userpriv</argument>
<argument>4</argument>
<argument>-lang</argument>
<argument>EN</argument>
<argument>-websecureport</argument>
<argument>443</argument>
<argument>-singleportenabled</argument>
<argument>1</argument>
<argument>-webcookie</argument>
<argument>yqvHjIVRoAPUDLjNGVUEHq6PNiXUEEjN000</argument>
 
    </application-desc>
</jnlp>

<? xml version = "1.0" encoding = "UTF-8"?>
<jnlp spec = "1.0 +" codebase = "http: // 192.168.2.92: 80 / Java">
<Information>
<Title> JViewer </ title>
<sælger> American Megatrends, Inc. </ vendor>
<description kind = "one-line"> JViewer Console Omdirigering Program </ description>
<description kind = "tooltip"> JViewer Console Omdirigering Applikation </ description>
<description kind = "short">
JViewer gør det muligt for en bruger at se videovisningen af ​​administreret server via KVM.
Det giver også brugeren mulighed for at omdirigere sit lokale tastatur, mus for at styre serveren eksternt.
</ Description>
</ Information>
<Sikkerhed>
<Alle-tilladelser />
</ Sikkerhed>
<ressourcer>
<j2se version = "1.5 +" />
<jar href = "release / JViewer.jar" />
</ Ressourcer>
<ressourcer>
<j2se version = "1.5 +" />
<jar href = "release / JViewer-SOC.jar" />
</ Ressourcer>
<ressourcer os = "Windows" arch = "x86">
<j2se version = "1.5 +" />
<nativelib href = "release / Win32.jar" />
</ Ressourcer>
<ressourcer os = "Windows" arch = "amd64">
<j2se version = "1.5 +" />
<nativelib href = "release / Win64.jar" />
</ Ressourcer>
<ressourcer os = "Linux" arch = "x86">
<j2se version = "1.5 +" />
<nativelib href = "release / Linux_x86_32.jar" />
</ Ressourcer>
<ressourcer os = "Linux" arch = "i386">
<j2se version = "1.5 +" />
<nativelib href = "release / Linux_x86_32.jar" />
</ Ressourcer>
<ressourcer os = "Linux" arch = "x86_64">
<j2se version = "1.5 +" />
<nativelib href = "release / Linux_x86_64.jar" />
</ Ressourcer>
<ressourcer os = "Linux" arch = "amd64">
<j2se version = "1.5 +" />
<nativelib href = "release / Linux_x86_64.jar" />
</ Ressourcer>
<ressourcer os = "Mac OS X" arch = "i386">
<j2se version = "1.5 +" />
<nativelib href = "release / Mac32.jar" />
</ Ressourcer>
<ressourcer os = "Mac OS X" arch = "x86_64">
<j2se version = "1.5 +" />
<nativelib href = "release / Mac64.jar" />
</ Ressourcer>
<Application-desc>
<Argument> -apptype </ argument>
<Argument> JViewer </ argument>
<Argument> -hostname </ argument>
<Argument> 192.168.2.92 </ argument>
<Argument> -kvmtoken </ argument>
<Argument> rjhWlxU7CiPFlKUE </ argument>
<Argument> -kvmsecure </ argument>
<Argument> 0 </ argument>
<Argument> -kvmport </ argument>
<Argument> 80 </ argument>
<Argument> -vmsecure </ argument>
<Argument> 0 </ argument>
<Argument> -cdstate </ argument>
<Argument> 1 </ argument>
<Argument> -fdstate </ argument>
<Argument> 1 </ argument>
<Argument> -hdstate </ argument>
<Argument> 1 </ argument>
<Argument> -cdnum </ argument>
<Argument> 1 </ argument>
<Argument> -fdnum </ argument>
<Argument> 1 </ argument>
<Argument> -hdnum </ argument>
<Argument> 1 </ argument>
<Argument> -userpriv </ argument>
<Argument> 4 </ argument>
<Argument> -lang </ argument>
<Argument> DA </ argument>
<Argument> -websecureport </ argument>
<Argument> 443 </ argument>
<Argument> -singleportenabled </ argument>
<Argument> 1 </ argument>
<Argument> -webcookie </ argument>
<Argument> yqvHjIVRoAPUDLjNGVUEHq6PNiXUEEjN000 </ argument>
</ Application-desc>
</ JNLP>

Fig. 01: BMC / IPMI KVM Java Applets brudt med Java Security Update
Fig. 01: BMC / IPMI KVM Java Applets brudt med Java Security Update

MD5 tilføjet til jdk.jar.disabledAlgorithms Sikkerhedsegenskab

Oracle tilføjede en ny begrænsning af, hvordan MD5 underskrev JAR-filer er verificeres:

Denne JDK-udgivelse introducerer en ny begrænsning af, hvordan MD5 underskrevne JAR-filer er verificeret. Hvis den signerede JAR-fil bruger MD5, vil signaturverifikationsoperationer ignorere signaturen og behandle JAR som om den var usigneret. Dette kan potentielt forekomme i følgende typer applikationer, der bruger underskrevne JAR-filer:

Applets eller Web Start applikationer
Frigivende eller Server-applikationer, der køres med en SecurityManager, er aktiveret og er konfigureret med en politikfil, der giver tilladelser baseret på kodesignatur (er) i JAR-filen.

Listen over deaktiverede algoritmer styres via sikkerhedsegenskaben, jdk.jar.disabledAlgorithms, i java.security-filen. Denne egenskab indeholder en liste over deaktiverede algoritmer og nøgleformater til kryptografisk signerede JAR-filer.

Fix

Du skal finde en fil ved navn java.security og kommentere linjen jdk.jar.disabledAlgorithms, fra:

jdk.jar.disabledAlgorithms = MD2, MD5, RSA keySize <1024

Til:

# jdk.jar.disabledAlgorithms = MD2, MD5, RSA keySize <1024

På Linux / MacOS og Unix-lignende system kan man bruge find-kommandoen som følger til at finde filen ved navn java.security:
$ sudo find / -iname java.security
OR
$ find java.security
På min macOS fandt jeg fil på følgende steder og redigerede kommandoen vim
$ sudo vi / Bibliotek / Internet Plug-Ins / JavaAppletPlugin.plugin / Indhold / Home / lib / security / java.security
Alt du skal gøre er at kommentere linjen som følger:

Fig.02: Konfiguration af jdk.jar.disabledAlgorithms, i java.security-filen
Fig.02: Konfiguration af jdk.jar.disabledAlgorithms, i java.security-filen

Ovennævnte procedure fastsatte mit problem, og jeg kunne åbne lokale og eksterne IPMI / BMC-konsoller:

Fig. 03: Jeg kan få adgang til IPMI / BMC igen
Fig. 03: Jeg kan få adgang til IPMI / BMC igen

Den langsigtede løsning

Jeg tror i det lange løb, at hardwareleverandøren skal rette deres BMC / IPMI firmware. Nogle leverandører begyndte at støtte HTML 5-baserede IPMI / BMC-klienter. HTML5-klienten ville erstatte Java Browser-baserede plugins / Applet hell for os alle.

Kilde

Efterlad en kommentar

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.