La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Palermo, 24 giugno 20041 Panoramica sulla sicurezza nei sistema ad agenti.

Presentazioni simili


Presentazione sul tema: "Palermo, 24 giugno 20041 Panoramica sulla sicurezza nei sistema ad agenti."— Transcript della presentazione:

1 Palermo, 24 giugno Panoramica sulla sicurezza nei sistema ad agenti

2 Palermo, 24 giugno SOMMARIO INTRODUZIONE CARATTERISTICHE DI SICUREZZA TIPI DI MINACCE CONTROMISURE LA SICUREZZA IN JADE BIBLIOGRAFIA

3 Palermo, 24 giugno Introduzione Problemi: Mandare in esecuzione un agente di cui non si conosce la provenienza su una piattaforma, col rischio che possa accedere a risorse e dati sensibili o che possa eseguire operazioni illecite. Mandare in esecuzione un agente che tratta dati importanti in una piattaforma non identificata col rischio che i dati vengano intercettati e\o manipolati.

4 Palermo, 24 giugno Caratteristiche richieste Un utente si aspetta che il sistema ad agenti offra alcune caratteristiche di sicurezza: Integrità Riservatezza Responsabilità Disponibilità Anonimato

5 Palermo, 24 giugno Integrità La piattaforma dovrebbe proteggere gli agenti che ospita da modifiche non autorizzate del loro codice, del loro stato e dei loro dati. E’ anche importante l’integrità della piattaforma stessa: un nodo maligno potrebbe compromettere la sicurezza dell’intera rete.

6 Palermo, 24 giugno Riservatezza Qualsiasi dato memorizzato su una piattaforma o trasportato da un agente dovrebbe restare riservato. Non deve essere possibile portare attacchi eavesdropping, ossia l’intercettazione non autorizzata di comunicazioni. Un agente potrebbe anche voler tenere segreta la sua locazione.

7 Palermo, 24 giugno Responsabilità Un agente deve essere ritenuto responsabile delle sue azioni. Ciò è fondamentale, ad esempio, in applicativi per e-commerce, transazioni finanziarie, etc. Questo richiede che ogni agente venga identificato in maniera univoca, e tenuto sotto controllo. E’ bene tenere una traccia, in un file log, delle azioni di un agente, in modo da avere la storia delle azioni dell’agente e costruire la reputazione di un agente.

8 Palermo, 24 giugno Disponibilità La piattaforma dove assicurare la disponibilità di dati e servizi agli agenti. Deve evitare il rischio di creare situazioni di denial of service, ossia per non trovarsi nelle condizioni di non riuscire a fornire i servizi previsti.

9 Palermo, 24 giugno Anonimato Una piattaforma dovrebbe trovare un equilibrio tra i requisiti di riservatezza degli agenti e la caratteristica di poter attribuire agli agenti la responsabilità del loro comportamento. In generale, la piattaforma dovrebbe essere in grado di tenere segreta l’identità di un agente, ma, nello stesso tempo, di dare la possibilità di determinare l’identità dell’agente qualora risulti necessario, ad esempio per motivi legali.

10 Palermo, 24 giugno Minacce Le possiamo classificare in: Agente che attacca piattaforma Piattaforma che attacca i suoi agenti Agente che attacca agente Altri che attaccano il sistema

11 Palermo, 24 giugno Agente contro piattaforma Possibili minacce di questo tipo sono : unauthorized access Quando un agente cerca di accedere a servizi e risorse senza la necessaria autorizzazione. masquerading Quando una agente simula l’identità di un altro agente. denial of service Quando un agente occupa, con task e/o messaggi fittizzi, una quantità eccessiva di risorse di calcolo della piattaforma.

12 Palermo, 24 giugno Piattaforma contro agenti Possibili minacce di questo tipo sono : masquerading Quando una piattaforma assume l’identità di un’altra piattaforma. denial of service Quando la piattaforma ignora le richieste dell’agente, non alloca ad esso risorse. eavesdropping Quando la piattaforma, intercetta comunicazioni segrete, oppure tutti i passi di un agente. alteration Quando la piattaforma altera il codice di un agente

