Aggiornamento a TLS 1.2

PERSONALIZZA Stai utilizzando TLS più vecchio di 1.2? Va bene, i ritardi negli aggiornamenti di manutenzione accadono a tutti. Lo capiamo. Tuttavia, è tempo di andare avanti.

Autore

Uccello

Categoria

Ingegneria

Aggiornamento a TLS 1.2

PERSONALIZZA Stai utilizzando TLS più vecchio di 1.2? Va bene, i ritardi negli aggiornamenti di manutenzione accadono a tutti. Lo capiamo. Tuttavia, è tempo di andare avanti.

Autore

Uccello

Categoria

Ingegneria

Aggiornamento a TLS 1.2

PERSONALIZZA Stai utilizzando TLS più vecchio di 1.2? Va bene, i ritardi negli aggiornamenti di manutenzione accadono a tutti. Lo capiamo. Tuttavia, è tempo di andare avanti.

Autore

Uccello

Categoria

Ingegneria

Stai utilizzando TLS inferiore a 1.2?  Va bene, i ritardi negli aggiornamenti di manutenzione possono capitare a tutti.  Lo capiamo.  Tuttavia, è tempo di andare avanti.

Ricordi quando nel giugno 2018 abbiamo deprecato l'uso di TLS 1.0? Se non lo fai, va bene, puoi leggere tutto a riguardo in questo post.  Bene, eccomi qui, 2 anni dopo e la prossima versione sta per essere messa da parte, quindi vogliamo che tu sia preparato e eviti qualsiasi interruzione del servizio.  Questo post riguarda tutto ciò che devi sapere per prepararti a funzionare senza l'uso di TLS1.1 in modo da poter limitare l'accesso solo a TLS1.2.  Ti guideremo su come controllare la tua versione attuale e come aggiornare all'ultima versione.  Solo per divertirci, ci piacerebbe davvero sentire il tuo feedback e aggiungerti a un "muro dell'eccellenza" che presenta tutte quelle aziende attente alla sicurezza che effettuano il cambiamento in anticipo.


Questo mi riguarda?

Nel 2018 abbiamo chiesto ai nostri clienti di aggiornare e TLS 1.2 è stata la raccomandazione per molto tempo, quindi è molto probabile che tu non sia COLPITO.  Tuttavia, se utilizzi qualsiasi metodo per iniettare messaggi (SMTP o REST API) o raccogliere dati (metriche o webhook, ecc.), allora dovresti controllare ora per assicurarti che il tuo sistema possa supportare TLS 1.2.  Assicurati di eseguire i seguenti test sui server che si connettono effettivamente a SparkPost.  


Perché è importante

  1. SparkPost non accetterà connessioni su TLS 1.1 dopo settembre 2020

  2. Le versioni più vecchie non sono sicure

  3. TLS 1.2 è stato il protocollo raccomandato per oltre un decennio

  4. Tutti i ragazzi alla moda lo stanno facendo

  5. IETF afferma che è ufficialmente deprecato


Perché ora?

In realtà, la domanda dovrebbe essere “perché continui a supportarlo?”  TLS 1.2 è stato lo standard sicuro raccomandato per più di un decennio e siamo agli sgoccioli su chiunque offra supporto per qualsiasi cosa meno di TLS1.2. È tempo di far morire il supporto HTTPS debole una volta per tutte.  Se stai ancora utilizzando TLS 1.1 dopo marzo 2020, avrai difficoltà a connetterti alla maggior parte dei servizi.  SparkPost ha concesso ampio margine per aggiornare e ora stiamo inviando avvisi finali per aggiornare prima di settembre quando lo elimineremo per sempre.


Ma come, per favore, puoi risolverlo?

È molto probabile che il tuo SysAdmin o WebAdmin abbia già fatto questo per te come parte della loro normale manutenzione.  In tal caso, dovresti offrirgli una birra e dire grazie.  Se no, puoi seguire alcuni dei passaggi di seguito per farlo in Linux, Windows e Mac.

Nota che nel corso di questo documento testeremo con l'endpoint statunitense di SparkPost

Se normalmente utilizzi il deployment europeo, dovresti utilizzare l'endpoint UE invece.


Come puoi controllare? (versione Linux)

Prima, controlliamo se il tuo amichevole SysAdmin di quartiere ha già provveduto a questo per te. Questo fa effettivamente parte della configurazione SSL, quindi può essere gestito nella configurazione del tuo sistema.  Supponendo che tu stia utilizzando Linux, il metodo più descrittivo è utilizzare nmap ma puoi utilizzare anche openssl.  Puoi usare nmap con Linux, Windows e Mac, ma esploreremo altri metodi per Windows e Mac se non vuoi installare nuovo software.

