it-swarm-id.com

Apa perbedaan antara "sertifikat klien" X.509 dan sertifikat SSL normal?

Saya menyiapkan layanan web di mana perusahaan saya akan berbicara dengan sejumlah layanan pelanggan bisnis. Kami akan bertukar informasi menggunakan SOAP. Saya ingin menangani otentikasi dengan sertifikat SSL yang disediakan oleh kedua belah pihak, tapi saya agak bingung apakah ada perbedaan mendasar antara jenis sertifikat.

Ketika orang berbicara tentang HTTPS, mereka berbicara tentang mendapatkan sertifikat SSL dari Verisign atau otoritas lain. Ketika mereka berbicara tentang otentikasi sisi klien, mereka berbicara tentang mendapatkan sertifikat X.509. Apakah kedua kata ini untuk hal yang sama, dapatkah satu diubah menjadi yang lain, atau ada perbedaan lain yang tidak saya pahami?

97

Sertifikat X509 adalah jenis kunci publik dalam pasangan kunci publik/pribadi. Pasangan kunci ini dapat digunakan untuk berbagai hal, seperti enkripsi melalui SSL, atau untuk identifikasi. Sertifikat SSL adalah jenis sertifikat X509. SSL bekerja dengan mengenkripsi lalu lintas serta memverifikasi pihak (Verisign percaya situs web ini sebagai orang yang mereka katakan, karena itu Anda mungkin juga bisa). Verisign bertindak sebagai Otoritas Sertifikat (CA). CA dipercaya karena semua yang dikatakannya harus dianggap benar (Menjalankan CA membutuhkan pertimbangan keamanan utama). Oleh karena itu jika CA memberi Anda sertifikat yang mengatakan bahwa itu percaya bahwa Anda benar-benar Anda, Anda memiliki sertifikat pengguna/sertifikat klien.

Beberapa jenis sertifikat ini dapat digunakan secara menyeluruh, tetapi yang lain hanya dapat digunakan untuk kegiatan tertentu.

Jika Anda membuka sertifikat di Windows (telusuri sesuatu di atas SSL di IE dan lihat properti sertifikat) atau jalankan certmgr.msc dan lihat sertifikat, lihat pada tab Detail> Penggunaan Kunci. Itu akan menentukan apa sertifikat diizinkan untuk dilakukan/digunakan.

Untuk SOAP, sertifikat dapat digunakan untuk dua hal: identifikasi dan enkripsi. Nah, tiga jika Anda menyertakan tanda tangan pesan (hashing pesan).

Sertifikat klien mengidentifikasi klien panggilan atau pengguna. Ketika aplikasi membuat SOAP permintaan, itu menyerahkan sertifikat ke layanan web untuk memberi tahu siapa yang membuat permintaan.

65
Steve

Dalam TLS, server harus memiliki kunci pribadi dan sertifikat (kadang-kadang dikenal sebagai sertifikat server). Sertifikat server mengidentifikasi dan mengotentikasi server. Klien secara opsional dapat memiliki kunci pribadi dan sertifikatnya sendiri (biasanya disebut sertifikat klien). Jika sertifikat klien digunakan, itu mengidentifikasi dan mengautentikasi klien.

Di web, dengan HTTPS, biasanya server memiliki sertifikat server tetapi sertifikat klien tidak digunakan. Ini berarti bahwa klien dapat mengotentikasi server apa yang ia ajak bicara, tetapi server tidak dapat mengautentikasi apa yang tersambung ke klien.

Namun, dalam banyak konteks program, Anda biasanya ingin kedua titik akhir untuk saling mengautentikasi. Oleh karena itu, Anda ingin menggunakan sertifikat server dan sertifikat klien.

Dalam TLS, semua sertifikat adalah sertifikat X.509. X.509 hanyalah format data.

Sertifikat termasuk kunci publik dan tanda tangan dari otoritas sertifikat (CA). Di web, biasanya situs web memiliki sertifikat server yang dikeluarkan (ditandatangani) oleh Verisign atau CA terkenal lainnya. Browser web hadir dengan daftar hampir 100 CA yang berbeda, pra-instal, dan situs web yang paling banyak digunakan memiliki sertifikat server yang dikeluarkan oleh salah satu CA tersebut. Misalnya, Verisign adalah salah satu CA di daftar standar CA setiap browser. Verisign membebankan biaya pada Anda, jika Anda ingin mereka mengeluarkan sertifikat kepada Anda.

Alternatif untuk mendapatkan sertifikat Anda ditandatangani oleh CA standar adalah bahwa Anda dapat menggunakan sertifikat yang ditandatangani sendiri: sertifikat yang dikeluarkan, bukan oleh salah satu CA standar, tetapi oleh Anda sendiri (atau siapa pun yang Anda inginkan). Ini tidak terlalu banyak digunakan di web, karena sertifikat server yang ditandatangani sendiri menyebabkan browser memunculkan kotak dialog peringatan kepada pengguna, yang sebagian besar situs web coba hindari. Namun, untuk penggunaan terprogram, sertifikat yang ditandatangani sendiri dapat berfungsi dengan baik. Dan jika Anda menggunakan sertifikat yang ditandatangani sendiri, Anda tidak perlu membayar uang Verisign. Anda dapat menemukan tutorial tentang cara menggunakan alat baris perintah OpenSSL untuk membuat sertifikat yang Anda tandatangani sendiri.

SSL adalah sinonim untuk TLS. (Secara teknis, SSL adalah nama yang digunakan dengan beberapa versi standar yang lebih lama, dan TLS adalah nama baru untuk beberapa versi standar yang lebih baru. Namun banyak orang menggunakan kedua istilah itu secara bergantian.)

Saya mendorong Anda untuk membaca artikel Wikipedia tentang sertifikat kunci publik untuk latar belakang yang lebih berguna.

36
D.W.

Sertifikat SSL "Normal" biasanya adalah sertifikat X.509.
Namun, ini hanya dapat digunakan untuk otentikasi dan enkripsi server: Salah satu atribut sertifikat adalah tujuan yang ditentukan, dan Anda biasanya tidak dapat menggunakannya untuk tujuan yang berbeda.
Selain itu, sertifikat klien hampir sama dengan sertifikat server, hanya ditunjuk sebagai "Otentikasi Klien".

Secara fungsional, Anda akan sering menemukan bahwa beberapa sistem memilih untuk menerima hanya sebagian dari sertifikat klien, mis. yang dikeluarkan oleh CA mereka sendiri.

15
AviD

Secara fungsional, mereka sama - kunci RSA publik dan mengidentifikasi informasi yang ditandatangani oleh otoritas. Secara praktis, kunci server Anda biasanya disiapkan dengan nama umum yang mengidentifikasi domain yang dimaksud (* .wikimedia.org, misalnya). Saya tidak percaya ada sesuatu yang membatasi Anda untuk menggunakan sertifikat, termasuk yang dihasilkan sendiri, asalkan cocok dengan persyaratan otentikasi pihak lain.

4
Jeff Ferland