Apakah semua server perlu menggunakan protokol HTTPS atau hanya server yang menghadap publik?

38

Saya memiliki server web ujung depan yang menjalankan HTTPS - ini menghadap publik - yaitu port terbuka.

Saya juga memiliki server API backend yang server web saya buat meminta API - ini menghadap publik dan memerlukan otentikasi - port terbuka.

2 server ini berjalan di HTTPS.

Di belakang server API, ada banyak server lain. Server API membalikkan proxy ke server ini. Port untuk server lain ini tidak terbuka untuk lalu lintas masuk. Mereka hanya dapat diajak bicara melalui server API.

Pertanyaan Saya ... Apakah "banyak server lain" perlu dijalankan melalui HTTPS atau, mengingat bahwa mereka tidak dapat diakses secara eksternal, apakah mereka dapat menggunakan HTTP dengan aman?

Saya pikir ini akan menjadi pertanyaan umum tetapi saya tidak dapat menemukan jawabannya. Terima kasih. Jika ini adalah penipuan, harap tunjukkan saya ke jawaban yang benar.

danday74
sumber
35
Mengingat bagaimana NSA memanfaatkan tautan luar negeri yang digunakan Google dan Yahoo untuk berkomunikasi di antara pusat data mereka yang tidak dienkripsi, saya sarankan Anda selalu menganggap bahwa suatu koneksi dicurigai. Anda tidak pernah tahu di mana seseorang mendengarkan, dan lebih baik aman daripada menyesal. Satu-satunya waktu saya akan mempertimbangkan menggunakan HTTP saja adalah layanan yang berjalan pada mesin yang sama yang menggunakannya, hanya terbuka untuk koneksi lokal.
childofsoong
7
Ini dikenal sebagai ssl offloading dan terminasi ssl jika Anda ingin melakukan penelitian lebih lanjut.
Esben Skov Pedersen
31
Ini seperti bertanya "apakah semua pintu membutuhkan kunci, atau hanya pintu yang menghadap ke luar"? Hanya Anda yang dapat menjawab pertanyaan ini ketika mempertimbangkan ancaman di dalam dan tanpa jaringan Anda.
Ryan Griggs
5
Seperti yang dikatakan Security.SE faq : "Keamanan adalah topik yang sangat kontekstual: ancaman yang dianggap penting di lingkungan Anda mungkin tidak penting bagi orang lain, dan sebaliknya. Apakah Anda mencoba melindungi sesuatu yang bernilai global dari Ancaman Persisten Tingkat Lanjut? Atau apakah Anda mencari pendekatan yang hemat biaya untuk usaha kecil yang berprofil rendah? Untuk mendapatkan jawaban yang paling membantu, Anda harus memberi tahu kami: aset apa yang Anda coba lindungi; siapa yang menggunakan aset yang Anda coba lindungi, dan siapa yang Anda berpikir mungkin ingin menyalahgunakannya (dan mengapa); ...
DW
2
langkah apa yang telah Anda ambil untuk melindungi aset itu; risiko apa yang menurut Anda masih perlu dikurangi. "Konteks semacam ini sangat penting. Saya sarankan Anda mengedit pertanyaan Anda untuk memasukkan informasi ini.
DW

Jawaban:

50

Ini adalah masalah pendapat, dan juga ada hubungannya dengan masalah peraturan (jika Anda menghadapi).

Bahkan jika saat ini tidak diperlukan, saya seorang pendukung besar untuk menjaga HTTPS diaktifkan antara setiap firewall tingkat aplikasi / load balancers / server ujung depan dan server ujung belakang. Itu satu permukaan serangan kurang. Saya telah mengontrak tempat-tempat yang perlu dikonversi karena informasi yang lebih sensitif mulai diteruskan - lebih baik untuk memulainya.

Apa yang saya umumnya sarankan adalah menggunakan CA internal (jika tersedia) atau masuk sendiri (jika tidak ada CA internal) server back end. Kami telah menetapkan tanggal kedaluwarsa yang bagus dan jauh ke masa depan untuk menghindari perubahan yang tidak perlu.

Tim Brigham
sumber
1
lebih baik untuk memulai di sana - kata-kata yang memberi Anda poin :)
danday74
12
Ini ide yang bagus. Anda tidak ingin NSA membuat gambar konyol dari topologi jaringan Anda .
Kevin
3
Mengenkripsi semua komunikasi Anda juga melindungi terhadap penyadapan internal - apakah itu dalam bentuk komputer magang yang mengambil trojan saat menelusuri gambar kucing, atau sniffer kecil yang terhubung ke port jaringan di belakang meja yang tidak digunakan, atau kata sandi wifi yang digunakan bersama sedikit terlalu longgar.
Doktor J
8
" We'd set the expiration date nice and far into the future to avoid unnecessary changes." dan tolong tambahkan aturan ke rangkaian pemantauan pilihan Anda untuk memperingatkan Anda saat akan kedaluwarsa. Silahkan!
GnP
2
@ GnP Saya melakukan itu juga - jika itu adalah sertifikat dengan periode 10 tahun kebijakan kami selalu mengamanatkan server backend diganti dalam periode itu .. Membuatnya sedikit berlebihan dan sepertinya tidak perlu disebutkan dalam jawaban.
Tim Brigham
19

TL; DR Anda harus mengenkripsi lalu lintas kecuali pada host yang sama.

Anda tidak dapat mempercayai jaringan Anda. Malwares di jaringan Anda sendiri dapat mencegat / memodifikasi permintaan http.

