X.509

Kriptografide, X.509 açık anahtar sertifikalarının formatını tanımlayan bir standarttır. X.509 sertifikaları, internette gezinmek için güvenli protokol olan HTTPS'nin temeli olan TLS/SSL dahil olmak üzere birçok internet protokolünde kullanılmaktadır. Elektronik imzalar gibi çevrimdışı uygulamalarda da kullanılırlar. Bir X.509 sertifikası bir açık anahtar ve bir kimlik (bir ana bilgisayar adı veya bir kuruluş veya bir birey) içerir ve bir sertifika yetkilisi tarafından imzalanır veya kendinden imzalı olarak imzalanır. Sertifika güvenilir bir sertifika yetkilisi tarafından imzalandığında veya başka yollarla doğrulandığında, bu sertifikayı tutan biri, başka bir tarafla güvenli iletişim kurmak için sertifikanın içerdiği açık anahtara güvenebilir veya ilgili özel anahtar ile dijital olarak imzalanmış belgeleri doğrulayabilir.
Sertifikaların formatının yanı sıra, X.509 artık geçerli olmayan sertifikalar hakkında bilgi dağıtmak için sertifika iptal listelerini, ve sertifikaların, diğer sertifikalar tarafından imzalanan ve sonunda bir güvenilir bağlantıya ulaşan ara sertifika yetkilisi sertifikaları tarafından imzalanmasını sağlayan bir sertifika yolu doğrulama algoritmasını belirtir.
X.509, Uluslararası Telekomünikasyon Birliği Standardizasyon sektörü (ITU-T) tarafından tanımlanmıştır ve bir başka ITU-T standardı olan ASN.1'e dayanmaktadır.

Tarihi ve Kullanımı

X.509, başlangıçta 3 Temmuz 1988'de yayınlandı ve X.500 standardı ile birlikte başlatıldı. Sertifika vermek için sertifika yetkililerinin sıkı bir hiyerarşik sistemi olduğunu varsayar. Bu, herkesin (sadece özel sertifika yetkililerinin değil) imzalayabileceği ve dolayısıyla başkalarının anahtar sertifikalarının geçerliliğini onaylayabileceği PGP gibi güven ağı modelleri ile çelişir. X. 509'un 3. versiyonu, ağ köprüleri ve örgü topolojileri gibi diğer topolojileri destekleme esnekliğini içerir. Eşler arası, OpenPGP benzeri bir güven ağında kullanılabilir, ancak 2004'ten bu yana nadiren kullanılmıştır. X.500 sistemi sadece devlet kimliği bilgi paylaşımı antlaşması yerine getirilmesi amacıyla egemen ülkeler tarafından uygulanmıştır ve IETF'nin açık anahtar altyapısı (X.509), veya PKIX, çalışma grubu, standardı İnternet'in daha esnek bir örgütleşimine uyarlamıştır. Aslında, X.509 sertifikası genellikle IETF'nin PKIX sertifikasına ve RFC 5280'de belirtilen ve genellikle Açık Anahtar Altyapısı (X.509) a karşılık olarak PKIX olarak adlandırılan X.509 v3 sertifika standardının sertifika iptal listesi profiline refere eder.

Sertifikalar

X.509 sisteminde, imzalı bir sertifika isteyen bir kuruluş bir sertifika imzalama isteği yoluyla bir tane ister.
Bunu yapmak için, önce bir anahtar çifti oluşturur, özel anahtarı gizli tutar ve sertifika imzalama isteğini imzalamak için kullanır. Bu başvuru sahibini ve başvuru sahibinin sertifika imzalama isteğinin imzasını ve sertifikanın verildiği Distinguished Name (DN)'i doğrulamak için kullanılacak açık anahtarını tanımlayan bilgiyi içerir. Sertifika imzalama isteğine sertifika yetkilisi tarafından talep edilen diğer kimlik belgeleri veya kimlik kanıtları eşlik edebilir.
Sertifika yetkilisi, belirli bir ayırt edici isme açık bir anahtarı ilişkilendiren bir sertifika verir.
Bir kuruluşun güvenilen kök sertifikaları, tüm çalışanlara şirket PKI sistemini kullanabilmeleri için dağıtılabilir. Internet Explorer, Firefox, Opera, Safari ve Chrome gibi tarayıcılar önceden kurulmuş olan önceden belirlenmiş bir kök sertifika seti ile birlikte gelir, böylece büyük sertifika yetkililerinden SSL sertifikaları anında çalışır; Aslında tarayıcıların geliştiricileri, tarayıcıların kullanıcıları için hangi sertifika yetkililerinin güvenilir üçüncü taraf olduğunu belirler. Örneğin, Firefox, dahil edilen sertifika yetkililerinin listesini içeren bir CSV ve / veya HTML dosyası sağlar.
X.509 ve RFC 5280 ayrıca sertifika iptal listesi (CRL) uygulamaları için standartlar içerir. Sertifikanın geçerliliğini kontrol etmenin başka bir IETF onaylı yolu da, Çevrimiçi Sertifika Durum Protokolüdür (OCSP). Firefox 3 en az Vista ve sonrası Windows sürümlerinde olduğu gibi, OCSP'nin varsayılan olarak denetlenmesini sağlar.

