Soru:
Bir X.509 "istemci sertifikası" ile normal bir SSL sertifikası arasındaki fark nedir?
Brandon Yarbrough
2011-01-04 00:38:30 UTC
view on stackexchange narkive permalink

Şirketimin bir dizi ticari müşteri hizmetiyle görüşeceği bir web hizmeti kuruyorum. SOAP kullanarak bilgi alışverişinde bulunacağız. Her iki tarafça da sağlanan SSL sertifikalarıyla kimlik doğrulamasını yapmak istiyorum, ancak sertifika türleri arasında temel bir fark olup olmadığı konusunda biraz kayboldum.

İnsanlar HTTPS hakkında konuşurken, Verisign veya başka bir yetkiliden bir SSL sertifikası. İstemci tarafı kimlik doğrulamasından bahsettiklerinde, bir X.509 sertifikası almaktan bahsederler. Bu iki kelime aynı şey için mi, biri diğerine dönüştürülebilir mi yoksa anlamadığım başka bir fark mı?

Dört yanıtlar:
Steve
2011-01-04 00:52:57 UTC
view on stackexchange narkive permalink

X509 Sertifikası, genel / özel anahtar çiftindeki bir tür genel anahtartır. Bu anahtar çiftleri, SSL yoluyla şifreleme veya tanımlama gibi farklı şeyler için kullanılabilir. SSL Sertifikaları, bir X509 sertifikası türüdür. SSL, trafiği şifrelemenin yanı sıra partiyi doğrulayarak çalışır (Verisign bu web sitesinin söyledikleri kişi olduğuna güvenir, bu nedenle muhtemelen siz de yapabilirsiniz). Verisign, bir Sertifika Yetkilisi (CA) görevi görür. CA'ya söylediği her şeyin doğru olarak alınması gerektiğine güvenilir (Bir CA'yı çalıştırmak büyük güvenlik hususları gerektirir). Bu nedenle, bir CA size gerçekten siz olduğunuza güvendiğini belirten bir sertifika verirse, bir kullanıcı sertifikanız / istemci sertifikanız olur.

Bu tür sertifikalardan bazıları her yerde kullanılabilir, ancak diğerleri yalnızca belirli etkinlikler için kullanılabilir.

Windows'ta bir sertifika açarsanız (IE'de SSL üzerinden bir şeye göz atın ve sertifika özelliklerine bakın) veya certmgr.msc'yi çalıştırıp bir sertifikayı görüntülerseniz, Ayrıntılar'a bakın sekmesi> Anahtar Kullanımı. Bu, sertifikanın ne için yapılmasına / kullanılmasına izin verileceğini belirleyecektir.

SOAP için sertifika iki şey için kullanılabilir: tanımlama ve şifreleme. Mesaj imzaları eklerseniz (mesaj karması) üç tane.

İstemci sertifikaları arayan istemciyi veya kullanıcıyı tanımlar. Uygulama bir SOAP talebinde bulunduğunda, talebi kimin yaptığını söylemek için sertifikayı web hizmetine verir.

