Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Java ist auch eine Sprache
2 Sprachbeschreibung
3 Klassen und Objekte
4 Der Umgang mit Zeichenketten
5 Mathematisches
6 Eigene Klassen schreiben
7 Angewandte Objektorientierung
8 Exceptions
9 Generics, innere Klassen
10 Die Klassenbibliothek
11 Threads und nebenläufige Programmierung
12 Datenstrukturen und Algorithmen
13 Raum und Zeit
14 Dateien und Datenströme
15 Die eXtensible Markup Language (XML)
16 Grafische Oberflächen mit Swing
17 Grafikprogrammierung
18 Netzwerkprogrammierung
19 Verteilte Programmierung mit RMI und Web–Services
20 JavaServer Pages und Servlets
21 Applets
22 Midlets und die Java ME
23 Datenbankmanagement mit JDBC
24 Reflection und Annotationen
25 Logging und Monitoring
26 Sicherheitskonzepte
27 Java Native Interface (JNI)
28 Dienstprogramme für die Java-Umgebung
Stichwort
Download: - ZIP, ca. 14,1 MB
Buch bestellen
Ihre Meinung?
<< zurück | Galileo Computing / <openbook> / Java-Insel | vor >>
Java ist auch eine Insel (8. Auflage) von Christian Ullenboom Programmieren mit der Java Standard Edition Version 6
Java ist auch eine Insel (8. Aufl.) 8., aktual. Auflage, geb., mit DVD 1.475 S., 49,90 Euro Galileo Computing ISBN 978-3-8362-1371-4 |
| 26 Sicherheitskonzepte
|  | 26.1 Zentrale Elemente der Java-Sicherheit
|  |  | 26.1.1 Security-API der Java SE
|  |  | 26.1.2 Cryptographic Service Providers
|  | 26.2 Der Sandkasten (Sandbox)
|  | 26.3 Sicherheitsmanager (Security Manager)
|  |  | 26.3.1 Der Sicherheitsmanager bei Applets
|  |  | 26.3.2 Sicherheitsmanager aktivieren
|  |  | 26.3.3 Rechte durch Policy-Dateien vergeben
|  |  | 26.3.4 Erstellen von Rechtedateien mit dem grafischen Policy-Tool
|  |  | 26.3.5 Kritik an den Policies
|  | 26.4 Signierung
|  |  | 26.4.1 Warum signieren?
|  |  | 26.4.2 Digitale Ausweise und die Zertifizierungsstelle
|  |  | 26.4.3 Mit keytool Schlüssel erzeugen
|  |  | 26.4.4 Signieren mit jarsigner
|  | 26.5 Digitale Unterschriften
|  |  | 26.5.1 Die MDx-Reihe
|  |  | 26.5.2 Secure Hash Algorithm (SHA)
|  |  | 26.5.3 Mit der Security-API einen Fingerabdruck berechnen
|  |  | 26.5.4 Die Klasse MessageDigest
|  | 26.6 Verschlüsseln von Daten(-strömen)
|  |  | 26.6.1 Den Schlüssel bitte
|  |  | 26.6.2 Verschlüsseln mit Cipher
|  |  | 26.6.3 Verschlüsseln von Datenströmen
|  | 26.7 Zum Weiterlesen
Vorsicht ist die Einstellung, die das Leben sicherer macht, aber selten glücklich. – Samuel Johnson # 26 Sicherheitskonzepte ## 26.1 Zentrale Elemente der Java-Sicherheit Damit Java-Programme sicher arbeiten, greift eine Reihe von Elementen ineinander. Einige Dinge gibt schon die Sprache selbst vor, wie fehlende Pointerarithmetik, Sichtbarkeitsbereiche, Überwachung der Feldgrenzen, und andere ergeben sich durch die Laufzeitumgebung selbst. Zunächst ist da der Bytecode Verifier, der grob sicherstellt, dass der Java-Bytecode korrekt geformt ist. Zu den Prüfungen zählen zum Beispiel, dass Bytecode nicht in der Mitte enden darf, dass der Index auf Variablen korrekt ist und dass Sprünge nicht außerhalb des Programmcodes erfolgen. Der Klassenlader ist die nächste Einheit, und sein Einfluss auf die Sicherheit ist nicht offensichtlich. Er stellt jedoch sicher, dass sich Klassen in Paketen nicht überschreiben können und ein selbst geschriebenes java.lang.Object nicht plötzlich das Original überdeckt; beide befinden sich in unterschiedlichen Runtime Packages. Durch eine Hierarchie der Klassenlader kommt eine Anforderung an die Klasse java.lang.Object auch zuerst an den obersten Vater-Klassenlader, den Bootstrap Class Loader. Sind die Klassen geladen, überwacht zur Laufzeit der Sicherheitsmanager gültige Aufrufe; er sitzt immer zwischen unserer Java-Applikation und dem Betriebssystem. Der Sicherheitsmanager existiert seit Java 1.0, gibt aber die Arbeit seit Java 1.2 an eine verallgemeinerte Einheit, den Access Controller, weiter. Er nutzt Tricks wie Stack-Überprüfung, um herauszufinden, ob Aufrufer einer Methode schon gewisse Rechte erworben haben, um die Operation ausführen zu können. Der Access Controller stellt sicher, dass Programmcode nur dann ausgeführt werden kann, wenn die passenden Rechte vorhanden sind. ### 26.1.1 Security-API der Java SE Die Gesamtheit aller Bibliotheken, die sich in Java um die Sicherheit kümmern, wird Security-API genannt. Sie trennt sich in unterschiedliche Teile auf: Verschlüsselung und Nachrichten-Authentifizierung. Seit Java 1.1 gibt es die Java-Cryptography-API. Die Java Cryptography Architecture (JCA) beschreibt, wie diese API benutzt werden kann. Ihr ist das Paket java.security gewidmet. In Java 1.4 ist dann die Java Cryptography Extension (JCE) hinzugekommen, die vorher nur als optionales Paket seit 1.2 erhältlich war. Sie erweitert die Möglichkeiten der JCA. Die Klassen und Schnittstellen sind an dem Paket javax.crypto zu erkennen. Authentifizierung und Zugriffskontrolle. Sun definiert mit dem Java Authentication and Authorization Service (JAAS) – ein API – eine Benutzerauthentifizierung etwa über ein Kerberos-System. Public-Key-Infrastruktur. Verwalten von Schlüsseln in Keystores und Prüfen von digitalen X.509-Zertifikaten. ### 26.1.2 Cryptographic Service Providers Die Security-API ist so entworfen worden, dass über so genannte Cryptographic Service Provider Implementierungen ausgewechselt werden können. Die Security-API von Java ist völlig unabhängig von der Implementierung der kryptografischen Algorithmen und bietet zunächst Schnittstellen an. Die konkreten Algorithmen wie RSA oder DES realisieren Provider – Sun ist einer von ihnen und bringt einen Standard-Provider für grundlegende Operationen mit.
Beispiel Welche Provider Java 6 bietet, zeigt kurz:
    for ( Provider p : Security.getProviders() )
      System.out.println( p + ": " + p.getInfo() );
