Hello semua, saya Lao Tian yang pakar dalam berkongsi maklumat berguna dengan anda. Di samping itu, rakan-rakan yang memerlukan bahan temuduga, ingat untuk membalas di belakang pentas面试
Semua orang tahu bahawa HTTPS dan lebih selamat daripada HTTPS, konsep HTTPS. protokol termasuk SSL, penyulitan bukan simetri, sijil CA, dsb.
Tetapi anda mungkin tidak dapat menjawab tiga soalan penyeksaan jiwa berikut:
Artikel ini akan menerangkan secara mendalam dan menerangkan keselamatan HTTPS secara prinsip.
Anda mungkin pernah mendengar bahawa sebab protokol HTTPS selamat adalah kerana protokol HTTPS menyulitkan data yang dihantar, dan proses penyulitan menggunakan penyulitan asimetrik.
Tetapi sebenarnya, HTTPS menggunakan penyulitan simetri untuk menyulitkan penghantaran kandungan, dan penyulitan asimetri hanya berfungsi dalam fasa pengesahan sijil.
Proses keseluruhan HTTPS dibahagikan kepada peringkat pengesahan sijil dan penghantaran data Proses interaksi khusus adalah seperti berikut:
Peringkat pengesahan sijil:
Peringkat penghantaran data:
Pertama sekali, kecekapan penyulitan dan penyahsulitan penyulitan asimetri adalah sangat rendah, dan dalam senario aplikasi HTTP biasanya terdapat banyak interaksi antara hujung ke hujung, jadi kecekapan penyulitan asimetri tidak boleh diterima.
Selain itu, dalam senario HTTPS, hanya pelayan yang menyimpan kunci persendirian, dan sepasang kunci awam dan persendirian hanya boleh mencapai penyulitan dan penyahsulitan sehala Oleh itu, penyulitan penghantaran kandungan dalam HTTPS menggunakan penyulitan simetri dan bukannya tidak simetri penyulitan.
Protokol HTTP dianggap tidak selamat kerana proses penghantaran dengan mudah boleh disambungkan oleh pendengar untuk memantau dan memalsukan pelayan, manakala protokol HTTPS terutamanya menyelesaikan masalah keselamatan penghantaran rangkaian.
Pertama sekali, kami menganggap bahawa tiada pihak berkuasa pensijilan dan sesiapa sahaja boleh membuat sijil Risiko keselamatan yang dibawa oleh ini ialah masalah klasik "serangan lelaki di tengah".
Proses khusus "man-in-the-middle attack" adalah seperti berikut:
Prinsip proses adalah seperti berikut:
Disebabkan kekurangan pengesahan sijil, walaupun pelanggan memulakan permintaan HTTPS, pelanggan tidak tahu bahawa rangkaiannya telah dipintas dan semua kandungan penghantaran telah dicuri oleh orang tengah.
Bagaimanakah pelayar memastikan kesahihan sijil CA?
Sijil mengandungi maklumat berikut:
Hanya apabila mana-mana langkah di atas dipenuhi, pelayar akan menganggap sijil itu sah.
**Berikut adalah soalan yang telah lama saya fikirkan tetapi jawapannya sebenarnya sangat mudah: **Memandangkan sijil itu terbuka kepada umum, jika saya ingin melancarkan serangan man-in-the-middle, saya muat turun sijil dari laman web rasmi sebagai sijil pelayan saya, maka pelanggan Pelanggan pasti akan bersetuju bahawa sijil ini adalah sah Bagaimana untuk mengelakkan penggunaan sijil secara penipuan?
Malah, ini adalah penggunaan kunci awam dan persendirian simetri yang tidak disulitkan Walaupun orang tengah boleh mendapatkan sijil, kunci persendirian tidak boleh diperolehi.
Adalah mustahil untuk menyimpulkan kunci persendirian yang sepadan daripada kunci awam Walaupun orang tengah memperoleh sijil, ia tidak boleh berpura-pura sebagai pelayan yang sah kerana ia tidak boleh menyahsulit data yang disulitkan yang dihantar oleh pelanggan.
Jika anda memerlukan penyemak imbas untuk tidak meminta risiko keselamatan, anda hanya boleh menggunakan sijil yang dikeluarkan oleh pihak berkuasa pensijilan.
Tetapi penyemak imbas biasanya hanya meminta risiko keselamatan dan tidak menyekat tapak web daripada boleh diakses, jadi secara teknikal sesiapa sahaja boleh menjana sijil, dan selagi ada sijil, penghantaran HTTPS tapak web boleh diselesaikan.
Sebagai contoh, awal 12306 menggunakan pemasangan manual sijil persendirian untuk mencapai akses HTTPS.
Pengesahan sijil dilaksanakan menggunakan penyulitan asimetrik, tetapi proses penghantaran menggunakan penyulitan simetri, dan nombor rawak penting dalam algoritma penyulitan simetri dijana dan disimpan secara setempat. Bagaimanakah HTTPS memastikan nombor rawak tidak akan dicuri?
Sebenarnya, HTTPS tidak termasuk jaminan keselamatan untuk nombor rawak HTTPS hanya menjamin keselamatan proses penghantaran, dan nombor rawak disimpan secara setempat termasuk dalam kategori keselamatan yang lain. kuda anti-Trojan, dan menyemak imbas peningkatan pelayan untuk membetulkan pepijat, dsb.
Data HTTPS disulitkan Dalam keadaan biasa, kandungan paket yang ditangkap oleh alat penangkapan paket selepas permintaan proksi disulitkan dan tidak boleh dilihat secara langsung.
Walau bagaimanapun, seperti yang dinyatakan di atas, penyemak imbas hanya akan menggesa risiko keselamatan Jika pengguna membenarkannya, dia masih boleh terus mengakses tapak web dan melengkapkan permintaan.
Oleh itu, selagi pelanggan adalah terminal kami sendiri dan kami membenarkannya, kami boleh menyediakan rangkaian orang tengah, dan alat penangkapan paket berfungsi sebagai ejen orang tengah.
Biasanya, alat tangkapan paket HTTPS digunakan untuk menjana sijil Pengguna perlu memasang sijil secara manual ke dalam klien, dan kemudian semua permintaan yang dimulakan oleh terminal melengkapkan interaksi dengan alat tangkapan paket melalui sijil ini.
Kemudian alat tangkap paket memajukan permintaan ke pelayan, dan akhirnya mengeluarkan hasil yang dikembalikan oleh pelayan ke konsol dan kemudian mengembalikannya ke terminal, sekali gus melengkapkan keseluruhan gelung tertutup permintaan.
Memandangkan HTTPS tidak dapat menghalang penangkapan paket, apakah gunanya HTTPS? HTTPS boleh menghalang pengguna daripada dipantau pada pautan komunikasi tanpa pengetahuan mereka. Ia tidak memberikan perlindungan untuk operasi penangkapan paket pemberian kredit yang aktif kerana pengguna dalam senario ini sudah mengetahui risikonya.
Untuk mengelakkan penangkapan paket, perlindungan keselamatan peringkat aplikasi perlu diguna pakai, seperti penyulitan simetri peribadi dan peneguhan anti-penyahkompilasi pada terminal mudah alih untuk mengelakkan algoritma tempatan daripada dipecahkan.
Berikut ialah ringkasan Soal Jawab ringkas bagi teks penuh:
S: Mengapa HTTPS selamat?
J: Kerana HTTPS memastikan keselamatan penghantaran, menghalang proses penghantaran daripada dipantau, menghalang data daripada dicuri dan boleh mengesahkan ketulenan tapak web.
S: Apakah proses penghantaran HTTPS?
J: Pelanggan memulakan permintaan HTTPS, pelayan memulangkan sijil, pelanggan mengesahkan sijil dan selepas lulus pengesahan, ia secara setempat menjana nombor rawak yang digunakan untuk mengubah algoritma penyulitan simetri.
Nombor rawak disulitkan dan dihantar ke pelayan melalui kunci awam dalam sijil Selepas menerimanya, pelayan menyahsulit nombor rawak melalui kunci persendirian, dan interaksi data seterusnya disulitkan dan dinyahsulit melalui algoritma penyulitan simetri.
S: Mengapa saya memerlukan sijil?
J: Cegah serangan "man-in-the-middle" dan sediakan bukti identiti untuk tapak web.
S: Adakah paket akan ditangkap apabila menggunakan HTTPS?
J: Paket akan ditangkap HTTPS hanya menghalang pengguna daripada dipantau tanpa pengetahuan mereka Jika pengguna secara aktif memberikan kredit, rangkaian "orang tengah" boleh dibina dan perisian proksi boleh menyahsulit kandungan penghantaran.
Kongsi gambarajah proses pembelajaran HTTPS:
Atas ialah kandungan terperinci Temu bual dengan kilang besar: HTTPS ditanya tiga kali berturut-turut, dan soalan terakhir ialah sama ada terdapat ramai orang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!