sichere forms-anwendungen mit dem java plug-in und

35
Sichere Forms-Anwendungen mit dem Java Plug-In und Zertifikaten Wolfgang Weigend / Jürgen Menge Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Wolfgang Weigend / Jürgen Menge Sales Consulting Oracle Deutschland B.V. & Co. KG

Upload: others

Post on 18-Dec-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sichere Forms-Anwendungen mit dem Java Plug-In und

Sichere Forms-Anwendungen mit dem Java Plug-In und Zertifikaten

Wolfgang Weigend / Jürgen Menge

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Wolfgang Weigend / Jürgen MengeSales ConsultingOracle Deutschland B.V. & Co. KG

Page 2: Sichere Forms-Anwendungen mit dem Java Plug-In und

Safe Harbor Statement

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.

Page 3: Sichere Forms-Anwendungen mit dem Java Plug-In und

Java Security – Grundlagen

Signierung und Zertifikate für Java Web Start und Applets

Besonderheiten von Oracle Forms-Anwendungen

1

2

Agenda

3

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Besonderheiten von Oracle Forms-Anwendungen

Oracle Forms 12c – Neue Features

Weitere Informationen

3

4

5

Page 4: Sichere Forms-Anwendungen mit dem Java Plug-In und

Wichtige Begriffe und Zusammenhänge

• Signierung von Java Web Start-Applikationen und Applets (RIA)

• Nachweis der Herkunft von Programmcode durch den Public Key des Signierers

• Signierung von JAR-Dateien mit dem Tool jarsigner und dem eigenen private Key

• Zertifikate erforderlich, um die Gültigkeit der Schlüssel zu verifizieren

• Zertifikate einer Certification Authority (CA) oder selbst erstellte Zertifikate (self-signed)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

• Zertifikate einer Certification Authority (CA) oder selbst erstellte Zertifikate (self-signed)

• server- oder client-seitige Zertifikate

• auch für SSL-Verbindungen notwendig (SSL Cer?ficate ≠ Code Signing Cer?ficate)

• Zertifikatskette (Certificate Chain)

• Hierarchie von Public Key-Zertifikaten vom Public Key des Signierers bis zur Root CA

• Zertifikat zeigt an, wer der Eigentümer des jeweiligen Public Key ist

• Zertifikat der Root CA ist self-signed

Page 5: Sichere Forms-Anwendungen mit dem Java Plug-In und

Warum ist eine Signierung erforderlich ?

• Die Signatur erlaubt das Rückverfolgen zum Autor einer Applikation.

• Die Tatsache, dass hinter der Applikation ein überprüfbares Individuum oder Unternehmen steht, erlaubt eine fundierte Entscheidung, ob man die Applikation startet.

• Nach erfolgreicher Überprüfung einer Signatur werden die Rechte (Permissions)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

• Nach erfolgreicher Überprüfung einer Signatur werden die Rechte (Permissions) entsprechend der festgelegten Security Policy gesetzt.

• Die Notwendigkeit, sich ein Zertifikation zu besorgen und die zusätzliche Bestätigung verringern das Risiko, dass Java für unzulässige Attacken missbraucht wird.

• Im Falle von Sicherheitslücken kann Oracle innerhalb von 24 Stunden die Applikation sperren, indem die signierte JAR-Datei oder das Zertifikat auf die Blacklist gesetzt werden.

Page 6: Sichere Forms-Anwendungen mit dem Java Plug-In und

Java Versionen - Wichtige MeilensteineJava 7 Update 21 (April 2013)

• Signierung für alle Java Web Start-Applikationen und Applets empfohlen

• Signierung ist nicht mehr gleichbedeutend mit privilegierter Ausführung

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

sandboxall-permissions

Page 7: Sichere Forms-Anwendungen mit dem Java Plug-In und

Java Versionen - Wichtige MeilensteineJava 7 Update 25 (Juni 2013)

• alle Dateien müssen vor dem Signieren in JAR-Datei zusammengefasst sein

• Neues Attribut permissions

• JNLP: Festlegung der Berechtigungen im Deployment Descriptor

• Applets: Alle Berechtigungen (Default) oder Einschränkung durch<param name="permissions" value="sandbox" />

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

