Achtung! / Attention!

Diese Seite ist Teil unser alten Internetpräsenz, die nicht weiter gepflegt wird. Besuchen Sie auch unsere neue Präsenz unter http://ig.cs.tu-berlin.de.
This page is part of our former website that is not being maintained anymore. You may want to visit our new website at http://ig.cs.tu-berlin.de.


Techniken der Datenerfassung im Kontext des Customer Profiling im Internet

Roland Altmann, Frank Haagen
Studienarbeit
Draftversion 1


1 Einleitung *

2 Customer Profiling und eCommerce *

3 Techniken der Datenerfassung *

3.1 WWW-Server Logs *

3.1.1 Hits *

3.1.2 Die IP-Adresse *

3.1.2.1.1 Namensauflösung *

3.1.2.1.2 Traceroute *

3.1.2.1.3 WHOIS - Datenbanken *

3.1.3 Clientseitige Betriebssystemeinstellungen *

3.1.4 Clientseitige Browsereinstellungen *

3.1.5 Herkunft der Anfrage *

3.1.6 Web Server Installation *

3.2 Cookies *

3.2.1 Motivation *

3.2.2 Was sind Cookies? *

3.2.3 Einsatzgebiete *

3.2.3.1 Online-Shopping *

3.2.3.2 Angepaßte Homepages *

3.2.3.3 Customer Profiling *

3.2.4 Ablauf *

3.2.5 Inhalt eines Cookies *

3.3 Java und JavaScript *

3.3.1 Java *

3.3.1.1 Java-Applets *

3.3.1.2 Java-Applications *

3.3.2 JavaScript *

3.3.3 Java und JavaScript — Zwillinge die keine sind *

3.3.4 Die Sicherheit *

3.3.5 ..und Ihre Lücken *

3.3.5.1 Cookies *

3.3.5.2 submit() *

3.4 ActiveX *

3.4.1 Sicherheit durch Vertrauen *

3.5 Session Identity *

3.6 Hidden fields *

3.7 Session Files *

3.8 Plug-ins *

3.9 Common Gateway Interface — Serverseitiges skripten mit CGI *

3.9.1 Active Server Pages *

3.9.1.1 ASP und ActiveX *

3.9.1.2 Sicherheitsaspekte *

 

 

 

 

 

4 Der Browser — Fenster zur Welt mit Bruchgefahr *

4.1 Java / Javascript *

4.1.1 Sohr Java Vulnerability *

4.1.2 The Injection Bug *

4.1.3 The Frame-Spoofing Vulnerability *

4.2 ActiveX *

4.2.1 "DHTML Edit Control" Bug *

4.3 Browserfehler *

4.3.1 Microsoft *

4.3.1.1 "MSHTML" Vulnerability *

4.3.1.2 AutoVervollständigen *

4.3.1.3 Registriernummer *

4.3.2 Netscape *

4.3.2.1 Preferences Bug *

4.3.2.2 Smart Browsing *

4.4 Browsereinstellungen *

4.4.1 Netscape Navigator 4.08 (letzte Browser stand-alone Version) *

4.4.2 Microsoft Internet Explorer 5.0 *

5 Ausblick *

 

 

  1. Einleitung
  2. Primäres Ziel unternehmerischer Marketingaktivitäten ist, das Portfolio an Marketingmassnahmen möglichst zielgruppengerecht einzusetzen.

    Neue Möglichkeiten im Rahmen der Informationstechnologie versetzen Unternehmen heute in die Lage, Marketing auf der Basis kundenindividueller in einer Kundendatenbank gespeicherter Informationen zu betreiben. Database Marketing, Data Warehousing und Data Mining als die wesentlichen Bestandteile des Customer Profiling sind in diesem Bezug die am meisten genannten Schlüsselbegriffe. Sie beschreiben im weitesten Sinne die Erfassung, Speicherung, Aus- und Verwertung kundenspezifischer Daten, um Aufbau und Management langjähriger, profitabler Geschäftsbeziehungen zu realisieren und zu sichern.

    Die wesentliche Aufgabe im Rahmen des Customer Profiling besteht also darin, die für das jeweils fokussierte Problem relevanten Kundenprofile herauszufiltern. Customer Profiling kann als das Management einer Datenbank mit möglichst umfassenden, relevanten und aktuellen Daten über Kunden und Interessenten verstanden werden.

    Die in den letzten Jahren rasch vorangeschrittene Entwicklung der Techniken zur Akquisition der Datenspur die ein Benutzer im Internet hinterläßt, nutzen kommerzielle Anbieter, um immer umfassendere und genauer auswertbare Datensammlungen anzulegen.

    Schwerpunkt dieser Studienarbeit ist die deskriptive Darstellung verschiedener Techniken der nutzerspezifischen Datenerfassung.

    Hierbei sollen den Datenschutz betreffende Problematiken dieser Thematik vernachlässigt.

    Abbildung 1: Client-Server-Interaktion

  3. Customer Profiling und eCommerce

 

Der rasante Anstieg der weltweiten Internet-Nutzung dient als Motor für die Entwicklung von Multimedia und Electronic Commerce (EC). Die digitale Geschäftsabwicklung sollen die Ausweitung der eigenen Absatzmärkte bei gleichzeitiger Reduktion der Kosten ermöglichen. Prognosen sprechen von einem Marktvolrumen im Jahre 2000 von über 18 Mrd. US$.

Die zahlreichen Facetten des Electronic Commerce erstrecken sich dabei von der Online-Präsentation über Online-Shopping bis hin zu hochkomplexen Online-Transaktionssystemen.

eCommerce ermöglicht die umfassende, digitale Abwicklung der Geschäftsprozesse zwischen Unternehmen und zu deren Kunden über globale öffentliche und private Netze.

 

Eine Grundlage des eCommerce ist das sog. One-to-one:

 

 

Durch die zahlreichen qualitativ hochwertigen Kundendaten, an die eCommerce-Anbieter durch Ihre Angebote gelangen, ist eine Realisierung dieser Forderungen mit modernem Customer Profiling zu praktizieren.

Die Nutzerinformation erweist sich so als wichtigstes Werkzeug im eCommerce.

 

Neben denen im weiteren Erwähnung findenden technischen Ausprägungen des Versuchs, relevante Daten zu gewinnen, dienen als wichtiger Bestandteil des Customer Profiling natürlich auch die vom Nutzer bewußt durch das Ausfüllen von Formularen an den Anbieter übermittelten Daten, zu denen nicht selten auch personenbezogene Informatinen gehören.

  1. Techniken der Datenerfassung
  2.  

     

    1. WWW-Server Logs
    2.  

      Bei jedem HTTP-Zugriff eines Clients (Browser) auf einen WWW-Server (Website) werden, da es sich bei HTTP um ein verbindungsloses Protokoll handelt, umfangreiche Informationen übertragen und je nach Typ des HTTP-Servers in eine oder mehreren log-Dateien geschrieben. Welche Informationen genau auf Serverseite erfaßt werden, hängt dabei stark von Art und Konfiguration des HTTP-Daemons ab.

      Die Daten im einzelnen, auf die der Server durch Anfragen des Clients (HTTP-Request) Zugriff erlangen kann und die später zum Zwecke des Customer Profilings ausgewertet werden können, sind:

       

      1. Hits
      2.  

        Die Anzahl der Anfragen werden für jedes Element einer Site protokolliert.

        Hierbei ist auch ersichtlich, auf welchem Wege ein Besucher während einer Session die Site durchschreitet, welche Angebote und links wahrgenommen und verfolgt werden.

         

      3. Die IP-Adresse
      4.  

        ist der eindeutige Identifizierer eines Rechners (Hosts) im Internet. Auf dieser Einmaligkeit einer Netzadresse basiert das Internet Protokoll (IP) und der Austausch von Datenpaketen. Eine solche IP-Adresse muß nicht zwangsläufig auf Dauer immer dem selben Host zugeordnet sein, Internet-Zugangsprovider beispielsweise vergeben an die Rechner Ihrer meist privaten Kunden nach deren Einwahl in ihr Netz dynamische IP-Adressen, so daß es durchaus üblich ist, daß der Rechner eines Internet Nutzers heute eine andere IP-Adresse als morgen besitzt. Unternehmensnetze mit festen Verbindungen ins Internet hingegen vergeben an ihre Hosts in der Regel feste IP-Adressen.

        Eine IP-Adresse besteht aus vier mit einem Punkt getrennten Zahlen im Bereich von 0 bis 255. In den Paketen, die ein Client über das Internet versendet um zum Beispiel mail abzuholen, eine Website zu besuchen oder Newsgroups zu lesen, ist diese IP-Adresse des Client-Rechners immer enthalten.

        Namen wurden im Internet für den Menschen und dessen besserem Verständnis geschaffen, der Domain Name Service weist im Regelfall einer IP-Adresse immer eindeutig einem Namen zu und umgekehrt.

        Ruft nun beispielsweise ein WWW-Client eine beliebige Website auf, so wird die IP-Adresse des Client-Rechners durch den HTTP-Dienst auf dem Server im Zugriffslogbuch (acces_log) vermerkt. Wird von Clientseite aus aber ein Proxy oder ein Masqueraded Network (z. B. mittels Router) zum Internetzugang verwandt, erscheinen von außen alle Rechner hinter diesen Hilfsmechanismen mit der selben IP-Nummer.

        Eine IP-Adresse kann vielfältige Informationen über den Client-Rechner enthalten. Es gibt verschiedene Techniken, diese Informationen zu beschaffen:

         

          1. Namensauflösung
          2.  

            Wie beschrieben kann so IP-Nummer nach Name aufgelöst werden. Namen können offenkundige Informationen über die geographische Herkunft der Client-Anfrage an den HTTP-Server ebenso enthalten wie persönliche oder andere Daten, die durch gewisse Schemata bei der Administration der Hostnamen Verwendung finden:

             

            n11-rew.compaq.com Ein Host aus dem Compaq-Netzwerk

            pD4B88C5A.dip.t-online.de Eine dynamische IP-Adresse aus dem t-Online Netzwerk

            ns.eu.microsoft.com Ein Host aus dem europäischem Microsoft-Netzwerk

            ppp196-96.rz.hu-berlin.de Ein Host über einen PPP-Einwahlzugang der Humboldt Uni in Berlin, möglicherweise die 196. Beantragung eines accounts im Jahre 1996

            pinback.isdn.cs.tu-berlin.de Der Rechner des users pinback am Fachbereich Computer Science der TU in Berlin, Einwahl via ISDN. Vermutliche e-mail Adresse: pinback@cs.tu-berlin.de .

             

          3. Traceroute

 

