Einführung Trusted Systems

Notizen zur „Einführen in Trusted Systems“, aus zugehörigem Skript

Wintersemester 2005/2006, Technische Universität Darmstadt (TUD), Andreas Schwarzkopf (MatNr.: 1201387)

 

 


Trusted System           Ein System, dem man vertraut, daß es spezifizierte Dienste/Funktionalitäten - auch bei Störungen und in Fehlsituationen - korrekt und verlässlich erbringt

 

Verfügbarkeit              bedeutet Robustheit und Toleranz. Innere, systemeigene Fehler (z.B. Implementierung) als auch externe (absichtliche) Fehler

 

Vertrauen aufgrund     Zuverlässigkeit (Dependapility), Sicherheit (Security), Verifizierbarkeit (Verification)

 

Sicherheitsziele          Vertraulichkeit, Privatheit, Integrität, Authentizität, Verbindlichkeit, Verfügbarkeit

 

- Vertraulichkeit          Schutz vor unautorisierter Informationsgewinnung (Verschlüsselung)

- Privatheit                 Schutz der personenbezogenen Daten, Privatsphäre (Pseudonyme, Identitätsverschlüsselung, Tunneling)

- (Daten-)Integrität       Schutz vor unautorisierter und unbemerkter Modifikation von Daten (Hashes, MACs)

- Authentizität            Nachweis der Echtheit und Glaubwürdigkeit eines Objekts/Subjekts (Passworte, PINs)

- Verbindlichkeit         Schutz vor unzulässigem Abstreiten durchgeführter Handlungen (Signaturen Zertifikate)

- Verfügbarkeit            Schutz vor unbefugter Beeinträchtigung von Systemen/Diensten/Funktionalitäten (Mechanismus: Quotas, IDS/IDR, LogDaten)

 

 

Kryptographische Überlegungen:

 

Ziele                            Vertraulichkeit, Identifikation, Integrität, Authentizität, nicht Abstreitbarkeit (Verbindlich)

                                    confidentiality, identification, integrity, authenticity, non-repudiation

 

Anforderungen            - Privater Schlüssel darf nicht aus öffentlichem Schlüssel berechenbar sein.

à Mathematik liefert geeignete Probleme

                                    - Öffentlicher Schlüssel muss authentisch sein

à Zertifikate binden Public Keys an Besitzer

                                    - Sperrung von Schlüsseln muss praktikabel sein

                                    - Policies (Richtlinien) müssen durchsetzbar sein (z.B. Unternehmensrichtlinien).

                                    - Privater Schlüssel muss geheim bleiben

 

 

Security Engineering:

 

Prinzipien                   - Erlaubnis-Prinzip (fail-safe)

à Zugriffe per default verboten, falls nicht explizit erlaubt

                                    - Vollständigkeits Prinzip (complete mediation)

à jeden Zugriff kontrollieren

                                    - Prinzip der minimalen Rechte (need-to-know)

à Subjekt erhält nur die benötigten Rechte

                                    - Prinzip des offenen Entwurfes (open design)

à Geheimhaltung darf nicht die Quelle der Sicheheit sein

                                   - Benutzerakzeptanz (economy of mechanism)

                                               à Entwicklung einfach zu nutzende Verfahren

 

Phasen des SE            - Strukturanalyse + Pflichtenheft à Einsatzumgebung, Netztopologieplan,...

                                   - Ermittlung des Schutzbedarfes à „Was wäre wenn...“

                                   - Bedrohungsanalyse                            à Angriffs-(Teil-)Ziele, Analyse (Attack-Tree)

                                                                                              à Penetrationstest (Whitebox- / Blackbox)

                                    - Risikoanalyse                                    à Risiko = Schadenshöhe * Eintrittswahrscheinl.

                                    - Erstellen einer Sicherheitspolicy          à Festlegen von Gegenmaßnahmen

à technische Maßnahmen, Richtlinien, Rollen

    und Verantwortlichkeiten

                                    - Modellierung des System                    à Abstraktion, RBAC, Rollenhierarchien

- Feinentwurf + Implementation              à sicheres Programmieren

                                    - Validierung und Evaluierung                 à Verifikation

                                    - Wartung + Laufender Betrieb               à Patchmanagement, Analysetools (IDS/IDR)

 


