Penjelasan feature Squid tentang HTTPS (HTTP Secure or HTTP over SSL/ TLS)  ncuptea blog

Penjelasan feature Squid tentang HTTPS (HTTP Secure or HTTP over SSL/ TLS)


Mengkonfigurasi squid proxy server di jaman sekarang tidak semudah seperti sebelumnya saat protokol service request masih menggunakan "http" bukan "https". Di saat sekarang saat kalian menginstall dan mengkonfigurasi squid proxy server seperti sebelumnya bisa di pastikan tidak akan ada dampaknya.

Di masa sekarang saat kita ingin mencache atau simpan suatu konten internet di media lokal server kita maka di butuhkan squid yang bisa menghandle HTTP Over TLS/ SSL (HTTPS).

Dibawah ini sedikit penjelasan clue dan terjemahan soal feature HTTPS di SQUID, ada baiknya di pahami sebelum mempraktekannya langsung dari semua sumber tentang konfgurasi squid bisa memcache https, karena memang konfigurasi ini terbilang masih rumit dan masiih banyak bug.

Sumber asli konten :
https://wiki.squid-cache.org/Features/HTTPS#CONNECT_tunnel_through_Squid


SILAHKAN SIMAK

Saat browser menemukan https://URL, ada satu dari dua hal berikut yang terjadi:
  • membuka koneksi SSL/ TLS langsung ke server asli atau
  • membuka terowongan TCP melalui squid ke server asli menggunakan metode permintaan CONNECT .
Interaksi squid dengan kedua jenis lalu lintas ini akan dibahas di bawah.

Terowongan CONNECT

Metode CONNECT adalah cara untuk melakukan koneksi tunnel apapun melalui HTTP proxy. Secara default, proxy tersebut menetapkan koneksi TCP ke server yang ditentukan, merespons dengan respons HTTP 200 (Connection Established), dan kemudian menyekop atau mencicil paket bolak-balik antara klien dan server tanpa memahami atau menafsirkan lalu lintas terowongannya.


