Apakah Anda menggunakan TLS yang lebih lama dari 1.2? Tidak apa-apa, keterlambatan pembaruan pemeliharaan terjadi pada semua orang. Kami mengerti. Namun, sudah waktunya untuk bergerak maju.
Ingat kembali pada bulan Juni 2018 ketika kami menghapus penggunaan TLS 1.0? Jika Anda tidak ingat, tidak apa-apa, Anda dapat membaca semuanya di posting ini. Nah, di sini kita, 2 tahun kemudian dan versi berikutnya akan disisihkan jadi kami ingin Anda siap dan menghindari gangguan dalam layanan. Posting ini khusus untuk mempersiapkan Anda agar berjalan tanpa menggunakan TLS1.1 sehingga kami dapat membatasi akses hanya untuk TLS1.2. Kami akan memandu Anda melalui cara memeriksa versi Anda saat ini dan cara meningkatkan ke yang terbaru. Hanya untuk bersenang-senang, kami sangat ingin mendengar umpan balik Anda dan menambahkan Anda ke “dinding kehebatan” yang menampilkan semua perusahaan yang peduli keamanan yang melakukan perubahan lebih awal.
Apakah ini memengaruhi saya?
Kembali pada tahun 2018 kami meminta pelanggan kami untuk memperbarui, dan TLS 1.2 telah menjadi rekomendasi selama cukup lama, jadi sangat mungkin Anda TIDAK terpengaruh. Namun, jika Anda menggunakan metode apa pun untuk menyuntikkan pesan (SMTP atau REST API) atau mengumpulkan data (metrik atau webhooks, dll), maka Anda benar-benar harus memeriksa sekarang untuk memastikan sistem Anda dapat mendukung TLS 1.2. Pastikan Anda menjalankan tes berikut pada server yang benar-benar terhubung ke SparkPost.
Mengapa ini penting
SparkPost tidak akan menerima koneksi di TLS 1.1 setelah September 2020
Versi yang lebih lama tidak aman
TLS 1.2 telah menjadi protokol yang direkomendasikan selama lebih dari satu dekade
Semua anak keren melakukannya
Mengapa sekarang?
Sebenarnya, pertanyaannya seharusnya adalah “mengapa Anda masih mendukungnya?” TLS 1.2 telah menjadi standar keamanan yang direkomendasikan selama lebih dari satu dekade dan kita sudah di ambang batas untuk siapa pun yang benar-benar menawarkan dukungan untuk apa pun yang kurang dari TLS1.2. Sudah waktunya untuk dukungan HTTPS yang lemah untuk mati sekali dan untuk selamanya. Jika Anda masih menggunakan TLS 1.1 setelah Maret 2020 Anda akan mengalami kesulitan untuk terhubung ke sebagian besar layanan. SparkPost telah memberikan cukup banyak waktu untuk memperbarui ini dan sekarang kami mengirimkan pemberitahuan terakhir untuk memperbarui ini sebelum September ketika kami akan menghentikannya untuk selamanya.
Tetapi bagaimana, beritahu saya, Anda bisa memperbaikinya?
Sangat mungkin bahwa SysAdmin TI atau WebAdmin Anda telah melakukannya untuk Anda sebagai bagian dari pemeliharaan normal mereka. Jika demikian, Anda harus membeli mereka bir dan mengucapkan terima kasih. Jika tidak, Anda dapat mengikuti beberapa langkah di bawah ini untuk menyelesaikannya di Linux, Windows, dan Mac.
Perhatikan bahwa sepanjang dokumen ini kami akan menguji dengan titik akhir SparkPost AS
Jika Anda biasanya menggunakan penyebaran Eropa, Anda harus menggunakan titik akhir UE sebagai gantinya.
Bagaimana Anda bisa memeriksa? (versi Linux)
Pertama, mari kita periksa apakah SysAdmin tetangga Anda yang ramah telah mengurus ini untuk Anda. Ini sebenarnya bagian dari konfigurasi SSL sehingga dapat dikelola dalam konfigurasi sistem Anda. Dengan asumsi Anda menggunakan Linux, metode yang paling deskriptif adalah menggunakan nmap tetapi Anda juga dapat menggunakan openssl. Anda dapat menggunakan nmap dengan Linux, Windows dan Mac, tetapi kami juga akan menjelajahi metode lain untuk Windows dan Macs jika Anda tidak ingin menginstal perangkat lunak baru.
Untuk melakukannya dengan nmap, uji cipher terhadap host HTTPS yang dikenal. Karena tujuannya adalah untuk memastikan kami terhubung dengan aman ke SparkPost, mari kita uji terhadap titik akhir itu. Pastikan Anda menjalankan tes berikut pada server yang benar-benar terhubung ke SparkPost.
nmap --script ssl-enum-ciphers -p 443 api.sparkpost.com
Ini dilakukan di server pengembangan saya sendiri dan Anda dapat dengan mudah melihat konfigurasi saya mendukung TLS 1.1 dan 1.2 tetapi tidak 1.3. Penting untuk dicatat pada titik ini bahwa AWS ALB, dan karena itu koneksi SparkPost, belum mendukung TLS1.3, tetapi itu ada dalam peta jalan AWS.
Memulai Nmap 6.40 ( http://nmap.org ) pada 2020-05-06 22:41 UTC Laporan pemindaian Nmap untuk api.sparkpost.com (52.13.246.255) Host aktif (0.00059s latensi). Alamat lain untuk api.sparkpost.com (tidak dipindai): 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 catatan rDNS untuk 52.13.246.255: ec2-52-13-246-255.us-west-2.compute.amazonaws.com PORT STATUS SERVICE 443/tcp open https | ssl-enum-ciphers: | TLSv1.1: | cipher: | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - kuat | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - kuat | TLS_RSA_WITH_AES_128_CBC_SHA - kuat | TLS_RSA_WITH_AES_256_CBC_SHA - kuat | compressor: | NULL | TLSv1.2: | cipher: | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - kuat | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 - kuat | TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 - kuat | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - kuat | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 - kuat | TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 - kuat | TLS_RSA_WITH_AES_128_CBC_SHA - kuat | TLS_RSA_WITH_AES_128_CBC_SHA256 - kuat | TLS_RSA_WITH_AES_128_GCM_SHA256 - kuat | TLS_RSA_WITH_AES_256_CBC_SHA - kuat | TLS_RSA_WITH_AES_256_CBC_SHA256 - kuat | TLS_RSA_WITH_AES_256_GCM_SHA384 - kuat | compressor: | NULL |_ kekuatan terlemah: kuat Nmap selesai: 1 alamat IP (1 host aktif) dipindai dalam 0.11 detik
Pada titik ini, Anda sebenarnya dapat berhenti jika Anda mau karena tujuannya adalah untuk memastikan Anda dapat terhubung ke SparkPost menggunakan TLS 1.2. Jika koneksi Anda mendukung TLS 1.2 itu adalah apa yang kami butuhkan saat ini jadi kita semua baik-baik saja di sini. Ayo beli bir untuk SysAdmin itu dan ucapkan terima kasih.
Kirimkan kami email dan beri tahu kami bahwa Anda berhasil.
Memeriksa dukungan di Mac Anda
Alasan paling umum mengapa Anda mungkin perlu memeriksa dukungan di Mac Anda adalah bahwa Anda menggunakannya untuk pengembangan lokal, jadi mari kita anggap itu dan memeriksa dukungan Anda.
Metode yang paling tidak invasif adalah menggunakan curl yang seharusnya sudah terintegrasi ke dalam setiap Mac. Luncurkan aplikasi Terminal dan gunakan bendera protokol untuk mengetes khusus untuk TLS1.2.
curl https://api.sparkpost.com/ --tlsv1.2 --verbose * Mencoba 54.213.185.174... * TCP_NODELAY diset * Terhubung ke api.sparkpost.com (54.213.185.174) port 443 (#0) * ALPN, menawarkan h2 * ALPN, menawarkan http/1.1 * Pemilihan cipher: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH * berhasil menetapkan lokasi verifikasi sertifikat: * CAfile: /etc/ssl/cert.pem CApath: none * TLSv1.2 (OUT), handshake TLS, Client hello (1): * TLSv1.2 (IN), handshake TLS, Server hello (2): * TLSv1.2 (IN), handshake TLS, Sertifikat (11): * TLSv1.2 (IN), handshake TLS, Server key exchange (12): * TLSv1.2 (IN), handshake TLS, Server selesai (14): * TLSv1.2 (OUT), handshake TLS, Client key exchange (16): * TLSv1.2 (OUT), perubahan cipher TLS, client hello (1): * TLSv1.2 (OUT), handshake TLS, Selesai (20): * TLSv1.2 (IN), perubahan cipher TLS, client hello (1): * TLSv1.2 (IN), handshake TLS, Selesai (20): * koneksi SSL menggunakan TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256 * ALPN, server menerima untuk menggunakan h2 * Sertifikat server: * subjek: CN=*.sparkpost.com * tanggal mulai: 30 Jan 00:00:00 2020 GMT * tanggal kedaluwarsa: 28 Feb 12:00:00 2021 GMT * subjectAltName: host "api.sparkpost.com" cocok dengan sertifikat "*.sparkpost.com" * penerbit: C=US; O=Amazon; OU=Server CA 1B; CN=Amazon * Verifikasi sertifikat SSL ok. * Menggunakan HTTP2, server mendukung multi-use * Status koneksi berubah (HTTP/2 dikonfirmasi) * Menyalin data HTTP/2 dalam buffer stream ke buffer koneksi setelah upgrade: len=0 * Menggunakan Stream ID: 1 (mudah ditangani 0x7fbd69805200) > GET / HTTP/2 > Host: api.sparkpost.com > User-Agent: curl/7.54.0 > Accept: */* > * Status koneksi berubah (MAX_CONCURRENT_STREAMS diperbarui)! < HTTP/2 200 < tanggal: Kam, 07 Mei 2020 15:14:30 GMT < jenis konten: text/plain < panjang konten: 95 < server: msys-http < * Koneksi #0 ke host api.sparkpost.com dibiarkan utuh Oh hei! Anda seharusnya datang bekerja dengan kami dan membangun sesuatu yang hebat!
Jika Anda ingin menguji menggunakan koneksi SMTP, Anda juga bisa melakukan itu dengan perintah ini:
openssl s_client -crlf -starttls smtp -tls1_2 -connect smtp.sparkpostmail.com:587
Mengembalikan banyak data termasuk:
SSL-Session: Protocol : TLSv1.2 Cipher : ECDHE-RSA-AES256-GCM-SHA384
Memeriksa dukungan di Windows
Mirip dengan kasus penggunaan Mac, alasan paling umum Anda mungkin perlu memeriksa dukungan di Windows Anda adalah karena Anda menggunakannya untuk pengembangan lokal, jadi mari kita anggap itu dan memeriksa dukungan Anda.
Windows 7 dan Windows 10 menggunakan proses yang pada dasarnya sama. Jika Anda menggunakan versi yang lebih awal, harap perbarui karena versi sebelumnya tidak mendukung TLS 1.2.
Mulailah dengan mengklik START di sudut kiri bawah (biasanya).
Ketik “Opsi Internet” dan pilih yang cocok dari daftar yang dihasilkan.
Klik pada tab Lanjutan dan dari sana gulir ke bawah hingga bagian paling bawah. Jika TLS 1.2 dicentang, Anda sudah siap. Jika tidak, harap centang kotak di samping Gunakan TLS 1.2 dan kemudian Terapkan.
Tunggu, apa? Tidak ada 1.2?
Sayang sekali. Pekerjaan Anda belum selesai.
Jika Anda hanya memiliki TLS1.1, maka Anda harus memperbarui pengaturan Cipher Anda.
Mengasumsikan Anda menggunakan Linux dan Apache untuk manajemen koneksi TLS, Anda dapat memperbarui konfigurasi SSL dengan memodifikasi baris ini untuk menambahkan “+TLSv1.2 ”:
SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2
(Catatan: Karena mereka tidak benar-benar didukung di mana saja lagi, masuk akal juga untuk menghapus pengaturan 1.0 dan 1.1 saat Anda berada di sini.)
Konfigurasi itu biasanya terletak di /etc/httpd/conf.d/ssl.conf
Mulai ulang Apache dan Anda siap untuk pergi.
service httpd restart
Jika Anda menggunakan Nginx, Anda ingin memodifikasi baris ini dengan cara yang serupa:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
Konfigurasi itu biasanya terletak di /etc/nginx/conf.d/
Mulai ulang Nginx dan Anda siap untuk pergi.
service nginx restart
Jika Anda menemui pesan kesalahan dengan pengaturan ulang, Anda mungkin memiliki pustaka SSL yang sudah usang. Pastikan Anda menggunakan setidaknya openssl v1.0.1g.
Jika Anda menggunakan Windows, instruksi untuk mengatur TLS1.2 terdapat di bagian “Memeriksa dukungan di Windows” di atas.
Semua selesai sekarang? Kirimkan kami email dan beri tahu kami bahwa Anda berhasil.
Melangkah satu langkah lebih jauh
Mengapa berhenti di TLS 1.2 ketika Anda tahu – Anda hanya tahu – bahwa kita semua akan meningkatkan ke TLS 1.3 dalam setahun atau lebih. Mengapa tidak langsung meningkatkan ke TLSv1.3 saat kami berada di dalamnya?
Sayangnya, AWS ALBs belum mendukung TLS1.3, jadi jika Anda memperbarui konfigurasi Anda, koneksi Anda ke SparkPost dan layanan AWS lainnya yang menggunakan lapisan ALB masih akan dibatasi pada TLS1.2. Secara pribadi, saya masih berpikir itu adalah ide yang baik untuk mendapatkan lebih awal sebelum curve dan memperbarui ke 1.3 saat Anda membuat perubahan juga.
Jika Anda ingin menambahkan dukungan TLS 1.3, Anda mungkin harus memperbarui pustaka OpenSSL Anda terlebih dahulu ke V1.1.1 atau lebih baru dan kemudian menambahkan +TLSv1.3 ke baris protokol yang disebutkan di atas. Instruksi serupa dapat ditemukan di sini untuk Nginx dan Cloudflare juga.
Tetap aman di luar sana
Akhirnya, akan sangat baik jika Anda bisa mengirimkan kami email cepat untuk memberi tahu kami bahwa Anda telah memverifikasi bahwa Anda mampu TLS 1.2. Kami benar-benar tidak ingin memutus siapa pun dan tanggal akhir yang harus diperhatikan adalah September 2020. Jika kami tahu Anda semua berada di zona aman, kami akan merasa jauh lebih baik tentang mematikan dukungan lama.