it-swarm-id.com

Bagaimana Chrome dan Firefox memvalidasi Sertifikat SSL?

Bagaimana Chrome dan Firefox memvalidasi Sertifikat SSL? Apakah mereka meminta data dari situs web sertifikasi SSL, seperti GeoTrust, untuk memvalidasi sertifikat yang diterima dari server web?

26
user1397542

Peramban dan/atau sistem operasi cenderung memiliki daftar sertifikat CA yang telah ditentukan sebelumnya yang digunakan sebagai anchor kepercayaan untuk memeriksa sertifikat server yang terhubung. Semuanya dapat dikustomisasi (kecuali untuk sertifikat EV, yang sertifikat akarnya dikodekan ke dalam browser, meskipun Anda dapat menonaktifkannya ... kecuali bug).

Firefox menggunakan daftar sendiri pada semua platform.

Internet Explorer dan Chrome menggunakan repositori sertifikat sistem operasi pada Windows. Standarnya tersedia melalui Microsoft program Root Certificate .

Apple juga memiliki programnya .

Mempercayai sertifikat server yang tidak dikenal apriori dilakukan dengan membangun jalur sertifikasi antara sertifikat ini dan salah satu jangkar kepercayaan peramban. Ini dilakukan sebagaimana didefinisikan dalam RFC 3280/RFC 5280.

Selain itu, pencabutan sertifikat juga dapat diperiksa, baik melalui CRL atau melalui OCSP.

Jadi tidak mungkin untuk mencegat komunikasi antara browser dan CA untuk memalsukan sertifikat yang valid karena sertifikat tersebut kemungkinan sudah ada dalam cache browser?

Untuk mengulangi poin yang saya buat sebagai komentar atas jawaban Wug: trust anchors repository bukanlah cache . Cache adalah placeholder dinamis yang bertujuan untuk menjaga apa yang Anda akses baru-baru ini sesuai keinginan Anda, berdasarkan asumsi Anda akan membutuhkannya lagi segera. Sebaliknya, daftar sertifikat tepercaya Anda tidak boleh diperbarui secara otomatis berdasarkan apa yang sedang Anda jelajahi. (Itu bisa diperbarui dengan pembaruan keamanan otomatis, tapi itu masalah yang berbeda.)

Sertifikat server akan diperoleh setiap kali sesi SSL/TLS baru dibuat, dan browser harus memverifikasinya setiap waktu. Itu tidak di-cache. (Anda dapat memiliki beberapa caching OCSP, tetapi itu untuk meningkatkan kinerja dan disimpan hanya untuk jangka waktu singkat. Ini hanya untuk memverifikasi status pencabutan, pada saat akses.)

Menghubungi CA hanya untuk pencabutan sertifikat. Anda tidak dapat menghubungi CA. Sertifikat CA (jangkar tepercaya Anda) diberikan, "lompatan keyakinan", dibundel untuk Anda oleh OS/browser Anda (yang dapat Anda pilih secara eksplisit, tetapi tetap sejauh menyangkut koneksi yang diberikan). Paling-paling Anda dapat mencegah pemeriksaan pencabutan sertifikat terjadi (yang dapat menyebabkan browser Anda membuat validasinya gagal, tergantung pada pengaturannya).

16
Bruno

Server web akan mengirim seluruh rantai sertifikat ke klien berdasarkan permintaan. Browser (atau validator lain) kemudian dapat memeriksa sertifikat tertinggi dalam rantai dengan sertifikat CA yang disimpan secara lokal.

Sebagian besar sistem operasi menyimpan cache sertifikat otoritatif yang dapat diakses oleh browser untuk tujuan semacam itu, jika tidak, browser akan memiliki kumpulannya sendiri di suatu tempat.

Sebuah sertifikat dapat ditandatangani oleh sertifikat lain, membentuk "rantai kepercayaan" yang biasanya berakhir pada sertifikat otorisasi yang ditandatangani sendiri oleh entitas seperti GeoTrust, Verisign, Godaddy, dll.

Ini akan menjadi pertanyaan yang lebih baik untuk situs SE keamanan.

Google chrome, khususnya, saya tidak 100% yakin menggunakan cache OS, tetapi Anda dapat menambahkan sertifikat otoritatif melalui Wrench -> Pengaturan -> Tampilkan Pengaturan Lanjut -> HTTPS/SSL -> Kelola Sertifikat -> Otoritas Sertifikat Root Tepercaya dan menambahkan sertifikat CA otoritatif di sana.

3
Wug

Seperti yang dijelaskan Wug, validasi terjadi dari sertifikat server ke sertifikat tertinggi dalam rantai. Browser akan melihat properti sertifikat dan melakukan validasi dasar seperti memastikan URL cocok dengan Issued to bidang, Issued By bidang berisi Otoritas Sertifikat Tepercaya, tanggal kedaluwarsa terlihat bagus di Valid From bidang, dll.

Selain itu setiap sertifikat berisi URL yang mengarah ke Daftar Pencabutan Sertifikat (CRL Distribution Points), klien akan mencoba mengunduh daftar dari URL tersebut dan memastikan sertifikat yang ada belum dicabut.

ntuk menjawab pertanyaan Anda

Apakah mereka meminta data dari situs web Sertifikasi SSL seperti GeoTrust untuk memvalidasi sertifikat yang diterima dari server web?

Ya, browser akan melakukan validasi dasar dan kemudian menghubungi server CA otoritas (melalui poin CRL) untuk memastikan sertifikat masih baik.

3
Ulises

Ini adalah pendapat saya tentang sertifikat vaildation. Dengan asumsi sertifikat web memiliki nama yang benar, browser mencoba menemukan Otoritas Sertifikat yang menandatangani sertifikat server web untuk mengambil kunci publik penandatangan. Otoritas Sertifikat yang menandatangani dapat menjadi bagian dari rantai CA

Dengan kunci publik, tanda tangan pada sertifikat situs web dapat didekripsi (ini memastikan bahwa hanya CA yang bisa menandatanganinya kecuali kunci pribadi mereka dikompromikan) untuk mengungkapkan hash sertifikat server web. Browser juga menghitung hash dari sertifikat server web dan jika dua hash cocok yang membuktikan bahwa Otoritas Sertifikat menandatangani sertifikat.

Jika kunci publik penandatangan tidak dapat ditemukan atau hash tidak cocok maka sertifikat tidak valid.

Masalah dengan sistem ini adalah bahwa Otoritas Sertifikat tidak sepenuhnya dapat diandalkan.

1
Bill Laing

Perhatikan bahwa Google Chrome berhenti menggunakan daftar CRL sekitar 7 Februari 2012 untuk memeriksa apakah sertifikat itu valid. Tampaknya mereka membuat semua sertifikat yang valid ke dalam peramban dan memasang set baru setiap kali browser diperbarui. Lihat URL: https://threatpost.com/en_us/blogs/google-stop-using-online-crl-checks-chrome-020712 .

0
Andrew Stern