Itu bukan serangan teoretis, tetapi contoh kehidupan nyata:

Tom
sumber
16

Apakah "banyak server lain" perlu dijalankan melalui HTTPS atau, mengingat bahwa mereka tidak dapat diakses secara eksternal, dapatkah mereka menggunakan HTTP dengan aman?

Ini sangat tergantung pada apa yang ingin Anda capai. Memahami tujuan menggunakan HTTPS adalah untuk melindungi data dalam perjalanan antara dua titik. Jika Anda khawatir tentang data yang diendus di dalam jaringan Anda, mungkin itu yang harus diurus terlebih dahulu. Jika Anda perlu melindungi data dalam transit di dalam jaringan Anda, apa yang Anda katakan adalah bahwa Anda memiliki kekhawatiran tentang keamanan data yang melintasi sistem Anda di dalam jaringan Anda atau ada beberapa alasan terkait kepatuhan bagi Anda untuk mengenkripsi data dalam perjalanan.

Ini benar-benar lebih dari pertanyaan opini, tetapi jawabannya tergantung. Apa yang sedang Anda coba lakukan? Jenis data apa yang Anda enkripsi? Ancaman apa yang Anda coba pertahankan? Apakah Anda memiliki persyaratan hukum (mis. PCI-DSS, HIPAA, dll.) Yang mengatakan Anda harus mengenkripsi data dalam perjalanan? Jika data sensitif dan Anda khawatir itu bisa disalahgunakan ketika sedang dikirim di dalam jaringan Anda, maka saya akan menyarankan untuk bersama-sama dengan manajemen untuk memperbaiki masalah. Jadi pada akhirnya, apa yang Anda coba lindungi dan mengapa Anda mencoba melindunginya?

pengguna5870571
sumber
13

Dulu, orang beranggapan bahwa jaringan internal aman sebagai rumah. Saya pernah terlibat perselisihan dengan seorang penyelia yang terkejut karena server-server internal saya menjalankan firewall bawaan mereka. "Jika kamu tidak bisa mempercayai jaringan internal kamu, siapa yang bisa kamu percayai?" Saya menunjukkan bahwa kami memiliki laptop siswa di jaringan internal kami, dan tidak ada firewall antara laptop siswa dan server saya. Dia, sebagai orang baru di dunia akademis, nampaknya memiliki alam semesta yang berantakan dengan informasi ini.

Jaringan internal tidak lagi dianggap aman, bahkan jika Anda tidak memiliki laptop siswa di jaringan Anda. Lihat jawaban Tom untuk beberapa contoh.

Yang mengatakan, ya, itu tergantung pada informasi apa yang sedang dikirim, masalah kepatuhan hukum, dll. Anda mungkin memutuskan bahwa Anda tidak peduli jika seseorang mengendus, misalnya, data cuaca. Yang mengatakan, itu mungkin bahwa bahkan jika pengirimannya data tidak sensitif sekarang , seseorang mungkin memutuskan untuk menambahkan fitur untuk aplikasi Anda kemudian bahwa yang sensitif, jadi saya akan merekomendasikan paranoia yang lebih besar (termasuk HTTPS).

Katherine Villyard
sumber
Data cuaca mungkin cukup sensitif: Seseorang mungkin mendasarkan keputusan yang salah pada data cuaca yang dirusak.
Hagen von Eitzen
1
Cukup adil, itu tergantung pada apa yang Anda gunakan untuk data cuaca. Saya mencoba untuk membuat sesuatu yang tidak berbahaya. :)
Katherine Villyard
1
@HagenvonEitzen atau penyerang akan menyuntikkan malware / iklan di sana, jadi nenek akan pwned ketika dia memeriksa cuaca menggunakan mesin Windows XP-nya.
André Borie
8

Hari ini dengan instruksi CPU khusus untuk mempercepat enkripsi, dan protokol transport baru yang tidak akan beroperasi sama sekali atau beroperasi dengan kinerja terdegradasi melalui tautan tidak terenkripsi (HTTP / 2, gRPC, dll ...), mungkin pertanyaan yang lebih baik adalah: Apakah ada alasan mengapa Anda perlu menurunkan tautan jaringan ke HTTP? Jika tidak ada alasan khusus, maka jawabannya adalah tetap dengan HTTPS.

Harun
sumber
Proses pemikiran yang bagus
danday74
5

Satu-satunya alasan untuk menonaktifkan enkripsi yang dapat saya pikirkan adalah kinerja. Namun, dalam kasus Anda server internal dihubungkan melalui HTTP, yang berarti mereka sudah menanggung biaya kinerja menjalankan server web, mendukung protokol HTTP dan menyandikan data dalam HTTP / JSON / apa pun. Menonaktifkan enkripsi mungkin akan membebaskan 100KB RAM dan memberi Anda beberapa mikrodetik per KB data yang ditransmisikan, yang tidak akan memiliki dampak yang terlihat pada kinerja keseluruhan. Di sisi lain, Anda harus lebih memperhatikan keamanan karena Anda menjalankan HTTP di intranet Anda sekarang. Bahkan, mungkin saja konfigurasi firewall yang lebih ketat akan memperlambat lebih banyak daripada menonaktifkan enkripsi yang mempercepatnya, menghasilkan kinerja yang lebih buruk yang dirasakan oleh pengguna akhir.

Ini akan seperti meletakkan spoiler di traktor: Anda mendapatkan apa-apa secara teori, dan banyak ketidaknyamanan praktis.

Dmitry Grigoryev
sumber