13 Palermo, 24 giugno Agente contro agente Possibili minacce di questo tipo sono : unauthorized access Quando un agente non autorizzato invoca i metodi pubblici di un altro, o accede al codice. masquerading Quando un agente assume l’entità di un altro e quindi può comunicare con altri malignamente denial of service Quando un agente impegna un’altro agente, per esempio inviandogli continuamente messaggi. repudiation Quando un agente nega una transazione o comunicazione realmente avvenuta.

14 Palermo, 24 giugno Altri contro il sistema Possibili minacce di questo tipo sono : unauthorized access Quando agenti remoti richiedono l’accesso a risorse per le quali non sono autorizzati. masquerading Quando agenti e piattaforme assumono identità di altri per effettuare operazioni illecite denial of service Quando entità remote impegnano le risorse di una piattaforma copy and replay Quando entità remote intercettano messaggi che transitano e ne effettuano una copia per poi ritrasmetterla.

15 Palermo, 24 giugno Contromisure Tecniche per assicurare la sicurezza, le dividiamo: Convenzionali utili per quello che riguarda gli agenti statici, ma che danno problemi quando si è in presenza di mobilità.Convenzionali Innovative nuove tecniche che si orientano alla sicurezza degli agenti mobili.Innovative

16 Palermo, 24 giugno Contromisure Convenzionali Alcune di esse sono: Cifratura Cifrario a sostituzione Cifrario a trasposizione Crittografia a chiave segreta Crittografia a chiave pubblica Sintesi di messaggi. Firma digitale Certificati a chiave pubblica Soluzione Single Hop

17 Palermo, 24 giugno Cifratura In questa tecnica i messaggi da codificare “TESTI IN CHIARO” vengono trasformati da una funzione chiamata “CHIAVE” ed il risultato è il “TESTO CIFRATO”. I metodi di cifratura più semplici sono: Cifrario a sostituzione: ogni lettera o gruppo di lettere viene sostituita da un’altra lettera o gruppo di lettere. Es. Cifrario di Cesare. Cifrario a trasposizione: le lettere vengono riordinate ma non sostituite. Es. Cifrario a trasposizione per colonne.

18 Palermo, 24 giugno Crittografia a chiave segreta In questa tecnica la chiave usata in fase di codifica è uguale a quella di decodifica. Quindi un’unica chiave per tutti da tenere strettamente segreta, ecco perchè chiave segreta. Anche in presenza di chiavi estremamente complesse, se un intruso riesce ad avere la chiave, il sistema diventa non sicuro.

19 Palermo, 24 giugno Crittografia a chiave pubblica In questa tecnica la chiave usata in fase di codifica è diversa da quella di decodifica. Ogni utente possiede una chiave pubblica, nota a tutti, per cifrare i messaggi da inviare a quell’utente e una segreta, nota solo all’utente, per decifrare i messaggi. L’uso della coppia di chiavi può essere invertito. Digest di messaggiDigest di messaggi Firme digitaliFirme digitali Certificati a chiave pubblicaCertificati a chiave pubblica

20 Palermo, 24 giugno Digest di messaggi Il messaggio viene elaborato da una funzione che restituisce un riassunto, tipicamente una sequenza di bit chiamata “hash” o “message digest”. Anche una piccola modifica del messaggio da una differenza nel riassunto prodotto. Le funzioni di hash possono essere usate per verificare l’integrità dei messaggi, ma non per la loro segretezza.

21 Palermo, 24 giugno Firme Digitali Questa tecnica permette di assicurare l’autenticità di un documento mediante l’utilizzo della firma digitale del mittente. L’utilizzo di questa tecnica assicura che: Il destinatario possa verificare l’identità del mittente. Il mittente non possa poi disconoscere il messaggio firmato. Il destinatario non possa inventarsi il messaggio firmato. Una firma digitale si ottiene applicando un algoritmo di cifratura a chiave pubblica ad una sintesi del testo in chiaro (hash). La sintesi del messaggio viene cifrata usando la chiave segreta del mittente, il risultato è la firma digitale. Il documento in chiaro e la firma digitale vengono inviati al destinatario.

