Posta Elettronica Certificata - OpenVMSmx.isti.cnr.it/pe/papers/PEC.pdf · Posta Elettronica Certificata Master in gestione del Software Open Source Dipartimento di Informatica Pisa,
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Master in gestione del Software Open Master in gestione del Software Open SourceSourceDipartimento di InformaticaDipartimento di InformaticaPisa, 9 aprile 2005Pisa, 9 aprile 2005
Accesso ed utilizzo di risorse informaticheAccesso ed utilizzo di risorse informatiche
Un Un esempioesempio::
–– CondivisioneCondivisione didi file file tratra utentiutentiAutenticazioneAutenticazione per per l’accessol’accesso al server (file server)al server (file server)AutorizzazioneAutorizzazione per per accessiaccessi lettura/scritturalettura/scritturaI I datidati devonodevono essereessere protettiprotetti durantedurante ilil trasferimentotrasferimento via via retereteGliGli utentiutenti devonodevono essereessere certicerti dell’indentificazionedell’indentificazione del server e del server e deidei datidati in in essoesso contenuticontenuti
AccessoAccesso ed ed utilizzoutilizzo didi risorserisorse informaticheinformatiche
Altro esempio:Altro esempio:
–– Posta elettronicaPosta elettronica
–– Alcune importanti esigenzeAlcune importanti esigenzeInvio di messagi in forma strettamente Invio di messagi in forma strettamente privataprivata ((ConfidenzialitàConfidenzialità))CertezzaCertezza sulsul mittentemittente didi un un messaggiomessaggio ((AutenticazioneAutenticazione))CertezzaCertezza cheche ilil messaggiomessaggio non non siasia statostato modificatomodificato ((IntegritàIntegrità))GaranziaGaranzia cheche ilil mittentemittente didi un un messaggiomessaggio non non possapossa negarenegare didi averloaverlo speditospedito(Non (Non RipudioRipudio))
CrittografiaCrittografia con con chiavechiave segretasegreta ((algoritmialgoritmi simmetricisimmetrici))
–– due due operazionioperazioni (“(“cifra”,”decifracifra”,”decifra”) (”) (encrypt,decryptencrypt,decrypt) ) unauna inversainversa dell’altradell’altra(come (come moltiplicazione/divisionemoltiplicazione/divisione))
–– un solo un solo parametroparametro (“la (“la chiavechiave”)”)–– ancheanche coluicolui cheche ha ha progettatoprogettato l’algoritmol’algoritmo non lo non lo puòpuò ““rompererompere” (a ” (a menomeno
cheche non non abbiaabbia inseritoinserito unauna trap door)trap door)–– occorreoccorre unauna chiavechiave diversadiversa per per ogniogni coppiacoppia didi utentiutenti
CrittografiaCrittografia con con chiavechiave pubblicapubblica ((algoritmialgoritmi asimmetriciasimmetrici))
–– Due Due chiavichiavi per per ciascunciascun utenteutentela la chiavechiave pubblicapubblica dada comunicarecomunicare liberamenteliberamentela la chiavechiave privataprivata dada conservareconservare segretamentesegretamente
–– QuelloQuello cheche unauna delledelle due due chiavichiavi cifracifra, , l’altral’altra decifradecifra
FunzioneFunzione didi hash hash crittograficocrittografico–– digestdigest=f=f(m) (m) –– digestdigest è di lunghezza fissaè di lunghezza fissa–– Trasformazione Trasformazione monodirezionalemonodirezionale (dato (dato digestdigest non è possibile non è possibile
determinare m)determinare m)–– veloce veloce –– Probabilità di collisione quasi nulleProbabilità di collisione quasi nulle
La “firma La “firma digitaledigitale” ” unouno deglidegli aspettiaspetti piùpiù rilevantirilevanti delladella crittografiacrittografia a a chiavechiave pubblicapubblicaimplicaimplica controllocontrollo sullasulla integritàintegrità–– calcolatocalcolato come come f(chiavef(chiave privataprivata, , datidati)=firma)=firma–– verificatoverificato come come f(chiavef(chiave pubblicapubblica, , datidati, firma) , firma)
per per verificareverificare la firma e la firma e l’integritàl’integrità del del messaggiomessaggio non non occorreoccorreconoscereconoscere alcunaalcuna chiavechiave segretasegretailil verificatoreverificatore puòpuò verificareverificare l’integritàl’integrità, ma non , ma non puòpuò modificaremodificare i i datidati–– con con chiavechiave simmetricasimmetrica ilil verificatoreverificatore puòpuò verificareverificare l’integritàl’integrità ma ma ancheanche
–– ControControscambioscambio sicurosicuro delledelle chiavichiavirichiederichiede unauna chiavechiave per per ogniogni coppiacoppia didi utentiutenti ((pocopoco praticapratica per per moltimolti utentiutenti))verificaverifica integritàintegrità
–– impossibileimpossibile rilevarerilevare unauna modificamodifica fraudolentafraudolenta deidei datidati: non : non adattaadatta per firma per firma digitaledigitale
CrittografiaCrittografiaalgoritmi più diffusialgoritmi più diffusi
ChiaveChiave simmetricasimmetrica
–– DES (Data Encryption Standard) DES (Data Encryption Standard) -- vecchiovecchio, , chiavechiave 5656--bit, lentobit, lento–– 3DES 3DES -- ampiamenteampiamente utilizzatoutilizzato, , chiavechiave 112112--bit, lento bit, lento –– RC4 RC4 –– ilil piùpiù diffusodiffuso, , chiavechiave didi lunghezzalunghezza variabilevariabile–– AES (Advanced Encryption Standard) AES (Advanced Encryption Standard) –– recenterecente, , probabileprobabile sostitutosostituto del del
3DES, 3DES, chiavechiave 128128--bitbitLa La robustezzarobustezza didi un un algoritmoalgoritmo è è correlatacorrelata allaalla lunghezzalunghezza delladellachiavechiave: 56 bit : 56 bit sonosono insufficientiinsufficienti. In . In generegenere è è consigliatoconsigliato 112 (3DES) 112 (3DES) o 128 (AES)o 128 (AES)
livellolivello didi sicurezzasicurezza. . NuovoNuovo, , pocopoco diffusodiffusoLunghezza chiavi per RSALunghezza chiavi per RSA–– 512512--bit insufficiente.bit insufficiente.–– Consigliata 2048Consigliata 2048--bit. Per maggiori lunghezze troppo lento.bit. Per maggiori lunghezze troppo lento.
Raccomandazioni per un livello di sicurezza comparabile tra Raccomandazioni per un livello di sicurezza comparabile tra simmetrica e asimmetricasimmetrica e asimmetrica–– 112/128112/128--bit bit –– 20482048--bitbit–– 192192--bit bit –– 40964096--bit bit
MoltoMolto diffuse diffuse sonosono le le funzionifunzioni MAC (Message Authentication Code MAC (Message Authentication Code o “keyedo “keyed--hash”) hash”) cheche utilizzanoutilizzano un un datodato segretosegreto–– digest = digest = H(S+mH(S+m))
Certification AuthorityCertification Authority–– garantiscegarantisce l’appartenenzal’appartenenza didi unauna chiavechiave pubblicapubblica ad un ad un determinatodeterminato
soggettosoggetto, , mediantemediante l’emissionel’emissione didi certificaticertificati (X.509)(X.509)La Certification Authority La Certification Authority renderende notanota la la politicapolitica didi sicurezzasicurezza allaalla qualequale sisidovràdovrà rigorosamenterigorosamente attenereattenere
–– gestiscegestisce ilil database database deidei certificaticertificati–– gestiscegestisce la Certificate Revocation List (CRL)la Certificate Revocation List (CRL)
La Certification Authority (CA) La Certification Authority (CA) possiedepossiede unauna coppiacoppia didi chiavichiaviasimmetricheasimmetriche..–– Un Un certificatocertificato è è l’unionel’unione didi datidati cheche identificanoidentificano in in modomodo univocounivoco un un
soggettosoggetto e e delladella suasua chiavechiave pubblicapubblica..–– La Certification Authority firma con la La Certification Authority firma con la propriapropria chiavechiave privataprivata ilil certificatocertificato
assegnandoliassegnandoli un un numeronumero didi serieserie..–– ChiunqueChiunque potràpotrà verificareverificare cheche unauna determinatadeterminata chiavechiave pubblicapubblica
appartieneappartiene ad un ad un determinatodeterminato soggettosoggetto semplicementesemplicemente applicandoapplicando ililprocessoprocesso didi verificaverifica firma con la firma con la chiavechiave pubblicapubblica delladella CA.CA.
Lo schema piramidale può caratterizzare una PKILo schema piramidale può caratterizzare una PKI–– La certificazione avviene in cascata.La certificazione avviene in cascata.
–– La CA principale (La CA principale (RootRoot CA) certifica le chiavi di N "sub CA": CACA) certifica le chiavi di N "sub CA": CA11, , CACA22,...,Ca,...,Cann,, emettendo certificati e specificando per quali usi i emettendo certificati e specificando per quali usi i certificati sono rilasciaticertificati sono rilasciati..
–– Le chiavi pubbliche dei singoli utenti sono certificate dalle suLe chiavi pubbliche dei singoli utenti sono certificate dalle sub b CA.CA.
–– La struttura può avere due o più livelliLa struttura può avere due o più livelli..
Include Include qualsiasiqualsiasi certificatocertificato cheche ritieneritiene utile utile allaallaoperazioneoperazione didi verificaverifica del “Recipient”.del “Recipient”.Include Include almenoalmeno unauna catena catena didi certificaticertificati sinosino a a quelloquellodelladella CA (CA (esclusoescluso) ) cheche ritieneritiene possapossa essereessere affidabileaffidabile(trusted) per (trusted) per ilil “Recipient”.“Recipient”.L’indirizzoL’indirizzo “From:” “From:” dovrebbedovrebbe essereessere identicoidentico a a quelloquelloeventualmenteeventualmente presentepresente nelnel corrispondentecorrispondentecertificatocertificato..
RiconosceRiconosce un un qualsiasiqualsiasi numeronumero didi certificaticertificatiinclusiinclusi nelnel messaggiomessaggio. In . In particolareparticolare gestiscegestisceunauna “catena “catena didi certificaticertificati”.”.Accede al Accede al certificatocertificato delladella CA CA ritenutaritenuta““affidabileaffidabile”.”.VerificaVerifica cheche ilil from del from del messaggiomessaggiocorrispondacorrisponda all’indirizzoall’indirizzo eventualmenteeventualmentepresentepresente nelnel certificatocertificato..Accede Accede allaalla CRL per CRL per riconoscerericonoscere eventualieventualicertificaticertificati revocatirevocati.
IndirizzoIndirizzo del from non del from non corrispondecorrisponde ad ad unouno deglidegli indirizziindirizzi presentipresenti nelnelcertificatocertificatoNon Non esisteesiste un un validovalido percorsopercorso finofino ad ad unauna CA CA affidabileaffidabileImpossibileImpossibile accedereaccedere ad ad unauna CRLCRLLa CRL non è La CRL non è validavalidaLa CRL è La CRL è scadutascadutaIl Il certificatocertificato è è scadutoscadutoIl Il certificatocertificato è è statostato revocatorevocato
Posta Elettronica CertificataPosta Elettronica Certificata
Scenari ed esigenze in cui si inserisce la Posta Scenari ed esigenze in cui si inserisce la Posta Elettronica CertificataElettronica Certificata–– Piano Nazionale per la Società dell’InformazionePiano Nazionale per la Società dell’Informazione–– Informatizzazione della Pubblica AmministrazioneInformatizzazione della Pubblica Amministrazione–– Protocollo Informatico Protocollo Informatico –– InteroperabilitàInteroperabilità tra le diverse tra le diverse P.AP.A..–– Relazioni con il cittadinoRelazioni con il cittadino
Posta Elettronica Certificata (PEC)Posta Elettronica Certificata (PEC)
Definizione:Definizione:“Per posta elettronica certificata si intende un servizio basato“Per posta elettronica certificata si intende un servizio basato sulla sulla posta elettronica, come definito dallo standard SMTP e sue posta elettronica, come definito dallo standard SMTP e sue estensioni, che consenta la trasmissione di documenti prodotti estensioni, che consenta la trasmissione di documenti prodotti mediante strumenti informatici nel rispetto dell’articolo 14 delmediante strumenti informatici nel rispetto dell’articolo 14 deldecreto del Presidente della Repubblica 28 dicembre 2000, ndecreto del Presidente della Repubblica 28 dicembre 2000, n.445.445.”.”
Definizione tratta da “Linee Guida del servizio di trasmissione Definizione tratta da “Linee Guida del servizio di trasmissione documenti informatici documenti informatici mediante posta elettronica certificata.”mediante posta elettronica certificata.”Documento redatto per la fase di sperimentazione (periodo 2002Documento redatto per la fase di sperimentazione (periodo 2002--2004) dl Centro 2004) dl Centro Nazionale per l’Informatica nella P.A. (CNIPA)Nazionale per l’Informatica nella P.A. (CNIPA)
Firma elettronicaFirma elettronicaFirma digitaleFirma digitale
Termini e concetti introdotti con il Termini e concetti introdotti con il recepimentorecepimento della della Direttiva Europea 1999/93/CE)
–– Firma elettronica (Firma elettronica (password, PIN, digitalizzazione della firma autografa, tecniche biometriche, ecc.)
–– Firma elettronica avanzata (con Firma elettronica avanzata (con sistema a chiavi asimmetriche, dispositivo di firma generico)
–– Firma elettronica qualificata (certificato qualificato: emesso dFirma elettronica qualificata (certificato qualificato: emesso da CA a CA “qualificata”)“qualificata”)
–– Firma digitale (Firma digitale (firma elettronica avanzata, certificato qualificato, dispositivo di firma sicuro (smart card) - equiparata alla firma autografaequiparata alla firma autografa))
Posta Elettronica Certificata (PEC)Posta Elettronica Certificata (PEC)
DPR 445 del 28 dicembre 2000 regola, nella Sezione III, la DPR 445 del 28 dicembre 2000 regola, nella Sezione III, la Trasmissione di documenti.Trasmissione di documenti.Il comma 3 dell'Articolo 14 introduce Il comma 3 dell'Articolo 14 introduce il concetto di equivalenzail concetto di equivalenza fra fra la trasmissione del documento informatico per via telematica e lla trasmissione del documento informatico per via telematica e la a notificazione per mezzo della posta nei casi consentiti dalla lenotificazione per mezzo della posta nei casi consentiti dalla legge, gge, purché la trasmissione avvenga con modalità che assicurino purché la trasmissione avvenga con modalità che assicurino l'avvenuta consegna. l'avvenuta consegna.
Si può rilevare la similitudine con il servizio postale tradizioSi può rilevare la similitudine con il servizio postale tradizionale di nale di Raccomandata con Avviso di RitornoRaccomandata con Avviso di RitornoGarantisce il recapitoGarantisce il recapitoOpponibilitàOpponibilità a terzi della provenienza e recapito del messaggioa terzi della provenienza e recapito del messaggio
Posta Elettronica Certificata (PEC)Posta Elettronica Certificata (PEC)
Il Consiglio dei Ministri, nella seduta del 28 gennaio 2005, ha Il Consiglio dei Ministri, nella seduta del 28 gennaio 2005, ha approvato:approvato:Schema di Decreto del Presidente della Repubblica recante Schema di Decreto del Presidente della Repubblica recante regolamento concernente disposizioni per l’utilizzo della posta regolamento concernente disposizioni per l’utilizzo della posta elettronica certificata.elettronica certificata.–– Di prossima pubblicazione sulla Di prossima pubblicazione sulla G.UG.U..–– Sito CNIPA Sito CNIPA http://www.cnipa.gov.ithttp://www.cnipa.gov.it
Lo schema fa riferimento alle regole tecniche che saranno emanatLo schema fa riferimento alle regole tecniche che saranno emanate e con un Decreto della Presidenza del Consiglio dei Ministri.con un Decreto della Presidenza del Consiglio dei Ministri.Tali regole sono una revisione delle regole (CNIPA) utilizzate Tali regole sono una revisione delle regole (CNIPA) utilizzate durante la sperimentazione.durante la sperimentazione.
Posta Elettronica Certificata (PEC)Posta Elettronica Certificata (PEC)
Soggetti del servizio di posta elettronica certificataSoggetti del servizio di posta elettronica certificata–– nello schema di Decreto vengono identificati i seguenti soggettinello schema di Decreto vengono identificati i seguenti soggetti del del
servizio di posta elettronica certificataservizio di posta elettronica certificataMittenteMittenteDestinatarioDestinatarioGestoreGestore
Nello stesso schema di Decreto si trova la seguente modifica al Nello stesso schema di Decreto si trova la seguente modifica al comma 1 dell’articolo 14 del DPR 28 dicembre 2000, n. 445comma 1 dell’articolo 14 del DPR 28 dicembre 2000, n. 445“1. Il documento informatico trasmesso per via telematica si int“1. Il documento informatico trasmesso per via telematica si intende ende spedito dal mittente se inviato al proprio gestore, e si intendespedito dal mittente se inviato al proprio gestore, e si intendeconsegnato al destinatario se reso disponibile all’indirizzo eleconsegnato al destinatario se reso disponibile all’indirizzo elettronico ttronico da questi dichiarato, nella casella di posta elettronica messa ada questi dichiarato, nella casella di posta elettronica messa adisposizione dal gestore”.disposizione dal gestore”.
Posta Elettronica Certificata (PEC)Posta Elettronica Certificata (PEC)
Punto di accessoPunto di accesso–– ricevuta di accettazionericevuta di accettazione–– messaggio di trasportomessaggio di trasporto–– log delle operazionilog delle operazioni
Punto di ricezionePunto di ricezione–– ricevuta di presa in caricoricevuta di presa in carico–– messaggio di anomalia di trasportomessaggio di anomalia di trasporto–– log delle operazionilog delle operazioni
Punto di consegnaPunto di consegna–– ricevuta di consegna, ricevuta di errore di consegnaricevuta di consegna, ricevuta di errore di consegna–– log delle operazionilog delle operazioni
Posta Elettronica Certificata (PEC)Posta Elettronica Certificata (PEC)
Dominio di posta elettronica certificataDominio di posta elettronica certificata–– dedicato alle caselle di posta degli utenti PECdedicato alle caselle di posta degli utenti PEC
Dati di certificazioneDati di certificazione–– insieme di dati che descrivono il messaggio originaleinsieme di dati che descrivono il messaggio originale
data/ora di inviodata/ora di inviomittente mittente destinatariodestinatariooggetto (oggetto (subjectsubject))identificativo messaggio (identificativo messaggio (MessageIdMessageId))…..…..
Posta Elettronica CertificataPosta Elettronica CertificataInterazione tra dominio convenzionale (mittente) eInterazione tra dominio convenzionale (mittente) e
dominio di PEC (destinatario)dominio di PEC (destinatario)
Messaggio di trasportoMessaggio di trasportoesempio parte descrittivaesempio parte descrittiva
Esempio di parte descrittiva:Esempio di parte descrittiva:
Messaggio di posta certificata Il giorno 26/11/2004 alle ore 16:Messaggio di posta certificata Il giorno 26/11/2004 alle ore 16:21:23 21:23 (+0100) il messaggio "Test I1 (+0100) il messaggio "Test I1 -- 16:20" è stato inviato da 16:20" è stato inviato da "[email protected]""[email protected]" indirizzato a: indirizzato a: [email protected]@postacert.isti.cnr.it [email protected]@certmail.rupa.it Il Il messaggio originale è incluso in allegato. Identificativo messagmessaggio originale è incluso in allegato. Identificativo messaggio: gio: <[email protected]><[email protected]>
Posta Elettronica Certificata (PEC)Posta Elettronica Certificata (PEC)
I gestori sono registrati in un “I gestori sono registrati in un “indice dei gestori di posta certificataindice dei gestori di posta certificata””Per ciascun gestore tale indice include:Per ciascun gestore tale indice include:–– Descrizione del gestoreDescrizione del gestore–– Certificato pubblico in formato XCertificato pubblico in formato X.509.509–– Lista dei domini di PEC gestitiLista dei domini di PEC gestiti–– IndirizzoIndirizzo mailbox per mailbox per ricevutericevute didi presapresa in in caricocarico
Le suddette informazioni sono distribuite attraverso un server LLe suddette informazioni sono distribuite attraverso un server LDAP DAP o attraverso file LDIF (scaricabile via HTTPS).o attraverso file LDIF (scaricabile via HTTPS).
Posta Elettronica Certificata (PEC)Posta Elettronica Certificata (PEC)
Le norme tecniche in fase di emanazione potranno risultare Le norme tecniche in fase di emanazione potranno risultare modificate rispetto a quelle della sperimentazione, con l’introdmodificate rispetto a quelle della sperimentazione, con l’introduzione uzione di:di:
–– direttive per azioni in caso di rilevamento di virus informaticodirettive per azioni in caso di rilevamento di virus informatico–– nuove direttive sugli avvisi di mancata consegna (gestione di evnuove direttive sugli avvisi di mancata consegna (gestione di eventi a enti a
tempo)tempo)–– obbligo del canale sicuro (SSL) tra tutti i sistemiobbligo del canale sicuro (SSL) tra tutti i sistemi–– ricevuta di consegna breve (non contiene il messaggio originale,ricevuta di consegna breve (non contiene il messaggio originale,
sostituito con sostituito con hashhash degli allegati).degli allegati).
Piattaforma ISTI PMDFPiattaforma ISTI PMDF--PECPEC
Modulo ISTI PMDFModulo ISTI PMDF--PEC:PEC:–– Modulo aggiuntivo al prodotto PMDF (versione 6.2 e successive)Modulo aggiuntivo al prodotto PMDF (versione 6.2 e successive)
Composto da 4 moduli:Composto da 4 moduli:–– PECACCEPTPECACCEPT ((punto di accessopunto di accesso: ricevuta di accettazione, messaggio di : ricevuta di accettazione, messaggio di
trasporto, firma digitale)trasporto, firma digitale)–– PECRECEIVEPECRECEIVE ((punto di ricezionepunto di ricezione: ricevuta di presa in carico, verifica firma, : ricevuta di presa in carico, verifica firma,
messaggio anomalia di trasporto)messaggio anomalia di trasporto)–– PECRECEIPTPECRECEIPT (ricevute di consegna/errore, parsing delle DSN in formato (ricevute di consegna/errore, parsing delle DSN in formato
NOTARY, firma digitale)NOTARY, firma digitale)–– PECDELIVERYPECDELIVERY (gateway tra sistema PEC e (gateway tra sistema PEC e mailboxmailbox--storestore locale o remoto)locale o remoto)
PECDELIVERYPECDELIVERY e e PECRECEIPTPECRECEIPT costituiscono il costituiscono il punto di consegnapunto di consegna
Ambiente di sviluppoAmbiente di sviluppo–– S.O. S.O. OpenVMSOpenVMS (versione 7.3(versione 7.3--2 e successive)2 e successive)–– Linguaggio CLinguaggio C–– Librerie Librerie OpenSSLOpenSSL–– PMDF APIPMDF API
Le norme tecniche (sperimentali) non danno indicazione sul Le norme tecniche (sperimentali) non danno indicazione sul trasporto (a livello trasporto (a livello envelopeenvelope) delle richieste di Delivery ) delle richieste di Delivery ServiceServiceNotificationNotification e dell’identificativo dell’e dell’identificativo dell’envelopeenvelope ((envelopeenvelope idid))–– RFC 3461, 3462, 3463, 3464 (NOTARY)RFC 3461, 3462, 3463, 3464 (NOTARY)
La soluzione PMDFLa soluzione PMDF--PEC rispetta lo standard, inoltrando tali PEC rispetta lo standard, inoltrando tali richieste verso i destinatari, se il sistema di trasporto è in grichieste verso i destinatari, se il sistema di trasporto è in grado di rado di trattarle, o generando la DSN per segnalare l’trattarle, o generando la DSN per segnalare l’instradamentoinstradamento del del messaggio verso un sistema non in grado di soddisfare tali richimessaggio verso un sistema non in grado di soddisfare tali richieste.este.–– Esempio: il mittente che ha richiesto la DSN per eventi di tipo Esempio: il mittente che ha richiesto la DSN per eventi di tipo
SUCCESS potrà ricevere un doppia ricevuta di consegna:SUCCESS potrà ricevere un doppia ricevuta di consegna:una di tipo standard Internetuna di tipo standard Internetuna di tipo PECuna di tipo PEC
http://www.cnipa.gov.ithttp://www.cnipa.gov.it//–– Schema di decretoSchema di decreto–– Linee guida per l’utilizzo della Firma DigitaleLinee guida per l’utilizzo della Firma Digitale
http://protocollo.gov.it/http://protocollo.gov.it/http://www.ietf.org/http://www.ietf.org/Network Network SecuritySecurity withwith OpenSSLOpenSSL –– John Viega, Matt Messier & John Viega, Matt Messier & Pravir Chandra Pravir Chandra –– O’REILLYO’REILLYSecure Programming Cookbook for C and C++ Secure Programming Cookbook for C and C++ -- JohnJohn ViegaViega & & MattMattMessierMessier –– O’REILLYO’REILLY