Apakah ada alasan untuk tidak menerapkan HTTPS di situs web?

49

Sebuah situs web yang saya sering akhirnya putuskan untuk mengaktifkan TLS ke server mereka, hanya untuk tidak mengamanatkannya karena banyak situs web di luar sana yang melakukannya. Pengelola mengklaim bahwa TLS harus opsional. Mengapa?

Di situs web saya sendiri, saya telah lama mengatur TLS dan HSTS yang diamanatkan dengan periode yang lama, dan cipher suites yang lebih lemah dinonaktifkan. Akses plaintext dijamin akan diblokir dengan HTTP 301 ke versi yang dilindungi TLS. Apakah ini mempengaruhi situs web saya secara negatif?

Maxthon Chan
sumber
12
Mereka mungkin takut, bahwa HSTS akan membuat mereka mendapat masalah, jika terjadi kesalahan APA SAJA (yaitu CA gratis mereka berhenti mengeluarkan sertifikat atau dihapus dari toko kepercayaan peramban karena beberapa masalah). Dengan ekosistem TLS saat ini, Anda membuat dependensi ke CA / vendor browser tepercaya. Saat ini sulit untuk dihindari dan tidak sia-sia, tetapi Anda masih dapat melihat ini sebagai masalah dan tidak menegakkan HTTPS sebagai solusi untuk tetap mandiri jika terjadi sesuatu.
allo
ada yang mau menyebutkan persyaratan tls untuk h2, yang jauh lebih cepat dari http1.1. baik untuk Anda melakukan hsts, saya baru-baru ini mengirim situs saya untuk daftar pramuat hsts, mudah-mudahan saya bisa menonaktifkan port 80 bersama
Jacob Evans
4
@gerit Argumen ini tidak berdiri di depan otoritas sertifikat murah dan gratis seperti Let's Encrypt.
Maxthon Chan
1
Let's Encrypt tidak bekerja dengan setiap host, dan tidak semudah menggunakan host yang lebih baik. Saya menggunakan App Engine yang tidak (langsung) didukung karena alasan teknis.
Carl Smith

Jawaban:

8

Ada beberapa alasan bagus untuk menggunakan TLS

(dan hanya beberapa alasan marjinal untuk tidak melakukannya).

  • Jika situs tersebut memiliki otentikasi, gunakan HTTP expose untuk mencuri sesi dan kata sandi.
  • Bahkan di situs statis, hanya informasi, menggunakan TLS memastikan tidak ada yang merusak data.

  • Sejak Google I / O 2014 , Google telah mengambil beberapa langkah untuk mendorong semua situs menggunakan HTTPS:

  • Mozilla Security Blog juga telah mengumumkan Deprecating Non-Secure HTTP dengan membuat semua fitur baru hanya tersedia untuk mengamankan situs web dan secara bertahap menghapus akses ke fitur browser untuk situs web yang tidak aman, terutama fitur yang berisiko terhadap keamanan dan privasi pengguna .

Ada juga beberapa alasan bagus untuk menegakkan TLS

Jika Anda sudah memiliki sertifikat yang tepercaya, mengapa tidak selalu menggunakannya? Secara praktis semua browser saat ini mendukung TLS dan telah menginstal sertifikat root. Satu-satunya masalah kompatibilitas yang sebenarnya saya lihat selama bertahun-tahun adalah perangkat Android dan otoritas sertifikat perantara Hilang karena Android hanya memercayai CA root secara langsung. Ini dapat dengan mudah dicegah dengan mengkonfigurasi server untuk mengirim rantai sertifikat kembali ke root CA.

Jika pengelola Anda masih ingin mengizinkan koneksi HTTP tanpa sambungan langsung 301 Moved Permanently, katakanlah untuk memastikan akses dari beberapa peramban atau perangkat seluler yang benar-benar tua, tidak ada cara bagi peramban untuk mengetahui bahwa Anda bahkan telah mengkonfigurasi HTTPS . Selain itu, Anda tidak boleh menggunakan HTTP Strict Transport Security (HSTS) tanpa 301 Moved Permanently:

7.2.  HTTP Request Type

   If an HSTS Host receives a HTTP request message over a non-secure
   transport, it SHOULD send a HTTP response message containing a status
   code indicating a permanent redirect, such as status code 301
   (Section 10.3.2 of [RFC2616]), and a Location header field value
   containing either the HTTP request's original Effective Request URI
   (see Section 9 "Constructing an Effective Request URI") altered as
   necessary to have a URI scheme of "https", or a URI generated
   according to local policy with a URI scheme of "https").

Masalah berbagai situs yang dikonfigurasi untuk kedua protokol diakui oleh The Tor Project dan Electronic Frontier Foundation dan ditangani oleh ekstensi HTTPS di mana-mana multibrowser :

Banyak situs di web menawarkan beberapa dukungan terbatas untuk enkripsi melalui HTTPS, tetapi membuatnya sulit untuk digunakan. Misalnya, mereka mungkin default ke HTTP tidak terenkripsi, atau mengisi halaman terenkripsi dengan tautan yang kembali ke situs tidak terenkripsi.

Konten campuran juga merupakan masalah besar karena kemungkinan serangan XSS ke situs HTTPS melalui modifikasi JavaScript atau CSS yang dimuat melalui koneksi HTTP yang tidak aman. Karenanya saat ini semua browser utama memperingatkan pengguna tentang halaman dengan konten campuran dan menolak untuk memuatnya secara otomatis. Ini menyulitkan untuk mempertahankan situs tanpa 301pengalihan pada HTTP: Anda harus memastikan bahwa setiap halaman HTTP hanya memuat contect HTTP (CSS, JS, gambar dll.) Dan setiap halaman HTTPS hanya memuat konten HTTPS. Itu sangat sulit dicapai dengan konten yang sama pada keduanya.

Esa Jokinen
sumber
If your maintainer still would like to allow HTTP connections without direct 301 Moved Permanently, say for ensuring access from some really old browsers or mobile devices, HSTS is the correct choise as it only enforces HTTPS when it is clear that the browser supports ittetapi dalam hal ini klien (bahkan yang kompatibel dengan HTTPS) tidak akan pernah tahu versi HTTPS adalah mereka memuat HTTP pada awalnya.
Cthulhu
Re paragraf terakhir Anda: HSTS header diabaikan selama koneksi non-HTTPS
Cthulhu
1
HSTS Host MUST NOT include the STS header field in HTTP responses conveyed over non-secure transport. If an HTTP response is received over insecure transport, the UA MUST ignore any present STS header field(s). tools.ietf.org/id/draft-ietf-websec-strict-transport-sec-14.txt
Cthulhu
Terima kasih telah menunjukkan petunjuk salahku, Cthulhu! Terinspirasi dari itu, saya telah membuat perbaikan besar pada jawaban saya. Harap juga kritis terhadap konten baru. :)
Esa Jokinen
62

Di zaman sekarang ini, TLS + HSTS adalah penanda bahwa situs Anda dikelola oleh para profesional yang dapat dipercaya untuk mengetahui apa yang mereka lakukan. Itu adalah standar minimum yang muncul untuk kepercayaan, sebagaimana dibuktikan oleh Google yang menyatakan mereka akan memberikan peringkat positif untuk situs yang melakukannya.

Di sisi lain adalah kompatibilitas maksimum. Masih ada klien yang lebih tua di luar sana, terutama di bagian dunia yang bukan Amerika Serikat, Eropa, atau Cina. HTTP biasa akan selalu berfungsi (meskipun, tidak selalu berfungsi dengan baik ; itu cerita lain).

TLS + HSTS: Optimalkan untuk peringkat mesin pencari
Plain HTTP: Optimalkan untuk kompatibilitas

Tergantung pada apa yang lebih penting bagi Anda.