Örnek 1: İki PKI arasında kök sertifika yetkilisi (CA) düzeyinde çapraz sertifikasyon

PKI 2'de ("Kullanıcı 2" gibi) bulunan kullanıcı sertifikalarının PKI 1 tarafından güvenilmesini sağlamak için CA1, CA2'nin açık anahtarını içeren bir sertifika (cert2.1) oluşturur.
Şimdi hem "cert2 hem de cert2.1 (yeşil) aynı özneye ve açık anahtara sahiptir, bu nedenle cert2.2 (Kullanıcı 2) için iki geçerli zincir vardır: " cert2.2 → cert2 "ve" cert2.2 → cert2. 1 → cert1".
Benzer şekilde, CA2, CA1'in açık anahtarını içeren bir sertifika (cert1.1) oluşturabilir, böylece PKI 1'de ("Kullanıcı 1" gibi) bulunan kullanıcı sertifikaları PKI 2 tarafından güvenilir hale gelir.

Örnek 2: CA sertifikası yenileme

Understanding Certification Path Construction (PDF). PKI Forum. Eylül 2002. To allow for graceful transition from the old signing key pair to the new signing key pair, the CA should issue a certificate that contains the old public key signed by the new private signing key and a certificate that contains the new public key signed by the old private signing key. Both of these certificates are self-issued, but neither is self-signed. Note that these are in addition to the two self-signed certificates (one old, one new).
Hem cert1 hem de cert3 aynı açık anahtarı (eskisinden) içerdiğinden, cert5 için iki geçerli sertifika zinciri vardır: "cert5 → cert1" ve "cert5 → cert3 → cert2" ve cert6 için de benzer şekildedir. Bu, eski kullanıcı sertifikalarının (cert5 gibi) ve yeni sertifikaların (cert6 gibi) yeni CA anahtarlarına geçiş sırasında yeni kök CA sertifikasına sahip olan veya güvenilen bağlantı olarak eski tarafa kayıtsız bir şekilde güvenebilmesini sağlar.

Örnek X.509 sertifikaları

Bu, wikipedia.org ve diğer bazı Wikipedia web siteleri tarafından kullanılan kodu çözülmüş bir X.509 sertifikası örneğidir. Veren alanında belirtildiği gibi GlobalSign tarafından verilmiştir. Özne alanı Wikipedia'yı bir kurum olarak tanımlar ve Özne Alternatif Adı alanı, kullanılabileceği ana makine adlarını açıklar. Özne Açık Anahtar Bilgisi alanında bir ECDSA açık anahtarı bulunur, alt kısımdaki imza ise GlobalSign'ın RSA özel anahtarı ile oluşturulmuştur.

Ara sertifika

Bu, bir sertifika yetkilisine ait bir ara sertifikanın örneğidir. Bu sertifika, yukarıdaki son varlık sertifikasını imzaladı ve aşağıdaki kök sertifika tarafından imzalandı. Bu ara sertifikanın özne alanı, imzaladığı son varlık sertifikasının veren alanı ile eşleşmektedir. Ayrıca, aradaki "özne anahtar tanımlayıcısı" alanı, son varlık sertifikasındaki "yetki anahtarı tanımlayıcısı" alanıyla eşleşir.
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            04:00:00:00:00:01:44:4e:f0:42:47
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA
        Validity
            Not Before: Feb 20 10:00:00 2014 GMT
            Not After : Feb 20 10:00:00 2024 GMT
        Subject: C=BE, O=GlobalSign nv-sa, CN=GlobalSign Organization Validation CA - SHA256 - G2
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:c7:0e:6c:3f:23:93:7f:cc:70:a5:9d:20:c3:0e:
                    ...
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE, pathlen:0
            X509v3 Subject Key Identifier:
                96:DE:61:F1:BD:1C:16:29:53:1C:C0:CC:7D:3B:83:00:40:E6:1A:7C
            X509v3 Certificate Policies:
                Policy: X509v3 Any Policy
                  CPS: https://www.globalsign.com/repository/

            X509v3 CRL Distribution Points:

                Full Name:
                  URI:http://crl.globalsign.net/root.crl

            Authority Information Access:
                OCSP - URI:http://ocsp.globalsign.com/rootr1

            X509v3 Authority Key Identifier:
                keyid:60:7B:66:1A:45:0D:97:CA:89:50:2F:7D:04:CD:34:A8:FF:FC:FD:4B

    Signature Algorithm: sha256WithRSAEncryption
         46:2a:ee:5e:bd:ae:01:60:37:31:11:86:71:74:b6:46:49:c8:
         ...

