sichere forms-anwendungen mit dem java plug-in und
TRANSCRIPT
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
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.
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
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
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.
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
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
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. |
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
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
Deployment-Prozess für RIA-Applikationen (1)
Deployment-Prozess für RIA-Applikationen (3)
http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/deployment_flow.html
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
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
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
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
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
KeystoresWerkzeuge
• Java Control Panel
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
• portecle.jar
• KeyStore Explorer
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
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
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
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)
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
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
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)
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
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
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+
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
• ...
• 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)
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
• 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
• 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
Fragen & Antworten
Wolfgang Weigend
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Jürgen Menge