sysadmin1138
sumber
16
Mungkin saya pilih-pilih, tetapi kalimat pertama itu agak sulit: situs yang https tidak memberi tahu apa pun tentang profesionalisme atau kepercayaan orang-orang yang bertanggung jawab. Situs dapat berupa https dan masih dikembangkan / dikelola oleh orang yang tidak membersihkan input, membuat situs ini rentan terhadap injeksi SQL atau XSS; atau bisa https dan tidak valid, tidak dapat diakses, atau tidak dapat digunakan.
Alvaro Montoro
34
Menggunakan HTTPS bukan jaminan profesionalisme, tetapi kurangnya profesionalisme justru menunjukkan sebaliknya.
Esa Jokinen
8
Penggunaan TLS dan HSTS adalah sinyal, bagian dari susunan yang jauh lebih besar, yang mungkin layak dibaca oleh situs. Tidak seperti yang lain, ini mudah untuk menguji keberadaannya , jadi itu sebabnya Google menggunakannya sebagai proxy untuk yang lain.
sysadmin1138
3
@Braiam Stack Exchange hanya bermigrasi ke https dan akan segera mulai menggunakan hsts. Http masih tersedia, bukan karena kompatibilitas, tetapi karena mereka lambat dan hati-hati, dan secara teknis sulit untuk bermigrasi.
captncraig
4
@ Esajohnson - kurangnya https tidak menunjukkan profesionalisme. Ini menunjukkan tidak ada "kebutuhan" untuk itu. Misalnya, cermin CentOS.
warren
30

Ada satu alasan bagus untuk situs web hanya baca sederhana untuk tidak menggunakan HTTPS.

  • Tembolok web tidak dapat menembolok gambar yang diangkut melalui HTTPS.
  • Beberapa bagian dunia memiliki koneksi internasional berkecepatan sangat rendah, jadi tergantung pada cache.
  • Hosting gambar dari domain lain membutuhkan keterampilan yang tidak dapat Anda harapkan dimiliki oleh operator untuk situs web hanya baca kecil .
Ian Ringrose
sumber
1
Konten hanya baca dapat digunakan di CDN jika Anda menargetkan negara-negara tersebut. CDN mencerminkan konten statis menggunakan cara mereka sendiri dan masih melayani mereka melalui HTTPS. CDN dapat dengan mudah ditemukan dan untuk situs web kecil tidak terlalu mahal untuk digunakan.
Maxthon Chan
8
@MaxthonChan, coba jelaskan kepada ibu saya apa itu CDN ..... Namun dia mungkin membuat situs web dengan waktu layanan gereja lokal.
Ian Ringrose
6
@MichaelHampton bagaimana cache dapat membaca gambar dari aliran HTTPS tanpa memiliki kunci deskripsi? Dan apakah Anda akan mempercayai ISP dengan kunci Anda?
Ian Ringrose
8
Anda harus membuatnya lebih jelas tentang cache yang sedang Anda bicarakan.
Michael Hampton
2
@IanRingrose Jika ibu Anda membuat situs web dengan info layanan gereja lokal, kecil kemungkinan perilaku caching pada koneksi internasional akan ikut bermain, kecuali itu adalah gereja yang sangat populer.
Jason C
14

Pengelola mengklaim bahwa TLS harus opsional. Mengapa?

Untuk benar-benar mengetahui jawaban atas pertanyaan ini, Anda harus bertanya kepada mereka. Namun, kita dapat membuat beberapa tebakan.

Di lingkungan perusahaan, IT umum untuk menginstal firewall yang memeriksa lalu lintas masuk dan keluar untuk malware, aktivitas mirip CnC yang mencurigakan, konten yang dianggap tidak pantas untuk bekerja (misalnya pornografi), dll. Ini menjadi lebih sulit ketika lalu lintas dienkripsi. Pada dasarnya ada tiga kemungkinan tanggapan:

  1. Berhenti memantau lalu lintas ini.
  2. Instal CA root pada mesin pengguna sehingga Anda dapat melakukan dekripsi dan inspeksi MitM.
  3. Wholesale memblokir lalu lintas terenkripsi.

Untuk sysadmin yang bersangkutan, tidak satu pun dari opsi ini yang secara khusus menarik. Ada banyak sekali ancaman yang menyerang jaringan perusahaan, dan tugas mereka adalah melindungi perusahaan dari mereka. Namun, memblokir banyak sekali situs sepenuhnya menimbulkan kemarahan pengguna, dan memasang root CA bisa terasa agak payah, karena memperkenalkan pertimbangan privasi dan keamanan bagi pengguna. Saya ingat melihat (maaf, tidak dapat menemukan utasnya) petisi sysadmin reddit ketika mereka pertama kali menyalakan HSTS karena dia berada dalam situasi yang persis seperti ini, dan tidak ingin memblokir semua reddit hanya karena dia dipaksa oleh bisnis untuk memblokir subreddits yang berfokus pada porno.

