Apakah sertifikat SSL yang ditandatangani sendiri aman?

33

Saya ingin memiliki koneksi yang aman, ketika saya masuk ke webmail saya, phpMyAdmin , dll.

Karena itu saya menandatangani sertifikat SSL saya sendiri dengan OpenSSL dan menyuruh Apache untuk mendengarkan pada port 443.

Apakah ini sebenarnya aman? Apakah semua kata sandi saya benar-benar dikirim melalui lapisan yang aman dan aman? Apa bedanya, jika saya membeli sertifikat SSL dari Verisign atau menandatangani sendiri? Pada akhirnya, semua data akan tetap ada di server saya. Jadi apa perbedaan besar?

cherrun
sumber

Jawaban:

40

Ini semua tentang kepercayaan. Jika Anda mendapatkan sertifikat yang ditandatangani dari Verisign, Anda membuktikan kepada klien acak bahwa sertifikat Anda dipercaya. Jika Anda menandatangani sendiri sertifikat orang yang tidak memiliki sertifikat Anda diinstal di komputer mereka tidak dapat memastikan bahwa mereka tidak diserang oleh serangan Man-in-the-middle .

Jika server web Anda hanya digunakan oleh Anda, maka Anda tidak perlu CA nyata (seperti verisign) untuk menandatangani sertifikat Anda. Cukup instal sertifikat pada mesin yang ingin Anda gunakan dan Anda siap melakukannya.

Sunting: Jadi untuk menjawab pertanyaan Anda: Ya semuanya dienkripsi dan Anda dapat memastikan tidak ada yang dapat membaca data sensitif Anda jika Anda tahu bahwa sertifikat yang disajikan ke browser web sebenarnya adalah yang Anda gunakan untuk menyiapkan server web.

monoceres
sumber
12
Tujuan CA adalah untuk membuktikan kepada orang lain bahwa sertifikat milik siapa Anda mengatakan itu milik. Karena Anda sudah tahu milik siapa sertifikat itu, dalam hal Anda mengakses server Anda sendiri dan menyajikan sertifikat Anda sendiri, CA tidak ada gunanya. Namun, orang lain tidak dapat dengan aman mengakses server Anda, karena mereka tidak memiliki cara untuk mengetahui sertifikat mana yang harus dipercaya. (Anda tahu - percayalah pada yang Anda keluarkan.)
David Schwartz
Ini juga akan menjadi pendekatan yang masuk akal jika server akan diakses oleh sejumlah kecil pengguna yang dapat langsung menghubungi Anda untuk memverifikasi sertifikat - anggota keluarga Anda, atau staf perusahaan kecil, sebagai contoh.
bgvaughan
Bisakah seorang Pria di Tengah yang berkoordinasi dengan CA menimpa sertifikat yang ditandatangani sendiri? Misalnya Bob terhubung ke situs web yang ditandatangani sendiri Alice, Scar mengirimkan Bob sertifikat berbeda yang ditandatangani oleh CA Scar dikoordinasikan dengan, browser Bob tidak pernah menampilkan peringatan SSL. Apakah ini mungkin?
Hello World
14

Ini semua tentang kepercayaan.

Katakanlah Anda mengunjungi situs web populer yang menyajikan sertifikat. Ini adalah situs web yang mengatakan "Inilah saya, Anda dapat mempercayai saya, karena saya memiliki surat pengantar yang ditandatangani oleh seseorang yang Anda percayai."

Dalam hal ini, 'seseorang yang Anda percayai' adalah salah satu dari otoritas sertifikat yang telah, (semoga) melakukan kerja keras dalam menetapkan identitas penyaji sertifikat atas nama Anda.

Apa yang benar-benar Anda percayai adalah kepercayaan peramban pada kepercayaan otoritas sertifikat pada identitas orang yang memberikan sertifikat. Sering kali ada lebih dari satu otoritas antara Anda dan presenter, karenanya istilah: 'Rantai Kepercayaan'. [1]

Ketika Anda menandatangani sertifikat Anda sendiri, tidak ada rantai kepercayaan. Situs Anda menunjukkan sertifikat Anda sendiri kepada Anda. Jika Anda memasang sertifikat Anda sendiri di peramban sebagai yang Anda percayai, maka itu dianggap sebagai otoritas, sama dengan yang sudah terpasang sebelumnya. Anda kemudian memiliki rantai kepercayaan dengan hanya satu tautan.

Jika kemudian Anda mengunjungi situs Anda sendiri dan browser Anda memperingatkan Anda bahwa itu menunjukkan sertifikat yang tidak dipercaya, maka Anda harus memprihatinkan, karena, seperti halnya situs lain yang menyajikan sertifikat yang tidak dipercaya, Anda tidak dapat memastikan Anda sedang berkomunikasi dengan situs asli.

Perhatikan bahwa saya belum menyebutkan enkripsi. Sertifikat adalah tentang mengautentikasi identitas pihak yang berkomunikasi dengan Anda. Melalui sertifikat tepercaya, ada cara agar Anda cukup yakin bahwa toko atau bank Anda adalah yang asli. Setelah Anda menetapkan identitas mereka, mengamankan komunikasi di antara Anda adalah langkah selanjutnya. Kebetulan sertifikat di dalamnya juga berisi kunci-kunci yang diperlukan untuk memfasilitasi keamanan ini. Dengan anggapan Anda telah mengatur SSL dengan benar, maka komunikasi ini sama amannya dengan yang Anda lakukan dengan toko atau bank Anda, dan kata sandi Anda sama-sama dilindungi. [2]