<param name="permissions" value="sandbox" />

• Neues Attribut codebase

• Hinweis auf den Speicherort des Codes

Page 8: Sichere Forms-Anwendungen mit dem Java Plug-In und

Java Versionen - Wichtige MeilensteineJava 7 Update 51 (Januar 2014)

• Setzen des Attributs permissions ist zwingend erforderlich

• Setzen eines Zeitstempels beim Signieren wird empfohlen

• Warnung beim Signieren, wenn Zeitstempel fehlt

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Page 9: Sichere Forms-Anwendungen mit dem Java Plug-In und

Deployment Rule Sets (DRS)• ab Java 1.7.0_40 verfügbar

• können ältere Versionen bis Java 1.6.0_10 steuern

• Unternehmen mit direkter Kontrolle über die Desktop Clients

• Features

• Whitelists bekannter Applikationen (Unterdrückung von Security Alerts)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

• Sequentielle Überprüfung der Regeln (XML) und Ausführen definierter Aktionen

• ...

• Ausführung von Applikationen mit einer bestimmten Java-Version in Abhängigkeit von bestimmten Regeln

• Internet-Applikationen mit der neuesten, sicheren Java-Version

• Unternehmens-Applikationen mit einer getesteten, älteren Java-Version

Page 10: Sichere Forms-Anwendungen mit dem Java Plug-In und

Deployment Rule Sets (DRS)• Die Regeln werden in einer XML-Datei definiert (ruleset.xml).

• Die Datei ruleset.xml muss in der JAR-Datei DeploymentRuleSet.jar enthalten sein.

• Die JAR-Datei muss signiert sein.

• Die signierte JAR-Datei muss auf jedem Desktop in einem sicheren

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

• Die signierte JAR-Datei muss auf jedem Desktop in einem sicheren Verzeichnis installiert werden. deployment.system.home>/DeploymentRuleSet.jar

• DeploymentRuleSet.jar mit ungültigen Zertifikaten (abgelaufen, zurückgezogen, blacklisted) führt zu Blockierung aller Applikationen.

• Dokumentationhttp://docs.oracle.com/javase/8/docs/technotes/guides/deploy/deployment_rules.html

Page 11: Sichere Forms-Anwendungen mit dem Java Plug-In und

Deployment-Prozess für RIA-Applikationen (1)

Page 12: Sichere Forms-Anwendungen mit dem Java Plug-In und
Page 13: Sichere Forms-Anwendungen mit dem Java Plug-In und

Deployment-Prozess für RIA-Applikationen (3)

http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/deployment_flow.html

Page 14: Sichere Forms-Anwendungen mit dem Java Plug-In und

Java Security – Grundlagen

Signierung und Zertifikate für Java Web Start und Applets

Besonderheiten von Oracle Forms-Anwendungen

1

2

Agenda

3

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Besonderheiten von Oracle Forms-Anwendungen

Oracle Forms 12c – Neue Features

Weitere Informationen

3

4

5

Page 15: Sichere Forms-Anwendungen mit dem Java Plug-In und

Wie fordere ich ein Zertifikat an ?

1) Generieren eines RSA Keypairs mit dem keytoolkeytool -genkey -keyalg rsa -alias MyCert

2) Certificate Request mit dem keytool erzeugen und Output in die Webform der CA kopieren

keytool -certreq -alias MyCert

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

keytool -certreq -alias MyCert

3) Importieren des Zertifikats, das von der CA zurückgeschickt wurdekeytool -import -alias MyCert -file Example.cer

4) Verwendung des Tools jarsigner zum Signieren der JAR-Dateien

https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/certificates.html

Page 16: Sichere Forms-Anwendungen mit dem Java Plug-In und

Wie signiere ich eine JAR-Datei ?

1) Signieren der JAR-Datei mit dem Tool jarsignerjarsigner C:\TestApplet.jar MyCert

2) Überprüfen der JAR-Dateijarsigner -verify -verbose -certs d:\TestApplet.jar

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Dateien unter \META-INF, die durch das Signieren erzeugt werden

• Manifest-Files (.mf) mit Digest Entries pro Datei

• Signature-Files (.sf) im jar-File mit Digest Entries pro Datei und für das Manifest