Roda teknologi terus berputar maju, dan Anda akan menemukan banyak yang berpendapat bahwa perlindungan semacam ini kuno dan harus dihapuskan. Tetapi masih banyak yang mempraktikkannya, dan mungkin mereka yang menjadi perhatian pengelola misterius Anda.

Xiong Chiamiov
sumber
bagaimana dengan mengakhiri ssl di server frontend / load balancer / sejenis dan mencatat lalu lintas setelah itu?
eis
1
@ Eis Itu mengasumsikan bahwa perusahaan mengontrol setiap situs web yang mungkin dikunjungi karyawan, yang sepertinya tidak mungkin. Pos tersebut tampaknya bukan tentang TLS di situs web intranet.
Xiong Chiamiov
5

Semuanya tergantung pada kebutuhan keamanan Anda, pilihan pengguna, dan risiko penurunan peringkat secara implisit. Menonaktifkan cipher lama di sisi server sangat diperlukan karena browser akan dengan senang hati masuk ke cipher yang benar-benar mengerikan di sisi klien atas nama pengalaman / kenyamanan pengguna. Memastikan tidak ada satu pun dari Anda yang bergantung pada saluran yang aman untuk pengguna tidak dapat dijangkau dengan metode tidak aman, tentu saja, juga sangat baik.

Tidak mengizinkan saya untuk menurunkan versi secara eksplisit ke HTTP yang tidak aman ketika saya menganggap posting blog Anda tentang mengapa Anda lebih menyukai Python daripada Ruby (tidak mengatakan Anda melakukannya, hanya contoh umum) bukan sesuatu yang saya pedulikan para hantu atau masyarakat yang tahu Saya mengakses hanya menghalangi saya tanpa alasan yang baik, dengan asumsi bahwa HTTPS akan sepele bagi saya.

Ada, saat ini, sistem embedded yang tidak memiliki kemampuan untuk menggunakan TLS di luar kotak, atau yang terjebak pada implementasi lama (saya pikir itu sangat buruk karena hal ini terjadi, tetapi sebagai pengguna daya dari [insert embedded] perangkat di sini], saya terkadang tidak dapat mengubah ini).

Inilah eksperimen yang menyenangkan: coba unduh versi terbaru LibreSSL dari situs OpenBSD hulu melalui HTTPS dengan implementasi TLS / SSL yang cukup lama. Anda tidak akan bisa. Saya mencoba suatu hari di perangkat dengan build OpenSSL yang lebih tua dari 2012 atau lebih, karena saya ingin memutakhirkan sistem tertanam ini menjadi lebih aman, barang baru dari sumber - Saya tidak memiliki kemewahan paket prebuilt. Pesan kesalahan ketika saya mencoba tidak sepenuhnya intuitif, tetapi saya mengira itu karena OpenSSL saya yang lama tidak mendukung hal-hal yang benar.

Ini adalah salah satu contoh di mana langkah satu-satunya HTTPS dapat benar-benar merugikan orang: jika Anda tidak memiliki kemewahan paket pre-built baru-baru ini dan ingin memperbaiki sendiri masalah dengan membangun dari sumber, Anda dikunci. Untungnya, dalam kasus LibreSSL, Anda dapat kembali ke meminta HTTP secara eksplisit. Tentu, ini tidak akan menyelamatkan Anda dari penyerang yang sudah menulis ulang lalu lintas Anda, yang mampu mengganti paket sumber dengan versi yang disusupi dan menulis ulang semua checksum dalam badan HTTP yang menjelaskan paket yang tersedia untuk diunduh di halaman web yang Anda jelajahi, tetapi masih berguna dalam banyak hal. kasus yang lebih umum.

Sebagian besar dari kita bukan satu unduhan tanpa jaminan yang jauh dari dimiliki oleh APT (Advanced Persistent Thread: jargon keamanan untuk badan intelijen nasional dan ancaman dunia maya yang bersumber daya sangat baik lainnya). Kadang-kadang saya hanya ingin wgetbeberapa dokumentasi teks biasa atau program kecil yang sumbernya saya dapat dengan cepat mengaudit (utilitas / skrip kecil saya sendiri di GitHub, misalnya) ke dalam kotak yang tidak mendukung cipher suite terbaru.

