Apa serangkaian langkah yang diperlukan untuk memverifikasi sertifikat ssl dengan aman? Pemahaman saya (sangat terbatas) adalah bahwa ketika Anda mengunjungi situs https, server mengirim sertifikat ke klien (browser) dan browser mendapatkan informasi penerbit sertifikat dari sertifikat itu, kemudian menggunakannya untuk menghubungi penerbit, dan entah bagaimana membandingkan sertifikat untuk validitas.
- Bagaimana tepatnya hal ini dilakukan?
- Bagaimana dengan proses yang membuatnya kebal terhadap serangan manusia di tengah-tengah?
- Apa yang mencegah beberapa orang secara acak mengatur layanan verifikasi mereka sendiri untuk digunakan dalam serangan man-in-the-middle, sehingga semuanya "terlihat" aman?
algorithm
security
ssl
certificate
rcreswick
sumber
sumber
Jawaban:
Berikut ini penjelasan yang sangat disederhanakan:
Peramban web Anda mengunduh sertifikat server web, yang berisi kunci publik dari server web. Sertifikat ini ditandatangani dengan kunci pribadi dari otoritas sertifikat tepercaya.
Peramban web Anda terpasang dengan kunci publik dari semua otoritas sertifikat utama. Ia menggunakan kunci publik ini untuk memverifikasi bahwa sertifikat server web memang ditandatangani oleh otoritas sertifikat tepercaya.
Sertifikat tersebut berisi nama domain dan / atau alamat ip dari server web. Peramban web Anda mengonfirmasi dengan otoritas sertifikat bahwa alamat yang tercantum dalam sertifikat adalah yang memiliki koneksi terbuka.
Browser web Anda menghasilkan kunci simetris bersama yang akan digunakan untuk mengenkripsi lalu lintas HTTP pada koneksi ini; ini jauh lebih efisien daripada menggunakan enkripsi kunci publik / pribadi untuk semuanya. Peramban Anda mengenkripsi kunci simetris dengan kunci publik dari server web kemudian mengirimkannya kembali, sehingga memastikan bahwa hanya server web yang dapat mendekripsi, karena hanya server web yang memiliki kunci privatnya.
Perhatikan bahwa otoritas sertifikat (CA) sangat penting untuk mencegah serangan man-in-the-middle. Namun, bahkan sertifikat yang tidak ditandatangani akan mencegah seseorang mendengarkan secara pasif lalu lintas terenkripsi Anda, karena mereka tidak memiliki cara untuk mendapatkan akses ke kunci simetris yang Anda bagikan.
sumber
webmaster@<domain-being-verified>
atau" Tempatkan file ini di domain Anda untuk membuktikan bahwa Anda memilikinya. "Namun, memang ada masalah dengan orang yang mendapatkan CA untuk menerbitkan sertifikat untuk domain yang tidak mereka miliki. sendiri - seseorang terkenal berhasil mendapatkan CA teduh untuk mengeluarkan mereka sertifikat untuk gmail.com!Perlu dicatat bahwa selain membeli sertifikat (seperti yang disebutkan di atas), Anda juga dapat membuatnya sendiri; ini disebut sebagai "sertifikat yang ditandatangani sendiri". Perbedaan antara sertifikat yang ditandatangani sendiri dan yang dibeli sederhana: sertifikat yang dibeli ditandatangani oleh Otoritas Sertifikat yang sudah diketahui browser Anda. Dengan kata lain, browser Anda dapat dengan mudah memvalidasi keaslian sertifikat yang dibeli.
Sayangnya hal ini menyebabkan kesalahpahaman umum bahwa sertifikat yang ditandatangani sendiri secara inheren kurang aman dibandingkan dengan yang dijual oleh CA komersial seperti GoDaddy dan Verisign, dan bahwa Anda harus hidup dengan peringatan / pengecualian peramban jika Anda menggunakannya; ini tidak benar .
Jika Anda secara aman mendistribusikan sertifikat yang ditandatangani sendiri (atau sertifikat CA, seperti yang disarankan bobince) dan menginstalnya di browser yang akan menggunakan situs Anda , itu sama amannya dengan yang dibeli dan tidak rentan terhadap orang yang sedang sibuk serangan dan pemalsuan sertifikat. Jelas ini berarti hanya layak jika hanya sedikit orang yang memerlukan akses aman ke situs Anda (mis. Aplikasi internal, blog pribadi, dll.).
sumber
Anda mengatakan itu
Klien tidak perlu memeriksa dengan penerbit karena dua hal:
Perhatikan bahwa 2. tidak dapat dilakukan tanpa 1.
Ini lebih baik dijelaskan dalam diagram besar ini saya buat beberapa waktu lalu
(lompat ke "tanda tangan apa?" di bagian bawah)
sumber
Klien memiliki penyimpanan kunci publik otoritas sertifikat SSL yang disemaikan sebelumnya. Harus ada rantai kepercayaan dari sertifikat untuk server naik melalui otoritas perantara hingga salah satu yang disebut sertifikat "root" agar server dapat dipercaya.
Anda dapat memeriksa dan / atau mengubah daftar otoritas tepercaya. Seringkali Anda melakukan ini untuk menambahkan sertifikat untuk otoritas lokal yang Anda tahu Anda percayai - seperti perusahaan tempat Anda bekerja atau sekolah tempat Anda bersekolah atau yang tidak.
Daftar pra-seeded dapat bervariasi tergantung pada klien yang Anda gunakan. Vendor sertifikat SSL besar memastikan bahwa sertifikat root mereka ada di semua browser utama ($$$).
Serangan monyet-di-tengah adalah "mustahil" kecuali jika penyerang memiliki kunci pribadi dari sertifikat root tepercaya. Karena sertifikat yang sesuai digunakan secara luas, pemaparan kunci pribadi semacam itu akan berdampak serius bagi keamanan eCommerce secara umum. Karena itu, kunci-kunci pribadi itu dijaga dengan sangat ketat.
sumber
jika Anda lebih berpikiran teknis, situs ini mungkin yang Anda inginkan: http://www.zytrax.com/tech/survival/ssl.html
peringatan: lubang kelinci masuk :).
sumber