5
1 Einleitung
Diese Studienarbeit beschäftigt sich mit den Risiken der Netzwerkprogrammierung mit
Java2 und soll, so weit wie möglich, Lösungsansätze aufzeigen.
Strukturell sollen die Probleme anhand einer bottom-up Sicht erläutert werden.
Angefangen mit Grundlagen der Netzwerkprogrammierung, allgemeinen Risiken und der
Kryptographie wird dann die Sprache Java mit ihrer Entwicklung und ihren Konzepten
vorgestellt. Insbesondere wird auf „hostile applets“ und Java-Viren eingegangen, da deren
Technologie hinweise auf Sicherheitslücken gibt. Die Anwendung von Java in der
Socketprogrammierung folgt. Diese Arbeit endet schließlich mit Empfehlungen zu einem
möglichst sicheren Umgang mit dieser Sprache.
Es handelt sich durchgehend um eine low-level Sichtweise der Probleme. Die Darstellung
höherer Konzepte wie RMI, Corba und Enterprise-Java-Beans waren erst geplant, wurden
aber mit Rücksicht auf den Umfang dieser Arbeit wieder verworfen.
Entgegen dem Titel wird auch auf Java1 eingegangen, da man aus den Fehlern der ersten
Version lernen kann und um auf konzeptuelle Probleme einzugehen. Auf Java Script wird
ganz verzichtet, weil es außer dem Namen nichts mit Java zu tun hat.
Meine persönliche Motivation bestand darin, daß die Entwicklung verteilter Systeme an
sich schon sehr komplex und schwer beherrschbar ist und ich nach Lösungen suchte
potentielle Probleme bei meiner Entwicklung zu minimieren.
Java wird nachgesagt, es sei eine „sichere“ Programmiersprache und das sie durch das
Konzept der Sandbox das lokale System schützt, so daß man Java z.B. im WWW zur
Generierung von aktiven Inhalten (Applets) nutzt.
Ebenfalls besitzt Java eine sehr umfangreiche und übersichtliche Klassenbibliothek, so das
es mir als guter Kandidat für meine durchzuführende Programmieraufgabe erschien.
Ich wollte jedoch erst mit meiner Spezifikation des Systems beginnen, wenn ich die Vor-
und Nachteile von Java genau untersucht habe.
Wie ich bei meinen Untersuchungen feststellte, ist neben den klassischen
softwaretechnischen Problemen, die Java z.T. gut löst, die Komplexität und ihre
Beherrschbarkeit das größte Problem.
So werde ich mich im Rahmen meiner Diplomarbeit mit höheren Konzepten wie RMI,
Corba und natürlich dem Java2-Enterprise-Modell beschäftigen.