22 Palermo, 24 giugno Certificati a chiave pubblica Viene rilasciato da un’organizzazione di fiducia (Certification Authority) e permette l’identificazione del portatore. Un certificato contiene diversi campi tra i quali: Issuer rappresenta l’autorità che ha rilasciato il certificato. Validity ci informa sulla scadenza del certificato Subject ci informa sull’entità identificata dal certificato. Pubblic Key la più importante: la chiave pubblica del subject Signature la firma digitale apposta sul certificato dall’autorità che lo ha rilasciato. Essa è ottenuta utilizzando la chiave privata dell’autorità.

23 Palermo, 24 giugno Contromisure innovative Individuiamo due categorie : Preventive: orientate ad evitare gli attacchi Di rilevamento: orientate a rilevare l’attacco dopo che è avvenuto Considerati i due elementi principali di un sistema ad agenti che sono Piattaforma e Agente individueremo due categorie di tecniche di protezione: Tecniche per la protezione delle piattaformeTecniche per la protezione delle piattaforme Tecniche per la protezione degli agentiTecniche per la protezione degli agenti TABELLA DELLE CONTROMISURE

24 Palermo, 24 giugno Tabella Contromisure CONTROMISURACATEGORIAOGGETTO Signed codeRilevamentoPIATTAFORMA State appraisalRilevamentoPIATTAFORMA Path historiesRilevamentoPIATTAFORMA Riconoscimento con impronte DigitaliPrevenzionePIATTAFORMA Software-based fault isolationPrevenzionePIATTAFORMA Safe code interpretationPrevenzionePIATTAFORMA Attribute certificatePrevenzionePIATTAFORMA Proof carrying codePrevenzionePIATTAFORMA Partial result encapsulationRilevamentoAGENTE Mutual itinerary recordingRilevamentoAGENTE Replication and votingRilevamentoAGENTE Execution tracingRilevamentoAGENTE Environmental key generationPrevenzioneAGENTE Encrypted functionsPrevenzioneAGENTE Obfuscated codePrevenzioneAGENTE

25 Palermo, 24 giugno Protezione Piattaforma Tecniche per la protezione di piattaforme sono: software-based fault isolation safe code interpretation state appraisal signed code attribute certificates path histories proof carrying code Biometric authentication

26 Palermo, 24 giugno Software-based fault isolation (Prevenzione-Piattaforma) le applicazioni vengono isolate in domini di sicurezza (sandbox). il codice insicuro viene trasformato in modo che tutti gli accessi siano confinati a risorse contenute nel dominio. vengono esclusi dal dominio di sicurezza le risorse del file system locale, gli accessi alla rete, le variabili di ambiente, gli accessi a basi di dati.

27 Palermo, 24 giugno Safe code interpretation (Prevenzione - Piattaforma) i sistemi ad agenti sono spesso sviluppati usando linguaggi di programmazione interpretati. i comandi potenzialmente pericolosi vengono controllati prima di essere eseguiti, dopo di che vengono resi sicuri o negati.

28 Palermo, 24 giugno Signed code (Rilevamento – Piattaforma) consiste nel contrassegnare il codice con una firma digitale. chi firma il codice è il creatore dell’agente, l’utente dell’agente.

29 Palermo, 24 giugno State Appraisal (Rilevamento – Piattaforma) l’autore e l’utente producono delle funzioni di stima dello stato di un agente. eventuali attacchi allo stato possono essere rilevati controllando tali stime. uno svantaggio è che gli stati assumibili sono numerosi e quindi l’agente si potrebbe trovare in maniera lecita in uno stato non stimato.

30 Palermo, 24 giugno Attribute certificate (Prevenzione – Piattaforma) ogni agente possiede l’attribute certificate in cui sono riportati anche: L’identità del proprietario L’identità del rilasciante La validità del certificato una piattaforma che riceve l’agente verifica la validità dei certificati, l’identità di chi ha emesso il certificato e se i privilegi concordano con la sua politica di sicurezza.