• Signature Block File mit digitaler Signatur (Private Key) und Certificate

https://docs.oracle.com/javase/tutorial/deployment/jar/signindex.htmlhttps://docs.oracle.com/javase/tutorial/deployment/jar/intro.html

Page 17: Sichere Forms-Anwendungen mit dem Java Plug-In und

Self-signed Zertifikate

1) Erzeugen eines Public Certificatekeytool -export -keystore examplestore -alias MyCert -file Example.cer

2) Importieren des Zertifikatskeytool -import -alias MyCert -file Example.cer

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

• Besonderheiten

• Für Entwicklungsumgebungen und im Intranet (Vertrauensbasis !)

• Müssen vom Benutzer importiert werden

• Verteilung per Push möglich

• Können zur Laufzeit abgelehnt werden (Security Slider = High)

https://blogs.oracle.com/java-platform-group/entry/self_signed_certificates_for_a

Page 18: Sichere Forms-Anwendungen mit dem Java Plug-In und

Keystores

• Container für Zertifikate (Public Keys)

• Zertifikate des Benutzers (Default Passwort: leerer String)Win: %USER_HOME%\AppData\LocalLow\Sun\Java\Deployment\security\trusted.certsLinux: $USER_HOME/.java/deployment/security

• Systemweite Zertifikate (Default Passwort: changeit)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

• Systemweite Zertifikate (Default Passwort: changeit)Win: C:\Program Files\Java\jre8\lib\security\cacertsLinux: $JAVA_HOME/lib/security/cacerts

Page 19: Sichere Forms-Anwendungen mit dem Java Plug-In und

KeystoresWerkzeuge

• Java Control Panel

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

• portecle.jar

• KeyStore Explorer

Page 20: Sichere Forms-Anwendungen mit dem Java Plug-In und

OCSP – Online Certificate Status Protocol

• Zertifikate können ungültig sein und würden Fehler provozieren

• Netzwerk-Protokoll zur Abfrage des Status eines Zertifikats durch einen Client

• Status kann bei einem Server (OCSP Responder) angefragt werden

• OCSP Responder wird i. allg. vom Herausgeber des Zertifikats betrieben

• Unterstützung durch Tools des jeweiligen Betriebssystems (z.B. openssl)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

• Unterstützung durch Tools des jeweiligen Betriebssystems (z.B. openssl)

• Verifizierung nur Online

• Antworten

• good

• revoked

• unknown

Page 21: Sichere Forms-Anwendungen mit dem Java Plug-In und

Empfehlungen

• JAR-Dateien mit Zeitstempel signieren

• Kompromitierte Zertifikate aus dem Keystore entfernen

• Unterschiedliche Versionen für 32- und 64-bit bei Browser und Java beachten

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

• jarsigner des jeweiligen JDK verwenden

• ggf. Rechte der Datei ../<jre…>/lib/security/cacerts erweitern

Page 22: Sichere Forms-Anwendungen mit dem Java Plug-In und

Java Security – Grundlagen

Signierung und Zertifikate für Java Web Start und Applets

Besonderheiten von Oracle Forms-Anwendungen

1

2

Agenda

3

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Besonderheiten von Oracle Forms-Anwendungen

Oracle Forms 12c – Neue Features

Weitere Informationen

3

4

5

Page 23: Sichere Forms-Anwendungen mit dem Java Plug-In und

Zertifikate für Oracle Forms-Anwendungen

• Oracle liefert mit dem Produkt die notwendigen Zertifikate für das Applet und weitere Bibliotheken aus (frmall.jar, frmwebutil.jar, ...)

• Für Produkt-Versionen, die bereits aus dem Premier Support gelaufen sind, werden keine gültigen Zertifikate des Herstellers mehr ausgeliefert.

• Für eigene oder angepasste Bibliotheken sowie aus dem Support gelaufene

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

• Für eigene oder angepasste Bibliotheken sowie aus dem Support gelaufene Produktversionen muss der Anwender die notwendigen Zertifikate selbst hinzufügen.

• jacob.jar muss vom Anwender signiert werden

• Beispiel-Script sign_webutil.sh/.bat zum Signieren eigener JAR-Dateien(VALIDDAYS=360)