Kök sertifikası

Bu, bir sertifika yetkilisini temsil eden, kendinden imzalı bir kök sertifika örneğidir. Veren ve özne alanları aynıdır ve imzası kendi açık anahtarı ile doğrulanabilir. Güven zincirinin geçerliliği burada bitmelidir. Doğrulama programının güven deposunda bu kök sertifika varsa, son varlık sertifikası TLS bağlantısında kullanılmak üzere güvenilir kabul edilebilir. Aksi takdirde, son varlık sertifikası güvenilmez olarak kabul edilir.
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            04:00:00:00:00:01:15:4b:5a:c3:94
    Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA
        Validity
            Not Before: Sep  1 12:00:00 1998 GMT
            Not After : Jan 28 12:00:00 2028 GMT
        Subject: C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:da:0e:e6:99:8d:ce:a3:e3:4f:8a:7e:fb:f1:8b:
                    ...
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                60:7B:66:1A:45:0D:97:CA:89:50:2F:7D:04:CD:34:A8:FF:FC:FD:4B
    Signature Algorithm: sha1WithRSAEncryption
         d6:73:e7:7c:4f:76:d0:8d:bf:ec:ba:a2:be:34:c5:28:32:b5:
         ...

Güvenlik

Bruce Schneier, Peter Gutmann ve diğer güvenlik uzmanları tarafından PKI sorunları hakkında bir dizi yayın vardır.

Kriptografik zayıflıklar için düzeltmeler

X.509 imzalarını oluşturmak için özet çarpışması kullanmak, saldırganın sertifika yetkilisinin imzalayacağı verileri tahmin edebilmesini gerektirir. Bu, CA tarafından imzalanan sertifikalarda, tipik olarak seri numarasında rastgele bir bileşen üreterek hafifletilebilir. CA/Browser Forum, 2011'den bu yana Baseline Requirements Section 7.1'de seri numarası entropisine ihtiyaç duymuştur.
1 Ocak 2016 itibarıyla, Temel Koşul Gereksinimleri, SHA-1 kullanan sertifikaların verilmesini yasaklamıştır. 2017'nin başından itibaren, Chrome  ve Firefox, SHA-1 kullanan sertifikaları reddetmiştir. Mayıs 2017 itibarıyla hem Edge hem de Safari , SHA-1 sertifikasını reddetmiştir. Tarayıcı olmayan X.509 doğrulayıcıları, SHA-1 sertifikalarını henüz reddetmiyor.

PKIX Çalışma Grubu

1995 yılında, Ulusal Standartlar ve Teknoloji Enstitüsü ile birlikte İnternet Mühendisliği Görev Gücü, Açık Anahtar Altyapısı (X.509) çalışma grubunu oluşturdu. Haziran 2014'te  sonuçlanan çalışma grubu, genellikle "PKIX" olarak adlandırılmaktadır. X.509'un kullanımının dağıtılmasının ile ilgili RFC'ler ve diğer standartlar belgeler oluşturuldu. Özellikle, Internet protokollerinde X.509'un nasıl kullanılacağını tanımlayan RFC 3280 ve onun halefi RFC 5280 üretildi.

X.509 sertifikalarını kullanan büyük protokoller ve standartlar

TLS/SSL ve HTTPS, S/MIME (Güvenli Çok Amaçlı Internet Posta Uzantıları) ve WiFi kimlik doğrulaması için EAP-TLS yöntemi X.509'un RFC 5280 profilini kullanır. SMTP, POP, IMAP, LDAP, XMPP ve daha fazlası gibi TLS kullanan herhangi bir protokol, doğal olarak X.509'u kullanır. IPsec, RFC 4945'te tanımlanan kendi X.509 profilini kullanır.
OpenCable güvenlik belirtimi, kablo sektöründe kullanılmak üzere X.509'un kendi profilini tanımlar.
Akıllı kartlar ve TPM'ler gibi cihazlar genellikle kendilerini veya sahiplerini tanımlamak için sertifikalar taşırlar. Bu sertifikalar X.509 biçimindedir.
WS-Security standardı, kimlik doğrulamayı TLS aracılığıyla veya kendi sertifika profili aracılığıyla tanımlar. Her iki yöntem de X.509 kullanır.
Microsoft Authenticode kod imzalama sistemi, hangi bilgisayar programlarını kimin yaptığını tanımlamak için X.509'u kullanır.
OPC UA endüstriyel otomasyon iletişim standardı X.509 kullanmaktadır.
SSH genellikle "trust on first use" (ilk kullanımda güven) modelini kullanır ve sertifikalara ihtiyaç duymaz. Ancak, popüler OpenSSH uygulaması X.509 olmayan sertifika formatına dayanan CA imzalı bir kimlik modelini desteklemektedir.