CsPL, system do weryfikacji bezpieczeństwa programów p.1/20

Podobne dokumenty
Zastosowanie bisymulacji do. Non-Interference XVI FIT, Karpacz 2002

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Bisymulacja. Niezawodność systemów współbieżnych i obiektowych. Grzegorz Maj Grzegorz Maj Bisymulacja

Programowanie. Lista zadań nr 15. Na ćwiczenia 11, 19 i 23 czerwca 2008

Logika Stosowana. Wykład 2 - Logika modalna Część 3. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2017/2018

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie

Logika i teoria mnogości Wykład 14

Programowanie funkcyjne Wykład 13. Siła wyrazu rachunku lambda

Algorytmy i Struktury Danych

Logika Matematyczna (1)

Wstęp do Programowania potok funkcyjny

Logika Stosowana. Wykład 7 - Zbiory i logiki rozmyte Część 3 Prawdziwościowa logika rozmyta. Marcin Szczuka. Instytut Informatyki UW

Bisymulacja. Niezawodność systemów współbieżnych i obiektowych. Grzegorz Maj Grzegorz Maj Bisymulacja

Obliczenia i wnioskowanie w systemie Coq

Algebrę L = (L, Neg, Alt, Kon, Imp) nazywamy algebrą języka logiki zdań. Jest to algebra o typie

G. Plebanek, MIARA I CAŁKA Zadania do rozdziału 1 28

Lekcja 3: Elementy logiki - Rachunek zdań

Logika binarna. Prawo łączności mówimy, że operator binarny * na zbiorze S jest łączny gdy (x * y) * z = x * (y * z) dla każdego x, y, z S.

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

1 Relacje i odwzorowania

Modele Herbranda. Logika obliczeniowa. Joanna Józefowska. Szukamy modelu. Przykład Problemy. Model Herbranda

LOGIKA I TEORIA ZBIORÓW

Opis efektów kształcenia dla programu kształcenia (kierunkowe efekty kształcenia) WIEDZA. rozumie cywilizacyjne znaczenie matematyki i jej zastosowań

Wykład 11a. Składnia języka Klasycznego Rachunku Predykatów. Języki pierwszego rzędu.

PLAN WYNIKOWY Z MATEMATYKI DLA I KL. GIMNAZJUM do podręcznika GWO Matematyka z plusem. PODSTAWOWE Uczeń zna:

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

Jak należy się spodziewać, mamy. Zauważmy jednak, że nie zachodzi równość

INSTYTUT CYBERNETYKI TECHNICZNEJ POLITECHNIKI WROCŁAWSKIEJ ZAKŁAD SZTUCZNEJ INTELIGENCJI I AUTOMATÓW

Logika Matematyczna (1)

Przykład 1 W przypadku jednokrotnego rzutu kostką przestrzeń zdarzeń elementarnych

Rodzinę spełniającą trzeci warunek tylko dla sumy skończonej nazywamy ciałem (algebrą) w zbiorze X.

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Algorytm selekcji Hoare a. Łukasz Miemus

Logika Temporalna i Automaty Czasowe

Rekurencyjna przeliczalność

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Schemat rekursji. 1 Schemat rekursji dla funkcji jednej zmiennej

Języki programowania zasady ich tworzenia

Wykłady ostatnie. Rodzinę P podzbiorów przestrzeni X nazywamy σ - algebrą, jeżeli dla A, B P (2) A B P, (3) A \ B P,

System BCD z κ. Adam Slaski na podstawie wykładów, notatek i uwag Pawła Urzyczyna. Semestr letni 2009/10

KIERUNKOWE EFEKTY KSZTAŁCENIA

Wstęp do Programowania potok funkcyjny

Kształcenie w zakresie podstawowym. Klasa 1

PRZEWODNIK PO PRZEDMIOCIE

Uczenie się maszyn. Dariusz Banasiak. Katedra Informatyki Technicznej Wydział Elektroniki

Teoretyczne Podstawy Języków Programowania Wykład 4. Siła wyrazu rachunku λ

RACHUNEK ZDAŃ 7. Dla każdej tautologii w formie implikacji, której poprzednik również jest tautologią, następnik także jest tautologią.

Analiza matematyczna i algebra liniowa Pochodna funkcji

Elementy logiki. Wojciech Buszkowski Wydział Matematyki i Informatyki UAM Zakład Teorii Obliczeń

PRZEWODNIK PO PRZEDMIOCIE

Logika matematyczna w informatyce

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Wykład 2: Rachunek lambda

