Redirecting you to
Post del blog ago 27, 2020

Ambiente di gestione automatizzata dei certificati (ACME) spiegato

Il protocollo ACME automatizza la gestione del ciclo di vita dei certificati PKI, riducendo sforzi manuali e rischi. Semplifica l'emissione, il rinnovo e la revoca dei certificati con messaggi JSON sicuri su HTTPS, garantendo operazioni efficienti per i team IT.

Indice

Che cos'è il protocollo ACME?

Il protocollo Automated Certificate Management Environment (ACME) è un protocollo per automatizzare le comunicazioni di gestione del ciclo di vita dei certificati tra le autorità di certificazione (CA) e i server web, i sistemi di posta elettronica, i dispositivi degli utenti e qualsiasi altro luogo in cui vengono utilizzati i certificati dell'infrastruttura a chiave pubblica (PKI) di un'azienda. Il protocollo ACME non prevede costi di licenza e richiede pochissimo tempo ai team IT per configurare ed eseguire l'automazione della gestione dei certificati, rendendolo un componente sempre più adottato nella sicurezza aziendale.

L'Internet Security Research Group (ISRG) ha originariamente progettato il protocollo ACME per il proprio servizio di certificazione e lo ha pubblicato come standard Internet a tutti gli effetti nell'RFC 8555 dal proprio gruppo di lavoro IETF. ACME v2 API è la versione attuale del protocollo, pubblicata nel marzo 2018. (La versione precedente, ACME v1, è stata rilasciata nell'aprile 2016; ora è deprecata).

La base per l'emissione dei certificati PKI è che le Autorità di Certificazione, come Sectigo, sono fidate di autenticare che un utente del certificato rappresenti legittimamente le identità e i nomi di dominio associati al certificato PKI. Il processo di scambio delle informazioni necessarie alla CA per eseguire l'autenticazione ed emettere i certificati, e all'utente per distribuire i certificati emessi, è automatizzato utilizzando il protocollo ACME, anziché comunicare queste informazioni manualmente. Oltre al processo di emissione dei certificati, il protocollo consente anche altri casi d'uso della gestione del ciclo di vita dei certificati, come la revoca e il rinnovo dei certificati, utilizzando semplici messaggi in formato JSON su comunicazioni HTTPS crittografate.

Protocollo automatizzato - Vantaggi e casi d'uso

Sebbene non esista una soluzione di autenticazione e crittografia più forte e facile da usare dell'identità digitale fornita dalla PKI, la sfida per i team IT più impegnati rimane quella di distribuire e gestire manualmente i certificati, che richiede molto tempo e può creare rischi inutili. Sia che un'azienda distribuisca un singolo certificato SSL per un server web o che gestisca milioni di certificati per tutti i dispositivi di rete e le identità degli utenti di un'organizzazione, il processo end-to-end di emissione, configurazione e distribuzione dei certificati può richiedere fino a diverse ore. La gestione manuale dei certificati espone inoltre le aziende a un rischio significativo di dimenticanza dei certificati fino alla scadenza e di esposizione a lacune nella proprietà, con conseguenti interruzioni improvvise o guasti dei sistemi aziendali critici, nonché a violazioni e attacchi Man-in-the-Middle (MITM).

A fronte delle numerose insidie potenziali insite nella gestione manuale dei certificati PKI, le aziende hanno bisogno di uno standard di automazione come ACME per garantire che i certificati siano configurati e implementati correttamente senza l'intervento umano necessario per assicurare che i certificati siano validi uno alla volta. Questa automazione non solo contribuisce a ridurre i rischi, ma consente ai reparti IT di controllare i costi operativi.

Perché usare ACME invece di altre opzioni?

Sono disponibili altri standard di automazione dei certificati, come Enrollment over Secure Transport (EST) e Simple Certificate Enrollment Protocol (SCEP), nonché soluzioni associate ad architetture aziendali come Microsoft Active Directory. Perché ACME è uno standard di automazione sempre più popolare per molte aziende?

La ragione principale risiede nella complessità e nella scala delle esigenze di certificazione della maggior parte delle aziende. Le aziende si affidano ai certificati PKI per autenticare e crittografare qualsiasi cosa, dai server web nel cloud e in sede, ai dispositivi in rete, ai dispositivi mobili, alle identità degli utenti, ai sistemi di posta elettronica, alle apparecchiature di rete, ai dispositivi IoT, agli ambienti DevOps e altro ancora. A rendere ancora più impegnativa la gestione di questo vasto ecosistema, le aziende spesso operano su più infrastrutture IT, non su un'unica architettura centralizzata.

I team IT si affidano sempre di più ad ACME per affrontare le sfide legate alla scala e alla complessità, in quanto offre:

  • uno standard aperto con una serie completa di comandi e una solida gestione degli errori, che ne facilita l'adozione sia da parte delle aziende che delle CA
  • le migliori pratiche di sicurezza TLS e altre PKI per i team IT incaricati di implementare e gestire certificati PKI validi e per le CA fidate che aderiscono a procedure di autenticazione rigorose
  • miglioramenti e supporto continui da parte di una comunità, non controllati da un singolo fornitore o organizzazione
  • flessibilità nell'aggiungere e supportare CA di backup
  • basso costo, essendo di libero utilizzo

Come funziona il protocollo ACME?

Le due entità di comunicazione in ACME sono il client ACME e il server ACME. Il client ACME utilizza il protocollo per richiedere azioni di gestione dei certificati, come l'emissione o la revoca. Il client viene eseguito sul server o sul dispositivo dell'utente che deve essere protetto dal certificato PKI. Il server ACME viene eseguito da un'autorità di certificazione, come Sectigo. Risponde alle richieste del client ed esegue le azioni richieste una volta che il client è autorizzato. La comunicazione tra i due si basa su messaggi JSON attraverso una connessione sicura HTTPS.

Scoprite di più sull'integrazione Sectigo ACME oggi stesso.

Come funziona il protocollo ACME per la gestione automatizzata dei certificati PKI

Come funziona il protocollo ACME per la gestione automatizzata dei certificati PKI

L'altro elemento importante del processo è la fase di autenticazione, nota come sfida ACME. La CA non può emettere un certificato o completare la richiesta finché la sfida non viene superata. I requisiti di autenticazione per questo processo di convalida assicurano che i certificati siano rilasciati solo a utenti fidati. Attualmente esistono due tipi di sfida ACME:

Sfide HTTP

Quando il server ACME riceve una richiesta da un client ACME, la CA invia al client ACME un token da installare sul server. Il client crea quindi un file che contiene il token e lo aggiunge all'impronta della chiave di autorizzazione generata durante la configurazione. La struttura del file è (Token) || '.' || (impronta della chiave di autorizzazione). Una volta installato il file, il client informa la CA, che recupera e convalida il file e completa la richiesta.

Sfide DNS

Questa sfida include un ulteriore fattore di verifica, richiedendo all'agente ACME di inserire un determinato valore in un record TXT nello spazio DNS del dominio. Il processo di autenticazione è simile a quello delle sfide HTTP: la CA invia un token al client e l'impronta della chiave di autorizzazione viene aggiunta per creare e installare il file di sfida. Una volta che l'agente notifica alla CA che la sfida è stata soddisfatta, la CA tenta di effettuare una ricerca DNS e recuperare il record TXT.

L'intero processo di sfida è veloce, in genere completato in meno di 15 secondi per entrambi i tipi. Tuttavia, secondo RFC 8555, gli amministratori dovrebbero assicurarsi che la configurazione del server sia completa prima che il client ACME invii qualsiasi richiesta, poiché non è raro che le query dei server ACME falliscano mentre una risorsa è ancora in fase di configurazione sui sistemi degli utenti. Ad esempio, le informazioni DNS o HTTP o le regole del firewall richiedono tempo per propagarsi tra i server e il server ACME potrebbe segnalare un errore se interroga un sistema prima che la propagazione sia completa. Il server ACME del CA considera la sfida come “in corso” e riprova la richiesta ogni 5-10 secondi finché il client continua a provare. Pertanto, si raccomanda che nella configurazione dell'utente i client non rispondano alle sfide finché non ritengono che le interrogazioni del server avranno successo, poiché potrebbe esserci un piccolo ritardo tra il caricamento del file o del record DNS e la capacità della CA di recuperarli.

Come configurare un client

Per configurare un client ACME, l'utente decide innanzitutto quale client utilizzare e poi installa il client sul dominio/server per utilizzare il protocollo ACME. Poiché la flessibilità è un punto di forza, i client funzionano in quasi tutti i linguaggi di programmazione e gli ambienti di cui dispone un'azienda:

  • Bash
  • C/C++
  • Clojure
  • Docker
  • Go
  • HAProxy
  • Java
  • Microsoft Azure
  • nginx
  • Node.js
  • OpenShift
  • Perl
  • PHP
  • Python
  • Ruby
  • Rust
  • Windows/IIS

Come per gli standard open source, non esistono client proprietari per nessuna delle CA. Ciò consente alle organizzazioni di scegliere le CA che desiderano, purché queste supportino ACME. Ecco un elenco dei client ACME v2 più diffusi trovati su GitHub:

  • Certbot della Electronic Frontier Foundation (EFF) e sponsorizzato da Sectigo
  • ACMESharp
  • acme-client
  • GetSSL
  • Posh-ACME
  • Caddy
  • Fogna
  • nginx ACME
  • nodo-acme-lambda

Il passo successivo è configurare il client ACME e poi installarlo sul server in cui devono essere distribuiti i certificati PKI. Il processo di configurazione è composto da 6 semplici passaggi e richiede solo pochi minuti per essere completato:

  1. Il client richiede all'utente di inserire i domini da gestire.
  2. L'utente sceglie la CA desiderata da un elenco di CA che supportano ACME fornito dal client.
  3. Una volta selezionata una CA, il client contatta la CA e genera una coppia di chiavi private.
  4. La CA emette la sfida ACME, sia HTTP che DNS, per autenticare l'identità dell'utente.
  5. Oltre alle sfide, la CA invia anche un numero generato casualmente chiamato nonce. Il cliente firma con la chiave privata appena generata per dimostrare la proprietà della coppia di chiavi.
  6. Si definisce la frequenza con cui il client contatta la CA per rinnovare il certificato.

Una volta che la CA verifica che la sfida è stata superata e che la firma è autentica, il client ACME è ufficialmente autorizzato ad agire per conto dei domini convalidati.

In che modo ACME supporta la gestione del ciclo di vita dei certificati?

L'emissione, il rinnovo e la revoca dei certificati PKI tramite il protocollo ACME sono semplici e utilizzano i comuni processi di gestione dei certificati. Il client invia semplicemente messaggi standard di gestione dei certificati PKI e firma i certificati con la coppia di chiavi autorizzata.

Per emettere o rinnovare un certificato:

  1. Il cliente crea una Certificate Signing Request (CSR) che richiede alla CA di emettere un certificato per il dominio autorizzato con una chiave pubblica specificata.
  2. La CSR include la firma della chiave privata corrispondente alla chiave pubblica della CSR.
  3. Il cliente firma l'intero CSR con la chiave autorizzata per il dominio, in modo che la CA possa verificarne l'autorizzazione.
  4. La CA verifica entrambe le firme e, se sono valide, emette un certificato per il dominio autorizzato con la chiave pubblica della CSR.
  5. La CA rilascia il certificato al cliente
Emissione e rinnovo automatico dei certificati tramite il protocollo ACME

Emissione e rinnovo automatico dei certificati tramite il protocollo ACME

La revoca del certificato tramite ACME segue una comunicazione simile a quella dell'emissione e del rinnovo. Il cliente firma una richiesta di revoca con la coppia di chiavi autorizzata per il dominio e la CA verifica che la richiesta sia autorizzata. Quindi la CA pubblica le informazioni di revoca sui canali di revoca standard, in modo che i browser non accettino il certificato revocato.

Processo di revoca automatica del certificato tramite il protocollo ACME

Processo di revoca automatica del certificato tramite il protocollo ACME

Quali tipi di certificati TLS/SSL e altri certificati PKI supporta?

Come accennato in precedenza, lo standard ACME supporta i certificati PKI per i server Web, i sistemi di posta elettronica, i dispositivi degli utenti e qualsiasi altro luogo in cui viene utilizzata la PKI, a condizione che la CA supporti ACME per quel tipo di certificato PKI. Ad esempio, supporta i certificati SSL che richiedono diverse modalità di autenticazione - convalida del dominio (DV), convalida dell'organizzazione (OV) e convalida estesa (EV) - tenendo conto del fatto che potrebbero essere necessari ulteriori passaggi di autenticazione al di fuori di quelli facilitati da ACME.

Poiché Sectigo offre certificati SSL/TLS oltre a certificati firma del codice, S/MIME e altri certificati X.509 che supportano ACME, le aziende hanno bisogno di un modo per automatizzare la gestione del ciclo di vita end-to-end su scala. Sectigo Certificate Manager supporta il protocollo ACME per una gestione completamente automatizzata del ciclo di vita dei certificati.

Scopri di più? Contattateci per prenotare una demo di Sectigo Certificate Manager!

Messaggi relativi:

I rischi di ignorare ACME nell'era dell'SSL a 90 e 47 giorni

Root Causes 298: Andare avanti, insieme - Promuovere l'automazione

Integrazione dei certificati Sectigo per Apache con ACME