CONNECT tunnel melalui Squid
Saat browser menetapkan tunnel CONNECT melalui squid, Access Controls dapat mengendalikan permintaan CONNECT, namun hanya tersedia informasi secara terbatas. Misalnya, banyak bagian umum dari permintaan URL tidak ada dalam permintaan CONNECT seperti :
         Skema atau protokol URL (misalnya, http: //, https: //, ftp: // , voip://, itunes://, atau telnet:// ),
         Jalur/ patch URL (misalnya, /index.html atau/ secure /image / ),
         dan string kueri (misalnya ? a=b &c=d )
Dengan HTTPS, semua bagian yang di atas hadir dalam permintaan HTTP yang dienkapsulasi dan mengalir melalui terowongan, namun squid tidak memiliki akses ke pesan yang terenkripsi tersebut. Protokol tunnelled lainnya mungkin tidak menggunakan pesan HTTP dan URL (misalnya, telnet). 

Penting untuk diperhatikan bahwa protokol yang melewati CONNECT tidak terbatas pada apa yang biasanya ditangani squid. Logikanya, apa pun yang menggunakan koneksi TCP dua arah dapat dilewatkan melalui terowongan CONNECT. Inilah sebabnya mengapa default ACL squid dimulai dengan deny CONNECT! SSL_Ports dan mengapa kita harus memiliki alasan bagus untuk menempatkan jenis aturan allow pada aturan di atas.

Intercepting CONNECT tunnels (Mencegat terowongan CONNECT)
Browser mengirimkan permintaan CONNECT saat dikonfigurasi untuk berkomunikasi/ memakai proxy. Jadi, tidak perlu mencegat permintaan CONNECT.  TBD: Dokumentasi tentang apa yang terjadi pada squid tidak mencegat permintaan CONNECT, entah karena squid telah salah dikonfigurasi untuk mencegat lalu lintas yang ditujukan ke proxy lain atau karena klien yang mungkin jahat mengirim permintaan CONNECT buatan tangan untuk mengetahui bahwa itu akan dicegat.

Terowongan CONNECT Bumping
PERINGATAN:  HTTPS dirancang untuk memberikan pengguna harapan akan privasi dan keamanan. Mengekstrusi terowongan HTTPS tanpa persetujuan atau pengetahuan pengguna mungkin melanggar norma etika dan mungkin melanggar hukum di yurisdiksi anda. Fitur dekripsi squid yang dijelaskan di sini atau di tempat lain dirancang untuk diterapkan dengan persetujuan pengguna atau paling tidak di lingkungan di mana dekripsi tanpa persetujuan bisa di sebut legal. Fitur-fitur ini juga menggambarkan mengapa pengguna harus berhati-hati dalam mempercayai koneksi HTTPS dan mengapa link terlemah dalam rantai perlindungan HTTPS sedikit rapuh. Mengekstrusi terowongan HTTPS merupakan kategori serangan man-in-the-middle jika di lihat dari sudut pandang keamanan jaringan secara keseluruhan.

Squid SslBump dan fitur yang terkait dengannya dapat digunakan untuk mendekripsi terowongan HTTPS CONNECT saat mereka melewati proxy squid. Hal ini memungkinkan untuk menangani pesan di terowongan HTTP seolah-olah pesan HTTP biasa, termasuk menerapkan kontrol akses terperinci dan melakukan adaptasi konten (misalnya, memeriksa request body  terhadap kebocoran informasi dan memeriksa respon terhadap virus). Kesalahan konfigurasi, bug squid, dan serangan berbahaya dapat menyebabkan pesan yang tidak terenkripsi keluar dari batas squid. Dari sudut pandang browser, pesan yang dienkapsulasi tidak dikirim ke proxy. Dengan demikian, keterbatasan intersepsi umum, seperti ketidakmampuan untuk mengotentikasi permintaan tertanam individual, berlaku di sini juga.

Sambungan SSL / TLS langsung
Saat browser membuat sambungan aman langsung dengan server asli, tidak ada permintaan HTTP CONNECT. Permintaan HTTP pertama kali yang dikirim pada koneksi semacam itu sudah dienkripsi. Dalam kebanyakan kasus, squid keluar dari lingkarannya: Squid tidak tahu apa-apa tentang koneksi itu dan tidak dapat memblokir atau proxy lalu lintas itu. Pengecualian terhadap reverse proxy dan intersepsi dijelaskan di bawah ini.

Sambungan SSL/ TLS langsung ke reverse proxy
Squid-2.5 atau yang lebih baru dapat menghentikan koneksi TLS atau SSL. Anda harus membangun/ build squid dengan --enable-ssl pada saat install/ re-build/ compile. Lihat https_port untuk informasi lebih lanjut. Squid-3.5 dan yang berikutnya dapat  melakukan autodetek terhadap ketersediaan perpustakaan GnuTLS dan mengaktifkan fungsinya jika tersedia. OpenSSL atau LibreSSL harus diaktifkan secara eksplisit dengan opsi configure --with-openssl saat mencompile/merebuild . Jika library/ perpustakaan dipasang di lokasi non-standar, anda mungkin perlu menggunakan opsi konfigurasi --with-foo=PATH. Lihat configure --help pada terminal untuk rinciannya.
Ini mungkin paling berguna dalam konfigurasi pengganti (aka, http accelerator, reverse proxy). Cukup konfigurasikan Squid dengan konfigurasi proxy normal dengan menggunakan port 443 dan rincian sertifikat SSL pada baris https_port .

Mencegat koneksi SSL / TLS langsung
Hal ini dimungkinkan untuk mencegat koneksi HTTPS ke server asli di https_port squid. Ini mungkin berguna di lingkungan pengganti (aka, http accelerator, reverse proxy), namun terbatas pada situasi di mana squid dapat mewakili server asli menggunakan sertifikat SSL server assli tersebut. Dalam kebanyakan situasi, penyadapan koneksi HTTPS langsung tidak akan bekerja dan tidak ada gunanya karena squid tidak dapat melakukan apapun dengan lalu lintas terenkripsi - Squid bukanlah proxy tingkat TCP.

Bumping koneksi SSL/ TLS langsung
PERINGATAN: HTTPS dirancang untuk memberi pengguna harapan akan privasi dan keamanan. Mengekstrusi terowongan HTTPS tanpa persetujuan atau pengetahuan pengguna mungkin melanggar norma etika dan mungkin melanggar hukum di yurisdiksi anda. Fitur dekripsi squid yang dijelaskan di sini atau di tempat lain dirancang untuk diterapkan dengan persetujuan pengguna atau, paling tidak, di lingkungan di mana dekripsi tanpa persetujuan itu di sebut legal. Fitur-fitur ini juga menggambarkan mengapa pengguna harus berhati-hati dalam mempercayai koneksi HTTPS dan mengapa link terlemah dalam rantai perlindungan HTTPS sedikit rapuh. Mengekstrusi terowongan HTTPS merupakan serangan man in the middle dari sudut pandang keamanan jaringan secara keseluruhan.

Kombinasi squid NAT Interception , SslBump , dan fitur yang terkait dengannya dapat digunakan untuk mencegat koneksi HTTPS langsung dan mendekripsi pesan HTTPS saat mereka melewati proxy squid. Hal ini memungkinkan untuk menangani pesan HTTPS yang dikirim ke server asli seolah-olah pesan HTTP biasa, termasuk menerapkan kontrol akses terperinci dan melakukan adaptasi konten (misalnya, memeriksa request body untuk kebocoran informasi dan memeriksa respon dari virus). Kesalahan konfigurasi, bug squid, dan serangan berbahaya dapat menyebabkan pesan yang tidak terenkripsi keluar dari batas squid.

Saat ini, lalu lintas squid-to-client pada koneksi HTTPS langsung yang dicegat/ intercept tidak dapat menggunakan Dynamic Certificate Generation , ini akan menyebabkan peringatan pada browser dan membuat konfigurasi seperti itu hampir tidak praktis. Keterbatasan inilah yang akan ditangani oleh proyek bagian bump-server-first.
Dari sisi browser, pesan yang dicegat/ intercept tidak dikirim ke proxy. Dengan demikian, keterbatasan intersepsi secara umum, seperti ketidakmampuan untuk mengotentikasi permintaan berlaku untuk transaksi yang disadap/ bumped tercegat juga.

Koneksi browser-Squid terenkripsi
Sementara upaya perancangan HTTPS difokuskan pada komunikasi end-to-end,  cara ini akan menyenangkan karena dapat mengenkripsi koneksi browser ke proxy (tanpa membuat terowongan CONNECT yang memblokir squid dari pengaksesan dan penyimpanan konten). Ini akan memungkinkan misalnya penggunaan proxy jarak jauh yang aman yang berada di jaringan lain.

Squid dapat menerima lalu lintas proxy biasa menggunakan https_port dengan cara yang sama seperti squid menggunakan perintah http_port . Sayangnya, browser modern yang populer tidak mengizinkan konfigurasi koneksi proxy terenkripsi TLS/ SSL. Ada laporan bug yang muncul terhadap sebagian besar browser tersebut sekarang, menunggu dukungan muncul. Jika anda berminat, tolong bantu tim browser agar hal itu terjadi.

Di lain hal, trik menggunakan stunnel atau terowongan SSH diperlukan untuk mengenkripsi koneksi browser-ke-proxy sebelum meninggalkan mesin klien. Ini agak berat di jaringan dan bisa malah lambat hasilnya.

Chrome
Browser Chrome dapat terhubung ke proxy melalui koneksi SSL jika dikonfigurasi untuk menggunakannya di file PAC atau tombol perintah. Konfigurasi via GUI nampaknya tidak atau belum dimungkin.

Firefox
Browser Firefox 33.0 dapat terhubung ke proxy melalui koneksi TLS jika dikonfigurasi untuk menggunakannya dalam file PAC. Konfigurasi via GUI nampaknya tidak atau belum dimungkin. meski ada hack hack untuk embedding logika PAC .
Masih ada bug penting yang terbuka:
Jika anda memiliki masalah saat menambahkan trust untuk cert proxy, ada sebuah proses oleh Patrick McManus untuk menyelesaikannya.

No comments:

Facebook Blogger Plugin: Brought to by CITEUREUP FOUNDATION Enhanced by ncuptea

Post a Comment

Berkomentarlah dengan bijak untuk pengembangan dan sekaligus menjadi pembelajaran kita bersama.

Pilih Name/Url untuk mempermudah memasukan id anda!