Klien OpenVPN yang bulan lalu masih bekerja kini gagal saat mulai dengan ca md too weak, padahal profil di disk sama persis byte demi byte dengan yang bekerja. Pesan itu menyangkut tanda tangan pada sertifikat otoritas sertifikasi, bukan cipher data, digest auth, atau kata sandi akun. Tiga kondisi menentukan apakah perbaikannya materi identitas baru, rantai baru, atau perubahan kebijakan yang disengaja. Kerjakan berurutan, dan Anda menghindari hasil biasa ketika terowongan kembali dengan melemahkan setiap koneksi TLS di host.

Apa yang sebenarnya disebut galat itu

OpenSSL memunculkan galat verifikasi ini sambil membangun rantai, ketika sertifikat yang bertindak sebagai CA membawa digest tanda tangan yang tidak lagi diterima tingkat keamanan pustaka. MD5 ditolak pada tingkat bawaan, dan SHA-1 ditolak begitu tingkatnya dinaikkan. Digest pada sertifikat daun di sini kurang penting dibanding digest penerbit yang menandatanganinya. Kebijakan yang sama dapat menolak root yang sepenuhnya biasa pada hari diterbitkan.

Itulah sebabnya menyunting auth atau data-ciphers tidak melakukan apa pun untuk kegagalan ini. Pengaturan itu mengatur bagaimana paket dilindungi setelah handshake, sedangkan objek yang ditolak adalah dokumen identitas yang diperiksa sebelum terowongan ada. Sertifikat dapat duduk nyaman di dalam jendela validitasnya dan tetap membawa tanda tangan yang tidak akan diterima pustaka.

Pisahkan pemeriksaan itu di kepala Anda dan galat berhenti tampak misterius. Tanggal validitas, penggunaan kunci dan digest tanda tangan adalah uji yang mandiri, dan tepat satu di antaranya baru saja gagal.

Kondisi satu: apakah objek yang ditolak itu root?

Cetak setiap sertifikat dalam profil dan baca bidang subject serta issuer. Root yang ditandatangani sendiri menunjukkan nilai sama di keduanya, dan algoritme tanda tangannya adalah yang menjadi tumpuan seluruh rantai. Bila digest lemah berada di sana, setiap daun di bawahnya mewarisi masalahnya. Tuliskan algoritme di samping subject agar perbandingan berikutnya mekanis, bukan dari ingatan.

Berkas CA gabungan sering memuat beberapa blok, jadi kenali blok yang benar-benar dimuat alih-alih menganggap yang pertama bersalah. Perintah openssl x509 -in ca.pem -noout -subject -issuer -text menjabarkan satu sertifikat setiap kali, yang berarti bundel harus dipecah dulu bila isinya lebih dari satu. Bandingkan algoritme tanda tangan tercetak dengan digest yang Anda perkirakan dari masa root itu dibuat.

Daun yang ditandatangani dengan SHA-256 di bawah root lemah tetap gagal, karena pemeriksaan rantai menelusuri sampai ke atas. Urutan itulah yang membuat kondisi berikutnya penting.

Kondisi dua: apakah Anda mengendalikan penerbit?

Jika root milik organisasi Anda, perbaikan tahan lama adalah root baru dengan digest modern plus daun yang diterbitkan ulang, diserahkan sebagai satu pembaruan profil. Itu memerlukan jendela pemeliharaan dan rencana bagi perangkat yang tidak dapat mengambil pembaruan pada hari yang sama.

Jika pihak ketiga yang menerbitkan rantai, perbaikannya adalah permintaan kepada operator itu, dan satu-satunya tindakan lokal berguna adalah berhenti bergantung pada materi lama. Menyunting teks PEM atau menyimpan ulang berkas tidak mengubah apa pun yang dicakup tanda tangan.

Satu kasus tengah layak dinamai: root internal yang lebih tua dari bawaan saat ini tetapi masih menandatangani materi yang dipercaya sistem lain. Menggantinya berarti mengaudit setiap konsumen, termasuk perangkat yang memakukan sertifikat lama lewat sidik jari. Hitung konsumen itu sebelum menjadwalkan perubahan, karena pergantian root yang melewatkan satu menukar galat mulai dengan pemadaman.

Kondisi tiga: apa lagi yang diterima saat level diturunkan

Menurunkan tingkat keamanan, atau memilih profil sertifikat lama OpenVPN, membuat klien menerima digest lama lagi. Itu juga melonggarkan pemeriksaan lain di pustaka yang sama, untuk setiap koneksi yang dibuat proses tersebut.

Itu bisa dipertahankan di laboratorium, atau sebagai jembatan singkat sementara materi pengganti disiapkan, asalkan pengecualian dibatasi pada satu profil dan memuat tanggal berakhir. Sebagai setelan permanen di host bersama, itu diam-diam memperluas apa yang akan dipercaya setiap klien TLS di sana.

Tuliskan pengecualian itu dengan pemilik dan langkah penghapusan. Perubahan level yang tidak terdokumentasi tidak bisa dibedakan dari kesalahan enam bulan kemudian, dan insinyur berikutnya tidak akan tahu itu pernah sebuah keputusan.

Keputusan, ditulis sebagai aturan

Ganti rantai bila Anda mengendalikan penerbit dan dapat mencacah konsumennya. Eskalasi ke penerbit bila tidak. Turunkan level hanya sebagai pengecualian bertanggal dan terbatas, dengan penggantian yang sudah dijadwalkan. Apa pun yang lain meninggalkan sertifikat yang sama di tempatnya dan memindahkan risiko ke tempat yang kurang terlihat.

Lalu uji ulang profil dari klien bersih, pastikan handshake selesai, dan simpan teks penolakan yang tepat bila masih gagal. Pesan galat yang presisi adalah hal termurah yang dapat Anda berikan kepada siapa pun yang memiliki lapisan berikutnya.

Artikel terkait