it-swarm-id.com

Mengapa unduhan aplikasi tidak dilakukan secara rutin melalui HTTPS?

Kita semua tahu bahwa kita harus menggunakan SSL setiap kali kita mengumpulkan kata sandi atau informasi sensitif lainnya. SSL memberikan dua manfaat utama:

  • Enkripsi: Data tidak dapat dibaca oleh perantara saat dalam perjalanan.
  • Perlindungan terhadap serangan MITM: Seorang pria di tengah tidak dapat berpura-pura menjadi server, karena mereka tidak dapat menghasilkan sertifikat yang ditandatangani CA untuk server.

Jika saya mengunduh aplikasi, saya mungkin akan menjalankannya di beberapa titik, bahkan mungkin sebagai root. Beberapa program akan ditandatangani, tetapi banyak yang tidak. Tidakkah unduhan dilakukan melalui SSL sehingga saya tahu bahwa itu belum dirusak selama transit?

Jika seseorang mencuri kata sandi saya, itu buruk. Tetapi jika seseorang menanam keylogger di komputer saya, itu cara, jauh lebih buruk.

58
Tom Marthenal

Karena HTTPS tidak cocok untuk mengamankan unduhan file publik besar. Untuk kasus penggunaan ini, lambat dan tidak berguna. Ada alasan untuk tidak menggunakan HTTPS melampaui ketidakmampuan atau ketidaktahuan.

HTTPS tidak sepenuhnya menyelesaikan masalah . Ini Jika Anda mendapatkan aplikasi langsung dari situs web vendor, HTTPS memastikan keaslian aplikasi tersebut. Tetapi jika Anda mendapatkan aplikasi dari pihak ketiga (mis. Mirror dari perangkat lunak gratis), HTTPS hanya melindungi koneksi dengan pihak ketiga. Skema tanda tangan paket berfungsi lebih baik: ia dapat melindungi seluruh rantai dari vendor. Distribusi aplikasi memerlukan perlindungan end-to-end dan HTTPS tidak menyediakannya .

HTTPS menggunakan lebih banyak bandwidth . Biaya overhead per unduhan minimal jika Anda tidak memperhitungkan caching. Ini adalah bola bulat dari "HTTPS tidak membutuhkan biaya lebih banyak": jika Anda menggunakan SSL, Anda tidak dapat menyimpan data kecuali pada titik akhir SSL. Pengunduhan aplikasi sangat mudah: file besar yang diunduh banyak orang.

HTTPS berlebihan . Kerahasiaan unduhan aplikasi jarang menjadi masalah, yang kita butuhkan hanyalah keaslian. Sayangnya, HTTPS tidak memberikan keaslian tanpa juga memberikan kerahasiaan. Keaslian kompatibel dengan caching, tetapi kerahasiaan tidak.

HTTPS membutuhkan lebih banyak sumber daya di server. Google mail membawanya ke overhead 1% dan bandwidth 2%, tetapi ini untuk kasus penggunaan yang sangat berbeda. Server frontend Gmail melakukan lebih dari sekadar melayani file tanpa berpikir; file server tidak memerlukan CPU yang kuat di tempat pertama (itu sangat sangat terikat IO), sehingga overhead kemungkinan akan secara signifikan lebih besar. Hal yang sama berlaku untuk overhead memori: server file membutuhkan sangat sedikit memori per sesi di tempat pertama, hampir semua memorinya adalah cache disk. Mendapatkan penggunaan sumber daya turun membutuhkan jumlah pekerjaan yang serius .

HTTPS tidak akan membantu banyak orang . Sadar keamanan akan memeriksa hash yang disediakan oleh vendor ( itu harus lebih dari HTTPS). Non-keamanan-sadar akan mengklik pesan "koneksi ini tidak aman" (ada begitu banyak server yang dikonfigurasi dengan buruk di luar sana yang banyak pengguna dilatih untuk mengabaikan kesalahan HTTPS). Dan itu belum lagi CA cerdik yang memberikan sertifikat yang seharusnya tidak.


Jika Anda ingin memastikan bahwa Anda mendapatkan aplikasi asli, periksa tanda tangannya, atau periksa hash terhadap nilai referensi yang Anda peroleh dengan tanda tangan (misalnya melalui HTTPS).

