Apakah mungkin untuk mempercayai sertifikat di windows, tanpa memercayai akarnya CA?

13

Apakah mungkin untuk membuat windows mempercayai sertifikat, tanpa membuatnya mempercayai CA akar sebagai CA root yang dipercaya?

katakanlah saya memiliki rantai sertifikat berikut,

Dept-Root-CA
Dept-Intermediate-1
Server-Certificate

Saya ingin mempercayai Server-Certificate, tetapi tidak ingin mempercayai Dept-Root-CA karena dengan itu bisa menandatangani sertifikat apa pun dan server saya akan mempercayainya. Hanya karena saya bersedia mempercayai sertifikat pada Server-Sertifikat untuk operasi tertentu, tidak berarti saya bersedia mempercayai bahwa Dept-Root-CA telah diamankan dengan benar.

Terima kasih

bkr
sumber
Apa sebenarnya yang Anda ingin percayai untuk itu? HTTPS? Atau hal lain? Ada beberapa cara untuk menunjukkan bahwa Anda ingin menerima satu sertifikat tanpa menerima apa pun dari CA akar, tetapi tergantung pada apa yang Anda lakukan. (Anda masih akan mendapatkan kesalahan jika Anda mencoba untuk memvalidasi sertifikat itu)
Mark Henderson
Intinya ya. Jika itu kode khusus maka itu tidak akan menjadi masalah - tetapi ini menggunakan ADFS 2 dan satu-satunya hal yang dapat saya lakukan sehubungan dengan cara memperlakukan sertifikat adalah mengubah cara server mempercayai sertifikat itu. Ada kasus lain juga, tetapi ini hanya contoh saat ini.
bkr

Jawaban:

5

Tidak. Selama sertifikat mengatakan "Dikeluarkan oleh: xxx" maka Anda juga harus mempercayai xxx, sampai tuntas. Jika itu adalah sertifikat yang ditandatangani sendiri, Anda dapat menaruhnya di toko CA Root Tepercaya, dan karena dikeluarkan untuk dan dikeluarkan oleh entitas yang sama, maka sertifikat tersebut harus tepercaya.

Tetapi tidak, itu umumnya tidak dapat dilakukan atau disarankan untuk sepenuhnya menghindari seluruh tujuan keamanan berbasis sertifikat.

Ryan Ries
sumber
5
Saya takut akan hal itu. Saya tidak akan menyebutnya mengelak. Hanya karena saya ingin saluran aman untuk berbicara dengan mesin di grup organisasi yang berbeda tidak berarti saya ingin mempercayai CA mereka.
bkr
Benar ... tapi CA menandatangani sertifikat itu, dan tanpa sertifikat CA itu ujung lainnya hanya dapat terus mengubah sertifikat mereka.
SpacemanSpiff
6
Saya tidak yakin saya mengerti apa yang Anda katakan. Saya ingin mempercayai sertifikat mereka secara eksplisit. Jika itu diubah, saya ingin harus mempercayainya lagi secara eksplisit. Saya pada dasarnya ingin model kepercayaan sertifikat seperti yang ada di Firefox. Di Firefox, jika sertifikat itu tidak valid di bawah CA tepercaya yang ada, Anda dapat memilih untuk memercayainya - jika berubah, Anda harus memilih untuk mempercayai sertifikat baru karena belum dipercaya secara eksplisit.
bkr
2
just keep changing their certificateJika ujung jarak jauh mengubah sertifikat mereka, maka itu tidak akan cocok dengan yang Anda simpan. Jika Anda mengabaikan semua bisnis CA, bukankah Anda hanya memperlakukannya seperti kunci host SSH.
Zoredache
5
secara realistis mereka hanya akan mengubahnya sekali setiap 2 tahun. produk MS yang saya gunakan mengharuskan koneksi diamankan melalui https. jadi itu harus dipercaya. karena ditandatangani dengan CA mereka, saya harus mempercayai CA mereka - saya tidak ingin melakukan itu karena itu akan memungkinkan mereka untuk memalsukan sertifikat apa pun ke server saya, sebagai lawan memungkinkan mereka berinteraksi terbatas dengan nama host tertentu.
bkr
5

Yah .... Anda bisa menangkap informasi kepercayaan itu dengan cara lain.

Sayangnya, ini agak rumit.

Buat CA Anda sendiri, lalu buat penerbit penandatanganan silang Anda sendiri untuk Dept-Intermediate-1 (atau Dept-Root-CA) dengan menandatangani sertifikat mereka dengan CA Anda, mungkin menambahkan batasan domain. Jika Dep-Intermediate-1 "asli" dinonaktifkan (lebih disukai) atau tidak dikenal, windows akan menggunakan rantai kepercayaan Anda.

Lihat jawaban saya yang lain di sini: Batasi sertifikat root ke domain

Beginilah seharusnya sertifikat berfungsi, menggunakan tanda tangan digital untuk mewakili pernyataan kepemilikan kunci. Karena Anda ingin menegaskan sertifikat dan kunci milik server, Anda menandatanganinya sendiri, di bawah otoritas Anda, dan kemudian memberitahu sistem untuk mempercayai Anda.

Masih ada banyak utilitas dalam sertifikat tanpa hierarki CA, di atas apa yang disediakan kunci SSH; bagian dari itu adalah batasannya. Penggunaan utama, tanggal validitas, informasi pencabutan, batasan domain, dll. Bagian lainnya adalah informasi pengenal; server yang memiliki kunci, identitas penerbit, kebijakan CA yang diberlakukan, informasi penyimpanan kunci, dll.

davenpcj
sumber
Ini menarik. Saya harus mencari waktu untuk mencoba menyelesaikan proses ini dan melihat apakah saya dapat membuatnya bekerja.
bkr