Mit dieser Technik kann der Weg der Pakete durch das Internet-Backbone vom Client zum Server verfolgt werden und Aufschluß über den geographischen Standort und über den Provider des users geben.

Im Beispiel wurde ein virtueller Server gewählt, und die Vermutung liegt Nahe, daß dessen mittelständischer Provider das Backbone der Deutschen Telekom nutzt und in der Nähe von Flensburg angesiedelt ist.

traceroute to www.beate-uhse.de (194.25.95.143), 30 hops max, 40 byte packets

1 x1.sireco.de (195.170.99.33) 0.797 ms 0.679 ms 0.713 ms

2 cisco.dtag.sireco.de (192.168.254.250) 3.248 ms 3.669 ms 3.038 ms

3 B-ag1.B.net.DTAG.DE (194.25.7.69) 7.539 ms 5.121 ms 5.034 ms

4 B-gw2.B.net.DTAG.DE (194.25.122.37) 7.620 ms 8.114 ms 7.309 ms

5 B-gw12.B.net.DTAG.DE (62.156.131.13) 4.958 ms 7.254 ms 10.785 ms

6 L-gw12.L.net.DTAG.DE (62.156.131.101) 10.344 ms 7.550 ms 9.374 ms

7 L-gw13.L.net.DTAG.DE (62.156.140.86) 7.862 ms 13.058 ms 26.976 ms

8 HH-gw12.HH.net.DTAG.DE (62.156.131.98) 13.756 ms 28.560 ms 19.592 ms

9 HH-gw1.HH.net.DTAG.DE (62.156.131.2) 15.428 ms 30.611 ms 29.888 ms

10 FL-gw1.FL.net.DTAG.DE (194.25.124.206) 16.400 ms 20.548 ms 24.405 ms

11 FL-ag1.FL.net.DTAG.DE (194.25.125.225) 15.101 ms 29.259 ms 30.755 ms

12 00611-5-1-gw.FL.net.DTAG.DE (62.156.132.159) 32.854 ms 16.576 ms 25.794 ms

  1. susanne.combtx.com (194.25.95.141) 18.604 ms * 17.760 ms

          1. WHOIS - Datenbanken

 

IP-Adressen werden nicht einzeln, sondern in Blöcken von zentralen Vergabestellen für den europäischen (ripe.net), amerikanischen (arin.net) und asiatisch-pazifischen (apnic.net) Raum verteilt. Die Kenntnis einer IP-Adresse ermöglicht es, durch eine Anfrage in der entsprechenden WHOIS-Datenbank an Informationen über

die Größe des Adreßraums,

den Inhaber des Adreßraums,

die verschiedenen mit diesem Adreßraum verknüpften Personen (human individuals contacts) und Unternehmen,

das Datum der letzten Änderungen an diesem Datenbestand,

die tatsächliche Identität des Providers,

beteiligte Name Server,

zu gelangen.

Zu der genannten Beispieladresse liegen beim RIPE folgende Informationen:

 

 

inetnum: 194.25.94.0 - 194.25.95.255

netname: COMBTX

descr: ComBtx Rechenzentrum GmbH

descr: Am Industriehafen 2

descr: D-24937 Flensburg

country: DE

admin-c: SB98-RIPE

admin-c: JM117-RIPE

tech-c: JM117-RIPE

rev-srv: haegar.allcon.net

rev-srv: ns.maz.net

rev-srv: pns.dtag.de

status: ASSIGNED PA

mnt-by: DTAG-NIC

changed: bp@NIC.DTAG.DE 960209

changed: bp@NIC.DTAG.DE 960822

source: RIPE

 

route: 194.25.0.0/16

descr: Deutsche Telekom AG, Internet service provider

origin: AS3320

mnt-by: DTAG-RR

changed: bp@NIC.DTAG.DE 960215

changed: bp@NIC.DTAG.DE 980423

source: RIPE

 

person: Sascha Boerger

address: Deutsche Telekom AG

address: Computer Service Management

address: Service- und Computer-Zentrum Nord

address: Postfach 6400

address: Germany

address: D-24125 Kiel

address: GERMANY

phone: +49 431 7171222

fax-no: +49 431 7171305

e-mail: sboerger@sczn.de

e-mail: Sascha@Boerger.com

nic-hdl: SB98-RIPE

notify: registry@nic.dtag.de

mnt-by: DTAG-NIC

mnt-by: DENIC-P

changed: Sascha@Boerger.com 19980120

changed: auto-direct@denic.de 19990308

source: RIPE

 

person: Johannes Maybaum

address: COM Online GmbH & Co KG

address: Am Pferdewasser 10

address: D-24937 Flensburg

address: Germany

phone: +49 461 8880 241

fax-no: +49 461 8880 222

e-mail: gjm@comonline.net

nic-hdl: JM117-RIPE

remarks: see also INTERNIC: >JM672<

mnt-by: DTAG-NIC

mnt-by: DENIC-P

changed: cp@deins.Informatik.Uni-Dortmund.DE 930103

changed: bp@NIC.DTAG.DE 960209

changed: jens@nic.de 960417

changed: gjm@comonline.net 971007

source: RIPE

 