31 Palermo, 24 giugno Path histories (Rilevamento – Piattaforma) si mantiene una registrazione autenticata delle piattaforme visitate da un agente. ogni piattaforma aggiunge una voce firmata al percorso e lo invia alla successiva. una piattaforma può decidere, in base alla provenienza dell’agente o dal percorso da esso effettuato, se mandare in esecuzione un agente. uno svantaggio è che quando il percorso dell’agente è costituito da molti step, la verifica diventa computazionalmente pesante.

32 Palermo, 24 giugno Proof carrying code (Prevenzione – Piattaforma) si obbliga il proprietario di ogni agente a provare che l’agente possegga delle caratteristiche di sicurezza negoziate in precedenza con l’ambiente di esecuzione e in accordo con la politica di sicurezza. Il codice e la prova vengono inviate insieme, in modo da verificare le proprietà di sicurezza. la prova è strettamente legata al codice.

33 Palermo, 24 giugno Biometric authentication (Prevenzione – Piattaforma) una piattaforma, prima di ospitare un agente, controlla che l’utente che lo lancia sia il vero e solo che può utilizzare le sue funzioni. Tale autenticazione avviene tramite verifica di username, password e infine tramite la verifica di una caratteristica biometrica dell’utente (ad esempio l’impronta digitale prelevata da un sensore)

34 Palermo, 24 giugno Protezione Agente Tecniche per la protezione di Agenti: partial result encapsulation mutual itinerary recording replication and voting execution tracing environmental key generation encrypted functions obfuscated code

35 Palermo, 24 giugno Partial result encapsulation (Rilevamento – Agente) Si incapsulano i risultati prodotti da un agente, in ogni nodo visitato, per una verifica successiva quando torna al suo punto di origine o sui nodi sicuri. Ci sono tre modi alternativi di incapsulare i risultati : dare all’agente gli strumenti per incapsulare le informazioni; affidarsi alle capacità di incapsulamento della piattaforma; affidarsi ad una terza parte fidata.

36 Palermo, 24 giugno Mutual itinerary recording (Rilevamento – Agente) Le informazioni del percorso di un agente vengono registrate da un altro agente cooperante e viceversa. Le informazioni vengono trasmesse mediante un canale autenticato. E’ improbabile che se l’agente si trova in una piattaforma maliziosa, questa collabori con un’altra piattaforma maliziosa visitata in quel momento dal suo compagno. Uno svantaggio è l’esigenza di avere un canale autenticato per la coppia di agenti.

37 Palermo, 24 giugno Replication and voting (Rilevamento – Agente) Vengono effettuate numerose copie dello stesso agente. Anche se una piattaforma non fidata può modificare alcune copie dell’agente, la presenza di un elevato numero di replicati garantisce che la computazione sia portata a termine con successo. Uno svantaggio è il consumo di risorse dovuto alle diverse copie dell’agente.

38 Palermo, 24 giugno Execution tracing (Rilevamento – Agente) Si effettua una registrazione del comportamento di un agente durante l’esecuzione su ciascuna piattaforma. Ogni piattaforma coinvolta crea e mantiene la registrazione e fornisce alla fine una impronta crittografica della registrazione. Uno svantaggio è quello di dover mantenere numerose registrazioni.

39 Palermo, 24 giugno Environmental key generation (Prevenzione – Agente) permette ad un agente di eseguire azioni predefinite quando certe condizioni ambientali risultino verificate. se sono verificate le condizioni richieste tramite una chiave viene sbloccata una porzione di codice cifrata. uno svantaggio è che molte politiche di sicurezza non prevedono l’esecuzione di codice generato dinamicamente.

40 Palermo, 24 giugno Encrypted functions (Prevenzione – Agente) Al posto di eseguire la funzione dell’agente, ne viene seguita un’altra cifrata il risultato poi verrà decifrato. Se vogliamo calcolare f(x) ma non si vuole far conoscere f, allora f viene cifrata in cf, viene calcolato cf(x) che poi decifrato darà f(x). 1) f  cf 2) calcolo cf(x) 3) cf(x)  f(x) Un problema è quello di trovare appropriati schemi di cifratura che possano trasformare funzioni arbitrarie nella maniera voluta

41 Palermo, 24 giugno Obfuscated code (Prevenzione – Agente) il codice viene “offuscato” in modo tale che nessuno sia in grado di capire il suo funzionamento, o sia in grado di modificarlo senza che ciò venga rilevato.

