Key Management Ozalp Babaoglu ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA Key management ■ Distribuzione delle chiavi pubbliche ■ Gestione delle chiavi segrete ■ Uso dei protocolli a chiave pubblica per distribuire chiavi segrete © Babaoglu 2001-2014 Sicurezza 2 Distribuzione delle chiavi pubbliche ■ Annuncio pubblico ■ Elenco pubblico ■ Certificati © Babaoglu 2001-2014 Sicurezza 3 Annuncio pubblico ■ L’utente rende di pubblico dominio la propria chiave pubblica ■ Pubblicazione chiavi: ● Tutti possono pubblicare la propria chiave ■ Accesso: ● Tutti possono accedere alle chiavi degli altri © Babaoglu 2001-2014 Sicurezza 4 Annuncio pubblico ub p [ KA Utente A KA[pub] KA [pu b ub p [ KB Utente B ] ] Ad esempio: la chiave pubblica viene messa in allegato ai messaggi di posta elettronica o inserito nel home page dell’utente KB[pub] KB © Babaoglu 2001-2014 ] [pu b ] Sicurezza 5 Annuncio pubblico ■ Vantaggi ● Semplice, veloce, non necessita di intermediari ■ Svantaggi ● Nessuna garanzia: l’annuncio può essere facilmente alterato. L’intruso può pubblicare la propria chiave pubblica a nome di un altro utente! Soggetto a “man-in-the-middle attack” © Babaoglu 2001-2014 Sicurezza 6 Man-in-the-middle Attack ■ Attacco attivo ■ X si mette nel mezzo tra A e B ■ X si comporta come A per B ■ X si comporta come B per A ■ X devia la comunicazione tra A e B facendola passare per se stesso... © Babaoglu 2001-2014 Sicurezza 7 Man-in-the-middle Attack kB[pub] B: Destinatario A: Mittente kX[pub] kB[pub] Intruso X kB[pub] kX[pub] © Babaoglu 2001-2014 Sicurezza 8 Man-in-the-middle Attack ■ A richiede a B la sua chiave pubblica kB[pub] (per e-mail ad esempio) ■ X intercetta kB[pub] e la sostituisce con kX[pub] ■ X intercetta i crittogrammi da A verso B, li decodifica con kX[priv], li ri-codifica con kB[pub] e li rispedisce a B ■ Funziona perché A e B non hanno nessun modo per verificare che stanno (o non stanno) comunicando con il vero interlocutore © Babaoglu 2001-2014 Sicurezza 9 Back to key distribution: Elenco pubblico ■ Directory mantenuta da un’entità fidata (authority) ● copie <user, key> ■ Pubblicazione chiavi: ● Ogni partecipante registra la propria chiave presso l’authority (di persona o in modo sicuro) ● Può aggiornarla nello stesso modo in qualsiasi momento ■ Accesso: ● Pubblicazione periodica della directory (ad esempio su un periodico ad ampia diffusione) ● Accesso diretto alla directory tramite comunicazione elettronica (occorre una comunicazione autenticata e sicura) © Babaoglu 2001-2014 Sicurezza 10 Elenco pubblico ■ Svantaggi ● Necessita di un’entità fidata super-partes: authority ● La Directory può essere violata ● Necessita di protocolli di comunicazione sicuri per la pubblicazione e l’accesso alle chiavi © Babaoglu 2001-2014 Sicurezza 11 Certificati ■ L’autenticità delle chiavi è certificata da una Autorità aggiungendo la sua firma ■ Garantisce l’identità dei partecipanti e l’attualità delle chiavi (mitiga il problema del furto della chiave privata) ■ Elimina un attacco man-in-the-middle: un intruso non può sostituire la chiave pubblica perché non può firmare e certificare con la chiave (privata) dell’Authority ■ Necessita di un’entità fidata super-partes che possa certificare in maniera sicura ■ (More on certificates later) © Babaoglu 2001-2014 Sicurezza 12 Management of Private Keys ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA Management of secret keys ■ n parties (clients, server, users, processes, etc.) need to communicate securely (confidential) ■ Use private key cryptography to establish secure communication channels ■ If every pairwise communication is possible and needs to be secured, then we need to generate and maintain O(n2) secret keys ■ For large n, this may be infeasible since secret keys cannot be long lived but should be replaced often © Babaoglu 2001-2014 Sicurezza 14 Management of secret keys ■ Assume that a (trusted) Key Distribution Server (KDS) a priori shares a different secret key with each user ■ A and B want to establish a secure communication ■ KDS generates and distributes to A and B a one-time session key to be used for the duration of that communication ■ Future communications between A and B will generate and use different session keys © Babaoglu 2001-2014 Sicurezza 15 Management of secret keys: Basic Protocol ■ A and KDS share KA ■ B and KDS share KB 1. A sends to KDS: {A, “request session key for B”} 2. KDS generates new session key KS and sends to A: C(KA, {KS, C(KB, KS)}) 3. A stores KS and sends to B: C(KB, KS) 4. B stores KS 5. A sends confidential message m to B: C(KS, m) © Babaoglu 2001-2014 Sicurezza 16 Basic Protocol: Commenti ■ Alla base di molti altri protocolli più sofisticati ■ Difetti: ● B non può sapere con certezza che il messaggio arriva da A ● Soggetto a “replay attack” ▴ Un attaccante può catturare e rispedire nel futuro i crittogrammi C(KA, {KS, C(KB, KS)}) C(KB, KS) © Babaoglu 2001-2014 Sicurezza 17 Management of secret keys: Needham-Schroeder Protocol ■ A and KDS share KA ■ B and KDS share KB 1. A sends to KDS: {A, “request session key for B”, N1} 2. KDS generates new session key KS and sends to A: C(KA, {KS, A, B, N1, C(KB, {KS, A})}) 3. A stores KS and sends to B: C(KB, {KS, A}) 4. B sends to A: C(KS, N2) (challenge) 5. A replies to B: C(KS, N2 +1) (response) 6. A sends confidential message m to B: © Babaoglu 2001-2014 Sicurezza C(KS, m) 18 Management of secret keys: Needham-Schroeder Protocol KDS ➀ ➁ KA KS A © Babaoglu 2001-2014 ➂ ➃ ➄ Sicurezza B 19 Management of secret keys: Needham-Schroeder Protocol KS KS B … A ■ N1 and N2 are called “nonces” (number used once) and prevent replay attacks ■ Basis for the Kerberos system © Babaoglu 2001-2014 Sicurezza 20 Needham-Schroeder Protocol: Commenti ■ A si fida di KDS ed è sicuro di aver ricevuto la chiave di sessione da KDS. Infatti il messaggio da KDS contiene N1 ■ A è sicuro di comunicare KS a B perché spedisce la chiave KS cifrata con KB, che solo B è il grado di decifrare ■ B si fida di KDS e KDS gli garantisce che la chiave può essere usata per comunicare con A ■ B può riconoscere un replay attack ed essere sicuro di comunicare con A © Babaoglu 2001-2014 Sicurezza 21 Management of secret keys: Needham-Schroeder Protocol ■ If A wants to communicate with a different principal C, it has to restart the protocol with KDS to generate a new session key KS using its shared secret key KA ■ Since the shared key is based on a secret, this results in an increased risk that it may be compromised © Babaoglu 2001-2014 Sicurezza 22 Kerberos ■ Developed at MIT during the 1980’s to serve as an distributed authentication service in an academic environment ■ Principals (clients running on behalf of users) prove their identity to servers without sending data across the network that would allow an attacker to impersonate them ■ Each principal initially shares a secret key (password) with the KDS ■ To reduce the exposure of the secret key, KDS used only once per login session ■ All communication within a single session secured through keys obtained from a Ticket Granting Server (TGS) © Babaoglu 2001-2014 Sicurezza 23 Kerberos Often, co-located KDS ➀ ➁ KA KS A ➂ ➃ TGS KAB © Babaoglu 2001-2014 Sicurezza 24 Kerberos A KAB … KAB B © Babaoglu 2001-2014 Sicurezza 25 Kerberos ■ If A wants to communicate with a different principal C, it has to restart the protocol with TGS (not KDS) to generate a new session key KAC using the key KS (not the shared secret key KA) ■ In a very large system, the KDS may be performance and reliability bottleneck ■ The KDS can be replicated to obtain increased performance and reliability using a master-slave scheme ■ In a very large systems, a single (or replicated) KDS may not be acceptable for administrative reasons © Babaoglu 2001-2014 Sicurezza 26 Management of secret keys: Key Distribution Server ■ Vantaggi ● Garantisce riservatezza ed autenticazione ● Mantiene buone prestazioni anche con forte ricambio delle chiavi per molti utenti ● Per n principali, riduce da O(n2) a O(n) numero di chiavi segrete ■ Svantaggi ● Richiede la presenza di un KDS sicuro © Babaoglu 2001-2014 Sicurezza 27 Management of secret keys: Hybrid solutions ■ Crittografia a chiave pubblica relativamente lenta (circa 1000 volte rispetto a crittografia a chiave privata) ■ Una volta distribuite le chiavi pubbliche, le uso per generare le chiavi segrete © Babaoglu 2001-2014 Sicurezza 28 Management of secret keys: Hybrid solution 1. 2. 3. 4. 5. A generates (KA[pub], KA[priv]) A sends to B: {KA[pub], A} B generates KS B sends to A: C(KA[pub], KS) A decrypts to obtain KS = D(KA[priv], C(KA[pub], KS)) 6. Delete (KA[pub], KA[priv]) 7. Pass to symmetric cryptography using session key KS © Babaoglu 2001-2014 Sicurezza 29 Management of secret keys: Hybrid solution ■ Garantisce riservatezza ma non autenticazione ■ Soggetto a man-in-the-middle attack © Babaoglu 2001-2014 Sicurezza 30 Management of secret keys: General hybrid solution ■ General solution based on certificates to guarantee mutual authentication ■ Basis for SSL © Babaoglu 2001-2014 Sicurezza 31
© Copyright 2024 Paperzz