Secara pribadi, saya akan menanyakan ini: apakah konten Anda sedemikian rupa sehingga seseorang dapat secara sah memutuskan "Saya baik-baik saja dengan saya mengakses pengetahuan publik"? Apakah ada kemungkinan risiko nyata yang masuk akal bagi orang non-teknis tanpa sengaja menurunkan ke HTTP untuk konten Anda? Bobot persyaratan keamanan Anda, persyaratan privasi untuk pengguna Anda, dan risiko penurunan peringkat tersirat terhadap kemampuan pengguna yang memahami risiko membuat pilihan berdasarkan informasi per kasus untuk tidak aman. Sepenuhnya sah untuk mengatakan bahwa untuk situs Anda, tidak ada alasan bagus untuk tidak menerapkan HTTPS - tapi saya pikir adil untuk mengatakan bahwa masih ada kasus penggunaan yang bagus untuk HTTP biasa di luar sana.

mtraceur
sumber
1
"coba unduh LibreSSL versi terbaru dari situs hulu OpenBSD melalui HTTPS dengan implementasi TLS / SSL yang cukup lama" Sisi lain dari ini tentu saja adalah: coba unduh browser terbaru dengan browser yang cukup lama, misalnya yang hanya mengimplementasikan HTTP / 1.0 tanpa dukungan untuk Host:tajuk. Atau coba berselancar di situs-situs modern dengan browser web yang hanya mendukung Javascript tahun 2001. Pada titik tertentu, kita sebagai komunitas perlu melanjutkan, yang sayangnya merusak beberapa hal bagi sebagian orang. Pertanyaannya kemudian menjadi: apakah nilai tambah itu sepadan dengan kerusakan?
CVn
@ MichaelKjörling Itu juga masalah, dengan tingkat keparahan yang berbeda-beda. Saya akan menambahkan membangun versi kompiler terbaru ke daftar itu. Beberapa lebih bisa dipertahankan daripada yang lain. Saya tidak yakin jika Anda menyatakan ketidaksetujuan atau mengapa jika Anda adalah: dalam kalimat kedua posting saya, saya setuju bahwa itu adalah dibenarkan untuk mencegah cipher tua pada koneksi HTTPS, karena melindungi sebagian besar pengguna dari serangan downgrade mereka' d sebaliknya tidak memiliki visibilitas yang berarti atau pertahanan terhadap. (Saya rasa sebagian besar situs web modern yang gagal untuk menurunkan
anggotanya
@ MichaelKjörling Untuk memperjelas, tujuan mengemukakan hal itu adalah karena ini adalah contoh di mana menyediakan HTTP polos kepada pengguna memiliki manfaat yang jelas, yang merupakan inti dari pertanyaan yang dijawab. Dengan cara apa pun tidak memberikan cahaya negatif ke proyek OpenBSD / LibreSSL, yang saya hormati dengan cukup besar. Saya pikir kalimat kedua dari paragraf pertama akan mengesampingkan interpretasi negatif tersebut. Jika Anda pikir itu tidak jelas atau dapat diucapkan dengan lebih baik, silakan mengedit jawaban saya atau menyarankan peningkatan.
mtraceur
3

Ada banyak diskusi di sini tentang mengapa tls itu baik - tetapi itu tidak pernah ditanyakan seperti pada posting asli.

Maxthon mengajukan 2 pertanyaan:

1) mengapa memiliki situs acak dan tanpa nama memutuskan untuk mempertahankan kehadiran http dan https

2) Apakah ada dampak negatif pada Maxthon yang hanya melayani 301 respons terhadap permintaan http

Sehubungan dengan pertanyaan pertama, kami tidak tahu mengapa penyedia memilih untuk mempertahankan situs http dan https. Mungkin ada banyak alasan. Selain poin tentang kompatibilitas, caching terdistribusi, dan beberapa petunjuk tentang aksesibilitas geo-politik, ada juga pertimbangan tentang integrasi konten dan menghindari pesan browser yang jelek tentang konten yang tidak aman. Seperti yang ditunjukkan Alvaro, TLS hanyalah puncak gunung es yang berkaitan dengan keamanan.

