CV-Extensions

Für selbstbeschreibende CV-Zertifikate (siehe CvCerts) können die in diesem Kapitel beschriebenen CV-Extensions verwendet werden.

Schematischer Aufbau:

<extensions>
    <extension>...</extension>
    <extension>...</extension>
    ...
</extensions>

Beispiel:

<extensions>
    <extension>
        <certificateDescription>
            <descriptionTypeOID>
                <oid>0.4.0.127.0.7.3.1.3.1.1</oid>
            </descriptionTypeOID>
            <termsOfUsage>
                <identName>id.terms</identName>
            </termsOfUsage>
        </certificateDescription>
    </extension>
    <extension>
        <terminalSector>
            <sectorPublicKey>
                <identName>publicKey</identName>
            </sectorPublicKey>
        </terminalSector>
    </extension>
</extensions>

In den folgenden Unter-Kapiteln sind die unterstützten Extensions beschrieben.

Certificate Description

Über die Extension „Certificate Description“ (OID: 0.4.0.127.0.7.3.1.3.1) können weiterführende Informationen in ein selbstbeschreibenendes CV-Zertifikat aufgenommen werden.

Im Template wird die Extension über das XML-Element <certificateDescription> beschrieben.

Die Extension „Certificate Description“ ist entweder durch einen Hash-Wert oder einen Satz mehrerer Felder mit weiteren Informationen zum Zertifikat (z.B. Nutzungsbedingung, Informationen zu Zertifikatsbesitzer und Zertifikatsaussteller) definiert. Die möglichen Felder für die Felder der Extension „Certificate Description“ sind in Unterelemente des XML-Elements „certificateDescription“ aufgeführt.

Unterelemente

Unterelemente des XML-Elements „certificateDescription“
Element-Name Erläuterung

descriptionTypeOID

OID des DescriptionType. Die angegebene OID wird in ein DER-kodiertes ASN1-Objekt umgewandelt.

termsOfUsage

Festlegung der Nutzungsbedingung (terms of usage). Wert des XML-Elements: valueType (siehe ValueType).

issuerName

Name des ZertifikatsausstellersWert des XML-Elements: valueType (siehe ValueType).

issuerURL

Url des Zertifikatsausstellers. Wert des XML-Elements: valueType (siehe ValueType).

subjectName

Informationen zum Zertifikatsbesitzer. Wert des XML-Elements: valueType (siehe ValueType).

subjectURL

Url des Zertifikatsbesitzers. Wert des XML-Elements: valueType (siehe ValueType).

hashValue

Legt einen – von den Feldern der Beschreibung unabhängigen - Hash-Wert für die Zertifikatsbeschreibung fest. Ist ein Hash-Wert definiert, so wird nur dieses Feld in die Beschreibung des Zertifikats übernommen.

Der Hash-Wert muss als Base64-kodierter String übergeben werden.

Beispiel:

<hashValue>
    <default>ra2v39392vr9rfrfra/a3/ASNFZ4kFQ0VniQ3w==</default>
</hashValue>

Wert des XML-Elements: valueType (siehe ValueType).

Beispiel:

<extension>
    <certificateDescription>
        <descriptionTypeOID>
            <oid>0.4.0.127.0.7.3.1.3.1.1</oid>
        </descriptionTypeOID>
        <termsOfUsage>
            <identName>id.terms</identName>
        </termsOfUsage>
    </certificateDescription>
</extension>

Terminal Sector

Über die Extension „Terminal Sector“ (OID: 0.4.0.127.0.7.3.1.3.2) kann ein selbstbeschreibendes CV-Zertifikat näher beschrieben werden. Die Extension kann zur Unterstützung einer eingeschränkten Identifizierung von Terminals verwendet werden.

Im Template wird die Extension über das XML-Element <terminalSelector> festgelegt. Die Extension wird entweder über einen Hash-Wert oder durch Angabe des verwendeten Signaturalgorithmus und gegebenenfalls des öffentlichen Schlüssels beschrieben.

Unterelemente

Unterelemente des XML-Elements „terminalSelector“
Element-Name Erläuterung

sectorPublicKey

