Fachforum "IT-Sicherheit"
Sicherheitsaspekte
Prof. Jürgen Plate
Inhalt:
- Vorwort
- Unterschiedliche Präsenz
- Webserverstandort
- Gefahren
- Gefahrenabwehr
- Kryptoverfahren
- Gefahren auf Anwenderseite
- Literatur
Beim Thema Sicherheit denkt jeder zunächst an die rein technische Sicherheit.
Beim Angebot im World Wide Web gibt es aber auch noch eine ganz andre handfeste
Gefahr. Zu einem sauber aufbereiteten Angebot gehört eine ansprechende
Gestaltung der WWW-Seiten mit einer einheitlichen Linie - ein roter Faden,
der sich in Erscheinungsbild und Benutzerführung durch das gesamte
Angebot zieht. Statt mit einem Riesenmenü zu beginnen und dann nach
dem ersten Link nur ein Baustellenschild zu zeigen ('Diese Seite befindet
sich noch im Aufbau'), läßt man besser die Menüpunkte weg,
bis man handfeste Informationen bieten kann. Damit interessierte Web-Surfer
nicht gleich wieder verschwinden, muß das Informationsangebot möglichst
vielfältig und aktuell sein. Generell gilt: "Du hast nur eine
einzige Chance!"
Jeder, der seinen Rechner an das Internet anschließt, sich
eine Internetadresse sowie die TCP/IP-Software besorgt und
installiert, muß sich darüber im klaren sein, daß er damit
seinen Rechner potentiell mit einigen Millionen anderer
Rechner in Verbindung bringt. So wie man selbst alle möglichen
fremden Rechner erreichen kann, ist man auch für
jedermann kontaktierbar. Für Nutzer von UNIX-Maschinen, bei
denen in der Regel Server-Prozesse automatisch im
Hintergrund laufen, heißt dies, daß sie ihre Maschinen
gegen unberechtigten Gebrauch zu schützen haben. Das
Internet ist offen und um den Individualismus auf dem Netz
sowenig wie möglich einzuschränken, müssen
Sicherheitsvorkehrungen an den Endgeräten vorgenommen werden.
In der Betriebssystemsoftware (und auch der
Anwendungssoftware) treten immer wieder Fehler auf, die
unauthorisierten Zugang für 'Hacker' durch Ausnutzen von
Sicherheitslöchern zuläßt. Eine hardwareunabhängige
Sammlung dieser Fehler und die Initiative zur Behebung
derselben unternehmen die CERTs (Computer Emergency
Response Team). Wie viele Einrichtungen im Internet exi-
stieren CERTs auf mehreren Ebenen. Das deutsche CERT (DFN-
CERT) ist an der UNI Hamburg lokalisiert. Die gesammelten
Informationen des CERT werden auf einem FTP-Server zur
Verfügung gestellt. (ftp.informatik.uni-hamburg.de,
Directory: /pub/security). Nachrichten an das CERT können
per EMail an dfncert@informatik.uni-hamburg.de gesendet
werden.
Bis auf wenige Ausnahmen (z. B. ftp-Server, WWW-Server)
sind bei PCs unter DOS oder OS/2 keine Maßnahmen zur
Sicherheit notwendig, da an PCs in der Regel keine
Anwendungen gestartet sind, die Kontaktaufnahme von außen
akzeptieren.
Eine weitere Gefahr liegt im Fehlverhalten des Netzneulings. Dazu ein Beispiel:
Vor nicht allzu langer Zeit erschien im Bereich Managementliteratur ein
Buch von Marta Siegel und Laurence Canter, das sich mit Profitmöglichkeiten
im Internet befaßt. Das Autorengespann ist im Netz nicht unbekannt:
Die beiden Anwälte hatten es vor zwei Jahren als erste gewagt, Dutzende
von Newsgroups mit kommerziellen Anzeigen-Postings zu fluten, in denen sie
ihre rechtsberatenden Dienste anpriesen. Daraufhin waren sie von der Internet-Gemeinde
mit massivem Mailbombing gestraft worden - zu Recht, denn die Nettiquette
verbietet aus gutem Grund kommerzielle Anzeigen in nicht speziell dafür
vorgesehenen Newsgroups. Viele Internet-Teilnehmer müssen nämlich
für die empfangenen News - und auch E-Mails - aus eigener Tasche bezahlen.
Die Verbreitung einer Anzeige via News ließe sich also mit einer unerwünschten
Postwurfsendung vergleichen, für die der Empfänger auch noch das
Porto bezahlt. Leider zeigen sie auf die Reaktion des Netzes hin weder Reue
noch Einsicht: Ihr Machwerk, nicht nur in bezug auf den technischen Gehalt,
verrät offen, wohin es mit dem Internet gehen wird, wenn wir es in
seiner Gesamtheit Anwälten und Glücksrittern ausliefern. Die Autoren
sprechen davon, daß die Netzgemeinschaft aus selbstsüchtigen
Motiven Neues um jeden Preis verhindern will. Dabei geht ihnen jegliches
Verständnis für die Internet-Kultur ab; für sie stellt die
alte Garde der Netzaktiven nichts weiter dar als einen verwahrlosten, schmutzigen
und drogensüchtigen Haufen, der den falschen Idealen der Sechziger
nachhängt. Sie fordern alle Geschäftsleute auf, bedenkenlos das
Internet zu stürmen. Daher: Keine "Postwurfsendungen" in
Newsgruppen und per E-Mail.
Etliche Onlinedienste bieten auch die Möglichkeit, sich mit einem Online-Angebot
zu präsentieren. Solange sich Anbieter und Kunden innerhalb der Softwareumgebung
des Online-Dienstes bewegen, sind die Sicherheitsrisiken gering. Der Online-Dienst
wird auch dafür sorgen, daß eventuell bekannt werdende Sicherheitslücken
schnellstens geschlossen werden. Dazu ein Beispiel: Im ehemaligen BTX, das
heute 'T-Online' heißt, gibt es Homebanking. Die Verbindung zwischen
Nutzer und Bankrechner erfolgt vollständig innerhalb des BTX-Systems.
Die Daten könnten höchstens von Telekom-Mitarbeitern eingesehen
werden, weshalb die Transaktion recht sicher ist.
Anders würde es aussehen, wenn Daten über das Internet transportiert
oder angeboten werden. Hier ist die Möglichkeit von Fremdeingriffen
auf den eigenen Server oder auf Daten, die sich durch das Netz bewegen,
wesentlich größer. Auf diese Gefahren möchte ich im folgenden
näher eingehen. Normalerweise handelt es sich bei einer Internet-Präsenz
um ein WWW- oder ftp-Angebot. Zunächst möchte ich die Verantwortlichkeit
für die Sicherheit des Rechners abhängig vom Standort des Servers
klären.
In den meisten Fällen wird man die Dienste eines Providers in Anspruch
nehmen und das WWW-Angebot auf einem Server des Providers halten. In diesem
Fall ist natürlich auch der Provider verantwortlich für die Abwehr
von Angriffen auf seine Rechnersysteme - aber nur soweit diese in seinem
Einflußbereich liegen, also beispielsweise das Anzapfen von Leitungen
oder Sicherheitslücken im Betriebssystem betreffen. Wenn Sie als Kunde
unvorsichtig mit Ihrem Zugangspaßwort umgehen, liegt die Verantwortung
bei Ihnen. Ebenso sind die Kunden eines Providers für die eingespielten
Angebote juristisch haftbar, z. B. bei Copyrightverletzungen.
Seltener ist wohl der Fall, daß ein eigener Server-Rechner beim Provider
aufgestellt wird. So etwas ist auch nur bei spezielleren Nutzungsformen
nötig, z. B. bei eigenen Datenbanken oder speziellen Dienstprogrammen.
Noch seltener ist es, wenn der Server im eigenen Unternehmen steht und er
über eine Standleitung mit einem Provider verbunden ist. In beiden
Fällen ist man sein eigener Provider und muß daher auch mit allen
Sicherheitsproblemen selbst fertig werden.
Jeder, der seinen Rechner an das Internet anschließt, muß sich
darüber im klaren sein, daß er damit seinen Rechner potentiell
mit einigen Millionen anderer Rechner in Verbindung bringt. So wie man selbst
alle möglichen fremden Rechner erreichen kann, ist man auch für
jedermann kontaktierbar. Mit zunehmender Vernetzung wächst aber auch
der Bedarf am Schutz der Privatsphäre. Während für die Briefpost
und für die Telekom ein Postgeheimnis gilt, gibt es bei Weitverkehrsnetzen
nichts Vergleichbares. Bei einer Ansammlung von weltweit miteinander vernetzten
Computern ist ein Briefgeheimnis auch nicht möglich. Nachrichten, die
Sie beispielsweise über das Internet verschicken, laufen über
viele Rechner (meist sind es aber nur Router). Theoretisch ist es an jeder
Stelle im Netz möglich, Ihre Daten abzuhören und zu speichern.
Zudem könnte jemand Dokumente unter Ihrem Namen übers Netz verschicken
oder abgefangene Dokumente verfälschen (letzteres gab es natürlich
seit der Antike auch schon beim Versand von Papierdokumenten und in neuerer
Zeit bei Fernschreiben oder Telefax). Das Internet ist offen und um den
Individualismus auf dem Netz so wenig wie möglich einzuschränken,
müssen Sicherheitsvorkehrungen an den Endgeräten, also den Rechnern,
vorgenommen werden.
Für Nutzer von Unix- oder Windows-NT-Maschinen, bei denen in der Regel
Server-Prozesse automatisch im Hintergrund laufen, heißt dies, daß
sie ihre Maschinen gegen unberechtigten Gebrauch zu schützen haben.
Gefahren drohen hier einerseits von Fehlern im Betriebssystem. Der Rechnerbetreiber
muß sich regelmäßig über Sicherheitslücken informieren
und entsprechende Korrekturen des Betriebssystems (sogenannte 'Patches')
einspielen. Meist handelt es sich aber um menschliche Schwächen, die
einen Rechner unsicher machen: fehlerhaft eingestellte Zugriffsrechte für
Dateien, Benutzeraccounts ohne Paßwort, Verwendung von unsicheren
Programmen und ähnliches. Vielfach führt auch mangelnde Aufklärung
der Nutzer über die Gefahren zu Unsicherheiten im System. Die größte
Gefahr für Computernetze droht häufig von innen, insbesondere
durch unzufriedene Mitarbeiter, die beim Weggang aus der Firma Sabotage
verüben oder sich eine 'Hintertür' im Rechner offen halten.
Wie kann jemand in den Rechner eindringen?
Um in einen fremden Rechner einzudringen gibt es etliche Möglichkeiten.
Einige davon sollen in den folgenden Abschnitten zur Sprache kommen.
Paßwort raten, 'social engineering'
Die größte Sicherheitslücke ist nach wie vor der Benutzer
selbst. Paßwörter werden aufgeschrieben (klassisches Beispiel:
der Zettel, der unter der Tastatur klebt) oder sie sind aus dem persönlichen
Umfeld entnommen (Vornamen von Frau, Mann, Kindern, Hund, die eigene Telefonnummer,
die Automarke usw.). Selbst das Paßwort 'geheim' wird immer noch angetroffen.
Auch 'Joshua' aus dem Film 'War Games' war eine Zeit sehr beliebt. Übertroffen
wird das nur noch von '1234567' oder 'qwertz'. Wer sich ein kompliziertes
Paßwort nicht merken kann, sollte es mit den Anfangsbuchstaben eines
Merksatzes versuchen. So ergibt z. B. 'Fest gemauert in der Erden steht
die Form aus Lehm gebrannt' (Schiller: Lied der Glocke) das Paßwort
'FgidEsdFaLg'. Es gibt übrigens Paßwort-Knackprogramme, die einfach
und brutal das Rechtschreibwörterbuch, Namenslisten usw. verwenden,
um Paßwörter durch Probieren herauszufinden. Und es gibt immer
noch Benutzer, die ihr Paßwort freiwillig preisgeben. Grundsätzlich
gilt, daß weder der Systemadministrator noch irgend jemand sonst in
der Firma oder beim Provider jemals Ihr Paßwort wissen müssen.
Netzdaten abhören
Da die Datenpakete ihren Weg mitunter über mehr als 20 - 30 Rechner
nehmen können, besteht grundsätzlich die Möglichkeit, daß
irgend jemand die Daten 'abhört' oder verändert weitergibt. Bei
vielen Betriebssystemen gehören entsprechende Programme zum Lieferumfang,
da sie für den Test und die Fehlersuche in Netzen notwendig sind. Da
auch die Paßworte beim Telnet- oder ftp-Login im Klartext weitergegeben
werden, besteht die (normalerweise sehr geringe) Möglichkeit, daß
jemand an diese Information kommt. Ebenso ist es dem Fachmann möglich,
Absenderadressen bei News oder E-Mail zu fälschen ('fakemail', 'fakenews',
siehe unten). Es ist daher nicht ratsam, z. B. Kreditkartennummern oder
andere vertrauliche Daten offen über das Internet zu versenden.
Abhilfe schaffen hier beispielsweise kryptographische Verfahren und Methoden,
eine Nachricht zu authentifizieren (elektronische Unterschrift). Bei Netscape
ist bereits eine gesicherte Übertragung implementiert. Eine allgemeine
Lösung ist über das S-HTTP-Protokoll bereits erarbeitet.
Sicherheitslücken des Betriebssystems
Bis auf wenige Ausnahmen (z. B. ftp-Server, WWW-Server) sind bei PCs unter
DOS, Windows 3.1x oder OS/2 keine Maßnahmen zur Sicherheit notwendig,
da an PCs in der Regel keine Anwendungen gestartet sind, die Kontaktaufnahme
von außen akzeptieren. Denn nur dann hat ein Eindringling eine Angriffsmöglichkeit.
Problematischer sind hier schon Unix, Novell Netware, Windows 95 oder Windows
NT, da hier prinzipiell Zugriff von außen möglich ist, wenn Zugriffsdienst
angeboten werden, z. B. der Zugriff auf die Platte über NFS oder auch
Fax-, Modem- oder Druckerserverprogramme. Ein WWW-Server ist ja ohnehin
für den Zugriff aus dem Internet konzipiert. Bei der Wahl eines Serverbetriebssystems
sollten daher Sicherheitsaspekte im Vordergrund stehen und nicht die (scheinbar)
leichte Bedienbarkeit. So haben beispielsweise Viren bei DOS- oder Windowsrechnern
leichtes Spiel, weil sie alle Programme auf der Platte befallen können.
Bei Systemen mit Zugriffsrechten für Dateien (Unix, Novell Netware,
etc.) können sie meist nur die Programme eines Benutzers verseuchen.
Je nach System gibt es unterschiedliche Methoden ein System zu manipulieren:
- Trojanische Pferde sind Programme, die einerseits die gewünschte bzw.
'offizielle' Funktion ausführen, aber gleichzeitig vom Manipulateur
beabsichtigte Nebenwirkung ausführen.
- Würmer oder Wurmsegmente sind Programme, die sich selbständig
über ein Netz verbreiten und auf anderen Rechnern vervielfältigen
können.
- Viren sind Programme, die sich in andere Programme hineinkopieren (reproduzieren)
und zeit- oder ereignisgesteuert Schäden hervorrufen.
-
Logische Bomben sind zusätzliche Programmfunktionen, die vom Programmierer
eingebaut werden. Sie treten erst zu einem bestimmten Ereignis zu Tage,
z. B. werden alle Daten zwei Jahre nach Entlassung des Programmierers gelöscht.
-
Trap doors sind Programmfunktionen, die einen nicht autorisierten Zugang
zum System ermöglichen. Die muß nicht in böser Absicht geschehen,
auch Programmteile, die zur Fehlersuche dienten und dann in der Verkaufsversion
nicht entfernt wurden, oder Wartungsaccounts können zu trap doors werden.
- In Netzen gibt es dann noch Formen der Tarnung (z. B. spoofing), bei der
ein Rechner vorspiegelt, ein anderer zu sein. In vielen Betriebssystemen
gibt es den Begriff des 'trusted host'. Vereinfacht gesagt sind dies Rechner,
denen gegenüber der eigene Rechner 'offen' ist. Tarnt sich ein fremder
Rechner als vertrauenswürdiger Host, wird das Eindringen erleichtert.
Schadensformen
Allgemeine Schädigung durch Eindringlinge
Hat eine nicht autorisierte Person Zugang zum Rechner erlangt, kann sie
vertrauliche Daten stehlen oder sogar ändern. Durch Zurücklassen
von Viren, Trojanischen Pferden oder Programmen mit logischen Bomben kann
der Eindringling Sabotage verüben. Möglicherweise läßt
er aber nur eine trap door zurück und begnügt sich mit der Inanspruchnahme
von Plattenplatz und Rechnerleistung. Auch das kann unangenehm werden, wenn
jemand Ihren WWW-Server als Depot für Pornobilder verwendet. Aber auch
ohne in den Server einzudringen, kann jemand Ihnen im Internet Schäden
zufügen.
- Gefälschte E-Mail (z. B. bei Bestellungen)
Sowohl die Informationen im Kopf der E-Mail-Nachricht als auch der eigentliche
Text werden im Klartext vom Sender zum Empfänger transportiert. Jeder
mit ausreichenden Zugriffsrechten auf einem Durchgangssystem könnte
die Post mitlesen oder verfälschen. Die einzige befriedigende Lösung
besteht darin, zumindest den Text zu chiffrieren.
Ein anderes Problem der Sicherheit von E-Mail besteht in der Möglichkeit,
einen Brief zu fälschen. Da in der Regel das 'From:'-Feld Aufschluß
über den Absender gibt, kann nur die Abschätzung der Wahrscheinlichkeit
helfen zu beurteilen, ob ein Brief von president@whitehouse.gov tatsächlich
vom amerikanischen Präsidenten stammt. Auch in diesem Fall verschafft
Verschlüsselung ansatzweise Abhilfe, indem die Briefe mit einer digitalen
Signatur versehen werden können.
- Gefälschte Newsbeiträge
Auf die gleiche Art und Weise kann sich jemand in den Newsgruppen, den schwarzen
Brettern des Internet (genauer des USENET), als Angehöriger Ihres Unternehmens
ausgeben und durch entsprechende Veröffentlichungen den Ruf der Firma
empfindlich schädigen.
- Abhören von Daten
Wie schon mehrfach erwähnt, besteht im Internet auch generell die Möglichkeit,
Daten auf dem Weg durchs Netz abzuhören oder sie abzufangen und verändert
weiterzugeben. Auch in diesem Fall verschafft Verschlüsselung Abhilfe.
Rechnersicherheit
In der Betriebssystemsoftware (und auch der Anwendungssoftware) treten immer
wieder Fehler auf, die unautorisierten Zugang für Hacker durch Ausnutzen
von Sicherheitslöchern zuläßt. Eine hardwareunabhängige
Sammlung dieser Fehler und die Initiative zur Behebung derselben unternehmen
die CERTs (Computer Emergency Response Team). Wie viele Einrichtungen im
Internet existieren CERTs auf mehreren Ebenen. Das deutsche CERT (DFN-CERT)
ist an der Uni Hamburg lokalisiert. Die gesammelten Informationen des CERT
werden auf einem FTP-Server zur Verfügung gestellt:
(ftp.informatik.uni-hamburg.de,
Directory: /pub/security). Nachrichten an das CERT können per E-Mail
an dfncert@informatik.uni-hamburg.de gesendet werden.
Abschottung von öffentlichen Datenbereichen
Für bestimmte Dienste wurden oder werden Sicherheitsmaßnahmen
getroffen. So wird auf Unix-Servern für WWW oder ftp für den Abfragenden
das Datenverzeichnis zum Wurzelverzeichnis. Auf diese Weise ist auch bei
Sicherheitsmängeln im Serverprogramm niemals ein Zugriff auf Dateien
außerhalb des reservierten Plattenbereichs möglich. Diese Methode
kann man auch für den Betrieb einer Mailbox oder einen Gast-Login ohne
Paßwort verwenden.
Überwachung von Protokolldateien und Benutzern
Jedes Betriebssystem legt Protokolle der wichtigsten Systemvorgänge
an. Diese Protokolldateien sollten ständig auf Unregelmäßigkeiten
untersucht werden, um so einen Eindringling aufzuspüren. Die Auswertung
der Logdateien kann vielfach auch automatisch erfolgen.
Viele Nutzer gehen auch mit ihrem Rechneraccount recht fahrlässig um.
So werden aus Bequemlichkeit keine Paßworte verwendet oder der Account
an einen Freund 'verborgt'. Hier helfen nur Aufklärung und bei wiederholten
Verstößen Entzug der Rechenberechtigung. Wichtig ist es auch,
festzulegen, wer neue Software in den Rechner einspielen darf. Denn auf
diesem Weg gelangen Viren oder Trojanische Pferde ins System.
Sichern des Rechners
Ein Server, der frei zugänglich ist, kann nicht sicher sein. Für
jedes Betriebssystem gibt es Tricks, wie man sich bei physikalischem Zugriff
auf den Rechner unautorisiert Zugang verschaffen kann. Es ist außerdem
auch schon vorgekommen, daß Rechner regelrecht ausgeschlachtet wurden
und nur noch das Gehäuse mit Netzteil zurückblieb. Der Rechner
gehört also auf jeden Fall unter Verschluß.
Firewall-Rechner
Als Schutz vor Einbruchsversuchen in lokale Netze, die über einen Anschluß
an öffentliche Netze verfügen (z. B. Internet, aber auch ISDN),
haben sich Firewall-Rechner, kurz 'Firewalls' bewährt. Ähnlich
der Zugbrücke einer Burg erlauben sie den Zugang nur an einer definierten
Stelle. Damit läßt sich der Datenverkehr von und nach außen
kontrollieren. Normalerweise sind zahlreiche Rechner des Unternehmens, die
unter diversen Betriebssystemen laufen, direkt aus dem öffentlichen
Netz erreichbar. Ein Firewall kanalisiert die Kommunikation, indem alle
Daten von und nach außen über dieses System laufen müssen.
Die Kanalisierung erhöht zudem die Chancen, einen Einbruchversuch anhand
ausführlicher Protokoll-Dateien zu erkennen, da der Eindringling erst
den Firewall passieren muß.
Ein Firewall kann aus einer einzelnen Maschine oder aus einer mehrstufigen
Anordnung bestehen. Eine mehrstufige Anordnung ist vor allem dann sinnvoll,
wenn man bestimmte Dienste der Öffentlichkeit zur Verfügung stellen
will, etwa einen WWW- oder ftp-Server. Die entsprechenden Hosts können
dann in einem Zwischennetz isoliert werden.
Der Anschluß kann auf zwei Arten erfolgen. Die erste Möglichkeit
ist das Einbinden ins lokale Netz. Der Router dieses Netzes wird so
konfiguriert, daß alle Datenpakete nur an den Firewall weitergegeben
werden, der auch als einziges System 'nach außen sichtbar' ist.
Die zweite Möglichkeit besteht darin, den Firewall mit zwei Netzwerk-
Schnittstellen auszurüsten, so daß das interne und das externe
Netz durch den Rechner getrennt werden. Der Firewall routet dann nur die
erlaubten Datenpakete.
Zur Software-Konfiguration eines Firewall existieren zwei Grundstrategien:
- 'Es ist alles erlaubt, was nicht verboten ist'
Dieser Ansatz schließt die Nutzung bestimmter Dienste (z. B. tftp,
nfs) generell aus. Er ist benutzerfreundlich, da neue Dienste automatisch
erlaubt sind, aber auch gefährlich, da der Administrator das Verhalten
der Nutzer ständig beobachten und rechtzeitig Gegenmaßnahmen
treffen muß.
- 'Es ist alles verboten, was nicht erlaubt ist'
Diese Strategie könnte von den Nutzern als hinderlich angesehen werden,
da diese neue Dienste erst umständlich beantragen müssen. Sie
schützt aber auch vor Sicherheitslücken im Betriebssystem und
in Anwendungsprogrammen, da sie den Zugriff auf unbekannte Ports unterbindet.
Es gibt drei Arten von Firewalls:
- Paketfilter überprüfen die Quell- und Zieladresse (IP-Adresse
und TCP/UDP-Port) eines Pakets und entscheiden, ob es passieren darf oder
nicht. Der Vorteil besteht in der Transparenz für den Anwender. Diese
Transparenz ist aber zugleich von Nachteil: Paketfilter können nicht
zwischen Nutzern und deren Rechten unterscheiden. Paketfilter sind im allgemeinen
auf Routern angesiedelt und werden heute von den meisten Herstellern mitgeliefert.
Intelligente Paketfilter analysieren zusätzlich den Inhalt der Pakete
und erkennen auch die Zulässigkeit von Verbindungen, die einfache Paketfilter
nicht erlauben würden (z. B. Datenverbindung bei ftp).
- Circuit Level Gateways sind mit Paketfiltern vergleichbar, arbeiten jedoch
auf einer anderen Ebene des Protokollstacks. Verbindungen durch solch ein
Gateway erscheinen einer entfernten Maschine, als bestünden sie mit
dem Firewall-Host. Somit lassen sich Infomationen über geschützte
Netzwerke verbergen.
- Application Gateways, auch 'Proxy' (Stellvertreter) genannt, stellen ein
anderes Firewall-Konzept dar. Hierbei wird auf dem Firewall-Host für
jede zulässige Anwendung ein eigenes Gateway-Programm installiert.
Der Client muß sich dabei oftmals gegenüber dem Proxy-Programm
authentifizieren. Dieser Proxy führt dann alle Aktionen im LAN stellvertretend
für den Client aus. Damit lassen sich zum einen benutzerspezifische
Zugangsprofile (welche Zeiten, welche Dienste, welche Rechner) erstellen,
zum anderen kann man die Festlegung der zulässigen Verbindungen anwendungsbezogen
vornehmen. Die daraus resultierenden separaten kleinen Regelsätze bleiben
besser überschaubar als der komplexe Regelsatz eines Paketfilters.
Application Gateways sind typische Vertreter der 'Verboten-was-nicht-erlaubt'-Strategie
und als die sicherste, aber auch aufwendigste Lösung einzuschätzen.
Da beim Proxy alle Zugriffe nach außen über eine Instanz laufen,
kann man den Proxy gleichzeitig als Cache (Pufferspeicher) benutzen. Der
Proxy speichert alle erhaltenen WWW-Seiten zwischen, so daß er bei
einem erneuten Zugriff darauf - egal, ob vom selben oder einem anderen Anwender
- keine Verbindung nach außen aufbauen muß.
Der Einsatz von Firewalls bietet sich auch innerhalb einer Organisation
an, um Bereiche unterschiedlicher Sensitivität von einander abzugrenzen.
Firewalls bieten jedoch niemals hundertprozentige Sicherheit! Sie schützen
nicht vor dem Fehlverhalten eines authorisierten Anwenders und können,
etwa durch eine zusätzliche Modem-Verbindung, umgangen werden.
Schon seit längerer Zeit überlegen sich Experten, wie man die
Sicherheitsprobleme in den Griff bekommen kann. Den interessantesten Ansatz,
der auch schon rege benutzt wird, stellt ein mathematisches Verfahren dar,
das auf Primzahlen basiert. Entwickelt wurde dieses Verfahren von den Amerikanern
Rivest, Shamir und Adleman, die auch ein Patent auf einen entsprechenden
Algorithmus haben (RSA-Algorithmus). Philip Zimmermann vom MIT hatte dieses
Verfahren mit anderen kryptographischen Methoden kombiniert. Herausgekommen
ist das leicht zu bedienende Freeware-Programm "pretty good privacy"
(PGP), das inzwischen weltweit verbreitet ist und überall einen hervorragenden
Ruf genießt.
Es gibt bei dem Verfahren zwei Schlüssel: einen öffentlichen und
einen privaten. Zum Verschlüsseln einer Nachricht benutzt PGP den öffentlichen
Schlüssel des Empfängers. Die verschlüsselte Datei kann nun
auch über abhörbare Kanäle verschickt werden, denn nur der
Besitzer des zu dem öffentlichen Schlüssel gehörenden privaten
Schlüssels kann die chiffrierte Nachricht entschlüsseln. Selbst
mit dem öffentlichen Schlüssel, der zum Chiffrieren benutzt wurde,
läßt sich der Inhalt der Nachricht nicht mehr lesbar machen.
Natürlich kann man jede Art von Dateien verschlüsseln. Auf Wunsch
kann PGP die Datei automatisch noch komprimieren oder als 7-Bit-ASCII-Code
ausgeben.
PGP kann aber noch mehr: Sie können nämlich ein Dokument mit einer
Signatur versehen. PGP berechnet mittels kryptographischer Verfahren eine
Art Quersumme über Ihr Dokument und verschlüsselt diese mit Ihrem
privaten Schlüssel. Jeder Empfänger dieses Dokumentes kann nun
mittels PGP und Ihrem öffentlichen Schlüssel die Signatur überprüfen.
Wurde das Dokument unterwegs auch nur um ein Zeichen geändert, so wird
dies von PGP erkannt und Ihnen mitgeteilt. Sehr nützlich ist auch die
Möglichkeit, Verschlüsselung und Signatur zu kombinieren. Durch
die Verschlüsselung gehen Sie sicher, daß nur der Adressat das
Dokument lesen kann und durch die Signatur kann Ihr Addressat sicher gehen,
daß dieses Dokument auch wirklich von Ihnen stammt.
Natürlich gibt es kein absolut sicheres kryptographisches Verfahren.
Auch das von PGP benutzte Verfahren hat Sicherheitsrisiken. Da wäre
zum einen die Verwaltung der Schlüssel. Selbstverständlich ist,
daß Sie keinem anderen Menschen den Zugang zu Ihrem privaten Schlüssel
erlauben. PGP speichert diesen in einer Datei, die durch ein von Ihnen gewähltes
Paßwort geschützt wird. Sollte jemand nun in den Besitz dieser
Datei und Ihres Paßwortes gelangen, so kann er alle Ihre Dateien entschlüsseln
und Ihre elektronische Signatur benutzen.
Ein weiterer Angriffspunkt ist die Verbreitung des öffentlichen Schlüssels.
PGP kann Ihren öffentlichen Schlüssel in einer Datei speichern,
die Sie dann an Ihre Freunde weitergeben oder im Internet veröffentlichen
können. Was aber, wenn ein Fremder einen öffentlichen Schlüssel
unter Ihrem Namen veröffentlicht? Eine mit diesem Schlüssel chiffrierte
Nachricht kann dann nur von dem Fremden gelesen werden und nicht von Ihnen.
Am besten wäre es, wenn es eine vertrauenswürdige Institution
gäbe, die eine Art Telefonbuch der öffentlichen Schlüssel
führen würde. Leider wird es diese Institution auf absehbare Zeit
nicht geben. Also müssen Sie sicherstellen, daß ein von Ihnen
benutzter öffentlicher Schlüssel auch wirklich der gewünschten
Person gehört.
Einen weiteren Angriffspunkt gibt es zumindest theoretisch. Mit enormem
Rechenaufwand ist es möglich, aus dem öffentlichen Schlüssel
den dazugehörigen privaten Schlüssel auszurechnen. In der Praxis
gibt es niemanden, der eine solche Rechenkraft zur Verfügung hat, denn
selbst auf den momentan leistungsfähigsten Rechnern der Welt würde
das Knacken eines Schlüssels der geringsten Sicherheitsstufe noch mehrere
Wochen benötigen. Das Prinzip dahinter ist eigentlich ganz einfach:
Wissen Sie aus Ihrer Schulzeit noch, was Primzahlen sind? Das sind Zahlen,
die nur durch sich selbst und durch 1 teilbar sind. Also z. B. 2, 3, 5,
7, 11, 13, 17, 19, 23, 29, aber auch 2^8 + 1 = 257 und 2^16 + 1 = 65537.
Wenn PGP ein Schlüsselpaar für Sie erzeugt, dann berechnet es
zwei sehr große Primzahlen. (Solche Zahlen können durchaus mehrere
hundert Stellen haben.) Eine davon bildet Ihren privaten Schlüssel,
das Produkt ist Ihr öffentlicher Schlüssel. Dazu ein Beispiel:
mit den Primzahlen 11 und 29 würde Ihr öffentlicher Schlüssel
11*29=319 lauten. Wenn jemand aus dem öffentlichen Schlüssel die
zugehörigen Primfaktoren ausrechnen will, so muß er nur nach
der Zahl suchen, die den öffentlichen Schlüssel ohne Rest teilt.
In unserem Beispiel würde man da sehr schnell auf die 11 stoßen.
So einfach es bei kleinen Zahlen aussieht, so schwierig wird es mit solchen
Monsterzahlen, wie PGP sie erzeugt. Tatsächlich gibt es keine mathematische
Methode, die es ermöglicht, die Zahlen zu finden, die eine vorgegebene
Zahl ohne Rest teilen. Man kann das nur durch Probieren aller kleineren
Zahlen erhalten. Natürlich muß man nicht alle Zahlen durchprobieren.
Man kann beispielsweise sofort alle geraden Zahlen weglassen, und man muß
auch nur alle Zahlen ausprobieren, die kleiner als die Wurzel der vorgegebenen
Zahl sind. Doch selbst mit den besten mathematischen Methoden bleibt immer
noch ein gewaltiger Rechenaufwand übrig. Als Beispiel können Sie
ja mal versuchen die beiden Teiler der Zahl 4 294 967 297 zu finden.
PGP gibt es für DOS, Macintosh und Unix (für fast alle Versionen).
Natürlich sind die Formate kompatibel, d. h. eine auf einem Mac verschlüsselte
Nachricht kann auch auf einem DOS-System gelesen werden. Für graphische
Oberflächen gibt es meist schon Shells, die die Benutzung von PGP vereinfachen.
Steganographie als Verschlüsselungstechnik
Derzeit wird von Politikern darüber debattiert, ob Kryptoverfahren
wie PGP reglementiert werden sollen, damit unser 'Großer Bruder' trotzdem
mitlesen kann. Die Reaktion der Computerleute darauf war die Wiederbelebung
der Steganographie. Damit bezeichnet man den verdeckten Gebrauch eines Verfahrens,
mit dessen Hilfe eine Botschaft in einem scheinbaren Klartext versteckt
wird. Neben den Daten selbst bleibt damit im Gegensatz zu anderen Techniken
auch die Tatsache des Verschlüsselns selbst geheim. Steganographie
(wörtlich: 'verdecktes Schreiben') ist die Wissenschaft vom Verstecken
von Daten. Ein einfaches Verschlüsselungsprinzip sieht man beispielsweise
an folgendem Postkartentext:
Liebe Bea,
ich geniesse nun den Urlaub hier auf dieser Insel im Atlantik. Das Wetter
gut, die Unterkunft toll, ebenso das exotische Essen. Super!
Gruß, Heini.
Die enthaltene Botschaft läßt sich entziffern, indem man die
Buchstaben bis zum nächsten Leerzeichen - also einschließlich
Satzzeichen - zählt und folgende Regel anwendet: 'Ist die Anzahl ungerade,
ergibt sich eine 0, sonst eine 1'. Mit dieser Vorschrift ergeben die ersten
acht Wörter 01010011, was dezimal 83 entspricht und nach der ASCII-Tabelle
den Buchstaben S ergibt. Die nächsten acht Wörter 01001111 (79,
Buchstabe O) und die letzten acht Wörter wieder 01010011 (also den
Buchstaben S). Im Gegensatz zum positiven Ton des Postkartentextes liest
man nun 'SOS' heraus. Ähnlich einfache Verfahren zum Verstecken von
Nachrichten in Texten basieren auf dem Buchstaben an einer verabredeten
Position eines jeden Wortes oder darauf, ob ein Leerzeichen vor einem Satzzeichen
steht oder nicht. Auch mathematische oder chemische Formeln eignen sich
zum Verstecken von Information. Eine andere Möglichkeit war das Anordnen
der 'wichtigen' Wörter auf den Falzkanten eines Briefs und das Auffüllen
mit unverfänglichem Text.
Steganographie hat Ihre Wurzeln im militärisch-politischen Bereich
und war einst die Domäne der Spione. Heute unterscheidet man zwei verschiedene
Zielsetzungen:
- Unsichtbarkeit: Eine Nachricht wird versteckt wie oben geschildert.
- Markieren: Eine Seriennummer wird in Dokumente hineincodiert, so daß
illegale Kopien zurückverfolgt und Copyright-Verletzungen nachgewiesen
werden können. Diese 'digitalen Fingerabdrücke' können in
Texten z. B. durch minimal veränderten Wort- oder Zeilenabständen
oder Schriftmodifikationen ergeben. Auch für Grafiken gibt es inzwischen
'elektronische Wasserzeichen'.
Bei rechnergestützten steganographischen Verfahren werden geheime Nachrichten
innerhalb anderer, harmlos wirkender Daten versteckt, ohne daß ein
Außenstehender dies nachweisen könnte. Die Informationen können
so in digitalen Bild- oder Tondateien verpackt oder auch über das Hintergrundrauschen
beim Telefonieren übertragen werden.
Die Sicherheit eines guten steganographischen Systems sollte ebenso wie
Kryptoverfahren nicht von der Kenntnis der verwendeten Methode abhängen,
sondern nur von einem geheimen Schlüssel. Die meisten existierenden
Verfahren gehen aber nur davon aus, daß ein Verstecken von Daten gar
nicht bemerkt wird. Deshalb muß das Verfahren auch statistischen Angriffen
widerstehen. Einfache Programme verstecken die Daten bitweise in Sound-
oder Grafikdateien. In jedem Datenwort wird das niederwertige Bit entsprechend
der geheimen Daten modifiziert. Im Vergleich zur Originaldatei ändert
sich die codierte Datei nur unwesentlich. Die leichten Tonveränderungen
bei einer Sounddatei oder Farbtonverfälschungen einer Grafikdatei sind
nicht wahrnehmbar. Die 'Hülldatei' muß aber eben achtmal so groß
sein, wie die zu codierende Information - oder noch größer. Im
Netz sind schon diverse Steganographie-Programme zu finden, z. B. auf
ftp.information.uni-hamburg.de
im Verzeichnis /pub/virus/crypt/stego oder auf
eris.giga.or.at im Verzeichnis
/pub/hacker/stego. Eine Anfrage bei Archie liefert sicher noch weitere Quellen.
E-Mail-Viren - gibt es sowas?
Neulinge im Netz werden öfters erschreckt durch die Meldung, daß
man keinesfalls eine E-Mail mit dem Betreff "Good Times" (oder
auch einem anderen Subject) lesen soll, da sonst ein Virusprogramm auf den
Rechner gelangt. Das stimmt natürlich nicht. Durch alleiniges Lesen
einer E-Mail kann überhaupt nichts passieren.
Anders verhält es sich, wenn diese E-Mail eine angehängte Datei
("Attachment") mit sich führt. Diese Datei kann sehr wohl
Gefahren mit sich bringen:
Wenn es sich um eine ausführbares Programm handelt, besteht die Möglichkeit,
daß dieses Programm Viren enthält - nicht anders, als wenn Sie
das Programm auf Diskette erhalten hätten.
Bei Winword-Dokumenten können sich im Dokumen sogenannte "Makroviren"
verbergen. Das sind Word-Makros mit schädlichen Funktionen, die gegebenenfalls
automatisch aktiviert werden, wenn Sie das Dokument mit Winword öffnen.
Dateien im PDF-Format können auch gefährliche Inhalte haben.
Der Acrobat-Reader zum Betrachten der Dokumente kann auch beliebige Kommandos
auf dem PC starten. Diese Kommandos können sich hinter harmlosen Buttons
verbergen (z. B. "Zurück zum Inhalt").
Es gibt noch ein paar andere Sorten voin E-Mail, die zwar nicht gefährlich,
aber doch lästig sind. Wie bei der Briefpost kommen mit der Zeit auch
Werbe-E-Mails, welche die Mailbox verstopfen. Die zweite Sorte sind Kettenbriefe
wie man sie auch seit vielen Jahren kennt. Meist tragen sie ein Subject
der Art "MAKE MONEY FAST". Schließlich geistern seit jahrzehnten
herzerweichende E-Mails durch das Netz, die von einem krebskranken Jungen
erzählen (z. B. Craig Shergold), der gerne noch ins Guinness-Buch der Rekorde
kommen möchte und dem man deshalb eine Postkarte oder Visitenkarte schicken
soll. Tun Sie das nicht, denn entweder ist der Kleine schon 30 - 40 Jahre als oder
längst verstorben.
Was ist eigentlich Spam? Und was bedeutet ECP, EMP, UBE, UCE?
Zunächst eine knappe Erläterung der Abkürzungen:
- Spam: Belästigende Massennachricht (Mail und News)
- ECP: Massen-Crossposting (News)
- EMP: Massenposting aus vielen identischen Einzelpostings bestehend (News)
Wird ein Artikel gleichlautend in übermäßig viele Newsgroups
gepostet oder crosspostet, so spricht man im ersten Falle von Spam oder
EMP (excessive multiple posting), im zweiten von Velveeta bzw. ECP (excessive
cross-posting).
SPAM steht für Spiced Pork and hAM(*), so eine Art Preßfleisch,
das in Amerika verkauft wird (sieht so etwa aus wie Katzenfutter).
Es gibt einen Sketch aus Monty Python's Flying Circus, in dem ein
Paar in einem Restaurant die Speisekarte vom Kellner vorgelesen bekommt
und in jedem Gericht ist SPAM drin, zum Teil sogar mehrfach. Auch in
dem Restaurant sitzt eine Gruppe Wikinger, die am Ende des Sketches
'Lovely Spam, wonderful Spam!' singen. Insgesamt kommt in dem Sketch
das Wort SPAM ca. 120 mal vor.
(*) Manche Leute behaupten, es steht für Synthetically Produced
Artificial Meat.
Bei E-Mail spricht man von:
- UBE: Unerwünschte Massennachricht (unsolicited bulk e-mail)
- UCE: Unerwünschte Werbenachricht (unsolicited commercial e-mail)
Da UCE zunehmend lästiger wird, sind in letzter Zeit einige Leute auf die Idee
gekommen, ihre News-Artikel unter einer falschen Adresse zu posten. Im Body des
Artikels finden sich dann meistens Hinweise auf eine gültige Adresse.
Diese Methode, sich gegen UCE zu wehren, ist jedoch problematisch.
Wird der Domain-Teil der Adresse verändert, kann es passieren, daá diese
Adresse trotzdem gültig ist (sogar 'xxx.de', 'nospam.de' oder 'deletethis.de'
sind beim DE-NIC registriert. Wird nur der Namens-Teil der Adresse verändert,
erhält zumindest der Postmaster einer Fehlermeldung per Mail.
Die UCE-Versender bekommen von Fehlermeldungen/Bounces dagegen in der Regel
nichts mit, da sie fast nie unter einer gültigen E-Mail-Adresse ihre UCE
versenden bzw. keine gültige Rücksendeadresse angegeben haben.
Sinnvoller ist es deshalb, das Problem UCE an der Wurzel zu packen. Dies
kann durch das Einrichten von Teergruben oder durch das Filtern von bekannten
Spammer-Domains geschehen. Weiter Informationen gibt es bei:
Was sind Cookies?
Cookies sind kleine Informationseinheiten, die beim Besuch einer Website
zunächst im Arbeitsspeicher des heimischen Computers gespeichert werden.
Unter Umständen werden diese Daten nach Verlassen des Webservers in
Form einer Textdatei auf die lokale Festplatte geschriehen.
Ein Cookie besteht aus einem Namen, einem Wert (Zeichenkette) und einem
URL. Zudem besitzt ein Cookie eine Lebensdauer. Wird der Ausflug ins
Netz beendet und der Browser geschlossen, werden alle Cookies, deren
Lebensdauer noch nicht abgelaufen ist, in einer Datei gespeichert.
Man spricht dann von 'persistenten Cookies'. Zukünftig läßt sich dann
mühelos verfolgen, wie oft genau dieser Anwender wiederkommt und was
er tut.
Ursprünglich wurden von Netscape die Cookies zur Erleichterung für
den Anwender entwickelt. Sie sollten persönliche Informationen enthalten,
die der Anwender beim nächsten Besuch eines Online-Angebots nicht mehr
eingeben mußte, z. B. für den Zugriff auf Angebote, die eine Zugangskennung
erfordern. Eine andere Anwendung wäre ein 'Einkaufskorb'. Da jeder
Seitenabruf einen abgeschlossenen Kommunikationsvorgang darstellt,
kann der Server nicht speichern, welche Waren ein Kunde schon in seinen
Korb gelegt hat. Cookies bieten hier die Möglichkeit den Inhalt des
Einkaufskorbes beim Kunden zu speichern, bis die abschließende Bestellung
durch eine Bestätigung erfolgt. Normalerweise lassen sich Cookies auch
keiner spezifischen Identitäten zuordnen, sofern der Besucher nicht
woanders seine Identität preisgibt.
Unternehmen können mit Hilfe von Cookies Abrufprofile erstellen z.
B. für verläßliche Abrufprofile für Reichweitenuntersuchungen. Schließlich
will man wissen, welche Seiten wie oft abgerufen werden. Daraus lassen
sich u. a. Schlußfolgerungen für die weitere Gestaltung einer Website
ziehen. Trotz zahlreicher Ansätze gibt es bislang noch kein genormtes
Verfahren zur Bildung von Abrufprofilen. Grundsätzlich besteht die
Möglichkeit zur Bildung von Abrufprofilen jedoch auch ohne Cookies
- durch die Auswertung von Logbüchern, z. B. mit entsprechenden Monitoring-Tools.
Problematisch wird es, wenn Cookies mit langer Lebensdauer eingesetzt
werden. Durch persistente Cookies ist es möglich, einen Benutzer über
mehrere Sessions hinweg zu identifizieren. Dadurch erhöht sich die
Informationsmenge und die Zuordnung einer Personenidentität vereinfacht
sich. Das ist ganz ohne Cookies nicht möglich. Mittlerweile gibt es
eine Reihe von Shareware-Tools, mit denen sich Cookies auf dem Computer
identifizieren und löschen lassen. Normalerweise befindet sich im Verzeichnisbaum
des Browsers irgendwo eine Datei namens 'cookies.txt'. Auf UNIX-Systemen
genügt es, die Leseberechtigung der Datei wegzunehmen. Auf Windows-Rechnern
kann man den Inhalt der Datei löschen und sie dann auf 'Read-Only'
zu setzen. Letztendlich sind Cookies aber harmlos.
Anbieter, die in Ihrem WWW-Angebot Cookies verwenden, sollten einfach
vorher auf deren Anwendung und den Zweck hinweisen. Dann weiß nämlich
der Websurfer woran er ist und wird auch weniger Vorbehalte gegen die
Cookies haben.
Weitere Informationen über Cookies findet man unter
Warum ist Active X gefährlich?
Microsoft will mit eigener Internet-Technologie Standards setzen und
hat, gewissermaßen als Konkurrent zu Java, seine Active-X-Technik entwickelt.
Im Gegensatz zu Java lauern hier Gefahren für den Computer des Websurfers.
Ein Active-X-Control ist ein kleines Windows-Programm, das sich nur
mit Hilfe eines Web-Browsers ausführen läßt. Wenn Sie im Internet auf
eine mit einem Active-X-Control ausgestattete Seite kommen, werden
nicht nur Text und bunte Bilder angezeigt, sondern auch ein Programm
auf Ihren Rechner geladen und ausgeführt. Im ungünstigsten Fall merken
Sie gar nicht, daß ein Active-X-Control in eine Web-Seite eingebunden
ist und automatisch ausgeführt wird, während Sie die Seite anschauen
und sich in trügerischer Sicherheit wähnen.
Hinter einem Active-X-Control verbirgt sich also nichts anderes als
ein normales Windows-Programm. Es kann also alles tun, was auch jedes
andere Windows-Programm tun kann: Daten von Ihrer Festplatte übers
Netz versenden, Viren installieren - oder einfach nur die Festplatte
formatieren. Active-X-Programme sind also ein Risikofaktor und sollten
nur unter bestimmten Voraussetzungen eingesetzt werden.
Der Chaos Computer Club demonstrierte der Öffentlichkeit die Risiken
von Active X: Die Hacker programmierten ein Active-X-Control, das der
Finanz-Software Quicken einen Überweisungsauftrag unterjubelte. Der
Auftrag wurde so gespeichert, daß er beim nächsten T-Online-Connect
automatisch ausgeführt würde.
Active-X-Programme laufen derzeit nur mit dem Microsoft Internet-Explorer
ab Version 3. Damit Active-X-Controls mit einem Netscape-Browser funktionieren,
muß man ein spezielles Active-X-Plug-in installieren.
Beim Installieren von Active-X-Komponenten wird manchmal ein 'Zertifikat'
angezeigt. Wer Active-X-Programme schreibt, kann sich ein solches 'Zertifikat'
besorgen, das nach dem Laden der Webseite angezeigt wird. Dieses Zertifikat
soll garantieren, daß das Active-X-Control wirklich im Originalzustand
vorliegt. Gewährleistet wird das durch eine verschlüsselte Quersumme,
die beim Herausgeber des Zertifikats hinterlegt ist und die mit der
des Programms verglichen wird. Ein gültiges Zertifikat heißt jedoch
keinesfalls, daß Sie einem Active-X-Control blind vertrauen können.
Der bisher einzige Zertifizierer, Verisign Commercial Software Publishers
CA, prüft nicht, was ein Active-X-Control auf einem Rechner anstellt,
sondern nur, ob das Programm nach der Zertifizierung verändert wurde.
Nachdem jeder sein Active-X-Control zertifizieren lassen kann, besteht
auch die Möglichkeit, daß gefährliche oder schädliche
ActiveX-Controls ein Zertifikat bekommen. Dabei muß nicht einmal
böse Absicht des Programmierers im Spiel sein, denn "Man soll nie
Absicht vermuten, wo Dummheit als Begründung ausreicht." Insofern
hat das Zertifikat höchst zweifelhaften Wert.
Wird auf einer Webseite ein Zertifikat angezeigt, hängt es davon ab,
wo Sie sich befinden: Handelt es sich um eine renommierten Firma, können
Sie ein zertifiziertes Active-X-Control ohne großes Risiko installieren.
Befinden Sie sich dagegen auf einer privaten oder halbprivaten Seite,
sollten Sie auch mit zertifizierten Komponenten sehr vorsichtig sein.
Programmierfehler können sich natürlich auch in Controls großer
Unternehmen befinden.
Was unterscheidet Active X, Java und Javascript?
- In Java wurden zum zum einen erfolgreiche Konzepte aus bereits
bestehenden Sprachen (z.B. C, C++, Smalltalk, Eiffel,
Ada, Objectiv-C) übernommen, zum anderen neue Konzepte verwirklicht.
Java ist eine junge Interpretersprache, die viele mächtige
Konzepte in sinnvoller Weise integriert. Sie völlig
objekt-orientiert, interpretiert, einfach, architekturneutral,
portabel und sicher. Eine gute Performance kann durch Multithreading
und optionalen Nativecode erreicht werden. Ausgiebige
Compilierzeitüberprüfungen und strikte Laufzeitckecks
garantieren ein robustes und sicheres Verhalten der Applikationen.
Sie kann somit neben der Möglichkeit des schnellen Prototyping
als eine stabile Basis für verteilte und erweiterbare Systeme
dienen.
Die wesentlichen Gesichtspunkte sind:
- Objektorientiert
- Eigenschaften
- Architekturunabhängig und portabel
- Robustheit
- Multithreading
- Garbage Collection
- Sicherheit
Java ist objektorientiert
Java ist vollkommen object-orientiert. Jede objekt-orientierte Sprache
sollte Minimum der folgenden Charakteristiken in sich haben:
- Encapsulation: Informationen (oder genauer Attribute und Methoden) werden gekapselt, d.h. konkrete Implementierung und Strukturen sind f&uumr den Anwender nicht sichtbar. Lediglich Funktionalit&t und Interface eines Objektes werden bekanntgegeben.
- Inheritance: Subklassen "erben" Inhalte von Klassen
- Dynamic binding: ermöglich ein Maximum an Flexibilität zur Laufzeit
All diese Anforderungen werden von Java in hohem Maße erfüllt. Es werden
sogar zusätzlich weitere runtime-features geboten, die die
Software-Entwicklung einfacher machen können.
Wichtige Begriffe in diesem Zusammenhang die auch in Java vorkommen sind:
Klassen: | Definiert Attribute und Methoden |
Object : | instanzierte Klasse |
Message: | Aufruf einer Methode eines anderen Objektes |
Constructor: | Methode, die die Initialisierung eines einer Klasse instanzierten Objektes vornimmt |
Destructor: | Gegenstück zum constructor. |
Access Control: | Bei der Deklarierung einer Klasse können Attribute und Methoden mit verschiedenen Zugriffsleveln (public, protected, private, friendly) versehen werden. |
Abstract Methods: | Methoden, die in einer Klasse deklariert werden, deren Implementierung aber erst in einer Subklasse erfolgt. |
Packages: | Java-konstrukt, das eine Sammlung von zusammengehörenden Klassen bildet. |
Wichtige Eigenschaften von Java
- Objektorientierung
- Multithreading
- Robustheit
- Sicherheit
- Erweiterbarkeit
- Plattformunabhängigkeit
Was Java hat
import
: vergleichbar dem IMPORT
von Modula-2.
interface
: ein geschickter Ersatz für die Mehrfachvererbung.
- Garbage Collection
- Verbesserte Ausnahmebehandlung
- Wohldefinierte Klassenhierarchie
Eigenschaften, die nicht von C oder C++ übernommen wurden:
- In Java gibt es keine Präprozessor-direktiven (wie z.B. #define) mehr.
- Es gibt keine Headerfiles, dafür aber interfaces, die die
Definition anderer Klassen und deren Methoden beinhalten.
- Multiple Inheritance wurde durch Interfaces ersetzt, die
Methodendefinitionen von Klassen gleichgesetzt werden können.
- Kein "goto"-statement (definiert, aber nicht implementiert).
- Kein Operator-overloading.
- Keine Pointer.
- Keine Typdefinitionen.
- Keine Variante Records (union).
- Keine generische Typen (templates).
- Keine Mehrfachvererbung.
- Keine vorzeichenlose Zahlentypen.
- Keinen direkten Hardwarezugriff.
Java ist architekturunabhängig und portabel
Durch die Verwendung von byte-code im Gegensatz zum Binärcode
ist Java völlig architekturneutral. Java-Programme lassen sich
auf allen Plattformen ausführen, auf welche die Virtual Machine
portiert wurde. Portierungen werden durch die strikte Sprachspezifikation
unterstützt.
Java ist robust
Java ist eine Sprache, die gedacht ist für robuste, zuverlässige und
sichere Applikationen.
Um dies zu erreichen wird ein striktes compile-time checking
durchgeführt, das es ermöglicht Syntaxfehler früh zu entdecken.
Java ist eine sehr typorientierte Sprache. Viele C-Freiheiten,
wie etwa implizite Deklaration von Funktionen sind nicht erlaubt.
Besondere Stützen der Robustheit sind die Abschaffung von Pointern,
die Verwendung von echten Arrays, ein Speichermodell, das die unerlaubte
Überschreibung von Speicherbereichen verhindert und strengere
Casting-Regeln.
Java ist sicher
Bereits bei der Konzeption von Java wurden grundlegende Überlegungen bezüglich
der Sicherheit angestellt. Der Java-Compiler und das Laufzeitsystem integrieren
mehere Abwehrschichten gegen potentiell gefährlichen Code. Am wichtigsten ist
sicherlich das Speicherallozierungs- und -referenzierungsmodell.
Entscheidungen über die Speicherbelegung werden nicht vom Compiler (wie in C oder C++),
sondern erst zur Laufzeit vorgenommen. Intern verwendet Java sogenannte
'handles' die zur Laufzeit in physikalische Addressen aufgelöst werden. Dies
geschieht sehr spät und z. T. auch abhängig von der Architektur, jedoch völlig
transparent für den Programmierer.
Was passiert, wenn gefährlicher Code auf einen Server generiert und zur Laufzeit auf
dem client ausgeführt wird? Obwohl der Java-Compiler beim übersetzen das Einhalten
von bestimmten Sicherheitsregeln garantiert, bleibt er natürlich machtlos, wenn
Code-Fragmente zur Laufzeit on-the-fly gelinkt werden. Wie kann also das
Laufzeitsystem dem hereinkommenden byte-code stream vertrauen, der vielleicht von
einem nicht vertrauenswürdigen Compiler erzeugt wurde? Die Antwort ist einfach:
Java traut dem Code nicht und unterwirft ihn deshalb dem byte-code-Verifizierungsprozeß.
Dieser beinhaltet eine Reihe von sinnvollen, restriktiven Maßnahmen. Darunter sind
einfache Typüberprüfungen, Ausklammerung von Pointern, Ausschluß von Stack-Über-
und -Unterläfen, strikte Parameterüberprüfung, strikte Typkonvertierungen,
Überprüfung der Speicherzugriffsrestriktionen. Weiter wird getestet, daß
Objekte wirklich nur als solche verwendet werden.
Daten- und Kontrollfluß vom Java-Quellcode bis zur Ausführung.
Trotz der ausgedehnten Verifizierungsprozeß bleibt Java (laut Sun) immer noch schnell
genug, da der Java-Interpreter von jeder weiterer Überprüfung hinsichtlich
der Sicherheit befreit ist und damit mit vollen Geschwindigkeit arbeiten kann.
Weitere Sicherheitsaspekte sind im Java Networking Package implementiert, welches es
erlaubt verschiedene Sicherheitsebenen zu konfigurieren. Diese sind:
- alle Netzwerkzugriffe sind verboten
- Alle Netzwerkzugriffe sind erlaubt
- Netzwerkzugriffe sind nur jenen hosts erlaubt, von denen der Code importiert wurde
- Netzwerkzugriffe sind auf Zugriffe außerhalb des Firewalls beschränkt,
wenn der Code von dort kommt.
Zum Weiterlesen über Java ein
Vortragsmanuskript von Antje König.
Wer sich für Java interessiert, findet Java-Seiten mit vielen Demos, den HotJava-Browser
(für SUNs) und Java-Entwicklersoftware auf dem Server von SUN Microsystems unter
http://java.sun.com.
- Javascript ist eine Script-Sprache mit begrenzten Fähigkeiten.
Sie hat im Grunde mit Java nur einen Namensteil gemeinsam.
JavaScript ist eine von Netscape entwickelte Programmiersprache. Die Sprache lehnt sich
in der Syntax an die von Sun Microsystems entwickelte Programmiersprache Java an.
JavaScript ist jedoch anspruchsloser im Aufbau als Java, eingeschränkter in
den Möglichkeiten und für andere Zwecke gedacht. JavaScript ist im
Gegensatz zu Java eine unmittelbare Ergänzung und Erweiterung zu HTML.
JavaScript bietet sich für folgende Zwecke an:
- Animation: Mit Hilfe von JavaScript können Sie Animationen wie
z. B. Marquees (Lauftexte) programmieren und in WWW-Seiten einbinden. Dabei steht
Ihnen nicht nur das Anzeigefenster zur Verfügung, sondern auch Dialogbereiche
des WWW-Browsers, etwa die Statuszeile.
- Projektsteuerung: Mit Hilfe von JavaScript können Sie einige
"Lücken" in HTML umgehen. So ist es mit Hilfe von JavaScript
beispielsweise möglich, innerhalb eines Frame-Sets die Inhalte mehrerer
Frame-Fenster gleichzeitig zu aktualisieren.
- Formularüberprüfung: Mit Hilfe von JavaScript können
Sie Anwendereingaben in einem HTML-Formular während der Eingabe überprüfen.
Auf diese Weise können Sie z.B. unzulässige oder sinnlose Eingaben unterbinden.
- Dynamische WWW-Seiten: Mit Hilfe von JavaScript können Sie erreichen,
daß sich WWW-Seiten während der Anzeige dynamisch verhalten. So ist es
beispielsweise möglich, Hinter- und Vordergrundfarben nach dem Laden der WWW-Seite
automatisch oder im Dialog mit dem Anwender zu ändern.
- Text generieren: Mit Hilfe von JavaScript können Sie zur Laufzeit
HTML-formatierten Text generieren. So ist es mit JavaScript z.B. möglich, aktuelles
Datum und aktuelle Uhrzeit auszulesen und dem Anwender anzuzeigen.
- Anwendungen: Mit Hilfe von JavaScript können Sie einfache Anwendungen
programmieren. Das können z.B. wissenschaftliche oder kaufmännische
Taschenrechner sein. Auch einfache Spiele sind denkbar.
JavaScript-Programme werden im Gegensatz zu Java-Programmen direkt in der HTML-Datei
notiert. Sie werden auch nicht - wie Java-Programme - compiliert, sondern als
Quelltext zur Laufzeit interpretiert, also ähnlich wie Batchdateien bzw.
Shellscripts.
Dadurch bleibt JavaScript unkompliziert für den Programmierer, doch kritisch
für den Anwender. Das Interpretieren von Quellcode ist ungleich langsamer als
das Interpretieren von compiliertem Code. Deshalb ist JavaScript nur für kleine
und einfache Programmabläufe sinnvoll. Da kein Compilierungslauf und somit keine
Fehlerprüfung stattfindet, gibt es bei JavaScript auch keinen Schutz vor schweren
Programmfehlern, z.B. vor "Endlosschleifen", die beim Anwender zum Systemabsturz
führen können.
Hinweis: JavaScript wird derzeit nur von Netscape ab Version 2.0 interpretiert.
Die Fähigkeiten des Netscape JavaScript-Interpreters sind derzeit allerdings noch
nicht ganz ausgereift. Unvollständige oder fehlerhafte Code-Interpretationen sind
ebenso wie unvermittelte Programmabstürze möglich. JavaScript ist selbst noch
in Entwicklung. Für das korrekte Funktionieren der hier vorgestellten Beispiele,
die mit Netscape 3.0 beta getestet wurden, kann daher keine Gewähr übernommen
werden.
Weitere Informationen und Beispielsammlungen zu JavaScript finden Sie im WWW:
- Active-X:
Microsoft will mit eigener Internet-Technologie Standards setzen und
hat, gewissermaßen als Konkurrent zu Java, seine Active-X-Technik entwickelt.
Active-X ist eine Microsoft-Technik zur Erzeugung interaktiver Web-Seiten mithilfe von
Controls, Skripts und Softwarepaketen, wie zum Beispiel Textverarbeitungen und
Tabellenkalkulationen.
Der Sinn von Active-X ist aus Sicht von Microsoft:
- Applikationen in Web-Browser einzubinden
- Den Web-Browser zur Schaltzentrale für Internet und Intranet zu machen
Die Active-X-Technologie besteht aus folgenden Komponenten:
- Active-X-Controls
- Active-X-Scripting
- Active-X-Dokumente
- Active-X-Conferencing
- ActiveMovie
Active-X-Controls
sind Elemente wie Schaltflächen, Listboxen, Bildlaufleisten usw., die auf Web-Seiten
plaziert und dort benutzt werden können. Dadurch wird ein hoher Grad an Interaktion
mit dem Anwender erreicht.
Active-X-Scripting
Active-X-Controls werden mit sogenannten Skripts gesteuert. Skripts sind Programme,
die in HTML-Seiten eingebaut und somit für jedermann lesbar sind. Skriptsprachen
sindVisual-Basic-Script (VB-Script) und Java-Script.
Active-X-Dokumente
Sie funktionieren wie OLE-Verbunddokumente. Ein Browser (Container) kann zum Beispiel ein
Excel-Sheet anzeigen (Excel ist dann der Server), ohne das man den Browser verlassen
muß - sofern man Excel hat. Man kann so Dokumente ganz verschiedener
Formate in das Netz posten und jeder, der auch den entsprechenden Server hat, kann sie
betrachten. Damit wird aber der Nutzerkreis aber auf die Anwender von Microsoft-Produkten
eingeschränkt und die gemeinsame Sprache des WWW, HTML, ausgegrenzt.
Active-X-Conferencing
Eine Kommunikations-Technik, die noch in der Entwicklung ist.
Active-X-Conferencing erlaubt die Anwendung einer Software, die auf einem einzigen
Rechner läuft, durch mehrere Personen gleichzeitig, die über ein Netzwerk verbunden
sind. Dieses Netzwerk kann das Internet aber auch das Intranet sein. Damit sich die
teilnehmenden Personen auch von "Mensch zu Mensch" unterhalten können,
während sie gemeinsam eine Software steuern, gibt es eine Voice-Verbindung. Diese
Voice-Verbindung funktioniert bisher aber nur zwischen zwei Teilnehmern. Für die
Zukunft ist auch eine Video-Verbindung geplant.
ActiveMovie
Zur Übertragung von Audio und Video-Daten über Netze gibt ist ActiveMovie. ActiveMovie
soll ermöglichen, daß die Audio- und Video-Daten nicht erst komplett auf den eigenen
Rechner geladen werden müssen bevor man sie abspielen kann (was unter Umständen ziemlich
lange dauern kann), sondern die Übertragung erfolgt in Echtzeit. Voraussetzung ist
natürlich, daß die Verbindung schnell genug ist.
Einstellungen des MS Internet Explorers für sichere Handhabung von Active X:
Um zu den Sicherheitseinstellungen des Explorers zu gelangen, gehen
Sie ins Menü 'Ansicht', Unterpunkt 'Optionen' und wählen Sie die Karte
'Sicherheit'. Klicken Sie nun auf 'Sicherheitsgrad', und stellen Sie
ihn auf 'Hoch'. Die Sicherheitsgrade haben folgende Eingenschaften:
- 'Hoch': Active-X-Controls ohne Zertifikat werden nicht installiert.
Bei Programmen mit Zertifikat werden Sie jeweils um Erlaubnis gefragt.
- 'Mittel': Nach dem Empfang eines nicht zertifizierten Active-X-Controls
wird gefragt, ob Sie es installieren wollen. Programme mit Zertifikat
werden installiert.
- 'Keine': Jedes Active-X-Control wird ohne Rückfrage auf Ihren Rechner
installiert.
Nun können Sie gleich noch einige generelle Einstellungen vornehmen:
- 'Übertragung aktiver Inhalte zulassen' ermöglicht das Herunterladen
neuer Active-X-Controls. Wenn Sie keinen Wert auf Active X legen, deaktivieren
Sie diese Einstellung. Active-X-Programme werden nicht mehr auf Ihren
Rechner geladen. Bereits installierte Active-X-Controls bleiben funktionsfähig
und aktiv.
- 'ActiveX-Steuerelemente und Plug-lns aktivieren' schaltet Active-X-Programme
komplett ein oder aus. Ist dieses Kästchen leer, werden keine Active-X-Controls
mehr ausgeführt. Sie nehmen damit aber in Kauf, daß einige Web-Seiten
auf ihrem PC nicht laufen.
- 'ActiveX-Scripts ausführen' können Sie aktiviert lassen. Diese Option
bestimmt, ob Active-X-Scripts eingeschaltet werden sollen. Dabei handeltes
sich um eine Art von Batchdateien zum Aufrufen bereits installierter
Active-X-Controls. Außerdem läßt sich mit dieser Einstellung Javascript
deaktivieren.
- 'Java-Programme aktivieren' bestimmt, ob diese Programme ausgeführt
werden oder nicht. Zur Zeit geht von ihnen keine Gefahr aus, da sie
in einer 'Sandbox' laufen und keinen Zugriff auf das RAM oder die Festplatte
haben.
Wie erfahre ich, welche Active-X-Controls schon auf meinem PC sind?
Wenn Sie schon massenhaft Active-X-Controls auf Ihrer Platte haben,
hilft die Freeware 'ActiveXCavator'. Sie listet alle installierten
Controls einschließlich diverser Dateiinformationen (Verzeichnis, Größe)
auf und kann auch einzelne Controls löschen. Das Programm gibt es unter
http://www.winmag.com/software/xcavate.htm.
- Holger Reif:
'Netz ohne Angst'
Sicherheitsrisiken des Internet
c't 1995, Heft 9
- Dirk Fox:
'Schlüsseldienst'
Kommunikation mit PEM und PGP
c't 1995, Heft 9
- Harald Lux:
'Der Internet-Markt in Deutschland'
dpunkt-Verlag
- Vince Emery:
'Internet im Unternehmen'
dpunkt-Verlag
- Donnerhacke/Peter:
'Vorsicht Falle'
iX 1997, Heft 3
- D. J. Barrett:
'Gauner und Ganoven im Internet'
Verlag O'Reilly
- Chapman, Zwicky:
'Building Internet Firewalls'
Verlag O'Reilly
Copyright © Prof. Jürgen Plate, Fachhochschule München