Start Sicherheit Zertifikate
07 | 09 | 2010
Zertifikate
Zertifikate - technik
Beitragsseiten
Zertifikate
Funktionsweise
Sicherheitsprotokolle
Technik
Alle Seiten

Zertifikatsaufbau nach X.509v3

Wie sieht so ein X.509v3-Zertifikat eigentlich aus?

Wie oben bereits schon erwähnt, könnt Ihr euch unter Windows (Internetoptionen) die installierten Zertifikate ansehen. Diese Zertifikate sind alle nach dem X.509-Format aufgebaut.

So ein X.509v3-Zertifikat besteht aus folgendem ASN.1 kodierten Format:

Certificate ::= SEQUENCE {

tbsCertificate TBSCertificate,

signatureAlgorithm AlgorithmIdentifier,

signature BIT STRING }

Die Struktur "tbsCertificate" beinhaltet euere Daten (z. B. Name), die mit den Signaturalgorithmus "signatureAlgorithm" signiert werden. Die signierten Daten werden dann in dem Feld "signature" abgelegt.

In der Struktur "tbsCertificate" sind nun folgende Informationen ASN.1 kodiert abgelegt:

TBSCertificate :: = SEQUENCE {

version [0] EXPLICIT Version DEFAULT v1,

serialNumber CertificateSerialNumber,

signature AlgorithmIdentifier,

issuer Name,

validity Validity,

subject Name,

subjectPublicKeyInfo SubjectPublicKeyInfo,

issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL

subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL

extensions [3] EXPLICIT Extensions OPTIONAL }

Feld Bedeutung
version Beinhaltet die Versionsnummer des verwendeten Zertifikats

Version ::= INTEGER { v1(0), v2(1), v3(2) }
serialNumber Identifiziert dieses Zertifikat entsprechend der CA Aussteller

CertificateSerialNumber ::= INTEGER
signature Dieses Feld enthält den Signaturalgorithmus, mit dem die Signatur gebildet wird
Name Bezeichnung der CA (Zertifizierungsstelle) nach X.500-DistinguishedNames
Validity Ist der Gültigkeitszeitraum des Zertifikats

Validity ::= SEQUENCE {

notBefore Time,

not After Time }

Time ::= CHOICE {

utcTime UTCTime,

generalizedTime GeneralizedTime }

subject Daten des Zertifikatsinhabers nach X.500-DistinguishedNames
subjectPublicKeyInfo public Key des Zertifikatsinhabers

SubjectPublicKeyInfo ::= SEQUENCE {

algorithm AlgorithmIdentifier,

subjectPublicKey BIT STRING }

issuerUniqueID

subjectUniqueID

Optionale Parameter
extensions Optionale Zertifikatserweiterungen

Format des X.500-DistinguishedNames:

Name ::= CHOICE { RDNSequence }

RDNSequence ::= SEQUENCE OF RelativeDistinguishedName

RelativeDistinghuishedName ::= SET OF AttributeTypeAndValue

AttributeTypeAndValue ::= SEQUENCE {

AttributeType,

AttributeValue }

AttributeType ::= OBJECT IDENTIFIER

AttributeValue ::= ANY DEFINED BY AttributeType


Infos zu den Extensions nach x.509v3

Was sind eigentlich Zertifikatserweiterungen (Extensions)?

Extensions sind im Prinzip frei definierbare Felder in einem X.509-Zertifikat. Jeder Zertifikatsaussteller kann sich im Rahmen gewisser Formatvorschriften zusätzliche Informationen ins Zertifikat (Extensions) einbringen.

Extensions sind ab der Version 3 im X.509-Zertifikat zugelassen. Damit die Software die Extensions richtig auswerten kann, muss die Versionsnummer des Zertifikats auf 3 gesetzt werden (intern 0, 1 oder 2).

Existieren bereits Extensions?

Es gibt schon vordefinierte Standard- und Private-Extensions bei denen noch unter den Critical und Non-Critical Typen unterschieden wird.

Als Critical gesetzte Extensions müssen in jedem Fall von der Software ausgewertet werden. Ist dies nicht möglich, darf das Zertifikat nicht verwendet werden. Non-Critical Extensions können aber müssen nicht unbedingt berücksichtigt werden.

Achtung:

Wenn Du eigene CriticalExtensions definierst, wird jede andere Software Dein Zertifikat mit einem Fehler zurückweisen. In der Regel solltest Du Extensions immer als Non-Critical definieren, damit auch andere Programme Dein Zertifikat verarbeiten können.

Wenn Ihr euch mal ein X.509-Zertifikat in verschiedenen Versionen (1, 2 oder 3) ansehen wollt, könnt Ihr unter Windows95/98/NT unter dem Menüpunkt Start->Einstellungen->Systemsteuerung->Internetoptionen->Inhalt->Zertifikate euch ein paar Zertifikate mit verschiedenen Extensions betrachten.

Folgende Tabelle gibt einen Überblick über die vordefinieten Extensions, die in dieser Form nicht nochmals definiert werden dürfen:

Standardextensions PrivateExtensions
Authority Key Identifiert

Subject Key Identifier

Key Usage

Private Key Usage Period

Certificate Policies

Policy Mappings

Subject Alternative Name

Issuer Alternative Name

Subject Directory Attributes

Basic Constraints

Name Constraints

Policy Constraints

CRL Distributions Points

Extended Key Usage Field

Authority Information Access

Telesec-Information (Draft) zu SigG und PKS II

Die Telesec stellt hier 2 Draft-Dokumente zum Thema Zertifikatsformate im Zertifizierungsbereich PKS II bzw. Zertifikatesformate im Zertifizierungsbereich Signaturgesetz (SigG) zur Verfügung. Die beiden Dokumente kannst Du Dir als WinWord-DOC-Datei downloaden.



 
Schlagzeilen

Mit dem Neustart unserer Homepage bieten wir exklusive den ultimativen Datenvernichter DateiEx ultra an. Weitere Infos...

Werbung
Conrad Electronic