Seminario crittografia-linux-day-2004

Click here to load reader

  • date post

    13-Jun-2015
  • Category

    Documents

  • view

    422
  • download

    0

Embed Size (px)

description

Introduzione alla crittografia con Linux. Vecchie slides fatte nel 2004

Transcript of Seminario crittografia-linux-day-2004

  • 1. 26/11/04 - Linux Day BergamoLa crittografia al servizio d i Linux, conservare inm aniera sicura i p rop ri d ati. Flavio Castelli aka m icron Disclaim erTutto il materiale contenuto in questa presentazione ha fini esclusivamenteinformativi ed educativi.Lautore non si ritiene in alcun modo responsabile per danni perpetrati acose o persone causati dalluso di codice, programmi, informazioni, tecnichecontenuti allinterno della stessa.

2. 26/11/04 - Linux Day Bergamo Introd uzione: cosa la crittografia? DefinizioneLa crittografia larte di progettare algoritmi (o cifrari) per crittografareun messaggio rendendolo incomprensibile a tutti tranne al suodestinatario.Solo chi in possesso di una determinata chiave in grado di leggere iltesto in chiaro. 3. 26/11/04 - Linux Day BergamoIntrod uzione: cosa la crittografia? Un m ito d a sfatare*La robustezza di un sistema di crittografia risiede solo ed esclusivamentenella segretezza della chiave e non dellalgoritmo. opportuno rendere pubblico lalgoritmo, in modo che se ne possanoscoprire eventuali punti deboli in anticipo.La sicurezza del sistema dipende esclusivamente dalla segretezza dellachiave.* principio enunciato nel 1883 da Auguste Kerckhoffs 4. 26/11/04 - Linux Day BergamoIntrod uzione: cosa la crittografia? Cenni storici (1)Antico egitto: primo uso della crittografia, uso di geroglifici nonstandard.Il cifrario di Cesare: nelle comunicazioni militari ogni letteradellalfabeto era sostituita con quella presente alla posizione p+x, dove p la posizione alfabetica del carattere originale. Esempio:Testo in chiaro: BG LUGAlgoritmo: A=pB+k (con k=3)Testo cifrato: EL OAL Legenda: A=nuovo carattere (after) pB=posizione carattere non codificato (before) k= chiave (key) 5. 26/11/04 - Linux Day BergamoIntrod uzione: cosa la crittografia? Cenni storici (2)Nel 1466 Leon Battista Alberti pubblica il De cifris.Sono illustrati i principali metodi di cifratura noti allepoca, introdotto unnuovo metodo, creato dallautore, che prevede la modifica periodica dellachiave.Esempio: Testo in chiaro: BG LUG Algoritmo: A=pB+k (k=3 per la prima parola, k=4 per la seconda parola) Testo cifrato: EM QDP Legenda: A=nuovo carattere (after) pB=posizione carattere non codificato (before) k= chiave (key) 6. 26/11/04 - Linux Day Bergamo Introd uzione: cosa la crittografia?Cenni storici (3)Un secolo pi tardi Blaise de Vigenre, partendo dallidea di Alberti edalle sue successive elaborazioni, cre un sistema di codificaparticolarmente efficace, noto con il nome di: cifrario indecifrabile.Si usa una tabella contenente tutti gli alfabeti di cifratura (a 26 lettere) disponibili.A B C D E F G H I J K L M N O P Q R S T U V W X Y ZB C D E F G H I J K L M N O P Q R S T U V W X Y Z A ..Y Z A B C D E F G H I JK LM N O P Q R S T U V W XZ A B C D E F G H I J K. L MN O P Q R S T U V W X Y Funzionamento: Si sceglie una parola chiave. Si identificano le le righe della tabella che iniziano con le lettere della parola chiave, ottenendo cos degli alfabeti. Si cicla tra questi alfabeti cifrando il testo.NB: la stessa lettera pu essere cifrata in maniera diversa 7. 26/11/04 - Linux Day BergamoIntrod uzione: cosa la crittografia? Cenni storici (4)Negli anni successivi furono introdotti dispositivi di cifratura meccanicied elettromeccanici quali enigma, un dispositivo usato dallesercitotedesco durante la seconda guerra mondiale.Con lintroduzione dellinformatica inizi la sviluppo di algoritmiindicati per essere eseguiti dal computer.--> finalmente possibile avere delle chiavi di dimensioni notevoli,rendendo improponibile un attacco manuale. 8. 26/11/04 - Linux Day BergamoTip i d i crittografiaChiave sim m etrica Per cifrare e decifrare i dati usata ununica chiavechiaveTesto in chiaro Testo in chiaro cifratura decifratura Testo cifrato Svantaggio principale: nel caso in cui si debba distribuire del materiale confidenziale siamo costretti a diffondere la chiave. Come detto in precedenza la sicurezza di un sistema crittografico dipendeesclusivamente dalla segretezza della chiave --> maggiore ilnumero delle copie della chiave, maggiori sono le probabilit che idati siano compromessi 9. 26/11/04 - Linux Day Bergamo Tip i d i crittografiaChiave a sim m etrica - d efinizione (*) Per cifrare e decifrare i dati sono usate due chiavi: Chiave pubblica: cifratura dati Chiave privata: decifratura dati ChiaveLegateChiave privata pubblicamatematicamente destinatariodestinatarioTesto in chiaro Testo in chiaro cifraturadecifraturaTesto cifrato Le due chiavi sono ricavate tramite un procedimento matematico, sono collegate tra di loro. impossibile ricavare una chiave partendo dallaltra. La chiave privata non deve essere diffusa. La chiave pubblica liberamente distribuibile. * tecnica ideata nel 1975 da Whitfield Diffie e Martin Hellman 10. 26/11/04 - Linux Day Bergamo Crittografia in Linux Cosa vogliam o fare?Prima di tutto dobbiamo chiederci quali sono le nostre esigenze.Possibili scenari duso:Inviare mail sicureConservare in maniera sicura alcuni dati.Conservare in maniera sicura tutti i dati presenti su un device.Proteggere tutti i dati presenti nel sistema. 11. 26/11/04 - Linux Day Bergamo Invio m ail sicure Op erazioni possibiliPossiamo compiere le seguenti azioni: Cifrare la mail: usiamo la chiave pubblica del destinatario, soltanto lui (usando la sua chiave privata) sar in grado di leggerla Firmare la mail: usiamo la nostra chiave privata per firmare il messaggio, il destinatario (usando la nostra chiave pubblica) sar in grado di stabilire lautenticit del mittente. Cifrare e firmare la mail: firmiamo la mail usando la nostra chiave privata, mentre usiamo quella pubblica del destinatario per cifrare il messaggio. Si combinano gli aspetti elencati sopra. 12. 26/11/04 - Linux Day Bergamo Invio m ail sicure Strum enti a d isp osizionePer inviare mail crittografate o firmate servono i seguenti programmi: GPG (GNU Privacy Guard): lo strumento alla base di tutto, gestisce le chiavi, la cifratura e la decifratura. Client di posta: molti hanno supporto diretto a gpg (mutt, pine, kmail, sylpheed, evolution) Fronted GPG: evitano di dovere impare la sintassi di gpg, ne facilitano luso. Per Kde presente kgpg, per gli amanti delle gtk esiste GPA. 13. 26/11/04 - Linux Day BergamoInvio m ail sicure Uso d i GPG Creazione d i una cop p ia d i chiavi (1)Creiamo una nuova coppia di chiavi per GPG:[email protected]$gpggenkeygpg(GnuPG)1.2.4;Copyright(C)2003FreeSoftwareFoundation, Inc.ThisprogramcomeswithABSOLUTELYNOWARRANTY.Thisisfreesoftware,andyouarewelcometoredistributeitundercertainconditions.SeethefileCOPYINGfordetails.Scelta dellalgoritmo:Pleaseselectwhatkindofkeyyouwant:(1)DSAandElGamal(default)(2)DSA(signonly)(4)RSA(signonly)Yourselection?1Dimensioni delle chiavi:DSAkeypairwillhave1024bits.AbouttogenerateanewELGEkeypair.minimumkeysizeis768bitsdefaultkeysizeis1024bitshighestsuggestedkeysizeis2048bitsWhatkeysizedoyouwant?(1024)1024Requestedkeysizeis1024bits 14. 26/11/04 - Linux Day Bergamo Invio m ail sicureUso d i GPG Creazione d i una cop p ia d i chiavi (2)Periodo di validit:Pleasespecifyhowlongthekeyshouldbevalid.0=keydoesnotexpire=keyexpiresinndaysw=keyexpiresinnweeksm=keyexpiresinnmonthsy=keyexpiresinnyearsKeyisvalidfor?(0)0KeydoesnotexpireatallIsthiscorrect(y/n)?yIdentificativo:YouneedaUserIDtoidentifyyourkey;thesoftwareconstructstheuseridfromRealName,CommentandEmailAddressinthisform:"HeinrichHeine(DerDichter)" Realname:FlavioCastelli Emailaddress:[email protected] Comment:Ilmioindirizzodipostaprincipale YouselectedthisUSERID: "FlavioCastelli(Ilmioindirizzodipostaprincipale)"Conferma:Change(N)ame,(C)omment,(E)mailor(O)kay/(Q)uit?OYouneedaPassphrasetoprotectyoursecretkey. 15. 26/11/04 - Linux Day Bergamo Invio m ail sicure Uso d i GPG Com and i baseElenco chiavi:gpglistkeysImportare una chiave pubblica:gpgimport[nomefile]Esportare una chiave in formato ascii:Per indicare un UID relativo a unagpgaexport[UID] chiave si pu usare lindirizzo diRevocare una chiave:posta del suo proprietario, oppuregpggenrevokeloutput fornito dal comando --list-keysGestire una chiave:gpgeditkeyUID Consente di eseguire una serie di operazioni quali: firma della chiave, aggiunta di un indirizzo di posta secondario, cambio password, ... 16. 26/11/04 - Linux Day BergamoInvio m ail sicureUso d i GPG Cifrare e d ecifrare Cifrare un file: gpgerdestinatario[file]Otterremo cos un file chiamato file.gpg contenente il messaggio crittografato. Decifrare un file: gpgd[file]Il messaggio decifrato sar stampato sullo stdout, per ovviare usare lopzione-o seguita dal nome del file di destinazione (oppure si pu ridirezionareloutput a mano). 17. 26/11/04 - Linux Day Bergamo Invio m ail sicure Uso d i GPG Firm are un fileFirmare un file:gpgs[armor][file] Otterremo cos un file chiamato file.gpg contenente il messaggio firmato e compresso.Per non comprimere il file, lasciandolo leggibile, si deve usare il comando:gpgclearsign[file]Per firmare un file binario o un archivio meglio lasciare la firma in unfile separato, per farlo usiamo il comando:gpgb[armor][file] Otterremo cos un file chiamato file.sig contenente la firma del file.Per cifrare e allo stesso tempo firmare un file si pu usare questo comando:gpg[umittente][rdestinatario][armor]signencrypt[dati] Utile per creare un armored ascii 18. 26/11/04 - Linux Day BergamoInvio m ail sicure Uso d i GPG Verificare la firm a d i un filePer verificare la firma di un file: gpgverify[signedfile] Ad esempio:[email protected]$gpgverifyfile.gpggpg:SignaturemadeMonJun700:16:052004CESTusingDSAkeyID 6D632BEDgpg:Goodsignaturefrom"micron"Nel caso in cui si disponga di un file di tipo .sig oppure .asc si deveusare la seguente sintassi: gpgverify[sig/ascfile][file] Ad esempio: [email protected]$gpgverifycmd.asccmd gpg:SignaturemadeMonJun700:18:462004CESTusingDSAkeyID6D632BED gpg:Goodsignaturefrom"micron" 19. 26/11/04 - Linux Day Bergamo Con