• Tutte
  • Portfolio
  • Sviluppo
  • Tecnologia
  • Let’s Encrypt, l’HTTPS Open

    di Denis Torresan

    La sicurezza in rete continua ad essere un tema caldo e molto sentito sia dagli utenti, sia dagli operatori di settore, tanto da spingere Big G a promuovere, durante il Google I/O del 2014 il “HTTPS everywhere“, anche come fattore di ranking.

    Dal 2016 questa iniziativa sembra essere entrata a pieno regime, ed sarà quindi importante per ogni webmaster potersi dotare di un certificato HTTPS per mantenere o migliorare il proprio ranking oltre che la sicurezza di navigazione.

    Fortunatamente esiste, parallelamente alle certification authority commerciali, anche una nuova CA Open, di nome Let’s Encrypt.

    Si tratta di una CA promossa da numerosi attori del settore, che fornisce certificati HTTPS gratuiti a chiunque, fornendo un elevato standard di sicurezza grazie ad una chiave RSA da 2048-bit.

    L’infrastruttura della nuova CA viene gestita da Internet Security Research Group (ISRG), un’organizzazione californiana non a scopo di lucro che si è incaricata di mettere in piedi e far funzionare l’infrastruttura a partire dal secondo trimestre del 2015.

    Come funziona Let’s Encrypt?

    L’obiettivo di Let’s Encrypt e del protocollo ACME è quello di rendere possibile la configurazione di un server HTTPS ed ottenere automaticamente un certificato “trusted”, senza alcun intervento umano.
    Questo è possibile mediante l’esecuzione di un “certificate management agent”, un gestore delle certificazioni sul server web.

    Per capire come funziona la tecnologia, vediamo qual’è il processo per configurare il nostro dominio https://example.com con un agent di certifcazione che supporta Let’s Encrypt.

    Ci sono due passi da svolgere per questo processo:

    • Innanzitutto, l’agent deve dimostrare alla CA che il server web chiamante risponda al dominio per cui viene richiesto il certificato.
    • Poi, l’agent può richiedere, rinnovare e revocare i certificati per tale dominio.

     

    La convalida del dominio

    Let’s Encrypt identifica l’amministratore del server con una chiave pubblica. La prima volta che il software interagisce con Let’s Encrypt, si genera una nuova coppia di chiavi e dimostra alla CA di Let’s Encrypt che il server controlla uno o più domini richiesti.
    Questo è simile al tradizionale processo di CA per creare un account e aggiungendo domini a tale account.

    Per dare il via al processo, l’agent chiede alla CA di Let’s Encrypt CA quello che deve fare per dimostrare che il server controlla "example.com".
    Let’s Encrypt esaminerà il nome di dominio in fase di richiesta ed eseguirà uno o più controlli per effettuare le verifiche di proprietà del dominio.
    Ci sono varie modalità che l’agent può utilizzare per dimostrare la proprietà del dominio. Ad esempio, il CA potrebbe dare all’agent una scelta tra:

    Impostare un particolare record DNS sotto example.com, o
    Posizionare un file nella docroot di https://example.com accessibile dall’esterno

    Insieme ai test di verifica, Let’s Encrypt fornisce anche un nonce che l’agent deve firmare con la chiave privata per dimostrare di essere l’owner della coppia di chiavi generate.

    lets_encrypt_howitworks_challenge

    L’agent completa uno dei test richiesti dalla CA. Diciamo che è in grado di realizzare il secondo: crea un file su un percorso specificato sul https://example.com.
    L’agent firma anche il nonce fornito con la sua chiave privata. Una volta che l’agent ha completato questi passaggi, lo comunica la CA che è pronto a completare la convalida.

    Poi, è compito della CA verificare che i test richiesti siano stati correttamente impostati. La CA verifica la firma sul nonce, e tenta di scaricare il file dal server web, assicurandosi che abbia anche il contenuto previsto.

    lets_encrypt_howitworks_authorization

    Se la firma del nonce è valida, e i test soddisfatti, l’agent identificato dalla chiave pubblica è autorizzato a fare la gestione dei certificati per example.com.
    La coppia di chiavi che l’agent ha utilizzato diventano una “coppia di chiavi autorizzate” per example.com.

    Emissione e revoca dei certificati

    Una volta che l’agent ha una coppia di chiavi autorizzate, richiedere il rinnovo o la revoca dei certificati è semplice:
    basta inviare messaggi alla CA firmati con la coppia di chiavi autorizzate.

    Per ottenere un certificato per il dominio, l’agent costruisce una richiesta di firma di un certificato PKCS#10 che chiede a Let’s Encrypt di emettere un certificato per example.com.
    Come al solito, il CSR include una firma con la chiave privata corrispondente alla chiave pubblica nel CSR. L’agent firma anche tutta la CSR con la chiave autorizzata per example.com in modo che Let’s Encrypt sappia che è autorizzato.

    Quando Let’s Encrypt riceve la richiesta, verifica entrambe le firme. Se tutto è corretto, emette un certificato per example.com con la chiave pubblica dal CSR e lo restituisce all’ agent.

    lets_encrypt_howitworks_certificate

    La revoca funziona in modo simile.
    L’agent firma una richiesta di revoca con la coppia di chiavi autorizzate per example.com, e Let’s Encrypt verifica che la richiesta sia autorizzata.
    Se è così, pubblica informazioni di revoca nei normali canali di revoca (vale a dire, CRLs, OCSP), in modo che chiunque, ad esempio i browser, possano sapere che non devono accettare il certificato revocato.

    lets_encrypt_howitworks_revocation

    Leggi anche...