Panoramica sulla sicurezza nei sistema ad agenti Palermo, 24 giugno 2004 1 SOMMARIO • INTRODUZIONE • CARATTERISTICHE DI SICUREZZA • TIPI DI MINACCE • CONTROMISURE • LA SICUREZZA IN JADE • BIBLIOGRAFIA Palermo, 24 giugno 2004 2 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. Palermo, 24 giugno 2004 3 Caratteristiche richieste Un utente si aspetta che il sistema ad agenti offra alcune caratteristiche di sicurezza: •Integrità •Riservatezza •Responsabilità •Disponibilità •Anonimato Palermo, 24 giugno 2004 4 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. Palermo, 24 giugno 2004 5 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. Palermo, 24 giugno 2004 6 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. Palermo, 24 giugno 2004 7 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. Palermo, 24 giugno 2004 8 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. Palermo, 24 giugno 2004 9 Minacce Le possiamo classificare in: • Agente che attacca piattaforma • Piattaforma che attacca i suoi agenti • Agente che attacca agente • Altri che attaccano il sistema Palermo, 24 giugno 2004 10 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. Palermo, 24 giugno 2004 11 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 Palermo, 24 giugno 2004 12 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. Palermo, 24 giugno 2004 13 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. Palermo, 24 giugno 2004 14 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à. • Innovative nuove tecniche che si orientano alla sicurezza degli agenti mobili. Palermo, 24 giugno 2004 15 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 Palermo, 24 giugno 2004 16 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. Palermo, 24 giugno 2004 17 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. Palermo, 24 giugno 2004 18 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 messaggi •Firme digitali 24 giugno 2004 •Certificati a chiave Palermo, pubblica 19 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. Palermo, 24 giugno 2004 20 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. Palermo, 24 giugno 2004 21 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à. Palermo, 24 giugno 2004 22 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 piattaforme • Tecniche per la protezione degli agenti TABELLA DELLE CONTROMISURE Palermo, 24 giugno 2004 23 Tabella Contromisure CONTROMISURA CATEGORIA OGGETTO Signed code Rilevamento PIATTAFORMA State appraisal Rilevamento PIATTAFORMA Path histories Rilevamento PIATTAFORMA Riconoscimento con impronte Digitali Prevenzione PIATTAFORMA Software-based fault isolation Prevenzione PIATTAFORMA Safe code interpretation Prevenzione PIATTAFORMA Attribute certificate Prevenzione PIATTAFORMA Proof carrying code Prevenzione PIATTAFORMA Partial result encapsulation Rilevamento AGENTE Mutual itinerary recording Rilevamento AGENTE Replication and voting Rilevamento AGENTE Execution tracing Rilevamento AGENTE Environmental key generation Prevenzione AGENTE Encrypted functions Prevenzione AGENTE Prevenzione Palermo, 24 giugno 2004 AGENTE Obfuscated code 24 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 Palermo, 24 giugno 2004 25 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. Palermo, 24 giugno 2004 26 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. Palermo, 24 giugno 2004 27 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. Palermo, 24 giugno 2004 28 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. Palermo, 24 giugno 2004 29 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. Palermo, 24 giugno 2004 30 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. Palermo, 24 giugno 2004 31 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. Palermo, 24 giugno 2004 32 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) Palermo, 24 giugno 2004 33 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 Palermo, 24 giugno 2004 34 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. Palermo, 24 giugno 2004 35 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 Palermo, 24 giugno 2004 36 autenticato per la coppia di agenti. 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. Palermo, 24 giugno 2004 37 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. Palermo, 24 giugno 2004 38 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. Palermo, 24 giugno 2004 39 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 Palermo, 24 giugno 2004 40 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. Palermo, 24 giugno 2004 41 La Sicurezza in Jade: Jade-S Due modelli di sicurezza: • Code-Centric: tipico del linguaggio JAVA • User-Centric: introdotto con JADE-S Palermo, 24 giugno 2004 42 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. Palermo, 24 giugno 2004 43 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: Autenticazione, Autorizzazione Delega, Canali Sicuri Palermo, 24 giugno 2004 44 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. Palermo, 24 giugno 2004 45 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. Palermo, 24 giugno 2004 46 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 Palermo, 24 giugno 2004 47 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à. Palermo, 24 giugno 2004 48 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 Palermo, 24 giugno 2004 49 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. Palermo, 24 giugno 2004 50 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 Palermo, 24 giugno 2004 51 Bibliografia • Wayne Jansen, Tom Karygiannis NIST Special Publication 800-19 – 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 Palermo, 24 giugno 2004 52