Authentifikation:          Identifikation von Subjekten und Nachweis Ihrer Identität

à Human - Human, Human - Service, Service - Service

à einseitige und wechselseitige Identifikation und Authentifikation

à durch Wissen (Password, PIN, krypt. Schlüssel)

(Challenge Response, Man in the middle, known plaintext)

à durch Besitz (Smartcard, USB Token, SIM Card)

à durch Merkmale (biometrisch, Fingerabdruck, Iris)

à ...und Kombinationen

 

Zugriffskontrolle          (Access Control) Basiert auf vorangegangener Identifikation/Authentifikation

                                   à ist Basis für Rechtemanagement (Rechterverwaltung, -vergabe und -rücknahme)

                                   à „Subjekte“, „Objekte“ und „Rechte“

                                   à Zugriffskontrollmatizen - in der Regel:

                                               à Zugriffskontrollisten - für jedes Objekt: (Subjekt, Rechte) Tupel vermerken

                                               à Capability Listen - für jedes Subjekt: (Objekt, Rechte) Tupel vermerken

                                               à ...oder Kombinationen aus beidem

 

ACL, ACE                    à ACL (access control lists) - für jedes Objekt: Sammlung von

                                   à ACE (AC Entry) - Tupel: Subjekt/Rolle + Rechte z.B. (“Alice”, {r,w,x})

                        à Rechte für Objekt effizient bestimmbar, Rechteverwaltung/-rücknahme effizient

                        à Allerdings: Kontrollen pro Zugriff, schlecht skalierbar bei dynamischen Subjektmengen

Capability Lists             à Einfache Bestimmung der Subjekt Rechte, einfache Zugriffs- (= „Ticket-“)kontrolle

                                   à Rechterücknahme aus Objektsicht schwierig/aufwändig

 

EFS                             Encrypted Filesystem: File symmetrisch verschlüsseln, SymKey 2 x asymmetrisch mit PubKey User + PubKey RecoveryAgent (meist Admin)

                                    à Hybrid: Schnell, sicher, Überschaubar + Recoveryfähig, Mehrbenutzereffizient

 

                                   

Kommunikationssicherheit bedeutet verschiedene kryptographische Techniken zu kombinieren um die Ziele Authentizität, Integrität und Vertraulichkeit zu gewährleisten.

                                    à Kommunukationsprotokolle (IPSec, SSL/TLS, SSH,...)

                                    à Anwenderprotokolle (PGP, S-MIME, XMLSec)

 

Zuverlässigkeit            (Dependability) Bezeichnet das Vertrauen, das man einem System zur Ausführung eines spezifizierten Dienstes [auch zum Zeitpunkt einer Systemstörung] entgegen bringt. (Systemstörungen ~ Fehler)

                                    à Fehlervermeidung, Fehlererkennung, Wiederherstellung (avoid, detect, recover)

 

 

            Fault à Error à Failure                     (Fehlermechanismus à Fehlermodus à Fehlereffekt)

 

Ziel: Fehlermodus erkennen und ggf. korrigieren oder andere Maßnahmen einleiten, bevor es zu einem Fehlereffekt (Failure) kommen kann. Der Fehlermechanismus (Fault) (z.B. ein Hackerangriff) ist u.U. nicht zu vermeiden.

 

 

Zuverlässigkeitsmaße:           

 

Verfügbarkeit              Availability = UpTime / (Up + DownTime)

à im Mittel MTTF / (MTTF + MTTR)                   MTTF (Mean time to failure)

                                                                      MTTR (Mean time to repair)

Verfügbarkeit ist kein Maß für Sicherheit!

Vgl: 5 Minuten Stromausfall: Mikrowelle - Flugzeug/Bordelektonik

 

Zuverlässigkeit            Relieability = Availability at a given time

à die (bedingte) Wahrscheinlichkeit, dass ein System zu einem gegebenen Zeitpunkt/über einen bestimmten Zeitraum hinweg korrekt funktioniert

                                    Gesamtzuverlässigkeit zusammengesetzter Systeme:

à in Serie: Produkt der Zuverlässigkeiten [0..1]              R_g = R_1 * R_2 *...

à parallel: 1 - Produkt der Unzuverlässigkeiten              R_g = 1 - (1-R_1) * (1 - R_2) *...

 

Sicherheit                   kann in mehreren Abstufungen vorliegen.

