Bagaimana cara mengamankan kunci pribadi CA Anda?

24

Saya akan menerapkan Otoritas Sertifikasi (CA) saya sendiri hanya untuk penggunaan interal.

Sekarang ada masalah, bahwa CA private seharusnya tidak pernah dieksploitasi. Jadi sekarang kunci pribadi dienkripsi.

Apa lagi yang bisa dilakukan untuk meningkatkan keamanan kunci privat?

JMW
sumber
Bisakah kita mendapatkan OS tempat Anda menjalankan server web? Anda mungkin dapat mengatur izin pada file sehingga tidak dapat dibaca oleh siapa pun kecuali oleh aplikasi maupun superuser.
Rilindo
kita menjalankan RHEL
JMW

Jawaban:

25

Saya bekerja di sebuah perusahaan di mana keamanan kunci CA sangat penting untuk kesuksesan bisnis yang berkelanjutan. Untuk tujuan ini, kunci dienkripsi menggunakan protokol khusus yang membutuhkan setidaknya 2 orang untuk hadir dengan token fisik dicolokkan ke terminal untuk mendekripsi (ada setidaknya 5 token ini, setiap 2 gabungan akan bekerja). Terminal secara fisik dipisahkan dari mesin yang sebenarnya dengan kunci CA. Antarmuka yang dimiliki pengguna yang mendekripsi itu adalah terminal VT220 yang memungkinkan mereka untuk memasukkan token dekripsi dan kemudian memilih apa yang ingin mereka 'tanda tangani' dengan kunci (tidak pernah memberi mereka akses ke kunci yang didekripsi). Sistem ini berarti setidaknya 4 orang harus bekerja bersama untuk mengkompromikan kunci, dua pemegang token, orang yang memiliki akses ke pusat data,

Jika Anda tertarik pada detail lebih lanjut tentang pengaturan semacam ini, Bruce Schneier memiliki situs yang bagus yang mencakup desain dan implementasi keamanan komputer:

http://www.schneier.com/

Ia juga telah menerbitkan buku Kriptografi Terapan yang sangat baik yang saya temukan membantu saya memahami dasar-dasar sistem seperti ini dan bagaimana merancang infrastruktur yang lebih aman (dapat dibaca oleh orang-orang yang tidak mengenakan pelindung saku):

http://www.schneier.com/book-applied.html

jumlahnya banyak
sumber
2
Dan operasi dua tombol (atau n dari m, m> = n, n> 1) adalah tindakan pencegahan lain yang sangat baik - tetapi untuk uang saya, airgap pertama, dan tambahkan penyempurnaan seperti detik ini, tergantung pada tingkat paranoia Anda (yaitu, biaya kegagalan).
MadHatter mendukung Monica
1
Mengapa orang dengan akses root tidak dapat membuang konten memori ke file sementara dua orang yang berwenang melakukan pekerjaan mereka? Ini berarti bahwa orang dengan root bisa mendapatkan kunci hanya dengan sumber daya tambahan yang diperlukan untuk mendapatkan memori dump dari mesin.
Slartibartfast
Kontrol akses fisik yang diaudit sama pentingnya dengan jenis keamanan ini dengan kontrol akses logis yang diaudit. Operasi penandatanganan seharusnya tidak memerlukan hak istimewa pada kotak (bahwa kontrol ditangani oleh persyaratan any-n-from-m), sehingga pemegang kata sandi root tidak boleh ada di sana sama sekali ketika keysigning sedang terjadi. (S) ia akan diperlukan untuk kegiatan pemeliharaan sistem, tetapi ini harus dilakukan sesuai dengan skrip pra-tertulis yang tepat, oleh seseorang selain penulis skrip, dan diaudit secara real-time oleh orang ketiga yang berpengetahuan luas.
MadHatter mendukung Monica
16

Satu keuntungan besar adalah menjaga kunci CA pribadi pada komputer khusus sepenuhnya terputus dari jaringan. Anda kemudian akan menandatangani, dan mungkin juga menghasilkan, sertifikat baru pada mesin ini, dan kemudian menggunakan media fisik untuk mentransfer sertifikat baru dari mesin CA.

Pengaturan seperti itu tentu saja juga akan mencakup pertimbangan mengenai ketersediaan fisik alat berat, serta pembatasan pada media yang diizinkan. Tongkat USB yang sering bepergian mungkin bukan pilihan terbaik ...

(Ini merupakan contoh yang sangat jelas tentang pertukaran antara keamanan dan kenyamanan.)

andol
sumber
Airgap adalah tindakan pencegahan keamanan yang sangat baik, dan bahaya media yang dapat dipindahkan dapat dikurangi dengan mengatur kotak penandatanganan untuk tidak melakukan autorun apa pun, mengizinkan binari SUID atau dengan cara lain memercayai executable pada media tersebut.
MadHatter mendukung Monica
Ini dapat dioptimalkan lebih lanjut dengan menggunakan kartu pintar untuk menghasilkan, menyimpan, dan menggunakan kunci. Pikirkan kartu pintar sebagai mesin khusus yang memiliki beberapa perlindungan terhadap gangguan (pada dasarnya, chip lebih baik pecah daripada menyerah kunci, yang sulit dilakukan dengan sistem yang lebih kompleks) dan yang memiliki antarmuka yang cukup sederhana sehingga stack protokol bisa diaudit dengan benar.
Simon Richter
Saya mendukung saran smartcard, tetapi ada risiko di sana. Ketika kunci hanya dapat berada di satu tempat, hanya satu perangkat keras yang harus gagal menyebabkan kunci tidak dapat diakses. Saya pikir satu atau lebih kartu pintar dapat membentuk bagian penting dalam pembuatan dan penyimpanan kunci yang aman.
Slartibartfast
Mengenai masalah autorun. Dalam hal pengelola file gui, mungkin juga disarankan untuk eksplisit tentang hal itu tidak mencoba melakukan pratinjau cerdas / thumbnail file yang terdaftar. Meskipun tidak berbahaya itu sendiri dapat menjadi vektor serangan untuk kerentanan yang ada.
andol
Jika keamanan benar-benar penting, saya akan menggunakan banyak CD-R tulis-sekali.
Lie Ryan
15

