Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Computergestützte Verifikation 28.6.2002. 2 Beispiel für Shape-Analysis Insert in Liste: x : nichtleere Liste x malloc(y) x y y -> n = x x y x = y x.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Computergestützte Verifikation 28.6.2002. 2 Beispiel für Shape-Analysis Insert in Liste: x : nichtleere Liste x malloc(y) x y y -> n = x x y x = y x."—  Präsentation transkript:

1 1 Computergestützte Verifikation

2 2 Beispiel für Shape-Analysis Insert in Liste: x : nichtleere Liste x malloc(y) x y y -> n = x x y x = y x y Coarsening xy

3 3 Beispiel statisch 1 read(n); 2 i := 1; 3 sum := 0; 4 product := 1; 5 while i <= n do 6sum := sum + 1; 7product := product * i; 8i := i + 1; end 9 write(sum); 10 write(product); (product,10) 1 read(n); 2 i := 1; 4 product := 1; 5 while i <= n do 7product := product * i; 8i := i + 1; end 10 write(product);

4 4 9. Sonstiges Ziel: In einigen weiteren Domains Tragfähigkeit der gelernten Konzepte testen

5 5 9.1 Hybride Systeme hybrid = kontinuierliche + diskrete Variablen Hybrider Automat: Einlaufen Auslaufen h>= max h <= min h [ -0.5,0.7] h [ -0.8,0.9] (Der hier ist ein linearer Automat: x [c1,c2])

6 6 Verifikation linearer hybrider Automaten geometrische Abstraktionen, z.B. Polyeder – analog Zonen mehrere andere geometrische Formen, u.a. Ellipsen Tool: HyTech (Berkeley)

7 7 Verifikation allg. hybrider Automaten numerische Verfahren Fehlerbetrachtung notwendig Tool: CheckMate (CMU) Flowpipe ,6,7

8 8 9.2 Kompositionale Verifikation System in Komponenten zerlegen Komponenten verifizieren Eigenschaft des Gesamtsystems schlußfolgern Assume-Guarantee-Reasoning

9 9 Komponierte Systeme Interessant vor allem: parallele Komposition Komponente = Transitionssystem (mit benannten Aktionen) Parallele Komposition S1 || S2: S = S1 x S2 Übergänge: synchronisiert, wenn Aktion in A1 A2, sonst allein

10 10 Assume-Guarantee { } S { }, z.B. aus LTL-X heißt: Jeder Pfad, der erfüllt und in S möglich ist, erfüllt.

11 11 Eine Kompositionsregel unglaublich, aber wahr: { } S1 { } { } S2 { } ____________ { } S1 || S2 { } Grund: Jeder Pfad in S1 || S2 ist auch in S1 möglich

12 12 Problem: Zyklen Mit || kann man keine ringförmige Argumentation aufbauen, und Assume-Guarantee in Ringen taugt nix Aus { i } Si { (i+1) mod k } folgt nichts für Gesamtsystem

13 13 Invarianten in Systemen mit Zyklen Wenigstens geht Verifikation von Invarianten (G ) auch in ringförmigen Systemen { i } Familie von Formeln mit Halbordnung Zeigen für alle j,k in Komponenten: Aus i gilt bis Schritt k, falls i i - i gilt bis Schritt k-1, sonst folgt - j gilt in Schritt k Dann gilt G ( 1... n ) im Gesamtsystem

14 Parametrisierte Systeme Unendliche Familie gleich strukturierter Komponenten (z.B. Ring mit beliebig vielen Komponenten) Wollen Resultat, das für jede Instanz gilt

15 15 Induktion gilt für System mit 0 oder 1 Komponente Model Checking I)Wenn für System mit max. k Komponenten, so auch mit k+1 Komponenten kompliziert. Meist manuell. z.B.: Versuche, 2 oder mehr Komponenten derart zu abstrahieren, daß sich Resultat wie 1 Komponente verhält

16 16 Small Model Properties Viele Logiken, auch temporale, haben Eigenschaften der Form Wenn in irgendeinem Modell gilt, so gibt es auch ein Modell der Größe k, wo gilt. k z.B. Anzahl der freien Variablen in Parametrisiertes Problem kann auf endlich viele Model Checking Probleme reduziert werden

