Setiap kali saya mencoba memahami apa pun tentang SSL, saya selalu kesulitan melacak apa yang dimaksud "kunci" dan "sertifikat". Saya khawatir banyak orang menggunakannya secara salah atau bergantian. Apakah ada perbedaan standar antara kunci dan sertifikat?
127
Jawaban:
Sertifikat berisi kunci publik.
Sertifikat itu, selain berisi kunci publik, berisi informasi tambahan seperti penerbit, untuk apa sertifikat itu seharusnya digunakan, dan jenis metadata lainnya.
Biasanya, sertifikat itu sendiri ditandatangani oleh otoritas sertifikat (CA) menggunakan kunci pribadi CA. Ini memverifikasi keaslian sertifikat.
sumber
openssl
Perintah dapat memecahkan kode dan parsing ini atau Anda dapat menggunakan utilitas online seperti ini: lapo.it/asn1jsDua gambar ini bersama-sama menjelaskan semuanya kepada saya:
Sumber: linuxvoice
Sumber: infosecinstitute
sumber
Katakanlah perusahaan A memiliki pasangan kunci dan perlu menerbitkan kunci publiknya untuk penggunaan publik (alias ssl di situs web-nya).
Jika CA menyetujui permintaan tersebut, ia mengeluarkan sertifikat kepada perusahaan A. Secara singkat CA menandatangani kunci publik perusahaan A dengan kunci pribadi (CA) -nya, yang memverifikasi keasliannya.
Jadi kunci publik perusahaan A yang ditandatangani dengan kunci pribadi CA yang valid disebut sertifikat perusahaan A.
sumber
Izinkan saya menjelaskan dengan sebuah contoh.
Dalam PKI berbasis pasangan kunci normal, ada kunci pribadi dan kunci publik.
Dalam sistem berbasis sertifikat, ada kunci pribadi dan sertifikat. Sertifikat memiliki lebih banyak informasi daripada kunci publik.
Demo (Anda dapat menghasilkan sertifikat dan kunci pribadi): http://www.selfsignedcertificate.com/
Anda dapat mengunduh membuka file kunci pribadi dan file sertifikat, Anda melihat file sertifikat berisi banyak informasi seperti yang ditunjukkan di bawah ini.
Anda dapat mencocokkan sertifikat yang dihasilkan (dibuka oleh editor teks), dan kunci pribadi (dibuka oleh editor teks) dari situs ini: https://www.sslshopper.com/certificate-key-matcher.html
Jika sertifikat cocok dengan kunci pribadi klien, klien yakin, sertifikat itu diberikan oleh klien atau diberikan oleh agen tepercaya klien (CA).
Namun, ada masalah hanya dalam komunikasi kunci pribadi dan berbasis sertifikat .
Karena, siapa pun dapat membuat sertifikat dan kunci pribadi mereka sendiri, sehingga jabat tangan sederhana tidak membuktikan apa pun tentang server selain dari itu server mengetahui kunci pribadi yang cocok dengan kunci publik sertifikat. Salah satu cara untuk mengatasi masalah ini adalah meminta klien memiliki satu set atau lebih sertifikat yang dipercayai. Jika sertifikat tidak diatur, server tidak dapat dipercaya .
Ada beberapa kelemahan dari pendekatan sederhana ini. Server harus dapat meningkatkan ke kunci yang lebih kuat dari waktu ke waktu ("rotasi tombol"), yang menggantikan kunci publik dalam sertifikat dengan yang baru. Sayangnya, sekarang aplikasi klien harus diperbarui karena pada dasarnya perubahan konfigurasi server. Ini khususnya bermasalah jika server tidak di bawah kendali pengembang aplikasi, misalnya, jika itu adalah layanan web pihak ketiga. Pendekatan ini juga memiliki masalah jika aplikasi harus berbicara dengan server yang sewenang-wenang seperti browser web atau aplikasi email.
Untuk mengatasi kelemahan ini, server biasanya dikonfigurasikan dengan sertifikat dari penerbit terkenal yang disebut Certificate Authorities (CAs). host-platform (klien) umumnya berisi daftar CA terkenal yang dipercayai. Mirip dengan server, CA memiliki sertifikat dan kunci pribadi. Saat mengeluarkan sertifikat untuk server, CA menandatangani sertifikat server menggunakan kunci privasinya. Klien kemudian dapat memverifikasi bahwa server memiliki sertifikat yang dikeluarkan oleh CA yang dikenal oleh platform.
Namun, saat memecahkan beberapa masalah, penggunaan CA memperkenalkan masalah lain. Karena CA mengeluarkan sertifikat untuk banyak server, Anda masih perlu beberapa cara untuk memastikan Anda berbicara dengan server yang Anda inginkan. Untuk mengatasinya, sertifikat yang dikeluarkan oleh CA mengidentifikasi server baik dengan nama tertentu seperti gmail.com atau kumpulan host wildcard seperti * .google.com.
Contoh berikut akan membuat konsep-konsep ini sedikit lebih konkret. Dalam cuplikan di bawah ini dari baris perintah, perintah s_client alat openssl melihat informasi sertifikat server Wikipedia. Ini menentukan port 443 karena itu adalah default untuk HTTPS. Perintah mengirimkan output dari openssl s_client ke openssl x509, yang memformat informasi tentang sertifikat sesuai dengan standar X.509. Secara khusus, perintah meminta subjek, yang berisi informasi nama server, dan penerbit, yang mengidentifikasi CA.
Anda dapat melihat bahwa sertifikat dikeluarkan untuk server yang cocok * .wikipedia.org oleh RapidSSL CA.
Seperti yang Anda lihat, karena informasi tambahan ini dikirim oleh CA ke Server, klien dapat dengan mudah mengetahui apakah ia berkomunikasi dengan servernya atau tidak.
sumber
Sertifikat SSL diperoleh dari Otoritas Sertifikasi tepercaya, yang menjamin koneksi aman situs web. Sertifikat SSL biasanya berisi logo otentikasi dan juga kunci publik yang diperlukan untuk mengenkripsi dan mendekripsi data yang akan dikirim ke komputer. Fungsi Kunci SSL
Beberapa kunci SSL dapat dihasilkan selama sesi. Mereka digunakan untuk mengenkripsi dan mendekripsi informasi yang dikirim ke dan dari komputer. Kunci digunakan untuk memverifikasi bahwa informasi tersebut belum dimodifikasi atau dirusak.
Perbedaan Siklus Hidup
Sertifikat bertahan lebih lama dari kunci SSL. Sertifikat SSL diperoleh dari Otoritas Sertifikasi, yang dapat diperpanjang secara berkala oleh bank dan bisnis. Kunci SSL atau kunci sesi, di sisi lain, dihasilkan secara unik selama sesi dan dibuang ketika sesi berakhir.
Baca lebih lanjut di sini
sumber
OK, mari kita jabarkan ini sehingga orang yang tidak teknis bisa mengerti.
Pikirkan seperti ini. Sertifikat adalah seperti brankas di bank Anda. Ini berisi banyak hal penting; umumnya barang yang mengandung identitas Anda. Sertifikat memiliki kunci publik dan memerlukan kunci pribadi untuk membukanya.
Brankas Anda juga perlu dua kunci untuk dibuka, seperti halnya sertifikat.
Dengan brankas, kunci bankir seperti kunci publik karena tetap di bank dan kunci publik tetap dengan sertifikat. Anda memiliki kunci pribadi, yang diperlukan untuk "mendapatkan sertifikat Anda" dan dalam contoh kotak penyimpanan pengaman, kunci pribadi Anda diperlukan selain kunci publik.
Sebelum Anda benar-benar dapat membuka brankas Anda, Anda harus terlebih dahulu memverifikasi identitas Anda (seperti permintaan sertifikat); setelah Anda diidentifikasi, Anda menggunakan kunci pribadi Anda bersama dengan kunci publik untuk membuka kotak pengaman Anda. Ini seperti membuat permintaan sertifikat, dan kemudian mendapatkan sertifikat dari otoritas sertifikasi (selama Anda dapat diidentifikasi (tepercaya) dan Anda memiliki kunci yang tepat).
sumber