Namun pertanyaan kedua harus dijawab. Mengekspos bagian mana pun dari situs web Anda melalui http saat itu sebenarnya memerlukan https untuk operasi yang aman memberikan vektor yang dapat dieksploitasi untuk serangan. Namun masuk akal untuk mempertahankan ini untuk mengidentifikasi di mana lalu lintas tidak diarahkan dengan benar ke port 80 di situs Anda dan memperbaiki penyebabnya. Yaitu ada dampak negatif dan peluang dampak positif, hasil bersih tergantung pada apakah Anda melakukan pekerjaan Anda sebagai administrator.

Sysadmin1138 mengatakan bahwa https memengaruhi peringkat seo. Meskipun Google telah menyatakan bahwa hal itu memengaruhi peringkat, satu-satunya penelitian yang dapat saya lihat menunjukkan perbedaannya kecil. Ini tidak terbantu oleh orang - orang yang seharusnya tahu dengan lebih baik menyatakan bahwa, karena situs peringkat teratas lebih cenderung memiliki kehadiran https, kehadiran https karenanya meningkatkan peringkat.

symcbean
sumber
1

Di masa lalu, saya harus menggunakan HTTP daripada HTTPS karena saya ingin <embed>halaman dari tempat lain yang telah dilayani melalui HTTP, dan mereka tidak akan berfungsi sebaliknya.

Algy Taylor
sumber
Anda dapat menggunakan server Anda untuk membalikkan proxy versi SSL'd.
Maxthon Chan
1

Ini bukan alasan yang baik , karena itu berarti Anda memiliki klien yang buruk / rusak / tidak aman, tetapi jika ada proses otomatis mengakses sumber daya melalui http://url yang ada , ada kemungkinan bahwa beberapa dari mereka bahkan tidak mendukung https (mis. Kesibukan kotak , yang tidak dapat memiliki dukungan TLS secara internal dan hanya menambahkannya baru-baru ini melalui proses anak openssl) dan akan rusak jika mereka diberikan arahan ulang ke url https yang tidak dapat mereka ikuti.

Saya akan tergoda untuk berurusan dengan kemungkinan ini dengan menulis aturan redirect untuk mengecualikan string User-Agent yang tidak dikenal untuk dialihkan dan membiarkan mereka mengakses konten melalui http jika mereka mau, sehingga browser yang sebenarnya dapat memperoleh manfaat dari semuanya. https / hsts paksa.

R ..
sumber
1
Ingatkan saya berapa dekade yang lalu ada alat yang dirawat dengan baik (misalnya wget) tidak mendukung HTTPS?
Oleg V. Volkov
@ OlegV.Volkov: Saya pikir Anda melewatkan kata busybox dalam jawaban saya.
R ..
Lihat - yah, sekarang saya mengerti. Saya tidak benar-benar mengerti mengapa kalau begitu tidak bisa hanya membangun benda sialan dan kemudian tidak membuat paket alat membangun tapi apa pun. Memikirkan kembali, saya juga ingat beberapa kasus lagi ketika orang dibatasi untuk alat yang dilucuti atau usang dan akan lebih baik untuk memiliki HTTP biasa. Bisakah Anda memperbaiki topi sehingga saya dapat mengembalikan suara setelah diedit juga?
Oleg V. Volkov
1

Ada beberapa alasan bagus untuk menggunakan HTTP alih-alih HTTPS di situs web. Jika situs web Anda menangani transaksi apa pun atau menyimpan segala jenis data sensitif atau pribadi, Anda harus benar-benar menggunakan HTTPS jika Anda ingin data tersebut aman. Satu-satunya alasan yang layak saya lihat untuk tidak menegakkan HTTPS adalah jika situs web Anda mengandalkan caching karena HTTPS tidak berfungsi dengan caching. Namun, seringkali layak mengorbankan sedikit kinerja untuk memastikan keamanan situs web Anda. Mungkin juga klien Anda tidak mendukung HTTPS, tetapi sebenarnya, pada 2017, mereka seharusnya mendukung.

Ken
sumber