Matematyka dyskretna Literatura Podstawowa: 1. K.A. Ross, C.R.B. Wright: Matematyka Dyskretna, PWN, 1996 (2006) 2. J. Jaworski, Z. Palka, J.

0.1. Logika podstawowe pojęcia: zdania i funktory, reguły wnioskowania, zmienne zdaniowe, rachunek zdań.

Analiza matematyczna i algebra liniowa Macierze

Programowanie w Logice Przykłady programów. Przemysław Kobylański

Rozstrzygalność logiki modalnej

O pewnych związkach teorii modeli z teorią reprezentacji

WYMAGANIA I KRYTERIA OCENIANIA Z MATEMATYKI W 3 LETNIM LICEUM OGÓLNOKSZTAŁCĄCYM

SZKOŁA PODSTAWOWA NR 1 IM. ŚW. JANA KANTEGO W ŻOŁYNI. Wymagania na poszczególne oceny klasa VII Matematyka z kluczem

Logika Temporalna i Automaty Czasowe

Semantyka rachunku predykatów pierwszego rzędu. Dziedzina interpretacji. Stałe, zmienne, funkcje. Logika obliczeniowa.

Programowanie funkcyjne. Wykªad 13

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Z52: Algebra liniowa Zagadnienie: Zastosowania algebry liniowej Zadanie: Operatory różniczkowania, zagadnienie brzegowe.

Tablice trwania życia

Elementy języka Scheme

1. Wstęp do logiki. Matematyka jest nauką dedukcyjną. Nowe pojęcia definiujemy za pomocą pojęć pierwotnych lub pojęć uprzednio wprowadzonych.

Temperatura w atmosferze (czy innym ośrodku) jako funkcja dł. i szer. geogr. oraz wysokości.

Kierunek i poziom studiów: matematyka, studia I stopnia, rok I. Sylabus modułu: Wstęp do matematyki (03-MO1S-12-WMat)

Metody dowodzenia twierdzeń i automatyzacja rozumowań Tabele syntetyczne: definicje i twierdzenia

A i. i=1. i=1. i=1. i=1. W dalszej części skryptu będziemy mieli najczęściej do czynienia z miarami określonymi na rodzinach, które są σ - algebrami.

ĆWICZENIE 4 KRZ: A B A B A B A A METODA TABLIC ANALITYCZNYCH

Zadanie analizy leksykalnej

Topologia Algebraiczna - Pomocnik studenta. 1. Język teorii kategorii

Siedem cudów informatyki czyli o algorytmach zdumiewajacych

Semantyka rachunku predykatów

5. Algebra działania, grupy, grupy permutacji, pierścienie, ciała, pierścień wielomianów.

ForPascal Interpreter języka Pascal

Struktury formalne, czyli elementy Teorii Modeli

P. Urzyczyn: Materia ly do wyk ladu z semantyki. Uproszczony 1 j. ezyk PCF

W planie dydaktycznym założono 172 godziny w ciągu roku. Treści podstawy programowej. Propozycje środków dydaktycznych. Temat (rozumiany jako lekcja)

Plan wynikowy z wymaganiami edukacyjnymi z matematyki w zakresie podstawowym dla klasy 1 zsz Katarzyna Szczygieł

Typy, klasy typów, składnie w funkcji

Przetwarzanie rozproszone

Procesy stochastyczne

Obliczenia inspirowane Naturą

F t+ := s>t. F s = F t.

Sztuczna inteligencja : Zbiory rozmyte cz. III

Rozdział VII. Znaczenie logiki dla prawa i pracy prawnika Zadania i odpowiedzi 20

Teoria systemów uczacych się i wymiar Vapnika-Chervonenkisa

Procedura modelowania matematycznego

Monoidy wolne. alfabetem. słowem długością słowa monoidem wolnym z alfabetem Twierdzenie 1.

Szablony funkcji i szablony klas

WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY

Algebra Boole a i jej zastosowania

Programowanie deklaratywne i logika obliczeniowa

Definicja: alfabetem. słowem długością słowa

Transkrypt:

CsL, system do weryfikacji bezpieczeństwa programów XVII FI, Karpacz 003 Wiktor Zychla, Wojciech omanik Uniwersytet Wrocławski Instytut Informatyki 13 grudnia 003 CsL, system do weryfikacji bezpieczeństwa programów p.1/0