42 Palermo, 24 giugno La Sicurezza in Jade: Jade-S Due modelli di sicurezza: Code-Centric: tipico del linguaggio JAVACode-Centric User-Centric: introdotto con JADE-SUser-Centric

43 Palermo, 24 giugno Modello Code-Centric Alla base di tutto c’è il codice. Le decisioni da prendere in materia di sicurezza si basano sulle caratteristiche del codice da eseguire, da quale dominio proviene, chi lo ha firmato Si presta poco per applicazioni ad agenti mobili.

44 Palermo, 24 giugno Modello User-Centric Le misure di sicurezza sono basate sull’utente, su chi esegue l’applicazione e non sull’applicazione che viene eseguita. Il modello Jade individua i seguenti concetti: Principal Risorse Permessi ed è in grado di gestire: AutenticazioneAutenticazione, AutorizzazioneAutorizzazione DelegaDelega, Canali SicuriCanali Sicuri

45 Palermo, 24 giugno Principal Il principal è una qualsiasi entità la cui identità può essere provata. (persone, enti, associazioni) In Jade-S anche i singoli agenti vengono associati ad un principal, il cui nome è quello dell’agente stesso Più utenti possono essere raggruppati in gruppi in modo da associare gerarchicamente i privilegi e rendere flessibili le politiche di sicurezza.

46 Palermo, 24 giugno Risorse 1.Sono presenti quelle del modello Java: file system, accessi alla rete, accessi a basi di dati. 2.Inoltre sono risorse gli agenti stessi ed i container 3.Sono organizzate gerarchicamente in modo da essere raggruppate nella concessione dei permessi. 4.Tra di esse non sono presenti tempi di cpu, spazio in memoria o su disco.

47 Palermo, 24 giugno Permessi E’ l’oggetto che attribuisce la capacità di eseguire un’azione Alla richiesta di un accesso ad una risorsa, le funzioni di controllo confrontano i permessi del principal con quelli che servono per quell’operazione

48 Palermo, 24 giugno Autenticazione Ad ogni entità bisogna dare un’identità, per assegnargli i permessi e i privilegi. Autenticazione degli utenti in jade un utente si autentica come proprietario di un agente tramite username e password. Autenticazione degli agenti avviene quando questi richiedono accesso alle risorse tramite un certificato di identità.

49 Palermo, 24 giugno Autorizzazione Ogni agente ha un certificato di autorizzazione, dove sono elencati i permessi concessi all’agente. Questi certificati possono essere ottenuti all’atto della creazione o tramite delega da altri agenti

50 Palermo, 24 giugno Delega Quando un oggetto “delegante” autorizza un altro “delegato” ad eseguire un compito utilizzando alcuni diritti di cui il delegante è in possesso. Delega semplice il delegante delega il delegato a svolgere un suo compito usando i propri diritti. Delega a cascata il delegato delega a sua volta un altro agente a svolgere un suo compito usando i propri diritti e quelli ricevuti dal delegante.

51 Palermo, 24 giugno Canali Sicuri I container di Jade-S possono essere connessi alla piattaforma principale tramite collegamento remoto usando canali sicuri. In Jade-S il modello proposto usa il protocollo SSL (Secure Sockets Layer) Protocollo sviluppato da Netscape Usa una combinazione di processi crittografici. Le comunicazioni si basano su: –Negoziazione: le due parti si accordano sui meccanismi di cifratura da utilizzare –Autenticazione: le parti si identificano e scelgono la chiave segreta –Invio dati cifrati: sarà usata la chiave scelta

52 Palermo, 24 giugno Bibliografia Wayne Jansen, Tom Karygiannis NIST Special Publication – Mobile Agent Security Wayne A. Jansen Countermeasures for Mobile Agent Security Giosuè Vitaglione Jade Tutorial Agostino Poggi, Giovanni Rimassa, Michele Tomaiuolo Multi-User and Security Support for Multi-Agent Systems


Scaricare ppt "Palermo, 24 giugno 20041 Panoramica sulla sicurezza nei sistema ad agenti."

Presentazioni simili


Annunci Google