it-swarm-id.com

Mengapa mungkin mengendus permintaan HTTPS / SSL?

Saya baru di bidang permintaan HTTP dan keamanan dan semua hal bagus itu, tetapi dari apa yang saya baca, jika Anda ingin permintaan dan respons Anda dienkripsi, gunakan HTTPS dan SSL, dan Anda akan menjadi baik. Seseorang dalam pertanyaan sebelumnya memposting tautan ke aplikasi ini http://www.charlesproxy.com/ yang menunjukkan bahwa sebenarnya mungkin untuk mengendus permintaan HTTPS, dan melihat permintaan dan respons dalam teks PLAIN.

Saya mencoba ini dengan login facebook.com, dan saya memang bisa melihat nama pengguna DAN kata sandi saya dalam teks biasa. Itu juga mudah. Apa yang sedang terjadi? Saya pikir itulah inti dari HTTPS - untuk mengenkripsi permintaan dan tanggapan?

48
bitmoe

Ini dijelaskan pada halaman mereka di proxy proxy , mungkin tidak dengan penjelasan yang cukup.

Proxy, menurut definisi, a man-in-the-middle : klien terhubung ke proxy, dan proxy terhubung ke server.

SSL melakukan dua hal:

  • Ini memastikan kerahasiaan dan integritas koneksi yang ada.
  • Ia melakukan beberapa verifikasi dengan siapa Anda terhubung.

Ini adalah bagian kedua yang penting, dan tampaknya rusak, di sini: Anda duduk di browser Anda, dan terkejut bahwa browser Anda terhubung ke proksi sedangkan Anda mengharapkannya terhubung ke Facebook. Secara teknis, proxy tidak mengendus lalu lintas HTTPS, itu menyampaikannya.

Peramban Anda tahu bahwa itu terhubung ke Facebook karena situs tersebut memiliki sertifikat yang mengatakan “Saya benar-benar www.facebook.com ". Kriptografi kunci publik , dengan maksud bahwa saya tidak akan masuk ke sini, memastikan bahwa hanya pemegang kunci pribadi yang dapat memulai koneksi yang sah dengan sertifikat ini. Itu hanya setengah dari pertempuran: Anda hanya memiliki klaim server bahwa itu benar-benar www.facebook.com dan tidak randomhijacker.com. Apa yang dilakukan browser Anda adalah tambahan memeriksa bahwa sertifikat telah divalidasi oleh otoritas sertifikat . Browser atau sistem operasi Anda dilengkapi dengan daftar otoritas sertifikat yang dipercaya. Sekali lagi, kriptografi kunci publik memastikan bahwa hanya CA yang dapat mengeluarkan sertifikat yang akan diterima browser Anda.

Saat Anda terhubung ke proksi, browser Anda menerima sertifikat yang mengatakan "Saya benar-benar www.facebook.com ". Tetapi sertifikat ini tidak ditandatangani oleh CA yang dipercayai peramban Anda secara default. Begitu:

  • baik Anda menerima peringatan tentang koneksi HTTPS tidak aman, yang Anda klik untuk melihat konsentrasi di https://www.facebook.com/;
  • atau Anda menambahkan CA yang menandatangani sertifikat proksi ("Sertifikat CA Charles") ke daftar CA yang dipercaya oleh peramban Anda.

Apa pun itu, Anda memberi tahu browser Anda untuk mempercayai proxy. Begitu juga. Koneksi SSL tidak aman jika Anda mulai mempercayai orang asing acak.

Bacaan yang disarankan untuk informasi lebih lanjut:

Anda tidak dapat merusak https kecuali Anda memiliki akses ke sesi kunci simetris . Singkatnya, https sesi bekerja seperti ini:

  1. Klien dan server bertukar beberapa informasi awal
  2. Dengan menggunakan informasi ini, klien dapat mengotentikasi server , memastikan nilai kepercayaan
  3. Klien menggunakan server kunci publik untuk mengirimnya sebuah rahasia terenkripsi
  4. Server mendekripsi rahasia ini dengan menggunakan kunci pribadi (hanya server yang diautentikasi yang dapat melakukannya!)
  5. Baik klien dan server menggunakan rahasia untuk secara lokal menghasilkan kunci simetris sesi
  6. Sekarang mereka dapat berbicara satu sama lain dengan aman karena tidak ada orang lain yang tahu kunci simetris sesi mereka

Jika beberapa cara sepanjang pihak ketiga bisa mendapatkan akses ke rahasia bersama dia juga akan dapat menghasilkan kunci simetris sesi dan mendekripsi komunikasi.