Blog | On the Web | About me

Search 

Da qualche tempo stò lavorando al completamento della messa in sicurezza dei sistemi su cui lavoro per rendere finalmente disponibili anche via internet (extranet) alcuni servizi che ho preparato.

Parlando di Web e di Internet ovviamente si parla di HTTPS e di SSL. I sistemi in questione sono vari e sinteticamente posso dirvi che ci stanno dentro:


- Sito Web

- E-Commerce

- Portal

- Connections

- Quickr

- Sametime

- Altri servizi minori su base domino/php/websphere


Stò parlando quindi di proteggere con HTTPS almeno 7 hostname (in realtà sono di più) e qui nascono i "problemi".


Da un lato potrei generarmi in casa tutti i certificati SSL usando la OTTIMA PKI di Domino server (Public Key Infrastructure) oppure comprare i certificati digitali da un fornitore "serio" tipo Verisign/Geotrust ed altri.


In entrambi i casi ho vantaggi e svantaggi da valutare:


Soluzione 1: Domino based usando la Certificate Authority e i servizi domino

Vantaggi Svantaggi
  • Costo 0 a parte il setup del sistema
  • Posso creare e controllare quanti hostname voglio e quanti certificatori voglio
  • I certificati fatti (o meglio le mie certification root) in casa non sono inclusi nei browser per cui dovrei fare installare a tutti gli utenti un certificato root. E' possibile ma poco pratico sopratutto se il numero di utenti varia spesso o se devo rendere il servizio disponibile ad esterni.
  • Sempre in ambito "interno/intranet" potrei usare servizi come le Group Policy (sempre che abbia un dominio windows) per distribuire il certificato. In questo caso però mi serve l'aiuto degli amministratori windows, sempre che sappiano dove mettere le mani.




Soluzione 2: Compro i certificati da un provider
Vantaggi Svantaggi
  • I browser contengono già le root certificate e non devo fare nulla dal punto di vista dell'utente per garantire la sicurezza
  • In alcuni casi i provider di certificati offrono un servizio di "security seal" che permette di aggiungere alle proprie pagine un "sigillo di sicurezza" che consente di aumentare la percezione di sicurezza per gli utenti.
  • Questi certificati COSTANO, spesso parecchie centinaia di euro il che limita la possibilità di coprire tutti gli hostname creando possibili falle di sicurezza (v. in seguito)
  • Ogni server deve essere gestito con un certificato diverso, devo tenere traccia di versioni, scadenze etc.





Le possibilità quindi non mancano, da una parte posso risparmiare, avere sicurezza ma devo gestire e spiegare all'utente che deve installare il mio certificato (diventa presto un incubo, e in alcune realtà gli utenti non hanno questi diritti), dall'altra posso avere tutta la comodità per gli utenti ma mi tocca spendere parecchi soldi.


Va inoltre tenuto conto che per avere sicurezza "vera" tutto deve essere protetto. Potrebbe sembrare furbo proteggere solo i servizi principali... ma se su un servizio secondario la form di login non fosse protetta andrei a compromettere tutto il lavoro fatto. Basterebbe che qualcuno compromettesse / intercettasse le form di quel servizio per rendere vano tutto il lavoro di messa in sicurezza.


Ovviamente l'ideale sarebbe quello di avere tutto, certificati digitali firmati da fonti attendibili (costoso) e sicurezza su tutti gli host... (costoso).


Approfondendo bene la cosa ho trovato la soluzione
Image:Sicurezza su web, usare SSL in modo pratico ed "economico" (magari già nota ad altri).

I certificati digitali per HTTPS sono identificati da un DN (distinguished name) che ha una forma simile alla seguente:


CN=hostname,OU=organization unit,O=organization,C=country


L'hostname identifica l'host protetto dal certificato (infatti se accedete ad un host https e non c'è corrispondenza i browser vi segnalano che si potrebbe trattare di un trucco).


E qui c'è il trucco, all'interno del DN del sito potete usare una wildcard, per es.


CN=*.vistalli.it,OU=labs,O=vistalli.it,C=IT


Con un siffatto certificato potrò proteggere "qualunque" hostname del dominio vistalli.it riducendo drasticamente il numero dei certificati che mi servirà creare o comprare.


In sintesi mi stò apprestando a comprare dei certificati digitali wildcard per l'ambiente da mettere in sicurezza e ad installarli su TUTTI (ricordate che è imporante) i miei serve in modo da avere tutti i vantaggi:
  • Costo contenuto (per esempio un certificato wildcard su rapidSSL costa solo 199$ per un anno, una spesa DA FARE).
  • Massima flessibilità, con un solo certificato posso proteggere qualunque numero di host e sapendo lavorare con i certificati li posso usare per domino / apache / IHS / websphere
  • Massima praticità, i certificati sono creati con delle root già note ai browser e non è necessario installare sui browser degli utenti nessun certificato aggiuntivo.

Detto questo.. buona messa in sicurezza a tutti... fatelo prima che sia troppo tardi.


Ciao,

Daniele



Comments (0)
Daniele Vistalli March 8th, 2008 15:06:42