à Vgl: Auto: Servolenkung fällt aus, Sicherheit des Gesamtsystems dennoch sehr hoch

Redundanzen                         Erhöhen Zuverlässigkeit.           

Physische Redundanz à Duplex (error detection, no error recovery)

                                   à TMR (Triple Module Redundancy) 3 fach mit 2/3 Voter

Zeitliche Redundanz      à Checkpointing (= mehr Aufwand vs. total rollback)

Informationsredundanz à Paritätsdaten, Sicherheitskopien

 

Distributed System                  Sammlung von Ressourcen (OS’s, CPU’s, memory,...), die durch einen Daten-/Informationsdienst verlinkt sind und [verzögerte] Dienste anbieten.

                                               à hohe Performanz, hohe Redundanz, hohe Verfügbarkeit + ausfallsicher

                                               à Hoher Synchronisationsaufwand

 

Erweitertes Fehlermodell       Byzantinisches Fehlermodell. Für f Verräterknoten benötigt man:

                                               à 3f + 1 Knoten insgesamt, à f + 1 Datenaustauschrunde zum Konsens

 

Voraussetzungen Deadlock    à gegenseitiger Ausschluss, jede Ressource von einem Prozess belegt

                                               à hold and wait, Wartende Prozesse geben bereits belegte Ressourcen nicht frei

                                               à keine Vorrechte, kein Prozess kann einem anderen Ressourcen entziehen

                                               à Zirkuläres Warten, es existiert eine Kette von wartenden Prozessen

 

DS Checkpointing                   Koordiniertes (z.B. mittles 2/3PhaseCommitment Protokoll) vs. Unkoordiniertes Checkpointing. Es muss der komplette Prozesseszustand gesichert werden.

                                               à uncoordinated Checkpointing could results in inconsistent states if orphaned or lost message occurs

                                               à Konsitenter Schnitt (consistent cut) = Checkpointsatz ohne Messageprobleme

 

NVP                                         n - Version Programming, hoher Entwicklungsaufwand, jedes Modul sollte logisch eigenständig sein und in etwa gleiche Laufzeit besitzen

NCP                                         n - Copy Programming, n Modul Kopien erhalten ähnliche Testdaten (+/- Epsilon)

DataDiversity                           Logisch äquivalente, unterschiedliche Daten einspielen, Ergebnis vergleichen

 

 

Validation                               Der Prozess der Sicherstellung, dass das Programm / die Designspezifikation die Systemanforderungen erfüllt. „Das korrekte System wurde entworfen.“

 

Verifikation                             Der Prozess der Sicherstellung, dass ein Programm/Protokoll/Komponente die zugrunde liegende Designspezifikation erfüllt. „Das System arbeitet korrekt.“

 

 

Programmiermethodik            Modellieren mit LTS (Labelled Transition System)

                                                           à LTS (Z, Z0, T, à, P, |= )        

Zustände, Startzustände, Transitionen, Relationen (Teilmenge ZxTxZ),

Atomare Formeln, Eigenschften (z erfüllt p, z |= p)

Trace: z1àt1 z2àt2 z3àt2... (möglicherweise unendlich groß)

                                               LTS deterministisch, wenn |Z0| = 1 und z àt z1, z àt z2  =>  z1 = z2

                                               „Zustände nummerieren + mit P bzw. Transitionen einfügen + mit T annotieren“

 

Kripkestruktur                         LTS mit |T| = 1

Prozessgraph                          LTS mit |P| = 0

 

Prozesse sind äquivalent genau dann wenn wenn sie die selben Traces erzeugen.

 

 

Protokolle, die kryptographische Primitive wie Verschlüsselung und digitale Signatur verwenden, heissen kryptographische Protokolle (oder Security Protokolle).

 

Angreifermodell                      Dolev,Yao: Angreifermodell „Der Dolev-Yao-Angreifer“

 

à kann: abhören, abfangen, speichern (unendlich großes Gedächtnis), scih tarnen, entschlüsseln, zerlegen und neue Nachrichten aus alten zusammensetzen, gespeicherte Nachrichten wiedereinspielen (selbst wenn nicht entschlüsselt).

 

à kann nicht: perfekte Kryptographie brechen, Speicher anderer Agenten lesen, Zufallszahlen erraten