Rumah >Java >javaTutorial >Apakah sebab dan kelebihan menggunakan HTTPS dalam Java?
Sebelum bercakap tentang HTTPS, kita mesti terlebih dahulu memahami HTTP, kerana HTTP adalah asas komunikasi HTTPS. HTTP (HyperText Transport Protocol) Hypertext Transfer Protocol, yang digunakan untuk menghantar data sisi klien dan pelayan.
HTTP sangat mudah dan mudah digunakan, tetapi ia mempunyai tiga masalah maut berikut:
Menggunakan komunikasi teks yang jelas, kandungan boleh didengari.
Jika anda tidak mengesahkan identiti sebenar pihak yang berkomunikasi, anda mungkin menyamar.
Keutuhan mesej tidak dapat dibuktikan dan ia mudah diusik.
Memandangkan masalah di atas, sistem semasa akan menggunakan HTTPS dan bukannya HTTP.
Pertama sekali, HTTPS bukanlah protokol baharu, tetapi menambah mekanisme penyulitan SSL (Lapisan Soket Selamat) atau TLS (Pengangkutan) berdasarkan protokol Lapisan HTTP ). HTTPS = HTTP + penyulitan + pengesahan + perlindungan integriti.
SSL dan TLS:
SSL (Secure Socket Layer) mula-mula dibangunkan oleh pembangun penyemak imbas Netscape, yang membangunkan SSL 3.0 dan versi sebelum 3.0, dan kemudian SSL telah diserahkan kepada Pasukan Petugas Kejuruteraan Internet (IETF) IETF membangunkan TLS 1.0 berdasarkan SSL 3.0, jadi TLS boleh dianggap sebagai "versi baharu" SSL.
Bagi HTTPS, perkara pertama yang perlu diselesaikan adalah masalah amanah iaitu masalah pengesahan identiti Jika masalah amanah tidak selesai, akan ada penyamaran pelayan, iaitu masalah "Serangan Man-in-the-middle". Serangan yang dipanggil man-in-the-middle bermaksud bahawa dalam keadaan biasa, pelanggan dan pelayan harus berinteraksi secara langsung, tetapi di sini "lelaki jahat" (man-in-the-middle) muncul, yang termasuk antara klien dan pelayan untuk Mencuri dan mengganggu kandungan komunikasi antara kedua-dua pihak,
seperti yang ditunjukkan di bawah:
Penggunaan HTTPS sijil digital untuk menyelesaikan masalah amanah Penyelesaiannya ialah apabila pelayan pertama kali dibuat, ia akan terlebih dahulu memohon sijil digital yang boleh dipercayai daripada platform pihak ketiga yang diiktiraf oleh semua orang, dan kemudian apabila pelanggan mengakses (pelayan), pelayan akan mula-mula berikan pelanggan nombor Sijil untuk membuktikan bahawa anda adalah pelayan yang boleh dipercayai dan bukan "orang tengah". Pada masa ini, penyemak imbas akan bertanggungjawab untuk mengesahkan dan menyemak kesahihan sijil digital Jika terdapat masalah dengan sijil digital, pelanggan akan menghentikan komunikasi serta-merta.
Seperti yang ditunjukkan di bawah Ditunjukkan:
Dengan sijil digital, anda boleh mengesahkan identiti sebenar pelayan ini masalah “man-in-the-middle attack” dan juga menyelesaikan masalah penyamaran.
Walaupun kami telah menyelesaikan masalah amanah di atas, kerana kedua-dua pihak berkomunikasi dalam teks yang jelas, masih terdapat risiko kandungan komunikasi menjadi didengari semasa komunikasi, apakah yang perlu kita lakukan pada masa ini? Jadi kami terfikir untuk menggunakan penyulitan untuk menyelesaikan masalah pendedahan maklumat.
Penyulitan terbahagi kepada dua kategori: Penyulitan simetri dan penyulitan asimetrik.
Dalam penyulitan simetri, terdapat kunci rahsia yang dikongsi ini, penyulitan maklumat dan penyahsulitan maklumat boleh dicapai. tetapi kerana masalah kunci rahsia yang dikongsi, apabila kunci rahsia yang dikongsi dipintas, apa yang dipanggil penyulitan dan penyahkodan akan menjadi perbualan kosong.
Dalam penyulitan asimetri, terdapat sepasang kunci rahsia: kunci awam dan kunci peribadi boleh digunakan untuk menyulitkan maklumat, tetapi ia tidak boleh dinyahsulitkan kunci boleh digunakan untuk menyahsulit maklumat. Cirinya ialah pelayan menyimpan kunci persendirian dan tidak mendedahkannya kepada dunia luar Ia hanya menghantar kunci awam kepada pelanggan Walaupun orang lain mendapat kunci awam, mereka tidak boleh menyahsulit maklumat yang disulitkan lebih selamat, tetapi penyulitan tidak simetri Kelajuan pelaksanaan agak perlahan.
Jadi patutkah kita menggunakan penyulitan simetri atau penyulitan asimetri dalam HTTPS? Gunakan penyulitan simetri, yang pantas tetapi tidak selamat; Hanya kanak-kanak yang membuat pilihan, orang dewasa melakukannya, jadi HTTPS menggunakan kedua-dua penyulitan asimetri dan penyulitan simetri keseluruhan proses interaksinya adalah seperti ini:
.
Proses pelaksanaan HTTPS adalah seperti berikut:
Pelanggan menggunakan HTTPS untuk mengakses pelayan.
Pelayan mengembalikan sijil digital dan menggunakan penyulitan asimetri untuk menjana kunci awam kepada klien (pelayan menyimpan kunci peribadi itu sendiri).
Pelanggan mengesahkan sama ada sijil digital itu sah Jika ia tidak sah, aksesnya akan ditamatkan Jika sah:
Gunakan penyulitan simetri untuk menjana kunci rahsia kongsi;
Atas ialah kandungan terperinci Apakah sebab dan kelebihan menggunakan HTTPS dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!