![]() |
Nachdiplomkurs Java - Java Certification Sommer Semester, Java Security Konstrukte und Konzepte |
|
---|---|---|
|
Zielpublikum | Software-Entwickler |
Vorkenntnisse | Java Grundlagen |
Kursbeginn | jederzeit |
Kursdauer | 1 Abend / 1/2 Tag |
KURSZIELE Sie kennen die grundlegenden Sicherheitskonzepte von Java 2 und können diese in der Praxis anwenden. KURSUNTERLAGEN Skript (PDF) Beispiele (ZIP) Jasmin (JVM Assembler) (ZIP) KURSINHALTE EINFÜHRUNG IN JAVA SECURITY 1 1.1.1. Übersicht 2 1.1.2. Lernziele 2 1.2. MODUL 1 - ÜBERSICHT ÜBER DIE JAVA SECURITY 3 1.2.1. EinfÜhrung 3 1.2.1.1. Lernziele 3 1.2.2. Was ist Security? 3 1.2.2.1. Referenzen 3 1.2.3. Gute Security Praktiken 4 1.2.4. Security Praxis und Java 6 1.2.5. Das Sandbox Sicherheitsmodell 7 1.2.6. Selbsttestaufgaben 9 1.2.7. Musterlösungen 10 1.2.8. Zusammenfassung - Übersicht Über Java Security 11 1.3. MODUL 2 - JVM UND DER VERIFIKATIONSPROZESS 12 1.3.1. EinfÜhrung 12 1.3.2. Java Virtual Machine 13 1.3.3. Java Interpreter 14 1.3.4. Class Datei Verfier 15 1.3.5. Typensicherheit 20 1.3.6. Fehler im Verifier frÜherer JDKs 21 1.3.7. Typenvort&AUml;uschung 21 1.3.8. Verifier und Class Loader Attacken 22 1.3.9. Kimera Projekt 24 1.3.10. Was wurde unternommen 25 1.3.10.1. Formale Modelle 25 1.3.10.2. Java Kompatibilitätstest 25 1.3.10.3. Java Kompatibilität versus 100% Pure Java 25 1.3.10.4. Java Compatibility Kit 26 1.3.10.4.1. Java Test Harness 26 1.3.10.4.2. Kompatibilitätseinschränkungen 26 1.3.10.4.3. Test Komplexität 26 1.3.10.4.4. Testwerkzeuge 26 1.3.10.4.5. Testprozesskomplexität 27 1.3.10.4.6. Zu testende Komponenten 27 1.3.10.4.7. Compilertests 27 1.3.10.4.8. Virtual Machines 27 1.3.10.4.9. API Libraries 27 1.3.10.4.10. Erweiterungen des JCK 27 1.3.11. Indirekte AusfÜhrung 28 1.3.12. Übungen - mit Bytecode arbeiten 29 1.3.12.1. Der Kimera Verifier und Disassembler 29 1.3.12.1.1. Schritt 1 - HelloWorld.java 29 1.3.12.1.2. Schritt 2 - Der Kimera Verifier 30 1.3.12.1.3. Kimera Bytecode Verification - Literaturauszug 30 1.3.12.1.4. Schritt 3 - Die Kimera Ausgabe 31 1.3.12.1.5. Schritt 4 - Aufruf des Java Verifiers 32 1.3.12.1.6. Schritt 5 - Der Kimera Disassembler Literaturauszug 32 1.3.12.1.7. Schritt 6 - Ausgabe des Kimera Disassemblers 33 1.3.12.1.8. Schritt 7 - Vergleich der Ausgabe von javap und des Kimera Disassemblers 34 1.3.12.2. Konstruktion einer Klasse, die im Verifier verworfen wird 35 1.3.12.2.1. Kimera Byte Code Verifiers Ausgabe 35 1.3.12.2.2. Kimera Disassembler Ausgabe 37 1.3.12.3. Jasmin - ein Java Assembler Interface 38 1.3.13. Quiz 40 1.3.14. Zusammenfassung des Moduls 41 1.4. MODULE 3 - CLASS LOADERS 42 1.4.1. Einleitung 42 1.4.1.1. Lernziele 42 1.4.1.2. Referenzen 42 1.4.2. Wann werden Klassen geladen? 43 1.4.3. Wie wird eine Klasse geladen? 44 1.4.3.1. Validieren des Klassennamens 45 1.4.3.2. ÜberprÜfen des Cache 46 1.4.3.3. ÜberprÜfen der Oberklasse des Class Loaders 47 1.4.3.4. Kreieren einer Referenz auf eine Datei oder ein Verzeichnis 48 1.4.3.5. Laden des Bytecodes 48 1.4.3.6. Installieren der Klasse 48 1.4.3.7. Installieren der Klassen 49 1.4.3.8. Klasse im Cache einfÜgen 49 1.4.3.9. Die Klasse auflösen 49 1.4.4. Class Loaders 50 1.4.4.1. Standard Class Loader 50 1.4.5. Kreieren eigener Class Loader 51 1.4.6. Laden von Ressourcen 52 1.4.7. Class Loaders ab JDK 1.2 53 1.4.8. Class Loader Sicherheitsfragen 54 1.4.9. Übungen 56 1.4.9.1. Mit dem Cache arbeiten 56 1.4.9.2. Checksum Validation 61 1.5. MODUL 4 - SECURITY MANAGER 63 1.5.1. Einleitung 63 1.5.2. Security Manager - Übersicht 64 1.5.3. Security Managers und Applikationen 66 1.5.4. Die checkXXX Methoden 66 1.5.5. Methoden und Operationen 67 1.5.6. FileInputStream Beispiel 68 1.5.7. Kreieren eines eigenen Security Managers 71 1.5.8. Security Manager Methoden 71 1.5.9. Installieren eines Security Managers 74 1.5.10. Datei Zugriff 74 1.5.11. Nach der Installation 74 1.5.12. Übung - Security Manager 75 1.5.12.1. SampleClassLoader 75 1.5.12.2. SampleSecurityManager 77 1.5.12.3. Sum - Checksumme 80 1.5.12.4. Runner 81 1.6. MODUL 5 - ERWEITERUNG DES SANDBOX SECURITY MODELLS 82 1.6.1. Einleitung 82 1.6.1.1. Lernziele 82 1.6.1.2. Referenzen 82 1.6.2. Kurzwiederholung - Das Sandbox Security Modell 83 1.6.3. Die Sandbox schÜtzt nicht 84 1.6.4. Applet Fähigkeiten 84 1.6.5. Das Java Protection Domain Sicherheitsmodell 85 1.6.6. Protection Domains 87 1.6.7. Security Policy Datei 88 1.6.8. Domains und Permissions 93 1.6.9. Quiz 95 1.6.10. Zusammenfassung - Erweiterung des Security Modells 97 1.7. MODUL 6 - JAVA JDK SECURITY KLASSEN 98 1.7.1. Einleitung 98 1.7.2. Lernziele 98 1.7.3. Referenzen 98 1.7.4. Permissions und Security Policy 99 1.7.4.1. java.security.BasicPermission 99 1.7.4.2. java.security.Policy 99 1.7.4.3. java.security.CodeSource 100 1.7.4.4. java.security.Permission 100 1.7.4.5. Die java.security.Permission.implies() Methode 101 1.7.4.5.1. Beispiel - implies() Methode fÜr java.io.FilePermission 101 1.7.4.6. PermissionCollection 102 1.7.4.7. PermissionCollection 102 1.7.5. Access Control - Zugriffskontrolle 103 1.7.6. Exceptions 106 1.7.6.1. java.lang.SecurityException 107 1.7.6.2. java.security.GeneralSecurityException 108 1.7.7. PropertyPermission Class Analysis 109 1.7.7.1. Andere Permission Klassen 109 1.7.8. Einsatz der Permission Klassen 111 1.7.9. Neue Permission Typen 112 1.7.10. Quiz 113 1.7.11. Übung 114 1.7.12. Modul Zusammenfassung 124 1.8. ZUSAMMENFASSUNG 125