Masalah dengan HTTP dan teks biasa
Internet adalah saluran berkomunikasi yang tidak dipercayai. Apabila anda menghantar atau menerima maklumat dari laman HTTP lama http: //www.contoh.com dalam penyemak imbas anda, banyak perkara boleh berlaku di tengah-tengah paket anda.
- Pelakon yang tidak baik dapat memintas komunikasi, menyalin data untuk diri mereka sendiri, sebelum menghantarnya semula di saluran ke arah anda atau pelayan yang anda ajak bercakap. Tanpa pengetahuan kedua-dua pihak, maklumat tersebut akan dikompromikan. Kita perlu memastikan bahawa komunikasi itu peribadi.
- Pelakon yang tidak baik dapat mengubah maklumat semasa dihantar melalui saluran. Bob mungkin telah menghantar mesej "X" tetapi Alice akan menerima "Y" dari Bob, kerana pelakon jahat memintas mesej itu, dan mengubahnya. Dengan kata lain, yang integriti mesej itu dikompromikan.
- Terakhir, dan yang paling penting, kita perlu memastikan bahawa orang yang kita ajak bicara memang seperti yang mereka katakan. Kembali ke contoh.com domain. Bagaimana kita dapat memastikan bahawa pelayan yang membalas kepada kita memang pemegang www yang sah.contoh.com? Pada bila-bila masa dalam rangkaian anda, anda boleh salah arah ke pelayan lain. DNS di suatu tempat bertanggungjawab untuk menukar nama domain, seperti www.contoh.com, ke alamat IP di internet awam. Tetapi penyemak imbas anda tidak mempunyai cara untuk mengesahkan bahawa alamat IP diterjemahkan DNS.
Dua masalah pertama dapat diselesaikan dengan mengenkripsi mesej sebelum dihantar melalui Internet ke pelayan. Maksudnya, dengan beralih ke HTTPS. Walau bagaimanapun, masalah terakhir, masalah Identiti adalah di mana Lembaga Sijil mula bermain.
Memulakan sesi HTTP Terenkripsi
Masalah utama komunikasi yang disulitkan melalui saluran yang tidak selamat adalah “Bagaimana kita memulakannya?"
Langkah pertama akan melibatkan kedua-dua pihak, penyemak imbas dan pelayan anda, untuk menukar kunci penyulitan yang akan ditukar melalui saluran yang tidak selamat. Sekiranya anda tidak biasa dengan istilah kunci, anggap kata kunci itu sebagai kata laluan yang dihasilkan secara rawak yang panjang dengan data anda akan disulitkan sebelum dihantar melalui saluran yang tidak selamat.
Sekiranya kunci dihantar melalui saluran yang tidak selamat, sesiapa sahaja boleh mendengarnya dan menjejaskan keselamatan sesi HTTPS anda pada masa akan datang. Lebih-lebih lagi, bagaimana kita boleh mempercayai bahawa kunci dihantar oleh pelayan yang mengaku sebagai www.contoh.com memang pemilik sebenarnya nama domain tersebut? Kami dapat melakukan komunikasi yang disulitkan dengan pihak jahat yang menyamar sebagai laman web yang sah dan tidak mengetahui perbezaannya.
Jadi, masalah untuk memastikan identiti adalah penting jika kita ingin memastikan pertukaran kunci yang selamat.
Pihak Berkuasa Perakuan
Anda mungkin pernah mendengar tentang LetsEncrypt, DigiCert, Comodo dan beberapa perkhidmatan lain yang menawarkan sijil TLS untuk nama domain anda. Anda boleh memilih yang sesuai dengan keperluan anda. Sekarang, orang / organisasi yang memiliki domain tersebut harus membuktikan dengan cara tertentu kepada Pihak Berkuasa Sijil mereka bahawa mereka memang mempunyai kawalan terhadap domain tersebut. Ini dapat dilakukan dengan membuat catatan DNS dengan nilai unik di dalamnya, seperti yang diminta oleh Pihak Berkuasa Sijil, atau anda dapat menambahkan file ke pelayan web Anda, dengan kandungan yang ditentukan oleh Lembaga Sijil, CA kemudian dapat membaca file ini dan sahkan bahawa anda adalah pemilik domain yang sah.
Kemudian anda merundingkan sijil TLS dengan CA, dan itu menghasilkan kunci peribadi dan sijil TLS awam yang dikeluarkan ke domain anda. Mesej yang dienkripsi oleh kunci peribadi anda kemudian boleh didekripsi oleh sijil awam dan sebaliknya. Ini dikenali sebagai enkripsi asimetri
Penyemak imbas pelanggan, seperti Firefox dan Chrome (kadang-kadang bahkan sistem Operasi) mempunyai pengetahuan tentang Pihak Berkuasa Sijil. Maklumat ini dimasukkan ke dalam penyemak imbas / peranti sejak awal (iaitu ketika mereka dipasang) sehingga mereka tahu bahawa mereka dapat mempercayai CA tertentu. Sekarang, apabila mereka mencuba dan menyambung ke www.contoh.melalui HTTPS dan melihat sijil yang dikeluarkan oleh, katakan DigiCert, penyemak imbas sebenarnya dapat mengesahkan bahawa menggunakan kunci yang disimpan di dalam negara. Sebenarnya, terdapat beberapa langkah perantaraan untuk itu, tetapi ini adalah gambaran keseluruhan ringkas mengenai apa yang berlaku.
Sekarang bahawa sijil yang diberikan oleh www.contoh.com boleh dipercayai, ini digunakan untuk merundingkan kunci penyulitan simetri yang unik yang digunakan antara pelanggan dan pelayan untuk sisa sesi mereka. Dalam enkripsi simetri, satu kunci digunakan untuk menyulitkan dan juga penyahsulitan dan biasanya jauh lebih pantas daripada rakan asimetriknya.
Nuansa
Sekiranya idea TLS dan keselamatan Internet menarik minat anda, anda boleh melihat lebih jauh topik ini dengan menggali LetsEncrypt dan TLS CA percuma mereka. Terdapat lebih banyak pengurangan keseluruhan rigmarole ini daripada yang dinyatakan di atas.
Sumber lain yang boleh saya cadangkan untuk mengetahui lebih lanjut mengenai TLS adalah Troy Hunt's Blog dan kerja yang dilakukan oleh EFF seperti HTTPS Everywhere dan Certbot. Semua sumber percuma diakses dan sangat murah untuk dilaksanakan (anda hanya perlu membayar pendaftaran nama domain dan caj VPS setiap jam) dan dapatkan pengalaman langsung.