Saya telah memilih dua jawaban lainnya, dan berkomentar tentang itu, karena saya pikir mereka berdua sangat baik. Jika Anda memutuskan untuk menggunakan keduanya, dan itu mungkin sesuai, saya sangat menyarankan agar berhati-hati dalam pembuatan kunci, karena waktu terbaik untuk kompromi kunci tidak digunakan (di mana banyak tindakan pencegahan standar dan berulang yang dapat dilakukan) diterapkan) tetapi pada waktu pembuatan, yang menjadi sekali saja lebih mudah untuk ditumbangkan.

Panduan yang sangat baik untuk melakukan upacara pembangkitan kunci ini menguraikan beberapa protokol standar yang dapat membantu mengamankan pembangkitan kunci, meskipun mereka sebagian besar bermuara pada (a) memiliki semua yang disaksikan oleh beberapa auditor yang berpengetahuan, yang (b) membuat catatan kontemporer dari segala sesuatu yang dilakukan (c) sesuai dengan protokol yang ditentukan sebelumnya yang ditulis oleh orang lain selain pelaksana.

MadHatter mendukung Monica
sumber
Yapp, poin bagus tentang kunci gen awal.
andol
7

Bergantung pada seberapa serius Anda, Anda harus mempertimbangkan menggunakan perangkat keras FIPS 140-2 ( http://en.wikipedia.org/wiki/FIPS_140#Security_levels ) untuk menyimpan kunci CA dan mencadangkan kunci-kunci tersebut. Anda harus memiliki satu root CA dan satu CA perantara sehingga Anda dapat menjaga CA root Anda offline dan aman secara fisik. Root hanya diperlukan untuk memperbarui atau menandatangani CA perantara baru, sedangkan CA perantara tetap online untuk operasi sehari-hari. Seperti orang lain telah menyarankan, mengamankan generasi kunci dan manajemen kunci dengan n dari m kontrol adalah penting.

CPS VeriSign (sekarang Symantec) adalah referensi yang baik untuk bagaimana CA komersial menghasilkan dan melindungi kuncinya. Lihatlah bab 5 dan 6, khususnya: http://www.verisign.com/repository/cps/ . (Saya bekerja di VeriSign selama beberapa tahun)

Juga, NIST memiliki beberapa publikasi bagus tentang Manajemen Kunci ( http://csrc.nist.gov/publications/drafts/800-57/Draft_SP800-57-Part1-Rev3_May2011.pdf ) dan generasi, dan perusahaan Anda juga harus memiliki CPS yang menentukan kebijakan dan praktik yang Anda gunakan untuk mengelola CA Anda. IETF menyediakan templat yang baik: http://www.ietf.org/rfc/rfc2527.txt

Perry
sumber
1

Pertanyaan bagus dan beberapa jawaban bagus juga.

Ingatlah bahwa Anda berada di atas 90% di atas kebanyakan orang lain hanya dengan mempertimbangkan masalah ini alih-alih membabi buta maju.

Setelah mengingatnya dan menerima saran lain di sini, saya hanya akan menambahkan: jangan berpuas diri; awasi keamanan dan kriptografi berita untuk kedua masalah umum yang berkaitan dengan penerbitan sertifikat, pencabutan, cracking, dll. dan yang paling pasti pada kerentanan dan masalah dengan produk spesifik yang Anda gunakan untuk menghasilkan dan mengelola kunci Anda.

Terakhir: keamanan fisik. Membuat sesuatu 'bukti hacker' tidak ada gunanya jika saya bisa mendapatkan pekerjaan sebagai pembersih kontrak di gedung Anda dan kemudian meletakkan disk yang berisi sertifikat root Anda di saku saya suatu hari. Anda akan terkejut betapa banyak orang yang melewatkan itu.

Rob Moir
sumber
Senang mendengarnya @jmw - seperti yang saya katakan, Anda sudah di atas 90% atau bahkan mungkin 99% dari kebanyakan orang, dan sepertinya Anda sudah memiliki semuanya. Anda akan terkejut dengan jumlah orang yang menghabiskan berminggu-minggu dan berton-ton uang untuk melihat sisi perangkat lunak tanpa melakukan apa pun untuk mengamankan data secara fisik.
Rob Moir
Terima kasih, Anda memang benar: tetap terinformasi tentang risiko baru wajib untuk setiap admin. :-) tentang keamanan fisik: pusat data, di mana server kami berada, memiliki keamanan fisik yang tinggi. dengan demikian ada kata sandi bios && grub yang dikonfigurasi. partisi tempat penyimpanan barang CA juga dienkripsi. selanjutnya kunci CA itu sendiri dienkripsi. Dan nagios akan memicu peringatan "server down" jika terjadi pencurian fisik. Saya lebih peduli tentang eksploitasi "non-fisik". :-)
JMW