Page 24: Sichere Forms-Anwendungen mit dem Java Plug-In und

Zertifikate für eigene Bibliotheken

• Um Warnungen zu vermeiden müssen folgende Schritte ausgeführt werden

• Zertifikat einer Trusted CA hinzufügenoderSelf-signed Zertifikat erzeugen und in der client-seitigen JRE als Trusted Certificate registrieren• Export des Zertifikats aus dem Keystore und Import in die client-seitige JRE (Note 1596871.1)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

• Export des Zertifikats aus dem Keystore und Import in die client-seitige JRE (Note 1596871.1)

• Attribut Permissions dem Manifest hinzufügen (Note 1583119.1)• Erzeugen einer Textdatei mit dem Attribut Permissions

• Hinzufügen der Textdatei zur JAR-Datei

https://blogs.oracle.com/proactivesupportDevTools/entry/a_closer_look_into_jre

Page 25: Sichere Forms-Anwendungen mit dem Java Plug-In und

Support Notes zu Zertifikaten/Signierung in Oracle Forms (1)

• Note 68704.1 JAR Files Explained

• Note 1542463.1 Jar File Code Signing Changes Related to JRE 1.7.0_21 or Higher andthe Impact on Oracle Forms Related Self-Signed Jar Files(sign_webutil.sh or sign_webutil.bat)

• Note 2065434.1 Jar File Signing for Forms – Addressing JRE Java Security Warnings

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

• Note 2065434.1 Jar File Signing for Forms – Addressing JRE Java Security Warningssuch as “Do you want to run this application?", "ApplicationBlocked by Java Security","Running this application may be asecurity risk", etc

• Note 1596871.1 How to Export and Import the Product Management CertificateCreated from the sign_webutil Script

• Note 760815.1 How to Re-sign Expired .jar Files (Jacob, Icons, ...) and Extend theSelf Signing Certificate

Page 26: Sichere Forms-Anwendungen mit dem Java Plug-In und

Support Notes zu Zertifikaten/Signierung in Oracle Forms (2)

• Note 1268757.1 How to Determine the Expiration Date of a Jar File Using the JavaKeytool Command

• Note 1583119.1 How to Add Manifest Entries into Custom Jar Files Such as jacob.jaror Jar Files Containing Icons

• Note 469126.1 How To Repackage Sun JPI/JRE And Include Oracle Forms Signature

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

• Note 469126.1 How To Repackage Sun JPI/JRE And Include Oracle Forms Signature(Certificate)

• Note 1076945.1 Signing .jar Files for 11g / SIGN_WEBUTIL.BAT Command Results inError "The Syntax of the Command is Incorrect"

• Note 1308213.1 Forms 11g JAR Files Expiration

• Note 469126.1 How To Repackage Sun JPI/JRE And Include Oracle Forms Signature(Certificate)

Page 27: Sichere Forms-Anwendungen mit dem Java Plug-In und

Forms Runtime – Blockaden und Sicherheits-WarnungenNote 2065434.1

• Optionen, um Warnungen zu vermeiden

• Signieren des Java Codes mit einen Zertifikat einer CA

• Verwenden eines Deployment Rule Sets (DRS)

• Signieren des Codes mit einem selbst signierten

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

• Signieren des Codes mit einem selbst signierten Zertifikat

• Verwenden der JRE Exception Site List• Ermöglicht das Ausführen, verhindert aber nicht die

Warnungen

Page 28: Sichere Forms-Anwendungen mit dem Java Plug-In und

Java Security – Grundlagen

Signierung und Zertifikate für Java Web Start und Applets

Besonderheiten von Oracle Forms-Anwendungen

1

2

Agenda

3

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Besonderheiten von Oracle Forms-Anwendungen

Oracle Forms 12c – Neue Features

Weitere Informationen

3

4

5

Page 29: Sichere Forms-Anwendungen mit dem Java Plug-In und

Oracle Forms/Reports – Aktueller Status

• Oracle Forms 11g, Release 2• Forms 11.1.2.1

• www.oracle.com/technetwork/developer-tools/forms/oracle-forms-111210certmatrix-1886127.xls• Sowohl Vollversion als auch Patch für 11.1.2.0 (Patch ID:15948641)• Java Client: 1.6.0_35+, 1.7.0_07+

