Gebruikt u een oudere versie van TLS dan 1.2? Dat is geen probleem, onderhoudsupdatevertragingen komen bij iedereen voor. We begrijpen het. Het is echter tijd om door te gaan.
Herinnert u zich in juni 2018 toen we het gebruik van TLS 1.0 hebben afgeschaft? Als u dat niet doet, dat is oke, u kunt er alles over lezen in dit bericht. Nou, hier zijn we, 2 jaar later en de volgende versie staat op het punt aan de kant te worden gezet, dus we willen dat u voorbereid bent en verstoringen in de dienst vermijdt. Dit bericht gaat over hoe u zich kunt voorbereiden op het werken zonder het gebruik van TLS1.1 zodat we de toegang alleen tot TLS1.2 kunnen beperken. We zullen u door het proces leiden om uw huidige versie te controleren en hoe u kunt upgraden naar de nieuwste versie. Voor de lol willen we echt graag uw feedback horen en u toevoegen aan een "wall of awesomeness" met alle beveiligingsbewuste bedrijven die de overstap vroeg maken.
Treft dit mij?
In 2018 vroegen we onze klanten om te upgraden, en TLS 1.2 is al geruime tijd de aanbeveling, dus het is zeer waarschijnlijk dat u NIET bent getroffen. Als u echter een methode gebruikt om berichten in te voegen (SMTP of REST API) of gegevens te verzamelen (metrics of webhooks, enz.), dan moet u nu echt controleren of uw systeem TLS 1.2 kan ondersteunen. Zorg ervoor dat u de volgende tests uitvoert op de servers die daadwerkelijk verbinden met SparkPost.
Waarom is het belangrijk
SparkPost zal na september 2020 geen verbindingen op TLS 1.1 accepteren
Oudere versies zijn niet veilig
TLS 1.2 is al meer dan tien jaar het aanbevolen protocol
Alle coole kinderen doen het
Waarom nu?
Eigenlijk zou de vraag moeten zijn “waarom ondersteun je het nog steeds?” TLS 1.2 is al meer dan tien jaar de aanbevolen veilige standaard en we zijn aan het einde van de lijn wat betreft iemand die nog ondersteuning aanbiedt voor iets minder dan TLS1.2. Het is tijd voor zwakke HTTPS-ondersteuning om voor eens en altijd te verdwijnen. Als u nog steeds TLS 1.1 gebruikt na maart 2020, zult u moeite hebben om verbinding te maken met de meeste diensten. SparkPost heeft voldoende respijt gegeven om dit bij te werken en nu sturen we de laatste waarschuwingen om dit voor september bij te werken wanneer we het definitief uitschakelen.
Maar hoe, als ik vragen mag, kun je het oplossen?
Het is heel goed mogelijk dat uw IT SysAdmin of WebAdmin dit al voor u heeft gedaan als onderdeel van hun normale onderhoud. In dat geval zou u hen een biertje moeten geven en bedanken. Zo niet, dan kunt u enkele van de onderstaande stappen volgen om het te doen in Linux, Windows en Mac.
Merk op dat we in dit document zullen testen met het Amerikaanse SparkPost-uiteinde
Als u normaal gesproken de Europese implementatie gebruikt, moet u in plaats daarvan het EU-uiteinde gebruiken.
Hoe kunt u controleren? (Linux-versie)
Laten we eerst controleren of uw vriendelijke buurt SysAdmin dit al voor u heeft verzorgd. Dit is eigenlijk onderdeel van de SSL-configuratie, zodat het kan worden beheerd in uw systeemconfiguratie. Aangenomen dat u Linux gebruikt, is de meest beschrijvende methode het gebruik van nmap maar u kunt ook openssl gebruiken. U kunt nmap gebruiken met Linux, Windows en Mac, maar we zullen ook andere methoden voor Windows en Macs verkennen als u geen nieuwe software wilt installeren.
Om dit met nmap te doen, test u de versleutelingen tegen een bekende HTTPS-host. Aangezien het doel is om ervoor te zorgen dat we veilig verbinding maken met SparkPost, laten we tegen dat eindpunt testen. Zorg ervoor dat u de volgende tests uitvoert op de servers die daadwerkelijk verbinding maken met SparkPost.
nmap --script ssl-enum-ciphers -p 443 api.sparkpost.com
Dit werd gedaan op mijn eigen ontwikkelserver en u kunt gemakkelijk zien dat mijn configuratie TLS 1.1 en 1.2, maar niet 1.3 ondersteunt. Het is belangrijk op te merken op dit punt dat AWS ALB's, en dus SparkPost verbindingen, TLS1.3 nog niet ondersteunen, maar het staat op de AWS-routekaart.
Starting Nmap 6.40 ( http://nmap.org ) at 2020-05-06 22:41 UTC Nmap scan rapport voor api.sparkpost.com (52.13.246.255) Host is up (0.00059s latency). Andere adressen voor api.sparkpost.com (niet gescand): 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 voor 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: | versleutelingen: | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - sterk | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - sterk | TLS_RSA_WITH_AES_128_CBC_SHA - sterk | TLS_RSA_WITH_AES_256_CBC_SHA - sterk | compressoren: | NULL | TLSv1.2: | versleutelingen: | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - sterk | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 - sterk | TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 - sterk | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - sterk | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 - sterk | TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 - sterk | TLS_RSA_WITH_AES_128_CBC_SHA - sterk | TLS_RSA_WITH_AES_128_CBC_SHA256 - sterk | TLS_RSA_WITH_AES_128_GCM_SHA256 - sterk | TLS_RSA_WITH_AES_256_CBC_SHA - sterk | TLS_RSA_WITH_AES_256_CBC_SHA256 - sterk | TLS_RSA_WITH_AES_256_GCM_SHA384 - sterk | compressoren: | NULL |_ minste sterkte: sterk Nmap voltooid: 1 IP-adres (1 host up) gescand in 0.11 seconden
Op dit punt kunt u eigenlijk stoppen als u wilt, want het doel is om ervoor te zorgen dat u verbinding kunt maken met SparkPost met TLS 1.2. Als uw verbinding TLS 1.2 ondersteunt, is dat wat we op dit punt nodig hebben, dus we zijn hier helemaal goed. Koop die SysAdmin een biertje en zeg dank je wel.
Stuur ons een e-mail en laat ons weten dat het u is gelukt.
Ondersteuning controleren op uw Mac
De meest voorkomende reden waarom u misschien ondersteuning op uw Mac moet controleren, is dat u deze gebruikt voor lokale ontwikkeling, dus laten we dat aannemen en uw ondersteuning controleren.
De minst ingrijpende methode is het gebruik van curl, dat ingebouwd zou moeten zijn in elke Mac. Start de Terminal-applicatie en gebruik de protocolvlag om specifiek te testen op TLS1.2.
curl https://api.sparkpost.com/ --tlsv1.2 --verbose * Proberen met 54.213.185.174... * TCP_NODELAY ingesteld * Verbonden met api.sparkpost.com (54.213.185.174) poort 443 (#0) * ALPN, biedt h2 aan * ALPN, biedt http/1.1 aan * Cipherselectie: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH * locaties voor certificaatcontrole met succes ingesteld: * CAfile: /etc/ssl/cert.pem CApath: geen * TLSv1.2 (OUT), TLS-handshake, Client hallo (1): * TLSv1.2 (IN), TLS-handshake, Server hallo (2): * TLSv1.2 (IN), TLS-handshake, Certificaat (11): * TLSv1.2 (IN), TLS-handshake, Server sleut uitwisseling (12): * TLSv1.2 (IN), TLS-handshake, Server voltooid (14): * TLSv1.2 (OUT), TLS-handshake, Client sleut uitwisseling (16): * TLSv1.2 (OUT), TLS wijzig ciphe r, Client hallo (1): * TLSv1.2 (OUT), TLS-handshake, Voltooid (20): * TLSv1.2 (IN), TLS wijzig cipher, Client hallo (1): * TLSv1.2 (IN), TLS-handshake, Voltooid (20): * SSL-verbinding met TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256 * ALPN, server geaccepteerd om h2 te gebruiken * Servercertificaat: * onderwerp: CN=*.sparkpost.com * startdatum: 30 jan 2020 00:00:00 GMT * vervaldatum: 28 feb 2021 12:00:00 GMT * subjectAltName: host "api.sparkpost.com" komt overeen met cert's "*.sparkpost.com" * issuer: C=US; O=Amazon; OU= Server CA 1B; CN=Amazon * SSL-certificaatcontrole geslaagd. * Gebruik van HTTP2, server ondersteunt meervoudig gebruik * Verbindingsstatus gewijzigd (HTTP/2 bevestigd) * Kopiëren van HTTP/2-gegevens in streambuffer naar verbindingsbuffer na upgrade: len=0 * Gebruik van Stream ID: 1 (gemakkelijk te hanteren 0x7fbd69805200) > GET / HTTP/2 > Host: api.sparkpost.com > Gebruikersagent: curl/7.54.0 > Accepteer: */* > * Verbindingsstatus gewijzigd (MAX_CONCURRENT_STREAMS bijgewerkt)! < HTTP/2 200 < datum: do 07 mei 2020 15:14:30 GMT < content-type: text/plain < content-length: 95 < server: msys-http < * Verbindings #0 naar host api.sparkpost.com intact gehouden Oh hallo! Je zou met ons moeten komen werken en geweldige dingen bouwen!
Als u wilt testen met de SMTP-verbinding, kunt u dat ook doen met dit commando:
openssl s_client -crlf -starttls smtp -tls1_2 -connect smtp.sparkpostmail.com:587
Retourneert een grote hoeveelheid gegevens waaronder:
SSL-Session: Protocol : TLSv1.2 Cipher : ECDHE-RSA-AES256-GCM-SHA384
Ondersteuning controleren in Windows
Vergelijkbaar met het Mac-geval is de meest voorkomende reden waarom u misschien ondersteuning in uw Windows moet controleren dat u deze gebruikt voor lokale ontwikkeling, dus laten we dat aannemen en uw ondersteuning controleren.
Windows 7 en Windows 10 gebruiken in feite hetzelfde proces. Als u iets eerder gebruikt, upgrade dan als eerdere versies TLS 1.2 niet ondersteunen.
Begin door linksonder in het startmenu te klikken (meestal).
Typ "Internetopties" en selecteer de overeenkomst in de resulterende lijst.
Klik op het tabblad Geavanceerd en scrol helemaal naar beneden. Als TLS 1.2 is aangevinkt bent u al klaar. Als dit niet het geval is, vink dan het vakje naast Gebruik TLS 1.2 aan en klik vervolgens op Toepassen.
Wacht, wat? Geen 1.2?
Jammer man. Uw werk is nog niet gedaan.
Als u alleen TLS1.1 heeft, moet u uw Cipher-instellingen bijwerken.
Aangenomen dat u Linux en Apache gebruikt voor TLS-verbindingbeheer, kunt u de SSL-configuratie bijwerken door deze regel te wijzigen om “+TLSv1.2 ” toe te voegen:
SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2
(Zijnoot: aangezien ze nergens meer echt worden ondersteund, is het logisch om ook de 1.0- en 1.1-instellingen te verwijderen terwijl u hier bent.)
Die configuratie bevindt zich meestal in /etc/httpd/conf.d/ssl.conf
Herstart Apache en u bent klaar.
service httpd restart
Als u Nginx gebruikt, wilt u deze regel op een vergelijkbare manier wijzigen:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
Die configuratie bevindt zich meestal in /etc/nginx/conf.d/
Herstart Nginx en u bent klaar.
service nginx restart
Als u foutmeldingen krijgt bij de herstart, heeft u mogelijk een verouderde SSL-library. Zorg ervoor dat u ten minste openssl v1.0.1g gebruikt.
Als u Windows gebruikt, staan de instructies voor het instellen van TLS1.2 in de sectie “Ondersteuning controleren in Windows” hierboven.
Klaar? Stuur ons een e-mail en laat ons weten dat het u is gelukt.
Een stap verder gaan
Waarom stoppen bij TLS 1.2 wanneer u weet – u weet gewoon – dat we allemaal de komende jaren zullen moeten upgraden naar TLS 1.3? Waarom niet gewoon upgraden naar TLSv1.3 terwijl we toch bezig zijn?
Helaas ondersteunen AWS ALB's TLS1.3 nog niet, dus als u uw configuratie bijwerkt, blijft uw verbinding met SparkPost en elke andere AWS-dienst die de ALB-laag gebruikt nog steeds beperkt tot TLS1.2. Persoonlijk vind ik het nog steeds een goed idee om vooruit te lopen op de curve en te upgraden naar 1.3 terwijl je toch al wijzigingen aanbrengt.
Als u TLS 1.3-ondersteuning wilt toevoegen, moet u waarschijnlijk eerst uw OpenSSL-library bijwerken naar V1.1.1 of later en vervolgens +TLSv1.3 toevoegen aan de protocollijn die hierboven is genoemd. Vergelijkbare instructies zijn hier te vinden voor Nginx en Cloudflare.
Blijf daarbuiten veilig
Tot slot, het zou geweldig zijn als u ons een snel e-mailtje stuurt om ons te laten weten dat u heeft geverifieerd dat u TLS 1.2-geschikt bent. We willen echt niemand afsnijden en de harde deadline is september 2020. Als we weten dat jullie allemaal in de veilige zone zitten, zullen we ons veel beter voelen over het uitschakelen van de oude ondersteuning.