Bagaimana cara saya menjaga kunci ssl untuk situs web kami rahasia?

12

Saya ingin merahasiakan kunci SSL kami untuk situs web kami. Ini disimpan di 2 stik USB, satu di brankas dan yang saya jaga tetap aman. Dan saya satu-satunya yang menerapkannya ke server web sehingga benar-benar aman.

Kecuali...

Setidaknya pada IIS, Anda dapat mengekspor kunci. Jadi siapa pun yang menjadi admin kemudian bisa mendapatkan salinan kunci. Apakah ada cara untuk mengatasi ini? Atau menurut definisi apakah semua admin memiliki akses penuh ke semua kunci?

Pembaruan: Saya memiliki sysadmin yang saya percaya sepenuhnya. Apa yang menyebabkan ini adalah salah satu dari mereka berhenti (mereka memiliki satu jam perjalanan ke perusahaan kami, 5 menit perjalanan ke yang baru). Sementara saya mempercayai orang ini, sama seperti kita menonaktifkan akun Active Directory mereka ketika seseorang pergi, saya pikir kita harus memiliki cara untuk memastikan mereka tidak mempertahankan kemampuan untuk menggunakan SSL kami.

Dan yang menurut saya paling mudah adalah jika saya satu-satunya yang memilikinya. Sertifikat kami kedaluwarsa pada bulan Januari jadi ini saatnya untuk mengubah praktik jika kami bisa. Berdasarkan jawaban, sepertinya kita tidak bisa.

Jadi ini mengarah ke pertanyaan baru - ketika seseorang yang memiliki akses ke sertifikat pergi, apakah itu praktik standar untuk mendapatkan sertifikat baru dan mencabut yang sudah ada. Atau jika orang yang pergi dapat dipercaya, maka apakah kita melanjutkan dengan sertifikat yang kita miliki?

David Thielen
sumber
5
Bahkan jika server yang Anda gunakan tidak memungkinkan Anda untuk mengekspornya, itu masih harus dalam memori dan dengan demikian dapat diekstraksi. Satu-satunya pilihan yang saya lihat adalah menggunakan modul kripto perangkat keras, seperti smartcard menjadi tiga hanya satu dengan kunci, tetapi siapa pun dengan akses fisik ke mesin bisa mencurinya. Anda masih dapat mencabutnya jika dicuri.
user2313067
27
Jika Anda tidak dapat mempercayai admin Anda, Anda memiliki masalah SDM.
Michael Hampton
5
Mengapa Anda menyalin kunci ke media USB itu? Kunci rahasia yang digunakan dengan SSL tidak perlu berada di tempat lain selain dari server tempat ia digunakan. (Ini tentu saja dapat dimasukkan dalam salinan cadangan dari server, tetapi kurang penting untuk membuat cadangan kunci itu daripada data lain di server, karena Anda selalu dapat menghasilkan kunci rahasia baru dan telah ditandatangani seperti yang Anda lakukan dengan yang lama.)
kasperd
Saya bukan ahli di bidang ini, tetapi tidakkah modul enkripsi perangkat keras ada yang berisi kunci yang tetap di dalamnya dan hanya permintaan masuk yang masuk dan tanda tangan keluar? Menyolder atau menempelkan satu ke server bisa menjadi solusi.
matega

Jawaban:

26

Seseorang dengan akses administratif (atau sering bahkan fisik) ke server akan dapat mengekstrak kunci pribadi. Baik melalui ekspor, mengendus memori, atau tipu daya semacam itu.

Administrator Anda memiliki akses ke kunci pribadi server web Anda. Terimalah ini sebagai fakta, dan atasi itu. Jika sysadmin Anda tidak dapat dipercaya, maka Anda mungkin perlu sysadmin yang lebih baik atau setidaknya sysadmin yang lebih sedikit dengan akses ke server web. Jika itu masalah paranoia keamanan manajemen, maka mungkin ada masalah yang lebih dalam mengenai kemampuan mereka untuk mempercayai sysadmin.

Ini bukan untuk mengatakan bahwa Anda harus membiarkan semua orang memiliki akses ke kunci pribadi. Harus selalu ada kebutuhan untuk akses sebelum akses diberikan. Dengan mengingat hal itu, apakah Anda akan mengambil langkah-langkah ekstrem untuk memastikan bahwa sysadmin dengan kontrol penuh terhadap situs web tidak dapat mengekspor kunci pribadi, tetapi masih dapat memanipulasi situs web itu sendiri dalam sejumlah cara yang hampir tidak dapat dilacak? Kami kembali percaya di sini, dan saya pikir itulah inti dari masalah yang perlu ditangani.