Per fare questo con nmap, testa i cifrari contro un host HTTPS conosciuto.  Poiché il punto è assicurarsi di connettersi in modo sicuro a SparkPost, testiamo contro quell'endpoint. Assicurati di eseguire i seguenti test sui server che si connettono effettivamente a SparkPost. 

nmap --script ssl-enum-ciphers -p 443 api.sparkpost.com

Questo è stato fatto sul mio stesso server di sviluppo e puoi facilmente vedere che la mia configurazione supporta TLS 1.1 e 1.2 ma non 1.3.  È importante notare a questo punto che gli AWS ALB, e quindi le connessioni SparkPost, non supportano ancora TLS1.3, ma è sulla roadmap di AWS.

Starting Nmap 6.40 ( http://nmap.org ) at 2020-05-06 22:41 UTC Nmap scan report for api.sparkpost.com (52.13.246.255) Host is up (0.00059s latency). Other addresses for api.sparkpost.com (not scanned): 34.211.102.211 52.43.22.201 54.213.185.174 100.20.154.199 52.43.110.79 52.40.215.39 52.40.175.169 rDNS record for 52.13.246.255: ec2-52-13-246-255.us-west-2.compute.amazonaws.com PORT STATE SERVICE 443/tcp open https | ssl-enum-ciphers: | TLSv1.1: | ciphers: | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong | TLS_RSA_WITH_AES_128_CBC_SHA - strong | TLS_RSA_WITH_AES_256_CBC_SHA - strong | compressors: | NULL | TLSv1.2: | ciphers: | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 - strong | TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 - strong | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 - strong | TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 - strong | TLS_RSA_WITH_AES_128_CBC_SHA - strong | TLS_RSA_WITH_AES_128_CBC_SHA256 - strong | TLS_RSA_WITH_AES_128_GCM_SHA256 - strong | TLS_RSA_WITH_AES_256_CBC_SHA - strong | TLS_RSA_WITH_AES_256_CBC_SHA256 - strong | TLS_RSA_WITH_AES_256_GCM_SHA384 - strong | compressors: | NULL |_ least strength: strong Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds

A questo punto, puoi effettivamente fermarti se vuoi perché il punto è assicurarti di poter connetterti a SparkPost utilizzando TLS 1.2.  Se la tua connessione supporta TLS 1.2, è ciò di cui abbiamo bisogno a questo punto, quindi va tutto bene qui.  Vai a comprare quella birra al SysAdmin e dillo grazie.

Inviaci un email e facci sapere se hai avuto successo.


Controllare il supporto sul tuo Mac

Il motivo più comune per cui potresti dover controllare il supporto sul tuo Mac è che lo usi per lo sviluppo locale, quindi supponiamo che sia così e controlliamo il tuo supporto. 

Il metodo meno invasivo è utilizzare curl, che dovrebbe essere integrato in ogni Mac. Avvia l'app Terminale e utilizza il flag del protocollo per testare specificamente TLS1.2.

curl https://api.sparkpost.com/ --tlsv1.2 --verbose * Trying 54.213.185.174... * TCP_NODELAY set * Connected to api.sparkpost.com (54.213.185.174) port 443 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH * successfully set certificate verify locations: * CAfile: /etc/ssl/cert.pem CApath: none * TLSv1.2 (OUT), TLS handshake, Client hello (1): * TLSv1.2 (IN), TLS handshake, Server hello (2): * TLSv1.2 (IN), TLS handshake, Certificate (11): * TLSv1.2 (IN), TLS handshake, Server key exchange (12): * TLSv1.2 (IN), TLS handshake, Server finished (14): * TLSv1.2 (OUT), TLS handshake, Client key exchange (16): * TLSv1.2 (OUT), TLS change cipher, Client hello (1): * TLSv1.2 (OUT), TLS handshake, Finished (20): * TLSv1.2 (IN), TLS change cipher, Client hello (1): * TLSv1.2 (IN), TLS handshake, Finished (20): * SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256 * ALPN, server accepted to use h2 * Server certificate: * subject: CN=*.sparkpost.com * start date: Jan 30 00:00:00 2020 GMT * expire date: Feb 28 12:00:00 2021 GMT * subjectAltName: host "api.sparkpost.com" matched cert's "*.sparkpost.com" * issuer: C=US; O=Amazon; OU=Server CA 1B; CN=Amazon * SSL certificate verify ok. * Using HTTP2, server supports multi-use * Connection state changed (HTTP/2 confirmed) * Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0 * Using Stream ID: 1 (easy handle 0x7fbd69805200) > GET / HTTP/2 > Host: api.sparkpost.com > User-Agent: curl/7.54.0 > Accept: */* > * Connection state changed (MAX_CONCURRENT_STREAMS updated)! < HTTP/2 200 < date: Thu, 07 May 2020 15:14:30 GMT < content-type: text/plain < content-length: 95 < server: msys-http < * Connection #0 to host api.sparkpost.com left intact Oh hey! Dovresti venire a lavorare con noi e costruire cose fantastiche!

Se vuoi testare utilizzando la connessione SMTP, puoi farlo con questo comando:

openssl s_client -crlf -starttls smtp -tls1_2 -connect smtp.sparkpostmail.com:587

Restituisce un grande quantitativo di dati tra cui:

SSL-Session: Protocol : TLSv1.2 Cipher : ECDHE-RSA-AES256-GCM-SHA384


Controllare il supporto in Windows

Simile al caso d'uso di Mac, il motivo più comune per cui potresti dover controllare il supporto nel tuo Windows è che lo utilizzi per lo sviluppo locale, quindi supponiamo che sia così e controlliamo il tuo supporto. 

Windows 7 e Windows 10 utilizzano fondamentalmente lo stesso processo.  Se stai utilizzando qualcosa di precedente, ti preghiamo di aggiornare, poiché le versioni precedenti non supportano TLS 1.2.

Inizia facendo clic su START nell'angolo in basso a sinistra (di solito).


Digita “Opzioni Internet” e seleziona la corrispondenza dall'elenco risultante.


Fai clic sulla scheda Avanzate e da lì scorri fino in fondo. Se TLS 1.2 è selezionato, sei già a posto. Se non lo è, seleziona la casella adiacente a Usa TLS 1.2 e poi Applica.


Aspetta, cosa? No 1.2? 

Pezzo di sfortuna.  Il tuo lavoro non è ancora finito.

Se hai solo TLS1.1, allora dovresti aggiornare le tue impostazioni Cipher.

Supponendo che tu stia utilizzando Linux e Apache per la gestione della connessione TLS, puoi aggiornare la configurazione SSL modificando questa riga per aggiungere “+TLSv1.2 ”:

SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2 

(Nota a margine: Poiché non sono più supportati ovunque ormai, ha senso rimuovere anche le impostazioni 1.0 e 1.1 mentre sei qui.)

Quella configurazione si trova tipicamente in /etc/httpd/conf.d/ssl.conf 

Riavvia Apache e sei a posto. 

service httpd restart

Se stai utilizzando Nginx, dovrai modificare questa riga in modo simile:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

Quella configurazione si trova tipicamente in /etc/nginx/conf.d/ 

Riavvia Nginx e sei a posto. 

service nginx restart

Se riscontri messaggi di errore durante il riavvio, potresti avere una libreria SSL obsoleta.  Assicurati di utilizzare almeno openssl v1.0.1g.

Se stai utilizzando Windows, le istruzioni per impostare TLS1.2 sono nella sezione “Controllare il supporto in Windows” sopra.

Tutto a posto ora? Inviaci un email e facci sapere se hai avuto successo.


Andare un passo oltre

Perché fermarsi a TLS 1.2 quando sai – lo sai sicuramente – che tutti noi dovremo aggiornare a TLS 1.3 nel prossimo anno o giù di lì.  Perché non aggiornare direttamente a TLSv1.3 mentre ci siamo?

Purtroppo, gli AWS ALB non supportano ancora TLS1.3, quindi se aggiorni la tua configurazione, la tua connessione a SparkPost e qualsiasi altro servizio AWS che utilizza il livello ALB sarà comunque limitata a TLS1.2. Personalmente, penso comunque che sia un'ottima idea anticipare la curva e aggiornare a 1.3 mentre stai effettuando modifiche.

Se vuoi aggiungere il supporto per TLS 1.3 probabilmente dovrai prima aggiornare la tua libreria OpenSSL a V1.1.1 o successivo e poi aggiungere +TLSv1.3  alla riga di protocollo menzionata sopra.  Istruzioni simili possono essere trovate qui per Nginx e Cloudflare.


Stai al sicuro là fuori

Infine, sarebbe fantastico se potessi mandarci una veloce email per farci sapere che hai verificato di essere in grado di supportare TLS 1.2.  Non vogliamo davvero tagliare fuori nessuno e la data limite è settembre 2020.  Se sappiamo che sei tutto nella zona sicura, ci sentiremo molto meglio nel disattivare il vecchio supporto.

Pronto a vedere Bird in azione?

Schedule a demo now.

La piattaforma alimentata dall'IA per Marketing, Supporto e Finanza

Cliccando su "Richiedi una demo" accetti di Bird's

La piattaforma alimentata dall'IA per Marketing, Supporto e Finanza

Cliccando su "Richiedi una demo" accetti di Bird's

La piattaforma alimentata dall'IA per Marketing, Supporto e Finanza

Cliccando su "Richiedi una demo" accetti di Bird's