Non-Interference Mamy dany model programu/systemu, złożonego z n równolegle działających komponentów. Wszystkie akcje klasyfikujemy jako jawne (bezpieczne, publiczne, L) lub tajne (niebezpieczne, prywatne, H). odobnie użytkowników systemu dzielimy na użytkowników L i H. Dwa poziomy dostępu wystarcza do analizy bardziej złożonych scenariuszy. aką klasyfikację traktujemy jako pewną polisę bezpieczeństwa. Klasyfikacja akcji jest punktem wyjścia do dalszej analizy systemu. Non-Interference nie narzuca tutaj jednak żadnych ograniczeń. CsL, system do weryfikacji bezpieczeństwa programów p./0

Non-Interference, definicja System nazwiemy bezpiecznym w sensie Non-Interference, jeśli nie ma żadnej interferencji między akcjami jawnymi i tajnymi, to znaczy że obserwując wykonanie się swojego programu, użytkownik L nie potrafi wydedukować czy w systemie wykonują się jakiekolwiek akcje tajne Okazuje się, że w pewnych przypadkach jest to polisa zbyt silna. Mimo to, Non-Interference potrafi wykrywać wiele jawnych oraz niejawnych kanałów możliwego wycieku informacji. CsL, system do weryfikacji bezpieczeństwa programów p.3/0

CsL - system kompletny Algebra CsL Język CsL Semantyka Systemy dowodowe NI Kompilator dla.ne Certyfikaty CC CsL, system do weryfikacji bezpieczeństwa programów p.4/0

Algebra CsL a algebra SA rosta algebra SA: E :: 0 µ E µ E E E E E E L E f Algebra CsL: 1. n x 1 x 1 xk xl E 1 E n gdzie E i :: 0 E i µ?x L Ei E i f µ!x if Ei else E i j E i y 1 E i E i ym CsL, system do weryfikacji bezpieczeństwa programów p.5/0

Algebra CsL a algebra SA Analiza bezpośrednia procesów SA ma złożoność podwójnie wykładniczą Wykładnicza złożoność translacji VSA do SA Wykładnicza złożoność ewaluacji operatora O(m log n) złożoność algorytmu rozstrzygania NI CsL+CC pozwala na podwójny unik Uniknięcie translacji do rachunku niesymbolicznego Wykładnicza złożoność ewaluacji operatora Liniowa złożoność weryfikacji dowodu NI CsL, system do weryfikacji bezpieczeństwa programów p.6/0

Kontesty algebraiczne dla NI NI jest klasycznie definiowana jako własność dynamiczna, może być jednak określona algebraicznie za pomocą bisymulacji Różne odmiany polisy NI wyraża się przez tzw. konteksty algebraiczne bisymulacji NNI SNNI. I Act H Act H Act H Act H Act H CsL, system do weryfikacji bezpieczeństwa programów p.7/0

Bisymulacja, badanie NI Na termy SA można patrzeć jak na automaty skończone o klasycznej semantyce. Dwa termy, i Q są bisymulacyjnie równoważne ( Q), gdy: µ µ Q Q Q µ Algorytmy rozstrzygania równoważności dzielą przestrzeń stanów modelu na podzbiory stanów równoważnych. Q CsL, system do weryfikacji bezpieczeństwa programów p.8/0

Bisymulacja symboliczna Modelami termów CsL są automaty symboliczne o symbolicznych tranzycjach postaci b µ. Na przykład term c?x if x 0 c!1 else c! ma model x 0 c!1 true c?x x 0 c! CsL, system do weryfikacji bezpieczeństwa programów p.9/0

!!! Bisymulacja symboliczna owiemy, że zbiór B wyrażeń booleowskich jest b-podziałem (B AR b ), gdy B b. Rodzina relacji S { S b, b - wyrażenie booleowskie } jest bisymulacją symboliczną, gdy t b u S b t b 1 AR b b 1 b t b α t α b u α u S b AR b α b u b b 1 α u CsL, system do weryfikacji bezpieczeństwa programów p.10/0

" ( ' ( ' ' + * ) + ) * Systemy dowodowe: termy System dla formuł postaci EQ # EQUIV U Q. U U %U V V EQ # REFIX α & U α &U EQ # CHOICE U U EQ # SIMLE A t u t; A B u; B CsL, system do weryfikacji bezpieczeństwa programów p.11/0

