Phasen bei Aufbau und Betrieb einer Infrastruktur für Context Computer Heinz-Jürgen Burkhardt / Rainer Prinoth In unserer bisherigen Beschreibung sind wir davon ausgegangen, dass eine arbeitsfähige Infrastruktur für Context Computer bereits existiert. Im Folgenden gehen wir etwas vertiefend der Frage nach, wie eine derartige Infrastruktur dynamisch aufgebaut und verändert werden kann. Bei Aufbau und Betrieb einer Infrastruktur für Context Computer können folgende Phasen unterschieden werden Auslieferung einer Context Computer Basis Verteilung von Kontext-Konfigurationsdateien Etablierung von Arbeitskontexten Im Folgenden sollen diese Phasen dahingehend konkretisiert werden, welche der Basiskomponenten eines Context Computers in ihnen welchen Veränderungen unterworfen werden. Ein Context Computer (CC) als ein auf Kontexte konfigurierbares System besteht aus folgenden Basiskomponenten: Kontext-Konfigurations-Dateien dauerhaft an einen Kontext gebundenen Ressourcen kontextfreien Ressourcen einer Kontextsteuerung einem Systemrumpf Eine Kontext-Konfigurations-Datei beschreibt einen Kontext dahingehend, welche Akteure welche Operationen auf welchen Ressourcen eines Systems ausführen dürfen. Dauerhaft an einen Kontext gebundene Ressourcen sind ausschließlich innerhalb ihres Kontextes sichtbar und nutzbar; wie der Name sagt, handelt es sich dabei um eine Verknüpfung von kontextspezifischem Inhalt und physischem Träger. Dauerhaftigkeit und Ausschließlichkeit der Bindung einer Ressource an einen Kontext kann dadurch sicher gestellt werden, dass der kontextspezifische Inhalt bei jedem Speichervorgang kontextspezifisch unterhalb der Wahrnehmungsschwelle eines Akteurs verschlüsselt wird. Diese kontextspezifische Ver- bzw. Entschlüsselung beim Speichern bzw. Laden von Inhalten erfordert einen an den Kontext fest gebundenen Schlüssel, der unabhängig von den Akteuren sein muss. Kontextfreie Ressourcen sind frei verfügbare Betriebsmittel, die zu unterschiedlichen Zeiten in unterschiedliche Kontexte eingebunden werden können. Von ihnen ist zu fordern, dass sie keine kontextspezifischen Inhalte aus der Kontextbindung exportieren. Die Forderung, dass kontextfreie Ressourcen keine kontextspezifischen Inhalte aus der Kontextbindung exportieren, kann dadurch befriedigt werden, dass alle kontextspezifischen Inhalte, die innerhalb eines Kontextes temporär an sie gebunden werden, bei Austritt aus dem Kontext explizit gelöscht werden. Die Kontextsteuerung veranlasst den Systemrumpf zur Konfiguration eines Systems unter Auswertung einer Konfigurationsdatei. Ergebnis der Konfiguration ist eine auf einen Kontext zugeschnittene Ausführungsumgebung. Der Systemrumpf agiert als Verwalter aller Ressourcen und ist selber eine kontextfreie Ressource. Er verfügt nur über die folgend beschriebene und zeitlich unveränderliche Funktionalität: Auf Veranlassung der Kontextsteuerung bindet er Ressourcen entsprechend den Vorgaben einer Konfigurationsdatei zu einer auf einen Kontext und dessen Schutzbedarf zugeschnittenen Ausführungsumgebung zusammen und aktiviert diese. Alle nicht eingebundenen Ressourcen bleiben inaktiviert. Er überwacht dynamisch die kontextgerechte Ausführung von Operationen. HJB / RP Seite 1 von 7 Juli 2009
Auslieferung einer Context Computer Basis Bei der Auslieferung besteht ein Context Computer minimal aus: einer Konfigurations-Datei für den Administrations-Kontext kontextfreien Ressourcen einer Kontextsteuerung einem Systemrumpf Dies Minimalausstattung bezeichnen wir nachfolgend als Context Computer Basis. Ziel der Phase ist die Bindung eines Subjektes an die Rolle des Systemadministrators für die Context Computer Basis. Der Grundidee von Context Computern folgend, sollen letztlich alle Aktionen auf Subjekte zurück zu führen sein. Dies macht es notwendig, Subjekte (weltweit eindeutig) identifizieren zu können (z.b. über ein durch eine Zertifizierungsinstanz vermittelte Bindung eines durch Pass- oder Personalausweis ausgewiesenen Subjektes an ein Zertifikat). Die Identifizierung von Subjekten ist notwendig, um im Rahmen von Kontexten berechtigte von unberechtigten Akteuren unterscheiden zu können. Diese Unterscheidung muss umso verlässlicher treffbar sein, je sicherheitssensitiver ein Kontext ist. In Anlehnung an praktizierte Verfahren bei Mobiltelefonen (mit dem getrennten Versand von PINs und PUKs an den Kunden eines Mobilfunksanbieters) kann die Context Computer Basis zunächst Subjekt-unspezifisch ausgeliefert werden. Im Systemrumpf ist die eindeutige Kennung der diesem System zugeordneten Konfigurationsdatei des Administrationskontextes niedergelegt. Der Systemrumpf selbst ist durch eine eindeutige Kennung durch den Hersteller identifiziert (z.b. mittels TPM). Der Systemrumpf enthält einen sicheren Speicherbereich, der für jede Komponente fingerprints aufweist, mittels derer ihre Integrität überprüft werden kann. In der Konfigurationsdatei des Administrationskontextes selbst ist eine Start-PIN verankert. Die Kenntnis dieser Start-PIN ermöglicht es einem Subjekt sich als berechtigter Systemadministrator erkennen zu geben und darauf folgend seine subjektspezifischen Merkmale (lokal wissensbasiert oder biometrisch oder..., globale Zertifikate) in der Konfigurationsdatei abzulegen. Erst nach dieser Prozedur kann ein Subjekt gemäß den Vorgaben der Konfigurationsdatei im Administrationskontext agieren. HJB / RP Seite 2 von 7 Juli 2009
Dynamisch stellt sich die Auslieferungs-Phase wie folgt dar: Der Administrationskontext stellt die erste und wichtigste vertrauenswürdige Arbeitsplattform für ein System dar. HJB / RP Seite 3 von 7 Juli 2009
Verteilung von Kontext-Konfigurationsdateien Ziel dieser Phase ist es, einen Context Computer (im Minimalfall eine Context Computer Basis) mit weiteren Konfigurationsdateien für Arbeitskontexte zu versorgen. Da Arbeitskontexte im Regelfall System-übergreifend sind, sind zueinander korrespondierende Konfigurationsdateien unterschiedlichen Systemen zu zuordnen. Das Bekanntmachen und Einschleusen von Konfigurationsdateien erfolgt im Administrationskontext. Der Administrationskontext stellt einen Systemübergreifenden Grundkontext für alle Context Computer dar, in dem alle (Systemübergreifenden) Aktionen zur Verteilung und Etablierung von Arbeitskontexten ebenso wie alle Aktionen zur Verwaltung von (lokalen) kontextfreien Ressourcen ausgeführt werden. Betrachten wir dazu als Beispiel für einen Arbeitskontext Online-Banking (OB). Dann werden zu diesem Arbeitskontext pro Online-Banking-Kunde genau 2 Konfigurationsdateien benötigt: eine für den Client-Rechner des Kunden k (OBk) eine für den Server der Bank b (OBb). Zweckmäßigerweise werden die Konfigurationsdateien von dem Dienst-Erbringer, im Beispiel also von Bank b erstellt und ausgeliefert. Die Konfigurationsdatei OBb ist dem Bankserver, die Konfigurationsdatei OBk ist dem Client-Rechner des Kunden bekannt zu machen. Bestandteil dieser Bekanntmachung sind eine Integritätsprüfung der Konfigurationsdateien und eine Authentifizierung ihres Urhebers. HJB / RP Seite 4 von 7 Juli 2009
Etablierung von Arbeitskontexten Ziel dieser Phase ist die Etablierung eines Arbeitskontextes (zu einem Zeitpunkt) gemäß der Vorgaben der zugehörigen Konfigurationsdatei. Zu einem Arbeitskontext gehören eine im Administrationskontext verwaltete Konfigurations- Datei für den Arbeits-Kontext zeitweise eingebundene kontextfreien Ressourcen kontextgebundene Ressourcen eine Kontextsteuerung ein Systemrumpf Arbeitskontexte werden vom Administrator (und im Administrationskontext) eingerichtet. Hierzu bedient er sich der Kontextsteuerung und nutzt die Fähigkeiten des Systemrumpfes. Jeder Kontext stellt innerhalb eines Systems eine vertrauenswürdige Arbeitsplattform dar (Überprüfung etwa durch TPM). Immer wenn ein Arbeitskontext geladen wird, wird er entsprechend auf Integrität überprüft. In diesem Sinne stellt ein System eine wohldefinierte Anzahl vertrauenswürdiger Plattformen dar; jede Plattform in diesem System ist von allen anderen Plattformen völlig unabhängig. Bemerkung: Diese Eigenschaft rechtfertigt noch einmal den Begriff Context Computer: ein Context Computer ist ein jeweils dynamisch auf einen Kontext hin maßgeschneiderte und von allen anderen unabhängige vertrauenswürdige Ausführungsumgebung für zielorientierte Arbeit. Ein Context Computer stellt quasi eine Entfaltung eines Systems in mehrere dar und erspart dadurch in den meisten Fällen die Duplizierung von Hardware und Software. Betrachten wir dazu wieder das Beispiel Online-Banking (OB). Die Konfigurationsdatei OBk enthält alle notwendigen Angaben zur Identifizierung des Kunden k zur benötigten Banking-Anwendung zu benötigten Ressourcen (kontextfrei und kontextgebunden) zur sicheren Kommunikation mit dem Bankserver (festgelegt in den zueinander korrespondierenden Konfigurationsdateien OBk und OBb) (dies beinhaltet, dass die Kommunikationspartner sich ihrer Identität immer sicher sein können und dass kein Dritter sich abhörend oder manipulierend in ihre Kommunikation einschalten kann; dies scheint bei gegenwärtigen Online-Banking-Anwendungen nicht immer gegeben zu sein, z.b. dann nicht, wenn parallel zu über https abgesicherten Kommunikation Börsenkurse über ungesicherte Sitzungen übermittelt werden.) HJB / RP Seite 5 von 7 Juli 2009
Dabei bedeutet System wird gemäß Konfigurationsdatei OBk konfiguriert und geht in den Arbeitskontext OB über (im nachfolgend angenommenen Fall eines Browser-basierten Online-Bankings): Es wird (aus der Menge der kontextfreien Ressourcen) ein https-protokoll-stack im Client-Rechner bereitgestellt; Es wird (aus der Menge der kontextfreien Ressourcen) ein Internet-Browser bereitgestellt; Es wird eine https-sitzung zwischen dem Client-Browser und dem Bank-Server etabliert (unter wechselseitiger Authentifizierung von Client-Rechner und Bank-Server); Kunde k und Bank b authentifizieren sich wechselseitig; Die Bank b liefert im Browser-Fenster Eingabemasken für den Arbeitskontext Online-Banking und Daten des Kunden k. Damit ist der Client Rechner für k im Arbeitskontext OB. Das Verlassen des Arbeitskontextes erfolgt auf Anstoß des Kunden k korrespondierend: Kunde k wird über den Browser bei der Bank b abgemeldet: der Client-Browser wird geschlossen, Die im Kontext benutzten kontextfreien Ressourcen werden freigegeben; dabei werden sämtliche Kontext-spezifischen Informationen gelöscht. Der Client-Rechner geht in den Zustand angeschaltet im kontextfreien Zustand über. Nur die in einem Arbeitskontext tatsächlich benötigten Ressourcen stehen den Akteuren in der gemäß Konfigurationsdatei festgelegten Weise zur Verfügung. Alle anderen Ressourcen und alle anderen Nutzungen der eingebundenen Ressourcen sind im Arbeitskontext nicht verfügbar. Für die Kommunikation stehen beispielsweise nur die in der Konfigurationsdatei angegebenen URLs zur Verfügung. Erfolgt beispielsweise das Auflösen von Namen (für Hostnamen und für NetBIOS) über einen lokalen Cache, so ist darauf zu achten, dass keine anderen IP-Adressen als die in der Konfigurationsdatei angegeben im Arbeitskontext verfügbar sind. Es ist sicherzustellen, dass der Cache-Inhalt im Arbeitskontext nicht verändert werden kann. Durch derart stringente Festlegungen wird die Sicherheit im Arbeitskontext gewährleistet. HJB / RP Seite 6 von 7 Juli 2009
Abschließende Bemerkungen Context Computer zeichnen sich durch höhere Verlässlichkeit verbunden mit einer geringeren Verletzlichkeit aus. Diese Eigenschaften resultieren zum einen aus der Beschränkung auf die in einem Kontext benötigte Funktionalität und deren Bereitstellung in überschaubaren und längerfristig stabil haltbaren Modulen; zum anderen auf von Benutzern vollkommen unabhängigen Prozessen der Authentifizierung und Integritätsprüfung. Dabei legen die Phasen der Auslieferung der Context Computer Basis und der Verteilung von Kontext-Konfigurationsdateien die Basis für die sichere Etablierung von Arbeitskontexten. HJB / RP Seite 7 von 7 Juli 2009