it-swarm-id.com

Di mana enkripsi SSL berlangsung?

Saya memeriksa transmisi data situs web HTTPS (gmail.com) menggunakan Firebug. Tetapi saya tidak dapat melihat enkripsi apa pun untuk data yang saya kirimkan (nama pengguna dan kata sandi). Di mana enkripsi SSL berlangsung?

34
open source guy

Protokol SSL diimplementasikan sebagai pembungkus transparan di sekitar protokol HTTP. Dalam hal model OSI , ini sedikit area abu-abu. Ini biasanya diimplementasikan di lapisan aplikasi, tetapi secara tegas ada di lapisan sesi.

Pikirkan seperti ini:

  1. Lapisan fisik (kabel jaringan/wifi)
  2. Lapisan tautan data (ethernet)
  3. Lapisan jaringan (IPv4)
  4. Transport layer (TCP)
  5. Lapisan sesi (SSL)
  6. Lapisan presentasi (tidak ada dalam hal ini)
  7. Lapisan aplikasi (HTTP)

Perhatikan bahwa SSL berada di antara HTTP dan TCP.

Jika Anda ingin melihatnya beraksi, ambil Wireshark dan jelajahi situs melalui HTTP, lalu yang lain melalui HTTPS. Anda akan melihat bahwa Anda dapat membaca permintaan dan tanggapan pada versi HTTP sebagai teks biasa, tetapi tidak pada HTTPS. Anda juga dapat melihat lapisan-lapisan yang dipecah paket itu, dari lapisan tautan data ke atas.

Pembaruan : Telah ditunjukkan (lihat komentar) bahwa model OSI adalah generalisasi berlebihan dan tidak cocok di sini. Ini benar. Namun, penggunaan model ini adalah untuk menunjukkan bahwa SSL duduk "di suatu tempat" di antara TCP dan HTTP. Tidak sepenuhnya akurat, dan merupakan abstraksi yang samar-samar dari kenyataan.

51
Polynomial

Dengan HTTPS, enkripsi terjadi antara browser Web dan server Web. Firebug berjalan di browser itu sendiri, sehingga ia melihat data cleartext; enkripsi terjadi ketika keluar browser.

Gunakan alat monitor jaringan (seperti Monitor Jaringan Microsoft atau Wireshark ) untuk mengamati lalu lintas terenkripsi. Gunakan serangan Man-in-the-Middle produk seperti Fiddler untuk merasakan apa yang dapat dilakukan penyerang (yaitu: mencegat koneksi dan memulihkan data adalah layak jika JIKA pengguna dapat dibujuk untuk "mengabaikan peringatan browser sialan" tentang sertifikat yang tidak dipercaya - jadi jangan abaikan peringatan!).

22
Thomas Pornin

HTTPS adalah HTTP over TLS (atau lebih dari SSL, yang merupakan nama versi TLS sebelumnya ).

SSL/TLS, ketika dikonfigurasi dengan benar, memberikan privasi dan integritas data antara dua aplikasi yang berkomunikasi (lihat spesifikasi TLS ), melalui transportasi yang andal, biasanya TCP.

Meskipun TCP soket tidak disebutkan dalam spesifikasi TLS, SSL dan TLS dirancang dengan tujuan menyediakan model yang dapat digunakan hampir seperti plain TCP soket oleh pemrogram aplikasi. Selain beberapa kasus Edge (misalnya, untuk penutup soket atau jika Anda ingin aplikasi Anda aplikasi Anda sadar akan negosiasi ulang), ini memang sebagian besar kasusnya. SSL/TLS tumpukan sering menyediakan pembungkus yang membuat soket SSL/TLS dapat diprogram dengan cara yang sama seperti soket TCP soket (setelah dikonfigurasi); misalnya Java SSLSocket extends Socket.

Sebagian besar aplikasi bergantung pada perpustakaan yang ada untuk menggunakan SSL/TLS (misalnya JSSE di Java, SChannel, OpenSSL, perpustakaan NSS Mozilla, OSN's CFNetwork, ...). Dengan sedikit modifikasi pada kode polos TCP (biasanya, semua yang ada di sekitar sertifikat dan manajemen kepercayaan, dan pengaturan enkripsi/cipher suite jika diperlukan), soket SSL/TCP (atau streaming, tergantung pada jenis API) digunakan untuk bertukar teks biasa sejauh menyangkut aplikasi. Pustaka dasar yang cenderung melakukan pekerjaan enkripsi, secara transparan.

Ketika Anda melihat lalu lintas di dalam alat pengembang browser, itu adalah apa yang dipertukarkan di atas perpustakaan yang Anda lihat. Untuk melihat lalu lintas terenkripsi, Anda harus melihat lalu lintas yang sebenarnya (mis. Menggunakan Wireshark).

5
Bruno

Sementara semua model jaringan tidak sempurna, pertanyaan ini hanya dapat dijawab dengan melihat apa yang SSL (TLS benar-benar) lakukan. (1) Di atas aliran jaringan yang andal (TCP pada OSI layer 4) menyediakan aliran dua arah terenkripsi dan (hampir selalu) menjamin identitas server dan (secara opsional) klien. Klien yang mengotentikasi dapat berupa proses, pengguna atau entitas lain yang dapat menjawab tantangan otentikasi yang diperlukan dengan benar.

TLS berarti Transport Layer Security. Namun karena ia menerapkan identitas sesi, integritas, memulai, merobohkan, dan mengelolanya, itu sangat termasuk dalam lapisan sesi. Halaman Wikipedia menyatakan bahwa ini milik lapisan presentasi OSI. Ini mungkin salah. Lapisan presentasi lebih peduli dengan menyusun data ke dalam format yang tidak tergantung jaringan dan menafsirkannya di sisi Host melalui aplikasi yang sesuai.

Enkripsi yang tidak aktif (misalnya di bidang basis data atau pesan email) mungkin merupakan kandidat untuk lapisan presentasi, tetapi saya menyarankan agar lebih dekat ke bentuk OS atau keamanan aplikasi.

Jadi pada kenyataannya TLS sebagian besar adalah sesi-lapisan karena menyediakan keamanan sesi point-to-point untuk transportasi (TCP). Dengan cara lain ia menyediakan fungsi otentikasi yang jelas lapisan aplikasi (OS, utilitas atau aplikasi pengguna).

Jadi itu banyak layer 5 dan sedikit layer 7.

Semoga berhasil.

3
eris0xff

Meskipun dimungkinkan untuk membaca/menulis data ke saluran SSL/TLS seperti pada soket Vanilla TCP/IP, di Java atau C atau apa pun, SSL memberi Anda konsep sesi SSL, yang dapat disimpan di beberapa koneksi TCP/IP. Jadi, IMHO ini membuat SSL protokol lapisan sesi (saya heran mengapa seseorang datang dengan nama TLS ...).

1
André Zúquete

SSL beroperasi pada layer presentasi dalam model OSI (Layer6). Lihat referensi Panduan TCP/IP, M. Kozierok, halaman 111. "Protokol pada lapisan ini menangani tugas manipulasi yang mengubah data dari satu representasi ke yang lain, seperti terjemahan, kompresi, dan enkripsi. Salah satu skema enkripsi paling populer biasanya terkait dengan lapisan presentasi adalah protokol Secure Socket Layer (SSL). " HTTPS adalah protokol lapisan aplikasi yang menggunakan ssl pada lapisan 6 untuk keperluan enkripsi.

1
Kruger

Ini adalah layer di atas layer transport, biasanya TCP.

Anda dapat melihat data terenkripsi masuk dan keluar dengan wireshark.

0
Kovags