/ 5 4 3 4 3 4 3, /, / 5 4 3 4 3 5 4 3 4 3, / 4 3 4 3, /, Systemy dowodowe: rekursja Rekursja jest najczęściej definiowana przy pomocy operatora punktu stałego fix, gdzie przyjmuje się, że f ixx F F f ixx F X W takim ujęciu rekursji trudno jest modelować systemy wielokomponentowe. a trudność jest jedną z motywacji dla składni CsL. REC X 1 -...-Xk ;Xs X 1, /10 x 1 #X X S 5 -... -Xk x k #X X S 5 -#X x s #X X S ;X s RECREFIX X 1 x 1 X s µ.0 5 -... -Xk X 1 x k X s µ.0 ;X s -...-Xk ;Xs Y 1 Y 1, /10, /10 -...-Ym;Yt y 1 Y t µ.0 5 -... -Ym y m Y t µ.0 ;Y t RECEXAND X 1 -...-Xk ;Xs X 1 Y 1, /10 x 1 -...-Xk y 1 X s x k ;X s Y t 5 -..., /10 -Ym Y 1 y m X s y 1 -...-Ym Y t 5 -X1 y m ;Y t -...-Xk ;Yt CsL, system do weryfikacji bezpieczeństwa programów p.1/0

78 6 9 > BH A A = E A = = < I % %Yj % %Yi ; : > BH A A = E A = = < I % %Yi % %Yj M KL J O BH A N I BH A I M KL J Systemy dowodowe: modele System dla formuł postaci A B M # BISIM µ Y i Y j X i X j µ >@? µ >@? BDC BDC Y j Y i X j X i X i X j µ µ >@? >@? BGF BGF Y i Y i Y j Y j M # REC X i. X i X i X j X j X j CsL, system do weryfikacji bezpieczeństwa programów p.13/0

9 CC dla NI, termy Aby zbudować infrastrukturę CC dla NI trzeba pokazać jak budować warunki weryfikacyjne i jak ich dowodzić. Dla logiki dowodzącej równość termów mówimy: V Act H Act H w.: V jest dowodliwy ma własność NI. Dowód: V definiuje kontekst algebraiczny dla Non-Interference. CsL, system do weryfikacji bezpieczeństwa programów p.14/0

7 6 6 8 Q 9 Q 8 Q 9 9 CC dla NI, modele Dla logiki dowodzącej równość modeli definiujemy modele dla kontekstów algebraicznych: 1 Act H 7 Act H Warunek weryfikacyjny definiujemy jako: V 1 gdzie 1 w.: V jest dowodliwy Dowód: 1 init init 1 init jest mnogościową sumą 1 and. 1 ma własność NI. init oznacza, że stany początkowe modeli 1 i są równoważne, więc Act H Act H. CsL, system do weryfikacji bezpieczeństwa programów p.15/0

rzykładowy program w CsL chanof int comm1; chanof comm1 comm var comm1 c1; var comm c; env Sender( 5 )... proc Sender( int x ) { %{ Console.WriteLine( "{0}", x ); comm1 privatec = null; int y; %} c? privatec; ( privatec? y ) { Sender( y ); } + ( c1? y ) { Sender( y+1 ); }; } proc... CsL, system do weryfikacji bezpieczeństwa programów p.16/0

Coq - definicje i reguły Zmienne i akcje Axiom Channels : Set. Axiom Vars :Set. Inductive Actions : Set := tau: Actions inch : Channels -> Vars -> Actions outch: Channels -> Vars -> Actions. rocesy Inductive SrocessBody : Set := nil : SrocessBody cons: Actions -> SrocessBody -> SrocessBody plus: SrocessBody -> SrocessBody -> SrocessBody nameroc: SrocessName -> SrocessBody. Inductive Srocess: Set := proc: rocnames -> SrocessBody -> Srocess. CsL, system do weryfikacji bezpieczeństwa programów p.17/0

Coq - jak używać Certyfikowanie ranslacja programu CsL -> Coq Wczytanie logiki i opisu programów. Wprowadzenie dowodów o równoważności. Utworzenie dowodów. Weryfikacja Wczytanie logiki Wczytanie opisu programów Wczytanie twierdzeń o równoważności wraz z dowodami. CsL, system do weryfikacji bezpieczeństwa programów p.18/0

CsL Coq proc Nadawca { [...] } int x; [...] Definition NadawcaBody := (Simple.cons [..]). Definition Nadawcarocess := (proc Nadawca NadawcaBody). (Simple.cons Simple.tau [...]). c! x; [...] (Simple.cons (Simple.outCh c x) [...]). CsL, system do weryfikacji bezpieczeństwa programów p.19/0

rzykład - Certyfikat Load Simple. Load testw0. Lemma m1: (Simple.Equiv Nadawca1 Nadawca). roof. Unfold Nadawca1.Unfold Nadawca. Apply Simple.equiv_body. Unfold NadawcaBody1.Unfold NadawcaBody. Apply Simple.prefix.Apply Simple.choice_m. Qed. CsL, system do weryfikacji bezpieczeństwa programów p.0/0