[1] Ini sama sekali bukan sistem tanpa cacat. Pasar bebas dan margin rendah, bisnis volume tinggi tak terhindarkan mengarah pada pemotongan biaya: http://www.theregister.co.uk/2011/04/04/11/state_of_ssl_analysis/

[2] Paling tidak, cukup terlindungi sehingga jauh lebih murah bagi seseorang untuk mendobrak masuk ke dalam rumah Anda untuk mengalahkan rahasia Anda daripada berusaha memecahkannya: http://xkcd.com/538/

SmallClanger
sumber
11

Sebenarnya, sertifikat yang ditandatangani sendiri dapat aman, hanya saja tidak di bawah model yang kami gunakan sekarang.


Di bawah model CA (otoritas sertifikat) yang tersebar luas yang digunakan semua orang saat ini, tujuan sertifikat yang ditandatangani oleh CA tepercaya adalah untuk memberikan otentikasi.

Ketika kita mendapatkan sertifikat, yang benar-benar kita lihat adalah 1 dan 0 datang dari jack di dinding; kami tidak tahu dari mana 1 dan 0 itu berasal. Namun, karena sertifikat ditandatangani oleh CA - sesuatu yang tidak dapat dilakukan oleh siapa pun di dunia selain CA - dan karena kami percaya CA untuk memverifikasi identitas pemilik sertifikat, kami percaya bahwa sertifikat tersebut berasal dari siapa yang diklaimnya. untuk.

Tentu saja, jika CA terganggu atau tidak memverifikasi pemiliknya dengan benar , semua taruhan dibatalkan.


Namun, ada model lain, di mana sertifikat yang ditandatangani sendiri memang memberikan keaslian. Ini disebut model notaris .

Pada dasarnya, alih-alih mempercayai CA tunggal, kami mendistribusikan kepercayaan ke sejumlah notaris . Notaris-notaris ini menjelajahi Internet untuk mencari sertifikat, menyimpan cache dari semua sertifikat yang telah mereka lihat. Ketika Anda mengunjungi situs untuk pertama kalinya dan mendapatkan sertifikat, Anda bertanya kepada sejumlah notaris yang didistribusikan secara global apa sertifikat terakhir yang mereka lihat. Jika mereka tidak setuju dengan apa yang Anda lihat, Anda bisa menjadi bagian dari serangan pria-di-tengah.

Di bawah model ini, sertifikat yang ditandatangani sendiri benar-benar aman, selama kami menganggap server tidak segera dikompromikan sebelum notaris mana pun dapat melihat sertifikatnya.


Model notaris masih dalam masa pertumbuhan, dan diragukan bahwa ia akan mengambil alih model CA (sebenarnya, tidak harus - mereka dapat digunakan bersama-sama) . Proyek yang paling menjanjikan sejauh ini adalah Convergence.io , yang memiliki plugin untuk Firefox.

BlueRaja
sumber
2

Ini bukan SEMUA tentang kepercayaan ....

Sertifikat SSL dapat melayani dua tujuan - 1) adalah server web yang Anda sambungkan ke yang ingin Anda sambungkan; dan 2) untuk mengenkripsi komunikasi.

Anda dapat memiliki # 2 tanpa # 1 yang telah Anda capai. Yang tersisa adalah verifikasi bahwa kotak yang Anda sambungkan adalah yang Anda inginkan.

Jika itu adalah server SAYA, saya tidak memiliki masalah dengan menggunakan sertifikat yang ditandatangani sendiri dari saya sendiri - walaupun ada beberapa risiko bahwa seseorang dapat menipu hal-hal untuk membuat saya terhubung ke server mereka alih-alih milik saya. Karena tidak ada yang peduli tentang saya dan server saya dan saya memiliki sedikit nilai di sini, saya tidak melihat terlalu banyak risiko dalam hal ini.

Di sisi lain, jika bukan server saya itu adalah server Anda, maka saya akan khawatir.

uSlackr
sumber
Apakah Anda akan mengatakan: "Jika itu server Anda, maka saya TIDAK akan khawatir"?
cherrun
tidak, dia berkata "jika itu server SAYA, saya tidak memiliki masalah ... jika itu adalah server ANDA maka saya memiliki masalah".
Francesco
Anda salah. Tidak ada yang bisa menipu hal-hal untuk membuat Anda terhubung ke server mereka, bukan Anda. Mereka tidak memiliki kunci yang sesuai dengan sertifikat yang ditandatangani sendiri yang Anda keluarkan, dan tidak dapat menunjukkan sertifikat yang berbeda kepada Anda karena Anda tidak akan menerimanya.
David Schwartz
@cherun Maksud saya adalah saya mempercayai saya - bukan Anda (atau siapa pun). Anda bisa / harus mempercayai diri sendiri.
uSlackr
1
-1. Enkripsi dilakukan menggunakan kunci simetris yang dinegosiasikan selama jabat tangan. Tentu saja, Anda menggunakan sertifikat untuk memeriksa identitas pihak jarak jauh, jika tidak akan ada gunanya mengenkripsi komunikasi (bisa jadi MITM). Jika itu server Anda dan sertifikat yang ditandatangani sendiri, impor sertifikat Anda secara eksplisit ke klien Anda.
Bruno