Dr. Németh L. Zoltán SZTE, Számítástudomány Alapjai Tanszék 2018 ősz Kriptográfia Tizenkettedik előadás X.509 tanúsítványok Lecture slides by Lawrie Brown for “Cryptography and Network Security”, 4/e, by William Stallings, Chapter 1 “Introduction”. Dr. Németh L. Zoltán SZTE, Számítástudomány Alapjai Tanszék 2018 ősz
X.509 Hitelesítési szolgáltatások X.509 Authentication Service része part az ITU-T (International Telecommunication Union Telecommunication Standardization Sector) X.500-as katalógus szolgáltatások (directory service) szabványának. X.500: hogyan tároljunk (osztott) szervereken adatbázist a felhasználók adatairól hitelesítési szolgáltatásokhoz biztosít keretrendszert a katalógusban nyilvános kulcs tanúsítványokat (public-key certificates) tárolhatunk, azaz a nyilvános kulcs hitelességét egy hitelesítés szolgáltató (certification authority, CA) aláírása igazolhatja. hitelesítési protokollokat is definiál: egy utas (one-way) két utas (two-way) és három utas (tree-way) autentikációt. X.509 is part of the X.500 series of recommendations that define a directory service, being a server or distributed set of servers that maintains a database of information about users. X.509 defines a framework for the provision of authentication services by the X.500 directory to its users. The directory may serve as a repository of public-key certificates. In addition, X.509 defines alternative authentication protocols based on the use of public-key certificates. X.509 is based on the use of public-key cryptography and digital signatures. The standard does not dictate the use of a specific algorithm but recommends RSA. The X.509 certificate format is widely used, in for example S/MIME, IP Security and SSL/TLS and SET.
X.509 Hitelesítési szolgáltatások X.509 Authentication Service a megvalósítás alapja a nyilvános kulcsú titkosítás és a digitális aláírások egyetlen algoritmust sem köt ki a szabvány, de az RSA-t javasolja az X.509 tanúsítványok széles körben elterjedtek: HTTPS S/MIME (Secure Multipurpose Internet Mail Extensions) IPSec SSL/TLS SET (Secure Electronic Transaction) X.509 is part of the X.500 series of recommendations that define a directory service, being a server or distributed set of servers that maintains a database of information about users. X.509 defines a framework for the provision of authentication services by the X.500 directory to its users. The directory may serve as a repository of public-key certificates. In addition, X.509 defines alternative authentication protocols based on the use of public-key certificates. X.509 is based on the use of public-key cryptography and digital signatures. The standard does not dictate the use of a specific algorithm but recommends RSA. The X.509 certificate format is widely used, in for example S/MIME, IP Security and SSL/TLS and SET.
Az X.509 tanúsítványok adatai V, version: verzió szám (1, 2, vagy 3) SN, serial number: sorszám egyedi (a CA-n belül), azonosítja a tanúsítványt Signature Algorithm: az aláíró algoritmus azonosítója a Issuer: kibocsátó CA neve (X.500 szerint) Validity: érvényességi idő, tól – ig dátum Subject: a tanúsítvány alanya, azaz a tulajdonos (X.500) neve Subject Public Key Info: az alany nyilvános kulcsának adatai (algoritmus, paraméterek, maga a kulcs) Issuer unique identifier: opcionális, csak a v2-től Subject unique identifier: opcionális, csak a v2-től Extension fields: kiterjesztések, csak v3-ban Signature: a többi mező hash értékének az aláírása The X.509 certificate is the heart of the standard. There are 3 versions, with successively more info in the certificate - must be v2 if either unique identifier field exists, must be v3 if any extensions are used. These user certificates are assumed to be created by some trusted certification authority (CA) and placed in the directory by the CA or by the user. The directory server itself is not responsible for the creation of public keys or for the certification function; it merely provides an easily accessible location for users to obtain certificates. The certificate includes the elements shown. The standard uses the notation for a certificate of: CA<<A>> where the CA signs the certificate for user A with its private key.
Az X.509 tanúsítványok és a visszavonási listák (Revocation Lists) mezői Stallings Figure 14.4 shows the format of an X.509 certificate and CRL.
Példa egy X.509 tanúsítványra, amit maga a kibocsátó írt alá: Version: 3 (0x2) Serial Number: 1 (0x1) Signature Algorithm: md5WithRSAEncryption Issuer: C=ZA, ST=Western Cape, L=Cape Town, O=Thawte Consulting cc, OU=Certification Services Division, CN=Thawte Server CA/emailAddress=server-certs@thawte.com Validity: Not Before: Aug 1 00:00:00 1996 GMT Not After : Dec 31 23:59:59 2020 GMT Subject: C=ZA, ST=Western Cape, L=Cape Town, O=Thawte Consulting cc, OU=Certification Services Division, CN=Thawte Server CA/emailAddress=server-certs@thawte.com Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:d3: … :87:0d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:TRUE Signature Algorithm: md5WithRSAEncryption 07:fa: … 70:47
Hogyan juthatunk valakinek a tanusítványhoz? a hitelesítés szolgáltató feladata ellenőrizni a hitelesítésért hozzá forduló felhasználók azonosságát miután hitelesítette őket tanúsítványt bocsát ki az ellenőrzött adatok és a nyilvános kulcs összetartozásáról a tanúsítványt mindenki ellenőrizni tudja, aki hozzáfér a CA nyilvános kulcsához mivel csak a CA tud a magánkulcsával aláírni csak ő tud a nyilvános kulcsával ellenőrizhető tanúsítványt kibocsátani ezért ha az ellenőrzés sikeres, a tanúsítvány igazolja a benne foglalt nyilvános kulcs hitelességét mivel a tanúsítványt nem lehet hamisítani, azokat bátran tárolhatjuk egy publikus katalógusban, vagy elküldhetjük titkosítás nélkül is User certificates generated by a CA have the characteristics that any user with access to the public key of the CA can verify the user public key that was certified, and no party other than the certification authority can modify the certificate without this being detected. Because certificates are unforgeable, they can be placed in a directory without the need for the directory to make special efforts to protect them.
CA hierarchia ha a kommunikáló feleknek ugyanaz a hitelsítés szolgáltatójuk (és feltétellezük, hogy a CA-juk nyilvános kulcsában biztosak), akkor tudják egymás tanúsítványait ellenőrizni de sok felhasználó esetén egyetlen CA nem praktikus ezért a CA-knak hierahikus rendben egymást kell hitelesíteniük. Minden CA hitelesíti a kliensit/leszármazottait (forward certification) és az ősét (backward certification) minden kliensnek meg kell bíznia az ősének tanúsítványaiban így lehetővé válik bármely CA felhasználó számára minden ugyanabban a hiererhiában szereplő CA tanúsítványának az ellenőrzésére Jelölés: CA<<A>> jelölje A-nak a CA által aláírt tanúsítványát If both parties use the same CA, they know its public key and can verify others certificates. If not, then there has to be some means to form a chain of certifications between the CA's used by the two parties, by the use of client and parent certificates. It is assumed that each client trusts its parents certificates.
A CA hierarchia használata Stallings Figure 14.5 illustrates the use of an X.509 hierarchy to mutually verify clients certificates. Track chains of certificates: A acquires B certificate using chain: X<<W>>W<<V>>V<<Y>>Y<<Z>>Z<<B>> B acquires A certificate using chain: Z<<Y>>Y<<V>>V<<W>>W<<X>>X<<A>> A az alábbi lánc szerint ellenőrziheti B tanúsítványát: X<<W>> W<<V>> V<<Y>> Y<<Z>> Z<<B>>
Tanúsítvány visszavonás Certificate Revocation a tanúsítványoknak meghatározott érvényességi idejük van de szükség lehet ennél korábbi visszavonásukra, pl. ha a felhasználó magánkulcsa kompromittálódott vagy elveszett a felhasználót, már nem hitelesíti az adott CA a CA tanúsítványai kompromittálódtak Minden CA egy listát köteles vezetni az általa kiadott, érvényességük lejárta előtt visszavont tanúsítványokról: ez a CA tanúsítvány visszavonási listája (Certificate Revocation List , CRL) a tanúsítvány ellenőrzéséhez, annak a CA tanúsítvány visszavonási listájával való összevetése is hozzátartozik! A certificate includes a period of validity. Typically a new certificate is issued just before the expiration of the old one. In addition, it may be desirable on occasion to revoke a certificate before it expires, for one of a range of reasons, such as those shown above. To support this, each CA must maintain a list consisting of all revoked but not expired certificates issued by that CA, known as the certificate revocation list (CRL). When a user receives a certificate in a message, the user must determine whether the certificate has been revoked, by checking the directory CRL each time a certificate is received, this often does not happen in practice.
X.509 hitelesítési eljárások (Authentication Procedures) Az X.509 három alternatív hitelesítési eljárást is kínál, ezek: Egy utas hitelesítés (One-Way Authentication) egyirányú üzenetküldéshez, pl. e-mail Két utas hitelesítés (Two-Way Authentication) kölcsönös interaktív kapcsolathoz időbélyegzőkkel Három utas hitelesítés (Three-Way Authentication) kölcsönös interaktív kapcsolathoz időbélyegzők (és így szinkronizált órák) használata nélkül mind a nyilvános kulcsú aláírásokon (public-key signatures) alapszanak feltesszük, hogy a felek egymás nyilvános kulcsát ismerik (pl. katalógusból lekérik, vagy a tanúsítványukat egymásnak elküldik) X.509 also includes three alternative authentication procedures that are intended for use across a variety of applications, used when obtaining and using certificates. 1-way for unidirectional messages (like email), 2-way for interactive sessions when timestamps are used, 3-way for interactive sessions with no need for timestamps (and hence synchronised clocks). See Stallings Figure 14.6 for details of each of these alternatives.
Egy utas autentikáció 1 db üzenet: (A->B) melyben ellenőrizhető: A identitása, és hogy valóban A feladó az üzenet címzettje valóban B az üzenet integritása és eredetisége (azaz nem visszajátszás) az üzenetben szerepelni kell: egy időbélyegnek: tA, egy nonce-nak: rA , B azonosítójának: IDB, melyeket A ír alá az üzenetben további nyilvános információ is küldhető B-nek: sgnData (hitelesített adat) és titkos információ is, pl. egy kapcsolatkulcs Kab (persze titkosítva) One way authentication involves a single transfer of information from one user (A) to another (B), and establishes the details shown above. Note that only the identity of the initiating entity is verified in this process, not that of the responding entity. At a minimum, the message includes a timestamp ,a nonce, and the identity of B and is signed with A’s private key. The message may also include information to be conveyed, such as a session key for B.
A visszajátszás detektálása az időbélyegben szerepel: a készítési idő (generation time), ez opcionális a lejárati idő (expiration time) ez a nonce segítségével lehetővé teszi a visszajátszás felismerését a nonce-nak a egyedinek kell lennie a lejárati időn belül így B el tudja tárolni a nonce-ot (a lejárati időig) és vissza tud utasítani minden olyan üzenetet, mely a lejárati időn belül már ismert nonce-al érkezik One way authentication involves a single transfer of information from one user (A) to another (B), and establishes the details shown above. Note that only the identity of the initiating entity is verified in this process, not that of the responding entity. At a minimum, the message includes a timestamp ,a nonce, and the identity of B and is signed with A’s private key. The message may also include information to be conveyed, such as a session key for B.
Két utas autentikáció 2 db üzenet (A->B és B->A) mely az előzőn túl biztosítja: B identitását, és hogy a válasz B-től jött a válasz címzettje valóban A a válasz integritását és eredetiségét a válasz (B->A) tartalmazza az A előző nonce-ját: rA egy időbélyeget: tB A azonosítóját: IDA és egy másik nonce-ot B-től: rB és még más is lehet a válaszbban pl: Kba Two-way authentication thus permits both parties in a communication to verify the identity of the other, thus additionally establishing the above details. The reply message includes the nonce from A, to validate the reply. It also includes a timestamp and nonce generated by B, and possible additional information for A.
Három utas autentikáció 3 üzenet (A->B, B->A, A->B) melyek kölcsönös hitelesítést biztosítanak szinkronizált órák nélkül a két utas autentikáció és még egy A-> B üzenet, melyben A visszaküldi B-nek az rB nonce-ot aláírva így nem kell az időbélyegeket ellenőrizni, vagy bennük megbízni a kibocsátott nonce-ok ellenőrzésével a visszajátszás kivédhető Three-Way Authentication includes a final message from A to B, which contains a signed copy of the nonce, so that timestamps need not be checked, for use when synchronized clocks are not available.
X.509 autentikáviós eljárások
X.509 3. verzió a gyakorlat során felismerték, hogy a tanúsítványban több adatot is rögzíteni kell, pl. email/URL, házirend részletek (policy details), felhasználhatósági megszorítások (usage constraints) de ahelyett, hogy konkrétan elneveznénk a használható új mezőket célszerűbb általánosan kiterjesztésként (extension) definiálni őket egy kiterjesztés az alábbiakból áll: a kiterjesztés azonosítója (extension identifier) a kritikusság indikátor (criticality indicator) Ha egy kiterjesztés kritikus, akkor az azt nem ismerő protokollok sem fogadhatják el a tanúsítványt! a kiterjesztés értéke (extension value) The X.509 version 2 format does not convey all of the information that recent design and implementation experience has shown to be needed. Rather than continue to add fields to a fixed format, standards developers felt that a more flexible approach was needed. X.509 version 3 includes a number of optional extensions that may be added to the version 2 format. Each extension consists of an extension identifier, a criticality indicator, and an extension value. The criticality indicator indicates whether an extension can be safely ignored or not (in which case if unknown the certificate is invalid).
Néhány fontos tanúsítvány kiterjesztés kulcs és házirend információk pl. a kulcs azonosítója (több kulcsa lehet egy felhasználónak vagy CA-nak, a magánkulcs hamarabb lejárhat stb.) a házirend mondja meg, hogy a kulcs mire használható, pl. csak adott összegnél kisebb vásárlás esetén fogadható el, csak e-mail aláírására jó, szoftver hitelesítésére is alkalmas, stb. a tanúsítvány alanyának és kibocsátójának jellemzői alternatív nevek támogatása, beosztás, más formátumok stb. a tanúsítvány út korlátozások korlátozások, melyekkel egy CA egy másik CA tanúsítványait használhatja pl. a legyegyszerűbb extension mező, hogy a tanúsítvány birtokosa CA-e vagy sem (ez kritikus mező) The certificate extensions fall into three main categories: key and policy information - convey additional information about the subject and issuer keys, plus indicators of certificate policy subject and issuer attributes - support alternative names, in alternative formats, for a certificate subject or certificate issuer and can convey additional information about the certificate subject certification path constraints - allow constraint specifications to be included in certificates issued for CA’s by other CA’s
PKI, Public Key Infrastructure a PKIX modell RFC 2822 (Internet Security Glossary) defines public-key infrastructure (PKI) as the set of hardware, software, people, policies, and procedures needed to create, manage, store, distribute, and revoke digital certificates based on asymmetric cryptography. The IETF Public Key Infrastructure X.509 (PKIX) working group has setup a formal (and generic) model based on X.509 that is suitable for deploying a certificate-based architecture on the Internet. Stallings Figure 14.7 shows the interrelationship among the key elements of the PKIX model, and lists the various management functions needed.
Hogyan szerezhetsz saját X.509 tanúsítványt? a hitelesség szolgáltatóra azért van szükség, hogy valóban felelősséget is vállaljon az általa történt hitelesítésekért ezért a hitelesítés általában a tanúsítvány hatáskörétől függően pénzbe kerül Magyarországon a hitelesítés szolgáltatók felügyeletét a Nemzeti Hírközlési Hatóság látja el, webhelyén www.nhh.hu megtalálható valamennyi Magyarországon bejegyzett, tanúsítvány kiadásával foglalkozó cég fontosabb adata. Avagy ingyenes tanúsítvány igényelhető a CaCert-től: www.cacert.org az e-mail címedet tudod hitelesíteni, majd már hitelesített személyek személyes találkozás során, 2 igazolvány alapján rendelhetik a nevedet is a tanúsítványhoz
További információk tanúsítványokról Test SSL (and certificates) https://www.ssllabs.com Let’s encrypt https://letsencrypt.org/about/ Extended Validation Certificates, leírás https://scotthelme.co.uk/are-ev-certificates-worth-the-paper-theyre-written-on/ Certificate and Public Key Pinning https://www.owasp.org/index.php/Certificate_and_Public_Key_Pinning
Felhasznált irodalom William Stallings: Cryptography and Network Security, 4th Edition, Prentice Hall, 2006. (Chapter 14) Lawrie Brown előadás fóliái (Chapter 14) KIKERES Fogalomtár 3.0 www.fogalomtar.hu