it-swarm-id.com

Apakah SSL / TLS (https) menyembunyikan url yang sedang diakses

Misalkan saya mengetik ini di browser saya

https://www.mysite.com/getsecret?username=alice&password=mysecret

dan seorang penyerang mengawasi semua lalu lintas dari saya ke ISP saya.

Informasi apa yang dilindungi oleh HTTPS? Apakah URL terungkap? Apakah parameter permintaan dapatkan diungkap?

Juga, apakah HTTPS memberikan integritas untuk url?

Saya mencoba melihat berbagai artikel HTTPS dan spesifikasi TLS tetapi tidak dapat mengetahuinya.

[EDIT:] Tidak apa-apa jika hanya nama domain server terungkap. Namun, tidak ada bagian dari ?username=alice&password=mysecret harus diungkapkan.

71
Jus12

Protokol [~ # ~] https [~ # ~] setara dengan menggunakan HTTP melalui SSL atau TLS koneksi (melalui TCP).

Jadi, pertama koneksi TCP (pada port 443) dibuka ke server. Ini biasanya cukup untuk mengungkapkan nama Host server (mis. www.mysite.com dalam kasus Anda) ke penyerang. Alamat IP diamati secara langsung, dan:

  1. anda biasanya melakukan kueri DNS yang tidak terenkripsi sebelumnya,
  2. banyak server HTTPS hanya melayani satu domain per alamat IP,
  3. Sertifikat server dikirim dalam bentuk polos, dan berisi nama server (antara beberapa, mungkin),
  4. dalam versi TLS yang lebih baru, ada indikasi nama server, yang olehnya klien menunjukkan ke server yang nama Host diinginkan, sehingga server dapat menyajikan sertifikat yang tepat, jika memiliki banyak sertifikat. (Ini dilakukan untuk dapat pergi dari 2.)

Kemudian jabat tangan TLS terjadi. Ini termasuk negosiasi cipher suite dan kemudian pertukaran kunci. Dengan asumsi setidaknya salah satu browser Anda dan server tidak memasukkan sandi NONE di suite yang diterima, semua yang mengikuti pertukaran kunci dienkripsi.

Dan dengan asumsi tidak ada serangan man-in-the-middle yang berhasil (yaitu penyerang yang mencegat koneksi, dan menyajikan sertifikat server palsu yang diterima browser Anda), pertukaran kunci aman dan tidak ada eavesdropper yang dapat mendekripsi apa pun yang kemudian dikirim antara Anda dan server, dan juga tidak ada penyerang yang dapat mengubah bagian apa pun dari konten tanpa diketahui. Ini termasuk URL dan bagian lain dari permintaan HTTP, serta respons dari server.

Tentu saja, seperti D.W. menyebutkan, panjang kedua permintaan (yang berisi data variabel tidak lebih dari URL, mungkin beberapa Cookie) dan respons dapat dilihat dari aliran data yang dienkripsi. Ini mungkin menumbangkan kerahasiaan, khususnya jika hanya ada sejumlah kecil sumber daya yang berbeda di server. Juga setiap permintaan sumber daya tindak lanjut.

Kata sandi Anda di URL (atau bagian lain dari permintaan) harus tetap aman, meskipun - paling lama panjangnya dapat diketahui.

59
Paŭlo Ebermann

Seperti yang diceritakan oleh @ Paŭlo Ebermann dan @Jeff Ferland kepada Anda, permintaan GET dienkripsi di bawah SSL sehingga aman. Namun, jangan lupa bahwa banyak server web mencatat permintaan dan parameter GET, dan kredensial atau informasi sensitif lainnya yang Anda kirim melalui GET dapat ditulis ke log di suatu tempat. Untuk alasan itu, Anda harus menggunakan POST (yang juga akan dienkripsi di bawah SSL) ketika mengirimkan data sensitif.

Ini termasuk dalam kategori "enkripsi bukan keamanan ajaib yang menyelesaikan semua masalah Anda."

26
gowenfawr

Anda harus berasumsi bahwa URL tersebut tidak dilindungi, mis., Bahwa seorang penguping pasif mungkin dapat mempelajari URL apa yang Anda kunjungi.

Saya menyadari ini bertentangan dengan apa yang diklaim beberapa orang lain, jadi saya lebih baik menjelaskannya.

Memang benar bahwa semuanya setelah nama domain dikirim terenkripsi. Misalnya, jika urlnya adalah https://www.example.com/foo/bar.html, kemudian www.example.com dapat dilihat oleh penyerang, sedangkan permintaan HTTP (GET /foo/bar.html HTTP/1.0) dienkripsi. Ini mencegah seorang penyadap untuk secara langsung melihat bagian jalur URL. Namun, panjang bagian jalur URL dapat terlihat oleh eavesdropper. Selain itu, informasi lain - seperti panjang halaman yang Anda kunjungi - juga dapat dilihat oleh penyadap. Ini adalah kaki di pintu bagi penyerang. Telah ada beberapa penelitian yang menggunakan kaki ini di pintu untuk mempelajari URL apa yang Anda kunjungi , jika penyerang dapat menguping lalu lintas https Anda.

Meskipun tidak ada jaminan bahwa serangan-serangan ini akan berhasil, saya menyarankan bahwa akan lebih bijaksana untuk mengasumsikan yang terburuk: berasumsi bahwa eavesdropper mungkin dapat mempelajari URL apa yang Anda kunjungi. Oleh karena itu, Anda harus tidak menganggap bahwa SSL/TLS bersembunyi dari eavesdropper halaman mana yang Anda kunjungi.

Ya, https memang memberikan integritas untuk URL yang Anda kunjungi.

P.S. Satu peringatan lain: dalam praktiknya, sslstrip dan serangan man-in-the-middle lainnya mungkin berhasil terhadap banyak atau sebagian besar pengguna, jika situs web tidak menggunakan HSTS . Serangan-serangan itu dapat melanggar kerahasiaan dan integritas URL. Karenanya, jika pengguna mengunjungi situs web yang tidak menggunakan HSTS melalui jaringan tidak aman (mis., Buka Wifi), Anda harus waspada bahwa penyerang mungkin dapat mempelajari halaman apa yang dikunjungi pengguna. Salah satu mitigasi parsial terhadap ancaman sslstrip adalah bagi pengguna untuk menggunakan HTTPS Everywhere dan untuk situs yang mengadopsi HSTS.

25
D.W.

Hal-hal berikut akan bocor sebelum sesi Anda dimulai:

  • Alamat IP server
  • Sertifikat server
    • Itu akan termasuk nama domain yang diterbitkan pada sertifikat, meskipun itu tidak menjamin itu akan cocok dengan apa yang Anda gunakan.
  • Anda DNS permintaan

Tidak ada data atau permintaan yang tidak terkait dengan membuat koneksi SSL (GET ...) dikirim ke server sebelum sesi SSL dimulai. URL dikirim sebagai bagian dari permintaan halaman dan dilindungi sama dengan lalu lintas apa pun yang merupakan bagian dari sesi.

12
Jeff Ferland

Iya dan tidak.

URL dienkripsi dengan benar, sehingga parameter kueri tidak boleh diungkapkan secara langsung.

Namun, analisis lalu lintas dapat sering mendapatkan panjang URL - dan mengetahui server dan panjang url sering cukup untuk menguping halaman apa yang sedang diakses, terutama jika dengan asumsi bahwa tautan pada suatu halaman diklik. Google untuk "penelusuran lalu lintas ssl penelusuran" atau yang serupa jika topiknya menarik minat Anda.

Dalam kasus penggunaan Anda, ini sangat penting. Penggunaan analisis lalu lintas yang cerdas dapat mengungkapkan panjang nama pengguna dan/atau panjang kata sandi, tergantung pada apakah URL lain yang diambil juga berisi nama pengguna tersebut. Jika Anda mengisi nama pengguna/kata sandi dengan panjang yang konstan, Anda dapat menghindari serangan ini, tetapi itu mungkin tidak sepadan dengan kerumitannya.

11
Nakedible

Tumpukan TLS mulai mengirim Indikasi Nama Server (SNI, http://en.wikipedia.org/wiki/Server_Name_Indication ; http://www.ietf.org/rfc/rfc3546 .txt ). Itu dikirim secara jelas, artinya eavesdropper dapat melihat nama server yang Anda ketikkan di bilah alamat.

9
Steve Dispensa