firma digitale - CESCOT
Transcript
firma digitale - CESCOT
FIRMA DIGITALE 1 Prologo • In origine crittografia = confidenzialità • Diffusione delle reti: nuove funzionalità – Identificazione: un sistema di elaborazione deve essere in grado di accertare l’identità di un utente che vuole accedere ai suoi servizi – Autenticazione: il destinatario di un messaggio deve essere in grado di accertare l’identità del mittente e l’integrità del messaggio – Firma digitale: funzionalità complessa richiesta quando mittente e destinatario di un messaggio non si fidano l’uno dell’altro (reciprocamente). Proprietà simili alla firma cartacea 2 Firma manuale: proprietà • La può generare solo una persona e non è falsificabile • Non è riutilizzabile (legata al documento su cui è apposta) • Il documento su cui è apposta non è modificabile • Non può essere ripudiata da chi l’ha generata 3 Firma manuale e firma digitale • La firma digitale deve soddisfare le proprietà di quella manuale • La firma digitale è una stringa di bit e quindi è facilmente duplicabile/copiabile. La firma manuale no!! • Firma manuale e firma digitale sono fisicamente oggetti di natura completamente diversa! 4 Digital signatures • Authentic: Convinces the recipient that the signer deliberately signed the document • Unforgeable: Proof that the signer, and no one else, deliberately signed the document • Not reusable: Signature part of document and cannot be moved to another document • Unalterable: After the document is signed, it cannot be altered • Cannot be repudiated: The signer cannot claim to not have signed the document 5 Digital signatures • Firmare un messaggio con la chiave privata K SK(M) • Verificare un firma con la corrispondente chiave pubblica VK(M) • Autenticazione: il destinatario di un messaggio riesce a provare l’identità del mittente e l'integrità del messaggio. 6 Firma digitale: implementazione ingenua • Digitalizzazione della firma manuale, ad esempio usando uno scanner • Attacco: Copia e Incolla!!! 7 Osservazioni • Occorre un cifrario commutativo, cioè D(C(m)) = C(D(m)) = m • RSA è commutativo • Il documento firmato non è indirizzato ad uno specifico destinatario • Tutti possono fare la verifica 8 Proprietà del protocollo • Può generare un firma solo una persona: colui che conosce kA[priv] cioè A • Non è riutilizzabile/copiabile/falsificabile: in quanto è funzione del documento su cui è apposta • Il documento su cui è apposta non è modificabile: in quanto anche la firma andrebbe nuovamente generata • Non può essere ripudiata da chi l’ha generata: in quanto solo conoscendo kA[priv] è possibile generarla 9 Comments • Firmare prima dell’inserimento della crittografia è molto più sicuro. • Un altro modo potrebbe essere firmare alla cieca. • Consideriamo: – Firma digitale = firma manuale – Crittografia = busta – Noi non firmiamo una busta sigillata senza conoscere il relativo contenuto. – Avrebbe poco valore giuridico … 10 Protocol based on hash function A: Sign • s=D(f(m),kA[priv]) • c=C(m,kB[pub]) • send <A,c,s> B: Verify • m*=D(c,kB[priv]) • if f(m*)=C(s,kA[pub]) //sign digest //encrypt //decrypt //verify – then yes else no 11 Autenticazione • Identificazione: stabilire l’identità di un utente • Autenticazione: qualcosa in più di identificazione • Mittente spedisce un messaggio al destinatario Destinatario autentica il messaggio se: • identifica mittente • verifica l’integrità del messaggio (messaggio non modificato) 12 Message Authentication Code • Immagine breve (e di lunghezza fissa) del messaggio che può essere generata da un solo mittente conosciuto dal destinatario • Ottenuto attraverso una chiave segreta condivisa tra il mittente e il destinatario • Può essere usata per autenticare il messaggio: identificazione e integrità • Simile a firme digitali ma senza la proprietà “non repudiation” – Qualunque utente che può verificare un MAC è anche capace di generare MAC per altri messaggi. 13 MAC 14 Esempio di MAC • Otteniamo un MAC applicando una funzione hash alla concatenazione di m e della chiave k • MAC non è invertibile. Può solo essere calcolato di nuovo ma non invertito!!! 15 Esempio di autenticazione usando MAC A B 16 Perché? • L’intruso X non può spedire un messaggio a B fingendosi A perché non conosce k ⇒IDENTIFICAZIONE • L’intruso X intercettando (m, f(mk)) non può modificare m perché non conosce k ⇒INTEGRITA’ 17 Autenticazione + Confidenzialità • A spedisce (Ck(m), f(mk)) a B • B riceve (u, w) • B conosce k quindi decodifica u Dk(u) e risale a m* • B conosce k quindi può calcolare f(m*k) • B confronta f(m*k) con w • Se f(m*k)= w, B conclude che m*=m (integro) e che il mittente di m è effettivamente A 18 CERTIFICATES, CERTIFICATION AUTHORITIES AND PUBLIK-KEY INFRASTRUCTURES 19 Certificati digitali • Problema: • la chiave pubblica con la quale stiamo cifrando deve appartenere realmente al destinatario del messaggio • Si pone il problema dello scambio delle chiavi (man-in-the-middle attack) • I certificati digitali vengono usati per evitare che qualcuno tenti di “spacciarsi” per un’altra persona sostituendone la chiave pubblica 20 PKI - Certificates • Un certificato semplifica l’operazione di stabilire se una chiave pubblica appartiene al suo presunto proprietario • La forma in cui una pubblica PKI comunica le informazioni chiave • Crea un legame tra l’identità dell’utente e una chiave pubblica • Legame vincolante tra una chiave pubblica e l'identità dell'utente • Firmato da un emittente fidato • Funzioni simili ad un certificato fisico • Evita il man-in-the-middle attacks 21 Physical certificates 22 Distribuzione dei certificati • Manuale o di persona. Quasi mai realizzabile in pratica! (passaporto: distribuzione manuale) • Generati, custoditi e distribuiti da entità fidate – Certificate servers – Public Key Infrastructures (PKI) 23 Certificate servers • Database disponibili su rete • Permettono agli utenti di – richiedere l’inserimento del proprio certificato nel database – richiedere il certificato di qualcuno 24 Public key infrastructure • Public-key infrastructure (PKI) – Registration Authority (RA) tipicamente una persona fisica – Certification Authority (CA) tipicamente un software • PKI è una collezioni di servizi e protocolli utili a: – – – – Emettere, Memorizzare Validare Revocare i certificati 25 Public key infrastructure • Is there an “Internet PKI”? – Several proposal for an Internet PKI exist: PGP, PEM, PKIX, Secure DNS, SPKI and SDSI – No single one has gained widespread use • In the future: – Several PKI operating and inter-operating in the Internet 26 PKI – X.509 Certificates X.509 Certificate Information Subject: Distinguished Name, Public Key Issuer: Distinguished Name, Signature Validity: Not Before Date, Not After Date Administrative Info: Version, Serial Number Extended Info: … 27 Distinguished Name Information Defined by X.509 Standard Common Name Organization or Company Organizational Unit City/Locality State/Province Romagna Country (ISO Code) CN=Calisto Tanzi O=Parmalat OU=Management L=Parma ST=Emilia C=IT 28 PKI - Certificates • Il processo di certificazione si bassa sulla fiducia: – L'utente si fida del certificato rilasciato dall'autorità emittente in quanto essa è preposta a rilasciare "validi" certificati. • L'emittente del certificato viene comunemente chiamata autorità di certificazione (CA) 29 PKI – Certificates Authorities • Una sola Ca per il mondo intero? – Impraticabile • Invece: – Molte PKI abilitano altre CA a certificare altre CA. • in pratica: una CA sta dicendo ai suoi utenti che possono fidarsi di quanto affermato da una seconda CA nel suo certificato – Differenti certificati: • Certificati End-user • Certificati CA 30 PKI – Certificates Chains 31 PKI – CA Hierarchies 32 PKI - Validation • Validation – The information in a certificate can change over time – Need to be sure that the information in the certificate is current and that the certificate is authentic • Two basic methods of certificate validation: – Off-line validation: the CA can include a validity period in the certificate — a range during which the information in the certificate can be considered valid – On-line validation: the user can ask the CA directly about a certificate’s validity every time it is used 33 PKI - Revocation • Revocation – the process of informing users when the information in a certificate becomes unexpectedly invalid • subject’s private key becomes compromised • user information changes (e.g., domain name of a server) • Off-line – Within the validity periods, certificate revocation method is critical • On-line – revocation problem becomes trivial 34 PKI - Revocation • Certificate Revocation List (CRL) – a list of revoked certificates that is signed and periodically issued by a CA – user must check the latest CRL during validation to make sure that a certificate has not been revoked • CRL Problems – CRL time-granularity problem • how often CRLs must be issued? – CRL size • incremental CRL 35 PKI – Registration Authorities • I soggetti che richiedono un certificato devono essere autenticati. • L’autenticazione può essere fatta con metodi tradizionali: – Mail – Fax – Telefono – Incontro fisico 36 INTERNET SECURITY: SECURE SOCKET LAYER 37 Introduction 38 Introduction • Security at the application level – Pros: designed for application requirements – Cons: requires multiple security mechanisms • Security at the transport level – Pros: provides common interface to security services – Cons: requires (minor) modification to applications • Security at the network level – Pros: • works also with security-ignorant applications • can extend secure enclave across insecure areas – Cons: may require modifications at the OS level 39 Introduction • Security at the network level – IPSec • Security at the transport level – SSL (Secure Socket Layer) • Security at the application level – S/MIME – PGP – Kerberos – SET 40 SSL: Secure Socket Layer • Protocollo proposto dalla Netscape Communications Corporation • Garantisce confidenzialità e autenticazione delle comunicazioni su Internet • Protegge da intrusioni, modifiche o falsificazioni • Crittografia ibrida – – – – Cifrari Simmetici Cifrari Asimmetrici Certificati MAC 41 SSL 42 SSL: Applicazioni • • • • E-commerce On-line trading Internet banking Any application where confidential data (password, credit card number) needs to be sent to a remote host 43 SSL - Implementation • SSL Handshake crea un canale sicuro, affidabile e autenticato tra client e server entro il quale ... • ... SSL Record fa viaggiare i messaggi incapsulandoli in blocchi cifrati e autenticati • Handshake: definisce il canale ovvero una suite crittografica che contiene i meccanismi di cifratura e autenticazione e le relative chiavi • Record: implementa il canale utilizzando la suite per cifrare e autenticare i blocchi prima di darli in pasto al TCP. 44 SSL: handshake e record 45 SSL – Sessions and Connections • SSL Session – Un'associazione di lunga durata tra un client e un server – Creato dal protocollo di Handshake – Associato ad una serie di parametri di sicurezza – Utilizzato per evitare la negoziazione costosa di nuovi parametri di sicurezza • SSL Connection – Un collegamento tra un client e un server – Le connessioni sono transitorie – Ogni connessione è associata ad una sessione 46 SSL – Sessions and Connections • Tra una qualsiasi coppia di soggetti –Ci possono essere più connessioni –Normalmente vi è una singola sessione 47 SSL – Sessions and Connections • Session state – Session identifier: arbitrary byte sequence to identify an active session – Peer certificate: an X509.v3 certificate of the peer; may be null – Compression method: used to compress data prior to encryption – Cipher spec: specifies the data encryption algorithm – Master secret: 48 byte secret shared between client and server 48 SSL – Sessions and Connections • Connection State – Client/Server random: Random byte sequences used as identifier chosen by the client and the server at each connection – Client/Server write MAC secret key: Secret key used in Message Authentication Code (MAC) operations on data sent by the client/server – Client/Server write secret key: Encryption key for data encrypted by the client/server and decrypted by the server/client – Sequence Numbers 49 SSL – Record protocol • SSL Record Protocol provides – Confidentiality: The Handshake Protocol defines a shared secret key used for conventional encryption of SSL payloads – Integrity: The Handshake Protocol defines a shared secret key used to generate Message Authentication Code 50 Client hello • U manda a S un msg richiedendo una connessione SSL • U specifica le “prestazioni” di sicurezza desiderate – Versione del protocollo SSL sopportato – Lista di algoritmi di compressione sopportati – Cipher Suite: SSL_RSA_WITH_3DES_EDE_CBC_SHA • RSA: scambio chiavi di sessione • 3DES_EDE_CBC: cifratura simmetrica • SHA: funzione hash one-way per MAC • U allega una sequenza di byte casuali 51 Server hello • S riceve il msg (“client hello”) da U • S selezione un algoritmo di compressione tra quelli elencati da U • S seleziona dalla cipher suite inviata da U una cipher suite comune (tra U e S) • S invia a U un msg (“server hello”) contenente gli elementi selezionati e una nuova sequenza di byte casuali • Se U non riceve il msg “server hello” interrompe la comunicazione 52 Scambio di certificati • S si autentica con U inviandogli il proprio certificato digitale (sequenza di certificati emessi da diverse CA) • Se i servizi offerti da S devono essere protetti negli accessi, S può richiedere a U di inviargli il suo certificato (autenticazione di U con S) 53 Server hello done • S invia il msg “server hello done” a U • “Server hello done” sancisce la fine della fase in cui ci si accorda sulla cipher suite e sui parametri crittografici 54 Autenticazione del server al client • S si autentica con uso di certificato • No man-in-the-middle attack • U controlla la attualità del certificato ricevuto da S • U controlla che il certificato sia firmato da una CA tra quelle di cui si fida e che la firma sia autentica • Se S spedisce una lista di certificati si controlla l’intera lista 55 Pre-master secret, Master secret • U costruisce un pre-master secret P come una nuova sequenza di byte casuali • U spedisce P a S dopo averlo cifrato con la chiave pubblica di S contenuta nel certificato e l’algoritmo concordato (nell’esempio U usa RSA) • U combina P con alcune stringhe note + byte casuali contenuti in “client hello” e “server hello” e codifica il tutto con SHA e MD5 ottenendo il master secret M 56 Costruzione di M al server • S decifra il msg di U e ottiene P • S calcola M nello stesso modo con cui U aveva calcolato M a partire da P • Nota: S può farlo perché dispone delle stesse informazioni di cui dispone U 57 Autenticazione del client • Se richiesto U può autenticarsi mediante invio del suo certificato • In pratica: Il sistema dispone di certificati mentre gli utenti di solito no • Quando richiesto per autenticare U si procede con login e password 58 Invio del certificato di U (opzionale) • Quando richiesto da S, U gli invia il suo certificato • Se non lo possiede, si interrompe il protocollo • Insieme al certificato, U allega e firma con la sua chiave privata, la SSL-history • S controlla il certificato e in caso di anomalie interrompe il protocollo 59 Messaggi finished • Questi messaggi vengono costruiti in base al master secret e contengono tutte le informazioni che i due partner si sono scambiati durante la fase di handshake • Permettono a U e S di effettuare un controllo ulteriore sulle comunicazioni avvenute e di accertarsi di possedere lo stesso master secret • Permettono a U e S di accertarsi che non ci sia stato un attacco di tipo man-in-the-middle 60 Client finished • U invia a S il msg “finished” protetto utilizzando M • Costruzione di “finished” FU = M + tutti msg di handshake scambiati finora + identità di U • U codifica FU con SHA e MD5 e lo invia a S 61 Server finished • S verifica il msg finished di U ricalcolando il tutto • S invia a U il suo msg “finished” protetto utilizzando M • Costruzione di “finished”: FS = M + tutti msg di handshake scambiati finora (incluso il msg “finished” di U) + identità di S • S codifica FS con SHA e MD5 e lo invia a U • U verifica il msg “finished” ricevuo da S 62 Client hello e server hello • In questa fase U e S si scambiano byte casuali (diversi ogni volta) • M è funzione di queste sequenze di byte casuali • L’intruso non può riutilizzare i msg di handshake di sessioni precedenti per impersonare S in una successiva sessione con U (replay attack) 63 SSL record protocol • I dati vengono frammentati in parti di lunghezza opportuna • Ogni blocco viene numerato, compresso, autenticato con MAC, cifrato con chiave segreta e trasmesso usando il protocollo di trasporto sottostante (TCP) • Il destinatario opera in modo inverso al mittente e restituisce il messaggio all’applicazione sovrastante (HTTP, SMTP, IMAP, etc.) 64 MAC in SSL record • Ogni blocco viene numerato e autenticato con MAC • MAC= H(blocco, numero, K, stringhe note) • numero = 64 bit quindi no ripetizioni all’interno della stessa sessione !!! • Si previene così facendo l’uso fraudolento e iterato dello stesso blocco nella stessa sessione • Se un blocco viene perduto i blocchi successivi vanno ricreati e rispediti • MAC sono cifrati insieme al messaggio con chiave simmetrica 65 Generazione sequenze casuali • Sono contenute il “client hello”, “server hello” e pre-master secret • Da loro dipendono fortemente il master secret e quindi le chiavi segrete di sessione • La sequenza contenuta nel pre-master secret è inviata da U a S in modo cifrato e la sua impredicibilità è cruciale per la sicurezza del canale SSL • Se il generatore di sequenze pseudo-casuali non è di qualità, l’intero protocollo si indebolisce 66 Conclusioni • SSL è sicuro quanto la più debole cipher suite da esso sopportata • Sarebbe meglio disabilitare nel proprio browser tutti i protocolli con chiavi troppo corte (esempio: cifrari simmetrici con chiavi a 40 bit e asimmetrici con chiavi fino a 512 bit) • Non effettuare connessioni con sistemi anonimi perché si rischia che la propria password venga estorta !!! 67 HTTPS Hypertext Transfer Protocol Secure (HTTPS) is a combination of the Hypertext Transfer Protocol with the SSL/TLS protocol to provide encryption and secure (website security testing) identification of the server. 68 Difference from HTTP • HTTPS URLs begin with "https://" and use port 443 by default (instead port 80). • HTTP is unsecure and is subject to man-inthe-middle and eavesdropping attacks which can let attackers gain access to website accounts and sensitive information. HTTPS is designed to withstand such attacks and is considered secure. 69 Network layer • HTTP operates at the highest layer of the OSI Model, the Application layer • The security protocol operates at a lower sub-layer, encrypting an HTTP message prior to transmission and decrypting a message upon arrival. • HTTPS is not a separate protocol, but refers to use of ordinary HTTP over an encrypted Secure Sockets Layer (SSL) connection. 70 HTTPS as access control • The system can also be used for client authentication in order to limit access to a web server to authorized users. • the site administrator creates a certificate loaded into the browser, for each user • It is automatically checked by the server on each reconnect to verify the user's identity, potentially without even entering a password 71
Documenti analoghi
Web Security
NB: La chiave generata nella nuova connessione è
diversa grazie ai numeri casuali utilizzati per
generarla e che sono diversi per ogni connessione