Type-based analysis of security APIs

DSpace/Manakin Repository

Show simple item record

dc.contributor.advisor Focardi, Riccardo it_IT
dc.contributor.author Centenaro, Matteo <1981> it_IT
dc.date.accessioned 2011-06-25T10:42:06Z it_IT
dc.date.accessioned 2012-07-30T16:04:23Z
dc.date.available 2011-06-25T10:42:06Z it_IT
dc.date.available 2012-07-30T16:04:23Z
dc.date.issued 2011-03-03 it_IT
dc.identifier.uri http://hdl.handle.net/10579/1095 it_IT
dc.description.abstract Una security API è un'interfaccia che regola la comunicazione tra due processi, che vengono eseguiti con diversi livelli di affidabilità, allo scopo di assicurare che sia soddisfatta una determinata proprietà di sicurezza. In questo modo, un sistema potenzialmente non fidato può fruire delle funzionalità offerte da una risorsa sicura senza mettere a rischio la sicurezza dei dati in essa contenuti: la API deve infatti impedire che una delle possibili sequenze di suoi comandi permetta di usare in maniera inappropriata la risorsa fidata. Molto spesso una API di questo tipo viene progettata e sviluppata considerando quella che sarà la sua applicazione più comune e come questa utilizzerà i servizi messi a disposizione. Una mancata visione di insieme dei comandi esposti dalla API apre la strada ad un suo possibile utilizzo malevolo atto a sovvertire la sicurezza dei dati che dovrebbe proteggere. Negli ultimi anni, infatti, sono stati scoperti numerosi attacchi contro le security API esistenti. La tesi propone un'analisi, basata sui sistemi di tipi, per verificare la sicurezza di queste cruciali componenti. L'analisi formale dei linguaggi è, infatti, uno strumento molto potente per dimostrare che un dato programma soddisfa le proprietà di sicurezza richieste. Inoltre, fornisce anche un aiuto agli sviluppatori delle API per capire a fondo le cause delle vulnerabilità che le affliggono e li guida ad una programmazione consapevolmente sicura. Un attaccante che è in grado di osservare differenze nei risultati ottenuti invocando la stessa funzione di una API con diversi parametri di input, può utilizzarle per derivare informazioni sui segreti custoditi nella parte fidata del sistema. Una security API soggetta a questo genere di attacchi può essere resa sicura utilizzando una proprietà di non-interferenza. La tesi estende la teoria esistente nel campo dell'information flow security per analizzare la sicurezza di programmi che fanno uso di primitive crittografiche (sia randomizzate che deterministiche) e applica i risultati ottenuti per studiare la API impiegata per la verifica dei PIN nella rete degli sportelli ATM (bancomat). Utilizzando il sistema di tipi proposto, è stato possibile proporre e verificare una soluzione che rende sicura tale API. Una security API che, come risultato di una inaspettata sequenza di comandi, rivela una informazione che dovrebbe rimanere segreta, può essere invece analizzata con un sistema di tipi atto a controllare che la segretezza dei dati sia preservata durante tutto il tempo di esecuzione dei programmi. La tesi presenta il caso di programmi che offrono servizi per la gestione delle chiavi crittografiche, introducendo un sistema di tipi in grado di ragionare sulla sicurezza dello standard RSA PKCS\#11 e di verificare la correttezza di una nuova patch che lo rende sicuro. it_IT
dc.description.abstract A Security API is an interface between processes running at different levels of trust with the aim of assuring that a specific security policy holds. It allows an untrusted system to access the functionalities offered by a trusted secure resource assuring that no matter what sequence of the API commands are invoked, the intended security policy is satisfied. This kind of API is often developed having in mind a target application and how it will typically use the available services. It is thus easy to miss the fact that some functionalities could be used in a malicious way to break the intended security policy. In fact, a number of attacks to existing security APIs have been found in the last years. This thesis proposes a type-based analysis to verify the security of these critical components. Language-based analysis is, in fact, a powerful tool to formally prove security and, at the same time, helps API developers to understand the root-causes of known vulnerabilities affecting APIs and guides them in programming secure code. A security API which slowly leaks secret data to an attacker capable to spot interferences between input parameters and a command output can be secured by a noninterference policy. The thesis extends the setting of language-based information flow security to account for cryptographic expressions(both randomized and deterministic ones) and applies the obtained results to analyse the ATM PIN verification API. A possible fix to it is also proposed and shown to be secure by typing. A security API which, instead, directly releases a secret value as the result of a sequence of legal commands will be analysed with a type system ensuring that data secrecy is preserved at run-time. The thesis presents the case of programs implementing key management functionalities and proposes a type system to reason on the security of RSA PKCS#11 API and verify the correctness of a novel patch to it. it_IT
dc.format.medium Tesi cartacea it_IT
dc.language.iso en it_IT
dc.publisher Università Ca' Foscari Venezia it_IT
dc.rights © Matteo Centenaro, 2011 it_IT
dc.subject Security APIs it_IT
dc.subject Type system it_IT
dc.subject Language-based information flow it_IT
dc.title Type-based analysis of security APIs it_IT
dc.type Doctoral Thesis it_IT
dc.degree.name Informatica it_IT
dc.degree.level Dottorato di ricerca it_IT
dc.degree.grantor Scuola di dottorato in Scienze e tecnologie (SDST) it_IT
dc.description.academicyear 2009/2010 it_IT
dc.description.cycle 23 it_IT
dc.degree.coordinator Salibra, Antonino it_IT
dc.location.shelfmark D001025 it_IT
dc.location Venezia, Archivio Università Ca' Foscari, Tesi Dottorato it_IT
dc.rights.accessrights openAccess it_IT
dc.thesis.matricno 955482 it_IT
dc.format.pagenumber XII, 196 p. it_IT
dc.subject.miur INF/01 INFORMATICA it_IT


Files in this item

This item appears in the following Collection(s)

Show simple item record