1 Seminario di Sicurezza Martino Angela a.a. 2007-2008 Prof. S.Bistarelli.

Slides:



Advertisements
Presentazioni simili
Automi temporizzati.
Advertisements

1 Introduzione ai calcolatori Parte II Software di base.
Procedure e funzioni A. Ferrari.
I linguaggi di programmazione
Linguaggi di programmazione
Esercitazione guidata 1
Semantica di linguaggi di programmazione Ne esistono differenti stili a seconda di paradigma di programmazione uso (validazione, prototyping, verifica.
Specifiche Algebriche Modello Iniziale Versione 1.0 Gianna Reggio
Algoritmi e Programmazione
Metodologie di Programmazione = decomposizione basata su astrazioni
1 Metodologie di Programmazione. 2 Contenuto generale §tecniche per la programmazione orientata ad oggetti (in piccolo) §esemplificate utilizzando il.
Sintassi- Semantica operazionale
1 Il punto di vista Un sistema è una parte del mondo che una persona o un gruppo di persone, durante un certo intervallo di tempo, sceglie di considerare.
4 – Progettazione – Introduzione e Modello E-R
Lez. 31 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Programmazione.
Lez. 41 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Programmazione.
Quadro di riferimento INValSI Scienze I livelli di competenza
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Il ragionamento classico
Model Checking.
Semantiche dei linguaggi di programmazione
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
Intelligenza Artificiale 1 Gestione della conoscenza lezione 7 Prof. M.T. PAZIENZA a.a
Intelligenza Artificiale 1 Gestione della conoscenza lezione 8
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
1 Le competenze di base dell'asse matematico Utilizzare le tecniche e le procedure del calcolo aritmetico ed algebrico, rappresentandole anche sotto forma.
Informatica di base A.A. 2003/2004 Algoritmi e programmi
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L’attività di.
Introduzione alla programmazione ll
Funzioni, Rappresentazioni e Coscienza
Fondamentidi Programmazione Corso: Fondamenti di Programmazione Classe: PARI-DISPARI Docente: Prof. Luisa Gargano Testo: Aho, Ulman, Foundations of Computer.
1 Implementazione di Linguaggi 2 Implementazione di Linguaggi 2 Federico Bernardi Type checking 2° parte Type checking 2° parte - Equivalenza di type expressions.
Unità Didattica 2 I Linguaggi di Programmazione
Intelligenza Artificiale
Fondamenti di Informatica1 Linguaggi Classificati rispetto alle caratteristiche principali: –potere espressivo che influenza lo stile di programmazione.
Le funzioni.
Modello E-R Generalizzazioni
Progettazione di una base di dati
Modello E-R Generalizzazioni
AN FI Un denominatoe comune Comandi u notazioni che esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno.
L’AUTOMA ESECUTORE Un automa capace di ricevere dall’esterno una descrizione dello algoritmo richiesto cioè capace di interpretare un linguaggio (linguaggio.
Intelligenza Artificiale - AA 2001/2002 Logica formale (Parte 2) - 1 Intelligenza Artificiale Breve introduzione alla logica classica (Parte 2) Marco Piastra.
1 Programmazione = decomposizione basata su astrazioni (con riferimento a Java)
Logica Matematica Seconda lezione.
Database & Information Retrieval
Lezione 1 Linguaggi di programmazione – Algoritmi –Istruzioni
1 Astrazioni sui dati : Ragionare sui Tipi di Dato Astratti dispense prof. G. Levi.
Usability Lab 2007 Corso Laboratorio di Basi Dati II Interfacce Visuali Avanzate (AVI) Linguaggio di interrogazione iconico Prof. Flavio Fontana Usability.
1 Nuovo Obbligo Scolastico: Gli Assi Culturali. 2 Asse dei Linguaggi Asse Matematico Asse Scientifico-Tecnologico Asse Storico Sociale.
Sistemi basati su conoscenza Gestione della conoscenza Prof. M.T. PAZIENZA a.a
La logica Dare un significato preciso alle affermazioni matematiche
Ugo de'Liguoro - Informatica 2 a.a. 03/04 Lez. 7 Tipi di dato e strutture dati Specifica e realizzazione di strutture informative come classi.
1 Tipi di Dato §descrittori, tipi, controllo e inferenza dei tipi §specifica (semantica) e implementazione di tipi di dato l implementazioni “sequenziali”
1 Interpretazione astratta: un approccio sistematico all’analisi statica.
5/6/20151 Metodi formali dello sviluppo software a.a.2013/2014 Prof. Anna Labella.
Algoritmi.
public class volume { public static void main (String[] args) { final double bott_vol =2.0; final double latt_vol = 0.355; int bott_num = 4; int latt_num.
Elementi di semantica denotazionale ed operazionale
AOT Lab Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Rappresentazione della Conoscenza e Ragionamento.
1 Macchine astratte, linguaggi, interpretazione, compilazione.
Strategie di progetto Si possono utilizzare le strategie tipiche dello sviluppo di un processo di ingegnerizzazione (es. ingegneria del software). Strategie.
1 Linguaggi: guardando la semantica §esistono un insieme di concetti semantici e di strutture di implementazione in termini dei quali si descrivono in.
1 Metodologie di Programmazione = decomposizione basata su astrazioni.
Espressioni regolari (1)
Progettazione di basi di dati: metodologie e modelli
Automi temporizzati.
Unità di apprendimento 6
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Transcript della presentazione:

1 Seminario di Sicurezza Martino Angela a.a Prof. S.Bistarelli

2 Cosa sono Sono dei linguaggi che vengono usati per la rappresentazione del comportamento e la descrizione di sistemi informatici. - Sintassi ben definita. - Semantica di base. - Sistema logico-matematico come struttura sottostante. Approccio induttivo vs Model checking technique Utilizzo, grado di automazione, completezza, dominio, pre/post sviluppo Premesse ProprietàLogica temporale; tabella di verità Venire incontro alle esigenze.

3 Inductive verification tecnique - Usate per problematiche poco complesse. - Forniscono tecniche per provare teoremi. - Mostrano come una specifica di sistema incontra un insieme di proprietà. - Più step. - Theorem prover (trova prove intermedie). - Interazione con lutilizzatore (lemmi). - Fase di progettazione del prodotto. Model checking technique Ammette stati transitori - Fatto su misura per lo strumento che lo utilizza - Poche interazioni - Equivalenza modello e proprietà desiderata - Test sui prodotti -

4 Specifiche formali E la descrizione dettagliata delle caratteristiche di un sistema o di un programma. E una specifica scritta in un linguaggio formale con una sintassi ristretta e ben definita basata su concetti matematici fondamentali. - E un linguaggio di primo livello basato sulla logica e sviluppato da SRI international. - Linguaggio non procedurale. - Ricchezza espressiva (Union, Diff, End, Or, forAll, Ε, If-Then-Else…) - Moduli (Predefiniti, funzioni, parametri, asserzioni, tipi di dato) > manipolazioneDesignator, Boolean.. Costruiti intorno al modulo, usati per la dimostrazione di teoremi. Globali o interne, informazioni sullo stato del sistema. Special

5 Le prime tecniche di verifica formale I primi metodi cercavano di meccanizzare e formalizzare le fasi di sviluppo di alcuni processi, portando ai moderni modelli di controllo e allanalisi di protocolli di comunicazione. Tra i primi The Enhanced Hierarchical Development Methodology (EHDM) Forniva modelli di progettazione per limplementazione di specifiche e verifiche usando il concetto di successivi miglioramenti delle stesse. Si creava una gerarchia di macchine astratte ed il passaggio delle informazioni in essa accresceva il livello di dettaglio. La macchina astratta(AM) era dotata di un insieme di moduli di specifiche scritte in Special, strumenti di supporto, controlli sintattici, mappe tra coppie di macchine

6 The Hierarchical Development Methodology (EHDM) Hdm of sri international E una metodologia pensata come una Struttura gerarchica di base che doveva essere di supporto alle fasi di progettazione e implementazione di programmi generici Supporta la descrizione di un sistema a vari livelli di astrazione usando uno specifico linguaggio,tecniche di verifica per dimostrare che i successivi livelli di astrazione fossero consistenti Multilevel Security Tool: MLS tool il primo model checking Linput fornito era una specifica formale in SPECIAL Strumento completamente automatico per verificare le proprietà del sistema,le violazioni delle specifiche descrittive MLS generator per generare formule per raffinare le specifiche (Vc) Theorem prover processava le formule del programma e forniva una lista di quelle che fallivano/superavano il test

7 I livelli di astrazione di HDM Requirements Model External interfaces AM1 Abstract machine AM2 Primitive machine AM n Il più basso livello è rappresentato dalla macchina primitiva, vista come una combinazione di hw e sw, che verificava il processo in esecuzione. La gerarchia inizia con lanalisi e laccettazione di alcuni requisiti che venivano estesi in un modello coerente che veniva testato e rappresentava la base delle verifiche degli altri livelli La prima A.M. era generalmente uninterfaccia per specifiche fornite dallesterno. Attraverso le funzioni implementate in termini di chiamate al livello più basso, i programmi venivano scritti in un linguaggio comprensibile al livello successivo (linguaggio intermedio).

8 In ogni macchina astratta venivano implementate delle funzioni in termini di chiamate al livello più basso che erano riunite in un programma.. Il programma risultante veniva mandato ad un traduttore che lo indirizzava nel Common Internal Form (CIF), che lo rendeva comprensibile agli strumenti del sistema il quale usando la traccia i due livelli di specifiche erano tradotte in un linguaggio intermedio. Questo linguaggio insieme al CIF generava condizioni di verifica al dispositivo Boyer- Moore theorem prover. Lesattezza del CIF (corrispondenza con il programma) implicava la correttezza della reale implementazione AMk AMk+1 Mapping specification Linguaggio intermedio CIF Verification condition generator Theorem prover Proof results Translator Specifica del modello verifica Il funzionamento

9. The Boyer-Moore Theorem Prover Lutente deve fornire assiomi,teoremi,lemmata, necessari durante il processo dimostrativo (rispetto di proprietà transitiva/riflessiva/simmetria). VCs: Verification Condition, condizioni che dovevano essere verificate provenienti dal Generator. Conoscenze dellutente Traccia delle vecchie dimostrazioni Eseguiva la formula in una serie di passi - Semplificare la formula (uso costrutti logici,lemmi). - Riformulare la dichiarazione scambiando termini con altri più facili. - Eguaglianze sostitutive: sostituire i vincoli con altri equivalenti. - Generalizzare la formula: variabili al posto delle regole già dimostrate. - Eliminazione dei termini irrilevanti. - [Induzione per provare teoremi quando necessario] Usciva appena ritornava una soluzione altrimenti andava al passo successivo.

10 Prototipe Verification System Fu costruito come un prototipo da utilizzare per la verifica di modelli quali EHDM e HDM Mette a disposizione specifiche di controllo, dimostrazioni in un linguaggio leggibile ma non forniva una dettagliata metodologia di sviluppo serve per spiegare dimostrazioni e teoremi in passi successivi Si serve di un dispositivo di dimostrazione di teoremi molto interattivo: Theorem prover. Proof checker: Strumento di controllo (grammaticale e sintattico). Strumenti Declaration: Dichiarazioni per la teoria. Costrutti: Sottotipi, record, tipi di dato. Libreria interna: Preludes.

11 1.Fase esplorativa: La specifica viene ripulita. 2.Fase di sviluppo: Si lavora sullefficienza della dimostrazione. 3.Fase di presentazione: La prova viene ulteriormente raffinata e controllata. 4.Generalizzazione: Si analizza la dimostrazione per apprendere. Il proof checker analizza la conclusione, progressivamente ricava deduzioni, scopre dei sottobiettivi e le fasi vengono ripetute fino al raggiungimento del sottobiettivo più banale, controllando che i vincoli vengano rispettati. Deduzioni primitive: - Regole proposizionali: Tagliare il problema in parti più piccole. - Regole per quantificare: Variabili di tipo non numerico. - Regole di eguaglianza: Come il rimpiazzo di una parte di eguaglianza premessa da unaltra. - Lemmi, assiomi, procedure decisionali… Il processo dimostrativo si divide in 4 fasi:

12 Symbolic Model Verifier (SMV) A= inevitabile per tutti i percorsi, E = possibilita per almeno un percorso x= prox stato f=qualche stato futuro g= tutti gli stati u = finchè Questi programmi usano la logica CTL per esprimere le loro proprietà. Le loro capacità sono: - Verità della specifica in tutti gli stati - Traccia delle operazioni svolte in esecuzione Sono formati da diversi moduli (Main identifica la radice) Può avere diversi tipi di espressioni: VAR, ASSIGN,INVAR, DEFINE,SPEC.. 1°) 2°) E basato sulla logica degli alberi logici (CTL) alle connessioni è attribuito un peso temporale. La connessione è rappresentata da 2 lettere: AX=in tutto il prossimo cammino EX= cè almeno un prossimo cammino

13 p 1, p 3 s 0 p1s1p1s1 p 2, p 3 s 2 stato iniziale s0s0 s1s1 s2s2 s2s2 s0s0 s2s2 s2s2 s2s2 s2s2 Sistema M con 3 stati possibili: s0 s1 s2 Modello rappresentativo del sistema… Passaggio da uno stato allaltro p Atomo del sistema che si trova in quello stato Stati di transizione possibili: s0 s1 s0 s2 s1 s0 s1 s2 s2 s2 p1 è vero in s1 (p1 e p2) veri in s0 (p2 p3) in s2 Grafico districato: percorsi computazionali iniziando da uno stato

14 (n 1, n 2 ) (t 1,n 2 ) (c 1,n 2 )(t 1,t 2 ) (c 1,t 2 ) (t 1,t 2 ) (n 1,t 2 ) (n 1,c 2 ) (t 1,c 2 ) s1s1 s0s0 s2s2 s3s3 s5s5 s6s6 s8s8 s4s4 s7s7 Stato iniziale del sistema Il programma deve tradurre le proprietà di un sistema in elementi grafici 2 sistemi concorrenti che dividono una risorsa e non hanno accesso ad essa insieme Si dota un sistema di proprietà che ne anticipino la conclusione - Quale processo (p 1 / p 2 ) può entrare nella zona critica a quel tempo? 3 stati possibili: N i il processo i non tenta di entrare T i il processo i tenta di entrare C i il pocesso i si trova nella zona critica N T C Stati possibili del sistema: (n 1,n 2 ), (n 1,t 2 ), (n 1,c 2 ), (t 1,n 2 ), (t 1,t 2 ), (t 1,c 2 ), (c 1,n 2 ), (c 1,t 2 ) (c1,c2). Un altro esempio

15 (n 1, n 2 ) (t 1,n 2 ) (c 1,n 2 )(t 1,t 2 ) (c 1,t 2 ) (t 1,t 2 ) (n 1,t 2 ) (n 1,c 2 ) (t 1,c 2 ) s1s1 s0s0 s2s2 s3s3 s5s5 s6s6 s8s8 s4s4 s7s7 Stato iniziale del sistema Il grafico rappresenta le seguenti proprietà: Liveness: Un processo tenta di entrare ed eventualmente ce la fa: Per tutti i cammini se t i è vero nei passi futuri ci sarà c i. AG (t i AFc i ) Safety: Solo un processo può accedere alla risorsa ad un determinato tempo: In tutti i cammini c 1 e c 2 non possono apparire simultaneamente. AG ¬(c 1 Λ c 2 ) Nonblocking: Un processo può sempre chiedere di entrare: Per ogni cammino ha un successore t i. AG (n i EXt i )

16 Analizzatore di protocolli per i laboratori di ricerca navale Serve per crittografare protocolli, la loro autenticazione e i protocolli di distribuzione di chiavi. Usa il Prolog Presupposto: Intrusi alla scoperta di informazioni per accedere ai messaggi scambiati Lutente specifica gli stati nonsicuro e ne prova la raggiungibilità NPA Temporal Requirements Language:Esprime generici requisiti di distribuzione delle chiavi in base alle esigenze Contribuisce allo sviluppo di CAPSL (Common Autentication Protocol Specification Language): Specifiche sul protocollo dorigine Traduttore Linguaggio supportato dal sistema Protocol specification – types spec. – environment