• Forms 11.1.2.2

• www.oracle.com/technetwork/es/middleware/docs/oracle-forms-111220certmatrix-2087910.xls

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

• www.oracle.com/technetwork/es/middleware/docs/oracle-forms-111220certmatrix-2087910.xls• Sowohl Vollversion als auch Patch für 11.1.2.x (Patch ID:17882900)• Java Client: 1.6.0_35+, 1.7.0_40+, 1.8.0_05+

• Oracle Forms 12c• Forms 12.2.1

• www.oracle.com/technetwork/middleware/fusion-middleware/documentation/fmw-1221certmatrix-2739738.xlsx

• Browser: IE, Chrome (nur Web Start), Firefox, Safari• Java Client: 1.7.0_55+1.8.0_51+

Page 30: Sichere Forms-Anwendungen mit dem Java Plug-In und

Oracle Forms 12.2.1Neue Features

• Native Integration des Oracle BI Publisher

• Neue Optionen für das Client Deployment

• Zusätzliche Applet-Parameter

• Verbesserungen im Forms Builder

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

• Verbesserungen im Forms Builder

• Option zur Installation des Forms Builders ohne Runtime

• ...

Page 31: Sichere Forms-Anwendungen mit dem Java Plug-In und

• Applet embedded in HTML

• SSO, SSO Logout und JavaScript-Integration

• erfordert Java Plug-In und Browser

• JNLP embedded in HTML

• SSO, SSO Logout und JavaScript-Integration

• erfordert Java Plug-In und Browser

• JNLP Code im HTML Source Code

Oracle Forms 12.2.1Optionen für das Client Deployment

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

3

• Java Web Start

• SSO (wenn im Browser initiiert)

• kein Support für SSO Logout und JavaScript-Integration

• erfordert entweder JDK oder Java Plug-In

• Standalone

• kein Support für SSO, SSO Logout und JavaScript-Integration

• erfordert entweder JDK oder Java Plug-In

• kein Browser erforderlich

• Forms Standalone Launcher (FSAL)

Page 32: Sichere Forms-Anwendungen mit dem Java Plug-In und

Java Security – Grundlagen

Signierung und Zertifikate für Java Web Start und Applets

Besonderheiten von Oracle Forms-Anwendungen

1

2

Agenda

3

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Besonderheiten von Oracle Forms-Anwendungen

Oracle Forms 12c – Neue Features

Weitere Informationen

3

4

5

Page 33: Sichere Forms-Anwendungen mit dem Java Plug-In und

• Produktinformationen

• www.oracle.com/technetwork/developer-tools/forms/overview/index-098877.html

• www.oracle.com/java

• Dokumentation

• Java Release Notes (zu jedem aktuellen Release)

Weitere Informationen (1)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

• Java Release Notes (zu jedem aktuellen Release)

• www.oracle.com/technetwork/java/javase/tech/java-code-signing-1915323.html

• docs.oracle.com/javase/8/docs/technotes/guides/deploy/certificates.html

• www.oracle.com/technetwork/topics/security/alerts-086861.html

• docs.oracle.com/javase/8/docs/technotes/guides/deploy/deployment_rules.html

Page 34: Sichere Forms-Anwendungen mit dem Java Plug-In und

• Oracle Support

• www.oracle.com/us/technologies/java/standard-edition/support/overview/index.html

• Note 794710.1: Using The Java Plug-in (JRE/JPI) With Oracle Forms FAQ

• Blogs

Weitere Informationen (2)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

• Blogs

• blogs.oracle.com/java-platform-group/entry/introducing_deployment_rule_sets

• blogs.oracle.com/java-platform-group/entry/deployment_rule_set_by_example

• blogs.oracle.com/java-platform-group/entry/self_signed_certificates_for_a

• blogs.oracle.com/proactivesupportDevTools/entry/a_closer_look_into_jre

• blogs.oracle.com/java-platform-group/entry/when_is_the_next_java

Page 35: Sichere Forms-Anwendungen mit dem Java Plug-In und

Fragen & Antworten

Wolfgang Weigend

[email protected]

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Jürgen Menge

[email protected]

[email protected]