Der verwendete öffentliche Schlüssel.

Der Schlüssel muss als Base64-kodierter String übergeben werden.

Wert des XML-Elements: valueType (siehe ValueType).

hashValue

Hash-Wert.

Der Hash-Wert muss als Base64-kodierter String übergeben werden.

Ist ein Hash-Wert definiert, so wird nur dieses Feld in die Beschreibung des Zertifikats übernommen.

Wert des XML-Elements: valueType (siehe ValueType).

Beispiel

<extension>
    <terminalSector>
        <algorithm><oid>1.3.14.3.2.26</oid></algorithm>
    </terminalSector>
</extension>

eID-Access

Über die Extension „eID-Access“ (OID: 0.4.0.127.0.7.3.1.2.2.1) kann ein selbstbeschreibendes CV-Zertifikat näher beschrieben werden. Die Extension kann zur zusätzlichen Autorisierung von eID-Zertifikaten verwendet werden.

Im Template wird die Extension über das XML-Element <eID-Access> festgelegt.

Eine Beschreibung der Definition ist in cvValueType zu finden.

Beispiel

<extension>
    <eID-Access>
        <definition>
            <Hex>
                <length>9</length>
                <default>55555500000000FFFF</default>
            </Hex>
        </definition>
    </eID-Access>
</extension>

Special Functions

Über die Extension „specialFunctions“ (OID: 0.4.0.127.0.7.3.1.2.2.2) kann ein selbstbeschreibendes CV-Zertifikat näher beschrieben werden. Die Extension kann zur zusätzlichen Autorisierung von eID-Zertifikaten verwendet werden.

Im Template wird die Extension über das XML-Element <specialFunctions> festgelegt.

Eine Beschreibung der Definition ist in cvValueType zu finden.

Beispiel

<extension>
    <specialFunctions>
        <definition>
            <Hex>
                <length>1</length>
                <default>F3</default>
            </Hex>
        </definition>
    </specialFunctions>
</extension>

Generic-Extension

Über die Extension „Generic-Extension“ können beliebige CV-Extensions für ein selbstbeschreibendes CV-Zertifikat definiert werden. Gemäß TR-03110 des BSI ist die ASN.1-Struktur einer CV-Extension folgendermaßen aufgebaut:

Extension ::= SEQUENCE \{
    objectIdentifier OBJECT IDENTIFIER,
    discretionaryData0 [0] IMPLICIT OCTET STRING,
    discretionaryData1 [1] IMPLICIT OCTET STRING OPTIONAL,
    …
    discretionaryDatax [x] IMPLICIT OCTET STRING OPTIONAL
    }

Die CARA Generic-Extension erlaubt die direkte explizite Angabe der OID der Extension (objectIdentifier) („oid“) und einer Liste von DiscretionaryData discretionaryDatax („dataObjects“) in der Extension. Für jedes DiscretionaryData Objekt kann die Tag-Nummer und der OctetString angegeben werden (siehe CvDataObjectType).

Für die Bildung der Extension ist entweder der Autor des Zertifikats-Templates oder das jeweilige CARA-Frontend verantwortlich.

Im Template wird die Extension über das XML-Element <genericExtension> beschrieben.

Unterelemente

Unterelemente des XML-Elements „terminalSelector“
Element-Name Erläuterung

oid

OID der Extension.

dataObjects

Liste von einem oder mehreren Elementen des Typs cvDataObjectType (siehe CvDataObjectType)
Mit jedem Element des Typs cvDataObjectType ist ein discretionaryData Objekt in der Extension definiert.

Beispiel

<extension>
    <genericExtension>
        <oid>0.4.0.127.0.7.3.1.3.2</oid>
        <dataObjects>
            <dataObject>
                <tag>80</tag>
                <content>
                    <Hex>
                        <length>2</length>
                        <default>F3AA</default>
                    </Hex>
                </content>
            </dataObject>
            <dataObject mandatory="false">
                <tag>81</tag>
                <content>
                    <Hex>
                        <length>2</length>
                        <identName>id.ge2</identName>
                    </Hex>
                </content>
            </dataObject>
        </dataObjects>
    </genericExtension>
</extension>