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

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

www.befair.it

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

7EUR/year: https://www.namecheap.com/security/ssl-certificates/domain-validation.aspx

certificato wildcard (in futuro):

60USD/year: https://www.startssl.com/?app=40

Miscellaneous

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

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)

Cronologia

ottobre 2014 - SSLv3 https://www.digitalocean.com/community/tutorials/how-to-protect-your-server-against-the-poodle-sslv3-vulnerability

settembre 2014 - Shellshock/Bash Bug https://www.digitalocean.com/community/tutorials/how-to-protect-your-server-against-the-shellshock-bash-vulnerability