This is an old revision of the document!
Table of Contents
Security
Apriamo questa pagina per migliorare la sicurezza della nostra infrastruttura IT, in particolare sull'adozione dell'HTTPS per i servizi interni ed esterni.
Premessa
L'obiettivo e' quello di rendere piu' sicure le comunicazioni client-server, tuttavia ad oggi per far questo ci sono 2 possibilita': affidarsi ad una certification authority, oppure crearsi un certificato autofirmato. Questa seconda possibilita', seppur possa essere tranquillamente applicata per i nostri servizi interni, si potrebbe rilevare un po' troppo “invasiva” nei confronti di utenti esterni, che si ritroverebbero messaggi di avvertimento. Allo stesso tempo, quella delle CA e' a tutti gli effetti una sorta di mafia, che tra l'altro non dovrebbe aumentare l'affidabilita' delle connessioni.
Il punto di equilibrio potrebbe consistere nel fare affidamento ad una CA solo per servizi esterni particolarmente critici, ed usare certificati molto basilari, a bassissimo costo o del tutto gratuiti (vedi sotto).
Recentemente e' stata lanciata una campagna da parte di Eletronic Frontier Foundation, Mozilla, Cisco, etc per costituire una sorta di CA che fornisce certificati gratuitamente. L'iniziativa dovrebbe partire nell'estate 2015, mentre qui si trovano alcune info sul funzionamento.
In un futuro piu' remoto, una possibilita' e' legata al concetto del cosiddetto Web Of Trust, ovvero “decentralizzare l'autorita'”!!
Risultati attesi
- Installazione temporanea di test (befair2/gf_secure, secure.gasistafelice.befair.it) con certificato autofirmato, entro inizio dicembre (PRONTA!)
- http://secure.gasistafelice.befair.it/ (redirect)
- Gasista Felice (befair2/gf_prod, gasistafelice.befair.it) sotto HTTPS con certificato da CA ufficiale, entro fine 2014
Futuri risultati (chi lo sa..):
- Servizi interni beFair (*.internal.befair.it)
- si.internal.befair.it
- Servizi esterni
- docs.befair.it
- pad.befair.it
- Gasista Felice (desmc/gf_desmc, ordini.desmacerata.it) sotto HTTPS con certificato da CA ufficiale
Casi di utilizzo
Servizi interni (*.internal.befair.it):
- livello di sicurezza alto: https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility
- certificato wildcard, ovvero *.internal.befair.it
- Certification Authority: beFair CA
Servizi esterni:
- livello di sicurezza intermedio: https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29
- certificato per singolo dominio:
- free(ware): https://www.startssl.com/?app=40
- certificato wildcard (in futuro):
- 60USD/year: https://www.startssl.com/?app=40
Miscellaneous
Servers:
- Mozilla Guidelines: https://wiki.mozilla.org/Security/Server_Side_TLS
- Test suite: https://www.ssllabs.com/ssltest/
- Mozilla config generator: https://mozilla.github.io/server-side-tls/ssl-config-generator/
- Deploying TLS the hard way: https://timtaubert.de/blog/2014/10/deploying-tls-the-hard-way/
- HTTPS su Nginx: https://bjornjohansen.no/optimizing-https-nginx
- Deploying HTTPS: https://www.eff.org/https-everywhere/deploying-https
- HTTP header advices: http://ibuildings.nl/blog/2013/03/4-http-security-headers-you-should-always-be-using
Il compito di gestire le sessioni HTTPS dipende esclusivamente dal web server (NGiNX) e dalla libreria specifica (OpenSSL), sollevando cosi' da questo ruolo gli application server (uWSGI, Gunicorn, Unicorn, NodeJS, PHP-FPM, FCGIWrap..). Su Wheezy abbiamo le seguenti versioni:
- OpenSSL 1.0.1e
- NGiNX 1.2.1
In wheezy-backports (e jessie) e' disponibile NGiNX 1.6.2 che aggiunge le seguenti funzionalita':
- SPDY 3
- il protocollo piu' moderno tra quelli stabili e in produzione, introduce multiplexing, compressione..
- e' in produzione su diversi siti (google, fb, twitter, wordpress.com..)
- e' una sorta di “branch di sviluppo” di HTTP 2.0
- OCSP (da vedere)
Clients:
- Test suite: https://www.howsmyssl.com/
Cronologia
Di seguito un elenco (in ordine cronologico decrescente) delle vulnerabilita' particolarmente gravi che richiedono un intervento immediato e/o una modifica di diversi software. Negli articoli e' presente la descrizione del problema, la risoluzione e la verifica:
- settembre 2014 - Shellshock/Bash Bug https://www.digitalocean.com/community/tutorials/how-to-protect-your-server-against-the-shellshock-bash-vulnerability