17 Security-Protokolle Betrachten nicht: Verschlüsselung/Entschlüsselung, sondern vor allem: Verbindungsaufbau, Authentifizierung,... Perfekte Verschlüsselung = Inhalt einer verschlüsselten Nachricht ist ohne Schlüssel nicht verfügbar Begrenzter Zufall = Wenn eine Zufallszahl (Nonce) Bestandteil einer verschlüsselten Nachricht ist, gibt es keine Möglichkeit, den Wert dieser Zahl zu ermitteln, als die Nachricht zu entschlüsseln. Beide Annahmen falsch, aber sinnvoll.

18 18 Beispiel 1 Austausch geheimer Information N A, N B (z.B. Session Key) A B {A,N A } PKB {N A,N B } PKA {N B } PKB Attacke: A B {A,N A } PKB {N A,N C } PKA {N C } PKB C {A,N A } PKC {N A,N C } PKA {N C } PKC C glaubt, mit A zu kommunizieren, anstatt mit B

19 19 Beispiel 2 A B: A B A: N B A B: {N B } KAS B S: {A,{N B } KAS } KBS S B {N B } KBS Attacke: C B : A C B: C B A(C): N B B C: N B C B: {N B } KCS B S:{A,{N B } KCS } KBS B S: {C,{N B } KCS } KBS S B:{N B } KBS S B: error

20 20 Elemente von Security-Protokollen Teilnehmer (A,B, Server, Intruder,....) Kanäle (unsicher, d.h. Intruder kann abfangen, selbst senden usw.) Inhalte (Daten, Nonces, Timestamps) Schlüssel (symmetrisch oder asymmetrisch) Verschlüsselte Nachrichten {... } K Ableitbares Wissen: 1.Jede gesendete Nachricht 2.{ bla } K + K bla 3.bla + K { bla } K

21 21 Model Checking Zustand: -ehrliche Teilnehmer + Abarbeitungszustand -Intruder, evt. personifiziert als ehrlicher Teilnehmer + abgeleitetes Wissen -1 oder mehrere Protokollinstanzen Übergänge: ehrliche Agenten: laut Protokoll Intruder: beliebiger Nichtdeterminismus, außer Annahmen nach perfekter Verschlüsselung, nach jedem Schritt Abschluss bzgl. ableitbarem Wissen

22 22 Alternative: Modale Logik A glaubt Wenn A glaubt, Nachricht M kommt von B, dann kommt Nachricht M von B Beweissysteme, SPI-Calculus, spezifische Model Checker für solche modalen Logiken Andere Typen von Attacken brauchen andere Verifikationstechniken, z.B. Denial-of-Service E-Commerce: A glaubt reicht nicht, stattdessen: A kann Dritten gegenüber nachweisen

23 Worst-Case-Execution-Time-Analyse geg: Programm, Prozessor, Taktfrequenz ges: max. Abarbeitungszeit T: jede Ausführung braucht garantiert nicht länger als T T möglichst klein Probleme im Low-Level und im High-Level-Bereich

24 24 Low-Level Probleme -Pipelining -Pre-Fetch, Branch-Prediction -Instruction Cache, Datencache nicht unbedingt unser Problem, aber es gibt z.B. zur Cache-Analyse Ansätze, die auf Abstract Interpretation beruhen

25 25 High-Level Probleme Wie oft werden Schleifen durchlaufen? if B1 then {7 ms} else {5 ms} end; if B2 then {8 ms} else {3 ms} end; Max. 15? Nur wenn B1 B2 erfüllbar Model Checking könnte helfen, High Level-Probleme zu lösen. (in etablierten Tools werden max. Durchlaufzahlen vom Nutzer vorgegeben)

26 26 Model Checking für HL-WCET geg.: WCET für Basic Blocks (verzweigungsfreie Teile) aus LL-WCET Analyse Programm annotieren: wcet := 0... if B then wcet += k1;... else wcet += k2;... end... while B do wcet += k3;... end...

27 27... while-Schleifen k Iterationen abwickeln, k+1-te Iteration mit Label L markieren. Programm zu SAT-Checker schicken: - falls EF L erfüllbar, k vergrößern - Per Binärschachtelung kleinstes T finden, wo AG wcet < T gilt Ausgabe T


Herunterladen ppt "1 Computergestützte Verifikation 28.6.2002. 2 Beispiel für Shape-Analysis Insert in Liste: x : nichtleere Liste x malloc(y) x y y -> n = x x y x = y x."

Ähnliche Präsentationen


Google-Anzeigen