Vendor yang baik membuat ini otomatis. Sebagai contoh, Ubuntu menyediakan tanda tangan GPG dari media instalasinya . Ini juga menyediakan hash over HTTPS (sayangnya tidak terhubung dari mana pun di dekat halaman unduhan sejauh yang saya bisa lihat). Setelah itu, alat penginstalan perangkat lunak secara otomatis memeriksa apakah paket datang dengan tanda tangan yang valid. Lihat Bagaimana cara menggunakan https dengan apt-get?

Catatan: jika Anda mendapatkan aplikasi langsung dari vendor (tidak seperti melalui beberapa repositori paket atau pasar aplikasi), maka HTTPS memang memberikan perlindungan. Jadi, jika Anda seorang vendor yang menyediakan aplikasi Anda secara langsung untuk diunduh di situs web Anda, lindungi dengan HTTPS!

Itu alasan yang sama dengan alasan mengapa belum semua permintaan masuk menggunakan https: orang-orang terlalu malas, menganggap sertifikat terlalu mahal, atau memiliki hosting yang mengenakan biaya lebih banyak untuk menggunakan https.

Pertanyaan sebenarnya adalah mengapa unduhan disajikan melalui koneksi biasa lebih sering daripada formulir masuk. Dan saya pikir ini sebagian besar karena ketidaksadaran. Checksum seringkali disediakan, tetapi tidak aman jika dikirim melalui http. Salah satu implementasi checksum yang baik yang pernah saya lihat adalah di mana mereka diposting ke Twitter (yang menggunakan https, dan dapat dianggap wajar tanpa kompromi). Namun saya tidak tahu siapa pun yang pernah memeriksa checksum, mungkin hanya jika perangkat lunak tidak berjalan. Biasanya TCP diasumsikan melakukan pengecekan kesalahan yang masuk akal.

Tentu saja, https lebih berat di server daripada http. Untuk situs web dengan lalu lintas tinggi, ini mungkin menjadi alasan. Tetapi sekali lagi, situs web dengan lalu lintas tinggi juga dapat menghasilkan 'uang tinggi' untuk membiayainya.

19
Luc

Dapat diperdebatkan, ketika pengguna mengunduh aplikasi melalui web, unduhan aplikasi harus melebihi HTTPS, karena itu adalah pengalaman pengguna terbersih untuk pengguna yang menyediakan keamanan yang mereka bisa mengerti. Mungkin realistis untuk mengharapkan banyak pengguna memeriksa cahaya hijau di bilah alamat sebelum mereka mengunduh, tetapi tidak masuk akal untuk (misalnya) mengharapkan mereka menghitung hash dan memeriksanya dengan aman.

Namun, unduhan aplikasi ini sering tidak ditawarkan melalui HTTPS, karena berbagai alasan yang mungkin:

  • Alasan bagus: HTTPS mencegah caching di jaringan. Ini dapat meningkatkan lalu lintas jaringan, memuat di server, dan memuat di jaringan sisi klien.

  • Alasan buruk: Orang-orang memiliki kepercayaan yang keliru bahwa "HTTPS lambat" (yang sebuah mitos ), karena butuh kerja ekstra untuk menyiapkan server dengan SSL, karena mereka bergantung pada mirror dan situs mirror jangan menggunakan HTTPS, atau karena orang belum memikirkannya atau tidak berpikir mereka berisiko. Untuk perangkat lunak yang banyak digunakan, kepercayaan ini mungkin berpandangan pendek. Rupanya, juga beberapa situs mungkin menggunakan penyeimbang beban atau akselerator yang mati otak dan tidak memahami HTTPS dengan benar, dan mereka tidak ingin atau tidak mampu merekayasa penyebaran yang tepat yang dapat berbicara HTTPS dengan benar.

Beberapa situs distribusi aplikasi lakukan menggunakan HTTPS. Tetapi banyak yang tidak.

Firefox adalah salah satu contoh profil tinggi dari aplikasi yang tidak tidak menggunakan HTTPS secara default ketika Anda mengunduh aplikasi (lihat Seberapa aman salinannya? Firefox yang ada di berbagai situs cermin Mozilla? ).

Pembaruan Windows semua dilakukan melalui saluran yang aman (mirip dengan HTTPS). Manajer paket Linux menggunakan kriptografi untuk melindungi perangkat lunak yang mereka unduh, meskipun bukan HTTPS itu sendiri.

9
D.W.

Sebagian besar waktu akan ada jumlah MD5sums dan SHA1 untuk aplikasi. Setelah Anda mengunduhnya, Anda perlu memeriksa ini ke yang ditampilkan di situs web. Jika yang Anda hitung sama, maka tidak ada masalah.

4
Lucas Kauffman