Ah, harika, yani tüm SSL sertifikaları x509 sertifikaları, yani Verisign'dan bir SSL sertifikası alıp müşteri istekleri için kullanabilirim. Yine de, bir X509 sertifikasının kimlik veya kimlik doğrulamaya izin verecek şekilde kullanım ayarına sahip olması gerekmez. Harika, teşekkürler!
@CaptainAwesomePants, İstemci sertifikası olarak Verisign'ın SSL sertifikasını kullanabilirsiniz. Anahtar kullanımı İstemci Kimlik Doğrulamasını içermiyorsa, muhtemelen istemci kimlik doğrulaması için kabul edilmeyecektir.
Güzel cevap. Ancak girişiniz kafa karıştırıcı bir yanlış beyanda bulunuyor: "X509 Sertifikası bir tür genel / özel anahtar çiftidir." Özel anahtar oradaysa, onu yayınlayamazsınız ... Bunu düzeltebilir misiniz?
@nealmcb güncellendi. Doğru söylüyorsunuz, ancak .NET geliştirici dünyasında bir X509Certificate özel anahtarı da içerebilir. Sanırım yaptığım şeyi bu yüzden yazdım.
@CaptainAwesomePants aslında, tüm SSL / TLS sertifikaları X.509 sertifikası değildir. OpenPGP sertifikalarını kullanabilirsiniz (bkz. RFC 5081 http://tools.ietf.org/html/rfc5081), ancak oldukça nadirdir (bildiğim kadarıyla birkaç yığın onları destekler).
D.W.
2011-01-07 11:32:44 UTC
view on stackexchange narkive permalink

TLS'de, sunucunun bir özel anahtara ve bir sertifikaya (bazen sunucu sertifikası olarak da bilinir) sahip olması gerekir. Sunucu, sunucuyu tanımlar ve doğrular. İstemci isteğe bağlı olarak kendi özel anahtarına ve sertifikasına da sahip olabilir (genellikle bir istemci sertifikası olarak adlandırılır). Bir istemci sertifikası kullanılırsa, istemciyi tanımlar ve doğrular.

Web'de, HTTPS ile, genellikle sunucunun bir sunucu sertifikası vardır, ancak istemci sertifikaları kullanılmaz. Bu, istemcinin konuştuğu sunucuyu doğrulayabileceği, ancak sunucunun hangi istemciye bağlandığını doğrulayamayacağı anlamına gelir.

Bununla birlikte, birçok programlı bağlamda, genellikle her iki uç noktasının da birbirinin kimliğini doğrulamasını isteyeceksiniz. . Bu nedenle, hem sunucu sertifikalarını hem de müşteri sertifikalarını kullanmak isteyeceksiniz.

TLS'de tüm sertifikalar X.509 sertifikalarıdır. X.509, yalnızca verilerin biçimidir.

Sertifikalar, bir genel anahtar ve bir sertifika yetkilisinden (CA) imzası içerir. Web'de, tipik olarak web sitelerinin Verisign veya diğer bazı iyi bilinen CA'lar tarafından verilen (imzalanan) bir sunucu sertifikası vardır. Web tarayıcıları, yaklaşık 100 farklı CA'nın bir listesi ile birlikte gelir, önceden yüklenmiş ve en yaygın olarak kullanılan web siteleri, bu CA'lardan biri tarafından verilen bir sunucu sertifikasına sahiptir. Örneğin Verisign, her tarayıcının standart CA listesindeki CA'lardan biridir. Size sertifika vermelerini istiyorsanız Verisign sizden ücret alır.

Sertifikanızın standart bir CA tarafından imzalanmasının alternatifi, kendinden imzalı bir sertifika kullanabilmenizdir: Standart CA'lardan biri tarafından değil, sizin tarafınızdan (veya istediğiniz herhangi biri) tarafından verilen bir sertifika. Bu, web'de çok yaygın olarak kullanılmamaktadır, çünkü kendi kendine imzalanan sunucu sertifikaları, tarayıcıların, çoğu web sitesinin kaçınmaya çalıştığı, kullanıcıya uyarı iletişim kutuları açmasına neden olur. Bununla birlikte, programatik kullanımlar için, kendinden imzalı sertifikalar iyi sonuç verebilir. Kendinden imzalı sertifikalar kullanıyorsanız, Verisign'a para ödemek zorunda değilsiniz. Kendi kendinden imzalı sertifikalarınızı oluşturmak için OpenSSL'nin komut satırı araçlarını nasıl kullanacağınızla ilgili eğitimler bulabilirsiniz.

SSL, TLS ile eşanlamlıdır. (Teknik olarak SSL, standardın birkaç eski sürümünde kullanılan addır ve TLS, standartların daha yeni birkaç sürümü için yeni bir addır. Ancak birçok kişi bu iki terimi birbirinin yerine kullanır.)

Daha yararlı bilgiler için genel anahtar sertifikasıyla ilgili Wikipedia makalesini okumanızı tavsiye ederim.

(diğer cevapta olduğu gibi benzer yorum): Kesinlikle söylemek gerekirse, tüm TLS sertifikaları X.509 sertifikaları değildir ve yakın zamanda RFC 5081'in güncellendiğini fark ettim: RFC 6091 http://tools.ietf.org/html / rfc6091
Bir sunucunun istemci sertifikası kimlik doğrulamasını desteklemesi için, sunucunun sunucu SSL'yi de desteklemesi gerekir mi? İstemci sertifikası kimlik doğrulamasıyla ilgili öğreticileri okuduğumda, hepsi sunucunun bir SSL sertifikasına sahip olması gerektiğini gösteriyor gibi görünüyor.
@CMCDragonkai, evet. İstemci sertifikaları SSL / TLS ile kullanılır, bu nedenle sunucunun SSL / TLS kullanması gerekir. Gelecek için, lütfen yeni soruları mevcut bir sorunun altında yorum olarak değil, ayrı bir soruda sorun.
AviD
2011-01-04 04:07:53 UTC
view on stackexchange narkive permalink

"Normal" SSL sertifikaları genellikle X.509 sertifikalarıdır .
Ancak, bunlar yalnızca sunucu kimlik doğrulaması ve şifreleme için kullanılabilir: Sertifikaların özelliklerinden biri, belirlenmiş amacıdır ve genellikle farklı bir amaç için kullanamazsınız.
Bunun dışında, bir istemci sertifikası, sadece "İstemci Kimlik Doğrulaması" olarak belirlenmiş bir sunucu sertifikasıyla hemen hemen aynıdır.

İşlevsel olarak, çoğu zaman bazı sistemlerin yalnızca bir istemci sertifikası alt kümesini kabul ettiğini görürsünüz, örn. kendi CA tarafından verilmiş olanlar.

Jeff Ferland
2011-01-04 00:46:40 UTC
view on stackexchange narkive permalink

İşlevsel olarak aynıdır - genel bir RSA anahtarı ve bir yetkili tarafından imzalanmış tanımlayıcı bilgiler. Pratik olarak, sunucu anahtarlarınız genellikle söz konusu alanı tanımlayan ortak bir adla kurulur (örneğin * .wikimedia.org). Karşı tarafın kimlik doğrulama gereklilikleriyle eşleştiği sürece, kendi oluşturduğunuz sertifika da dahil olmak üzere, sizi bir sertifika kullanmanızı engelleyen herhangi bir şey olduğuna inanmıyorum.



Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 2.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...