Hyppy
sumber
2
+1 untuk "Administrator Anda memiliki akses ke kunci pribadi server web Anda. Terima ini sebagai fakta, dan atasi itu". Pertanyaan untuk efek "Bagaimana saya mencegah orang dengan hak admin dari melakukan X?" menunjukkan masalah yang lebih dalam kepada saya. Terlalu curiga, atau terlalu longgar dalam memberikan hak admin.
Brandon
2
Saya memperbarui dengan mengapa saya bertanya. Ini bukan masalah dengan sysadmin, itu keinginan untuk mengikuti praktik terbaik.
David Thielen
11

Saat Anda mengimpor kunci, Anda memiliki opsi untuk menandainya sebagai tidak dapat diekspor. Ini akan mencegah Anda menggunakan IIS atau MMC sertifikat untuk mengekspornya. Setidaknya, itu membuatnya sedikit lebih sulit.

Namun, jika mereka memiliki akun administrator di mesin, atau memiliki akses fisik ke sana - mereka masih bisa mendapatkan kunci melalui cara lain.

Hibah
sumber
1
Sebenarnya tidak terlalu sulit. isecpartners.com/tools/application-security/jailbreak.aspx
Greg Askew
0

Di sinilah "perantara CA" dapat membantu.

"Root CA" dalam contoh di bawah ini adalah salah satu yang dimiliki oleh perusahaan SSL dan bukan Anda.

Anda tidak memiliki kontrol langsung atas kunci yang dibuat oleh Root CA, jadi jika kunci yang ditandatangani oleh Root CA terganggu, Anda harus melalui mereka untuk mencabutnya.

Tapi:

Root CA (SSL company)
 |
 +-Intermediate CA (You)
   |
   +-Server Key for site

Jika Anda menempatkan CA lain di tengah, dan meminta sertifikat SSL yang dibeli menandatangani sertifikat CA Anda sendiri alih-alih langsung menandatangani sertifikat server Anda, Anda dapat mempertahankan kendali sertifikat server di bawah ini dan mengeluarkan sertifikat pencabutan atau melakukan apa pun jika hal-hal di bawah ini dikompromikan. .

Anda menyimpan kunci pribadi CA Menengah untuk diri sendiri dan admin tidak perlu melihatnya.

Anda juga dapat melakukan ini:

Root CA (SSL company)
 |
 +-Intermediate CA (You)
   |
   +-Server Key 1 for site
   +-Server Key 2 for site 
   +-Server Key 3 for site

Anda dapat bersiap untuk kompromi, dan menghasilkan sertifikat sebelumnya, sehingga Anda dapat beralih dengan cepat jika ada kunci individu yang dicabut. Admin tidak mendapatkan kunci untuk 2 atau 3 hingga kompromi 1. Anda dapat menaruh pemberitahuan di situs Anda tentang skema ini, dan ini juga akan menyampaikan kepada admin Anda bahwa Anda siap jika terjadi kompromi dan bisnis lucu pada mereka end tidak akan menghancurkan situs Anda.

LawrenceC
sumber
1
Bukankah ini akan menyebabkan peringatan SSL untuk pengguna untuk CA yang tidak dipercaya?
ceejayoz
1
Saya kira ini hanya akan bekerja dengan baik jika Anda dapat menginstal CA sebagai sertifikat tepercaya di browser pengguna, seperti di pengaturan intranet perusahaan. Saya tahu ada yang salah dengan skema cemerlang saya. :(
LawrenceC
0

Ada banyak artikel yang menyarankan untuk menyimpan kunci privat di tempat lain selain dari server tetapi kunci privat itu untuk sertifikat penandatanganan kode . Bayangkan Anda memiliki kunci pada komputer offline yang hanya Anda miliki aksesnya, beberapa perangkat lunak ditulis, Anda mendapatkan kunci pribadi dari server offline, menandatangani kode dan kemudian Anda tidak memerlukan kunci pribadi lagi sampai Anda perlu menandatangani beberapa kode lagi.

Solusi terbaik selalu, dan akan terus menyimpan kunci Anda secara offline. Cara Anda melakukannya sepenuhnya terserah Anda (ada beberapa metode), ingatlah untuk menjaganya dengan baik di brankas kantor atau di tempat yang tidak mudah dikantongi seseorang.

Baca lebih lanjut di: https://www.thesslstore.com/blog/heres-what-happens-when-your-private-key-gets-compromised/

Sebaliknya, sertifikat SSL untuk situs web untuk mengaktifkan komunikasi HTTPS: Kunci pribadi diperlukan selama masing-masing dan setiap jabat tangan oleh server web. Karenanya, menyimpannya secara offline tidak akan berfungsi.

CodingYoshi
sumber