Das Ergebnis sind neun Einträge:
    SUN version 1.6, SUN (DSA key/parameter generation; DSA signing;
    SHA-1, MD5  digests; SecureRandom; X.509 certificates; JKS keystore;
    PKIX CertPathValidator; PKIX CertPathBuilder; LDAP, Collection CertStores,
    JavaPolicy Policy; JavaLoginConfig Configuration)
    SunRsaSign version 1.5, Sun RSA signature provider
    SunJSSE version 1.6, Sun JSSE provider(PKCS12, SunX509 key/trust factories,  SSLv3, TLSv1)
    SunJCE version 1.6, SunJCE Provider (implements RSA, DES, Triple DES, AES,
    Blowfish, ARCFOUR, RC2, PBE, Diffie-Hellman, HMAC)
    SunJGSS version 1.0, Sun (Kerberos v5, SPNEGO)
    SunSASL version 1.5, Sun SASL provider(implements client mechanisms for:
    DIGEST-MD5, GSSAPI, EXTERNAL, PLAIN, CRAM-MD5;
    server mechanisms for: DIGEST-MD5, GSSAPI, CRAM-MD5)
    XMLDSig version 1.0, XMLDSig (DOM XMLSignatureFactory; DOM KeyInfoFactory)
    SunPCSC version 1.6, Sun PC/SC provider

    SunMSCAPI version 1.6, Sun's Microsoft Crypto API provider
Jeder Provider implementiert einen oder mehrere Algorithmen. Neue Provider lassen sich jederzeit einbringen, insbesondere dann, wenn uns die Amerikaner nicht erlauben, eine starke Verschlüsselung zu verwenden. Eine genauere Übersicht erhält der Leser unter http://java.sun.com/javase/technologies/security/ und http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html. ### Ihr Kommentar Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück | <top> | vor >>
Zum Katalog
Java ist auch eine Insel Jetzt bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung
Tipp
| Coding for Fun
Buchempfehlungen
| Objektorientierte Programmierung
| Einstieg in Eclipse 3.4
| Java 6 lernen mit Eclipse
| NetBeans Platform 6
| Java und XML
| Visual C# 2008
| IT-Handbuch für Fachinformatiker
| C++ von A bis Z
Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

Copyright © Galileo Press 2009
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

[Galileo Computing]
Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de