Nationale Network Information Center wie z. B. der deutsche NIC ( http://www.nic.de ) , mit der Vergabe von Top-Level Domainnamen betraut, halten in Ihren WHOIS-Datenbanken die alle relevanten Registrierungsinformationen, nur bezogen und beschränkt auf den Domainnamen und die beteiligten administrativen- (Eigentümer der Domain), technischen- und Zonen-Kontakte:

 

 

domain: beate-uhse.de

descr: ComBtx Rechenzentrum GmbH

descr: Am Industriehafen 2

descr: D-24937 Flensburg

descr: Germany

admin-c: JP77-RIPE

tech-c: SB97-RIPE

zone-c: JP77-RIPE

nserver: ns1.combtx.com

nserver: pns.dtag.de

 

person: Joerg Puschmann

address: COM BtX GmbH

address: Am Industriehafen 2

address: D-24937 Flensburg

address: Germany

phone: +49 461 8880 180

fax-no: +49 461 8880 222

e-mail: joerg@combtx.com

nic-hdl: JP77-RIPE

 

person: Sascha Boerger

address: Deutsche Telekom AG

address: Computer Service Management

address: Service- und Computer-Zentrum Nord

address: Postfach 6400

address: D-24125 Kiel

address: Germany

phone: +49 431 7171222

fax-no: +49 431 7171305

e-mail: sboerger@sczn.de

e-mail: Sascha@Boerger.com

nic-hdl: SB97-RIPE

remarks: see also: [role] HS1593-RIPE

notify: registry@nic.dtag.de

notify: guardian@xlink.net

 

 

      1. Clientseitige Betriebssystemeinstellungen
      2.  

        Von den neuesten und gebräuchlichsten Browsertypen (Netscape 4.x und MSIE 4.x) wird in jedem Falle die Betriebssystemsversion übetragen. Der sogenannte JavaScript Monitor liefert die aktuelle Bildschirmauflösung und die eingestellt Farbtiefe.

         

      3. Clientseitige Browsereinstellungen
      4. Der Browser übermittelt seine Identität, Version und Sprachkennung, sowie die Browsereinstellungen für Java (Applets) und JavaScript, Informationen zu allen installierten Plug-ins und jegliche Fileformate, die zur Azeige zugelassen sind.

        Hat der Anwender seinen Netscape-Browser (4.x) oder einen älteren Browser so konfiguriert, daß als die für FTP-Sessions erforderliche mail-Adresse die im Netscape-Mail Client eingetragene e-mail Adresse verwendet werden soll, so kann auch diese vom Server unsichtbar für den Nutzer erfragt werden.

         

      5. Herkunft der Anfrage
      6.  

        Wird eine Website durch einen link von einer anderen Site erreicht, so wird die Herkunftsadresse (Referrer) vom Browser an den "neuen" Server übertragen.

         

      7. Web Server Installation

 

Der vom Browser befragte HTTP-Server sendet selbst einen HTTP-Request aus und kann auf diesem Wege feststellen, ob auf dem Client-Rechner ebenfalls ein HTTP-Server installiert und welcher Herkunft dieser ist.

 

 

    1. Cookies
    2.  

      1. Motivation
      2.  

        Da das im Internet verwendete HTTP (Hypertext-Transport-Protokoll) ein nicht-persistentes Protokoll ist, d.h. eine mittels HTTP entstandene Verbindung ist nicht anhaltend, ist es für den Web-Server nicht möglich, ohne Einsatz bestimmter Techniken, zwischen "Besuchern" einer Web-Seite zu unterscheiden, außer er kann diese irgendwie "markieren". Das wird erst durch das Speichern von Information im Browser bzw. Festspeicher (persistent cookies) des Clients ermöglicht.

         

      3. Was sind Cookies?
      4.  

        Cookies sind ein Werkzeug zur Gewährleistung der o.g. Statusinformationen im WWW. Sie werden in die HTML-Information eingebettet, die zwischen Server und Client-Rechner ausgetauscht wird.

        Ein Cookie ist ein Datensatz im ASCII-Format, der vom Web-Server generiert (z.B. durch cgi oder Java-Script) und dem Client-Rechner zum Speichern übergeben wird, sofern der Browser des Clients dies zuläßt. Dies erfolgt bei den beiden meist genutzten Browsern unter Windows in der Datei cookies.txt (Netscape Navigator) im Netscape-Verzeichnis bzw. im Verzeichnis \windows\cookies (Microsoft Internet Explorer).

        In Cookies werden verschiedene Informationen, die während einer Online-Session gesammelt wurden, abgelegt.

        Die meisten Cookies verweilen lediglich bis zum Beenden des Browsers auf der Clientseite und werden dann vernichtet. Eine zweite Art von Cookies, bekannt als persistent cookies, besitzt ein Ablaufdatum als Attribut und wird auf der Festplatte bis zu diesem gespeichert. Sie kann genutzt werden, um die Surfgewohnheiten des Users, durch Identifizierung bei Rückkehr auf eine Site, zu verfolgen.

        Informationen über Herkunft der Verbindung, welche Web-Seiten man besucht existieren bereits im Web-Server log file und können ebenfalls zur Ermittlung von Surfgewohnheiten des Users dienen, Cookies machen es nur einfacher.

        Ein Web-Server kann als Attribut den zugehörigen Domainnamen für den Cookie mitliefern, so daß jeder Server der selben Internet-Subdomain des sendenden Rechners während einer Seitenanfrage den Cookie übermittelt bekommt. Diese Möglichkeit nutzen größere Sites, welche mehrere Server betreiben, um ihre Cookies zu koordinieren. Der Domainpfad kann also nicht an Subdomains versendet werden, die außerhalb der Subdomain des erstellenden Servers liegen.

         

      5. Einsatzgebiete
      6.  

        Der Zweck des Einsatzes von Cookies ist die Identifizierung eines Clients, um möglicherweise individuell angepasste Web-Seiten zu erstellen und zu übermitteln.

         

        1. Online-Shopping
        2.  

          Onlineshopping-Anbieter benutzen Cookies um den Warenkorb eines Clients zu realisieren. Beim ersten Besuch einer Shopping-Site wird mittels eines Cookies eine ID-Nummer für den Warenkorb angelegt. Mit Auswahl eines jeden gewünschten Artikels, wird dieser dem Warenkorb zugefügt. Nach Beenden des Shoppings listet die Kontrollseite alle Artikel im Warenkorb, welcher mit dem Cookie verknüpft ist, auf. Ohne Cookies müßte sich der Käufer alle Artikel merken und diese in die Kontrollseite (z.B. Bestellformular) eingeben, oder einen Artikel nach dem anderen bestellen.

          Eine andere Methode ist das Versenden eines mit Artikelnummer versehenen Cookies für jeden bestellten Artikel. Der Browser sendet die für alle gewünschten Artikel betreffenden Cookies mit der Anfrage der Kontrollseite, welche diese zum Erstellen der Einkaufsliste verwendet.

           

        3. Angepaßte Homepages
        4.  

          Ein weiteres Gebiet ist das Erzeugen von maßgeschneiderten Homepages. Ein Cookie wird für jedes Objekt, welches auf der Homepage erwartet wird, gesendet. Mit jeder Anforderung der angepaßten Homepage schickt der Browser die Cookies mit, um dem Server mitzuteilen welche Objekte er anzeigen soll. Ohne Cookies würde der Server bei jedem Besuch eine Identifizierung des Users fordern müssen. Außerdem wäre das Speichern der benutzerspezifischen Einstellungen für jeden Besucher auf dem Server unumgänglich.

           

           

        5. Customer Profiling

         

        Cookies werden auch als Hilfsmittel zum Verfolgen von Surf- und Kaufgewohnheiten von individuellen Web-Usern eingesetzt. Diese Möglichkeit ist Hauptursache für das Enstehen heftiger Kontroversen weltweit.

        Auf einer oder auf einer Gruppe von Webseiten innerhalb einer Subdomain können Cookies verwendet werden, um nachzuvollziehen, welche und wie oft Webseiten besucht werden.

        Auf einer Vielzahl von Anbieterseiten, die von einer Marketing-Site versorgt werden, können Surfgewohnheiten auf allen Anbieterseiten verfolgt werden. Hierbei schließen sich Marketingunternehmen mit einer Vielzahl von Anbietern zusammen, um ihre Anzeigen zu präsentieren. Die Anbieter-Sites setzen lediglich ein <IMG>-TAG auf ihren Webseiten, um Images (Werbebanner) anzuzeigen, die Werbung des Marketingunternehmen enthalten. Das TAG zeigt nicht auf eine Image-Datei des Anbieters der Seite, sondern enthält die Server-URL (Uniform Resource Locator) des Marketingunternehmens und bezieht die URL des Anbieters mit ein. So wird beim Öffnen der Webseite des Anbieters, das eingeblendete Werbebanner tatsächlich vom Server des werbenden Unternehmens angefragt. Dieses sendet einen Cookie mit der Werbung und jener wird beim Besuch einer jeden Webseite zurückgeliefert, die irgend ein Werbebanner des Unternehmens enthält.

        So ist es werbenden Unternehmen, die auf einer großen Anzahl von Webseiten ihre Banner setzen lassen möglich, die Surfgewohnheiten eines Users von Seite zu Seite innerhalb aller Anbieterseiten nachzuvollziehen. Es ist nicht möglich festzustellen, was ein User auf den Seiten der Anbieter macht, jedoch welche und wie oft er sie besucht. Diese Informationen lassen auf Interessen des Nutzers schließen und werden verwertet, um gezielt Werbung auf dieser Basis zu machen.

      7. Ablauf

 

Cookies basieren auf einem zweistufigen Verwendungsprozeß, der wie folgt beschrieben werden kann:

 

1. Stufe: Speicherung eines Cookies

 

  1. Der Web-Browser des Clients fragt nach einem HTML-Dokument beim Web-Server an.
  2.  

  3. Der Web-Server sendet nicht nur die angefragte Seite, sondern auch eine Anweisung an den Browser einen cookie (Datensatz) in den Speicher des Client-Rechners zu schreiben
  4.  

  5. Sollte nichts diese Anweisung ablehnen, führt der Web-Browser diese aus.
  6.  

     

    2. Stufe: Verwendung des Cookies

     

  7. Mit jeder Seitenanfrage des Clients, überprüft der Web-Browser, ob ein passender Cookie existiert, welchen der Web-Server zusammen mit der Anfrage übermittelt bekommen soll. Ein Cookie wird nur an den Server transferiert, der ihn abgelegt hat.
  8.  

     

  9. Im Falle der Existenz eines solchen Cookies, überträgt der Browser diesen Datensatz zum Web-Server, zusammen mit der Seitenanfrage. Ein Cookie, der mit einer Seitenanfrage an einen Web-Server zurückgesendet wird, liefert lediglich die Information an den Server, die dieser ursprünglich an den speichernden Client-Browser übermittelt hat. Somit wird keine zusätzliche persönliche Information des Clients durch das Akzeptieren von Cookies zum Server verschickt.
  10.  

  11. wenn der Web-Server eine Anfrage verbunden mit einem cookie empfängt, so ist der Server durch die Daten des Cookies in der Lage sich an den Sender der Anfrage zu "erinnern" und relevante Informationen zu nutzen

 

 

      1. Inhalt eines Cookies

 

Ein Cookie wird durch Hinzufügen einer Zeile in den Header eines HTML-Dokumentes vom Web-Server zum Client geschickt. Dieser Header wird entfernt bevor das entsprechende HTML-Dokument angezeigt wird. So ist es für den Client nicht möglich, die Header-Zeile durch Ausführen der Browser-Kommandos "View, Source" oder "View, Document Source" sichtbar zu machen.

 

 

Die Syntax des Set-Cookie-Headers lautet:

 

Set-Cookie: NAME=VALUE; expires=DATE;path=PATH; domain=DOMAIN_NAME;

 

 

NAME und DOMAIN NAME sind Strings, die der Server setzt.

 

 

NAME=VALUE ist der Name des Cookies und sein Wert, es handelt sich um die Daten, die der Server zurückgesendet bekommt, wenn der Client-Browser eine weitere Seite anfordert

 

DATE ist ein Attribut welches die Lebensdauer des Cookies bestimmt. Sollte kein Datum angegeben sein, so wird der Cookie nur im Speicher gehalten und erlischt wenn die momentane Sitzung beendet wird, d.h. beim Beenden des Web-Browsers. Im Falle eines zukünftigen Datums wird der Cookie zu einem persistenten Cookie und wird in einer Datei gespeichert (s.o.). Sollte das DATE-Attribut für einen existierenden Cookie in der Vergangenheit liegen, so wird dieser gelöscht.

 

DOMAIN_NAME ist ein Attribut, das die Adresse des Servers enthält, welcher den Cookie verschickt hat und eine Kopie desselben empfängt, wenn der Browser des Clients eine erneute Anfrage stellt. Sein vorgegebener Wert (Default-Wert) entspricht dem Server, falls er nicht explizit in der Set-Cookie-Zeile gesetzt wird. DOMAIN NAME kann auch auf eine Subdomäne, die den Web-Server beinhaltet, verweisen, so daß mehrere Web-Server innerhalb der selben Subdomäne den Cookie empfangen können. Dies ermöglicht größeren Websites mehrere Server zu koordinieren, z.B. angenommen DOMAIN NAME ist definiert als www.meinedomain.com, dann könnten alle Server eins.www.meinedomain.com, zwei.www.meinedomain.com o.ä. den entsprechenden Cookie empfangen. Das Attribut DOMAIN NAME ist begrenzt, d.h. nur Hosts innerhalb der bestimmten Subdomäne können dafür einen Cookie für diese generieren und der Subdomänenname muß mindestens zwei oder drei dots enthalten. Zwei dots sind nötig falls die top-level-domain mit .COM, .EDU, .NET, .ORG, .GOV, .MIL, oder .INT endet. Drei dots sind für jede andere Domäne nötig.

Dies verhindert, daß die Subdomäne auf z.B. .COM gesetzt wird, der Subdomäne aller kommerziellen Domänen.

PATH ist ein Attribut, welches das Zurücksenden zum Server weiter spezialisiert. Wenn PATH gesetzt ist, so wird der Cookie nur zurückgesendet, falls DOMAIN NAME und PATH einer angefragten Seite entsprechen.

 

 

    1. Java und JavaScript
      1. Java
      2.  

        Java ist eine 1990 von Sun entwickelte objektorienterte Programmiersprache mit C++ - änlichen Strukturen.

        Die hervorragende Eigenschaft von Java ist es, plattformunabhängig eingesetzt werden zu können.

        Das zweite Hauptargument für den Einsatz der Java-Technik ist das später erläuterte Sicherheitskonzept. Ein weiterer Vorteil ist die einfache Nutzung von Java- oder JavaScript-Programmen — es entfällt jegliche Installations- oder Wartungstätigkeit.

        Abbildung 2

        1. Java-Applets
        2. Motivation für die Verwendung von JAVA-Applets im Internet ist der Gedanke, das Netz mit möglichst wenig Datentransfer zu belasten, da die Bandbreite der Datenleitungen vor allem für den privaten Endanwender derzeit noch den Flaschenhals der Informationübertragung darstellt. Statt große Datenblöcke vom Server zum Client zu übertragen, besteht für viele Anwendungen die Möglichkeit ein Programm zum Client zu übermitteln, der diese Daten auf der Client Maschine errechnet; als Beispiel sollen hier grafische Daten genannt sein, die herkömmlich als sperriges Image-Format übermittelt werden.

          Für Internetanwendungen werden kleine Java-Programme (Applets) vom Server zum Client übertragen und laufen dort auf der sogenannten Virtual Machine (VM) des Browsers ebenfalls plattformunabhängig ab, um Websites dynamischer, benutzerfreundlicher und interaktiver gestalten zu können.

          Java-Applets werden direkt im HTML-Dokument mit dem <Applet> - TAG referenziert.

          Ein ByteCode wird von einer sogenannten Virtual Machine (VM) unabhängig vom Betriebssystem zur Laufzeit auf der Client Maschine interpretiert.

        3. Java-Applications

        Java-Applikationen hingegen sind vom Browser unabhängig laufende Programme, die die VM des jeweiligen Betriebssystems nutzen und auch vollen Zugriff auf dieses genießen können.

         

      3. JavaScript
      4. 1995 wurde aus der Sprache LiveScript von Netscape JavaScript entwickelt.

        JavaScript als leistungsfähige Scriptsprache ist darauf ausgerichtet, WWW-Seiten flexibler zu gestalten. Funktionen und Objekte können vom Programmierer direkt in den HTML-Code eingebunden werden. So kann auf Eingaben des Benutzers unterschiedlich reagiert werden.

        Da JavaScript sehr eng mit HTML verknüpft ist benötigt man einen Browser, der JavaScript unterstützt.

        JavaScript dient als eine Art Bindeglied zwischen verschiedenen Techniken wie Java-Applets, Plug-In-Objekten, HTML etc. .

        JavaScript zeichnet ein sehr geringer Entwicklungsaufwand aus, als Entwicklungsumgebung genügt im einfachsten Fall ein Texteditor.

         

        Abbildung 3

         

      5. Java und JavaScript — Zwillinge die keine sind
      6.  

        Java und JavaScript können sich nicht ersetzen. Nur an wenigen Stellen gibt es Überschneidungen, die dem Entwickler dann die Wahl zwischen beiden Techniken lassen.

         

        JavaScript ist eine klassische Interpretersprache. Der Code wird menschenlesbar direkt in die HTML-Seite geschrieben und dann vom Browser interpretiert.

        Java-Sourcecode muß im Gegensatz dazu vor Gebrauch kompiliert werden. Dazu wird eine Entwicklungsumegbung benötigt, die einen Compiler zur Verfügung stellt.

        Im Falle eines Java-Applets wird der vom Compiler erzeugte Byte-Code via TCP/IP und Internet vom Server zum Client übertragen und dann im Browser durch die VM interpretiert werden.

        Java-Applets werden durch ein eigenes TAG (<APPLET>) aufgerufen. Das kompilierte Programm befindet sich auf Serverseite in einer separaten Datei und endet mit .class .

         

      7. Die Sicherheit
      8. Sowohl bei Java-Applets als auch bei JavaScript gibt es restriktive, der Sicherheit dienende Beschränkungen. Java-Applets dürfen von der Grundidee her nicht auf Systemresourcen zugreifen. Somit sollen beispielsweise ungewollte oder nicht nachvollziehbare Schreib/Lesetätigkeiten ausgeschlossen werden.

        In diesem Zusammenhang wurde der Begriff "sandbox" geprägt, der aussagt, daß sich Java ausschließlich in Ihrem "Sandkasten", dem durch die VM vom Rest des Systems abgetrennten Bereich, aufhalten, agieren und diesem auch nicht entfliehen können. Für JavaScript gilt dies uneingeschränkt.

        Java-Applets können diese Beschränkungen allerdings in Abhängigkeit von einem ausgeklügelten Zertifizierungskonzept, daß es dem Nutzer, analog zu den im Abschnitt ActiveX beschriebenen Verfahren, überläßt, ob er einem signierten Applet bzw. dessen Absender vertraut und es vollem Zugriff auf Systemresourcen erlaubt, umgehen.

         

        Mit der Umsetzung des Java Delevopment Kits (JDK) in der Version 1.2. sollen verschiedene Sicherheitsstufen eingeführt werden, in denen eine differenzierte Freigabe von Systemresourcen ermöglicht wird. Derzeit ist dies nur mit einem Plug-In für Netscape 4.x bzw. mit einem ActiveX-Control für MSIE ab 4.x realisierbar.

        Allerdings ermöglichen auch schon die vorangegangenen JDK-Versionen dedizierten Zugriff auf einige Betriebssystemdienste, beispielsweise können Druckjobs ausgeführt werden.

         

      9. ..und Ihre Lücken
      10. Da mit Java und JavaScript Programme erstellt werden, die auf dem Rechner des Benutzers ausgeführt werden, gab es immer wieder Bedenken in Hinsicht auf die Sicherheit dieser beiden Techniken. Häufig werden die Programme ausgeführt, ohne daß der Benutzer dies zur Kenntnis nimmt. Java und JavaScript besitzen aber wie erwähnt auf Grund Ihrer Konstruktion gute Mechanismen, die den Anwender vor Mißbrauch schützen sollen.

         

        In der Vergangenheit erwies sich allerdings des öfteren ein Mangel in der Qualität der Virtual Machines, die von Browser- und Betriebssystemherstellern in mehr oder minder genauer Anlehnung an die von Sun veröffentlichten JDK-Sourcen entwickelt wurden und werden. Aber auch die VM Suns wies nachweislich Schwächen auf.

         

        JavaScript bietet zwei Möglichkeiten mit Hilfe des Browsers als "Interface" auf systeminterne Daten Zugriff zu erlangen:

         

        1. Cookies

 

        1. submit()

Der Browser sollte die Versendung von E-Mails, ohne daß der Benutzer davon Kenntnis nimmt, verhindern. Dennoch gibt es diese Sicherheitslücke.

Mit der Methode submit() können automatisch Formulare verschickt werden. Seit Netscape Navigator 3.0 gibt es einen Sicherheitsmechnismus, der den Benutzer durch ein Popup-Fenster warnt, sobald versucht wird, mit submit() Daten zu verschicken. Der Text des Popup-Fensters wiederum kann mittels JavaScript ohne Schwierigkeiten verändert werden. Somit können ungewollt unsichtbare Formulare versandt werden.

 

 

    1. ActiveX
    2.  

      ActiveX ist die Antwort Microsofts auf Java. Im Gegensatz zu Java ist ActiveX kein klar abgegrenztes System, sondern eine Sammlung bereits existierender Microsoft Technologien.
      ActiveX sind Objekte des Microsoft Component Object Models (COM).
      Das bereits kompilierte Programm, das sogenannte ActiveX-Control wird im Internet vom Server zum Client übertragen und wird dort, schneller als Java aber nicht plattformunabhängig, sondern nur auf Microsoft-Betriebssystemen ausgeführt.

      Ansonsten ist die Motivation ähnlich wie bei Java zu verstehen, die Datenlast soll dem Netz entnommen werden und soweit möglich als Rechenleistung auf die Client Maschine verlagert werden; Websites können dynamischer, benutzerfreundlicher und interaktiver gestaltet werden, weit über die Möglichkeiten eines Java-Applets hinaus.

      Diese fast uneingeschränkten Möglichkeiten eines ActiveX Controls werden allerdings mit einem schwächeren Sicherheitskonzept erkauft.

      Faktisch ist ein ActiveX Control beispielsweise ein VisualBasic - oder C++ - Executable, das als .ocx vom Server geladen wird, sich auf dem Client in der registry einträgt und die Möglichkeit hat, durch OLE auf alle Betriebssystemresourcen zugreifen zu können.

      Als Schnittstelle zum Betriebssystem verwenden ActiveX-Controls die Windows API, somit ist nicht wie bei Java ein Experte vonnöten, um Anwendungen zu entwickeln.

       

      1. Sicherheit durch Vertrauen

       

      In Bezug auf die Sicherheit werden keine technischen Konzepte wie zum Beispiel das Sandbox-System Javas eingesetzt, stattdessen setzt Microsoft auf die Nachvollziehbarkeit der Herkunft des heruntergeladenen Codes durch Code-Signierung.

      Die von Microsoft selbst entwickelte Authenticode Technologie wird hierbei zur Code-Signierung eingesetzt. Diese Technologie beruht auf bekannten Verfahren der digitalen Signatur und erlaubt den Nachweis der Echtheit des übertragenen Codes, sowie die Identifikation des Absenders. Aus dem zu signierenden Code wird über einen Hash Algorithmus eine Art "Fingerabdruck" des Codes erstellt, der mit dem Schlüssel des Herstellers verschlüsselt wird und dann die Signatur des Codes bildet. Der Web-Client bildet den Fingerabruck des empfangenen Codes nach, entschlüsselt die mitgelieferte Signatur mit dem öffentlichen Schlüssel des Herstellers und vergleicht die Ergebnisse. Die notwendigen Identitäts- und Schlüsselinformationen werden in X.509 v3 konformen Zertifikaten gemeinsam mit dem Code und der Signatur an den Client übertragen, wobei die Echtheit des Herstellerzertifikates wiederum durch eine digitale Signatur der ausstellenden Zertifizierungsstelle nachgewiesen werden kann.

      Im Endeffekt aber muß sich der Nutzer einfach entscheiden, ob er dem Anbieter eines ActiveX Controls trauen will oder nicht. Microsoft erlaubt auch unterschiedliche "Stufen des Vertrauens", die sich auf einzelne Funktionalitäten, Anbieter oder sogar Server beziehen können, und die je nach Wertigkeit einen mehr oder weniger vollständigen Zugriff des ActiveX-Controls auf die Betriebssystemresourcen erlauben.

       

      Durch ActiveX hat der Entwickler alle Freiheitsgrade programmtechnischer Ausdrucksmöglichkeiten und volle Kontrolle über die Ressourcen der Zielumgebung.

      Bei Ausführung eines mit allen Rechten ausgestatteten ActiveX-Controls besitzt dieses genau die Zugriffserlaubnis des gerade angemeldeten Benutzers auf das System.

      Innerhalb von ActiveX wurde wie erwähnt auf restriktive Mechanismen von Sicherheitssystemen verzichtet.

       

    3. Session Identity
    4.  

      Der einfachste Weg zur Gewährleistung von Statusinformationen ist das Anhängen an die URL. Angenommen es soll eine Identifizierungsnummer (ID) über mehrere unterschiedliche Seiten erhalten werden, dann wäre ein Anhängen dieser an die URL, entweder durch Voransetzen eines Fragezeichens (QUERY_STRING Variable) oder eines Slashs (PATH_INFO Variable) durchfürbar.

       

      http://myserver.org/cgi-bin/form?12345

       

      http://myserver.org/cgi-bin/form/12345

       

      Ist das Speichern zwei unterschiedlicher Werte nötig, z.B. Name und ID, kann man beide Methoden verwenden.

       

      http://myserver.org/cgi-bin/form/Bob?12345

       

      In diesem Fall wird Bob in PATH_INFO und 12345 in QUERY_STRING gesichert.

       

      Das Erhalten von Information durch URLs ist nützlich, da es keinen Einsatz von Formularen fordert. Zustände können durch Anhängen von Statusinformationen an alle URLs innerhalb eines Dokumentes aufrechterhalten werden.

      Ist z.B. eine der vorher genannten URLs gegeben, so muß man die Seite lediglich folgendermaßen referenzieren, um den Status zur nächsten zu übergeben.

      print "<a href=\"/cgi-bin/form?$ENV{'QUERY_STRING'}\">Next page</a>\n";

       

      Der Einsatz von Umgebungsvariablen hat den Nachteil, daß es eine Obergrenze, sowohl für die Länge der URL, als auch für die Speichergröße der Umgebungsvariablen existiert. Für große Datenmengen ist der Einsatz von Umgebungsvariablen nicht zufriedenstellend.

    5. Hidden fields
    6.  

      In der HTML-Programmierung werden Formulare verwendet, die vom Web-Surfer ausgefüllt werden können, um Informationen zur Serverseite zu übermitteln. Die meisten der erzeugten Felder dieser Formulare sind für den Client sichtbar, es kann jedoch auch eine separate Klasse von "unsichtbaren" Feldern vom HTML-Programmierer benutzt werden, um weitere Daten, wie z.B. die Identität des Users oder Session-Informationen zu halten und zu folgenden Formularen weiterzuleiten. Diese Art der Übermittlung von Informationen durch "hidden fields" kann als simpelste Methode des Statuserhaltes einer HTTP-Sitzung angesehen werden.

       

      Der HTML Code für ein "hidden field" würde ungefähr so aussehen:

       

      <INPUT TYPE="HIDDEN" NAME="customerid" VALUE="c245-345">

       

      Durch den Wert (VALUE) eines HTML-Form-Input-Felds vom Type HIDDEN können

      Statusinformationen zwischen Browser und Server ausgetauscht werden

       

      Das Konzept ist ähnlich wie bei Umgebungsvariablen, welche Größenbeschränkungen unterliegen. Anstatt Umgebungsvariablen an die zur URL gehörigen Referenzen anzuhängen, wird die Statusinformation im Formular durch Nutzen der <input type=hidden> Information eingebettet.

       

      Nehme man z.B. an, es existiert ein Abfrage mittels zwei Formularen. Wenn man den "Submit"-Button im zweiten Formular anklickt so wird die Übertragung von Informationen aus beiden gewünscht.

       

      Der erste Teil könnte folgendermaßen aussehen:

       

      <form method=POST>

      <p>Enter your name: <input name="name"><br>

      Enter your age: <input name="age"></p>

       

      <p><input type=submit></p>

      </form>

       

      Wenn man "Submit" klickt werden die Werte für name und age zum CGI-Programm transferiert. Das CGI-Programm sollte das zweite Formular mit der durch das <input type=hidden> Tag eingebetteten Information zurücksenden.

       

       

      <form method=POST>

      <!–Statusinformation aus dem ersten Formular -->

      <input type=hidden name="name" value="Corwyn">

      <input type=hidden name="age" value="21">

       

      <!–Zweites Formular -->

      <p>What kind of cola do you like? <input name="cola"><br>

      Do you like soccer? <input type=radio name="soccer" value="yes"> Yes

      <input type=radio name="soccer" value="no"> No<br>

      Have you ever been to Highland Park, NJ?

      <input type=radio name="NJ" value="yes"> Yes

      <input type=radio name="NJ" value="no"> No</p>

       

      <p><input type=submit></p>

      </form>

       

      Wenn dieses zweite Formular eingereicht wird, so erfolgt eine Übermittlung von Informationen aus dem ersten und zweiten Formular.

      Auch wenn diese Methode die Einschränkung von Umgebungsvariablen umgeht, so verursacht sie wieder neue Einschränkungen: Man kann "hidden fields" nur verwenden, falls die Applikation Formulare verwendet. Jedoch benutzen nicht alle CGI-Applikationen, die Statusinformationen benötigen, Formulare. Eine Formularverwendung ist manchmal unerwünscht, da sie unnötige Komplikationen in der CGI-Programmierung verursachen können.

       

      "Hidden fields" können durch die Option "View Source" im Browser ausfindig gemacht werden.

      Diese versteckten Daten sind zugänglich und können manipuliert werden, bevor ein Formular an ein CGI-Skript weitergereicht wird.

       

      Während der initialen Verbindung zum Server enthält die gesendete HTML-Seite den identifizierenden "hidden field"-Wert innerhalb der FORM-Seite. Eine nun folgende, vom Browser an diesen Server ausgehende HTTP-CGI-Anfrage wird so auch das "hidden field" enthalten. Das korrespondierende Common Gateway Interface beim Server kann dasselbe "hidden field" an den Browser zurückgeben. So dient es als "session identifier" zwischen einer Applikation (z.B. Warenkorb) und dem Browser.

    7. Session Files
    8.  

      Die beiden vorher beschriebenen Methoden ermöglichen keine Erhaltung von Statusinformationen über mehrere Sitzungen (sessions). Angenommen, es wird während einer Sitzung der Browser beendet, so verliert man sämtliche Daten, die vorher in Formulare eingegeben wurden. Entsprechendes gilt für ungewollte Systemabstürze oder Sitzungsunterbrechungen, die das erneute Ausfüllen sämtlicher Formulare unumgänglich machen würde.

       

      Das Anlegen von Dateien sog. session files ermöglicht das Umgehen dieser Schwierigkeiten und versetzt die Serverseite Statusinformationen über mehrere Sitzungen hinweg zu erhalten. Anstatt Informationen in Umgebungsvariablen oder Formularen zu speichern, werden sie in Dateien auf dem Server gespeichert. Eine Applikation hat Zugang zu bereits erhalten Informationen miitels Zugriff auf die entsprechenden session files. Bei diesen Dateien kann es sich um Textdateien, Verzeichnisse von solchen oder um Datenbanken handeln.

       

      Der Gebrauch von session files erfordert dennoch das Weiterreichen von identifizierenden Attributen des session files von Zustand zu Zustand der Applikation durch Einsatz einer der vorher beschriebenen Methoden. Jedoch ist das Wiederherstellen von Statusinformationen durch das Erinnern an die Sitzungs-ID nach Verlassen einer vorangegangen Web-Sitzung möglich.

       

      Beispiel: Eine vorteilhafte Methode zum Erstellen einer (fast) eindeutigen Sitzungs-ID ist der Gebrauch der Zeitfunktion. In Perl sähe der Code folgendermaßen aus:

       

      $sessionID = time;

       

      Durch Anfügen einer Prozeß-ID auf UNIX-Rechnern könnte Eindeutigkeit erreicht werden.

       

      $sessionID = time."-".$$;

       

       

      Der Einsatz von session files birgt ein gewisses Risiko, da theoretisch ein User eine Sitzungs-ID eines anderen schätzen könnte und so in der Lage wäre, dessen Statusinformationen zu ermitteln. Jedoch ist es möglich, durch mehrere Schritte zu sichern, daß lediglich der autorisierte User Zugang zu seinen eigenen Informationen hat. Es ist von Wichtigkeit, Sitzungsinformationen einzubeziehen, auch wenn sie nach Terminierung des CGI-Programmes gelöscht werden.

       

      Angenommen die erste Seite einer Applikation ist einen Login-Applikation, welche nach dem Benutzernamen und einem Passwort fragt. Nach Eingabe und Bestätigung der der beiden Informationen durch den User fügt die Applikation diese dem session file hinzu und generiert eine assoziierte Sizungs-ID. Um Zugang zu dieser oder zum entsprechenden session file zu gewährleisten, ist eine Wiederbestätigung von Benutzername und Passwort nötig.

       

      Einen anderer Nachteil des Einsatzes von session files ist das Hinterlassen von nicht zugeordneten Dateien auf dem Server. Nachdem ein User begonnen hat, ein Formular mit Daten zu füllen, kann eine CGI-Applikation nicht erkennen, ob der User die Eingabe unterbrochen bzw. beendet hat. So oder so wird die Datei auf dem Server gehalten. Auch dieser Nachteil läßt sich beheben, indem man z.B. ein Programm erzeugt, welches regelmäßig das Säubern von Dateien, die älter als ein Tag sind, veranlaßt.

       

    9. Plug-ins
    10.  

      Plug-ins erweitern die Funktionen des Browsers, indem Sie beispielsweise den Browser als Interface für eine für ihn eigentlich nicht zu verarbeitende Datei nutzen und nach einmaliger Installation das entsprechende Format immer automatisch nach Abruf vom Server verarbeiten.

      Eine andere Möglichkeit des Einsatzes ist der integrierte Einsatz, um zum Beispiel die Kommunikation zwischen einer C++ - Anwendung, dem Browser und HTML-integriertes JavaScript zum Zwecke einer Expertensystem gestützten Hilfsfunktion für den Anwender zu gewährleisten.

       

      Das Sicherheitskonzept, welches die Möglichkeiten zum Mißbrauch des Web-Browsers einschränkt, erstreckt sich nicht auf die Aktivitäten dieser Zusatzmodule, denen praktisch keinerlei Beschränkungen auferlegt sind.

       

    11. Common Gateway Interface — Serverseitiges skripten mit CGI

 

Das Common Gateway Interface, oder CGI, ist ein Interface, um externe Programme oder Gateways unter Steuerung eines Informationsservers ablaufen zu lassen. Ein CGI-Programm läuft in Echtzeit ab, reagiert so auf Client-Informationen, dient als Interface zu anderen Anwendungen auf Serverseite und ermöglicht die Ausgabe von dynamischen HTML-Seiten.

 

Gateways sind als Programme zu bezeichnen, die Informationsanforderungen behandeln und entsprechende Dokumente als Ergebnis liefern oder "on the fly" generieren. Mit CGI kann der Server Informationen behandeln, die in einer für den Client-User nicht lesbaren Form (z.B. eine SQL Datenbank) vorliegen. Das CGI Programm funktioniert somit als Gateway zwischen den beiden und erzeugt etwas, das der User nutzen kann.

 

Gateways können für verschiedenste Zwecke benutzt werden - eine häufige Anwendung ist die Behandlung von <ISINDEX> und <FORM> Anforderungen für HTTP.

Einige Beispiele für die Anwendung von CGI:

Bereitstellen von HTML Formular Menüs für Bemerkungen des Nutzers über Ihren Server und der zugehörige CGI Dekoder.

 

Gatewayprogramme oder Skripts sind ausführbare Programme, die selbständig ablauffähig sind (wofür sie jedoch nicht geschrieben werden). Sie wurden als externe Programme spezifiziert, damit sie unter verschiedenen (möglicherweise auch sehr verschiedenen) Informationsservern austauschbar sind.

Gateways, die zu dieser Spezifikation konform sind, können in einer beliebigen Sprache, die ein ausführbares File erzeugen kann, geschrieben sein. Eine Auswahl häufig verwendeter Skriptprachen seien hier genannt:

 

Die folgende Abbildung illustriert den Datenfluß, wenn durch eine Clientanfrage eine CGI-Applikation initiiert wird. Die durchgehenden Linien zeigen den Datenfluß durch HTTP und CGI. HTTP transferiert Daten vom Client zum HTTP-Server und zurück. Die CGI-Mechanismen kontrollieren den Datenfluß vom Server zu den Gateway-Applikationen (Dreieck) und zurück. Diese werden Gateway-Applikationen bezeichnet, da sie generell als Verbindung zwischen WWW und serverseitigen Ressourcen, wie Datenbanken, Formulare etc., agieren.

Abbildung 4

      1. Active Server Pages

 

Basis der Microsoft Internet Technologie sind die Active Server Pages. ASP gelten als CGI-Anwendungen, sind jedoch um einiges leichter zu implementieren und deutlich leistungsfähiger als die genannten klassischen Skriptsprachen, da sehr viele Funktionen standardmäßig vorhanden sind. Weiterhin lassen sich ohne Probleme ActiveX - Module integrieren, die die Leistungsfähigkeit der Anwendung noch zusätzlich erhöhen können. Die Dateiendung von ASP ist .asp.

Voraussetzung für den Einsatz von ASP ist

 

 

Der Source-Code, der in den HTML-Code "eingebaut" wird, besteht im wesentlichen aus drei Komponenten:

 


Typischer ASP Code ist in HTML Code eingebettet und sieht so aus:

<% response.write("HELLO WORLD") %>

Der Code der zwischen <% und %> steht wird auf Server Seite abgearbeitet. Der Client erhält nur normalen HTML Code:

HELLO WORLD

 

Die Vorteile der ASP-Methode liegen in der CGI-typischen absoluten Browserunabhängigkeit, hohen Performance und einfachen Programmierbarkeit dynamischer HTML-Seiten, ganz im Gegensatz zum Beispiel zur Programmierung von Perl-Scripten auf UNIX-Plattformen.

Der Quellcode bleibt dem Nutzer vollständig verborgen, da der Browser (und damit der Benutzer) als Ergebnis nur den reinen HMTL Code erhält.

Ein Hauptanwendungsgebiet der ASP-Entwicklung ist der Datenbankzugriff. Über ODBC kann nahezu jede gängige Datenbank im Browser dargestellt oder editiert werden.

        1. ASP und ActiveX

 

ActiveX-Serverkomponenten wurden zum Ausführen auf Webservern als Teil einer webbasierten Anwendung entwickelt. Die Komponenten stellen allgemeine dynamische Funktionen zur Verfügung, z.B. für den Datenbankzugriff, so daß diese Funktionsmerkmale nicht neu oder wiederholt erstellt werden müssen.

Komponenten werden im Allgemeinen von .asp-Dateien aufgerufen. Sie können die Komponenten aber auch über andere Quellen aufrufen, z.B. über eine ISAPI-Anwendung, eine andere Serverkomponente oder andere OLE-kompatible Sprachen.

Active Server Pages enthalten fünf ActiveX-Serverkomponenten:

stellt Ihren Skripten eine Beschreibung der Merkmale des auf dem Client verwendeten Web-Browsers zur Verfügung.

Wenn ein Browser eine Verbindung zum Web-Server herstellt, sendet er automatisch einen User Agent-HTTP-Header. Dieser Header ist eine ASCII-Zeichenfolge, anhand derer der Browser und seine Versionsnummer identifiziert werden. Die Komponente Browser-Merkmale vergleicht den Header mit den Einträgen in der Datei Browscap.ini.

Wird eine Übereinstimmung gefunden, übernimmt die Komponente Browser-Merkmale die Eigenschaften des Browser-Listeneintrags, der mit dem User Agent-Header übereinstimmt.

Wenn die Komponente keine Übereinstimmung für den Header in der Datei Browscap.ini findet, verwendet sie die Browser-Standardmerkmale.

Durch einfaches Aktualisieren der Datei Browscap.ini können Sie dieser Komponente Eigenschaften und neue Browser-Definitionen hinzufügen.

 

        1. Sicherheitsaspekte

Mit den Sicherheitstechniken die Windows NT und der IIS zur Verfügung stellen, kann ein durchaus sicherer und den Ansprüchen der Nutzer angepaßter Sicherheitsplan erstellt werden.

 

Benutzer, die eine ASP-Seite anfordern, müssen über die entsprechenden Berechtigungen zum Anzeigen der Seite verfügen.

Eine ASP-Seite wird im Zugriff gesichert, indem Zugriffsberechtigungen für virtuelle Verzeichnisse festgelegt und Dateizugriffsberechtigungen (bei NTFS-Partitionen unter Windows NT) für die ASP-Dateien und -Ordner definiert werden.

Websites können geschützt werden, indem man ein SSL- oder ein PCT-Clientzertifikat anfordert. Auf diesem Weg können die übertragenden Daten auch verschlüsselt werden.

 

 

  1. Der Browser — Fenster zur Welt mit Bruchgefahr
  2.  

    Neben den genannten Möglichkeiten, auf herkommlichem Wege Daten über den Besucher einer Website zu sammeln, erlauben fehlerhaft programmierte Anwendungen das Ausspähen, Verändern oder Löschen hochsensibler Nutzerinformationen, im schlechtesten Fall den vollen Zugriff auf den gesamten Festplatten-Datenbestand und Kontrolle über das Betriebssystem. Dies geschieht im Regelfall durch Mißbrauch der Java, JavaScript oder ActiveX — Funktionalitäten der Browser.

    Die Security Support Seiten von Netscape und Microsoft bezüglich Ihrer Browser-Produkte müssen beinahe täglich aktualisert und Patches zur Behebung der gröbsten Mängel bereitgestellt werden, ist jedoch ein Fehler bereinigt, tritt meistens schon der nächste auf.

    Bis dato wies jede Browsergeneration erhebliche Sicherheitsmängel auf, der daraus für den individuellen Nutzer entstandene Schaden läßt sich in keiner Weise abschätzen. Es muß davon ausgegangen werden, daß dies auch in Zukunft weiter so der Fall sein wird.

    Daher scheint eine Betrachtung der diesbezüglichen Möglichkeiten nicht vernachlässigbar und auch für spätere Schlußfolgerungen nicht ohne Bedeutung zu sein. Die im folgenden genannten Fallbeispiele geben an dieser Stelle nur einen kleinen und unvollständigen Einblick in die schnellebige Welt des Kreislaufs Sicherheitslücke finden ó Sicherheitslücke schließen.

    Aber auch jenseits des Einsatzes genannter Technologien weisen Browser sicherheitsrelevante Fehler auf, die abschließend in zwei Beispielen Erwähnung finden.

     

     

    1. Java / Javascript
    2.  

      1. Sohr Java Vulnerability
      2. Betrifft: Netscape 4.0 und höher, die von Microsoft verwendete VM scheint nicht betroffen zu sein.

         

        Problem: Ein Fehler in Suns Java Virtual Machine (VM). Java-Applets, die nicht digital signiert sind und vom Anwender spezielle Rechte zugebilligt bekommen haben, dürfen eigentlich nicht auf die Festplatte eines Computers zugreifen - sie sollen in einer abgeschotteten Umgebung laufen, in der sie keinen Schaden anrichten können. Sun hat dieses Konzept "Sandbox" getauft. Die Implementierung scheint aber einen Bug zu enthalten, der auch nicht-signierten Applets erlaubt, die Sandbox zu verlassen. Ein Demo-Applet soll in der Lage sein, ohne Warnhinweis Dateien auf der Festplatte zu löschen. Sun und Netscape haben nach Sohrs Angaben bereits bestätigt, daß es sich um einen schwerwiegenden Implementierungsfehler handelt, und arbeiten an Bugfixes.

         

        Lösung: Deaktivieren von Java

         

      3. The Injection Bug
      4. Betrifft: Navigator 3.x und Communicator 4.0 — 4.7, des Communicator 4.5 Betaversionen

         

        Problem: Verwalter von besuchten Sites können durch den Injection bug das Surfverhalten des Users nachvollziehen, Cookieinformationen und Verzeichnis- bzw. Dateinamen vom Rechner des Users ermitteln, auch wenn präzise Annahmen über das System des Nutzers gemacht werden müssen. Das Bestimmen des Inhaltes von Dateien sowie das Löschen dieser sind nicht möglich.

         

        Lösung: Da der Bug auf JavaScript basiert, ist er durch Deaktivieren dieses Features zu vermeiden.

         

      5. The Frame-Spoofing Vulnerability

      Betrifft: alle Navigatorversionen, die Frames unterstützen, incl. Version 2.0 und später 3.x und Communicator 4.0 — 4.7, des Communicator 4.5 Betaversionen

       

      Problem: Ein Frame eines angezeigten Framesets ist nicht Bestandteil der eigentlichen Webseite, sondern von Dritten dort plaziert und kann von diesen dazu mißbraucht werden, den User auf fremde Sites zu locken. Dies kann durch das Wählen eines Links in diesem Frame erfolgen. Weiterhin kann durch Versenden von Spam-Mail an einen JavaScript-aktivierten Mail-Client, wie dem Netscape Messenger, die selbe Absicht verfolgt werden.

       

      Das Aktivieren der Frame-Spoofing-Attacke benötigt kein JavaScript, doch ist zum Erreichen des Ziels JavaScript notwendig (Die fremde Seite muß bereits geöffnet sein, um den User zum Klicken des Links zu verlocken).

       

      Lösung: JavaScript deaktivieren

       

       

    3. ActiveX
    4.  

      1. "DHTML Edit Control" Bug

       

      Betrifft: Internet Explorer

       

      Problem: Web-Site Administratoren könnten Informationen lesen, die ein User in das ActiveX-Control geladen hat. Außerdem ist es möglich, Dateien mit bekannten Namen von der Festplatte des Users kopiert werden.


    5. Browserfehler
    6.  

      1. Microsoft
      2.  

        1. "MSHTML" Vulnerability
        2.  

          Betrifft: MS Internet Explorer 3.x, 4.01, 5 für Windows

           

          Problem: Das "IMG SRC"-Tag (HTML-Befehl) kann benutzt werden, um Informationen über Dateien des Users zu erlangen, jedoch nicht zum Lesen oder Ändern dieser Dateien. Weiterhin besteht die Möglichkeit eines Web-Site Administrators Skripte zu starten und Rechte auf User-Rechnern zu erwerben, die normalerweise nur den vom User befugten Sites bewilligt werden. Auch Inhalte der Zwischenablage auf dem Rechner des Users können eingesehen werden.


        3. AutoVervollständigen
        4.  

          Betrifft: Internet Explorer 5 für Windows

           

          Problem: Das AutoVervollständigen-Feature speichert die vorherigen Eingaben von Webadressen, Formularen und Kennwörtern. Wenn in eines dieser Felder Informationen eingegeben werden, schlägt AutoVervollständigen mögliche Übereinstimmungen vor.Diese Daten werden verschlüsselt auf dem Rechner gehalten. Die Möglichkeit einer ungewollten Dateneingabe und -übermittlung ist vorbehalten.

           

        5. Registriernummer

         

        Betrifft: Internet Explorer 5 für Windows

         

        Problem: Läßt ein Nutzer seinen MSIE 5 bei Microsoft offiziell registrieren, so erhält er nach Angabe seiner persönlichen Daten und dem Vorteil spezieller Supportleistungen eine eindeutige Identifikationsnummer. Danach wird bei jedem Besuch auf einer Microsft-Site diese Nummer an den Server übertragen.

         

         

         

      3. Netscape
        1. Preferences Bug
        2. Betrifft: Netscape Communicator 4.0 bis 4.04 auf allen Plattformen

           

          Problem: Möglichkeit für Web-Site Administratoren die Datei "prefs.js" zu lesen (unter Annahme des Pfadnamens). In dieser Datei können sich E-Mail-Adressen, Domainnamen und Paßwörter befinden.

           

          Lösung: Deaktivieren der Option "Remember Password" in der Dialogbox zum Mailserver.

           

           

           

        3. Smart Browsing

       

      Betrifft: Netscape ab Version 4.06

       

      Problem: Bei Aktivierung des "What's related" button wird ein "Schatten" aktiviert. "Smart Browsing" meldet von da an die URL jedes abgerufenen WWW-Dokuments einem Rechner von Netscape weiter, wo sie abgespeichert wird. "Smart Browsing" unterscheidet nicht zwischen Inter- und Intranetdokumenten. Dies heisst, dass auch die Http-Adressen vertraulicher Dokumente, die etwa vom Intranet- Server einer Firma abgerufen werden, letztendlich an Netscape gehen. Wenn man bedenkt, dass die betreffende Intranet-Adresse sehr häufig den Titel des Dokuments in sich trägt, dann ist dies doppelt gefährlich. Zum einen sammeln sich auf einem Rechner der Firma Netscape peu a peu die Inhaltsverzeichnisse diverser Firmen-Intranets an. Zum anderen können die Netscape-"Schatten" durch Einsatz eines sogenannten "Network Sniffer" auch durch Dritte abgefangen werden.

       

       

       

    7. Browsereinstellungen
    8.  

      Die Browsereinstellungen geben dem Web-User ein mächtiges Werkzeug in die Hand, selbst zu bestimmen, welche Funktionen sein Browser im Netz ausüben soll und welche nicht. Er besitzt damit die Möglichkeit, ganz spezifisch ihm aus bestimmten Gründen nicht erforderliche erscheinende oder suspekte Features die vom Client ausgeführt werden, zu beschneiden bzw. auszuschalten.

      Eine Funktion allerdings, die auf der einen Website nicht vonnöten ist, kann auf einer anderen wiederum unerläßlich schon zur einfachen Ansicht sein, so daß sich ein nicht einfach zu bewältigender Zwiespalt zwischen Sicherheitsaspekten und komfortablem Informationszugriff eröffnet.

      Zudem verwenden heute alle größeren Web-Sites zumindest JavaScript und Cookies, weniger gebräuchlich aber ebenfalls verbreitet sind Java-Applets, wohin gegen ActiveX-Controls durch den noch großen Marktanteil des Netscape Browsers für den WWW-Nutzer eine weniger große Bedeutung haben.

      Die Konfigurationsmöglichkeiten der zwei gebräuchlichsten Browser sollen hier kurz reflektiert werden.

      1. Netscape Navigator 4.08 (letzte Browser stand-alone Version)
      2.  

        Die wichtigsten Einstellmöglichkeiten sind in folgendem Fenster konzentriert:

        Abbildung 5: Erweiterte Einstellungen bei Netscape

        Dies sind die Default - Einstellungen nach einer Erstinstallation des Browsers.

        Wie zu sehen, sind alle Funktionalitäten zugelassen, mit der Ausnahme, daß bei Anmeldung auf einer FTP-Site nicht die im Browser eingetragene e-mail Adresse zur Authentifizierung verwendet wird.

        Das Fenster an sich widerum besticht durch seinen einfachen und übersichtlichen Aufbau.

         

      3. Microsoft Internet Explorer 5.0

     

    Im Gegensatz zu Netscape verfolgt Microsoft das Konzept verschiedener Sicherheitsstufen. Durch einen Schieberegler kann der Nutzer verschieden definierte Zustände konfigurieren, wie sich der Browser im Netz verhalten soll.

    Das Niveau differiert hier zwischen Sehr niedrig, Niedrig, Mittel und Hoch, kurze Erklärungen werden dem Anwender neben der Levelanzeige zur Verfügung gestellt.

    Diese Einstellungen können dediziert für Internet und Intranet oder für verschiedene Sites vorgenommen werden.

     

     

    Abbildung 6: Sicherheits-Schieberegler beim IE 5

     

    Ein eingestelltes Sicherheitsniveau kann durch die Funktion "Stufe anpassen" detailliert in einer umfangreichen Liste den Benutzerwünschen angepaßt werden.

     

    Abbildung 7: Erweiterte Sicherheitseinstellungen beim IE 5

     

     

     

     

     

     

     

    In den erweiterten Einstellungen läßt sich das Verschlüsselungs- und Signierungskonzept anpassen.

     

     

     

    Abbildung 8: Verschlüsselungsoptionen

     

  3. Ausblick

 

Die Vielfalt und Menge der Daten, die der Nutzer im Netz sowohl meist unbewußt auf Grund der aufgezeigten Techniken, die bei der Client-Server Interaktion zwischen Anbieter und Kunde im Internet Verwendung finden, als auch bewußt hinterläßt, indem beispielsweise bestimmte Dienstleistungen in Anspruch genommen werden, bieten dem eCommerce Betreiber unter Einsatz moderner Data Mining Werkzeuge die Möglichkeit, strategisch relevante Informationen zu extrahieren.

 

 

 

Abbildung 9: Datenverwertung von Aquisition bis Wissensgenerierung

 

 

 

 

Unternehmen sammeln Daten auch auf verschiedenen anderen Wegen, um Ihr Wissenspotential gezielt zu erweitern und zu vervollständigen. So gehören Weitergabe und Kauf von diesbezüglichen Informationen zum heutigen Tagesgeschäft, und auch die Entscheidung zur Übernahme eines Mitbewerbers wird zumindest von der Verwendungsmöglichkeit der anliegenden Daten beeinflußt.

Nicht außer acht gelassen werden sollte die zunehmend schwierigere Lage, in der sich der Nutzer befindet. Einerseits erfordert eine komfortable Ansicht der Internet Angebote eine Freigabe vieler sicherheitsrelevanter Funktionen des Browsers, so daß an dieser Stelle praktisch ein Zwang zum Opportunismus ausgeübt wird, andererseits entsteht durch technische und fachspezifische Diskussionen über Sicherheitsprobleme im Internet und die auch für Fachleute schwer zu bewältigende Flut von themenbezogenen Informationen zunehmend Verunsicherung über den unbeschwerten Gang ins Internet.

Besonderes Augenmerk sollte der eCommerce-Anbieter darauf legen, daß der Einsatz der beschriebenen Techniken auch für ihn ein nicht unbeträchtliches Gefahrenpotential beinhaltet. Das böswillige Eindringen in eCommerce-Systeme durch versierte Nutzer, kann Anbieter und Kunden gleichermaßen Schaden in nicht unbeträchtlichem Maße zufügen. Die bei der Verwendung oben genannter Techniken angelegten Sicherheitsmaßstäbe sollten daher höchsten Ansprüchen genügen. Der eCommerce-Anbieter vermeidet auf diesem Wege leicht, in den Verruf der Unseriösität zu geraten.

Eine Reaktion auf die beschriebenen Relationen ist das vermehrte Angebot von Anonymisierungswerkzeugen, die zum Schutz des Nutzers seine Datenspur im Internet verwischen sollen.

Aufgrund der aufgezeigten existierenden Unsicherheiten für die Beteiligten gilt daher eine besondere Sorgfaltspflicht bei der Erfassung, Speicherung und Verwertung relevanter Daten.