Health Professional Card

Transcription

Health Professional Card
Spezifikation des
elektronischen Heilberufsausweises
Teil II: HPC - Anwendungen und Funktionen
Version 2.3.2
05.08.2009
Bundesärztekammer
Kassenärztliche Bundesvereinigung
Bundeszahnärztekammer
Bundespsychotherapeutenkammer
Kassenzahnärztliche Bundesvereinigung
Bundesapothekerkammer
Deutsche Krankenhausgesellschaft
HPC-Spezifikation V2.3.2, Teil II
Seite 1 von 162
Editor: Ulrich Waldmann (Fraunhofer SIT)
Die technische Spezifikation für den Heilberufsausweis (HPC) und die Sicherheitsmodulkarte (SMC)
besteht aus folgenden Teilen:
Teil 1: Kommandos, Algorithmen und Funktionen der Betriebssystemplattform
Teil 2: HPC – Anwendungen und Funktionen
Teil 3: SMC – Anwendungen und Funktionen
HPC-Spezifikation V2.3.2, Teil II
Seite 2 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Inhaltsverzeichnis
1
2
3
4
5
6
7
Zielsetzung und Geltungsbereich....................................................................................6
Referenzierte Dokumente ...............................................................................................7
Abkürzungen und Notation............................................................................................11
3.1
Abkürzungen ...................................................................................................11
3.2
Notation ...........................................................................................................15
Der Heilberufsausweis ..................................................................................................17
4.1
ATR-Kodierung................................................................................................17
4.2
Allgemeine Struktur .........................................................................................18
4.3
Root-Anwendung und Dateien auf MF-Ebene.................................................19
4.3.1
4.3.2
4.3.3
4.3.4
4.3.5
4.3.6
4.3.7
4.3.8
4.3.9
4.3.10
4.3.11
4.3.12
4.3.13
4.3.14
MF ................................................................................................................................ 19
EF.ATR......................................................................................................................... 20
EF.DIR.......................................................................................................................... 21
EF.GDO........................................................................................................................ 22
EF.Version.................................................................................................................... 24
EF.C.CA_HPC.CS........................................................................................................ 25
EF.C.HPC.AUTR_CVC ................................................................................................ 26
EF.C.HPC.AUTD_SUK_CVC....................................................................................... 27
PIN.CH ......................................................................................................................... 28
PrK.HPC.AUTR_CVC .................................................................................................. 28
PrK.HPC.AUTD_SUK_CVC ......................................................................................... 29
PuK.RCA.CS ................................................................................................................ 29
PuK.CAMS_HPC.AUT_CVC........................................................................................ 30
SK.CAMS ..................................................................................................................... 30
4.4
4.5
Sicherheitsumgebungen auf MF-Ebene ..........................................................31
Öffnen der HPC ...............................................................................................31
4.5.1
4.5.2
4.5.3
4.5.4
4.5.5
Kommandosequenz nach Auslesen des ATR.............................................................. 31
Auswahl der Root-Anwendung..................................................................................... 31
Lesen von EF.ATR und EF.GDO ................................................................................. 32
Lesen von EF.DIR und EF.Version .............................................................................. 32
Lesen der CV-Zertifikate der HPC ............................................................................... 33
4.6
PIN-Management ............................................................................................34
4.6.1
4.6.2
4.6.3
4.6.4
PIN-Prüfung.................................................................................................................. 34
PIN-Änderung............................................................................................................... 34
Zurücksetzen des Fehlbedienungszählers und Setzen einer neuen PIN .................... 35
Abfragen des PIN.CH-Status ....................................................................................... 35
Management von Kanälen ............................................................................................37
5.1
Allgemeine Aspekte.........................................................................................37
5.2
Öffnen eines logischen Kanals ........................................................................37
5.3
Schließen eines logischen Kanals ...................................................................37
Interaktionen zwischen HPC und eGK..........................................................................39
6.1
Allgemeines .....................................................................................................39
6.2
Instanzen des CVC Schlüsselmanagements...................................................39
6.3
Prüfung der CV-Zertifikate der eGK ................................................................40
6.4
Asymmetrische HPC/eGK-Authentisierung ohne Aufbau eines Trusted
Channel ...........................................................................................................42
Interaktionen zwischen HPC und SMC .........................................................................45
7.1
Allgemeines .....................................................................................................45
7.2
Vorbereitungsschritte.......................................................................................46
7.3
Asymmetrische Authentisierung mit Aufbau eines Trusted Channel...............47
HPC-Spezifikation V2.3.2, Teil II
Seite 3 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
7.4
8
Asymmetrische Authentisierung mit Speicherung von Vorstellungsschlüsseln
.........................................................................................................................49
7.5
Symmetrische Authentisierung mit Aufbau eines Trusted Channel.................51
7.6
Autorisierungsprozesse ...................................................................................54
Die Heilberufsanwendung .............................................................................................56
8.1
Dateistruktur und Dateiinhalt ...........................................................................56
8.1.1
8.1.2
9
10
8.2
Sicherheitsumgebungen ..................................................................................57
8.3
Auswahl der Anwendung .................................................................................57
8.4
Lesen und Aktualisieren von EF.HPD .............................................................57
Anwendung für die qualifizierte elektronische Signatur (QES) .....................................59
9.1
Dateistruktur und Dateiinhalt ...........................................................................59
9.1.1
9.1.2
9.1.3
9.1.4
9.1.5
9.1.6
9.1.7
DF.QES (Qualified Electronic Signature Application) .................................................. 59
PrK.HP.QES ................................................................................................................. 60
PIN.QES ....................................................................................................................... 60
EF.DM .......................................................................................................................... 61
EF.SSEC ...................................................................................................................... 62
EF.C.HP.QES............................................................................................................... 63
EF.C.HP.QES-AC1, -AC2 und -AC3............................................................................ 64
9.2
9.3
9.4
9.5
9.6
9.7
Erzeugung einer qualifizierten elektronischen Signatur...................................65
Sicherheitsumgebungen ..................................................................................66
Auswahl der QES-Anwendung ........................................................................66
Auswahl der Sicherheitsumgebung .................................................................66
Lesen und Aktualisieren der Display Message................................................67
PIN-Management ............................................................................................68
9.7.1
9.7.2
9.7.3
9.7.4
Prüfung der PIN............................................................................................................ 68
Änderung der PIN......................................................................................................... 68
Zurücksetzen des Fehlbedienungszählers................................................................... 69
Abfrage des PIN.QES-Status ....................................................................................... 70
9.8
Berechnung einer QES....................................................................................70
9.9
Lesen der zu QES gehörenden Zertifikate ......................................................71
9.10
Schreiben von Attributzertifikaten ....................................................................72
Die ESIGN-Anwendung ................................................................................................73
10.1
Dateistruktur und Dateiinhalt ...........................................................................73
10.1.1
10.1.2
10.1.3
10.1.4
10.1.5
10.1.6
11
12
DF.HPA (Health Professional Application)................................................................... 56
EF.HPD (Health Professional Data)............................................................................. 57
DF.ESIGN..................................................................................................................... 73
PrK.HP.AUT ................................................................................................................. 73
PrK.HP.ENC ................................................................................................................. 74
EF.DM .......................................................................................................................... 74
EF.C.HP.AUT ............................................................................................................... 75
EF.C.HP.ENC............................................................................................................... 75
10.2
Sicherheitsumgebungen ..................................................................................76
10.3
Auswahl der ESIGN-Anwendung ....................................................................76
10.4
Lesen der X.509-Zertifikate .............................................................................76
10.5
PIN Management.............................................................................................77
10.6
Client/Server-Authentisierung..........................................................................77
10.7
Entschlüsselung des Dokumenten-Chiffrierungsschlüssels ............................79
10.8
Umschlüsselung des Dokumenten-Chiffrierungsschlüssels ............................80
Kryptografische Informationsanwendungen..................................................................82
11.1
Allgemeine Struktur .........................................................................................82
11.2
DF.CIA.QES und DF.CIA.ESIGN (Cryptographic Information Applications) ...82
11.3
Dateien mit kryptografischen Informationsobjekten (CIOs) .............................83
11.4
Auswahl der Anwendungen .............................................................................85
11.5
Lesen der CIA-Dateien ....................................................................................85
Die Organisationsspezifische Authentisierungsanwendung .........................................87
12.1
Dateistruktur und Dateiinhalt ...........................................................................87
HPC-Spezifikation V2.3.2, Teil II
Seite 4 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
13
12.1.1
12.1.2
12.1.3
12.1.4
12.1.5
DF.AUTO (Organization-specific Authentication Application)...................................... 87
PrK.HP.AUTO............................................................................................................... 88
PIN.AUTO..................................................................................................................... 88
PIN.SO ......................................................................................................................... 89
EF.C.HP.AUTO1 und EF.C.HP.AUTO2....................................................................... 90
12.2
12.3
12.4
Sicherheitsumgebungen ..................................................................................91
Auswahl der AUTO-Anwendung......................................................................91
PIN-Management ............................................................................................91
12.4.1
12.4.2
12.4.3
PIN-Prüfung.................................................................................................................. 91
PIN-Änderung............................................................................................................... 92
Zurücksetzen des Fehlbedienungszählers................................................................... 92
12.5
Lesen der organisationsspezifischen Zertifikate..............................................93
12.6
Aktualisieren der organisationsspezifischen Zertifikate ...................................94
12.7
Client/Server-Authentisierung..........................................................................94
Laden einer neuen Anwendung oder Anlegen eines EFs nach Ausgabe der HPC .....97
13.1
Identifizierung des HPC-Betriebssystems .......................................................97
13.2
Einrichtung eines Trusted Channel zwischen CAMS und HPC.......................97
13.2.1
13.2.2
Asymmetrische Authentisierung................................................................................... 98
Durchführung der symmetrischen Authentisierung .................................................... 100
13.3
Laden einer Anwendung oder einer neuen Datei ..........................................101
13.4
Eintragen einer neuen Anwendung in EF.DIR...............................................102
Annex A (normativ) Kartenausgeberschlüssel, Nummernräume der
Zertifizierungsdiensteanbieter und Certificate Holder Authorizations ........................103
Annex B (normativ) Struktur und Inhalt der QES-Zertifikate ...............................................109
Annex C (normativ) Zertifikate für Authentifizierung und Verschlüsselung .........................137
Annex D (informativ) Kryptografische Informationsobjekte der QES-Anwendung .............138
Annex E (informativ) Kryptographische Informationsobjekte der ESIGN-Anwendung ........153
HPC-Spezifikation V2.3.2, Teil II
Seite 5 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
1
Zielsetzung und Geltungsbereich
Diese Spezifikation beschreibt die Karten-Schnittstelle zu:
• dem Heilberufsausweis (HPC) für Angehörige approbierter Heilberufe
und Authentisierungsverfahren zwischen HPC und elektronischer Gesundheitskarte (eGK),
bei denen die Authentizität der eGK geprüft und Zugriffsrechte zugewiesen werden.
Die Spezifikation ist so aufgebaut, dass sie an die Anforderungen anderer Heilberufe
angepasst werden kann.
Die Spezifikation berücksichtigt dabei:
• das deutsche Signaturgesetz und die zugehörende Signaturverordnung (SigG
und SigV)
• die DIN-Spezifikation für Chipkarten mit digitaler Signatur
• die ESIGN-Spezifikation für elektronische Signaturen
• die zugehörenden ISO-Standards (speziell ISO/IEC 7816, Teile 1-4, 6, 8, 9 und
15)
• Andere Quellen (z.B. Anforderungen der Trustcenter)
Die Gültigkeitsdauer einer HPC beträgt mindestens 3 Jahre. Ein Heilberufler kann mehr als
eine HPC besitzen.
HPC-Spezifikation V2.3.2, Teil II
Seite 6 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
2
Referenzierte Dokumente
[Quelle]
Herausgeber (Erscheinungsdatum): Titel
[ALGCAT]
Bundesnetzagentur für Elektrizität, Gas, Telekommunikation, Post und
Eisenbahnen: Bekanntmachung zur elektronischen Signatur nach dem
Signaturgesetz und der Signaturverordnung (Übersicht über geeignete
Algorithmen) vom 17. November 2008, siehe www.bundesnetzagentur.de
T7, TeleTrusT: Common PKI Specification, Part 1: Certificate and CRL
Profiles, Version 2.0, 20th January 2009, www.common-pki.org
T7, TeleTrusT: Common PKI Specification, Part 9: SigG-Profile, Version
2.0, 20th January 2009, www.common-pki.org
[COM-PKI-1]
[COM-PKI-9]
[DIN66291-1]
DIN V66291-1: 2000
Chipkarten mit Digitaler Signatur-Anwendung/Funktion nach SigG und
SigV, Teil 1: Anwendungsschnittstelle
[DIN66291-4]
DIN V66291-4: 2002
Chipkarten mit Digitaler Signatur-Anwendung/Funktion nach SigG/SigV,
Teil 4: Grundlegende Sicherheitsdienste
[ECDIR]
Directive 1999/93/EC of the European Parliament and of the Council of 13
December 1999 on a Community Framework for Electronic Signatures
[eGK-P1]
gematik (2008): Spezifikation der elektronischen Gesundheitskarte,
Teil 1: Spezifikation der elektrischen Schnittstelle, Version 2.2.2,
16.09.2008
[eGK-P2]
gematik (2008): Spezifikation der elektronischen Gesundheitskarte,
Teil 2: Grundlegende Applikationen, Version 2.2.1, 19.06.2008
[EN14890-1]
EN 14890-1: 2008
Application Interface for smart cards used as secure signature creation
devices, Part 1: Basic services
[EN14890-2]
EN 14890-2: 2008
Application Interface for smart cards used as Secure Signature Creation
Devices, Part 2: Additional services
[EN1867]
EN 1867:1997
Machine readable cards – Health care applications – Numbering system
and registration procedure for issuer identifiers
[GMG]
Gesetz zur Modernisierung der gesetzlichen Krankenversicherung (GKVModernisierungsgesetz - GMG), BGBl 2003 Teil I Nr. 55 S.2190, 19.
November 2003
[HPC-P1]
Bundesärztekammer et al.: Spezifikation des elektronischen Heilberufsausweises und der Security Module Card, Teil I: – Kommandos,
Algorithmen und Funktionen der Betriebssystemplattform,
V2.3.2 DE, 05.08.2009
[HPC-P3]
Bundesärztekammer et al.: Spezifikation des elektronischen Heilberufsausweises und der Security Module Card, Teil III: SMC – Anwendungen
und Funktionen, V2.3.2 DE, 05.08.2009
[ISO3166]
ISO/IEC 3166-1: 2006
Codes for the representations of names of countries and their subdivisions
HPC-Spezifikation V2.3.2, Teil II
Seite 7 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
[Quelle]
Herausgeber (Erscheinungsdatum): Titel
– Part 1: Country codes
[ISO7812]
ISO/IEC 7812-1: 2006
Cards and personal identification – Identification of issuers –
Part 1: Numbering system
[ISO7816-1]
ISO/IEC 7816-1: 1998
Identification cards - Integrated circuit cards with contacts Part 1: Physical characteristics
[ISO7816-2]
ISO/IEC 7816-2: 2007
Identification cards - Integrated circuit cards with contacts Part 2: Dimensions and location of contacts
[ISO7816-3]
ISO/IEC 7816-3: 2006
Identification cards - Integrated circuit cards with contacts Part 3: Electrical interface and transmission protocols
[ISO7816-4]
ISO/IEC 7816-4: 2005
Identification cards - Integrated circuit cards Part 4: Organization, security and commands for interchange
[ISO7816-5]
ISO/IEC 7816-5: 2004
Identification cards - Integrated circuit cards Part 5: Registration of application providers
[ISO7816-6]
ISO/IEC 7816-6: 2004
Identification cards - Integrated circuit cards Part 6: Interindustry data elements for interchange
[ISO7816-8]
ISO/IEC 7816-8: 2004
Identification cards - Integrated circuit cards Part 8: Commands for security operations
[ISO7816-9]
ISO/IEC 7816-9: 2004
Identification cards - Integrated circuit cards Part 9: Commands for card management
[ISO7816-13]
ISO/IEC 7816-13: 2007
Identification cards - Integrated circuit cards Part 13: Commands for application management in multi-application
environment
[ISO7816-15]
ISO/IEC 7816-15: 2004
Identification cards - Integrated circuit cards Part 15: Cryptographic information application
[ISO8825]
ISO/IEC 8825-1: 2002
Information technology - ASN.1 encoding rules - Specification of Basic
Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)
[ISO9564]
ISO 9564-1: 2002
Banking – Personal Identification Number (PIN) management and security
–
HPC-Spezifikation V2.3.2, Teil II
Seite 8 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
[Quelle]
Herausgeber (Erscheinungsdatum): Titel
Part 1: Basic principles and requirements for online PIN handling in ATM
and POS systems
[ISO9796-2]
ISO/IEC 9796-2: 2002
Information technology – Security techniques – Digital signature schemes
giving Message Recovery – Part 2: Integer factorization based
mechanisms
[ISO10118]
ISO 10118-2
[ISO10646]
Information technology – Security techniques – Hash functions, Part 2:
Hash functions using an n-bit block cipher algorithm, 2000
ISO/IEC 10646:2003
Information technology -- Universal Multiple-Octet Coded Character Set
(UCS)
[ISO10918]
ISO/IEC 10918-1
Information technology - digital compression and coding of continuoustone still images: Requirements and guidelines, 1994
[ISO11770]
ISO/IEC 11770-3: 2008
Information technology - Security techniques - Key management
Part 3: Mechanisms using asymmetrische techniques
[NIST-SHS]
NIST: FIPS Publication 180-2:
Secure Hash Standard (SHS-1), 01.08.2002
[PKCS#1]
[PKI-Reg]
[PKI-Nota]
[PP-HPC]
PKCS#1 RSA Cryptography Standard
V2.1: June 14, 2002
gematik: Registrierung einer CVC-CA der zweiten Ebene
Version 1.8.0
gematik: Festlegungen zu den Notationen von Schlüsseln und Zertifikaten
kryptographischer Objekte in der TI, Version 1.1.0
BSI: Common Criteria Protection Profile – Health Professional Card (PPHPC) with SSCD Functionality, BSI-CC-PP-0018-V2-2009, Version 2.5,
April 6th, 2009
[PP-SMC-A]
BSI: Common Criteria Protection Profile – Secure Module Card Type A
(PP-SMC-A), BSI-PP-0019, Version 1.9.1, February 1st 2008
[PP-SMC-B]
BSI: Common Criteria Protection Profile – Secure Module Card Type B
(PP-SMC-B), BSI-PP-0019, Version 1.9.1, February 1st 2008
[Resolution190]
Beschluss Nr. 190 der Europäischen Union vom 18. Juni 2003 betreffend
die technischen Merkmale der europäischen Krankenversicherungskarte
[RFC1510]
RFC 1510: May 1999
Public Key Cryptography for Initial Authentication in Kerberos
[RFC2246]
RFC 2246: Jan. 1999
The TLS Protocol, Version 1.0
[RFC2459]
Internet X.509 Public Key Infrastructure - Certificate and CRL Profile,
January 1999
[RFC3039]
Internet X.509 Public Key Infrastructure Qualified Certificates Profile,
January 2001
[RFC3280]
Internet X.509 Public Key Infrastructure – Certificate and Certificate
Revocation List (CRL) Profile, April 2002
HPC-Spezifikation V2.3.2, Teil II
Seite 9 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
[Quelle]
Herausgeber (Erscheinungsdatum): Titel
[RFC3629]
UTF-8, a transformation format of ISO 10646, November 2003
[RSA]
R. Rivest, A. Shamir, L. Adleman: A method for obtaining digital signatures
and public key cryptosystems, Communications of the ACM, Vol. 21 No. 2,
1978
[SigG01]
Gesetz über Rahmenbedingungen für elektronische Signaturen und zur
Änderung weiterer Vorschriften, Bundesgesetzblatt Nr. 22, 2001, S.876
[SigV01]
Verordnung zur elektronischen Signatur – SigV, 2001, Bundesgesetzblatt
Nr. 509, 2001, S. 3074
[SMC-K]
gematik: Spezifikation der SMC-K, Version 1.2.0
[SSL]
Netscape: SSL3.0 Specification
[TID]
Spezifikation des Aufbaus der Telematik-ID für HBA und SMC, Version
1.0.0, 22.08.2008
[TR-03114]
BSI: TR-0311, Stapelsignatur mit dem Heilberufsausweis, Version 2.0,
19.10.2007, www.bsi.de/literat/tr/tr03114/BSI-TR-03114.pdf
[TR-03115]
BSI: TR-03115, Komfortsignatur mit dem Heilberufsausweis, Version 2.0,
19.10.2007, www.bsi.de/literat/tr/tr03115/BSI-TR-03115.pdf
[TR-03116]
BSI: TR-03116, Technische Richtlinie für die eCard-Projekte der
Bundesregierung, Version 3.0, 08.04.2009,
www.bsi.de/literat/tr/tr03116/BSI-TR-03116.pdf
HPC-Spezifikation V2.3.2, Teil II
Seite 10 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
3
3.1
Abkürzungen und Notation
Abkürzungen
AC
Attribute Certificate (Atttributzertifikat)
AID
Application Identifier (Anwendungskennung)
AKS
Auslöser KomfortSignatur
AOD
Authentication Object Directory
APDU
Application Protocol Data Unit [ISO7816-3]
ASN.1
Abstract Syntax Notation One
ASCII
American Standard Code for Information Interchange
AT
Authentication Template
ATR
Answer-to-Reset
AUT
Authentisierung
AUTD
CV-basierte Geräteauthentisierung
AUTR
CV-basierte Rollenauthentisierung
AUTO
Organisationsspezifische Authentisierung
BA
Berufsausweis
BCD
Binary Coded Decimal
BER
Basic Encoding Rules
BNA
Bundesnetzagentur
C
Zertifikat
C2C
Card-to-Card
CA
Certification Authority (Zertifizierungsdiensteanbieter)
CAMS
Card Application Management System
CAR
Certification Authority Reference
CC
Cryptographic Checksum (kryptographische Prüfsumme)
CD
Certificate Directory
CER
Canonical Encoding Rules
CG
Cryptogram
CH
Cardholder (Karteninhaber)
CHA
Certificate Holder Authorization
CHR
Certificate Holder Reference
CIA
Cryptographic Information Application
CIO
Cryptographic Information Objects
CLA
Class-Byte einer Kommando-APDU
COS
Card Operating System (Chipkartenbetriebssystem)
HPC-Spezifikation V2.3.2, Teil II
Seite 11 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
CPI
Certificate Profile Identifier
CRL
Cerificate Revocation List (Zertifikatssperrliste)
CS
CertSign (CertificateSigning)
CTA
Card Terminal Application (Kartenterminalanwendung)
CV
Card Verifiable
CVC
Card Verifiable Certificate
D,DIR
Directory
DE
Datenelement
DER
Distinguished Encoding Rules
DES
Daten Encryption Standard
DF
Dedicated File
DI
Baud rate adjustment factor
DM
Display Message
DO
Datenobjekt
DS
Digital Signature
DSI
Digital Signature Input
DTBS
Data to be signed
ECDSA
Elliptic Curve Digital Signature Algorithm
EF
Elementary File
eGK
elektronische Gesundheitskarte [eGK-P1] und [eGK-P2]
EHIC
European Health Insurance Card
ENC
Encryption
ES
Electronic Signature
FCI
File Control Information
FCP
File Control Parameter
FI
Clock rate conversion factor
FID
File Identifier
GDO
Global Data Object
GKV
Gesetzliche Krankenversicherung
GP
Global Platform
HB
Historical Bytes
HCI
Health Care Institution (Institution des Gesundheitswesens)
HP
Health Professional (Heilberufler)
HPA
Health Professional Application
HPC
Health Professional Card (Heilberufsausweis)
HPD
Health Professional related Data
ICC
Integrated Circuit Card (Chipkarte)
ICCSN
ICC Serial Number (Chip-Seriennummer)
ICM
IC Manufacturer (Kartenhersteller)
HPC-Spezifikation V2.3.2, Teil II
Seite 12 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
ID
Identifier
IFSC
Information Field Size Card
IIN
Issuer Identification Number
INS
Instruction-Byte einer Kommando-APDU
KeyRef
Key Reference
KM
Komfortmerkmal
KT
Karten-Terminal
LCS
Life Cycle Status
LSB
Least Significant Byte(s)
MAC
Message Authentication Code
MF
Master File
MII
Major Industry Identifier
MSE
Manage Security Environment
OCSP
Online Certicate Status Protocol
OD
Object Directory
OID
Object Identifier
OSIG
Organisationssignatur
PIN
Personal Identification Number
PIX
Proprietary Application Provider Extension
PK,PuK
Public Key
PKCS
Public Key Cryptography Standard (hier [PKCS#1])
PKI
Public Key Infrastructure
PKIX
Public Key Infrastructure for X.509 Certificates (IETF)
PP
Protection Profile (Schutzprofil)
PrK
Private Key
PSO
Perform Security Operation
PUK
Personal Unblocking Key (Resetting Code)
PV
Plain Value
P1
Parameter P1 einer Kommando-APDU
P2
Parameter P2 einer Kommando-APDU
QES
Qualifizierte Elektronische Signatur
RA
Registration Authority (Registrierungsinstanz)
RAM
Random Access Memory
RC
Retry Counter (Fehlbedienungszähler)
RCA
Root CA
RD
Referenzdaten
RF
Radio Frequency
RFC
Request für Comment
RFID
Radio Frequency Identification
HPC-Spezifikation V2.3.2, Teil II
Seite 13 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
RFU
Reserved for future use
RID
Registered Application Provider Identifier
RND
Random Number (Zufallszahl)
ROM
Read Only Memory
RPE
Remote PIN-Empfänger
RPS
Remote PIN-Sender
RSA
Algorithmus von Rivest, Shamir, Adleman [RSA]
SAK
Signaturanwendungskomponente
SE
Security Environment (Sicherheitsumgebung)
SFID
Short EF Identifier
SIG
Signatur
SigG
Signaturgesetz [SigG01]
SigV
Signaturverordnung [SigV01]
SK
Secret Key
SM
Secure Messaging
SMA
Security Module Application
SMC
Security Module Card
SMD
Security Module Data
SMKT
Sicherheitsmodul Kartenterminal
SN
Seriennummer
SO
Security Officer (Administrator)
SSCD
Secure Signature Creation Device
(Sichere Signaturerstellungseinheit)
SSEC
Security Status Evaluation Counter
SSEE
Sichere Signaturerstellungseinheit
SSL
Security Sockets Layer [SSL]
SUK
Stapel- und Komfortsignatur
TLV
Tag Length Value
TC
Trusted Channel
TLS
Transport Layer Security
UID
User Identification
UTF8
8-bit Unicode Transformation Format
WTLS
Wireless Transport Layer Security
ZDA
Zertifizierungsdiensteanbieter
3TDES
3-Key-Triple-DES
HPC-Spezifikation V2.3.2, Teil II
Seite 14 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
3.2
Notation
Für Schlüssel und Zertifikate wird die folgende vereinfachte Backus-Naur-Notation
verwendet (zu den Festlegungen siehe [PKI-Nota]):
<object descriptor> ::= <key descriptor> | <certificate descriptor>
<key descriptor>::= <key>.<keyholder>.<key usage>
<key>::= <private key> | <public key> | <secret key>
<private key>::= PrK (asym.)
<public key>::= PuK (asym.)
<secret key>::= SK (sym.)
<keyholder>::= <health professional> | <card holder> | <certification authority> |
<health professional card> | <card application management system> |
<health care institution> | <security module card> | <signature application component> |
<security module card terminal> |
<electronic health card>
<health professional>::= HP
<card holder>::= CH
<certification authority>::= <root certification authority> |
<certification authority for CAMS of HPC> | <certification authority for HPC> |
<certification authority for SMC> | <certification authority for eGK> |
<certification authority for comfort signature trigger>
<root certification authority>::= RCA
<certification authority for card application management system of health professional card>::=
CA_CAMS_HPC
<certification authority for health professional card>::= CA_HPC
<certification authority for security module card>::= CA_SMC
<certification authority for electronic health card>::=
CA_eGK (CA elektronische Gesundheitskarte)
<certification authority for comfort signature trigger>::= CA_KM (CA Komfortmerkmal)
<health professional card>::= HPC
<card application management system> ::= CAMS
<health care institution>::= HCI
<security module card>::= SMC
<signature application component>::= SAK
<security module card terminal>::= SMKT
<electronic health card>::= eGK (elektronische Gesundheitskarte)
<key usage>::= <organizational signature> | <encipherment> | <authentication> |
<certsign cvc> | <certsign x509>
<organizational signature>::= OSIG
<encipherment>::= ENC
<certsign cvc>::= CS
<certsign x509>::= CA
<authentication>::= AUT | <cv based authentication>
<cv based authentication>::= <role authentication> | <device authentication>
<role authentication> ::= AUTR_CVC
HPC-Spezifikation V2.3.2, Teil II
Seite 15 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
<device authentication> ::= AUTD_CVC | <remote pin sender> | <remote pin receiver> |
<stack and comfort signature card> | <comfort signature trigger> |
<signature application component>
<remote pin Sender>:: = AUTD_RPS_CVC (Remote PIN Sender)
<remote pin Receiver>::= AUTD_RPE_CVC (Remote PIN Empfänger)
<stack and comfort signature card>::= AUTD_SUK_CVC (Stapel- und Komfortsignatur)
<comfort signature trigger>::= AUTD_AKS_CVC (Auslöser Komfort Signatur)
<certificate descriptor>::=
<certificate>.<certificate holder>.<certificate usage>
<certificate>::= C
<certificate holder>::=
<health professional> | <certification authority> | <health professional card> |
<card application management system> | <security module card> |
<security module card terminal> | <electronic health card>
<certificate usage>::=
<organizational signature> | <encipherment> | <authentication> | <certsign cvc> |
<certsign x509>
Für eine Sequenz von Datenelementen wird die folgende Notation verwendet:
|| = Konkatenation von Daten
Zur Vereinfachung werden X.509v3-Zertifikate ohne Versionsnummer bezeichnet.
HPC-Spezifikation V2.3.2, Teil II
Seite 16 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
4
4.1
Der Heilberufsausweis
ATR-Kodierung
Tabelle 1 – (N2001.00) ATR-Kodierung (Sequenz von oben nach unten)
Parameter
TS
T0
TA1
TC1
TD1
TD2
TA3
TB3
TD3
TA4
CI
Tag/Length
ICM
ICT
OSV
DD
Tag/Length
1. CCB
2. CCB
3. CCB
Wert
‘3B’
'Dx' oder
‘9x’
Bedeutung
Initial Character (direct convention)
Format Character (Anzeige von TA1 / TD1), 'Dx' bedeutet, dassTC1 vorhanden
ist, '9x' bedeutet, dass TC1 nicht vorhanden ist, x = Zahl der Historical Bytes;
x = 0 empfohlen, d.h. keine Historical Bytes im ATR, sondern nur in EF.ATR
‘xx’
Interface Character (FI / DI Wert), 'xx' = '18', '95', '96' oder '97'
'FF'
Extra Guard Time Integer; zulässige Optionen sind:
a) TC1 mit dem 'FF' vorhanden (dringend empfohlen)
b) TC1 nicht vorhanden
‘81’
Interface Character (T=1, Anzeige von TD2)
‘B1’
Interface Character (T=1, Anzeige von TA3 / TB3 / TD3)
‘FE’
Interface Character (IFSC-Kodierung)
‘45’
Interface Character (BWI / CWI-Kodierung)
‘1F’
Interface Character (T=15, Anzeige von TA4)
xx000x11
Interface Character (XI / UI-Kodierung), x = herstellerspezifisch
'00' oder '80' Category Indicator Byte (erstes Byte von max. 15 Historical Bytes)
'00' bedeutet, dass ein Status Indicator in Form der letzten drei Historical Bytes
vorhanden ist; '80' bedeutet, dass ein Status Indicator als Datenobjekt
vorhanden (ein, zwei oder drei Bytes) ist.
'6x'
Compact Header des Pre-issuing Datenobjektes (PIDO)
mit x = Zahl der nachfolgenden PIDO-Bytes
'xx'
IC Manufacturer Identifier (Teil des PIDO)
Die Kennung wird von ISO an den IC-Hersteller vergeben, see www.sc17.com
IC Type (Teil des PIDO), 1 Byte falls b8 = 0 oder
'xx' oder
'xxxx'
2 Bytes, falls b8 = 1 im ersten Byte; Kodierung herstellerspezifisch
'xx'
Operating System Version (Teil der PIDO)
Kodierung herstellerspezifisch
'xx...'
Discretionary Data (Teil der PIDO), n Bytes
Kodierung herstellerspezifisch
'73'
Compact Header der Card Capabilities Bytes (CCB)
Die Card Capabilities sind auch im EF.ATR vorhanden, siehe Tabelle 4
(N2005.00)
1xx10110
Card Capabilities Byte der Selektionsmethoden
= 'x6'
b8 b7 b6 b5 b4 = 1xx10 bezeichnet die DF-Selektion mit vollständigem DFNamen und mit File Identifier, b3 = 1 bezeichnet die Unterstützung von Short
EF Identifier, b2 = 1 bezeichnet die Unterstützung von Record Number, b1 = 0
bezeichnet keine Unterstützung von Record Identifier
00100001
Card Capabilities Byte der Daten-Kodierung
= '21'
b8 = 0 bezeichnet keine Unterstützung von EFs mit TLV-Struktur, b7 b6 = 01
bezeichnet das proprietäres Verhalten der Schreibfunktionen, b5 = 0 bezeichnet
den Wert 'FF' als erstes Byte von TLV-Tagfeldern als unzulässig, b4 b3 b2 b1 =
0001 bezeichnet die Größe der Dateneinheiten in Vierbiteinheiten (Zweierpotenz), d.h. ein Byte
11010yzt
Card Capabilities Byte von Command Chaining, Längenfeldern und logischen
Kanälen
= 'Dx'
b8 = 1 bezeichnet die Unterstützung von Command Chaining für LOAD
APPLICATION (weitere Kommandos wurden nicht für Command Chaining
spezifiziert), b7 = 1 bezeichnet die Unterstützung von Extended Lc- und LeFeldern, b6 ist RFU (b6 = 0 empfohlen), b5 b4 = 10 bezeichnet die Zuweisung
HPC-Spezifikation V2.3.2, Teil II
Seite 17 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Parameter
Tag/Length
LCS
SW1
SW2
TCK
Wert
Bedeutung
der Nummern logischer Kanäle durch die Karte, b3 b2 b1 = yzt bezeichnet die
maximale Anzahl logischer Kanäle: y, z, t nicht alle auf 1 gesetzt bedeutet
4y+2z+t+1, d.h. eins bis sieben; y = z = t = 1 bedeutet acht oder mehr
'81' oder
Compact header des Status Indicator
'82' oder '83' - nicht vorhanden, falls Category Indicator Byte = '00'
- vorhanden, falls Category Indicator Byte = '80'
'00' oder
Life Cycle Status
'05' oder '07' - 1. Status Indicator Byte, falls CI = '00' oder
- 1. Status Indicator Byte, falls CI = '80' u. Status Indicator Header = '81' o. '83'
- nicht vorhanden, falls CI = '80' und Status Indicator Header = '82'
- LCS = '05' empfohlen
'6x' oder '9x' 1. Status Word
- 2. Status Indicator Byte, falls CI = '00' oder
- 1. Status Indicator Byte, falls CI = '80' und Status Indicator header = '82' oder
- 2. Status Indicator Byte, falls CI = '80' und Status Indicator header = '83' oder
- nicht vorhanden, falls CI = '80' und Status Indicator Header = '81'
- SW1 = '90' empfohlen
'xx'
2. Status Word
- 3. Status Indicator Byte, falls CI = '00' oder
- 2. Status Indicator Byte, falls CI = '80' und Status Indicator Header = '82' oder
- 3. Status Indicator Byte, falls CI = '80' und Status Indicator Header = '83' oder
- nicht vorhanden, falls CI = '80' und Status Indicator Header = '81'
- SW2 = '00' empfohlen
'xx'
Check Character: 'xx' = exclusives OR aller ATR-Bytes;
Hinweis: Gemäß ISO/IEC 7816-3 gehört TS nicht zum ATR und geht folglich
nicht in die Berechnung der XOR-Summe ein
Tabelle 1 (N2001.00) zeigt die ATR-Kodierung für Heilberufsausweise (T = 1-Karten). Da EF.DIR ein
strukturiertes und EF.ATR ein transparentes EF ist und diese Mischung nicht sauber als "Card Service
Data Byte" gemäß ISO/IEC 7816-4 kodiert werden kann, darf dieses Byte in den Historical Bytes nicht
vorhanden sein.
4.2
Allgemeine Struktur
Die HPC enthält:
- die Root-Anwendung mit einigen EFs für allgemeine Datenobjekte auf MF-Ebene, CV-Zertifikate und
globale Schlüssel für Authentisierungsverfahren (mit denen Zugriffsrechte auf die eGK geltend
gemacht werden und die Authentizität der eGK überprüft werden kann).
- die Heilberufs-Anwendung (HPA) zur Bereitstellung von Datenelementen, die auf den Heilberufler
bezogen sind.
- die qualifizierte elektronische Signaturfunktion (QES) für die Signaturerstellung.
- die Anwendung mit Informationen zu den verwendeten kryptografischen Verfahren (CIA), die sich
gemäß [EN14890-1] auf die QES-Anwendung bezieht.
- die ESIGN-Anwendung für Client/Server-Authentisierung, Dokumenten-Entschlüsselung und –Umschlüsselung.
- die Anwendung mit Informationen zu den verwendeten kryptografischen Verfahren (CIA), die sich
gemäß [EN14890-1] auf die ESIGN-Anwendung bezieht.
HPC-Spezifikation V2.3.2, Teil II
Seite 18 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Die HPC kann darüber hinaus die Anwendung für organisationsspezifische Authentisierung (AUTO)
enthalten. Diese wird für Authentisierungsmechanismen verwendet, welche für die ESIGN-Anwendung
nicht geeignet sind.
Abbildung 1 (N2002.00) zeigt die allgemeine Struktur.
MF (Root)
DF.HPA
EF.ATR
PIN.CH
EF.DIR
PrK.HPC.AUTR_CVC
DF.QES
EF.GDO
PrK.HPC.AUTD_SUK_CVC
DF.CIA.QES
EF.Version
PuK.RCA.CS
DF.ESIGN
EF.C.CA_HPC.CS
PuK.CAMS_HPC.AUT_CVC**
DF.CIA.ESIGN
EF.C.HPC.AUTR_CVC
EF.C.HPC.AUTD_SUK_CVC
SK.CAMS**
DF.AUTO*
* Diese Anwendung ist optional
** Dieser Schlüssel ist optional und muss nur dann vorhanden sein,
wenn ein CAMS mit asymmetrischer Authentisierung verwendet wird
Abbildung 1 – (N2002.00) Allgemeine Dateistruktur einer HPC
4.3
4.3.1
Root-Anwendung und Dateien auf MF-Ebene
MF
MF ist ein „Application Dedicated File“ (siehe Kapitel 8.3.1.3 in [HPC-P1]) mit den in Tabelle 2
(N2003.00) aufgeführten Eigenschaften.
Tabelle 2 – (N2003.00) Attribute von MF
Attribut
Objekttyp
Application Identifier
File Identifier
Life Cycle Status
Zugriffsregel in allen SEs
Zugriffsart
SELECT
LOAD APPLICATION
(nach HPC-Ausgabe)
HPC-Spezifikation V2.3.2, Teil II
Wert
Application Dedicated File
‘D27600014601’
‘3F00’
Operational state (activated)
Sicherheitsbedingung
ALWAYS
AUT(‘D27600014600' || '01’) AND
SmMac AND
SmCmdEnc
Anmerkung
Optional vorhanden
Anmerkung
Nur dann ausführbar, wenn
ein CAMS genutzt wird, siehe
Kapitel 13.
Falls ein CAMS mit symmetrischer Authentisierung eingesetzt wird, muss die
Seite 19 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Sicherheitsbedingung die
Schlüsselreferenz des
entsprechenden symmetrischen Schlüssels enthalten,
d.h. AUT('13') statt
AUT(‘D27600014600' || '01’).
ACTIVATE, DEACTIVATE, DELETE
4.3.2
NEVER
EF.ATR
Die transparente Datei EF.ATR enthält ein zusammengesetztes Datenobjekt zur Anzeige der I/OPuffergrößen und das DO 'Pre-issuing data', das für die Dienste des CAMS wichtig ist. Die folgende
Tabelle zeigt die Eigenschaften von EF.ATR.
Tabelle 3 – (N2004.00) Attribute von MF / EF.ATR
Attribut
Objekttyp
File Identifier
Short File Identifier
Number of Bytes
Flag Transaction Mode
Flag Checksum
Life Cycle Status
Content
Wert
Transparent Elementary File
‘2F01’
‘1D’ = 29
COS-spezifisch
False
True
Operational state (activated)
...
Anmerkung
Gemäß [ISO7816-4]
siehe Tabelle 4
(N2005.00)
Zugriffsregel in allen SEs
Zugriffsart
SELECT, READ BINARY
ACTIVATE, DEACTIVATE, DELETE,
ERASE BINARY, UPDATE BINARY
Sicherheitsbedingung
ALWAYS
NEVER
Anmerkung
Der Inhalt von EF.ATR ist in Tabelle 4 (N2005.00), Tabelle 5 (N2006.00), Tabelle 6 (N2007.00) und
Tabelle 7 (N2008.00) definiert.
Tabelle 4 – (N2005.00) Inhalt von EF.ATR
Tag
Länge
Wert
Bedeutung
’E0’
‘xx’
’02 xx xxxx 02 xx xxxx 02 xx xxxx 02 xx xxxx’
‘66’
‘xx’
’46 xx …’ siehe Tabelle 6 (N2007.00) ||
'47 03 x6 21 Dx' siehe Tabelle 7 (N2008.00)
I/O-Puffergrößen, siehe Tabelle 5
(N2006.00)
DO Card Daten: DO Pre-issuing
data || DO Card Capabilities
Das Datenobjekt I/O-Puffergrößen in Tabelle 5 (N2006.00) enthält 4 eingebettete DOs (Tag '02’ =
Integer-Wert, Längenfeld 1 Byte mit Wert '02' oder '03', Wertefeld = max. Anzahl von Bytes der
entsprechenden APDU).
Tabelle 5 – (N2006.00) Datenobjekt Input/Output-Puffergrößen
Tag
Länge
Wert
'E0'
'xx'
'02' -L-'xxxx' || '02' -L-'xxxx' || '02'-L-'xxxx' || '02'-L-'xxxx' =
- DO max. Länge der Kommando-APDU ohne SM ||
- DO max. Länge der Antwort-APDU ohne SM ||
- DO max. Länge der Kommando-APDU mit SM ||
- DO max. Länge der Antwort-APDU mit SM
HPC-Spezifikation V2.3.2, Teil II
Seite 20 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Anmerkung – Im Gegensatz zum Hinweis 1 in Kapitel 11.5.5 von [HPC-P1] und Hinweis 1 in Kapitel 11.5.6 von
[HPC-P1] ist es nicht möglich, maximale Längen in Abhängigkeit von bestimmten Kombinationen CLA, INS, P1
und P2 auszudrücken. Das wird möglicherweise in späteren Versionen dieses Dokuments definiert, sobald geeignete Datenstrukturen in [ISO7816-4] aufgenommen sind.
Tabelle 6 – (N2007.00) Wert des DO Pre-issuing Data (Tag ‘46’)
Länge
(Byte)
1
5
x
x
x
Bedeutung der konkatenierten Datenelemente
(höchstwertiges Byte: ICM)
IC-Herstellerkennung (siehe www.sc17.com)
Kartenherstellerkennung (siehe DIN-RA:
http://sit.sit.fraunhofer.de/_karten_ident/SIT/rid_sde)
IC-ID (Kartenhersteller-spezifisch)
COS-Version (Kartenhersteller-spezifisch)
ROM-Maske (Kartenhersteller-spezifisch)
Tabelle 7 – (N2008.00) Wert des DO Card Capabilities (Tag ‘47’)
b8 b7 b6 b5 b4 b3 b2 b1 Bedeutung des 1. Byte (‘x6’)
1
-
x
-
x
-
1
-
0
-
1
-
1
-
0
DF-Auswahl mit vollem DF-Namen
DF-Auswahl mit partiellem DF-Namen (nicht festgelegt)
DF- Auswahl mit Pfad (nicht festgelegt)
DF- Auswahl mit File Identifier
Implizite DF-Auswahl (nicht unterstützt)
Unterstützung der Short File Identifier
Unterstützung von Recordnummern
Record Identifier (nicht unterstützt)
b8 b7 b6 b5 b4 b3 b2 b1 Bedeutung de 2. Byte (‘21’)
0
-
0
-
1
-
0
-
0
0
0
1
EFs mit TLV-Struktur (nicht unterstützt)
Verhalten der Schreibfunktionen (proprietär)
Wert 'FF' als 1. Byte von BER-TLV Tagfeldern unzulässig
Größe der Dateneinheiten in Vierbit-Einheiten
(als Zweierpotenz, d.h. ’01’ = 2 Vierbit-Einheiten = 1 Byte)
b8 b7 b6 b5 b4 b3 b2 b1 Bedeutung des 3. Byte (‘Dx’)
1
-
1
-
0
-
1
0
-
-
-
-
-
y
x
z
x
t
x
Unterstützung von Command Chaining, siehe Anmerkung 1
Extended Lc und Le-Felder
b6 ist RFU (b6 = 0 empfohlen)
Zuweisung der Nummern logischer Kanäle durch die Karte
Maximale Anzahl logischer Kanäle, siehe Anmerkung 2
Anmerkung 1 – Command Chaining wird evt. für das Kommando LOAD APPLICATION gebraucht, siehe Kapitel
13.3.
Anmerkung 2 – Die Card-Capability-Bytes sind gemäß Kapitel 8.1.1.2.7 in [ISO7816-4] gestaltet. Im 3. Byte kodieren die Bits b3-b1 die maximale Anzahl logischer Kanäle, die von der Karte unterstützt wird: Wenn y, z, t nicht
durchgehend auf 1 gesetzt sind, werden 4y+2z+t+1 logische Kanäle unterstützt, d.h. eins bis sieben. y = z = t = 1
bedeutet Unterstützung von acht oder mehr logischen Kanälen. Die maximale Anzahl logischer Kanäle muss auf
einen der folgenden Werte gesetzt sein: b3b2b1 = 011 (4 Kanäle), 100 (5 Kanäle), 101 (6 Kanäle), 110 (7 Kanäle)
oder 111 (≥ 8 Kanäle).
4.3.3
EF.DIR
EF.DIR enthält die Anwendungs-Templates für MF, DF.HPA, DF.QES, DF.CIA.QES, DF.ESIGN,
DF.CIA.ESIGN, und DF.AUTO gemäß ISO/IEC 7816-4. EF.DIR erlaubt das Hinzufügen von AIDs
weiterer (nachgeladener) Anwendungen, siehe Eigenschaften von EF.DIR in der folgenden Tabelle.
HPC-Spezifikation V2.3.2, Teil II
Seite 21 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 8 – (N2009.00) Attribute von MF / EF.DIR
Attribut
Objekttyp
File Identifier
Short File Identifier
Number of Bytes
Maximum Number von Records
Maximum Record Länge
Flag Record LCS
Flag Transaction Mode
Flag Checksum
Life Cycle Status
Content
Zugriffsregel in allen SEs
Zugriffsart
SELECT, READ RECORD,
SEARCH RECORD
APPEND RECORD, UPDATE
RECORD
Wert
Linear Variable Record Elementary File
‘2F00’
‘1E’ = 30
190
10 (3 für zukünftige Verwendung)
19 Bytes
False
True
True
Operational state (activated)
...
ACTIVATE, ACTIVATE
RECORD, DEACTIVATE,
DEACTIVATE RECORD,
DELETE, ERASE RECORD
NEVER
Anmerkung
10 * max. Recordlänge
siehe Tabelle 9 (N2010.00)
Sicherheitsbedingung
ALWAYS
Anmerkung
AUT(‘D27600014600' || '01’) AND
SmMac
Nur dann ausführbar, wenn ein CAMS
genutzt wird, siehe Kapitel 13. Falls ein
CAMS mit symmetrischer Authentisierung eingesetzt wird, muss die Sicherheitsbedingung die Schlüsselreferenz
des entsprechenden symmetrischen
Schlüssels enthalten, d.h. AUT('13')
statt AUT(‘D27600014600' || '01’).
Die in EF.DIR enthaltenen Anwendungs-Templates sind in Tabelle 9 (N2010.00) gezeigt.
Tabelle 9 – (N2010.00) Anwendungs-Templates in EF.DIR
Tag
Länge
Anwendungs-Template
Bedeutung
’61’
’61’
‘61’
‘08’
‘08’
‘08’
‘4F 06 D27600014601’
‘4F 06 D27600014602’
‘4F 06 D27600006601’
‘61’
‘61’
‘61’
‘0D’
’0C’
‘11’
‘4F 0B E828BD080F D27600006601’
‘4F 0A A000000167 455349474E’
‘4F 0F E828BD080F A000000167 455349474E’
‘61’
‘08’
‘4F 06 D27600014603’
Anwendungs-Template mit AID.MF
Anwendungs-Template mit AID.HPA
Anwendungs-Template mit AID.QES
(DINSIG)
Anwendungs-Template mit AID.CIA.QES
Anwendungs-Template mit AID.ESIGN
Anwendungs-Template mit
AID.CIA.ESIGN
Anwendungs-Template mit AID.AUTO
(optional)
4.3.4
EF.GDO
Tabelle 10 (N2011.00) zeigt die Eigenschaften von EF.GDO.
HPC-Spezifikation V2.3.2, Teil II
Seite 22 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 10 – (N2011.00) Attribute von MF / EF.GDO
Attribut
Objekttyp
File Identifier
Short File Identifier
Number of Bytes
Flag Transaction Mode
Flag Checksum
Life Cycle Status
Content
Wert
Transparent Elementary File
‘2F02’
‘02’ = 2
12
False
True
Operational state (activated)
...
Zugriffsregel in allen SEs
Zugriffsart
SELECT, READ BINARY
ACTIVATE, DEACTIVATE, DELETE,
ERASE BINARY, UPDATE BINARY
Sicherheitsbedingung
ALWAYS
NEVER
Anmerkung
siehe Tabelle 11
(N2012.00)
Anmerkung
EF.GDO beinhaltet in Übereinstimmung mit [Resolution190] das Datenobjekt ICC Serial Number,
siehe Tabelle 11 (N2012.00).
Tabelle 11 – (N2012.00) DO ICCSN in EF.GDO
Tag
’5A’
Länge Wert
‘0A’
‘80276 …'
Bedeutung
ICCSN
Der Aufbau des Datenobjekts ICCSN (Tag ‘5A’) für Karten im Gesundheitswesen ist in Abbildung 2
(N2013.00) gezeigt.
MII = Major Industry
Identifier
TICCSN
L
ICCSN
‘5A‘
’0A‘
20 Ziffern (10 Bytes)
EN 1867
MII
Country Issuer
Code Identifier
(´80´) (´276´) (5 BCD)
Serial
Number (SN)
(10 BCD)
ISO 3166
Issuer Id.
Number (IIN)
ICC Serial Number
gemäß EU Resolution 190
Abbildung 2 - (N2013.00) ICCSN für Karten im Gesundheitswesen
Die Kartenausgeberschlüssel, die für die HPC verwendet werden, sind in Annex A dargestellt.
In dieser Spezifikation wird die ICCSN verwendet für:
- die Kartenidentifikation, z.B. durch ein CAMS
- die Referenzierung von Schlüsseln in CVCs.
Der Kartenherausgeber muss sicherstellen, dass die Seriennummer (SN) eineindeutig ist (insbesondere, wenn verschiedene Kartenhersteller beteiligt sind). Die zwei führenden BCDs der Seriennummer
(im
Anschluss
an
die
Kennung
des
Herausgebers)
geben
den
beteiligten
Zertifizierungsdiensteanbieter an, siehe Annex A.
HPC-Spezifikation V2.3.2, Teil II
Seite 23 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
4.3.5
EF.Version
EF.Version enthält Records fester Länge mit den Versionsnummern der Spezifikationsteile und eine
SRQ-Nummer (welche die Obergrenze der relevanten SRQs anzeigt), auf denen die Karte beruht. Die
nachfolgende Tabelle zeigt die Eigenschaften der Datei EF.Version.
Tabelle 12 – (N2014.00) Attribute von MF / EF.Version
Attribut
Objekttyp
File Identifier
Short File Identifier
Number of Bytes
Maximum Number von Records
Maximum Record Länge
Flag Record LCS
Flag Transaction Mode
Flag Checksum
Life Cycle Status
Content
Zugriffsregel in allen SEs
Zugriffsart
SELECT, READ RECORD,
SEARCH RECORD
UPDATE RECORD
Wert
Linear Fix Record Elementary File
‘2F10’
‘10’ = 16
20
4
5 Bytes
False
True
True
Operational state (activated)
...
ACTIVATE, ACTIVATE
RECORD, APPEND RECORD,
DEACTIVATE, DEACTIVATE
RECORD, DELETE, ERASE
RECORD
NEVER
Anmerkung
siehe Tabelle 13 (N2015.00)
Sicherheitsbedingung
ALWAYS
Anmerkung
AUT(‘D27600014600' || '01’) AND
SmMac
Nur dann ausführbar, wenn ein CAMS
genutzt wird, siehe Kapitel 13. Falls ein
CAMS mit symmetrischer Authentisierung eingesetzt wird, muss die Sicherheitsbedingung die Schlüsselreferenz
des entsprechenden symmetrischen
Schlüssels enthalten, d.h. AUT('13') statt
AUT(‘D27600014600' || '01’).
Die Datei EF.Version enthält 4 Records fester Länge, siehe Tabelle 13 (N2015.00). Die ersten 3
Records zeigen die 3 Teile der HPC-Spezifikation und eine SRQ-Nummer an, die zur Karte in
Beziehung stehen. Das Tripel Versionsnummer XX.YY.ZZ des entsprechenden Spezifikationsteils ist
zusammen mit der vierstelligen SRQ-Nummer SSSS als XXYYZZSSSS in BCDs kodiert. Der letzte
Record ist für eine zukünftige Nutzung reserviert (RFU).
Tabelle 13 – (N2015.00) Inhalt von EF.Version
Recordnr.
Wert (5 Bytes)
Bedeutung
1
‘0203020000’
2
‘0203020000’
3
‘0203020000’
4
‘0000000000’
Version der unterstützten HPC-Spezifikation Teil 1, gefolgt von der
Obergrenze der SRQ-Nummern, mit der die Karte konform ist.
Hier: Version 2.3.2, keine zusätzlichen SRQs
Version der unterstützten HPC-Spezifikation Teil 2, gefolgt von der
Obergrenze der SRQ-Nummern, mit der die Karte konform ist.
Hier: Version 2.3.2, keine zusätzlichen SRQs
Version der unterstützten HPC-Spezifikation Teil 3, gefolgt von der
Obergrenze der SRQ-Nummern, mit der die Karte konform ist.
Hier: Version 2.3.2, keine zusätzlichen SRQs
RFU
HPC-Spezifikation V2.3.2, Teil II
Seite 24 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
4.3.6
EF.C.CA_HPC.CS
EF.C.CA_HPC.CS enthält das CV-Zertifikat des Zertifizierungsdiensteanbieters, die von der WurzelCA für das Gesundheitswesen für eine CA_HPC ausgegeben wurde. Tabelle 14 (N2016.00) zeigt die
Eigenschaften der Datei.
Tabelle 14 – (N2016.00) Attribute von MF / EF.C.CA_HPC.CS
Attribut
Objekttyp
File Identifier
Short File Identifier
Number of Bytes
Flag Transaction Mode
Flag Checksum
Life Cycle Status
Content
Wert
Transparent Elementary File
‘2F04’
‘04’ = 4
331
False
False
Operational state (activated)
...
Anmerkung
siehe Tabelle 17
(N2019.00)
Zugriffsregel in allen SEs
Zugriffsart
SELECT, READ BINARY
ACTIVATE, DEACTIVATE, DELETE,
ERASE BINARY, UPDATE BINARY
Sicherheitsbedingung
ALWAYS
NEVER
Anmerkung
Die Tabelle 15 (N2017.00) zeigt die Kodierung von CV-Zertifikaten für CAs und für Karten (eGK, HPC
oder SMC). Die enthaltenen OIDs zeigen an, welches Signatur- bzw. Authentisierungsschema vom
zertifizierten Schlüsselpaar verwendet wird, siehe Tabelle 16 (N2018.00).
Tabelle 15 – (N2017.00) CPI-Werte und CV-Felder
CPI
PK
OID
CHA
CHR
CAR
(1 B)
(250 B)
(7 oder 6 B)
Modulus
(256 Bytes)
|| Exponent
(4 Bytes)
'2B240304020204'
(7 Bytes)
(8 oder 12
B)
ZDAKennung
(5 Bytes) ||
Erweiterung
(3 Bytes)
(8 B)
'21'
(0 oder
7B)
-
'22'
Modulus
(256 Bytes)
|| Exponent
(4 Bytes)
'2B2403050204'
(6 Bytes)
Prefix
(6 Bytes)
|| Role
identifier
(1 Bytes)
‘00’
(1 Bytes) ||
KeyRef
(1 Bytes) ||
ICCSN
(10 Bytes)
Anmerkung
ZDAKennung
(5 Bytes) ||
Erweiterung
(3 Bytes)
CVC für eine CA,
ausgegeben von einer RCA
(signierter Schlüssel wird für
Verifikation weiterer Schlüssel
in der CVC-Kette verwendet;
Signiert ist der Hash-Wert des
CVC-Inhalts), z.B.:
C.CA_HPC.CS
ZDACVC für eGK, HPC oder
Kennung
SMC, ausgegeben von einer
(5 Bytes) || CA (signierter Schlüssel wird
Erweiterung für Card-to-card(3 Bytes)
Authentisierung verwendet),
z.B. C.HPC.AUTR_CVC,
C.HPC.AUTD_SUK_CVC
Tabelle 16 – (N2018.00) Object Identifier
OID-Name
OID-Nummer
OID-Kodierung
Registrierungsinstanz
sigS_ISO9796-2Withrsa_sha256
Signaturschema mit RSA-Signatur und DSI gemäß
ISO/IEC 9796-2 und SHA-256
authS_ISO9796-2Withrsa_sha256_mutual
Authentisierungsschema mit RSA-Signature und
DSI gemäß ISO/IEC 9796-2 und SHA-256 für
gegenseitige Authentisierung mit oder ohne Aufbau
eines gesicherten Kanals
{1 3 36 3 4 2 2 4}
‘2B240304020204’
TeleTrusT
{1 3 36 3 5 2 4}
‘2B2403050204’
TeleTrusT
HPC-Spezifikation V2.3.2, Teil II
Seite 25 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Anmerkung – In [ISO9796-2] ist Annex A.4 relevant.
Aufbau und Inhalt des CVC in EF.C.CA_HPC.CS mit CPI = ‘21’ sind in Kapitel 7.1 von [HPC-P1] definiert und in Tabelle 17 (N2019.00) dargestellt. Die CV-Zertifikatsdatei enthält ein zusammengesetztes
Zertifikats-Datenobjekt mit Tag '7F21' (RSA-Zertifikat mit Message Recovery). Die Gesamtlänge des
Dateiinhalts beträgt 331 Bytes.
Tabelle 17 – (N2019.00) Aufbau und Inhalt eines EF mit CV-Zertifikat nach CPI = ‘21’
Tag
Länge
Wert
'7F21'
'820146'
CV-Zertifikat (326 Bytes)
Tag
Länge Wert
'5F37'
'820100' SIG.CA (256 Bytes)
Digital Signature Input für SIG.CA (‘6A’ …’BC’):
'6A' = Padding gemäß ISO9796-2 (1 Byte)
'21' = CPI (1 Byte)
PK, erster Teil des Modulus (221 Bytes)
SHA-256 Hash-Wert (32 Bytes)
Input: CPI || PK || OID || CHR || CAR, siehe Tabelle 15 (N2017.00)
'BC' = Trailer gemäß ISO9796-2 (1 Byte)
'5F38'
'3E'
Non-recoverable Teil der Signatur SIG.CA (62 Bytes):
PK, Rest des Modulus gefolgt vom Exponenten (39 Bytes)
OID (7 Bytes)
CHR (8 Bytes)
CAR (8 Bytes)
4.3.7
EF.C.HPC.AUTR_CVC
EF.C.HPC.AUTR_CVC enthält das CV-Zertifikat der HPC für rollen-basierte C2C-Authentisierung
zwischen HPC und eGK und für die Autorisierung von SMC-A und SMC-B. Die Eigenschaften der
Datei sind in der folgenden Tabelle aufgeführt.
Tabelle 18 – (N2020.00) Attribute von MF / EF.C.HPC.AUTR_CVC
Attribut
Objekttyp
File Identifier
Short File Identifier
Number of Bytes
Flag Transaction Mode
Flag Checksum
Life Cycle Status
Content
Wert
Transparent Elementary File
‘2F03’
‘03’ = 3
341
False
False
Operational state (activated)
...
Anmerkung
siehe Tabelle 19
(N2021.00)
Zugriffsregel in allen SEs
Zugriffsart
SELECT, READ BINARY
ACTIVATE, DEACTIVATE, DELETE,
ERASE BINARY, UPDATE BINARY
Sicherheitsbedingung
ALWAYS
NEVER
Anmerkung
Aufbau und Inhalt des CVC in EF.C.HPC.AUTR_CVC mit CPI = ‘22’ sind in Kapitel 7.1 von [HPC-P1]
definiert und in Tabelle 19 (N2021.00) dargestellt. Die CV-Zertifikatsdatei enthält ein
zusammengesetztes Zertifikat-Datenobjekt mit Tag '7F21' (RSA-Zertifikat mit Message Recovery). Die
Gesamtlänge des Dateiinhalts beträgt 341 Bytes.
HPC-Spezifikation V2.3.2, Teil II
Seite 26 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 228 (N2623.00) enthält die für C.HPC.AUTR_CVC relevanten “Certificate Holder
Authorizations”.
Tabelle 19 – (N2021.00) Aufbau und Inhalt eines EF mit CV-Zertifikat nach CPI = ‘22’
Tag
Länge
Wert
'7F21'
'820150'
CV-Zertifikat (336 Bytes)
Tag
Länge Wert
'5F37'
'820100' SIG.CA (256 Bytes)
Digital Signature Input für SIG.CA (‘6A’ …’BC’):
'6A' = Padding gemäß ISO9796-2 (1 Byte)
'22' = CPI (1 Byte)
PK, erster Teil des Modulus (221 Bytes)
SHA-256 Hash-Wert (32 Bytes)
Input: CPI || PK || OID || CHA || CHR || CAR, siehe Tabelle 15
(N2017.00)
'5F38'
4.3.8
'BC' = Trailer gemäß ISO9796-2 (1 Byte)
Non-recoverable Teil der Signatur SIG.CA (72 Bytes):
PK, Rest des Modulus gefolgt vom Exponenten (39 Bytes)
OID (6 Bytes)
CHA (7 Bytes)
CHR (12 Bytes)
CAR (8 Bytes)
'48'
EF.C.HPC.AUTD_SUK_CVC
EF.C.HPC.AUTD_SUK_CVC enthält das CV-Zertifikat der HPC für funktionsbasierte C2C-Authentisierung zwischen HPC/SMC-A, HPC/SMC-B und HPC/SMC-K mit der HPC als Signaturkarte für Stapelund Komfortsignaturen (SUK), um PIN-Daten und die zu signierenden Daten (DTBS) zu empfangen.
Tabelle 20 – (N2022.00) Attribute von MF / EF.C.HPC.AUTD_SUK_CVC
Attribut
Objekttyp
File Identifier
Short File Identifier
Number of Bytes
Flag Transaction Mode
Flag Checksum
Life Cycle Status
Content
Wert
Transparent Elementary File
‘2F05’
‘05’ = 5
341
False
False
Operational state (activated)
...
Anmerkung
siehe Tabelle 19
(N2021.00)
Zugriffsregel in allen SEs
Zugriffsart
SELECT, READ BINARY
ACTIVATE, DEACTIVATE, DELETE,
ERASE BINARY, UPDATE BINARY
Sicherheitsbedingung
ALWAYS
NEVER
Anmerkung
Aufbau und Inhalt des CVC in EF.C.HPC.AUTD_SUK_CVC mit CPI = ‘22’ sind in Kapitel 7.1 von
[HPC-P1] definiert und in Tabelle 19 (N2021.00) dargestellt. Tabelle 229 (N2624.00) enthält die für
C.HPC.AUTD_SUK_CVC relevante “Certificate Holder Authorization”.
HPC-Spezifikation V2.3.2, Teil II
Seite 27 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
4.3.9
PIN.CH
PIN.CH ist die globale PIN des Karteninhabers. Die PIN besteht aus 5 bis 8 Ziffern und ist änderbar.
Der Wiederholungszähler muss den Anfangswert 3 besitzen.
Die Nutzung eines 8-stelligen Rücksetzcodes (Personal Unblocking Key, PUK) wird durch einen Nutzungszähler beschränkt, dessen Anfangswert auf 10 gesetzt ist. Der Nutzungszähler wird bei jeder
Nutzung heruntergezählt, unabhängig davon, ob der eingegebene Rücksetzcode richtig oder falsch
ist. Die Eingabe des korrekten Wertes setzt den Wiederholungszähler von PIN.CH auf den Anfangswert zurück. Der Sicherheitsstatus der PIN.CH kann unbegrenzt verwendet werden, d.h. der DefaultWert von SSEC beträgt unendlich. Die folgende Tabelle zeigt die PIN-Eigenschaften:
Tabelle 21 – (N2023.00) Attribute von MF / PIN.CH
Attribut
Objekttyp
Password Identifier
Password Reference
Secret
Minimum Length
Start Retry Counter
Retry Counter
Transport Status
Flag Enabled
Start Security Status Evaluation
Counter
PUK
PUK Usage
Zugriffsregel in allen SEs
Zugriffsart
CHANGE RD (Option ‘00’)
GET PIN STATUS
RESET RC (Option ‘00’ und ‘01’)
VERIFY
Andere
Wert
Passwort
‘01’
‘01’
....
5
3
3
Transport-PIN Zufallszahl oder
Transport-PIN abgeleitet oder
Transport-PIN fester Wert oder
Reguläres Passwort
True
Infinite
Anmerkung
Wird personalisiert
...
10
Wird personalisiert
Sicherheitsbedingung
ALWAYS
ALWAYS
ALWAYS
ALWAYS
NEVER
Anmerkung
Gemäß Kapitel 14.6.1.4 und Kapitel 14.6.5.6 in [HPC-P1] prüft das COS nur die Minimallänge (5
Ziffern) von PIN.CH, d.h. das COS kontrolliert nicht, ob die Maximallänge von 8 Ziffern übergeschritten
wird.
Das Transport-PIN-Verfahren „Reguläres Passwort“ kann insbesondere für Nachfolgekarten Bedeutung haben. Im Falle eines anderen Verfahrens wird das Kommando CHANGE REFERENCE DATA
(siehe 4.6.2) dazu verwendet, eine reguläre PIN zu setzen.
4.3.10 PrK.HPC.AUTR_CVC
PrK.HPC.AUTR_CVC ist der globale private Schlüssel für C2C-Authentisierungen zwischen HPC/eGK
und HPC/CAMS, und zur Autorisierung von SMC-A und SMC-B. Weitere Eigenschaften des
Schlüssels sind in der folgenden Tabelle dargestellt.
HPC-Spezifikation V2.3.2, Teil II
Seite 28 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 22 – (N2024.00) Attribute von MF / PrK.HPC.AUTR_CVC
Attribut
Objekttyp
Key Identifier
Key Reference
Private Key
Algorithm Identifier
Zugriffsregel in allen SEs
Zugriffsart
INTERNAL AUTHENTICATE
EXTERNAL AUTHENTICATE
Andere
Wert
Privates RSA-Objekt
‘10’
‘10’
.... (2048 Bits)
rsaRoleAuthentication
rsaSessionkey4SM
Anmerkung
Sicherheitsbedingung
PWD(PIN.CH)
ALWAYS
NEVER
Anmerkung
Wird personalisiert
Der zu PrK.HPC.AUTR_CVC (mit CVC-Inhaberprofil 2,3,...) gehörende öffentliche Schlüssel ist im
Zertifikat C.HPC.AUTR_CVC enthalten.
4.3.11 PrK.HPC.AUTD_SUK_CVC
PrK.HPC.AUTD_SUK_CVC ist der globale private Schlüssel für C2C-Authentisierungen zwischen
HPC/SMC-A, HPC/SMC-B und HPC/SMC-K für die Übertragung von PIN-Daten und der DTBS zum
HPC. Weitere Eigenschaften des Schlüssels sind in der folgenden Tabelle dargestellt.
Tabelle 23 – (N2025.00) Attribute von MF / PrK.HPC.AUTD_SUK_CVC
Attribut
Objekttyp
Key Identifier
Key Reference
Private Key
Algorithm Identifier
Zugriffsregel in allen SEs
Zugriffsart
INTERNAL AUTHENTICATE
EXTERNAL AUTHENTICATE
Andere
Wert
Privates RSA-Objekt
‘11’
‘11’
.... (2048 Bits)
rsaRoleAuthentication
rsaSessionkey4SM
rsaSessionkey4Intro
Anmerkung
Sicherheitsbedingung
ALWAYS
ALWAYS
NEVER
Anmerkung
Wird personalisiert
Der zu PrK.HPC.AUTD_SUK_CVC (mit CVC-Inhaberprofil 53) gehörende öffentliche Schlüssel ist im
Zertifikat C.HPC. AUTD_SUK_CVC enthalten.
4.3.12 PuK.RCA.CS
PuK.RCA.CS ist der öffentliche Schlüssel der Root-CA des Gesundheitswesens für die Prüfung von
CVC-Zertifikaten, die von dieser herausgegeben werden. Die nachfolgende Tabelle zeigt die Eigenschaften des öffentlichen Schlüssels.
HPC-Spezifikation V2.3.2, Teil II
Seite 29 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 24 – (N2026.00) Attribute von MF / PuK.RCA.CS
Attribut
Objekttyp
Key Identifier
Key Reference
Public Key
OID
Zugriffsregel in allen SEs
Zugriffsart
PSO: VERIFY CERTIFICATE
Andere
Wert
Öffentliches RSA-Signaturprüfungsobjekt
CAR von C.CA_HPC.CS: ZDA-Kennung (5
Bytes) || Erweiterung (3 Bytes)
.... (2048 Bits)
´2B240304020204´ = {1 3 36 3 4 2 2 4}
Sicherheitsbedingung
ALWAYS
NEVER
Anmerkung
Wird personalisiert
Wird personalisiert
Anmerkung
Die Schlüsselreferenz von PuK.RCA.CS kann aus der HPC gemäß Abbildung 3 (N2049.00)
ausgelesen werden.
4.3.13 PuK.CAMS_HPC.AUT_CVC
PuK.CAMS_HPC.AUT_CVC (optional) ist der öffentliche Schlüssel, mit dem eine Authentisierung zwischen HPC und CAMS mit der Einrichtung eines TC durchgeführt wird. Die nachfolgende Tabelle zeigt
die Eigenschaften des öffentlichen Schlüssels.
Tabelle 25 – (N2027.00) Attribute von MF / PuK.CAMS_HPC.AUT_CVC
Attribut
Objekttyp
Key Identifier
CHA
Public Key
OID
Algorithm Identifier
Zugriffsregel in allen SEs
Zugriffsart
INTERNAL AUTHENTICATE
EXTERNAL AUTHENTICATE
Andere
Wert
Öffentliches RSA-Authentisierungsobjekt
'000000000000000000000013' (12 Bytes)
‘D2760001460001’
.... (2048 Bits)
’2B2403050204’ = {1 3 36 3 5 2 4}
rsaSessionkey4SM
Sicherheitsbedingung
ALWAYS
ALWAYS
NEVER
Anmerkung
Wird personalisiert
Wird personalisiert
Anmerkung
PuK.CAMS_HPC.AUT_CVC muss genau dann in der Karte vorhanden sein, wenn ein CAMS mit
asymmetrischer Authentisierung verwendet wird. PuK.CAMS_HPC.AUT_CVC ist ein globaler Schlüssel mit einem einheitlichen Key Identifier und einem CAMS-spezifischen Schlüsselwert, der zudem
vom Ausgabejahr der HPC abhängen kann. Das zugehörige CAMS ist wahrscheinlich daran
gebunden, jede einzelne Karte zu identifizieren, um den passenden Schlüssel zu verwenden. Der Key
Identifier kommt als Schlüsselreferenz im Authentisierungsverfahren zwischen HPC und CAMS zum
Einsatz (siehe Kapitel 13.2.1), während die CHA in Zugriffsregeln verwendet wird, siehe Tabelle 2
(N2003.00), Tabelle 8 (N2009.00), Tabelle 12 (N2014.00) und Tabelle 101 (N2105.00).
4.3.14 SK.CAMS
SK.CAMS (optional) ist der geheime Schlüssel für die Durchführung des HPC / CAMS-Authentisierungsverfahrens mit Aufbau eines Trusted Channel. Die nachfolgende Tabelle zeigt die Eigenschaften
des Schlüssels.
HPC-Spezifikation V2.3.2, Teil II
Seite 30 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 26 – (N2028.00) Attribute von MF / SK.CAMS
4.4
Attribut
Objekttyp
Key Identifier
encKey
Wert
3TDES Authentication Object
'13' = 19
...
macKey
...
Algorithm Identifier
Zugriffsregeln in allen SEs
Zugriffsart
MUTUAL AUTHENTICATE
Other
desSessionkey4SM
Sicherheitsbedingung
PWD(PIN.CH)
NEVER
Anmerkung
Wird
personalisiert
Wird
personalisiert
Anmerkung
Sicherheitsumgebungen auf MF-Ebene
Auf MF-Ebene wird ausschließlich die Sicherheitsumgebung SE # 1 (Default-SE) verwendet. Es ist
möglich, z.B. für die entfernte PIN-Eingabe, in SE # 1 einen Trusted Channel aufzubauen.
4.5
4.5.1
Öffnen der HPC
Kommandosequenz nach Auslesen des ATR
Die Kommandosequenz, die nach dem Auslesen des ATR gesendet werden muss, hängt von der
äußeren Umgebung und ihrem Wissen über die jeweilige Karte ab. Im Prinzip können die folgenden
Umgebungen unterschieden werden:
- Umgebung des Heilberuflers
- sonstige Umgebungen
In einer Umgebung, in der alles bekannt ist, ist es nicht unbedingt notwendig, die ICCSN zu lesen und
über sie z.B. ein bestimmtes Kartenprofil zu identifizieren, das die zur HPC gehörenden CV-Zertifikate
enthält. In anderen Umgebungen, in der z.B. die HPC nicht bekannt ist, kann es notwendig sein,
zuerst das EF.DIR, EF.GDO, EF.Version und möglicherweise auch die kryptografischen
Informationsobjekte in den EFs von DF.CIA.QES und DF.CIA.ESIGN zu lesen. Der Kartentyp kann
anhand der in EF.DIR angezeigten Kartenanwendungen bestimmt werden. Eine effiziente Weise, den
Typ einer präsentierten Karte zu bestimmen, ist die Selektion des MF mit einem SELECT Kommando
ohne Datenfeld und mit FCP in den Antwortdaten, in denen die Kennung der Root-Anwendung angezeigt wird, siehe Kapitel 4.5.2. Welcher Generation eine Karte angehört, kann an der in EF.Version
angezeigten Spezifikationsversion erkannt werden.
Im Folgenden werden das Auswählen der Root-Anwendung und das Lesen von EF.ATR, EF.GDO,
EF.DIR und EF.Version beschrieben.
4.5.2
Auswahl der Root-Anwendung
Nach dem Reset ist die Root-Anwendung automatisch ausgewählt. Zu einem späteren Zeitpunkt kann
die Root-Anwendung beispielsweise durch ein SELECT Kommando mit Anwendungskennung
ausgewählt werden, wie in Tabelle 27 (N2029.00) gezeigt ist.
HPC-Spezifikation V2.3.2, Teil II
Seite 31 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 27 - (N2029.00) SELECT Kommando für MF
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘A4’ = SELECT
‘04’ = DF-Auswahl mit AID
‘0C’ = Keine FCI in der Antwort
‘06’ = Länge von AID im Datenfeld
‘D27600014601’ = AID der Root-Anwendung(MF)
Nicht vorhanden
Tabelle 28 - (N2030.00) SELECT Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Anmerkung 1 – Der FID ‘3F00’ wird nicht für die MF-Auswahl verwendet, da nur im aktuellen Verzeichnis nach
dem angegebenen FID gesucht wird, siehe Kapitel 14.2.6.10 von [HPC-P1].
Anmerkung 2 – Der AID der Root-Anwendung kann mittels SELECT Kommando mit P2 = ‘04’ und leerem Datenfeld ermittelt werden. Die Antwort enthält FCP mit dem entsprechenden AID, siehe Kapitel 8.3.3 in [HPC-P1]. Das
ermöglicht eine effiziente Bestimmung des Kartentyps.
4.5.3
Lesen von EF.ATR und EF.GDO
Zum Lesen von EF.ATR und EF.GDO wird das ISO/IEC 7816-4 Kommando READ BINARY
verwendet.
Tabelle 29 - (N2031.00) READ BINARY Kommando mit SFID
CLA
INS
P1
Gemäß ISO/IEC 7816-4
‘B0’ = READ BINARY
‘xx’ = b8-b6: 100
b5-b1: 11101 SFID von EF.ATR: 29
b5-b1: 00010 SFID von EF.GDO: 2
‘00’ = Offset
Nicht vorhanden
Nicht vorhanden
‘00’ = Lesen bis Dateiende
P2
Lc
Datenfeld
Le
Tabelle 30 - (N2032.00) READ BINARY Antwort
Datenfeld
SW1-SW2
4.5.4
Daten
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Lesen von EF.DIR und EF.Version
Zum Lesen von EF.DIR und EF.Version wird das ISO/IEC 7816-4 Kommando READ RECORD
verwendet.
HPC-Spezifikation V2.3.2, Teil II
Seite 32 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 31 - (N2033.00) READ RECORD Kommando
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘B2’ = READ RECORD
‘xx’ = Recordnummer
‘F4’ = b8-b4: 11110 SFID von EF.DIR: 30
‘84’ = b8-b4: 10000 SFID von EF.Version: 16
b3-b1: 100 Lese Record P1
Nicht vorhanden
Nicht vorhanden
‘00’ = Gesamter Record
Anmerkung – In nachfolgenden Kommandos, kann der Short FID auf Null gesetzt werden (P2 = '04').
Tabelle 32 – (N2034.00) READ RECORD Antwort
Datenfeld
SW1-SW2
4.5.5
Record
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Lesen der CV-Zertifikate der HPC
Zum Lesen der zu einer HPC gehörenden Zertifikate C.CA_HPC.CS, C.HPC.AUTR_CVC und
C.HPC.AUTD_SUK_CVC wird das Kommando READ BINARY benutzt. Diese Zertifikate sollten im PC
des Heilberuflers gespeichert werden, damit sie nur einmal gelesen werden müssen. Dadurch kann
bei weiterer Nutzung Zeit gespart werden. Welche Rollen / Profile von einer neu präsentierten Karte
unterstützt werden, kann die externe Software ohne Wiedergewinnung des CVC-Signaturinputs
herausfinden, da die „Certificate Holder Authorization“ (CHA) auch im unverschlüsselten Teil des
Zertifikats enthalten ist, vgl. Tabelle 19 (N2021.00).
Tabelle 33 - (N2035.00) READ BINARY Kommando zum Lesen eines CV-Zertifikats
CLA
INS
P1, P2
Gemäß ISO/IEC 7816-4
‘B0’ = READ BINARY
- P1 = b8-b6:100
b5-b1: 00100 SFID von EF.C.CA_HPC.CS: 4
b5-b1: 00011 SFID von EF.C.HPC.AUTR_CVC: 3
b5-b1: 00101 SFID von EF.C.HPC.AUTD_SUK_CVC: 5
P2 = Offset
- ‘xxxx’ = Offset (Bit b8 von P1 = 0)
Lc
Nicht vorhanden
Datenfeld Nicht vorhanden
Le
‘000000’ = Lesen bis Dateiende
Tabelle 34 - (N2036.00) READ BINARY Antwort
Datenfeld
SW1-SW2
CV Zertifikat
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Falls die unterstützte „Extended Length“ nicht ausreicht, um das vollständige Zertifikat mit einem
einzelnen Befehl zu lesen, muss das READ BINARY Kommando mit Angabe des entsprechenden Offsets in P1-P2 wiederholt werden.
HPC-Spezifikation V2.3.2, Teil II
Seite 33 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
4.6
4.6.1
PIN-Management
PIN-Prüfung
Zur PIN-Prüfung wird das ISO/IEC 7816-4 Kommando VERIFY verwendet.
Tabelle 35 - (N2037.00) VERIFY Kommando für die PIN-Prüfung
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘20’ = VERIFY
‘00’
‘01’ = PIN.CH-Referenz
‘08’ = Länge des zugehörenden Datenfeldes
PIN (PIN-Format: siehe Kapitel 8.1.7 in [HPC-P1])
Nicht vorhanden
Tabelle 36 - (N2038.00) VERIFY Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Falls die eingegebene PIN falsch ist und zusätzliche Versuche erlaubt sind, muss die Zahl der noch
möglichen Versuche in den Status-Bytes, die in Kapitel 14.6.6.3 in [HPC-P1] spezifiziert sind,
angezeigt werden.
4.6.2
PIN-Änderung
Zur Änderung der PIN kann das ISO/IEC 7816-4 Kommando CHANGE REFERENCE DATA zu jeder
Zeit vom Heilberufler genutzt werden. Ist PIN.CH referenziert, kann das Kommando nur mit P1 = ‘00’,
d.h. mit alter und neuer PIN im Datenfeld ausgeführt werden. Die erfolgreiche Prüfung der alten PIN
setzt keinen Sicherheitsstatus der referenzierten PIN, siehe Kapitel 14.6.1.4 in [HPC-P1].
Das Kommando wird insbesondere dazu verwendet, den PIN-Transportstatus aufzuheben und eine
reguläre PIN zu setzen, siehe Kapitel 8.2.5 und 14.6.1 in [HPC-P1].
Tabelle 37 - (N2039.00) CHANGE REFERENCE DATA Kommando
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘24’ = CHANGE REFERENCE DATA
‘00’ = Ändere Referenzdaten
‘01’ = PIN.CH-Referenz
‘10’ = Länge des zugehörenden Datenfeldes
PIN_alt || PIN_neu (PIN-Format: siehe Kapitel 8.1.7 in [HPC-P1])
Nicht vorhanden
HPC-Spezifikation V2.3.2, Teil II
Seite 34 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 38 - (N2040.00) CHANGE REFERENCE DATA Antwort
Datenfeld
SW1-SW2
4.6.3
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Zurücksetzen des Fehlbedienungszählers und Setzen einer neuen PIN
Zum Zurücksetzen des Fehlbedienungszählers auf seinen Ausgangswert und – falls so realisiert –
zum Setzen einer neuen PIN.CH wird das Kommando RESET RETRY COUNTER verwendet.
Der Sicherheitsstatus wird durch dieses Kommando weder gesetzt noch beeinflusst, siehe
Kapitel 14.6.5.6 von [HPC-P1].
Tabelle 39 – (N2041.00) RESET RETRY COUNTER Kommando zum Zurücksetzen des
Fehlbedienungszählers und möglicherweise zum Setzen einer neuen PIN
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘2C’ = RESET RETRY COUNTER
‘00’ oder ‘01’
‘01’ = PIN.CH-Referenz
‘10’ oder ‘08’ = Länge des zugehörenden Datenfeldes
- Falls P1 = ‘00’ und P2 = ’01’: Rücksetz-Code (8 Byte) gefolgt von
einer neuen PIN (8 Byte)
- wenn P1 = ‘01’: Rücksetz-Code (8 Byte)
(RC und PIN-Format: siehe Kapitel 8.1.7 in [HPC-P1])
Nicht vorhanden
Tabelle 40 - (N2042.00) RESET RETRY COUNTER Antwort
Datenfeld
SW1-SW2
4.6.4
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Abfragen des PIN.CH-Status
Die Software kann sowohl den Authentisierungsstatus, als auch den PIN-Transportstatus mit dem
GET PIN STATUS Kommando ermitteln, siehe folgende Tabelle.
Tabelle 41 – (N2043.00) GET PIN STATUS Kommando
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4 für proprietäre Klasse
‘20’ = GET PIN STATUS
‘00’
‘01’ = PIN.CH-Referenz
Nicht vorhanden
Nicht vorhanden
Nicht vorhanden
HPC-Spezifikation V2.3.2, Teil II
Seite 35 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 42 – (N2044.00) GET PIN STATUS Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ PIN-Prüfung nicht erforderlich oder
spezifische Status-Bytes, siehe [HPC-P1]
HPC-Spezifikation V2.3.2, Teil II
Seite 36 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
5
5.1
Management von Kanälen
Allgemeine Aspekte
Die Unterstützung von vier logischen Kanälen durch eine HPC ist verbindlich vorgeschrieben, siehe
Kapitel 11.4 in [HPC-P1]. Die maximale Anzahl logischer Kanäle ist in EF.ATR angegeben, siehe
Tabelle 4 (N2005.00). Jeder Kanal hat seinen eigenen von den anderen unabhängigen
Sicherheitsstatus, d.h. dass beispielsweise die erfolgreiche Eingabe einer globalen PIN in einem
Kanal keinen Sicherheitsstatus in irgendeinem anderen Kanal setzt.
5.2
Öffnen eines logischen Kanals
Zum Öffnen eines logischen Kanals wird das ISO/IEC 7816-4 Kommando MANAGE CHANNEL mit
der Funktion "öffnen" genutzt. Das Kommando wird immer im Kanal #0 gesendet.
Tabelle 43 – (N2045.00) MANAGE CHANNEL Kommando zur Auswahl eines logischen Kanals
CLA
INS
P1-P2
Lc
Gemäß ISO/IEC 7816-4
‘70’ = MANAGE CHANNEL
‘0000’ = Öffne einen logischen Kanal,
Kanalnummer im Datenfeld der Antwort
Nicht vorhanden
Datenfeld
Le
Nicht vorhanden
‘01’
Tabelle 44 - (N2046.00) MANAGE CHANNEL Antwort
Datenfeld
-
SW1-SW2
5.3
-
Nr. des logischen Kanals, zugewiesen durch die HPC
(1 Byte)
nicht vorhanden, falls kein weiterer logischer Kanal
verfügbar ist
‘9000’, falls eine Kanalnummer. zugewiesen ist
‘6881’ kein weiterer logischer Kanal verfügbar
oder spezifische Status-Bytes, siehe [HPC-P1]
Schließen eines logischen Kanals
Zum Schließen eines logischen Kanals wird das ISO/IEC 7816-4 Kommando MANAGE CHANNEL mit
der Funktion "schließen" verwendet.
Tabelle 45 – (N2047.00) MANAGE CHANNEL Kommando zum Schließen eines logischen Kanals
CLA
INS
P1-P2
Lc
Gemäß ISO/IEC 7816-4
‘70’ = MANAGE CHANNEL
‘8000’ = Schließen eines logischen Kanals, Kanalnummer in CLA
Nicht vorhanden
Datenfeld
Le
Nicht vorhanden
Nicht vorhanden
HPC-Spezifikation V2.3.2, Teil II
Seite 37 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 46 – (N2048.00) MANAGE CHANNEL Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
HPC-Spezifikation V2.3.2, Teil II
Seite 38 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
6
6.1
Interaktionen zwischen HPC und eGK
Allgemeines
Für die HPC/eGK-Authentisierung sind zwei Schritte notwendig:
- die eGK muss ihre Authentizität nachweisen
- der Heilberufler muss seine Zugriffsberechtigung nachweisen
Hierfür muss eine CV-basierte Authentisierung stattfinden, nach der in der eGK der zugehörige
Sicherheitsstatus gesetzt ist, z.B. "Autorisierung des Zertifikatsinhabers (siehe Annex A) wurde erfolgreich präsentiert".
Während des Authentisierungsprozesses werden keine SM-Schlüssel erzeugt, da die HPC in der
folgenden Kommunikation mit der eGK (Lesen und Schreiben von Daten) nicht beteiligt ist.
Die HPC muss sicherstellen, dass der Authentisierungsprozess zwischen HPC und eGK nur nach
erfolgreicher Eingabe der PIN.CH durch den Heilberufler möglich ist.
6.2
Instanzen des CVC Schlüsselmanagements
Das allgemeine Modell für CV-Zertifikate und Instanzen des Schlüsselmanagements für CVCSchlüssel zeigt Abbildung 3 (N2049.00). Die Abbildung zeigt im Besonderen, wo die
Schlüsselreferenzen lokalisiert sind, die für die CVC-Prüfung und den nachfolgenden
Authentisierungsprozess benötigt werden.
Wurzel-CA Gesundheitswesen
PuK.RCA.CS
C.CA_
HPC.CS
CA
der Heilberufler
C.HPC.
AUTR_
CVC
AUT
CA
CS
CVC
PrK
PuK
= Authentisierung
= Zertifizierungsinstanz
= Certificate Signing
= CV-Zertifikat
= Privater Schlüssel
= Öffentlicher Schlüssel
Schlüsselreferenzen, die für das
CVC-basierte Authentisierungsverfahren
im HBA gesetzt werden müssen
PrK.RCA.CS
C.CA_
eGK.CS
CA
der Kostenträger
C.eGK.
AUTR_
CVC
PuK.RCA.CS ist in HBA, SMC und eGK vorhanden.
Die Schlüsselreferenz von PuK.RCA.CS (8 bytes), die vor
der Verifikation von C.CA_eGK.CS gesetzt werden muss,
ist in EF.C.CA_eGK.CS der eGK als CAR (8 bytes) am Ende
des Zertifikats enthalten.
Die Schlüsselreferenz von PuK.CA_eGK (8 bytes), die vor
der Verifikation von C.eGK.AUTR_CVC gesetzt werden
muss, ist in EF.C.eGK.AUTR_CVC der eGK als CAR
(8 bytes) am Ende des Zertifikats enthalten.
Die Schlüsselreferenz von PuK.eGK.AUTR_CVC (12 bytes),
die vor der C2C-Authentisierung gesetzt werden muss, ist
in EF.C.eGK.AUTR_CVC der eGK als CHR (12 bytes)
unmittelbar vor der CAR enthalten. Die CHR ist eine
Konkatenation von Index (1 byte, in allen Zertifikaten auf
’00’ gesetzt), Referenz auf den zugehörigen privaten
Schlüssel auf der eGK (1 byte) und Wert des DO ICCSN
(10 bytes), welches in EF.GDO der eGK enthalten ist.
CVC in HBA
(von der eGK
zu prüfen)
CVC in eGK
(von HBA
bzw. SMC zu
prüfen)
Abbildung 3 – (N2049.00) Instanzen des CVC Schlüsselmanagements, CV Zertifikate und
Schlüsselauswahl in einer HPC
HPC-Spezifikation V2.3.2, Teil II
Seite 39 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Falls eine eGK mit einem neuen öffentlichen Schlüssel der Wurzelinstanz eingesetzt wird, werden
Cross-Zertifikate benötigt, die mit dem in der HPC vorhandenen öffentlichen Schlüssel der
Wurzelinstanz geprüft werden können (ein Cross-Zertifikat enthält den neuen PuK.RCA.CS und kann
mit dem PuK.RCA.CS geprüft werden, der in der HPC vorhanden ist). Cross-Zertifikate werden von
der Wurzel-CA bereitgestellt und können z.B. in einem Konnektor gespeichert und von dort gelesen
werden.
Da die Nutzung von CV-Zertifikaten auch über Grenzen hinweg möglich ist, können Cross-Zertifikate
auch genutzt werden, um bei Bedarf später die öffentlichen Schlüssel der Wurzelinstanzen anderer
Länder zu importieren. Mit diesen importierten Schlüsseln kann die Prüfung der Authentizität einer
intelligenten Europäischen Krankenversicherungskarte EHIC ohne irgendeine Änderung oder
Erweiterung der HPC erfolgen (Die Prüfung der Authentizität einer elektronischen EHIC könnte in
naher Zukunft notwendig werden, da eine EHIC, die nur aus auf die eGK gedruckten Daten besteht,
leicht fälschbar ist und damit den Krankenversicherungen finanzielle Verluste zufügen kann).
6.3
Prüfung der CV-Zertifikate der eGK
Die Prüfung der CV-Zertifikate kann von unten nach oben erfolgen, da möglicherweise der öffentliche
Schlüssel für die C2C-Authentisierung bereits in der HPC vorhanden ist, siehe Kapitel 9.1 von [HPCP1] zur persistenten Speicherung von öffentlichen Schlüsseln.
Dazu versucht die externe Software, den öffentlichen Schlüssel der eGK zu setzen, um den Authentisierungsprozess direkt starten zu können, siehe Kapitel 6.4. Falls dieser Schlüssel noch nicht vorhanden ist, wird zunächst der öffentliche Schlüssel der CA_eGK gesetzt werden, um das eGK-Zertifikat zu
prüfen und den öffentlichen Schlüssel der eGK zu importieren. Falls dies wiederum nicht möglich ist,
wird der öffentliche Schlüssel der Wurzel-CA gesetzt, um das CA-Zertifikat zu prüfen und den CASchlüssel zu importieren. Alternativ kann der Prozess mit der Verifikation des eGK-Zertifikats beginnen, da die Wahrscheinlichkeit, bereits in der HPC gespeichert zu sein, für einen CA-Schlüssel größer
ist als für einen eGK-Schlüssel.
Im Folgenden wird der herkömmliche von oben nach unten durchgeführte Prozess dargestellt, der mit
der Prüfung des CA-Zertifikats beginnt. Dazu wird der öffentliche Schlüssel der gemeinsamen WurzelCA mit dem MSE Kommando ausgewählt. Die Schlüsselreferenz kann von der Software gemäß
Abbildung 3 (N2049.00) ermittelt werden.
Tabelle 47 - (N2050.00) MSE Kommando zur Auswahl des Root-Schlüssels
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘22’ = MANAGE SECURITY ENVIRONMENT
‘81’ = SET für Verifikation
‘B6’ = Digital Signature Template
‘0A’= Länge des zugehörenden Datenfeldes
‘83 08’ || ‘xx..xx’ = DO KeyRef von PuK.RCA.CS (zum
Auffinden der Schlüsselreferenz siehe Abbildung 3
(N2049.00))
Nicht vorhanden
Tabelle 48 - (N2051.00) MSE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Nachdem der öffentliche Wurzel-Schlüssel zur Prüfung von C.CA_eGK.CS ausgewählt worden ist,
wird das Kommando PSO: VERIFY CERTIFICATE an die HPC gesendet. Das Datenfeld enthält die
Signatur (welche den ersten Teil des Root-Zertifikats abdeckt und deren Signatur-Input im Klartext
nach der Verarbeitung der Signatur wiederhergestellt wird) und den restlichen Teil des CV-Zertifikats
HPC-Spezifikation V2.3.2, Teil II
Seite 40 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
(mit dem Schlussteil des PK-Modulus, OID, CHR, CAR), siehe Kapitel 7.1.2 in [HPC-P1] und Tabelle
17 (N2019.00).
Tabelle 49 - (N2052.00) PSO: VERIFY CERTIFICATE Kommando zur Prüfung des CA-Zertifikats
der eGK
CLA
INS
P1
P2
Gemäß ISO/IEC 7816-4
’2A’ = PERFORM SECURITY OPERATION: VERIFY CERTIFICATE
’00’
’AE’ = Zertifikat im Datenfeld; der signierte Signatur-Input besteht aus nicht
BER-TLV-kodierten Daten, d.h. der Zertifikatsinhalt ist eine Konkatenation
von DEs
‘000146’ = Länge des zugehörenden Datenfeldes = 326
‘5F37’ || ‘820100’ || SIG.RCA (256 Bytes) || ‘5F38’ || ‘3E’ || Nicht-wiederherstellbarer Teil der Zertifikatsignatur (62 Bytes)
Nicht vorhanden
Lc
Datenfeld
Le
Tabelle 50 - (N2053.00) PSO: VERIFY CERTIFICATE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Jetzt ist der öffentliche Schlüssel zur Prüfung des C.eGK.AUT_CVC in der HPC gespeichert und kann
ausgewählt werden.
Tabelle 51 - (N2054.00) MSE Kommando zur Auswahl des öffentlichen Schlüssels der CA_eGK
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘22’ = MANAGE SECURITY ENVIRONMENT
‘81’ = SET für Verifikation
‘B6’ = Digital Signature Template
‘0A’= Länge des zugehörenden Datenfeldes
‘83 08’ || ‘xx..xx’ = DO KeyRef von PuK.CA_eGK.CS (zum
Auffinden der KeyRef siehe Abbildung 3 (N2049.00))
Nicht vorhanden
Tabelle 52 - (N2055.00) MSE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Anschließend kann das C.eGK.AUT_CVC geprüft werden.
HPC-Spezifikation V2.3.2, Teil II
Seite 41 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 53 - (N2056.00) PSO: VERIFY CERTIFICATE Kommando zur Prüfung von
C.eGK.AUT_CVC
CLA
INS
P1
P2
Gemäß ISO/IEC 7816-4
’2A’ = PERFORM SECURITY OPERATION: VERIFY CERTIFICATE
’00’
’AE’ = Zertifikat im Datenfeld; der signierte Signatur-Input besteht aus nicht
BER-TLV-kodierten Daten, d.h. der Zertifikatsinhalt ist eine Konkatenation
von DEs
Lc
‘000150’ = Länge des zugehörenden Datenfeldes = 336
Datenfeld ‘5F37’ || ‘820100’ || SIG.RCA (256 Bytes) || ‘5F38’ || ‘48’ || Nicht-wiederherstellbarer Teil der Zertifikatsignatur (72 Bytes)
Le
Nicht vorhanden
Tabelle 54 - (N2057.00) PSO: VERIFY CERTIFICATE Antwort
Datenfeld
SW1-SW2
6.4
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Asymmetrische HPC/eGK-Authentisierung ohne Aufbau eines Trusted Channel
In der unten beschriebenen Kommandosequenz weist zunächst die eGK ihre Echtheit gegenüber der
HPC nach. Anschließend weist die HPC nach, dass sie Zugriffsrechte auf die eGK hat. Der Prozess
könnte auch in umgekehrter Reihenfolge ablaufen, da das COS nicht kontrolliert, ob zunächst die
interne oder externe Authentisierung durchgeführt werden muss. Die Kommandosequenz steht unter
Kontrolle der externen Software.
Bevor der Authentisierungsprozess durchgeführt werden kann, muss die PIN.CH erfolgreich
eingegeben werden. In einem ersten Schritt werden die Schlüsselreferenzen für PuK.eGK.AUT_CVC
und PrK.HPC.AUTR_CVC und die zugehörenden Algorithmenkennungen gesetzt.
Tabelle 55 - (N2058.00) MSE Kommando für die Schlüssel- und Algorithmenauswahl
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘22’ = MANAGE SECURITY ENVIRONMENT
‘81’ = SET für external Authentisierung
‘A4’ = Authentication Template in Datenfeld
‘11’ = Länge des zugehörenden Datenfeldes
‘83 0C xx ... xx’ || ‘80 01 00’
= DO KeyRef von PuK.eGK.AUT_CVC (zum Auffinden der KeyRef
siehe Abbildung 3 (N2049.00) und Anmerkung) || DO AlgID
rsaRoleCheck
Nicht vorhanden
Anmerkung – Als Schlüsselreferenz wird die CHR aus dem CV-Zertifikat der eGK verwendet. Die Referenz hat
eine Länge von 12 Bytes: Index '00' (1 Byte) || KeyRef von PrK.eGK.AUT_CVC (1 Byte) || ICCSN.eGK (10 Bytes),
siehe Kapitel 8.5.2 in [HPC-P1] zur CHR-Struktur.
Tabelle 56 - (N2059.00) MSE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
HPC-Spezifikation V2.3.2, Teil II
Seite 42 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 57 - (N2060.00) MSE Kommando für Schlüssel- und Algorithmenauswahl
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘22’ = MANAGE SECURITY ENVIRONMENT
‘41’ = SET für interne Authentisierung
‘A4’ = Authentication Template in Datenfeld
‘0A’ = Länge des zugehörenden Datenfeldes
’84 01 10’ || ‘80 01 00'
= DO KeyRef von PrK.HPC.AUTR_CVC || DO AlgID rsaRoleAuthentication
Nicht vorhanden
Tabelle 58 - (N2061.00) MSE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Anmerkung – Beide MSE SET Kommandos für interne und externe Authentisierung werden unmittelbar
hintereinander ausgeführt, so dass die Sequenz der Authentisierungskommandos nicht durch ein MSE SET
Kommando unterbrochen wird, siehe Kapitel 15 in [HPC-P1].
Danach wird von der HPC eine Zufallszahl angefordert.
Tabelle 59 - (N2062.00) GET CHALLENGE Kommando
CLA
INS
P1, P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘84’ = GET CHALLENGE
‘0000’
Nicht vorhanden
Nicht vorhanden
‘08’ = Länge der erwarteten Zufallszahl = 8
Tabelle 60 - (N2063.00) GET CHALLENGE Antwort
Datenfeld
SW1-SW2
RND.HPC (8 Bytes)
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Nach dem Kommando GET CHALLENGE folgt das Kommando EXTERNAL AUTHENTICATE, das die
digitale Signatur der eGK an die HPC liefert. Um diese digitale Signatur zu erhalten, muss das
Kommando INTERNAL AUTHENTICATE mit RND.HPC || ICCSN8.HPC im Datenfeld (siehe Kapitel
14.7.4 in [HPC-P1]) an die eGK gesendet werden. Die HPC muss die Signatur der eGK prüfen.
HPC-Spezifikation V2.3.2, Teil II
Seite 43 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 61 – (N2064.00) EXTERNAL AUTHENTICATE Kommando zur eGK-Authentisierung
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘82’ = EXTERNAL AUTHENTICATE
‘00’ = Algorithmus der Karte bereits bekannt
‘00’ = Schlüsselreferenz der Karte bereits bekannt
‘000100’ = Länge des zugehörenden Datenfeldes = 256
Auf die Authentisierung bezogene Daten, siehe Kapitel 14.7.1 in
[HPC-P1]) und
Nicht vorhanden
Tabelle 62 – (N2065.00) EXTERNAL AUTHENTICATE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Nachdem die eGK authentisiert ist, muss die HPC seine Zugriffsrechte auf die eGK nachweisen. Die
zuständige Software muss von der eGK vor der Sendung weiterer Kommandos eine Zufallszahl
anfordern.
Tabelle 63 - (N2066.00) INTERNAL AUTHENTICATE Kommando
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘88’ = INTERNAL AUTHENTICATE
‘00’ = Algorithmus der Karte bereits bekannt
‘00’ = Schlüsselreferenz der Karte bereits bekannt
‘000010’ = Länge des zugehörenden Datenfeldes
Auf die Authentisierung bezogene Daten,
siehe Kapitel 14.7.4 in [HPC-P1],
‘0100’ = Länge der erwarteten Signature
Tabelle 64 – (N2067.00) INTERNAL AUTHENTICATE Antwort
Datenfeld
SW1-SW2
Auf die Authentisierung bezogene Daten,
siehe [HPC-P1], Kapitel 14.7.4
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Der Authentisierungs-Token (Inhalt des Antwortdatenfeldes) wird in der entsprechenden eGK geprüft
und setzt bei positivem Ergebnis in der eGK den Sicherheitsstatus "CHA mit Rollenkennung 'xx'
erfolgreich präsentiert".
HPC-Spezifikation V2.3.2, Teil II
Seite 44 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
7
7.1
Interaktionen zwischen HPC und SMC
Allgemeines
Für Interaktionen zwischen HPC/SMC weist zunächst jede Karte gegenüber der anderen Karte ihre
Echtheit nach. Dazu muss zunächst ein CV-basierter Authentisierungsprozess ablaufen, damit in beiden Karten der entsprechende Sicherheitsstatus gesetzt werden kann, d.h. “Certificate Holder Authorization y (siehe Annex A) wurde erfolgreich präsentiert”. Allgemein unterstützt die HPC die folgenden
C2C-Authentisierungsprozesse:
-
Asymmetrische Authentisierung ohne Vereinbarung von Sitzungsschlüsseln
Asymmetrische Authentisierung mit Aufbau eines Trusted Channel
Asymmetrische Authentisierung mit persistenter Speicherung von Vorstellungsschlüsseln
Symmetrische Authentisierung mit den Vorstellungsschlüsseln mit Aufbau eines Trusted Channel.
Jeder asymmetrische Authentisierungsschlüssel unterstützt allerdings nur eine Untermenge der drei
oben genannten asymmetrischen Algorithmen, siehe Tabelle 22 (N2024.00) und Tabelle 23
(N2025.00). Welcher Prozess angemessen ist, hängt von der angestrebten HPC/SMC-Interaktion
(z.B. entfernte Datenübertragung) und den betroffenen Zugriffsregeln in der Karte ab (z.B.
Kommandodaten sind mit Secure Messaging zu schützen), siehe Tabelle 65 (N2068.00). Der Prozess
wird mit der entsprechenden Algorithmenkennung mittels MSE SET Kommandos ausgewählt.
Tabelle 65 – (N2068.00) Mögliche Authentisierungsprozesse mit HPC und/oder SMC
(informativ)
Quellkarte
SMC-A
(Profil 54:
PINSender)
SMC-B
(Profil 54:
PINSender)
Zugriffsbedingung auf
Authentisierungsschlüssel der Quellkarte
Authentisierung der
Zielkarte
Authentisierung der
Zielkarte
SMC-K
Authentisierung der
(Profil 51:
Zielkarte
SAK)
RFID Token
(Profil 52:
Always
KomfortMerkmal)
Zielkarte
HPC
(Profil 53:
SSEE)
SMC-B (Profil
55: PINEmpfänger)
RFID Token
(Profil 55: PINEmpfänger)
HPC
(Profil 53:
SSEE)
SMC-B
(Profil 55: PINEmpfänger)
RFID Token
(Profil 55: PINEmpfänger)
HPC
(Profil 53:
SSEE)
Zugriffsbedingung auf
Authentisierungsschlüssel der Zielkarte
Anmerkung
ALWAYS
Anwendungsfall
PIN-Übertragung
ALWAYS
Anwendungsfall
PIN-Übertragung
ALWAYS
Anwendungsfall
PIN-Übertragung
ALWAYS
Kein
Anwendungsfall
ALWAYS
Kein
Anwendungsfall
ALWAYS
Anwendungsfall
PIN-Übertragung
ALWAYS
SMC-K
Authentisierung der
(Profil 51: SAK) Zielkarte
Anwendungsfall
DTBSÜbertragung
Anwendungsfall
Auslösung der
Komfort-Signatur
Für die HPC/SMC-Authentisierungsprozesse verwendet jede Seite einen privaten Schlüssel für
Geräteauthentisierung. Auf Seite der HPC werden gegenüber der SMC-A, SMC-B und SMC-K das
HPC-Spezifikation V2.3.2, Teil II
Seite 45 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Zertifikat C.HPC.AUTD_SUK_CVC (Profil 53 Stapel- und Komfortsignatur-fähige Karte) und der
private Schlüssel PrK.HPC.AUTD_SUK_CVC genutzt. Zur Definition der Profile siehe Tabelle 229
(N2624.00).
Die Authentisierungsprozesse werden wie in Kapitel 15.4 in [HPC-P1] beschrieben durchgeführt.
Welche Seite sich zuerst authentisiert, hängt von den Zugriffsregeln der beteiligten Authentisierungsschlüssel ab. In den in Tabelle 65 (N2068.00) aufgeführten Authentisierungsprozessen muss sich die
HPC zuerst authentisieren. Beispielsweise authentisiert sich die HPC gegenüber der SMC-A zuerst,
damit ein Trusted Channel für die entfernte PIN-Eingabe aufgebaut werden kann.
Der asymmetrische Authentisierungsprozess mit Speicherung von Vorstellungsschlüsseln wird von
HPC, SMC-A, SMC-B und SMC-K unterstützt. Der Prozess liefert Schlüssel für den symmetrischen
Authentisierungsprozess, der gewöhnlich performanter als die asymmetrischen Algorithmen ist.
Die Vorstellungsschlüssel übernehmen Eigenschaften sowohl des öffentlichen, als auch des privaten
Schlüssels aus dem asymmetrischen Authentisierungsprozess, d.h. die verifizierte Rollenkennung, die
Schlüsselreferenz des öffentlichen Schlüssels (mit festgelegtem Index), die Zugriffsregel und den verwendeten Algorithmus, siehe Kapitel 8.5.2 in [HPC-P1]. Ein asymmetrischer Authentisierungsprozess
mit Aufbau eines Trusted Channel kann also durch das symmetrische Verfahren mit gespeicherten
Vorstellungsschlüsseln ersetzt werden.
7.2
Vorbereitungsschritte
Kapitel 4.5.5 beschreibt, wie die CV-Zertifikate der HPC – die auf MF-Ebene gespeichert sind – ausgelesen werden können. Es wird davon ausgegangen, dass die beteiligte Software die CVCs der HPC
nur einmal ausliest und sie z.B. zusammen mit der zugehörigen ICCSN im System speichert.
Die CV-Zertifikate der beteiligten SMC müssen geprüft werden, so dass die zugehörigen öffentlichen
Schlüssel zum Aufbau des Trusted Channel in der HPC vorhanden sind. Die folgenden CVCs müssen
verifiziert werden:
-
C.CA_SMC.CS
C.SMC.AUTD_RPS_CVC (SMC-A, SMC-B) oder C.SAK.AUTD_CVC (SMC-K)
Das Verfahren entspricht dem in Kapitel 6.3 beschriebenen Ablauf.
Falls die externe Software den Sicherheitsstatus vieler Authentisierungsschlüssel handhaben muss,
ohne einen Zustandsautomaten (der die internen Zustände verschiedener Karten abbilden könnte)
implementiert zu haben, kann sie mit dem GET SECURITY STATUS KEY Kommando den mit einer
CHA (mit Rollenkennung ungleich ’00’) verbundenen Sicherheitsstatus von der Karte erfragen, siehe
Tabelle 66 (N2069.00).
Tabelle 66 - (N2069.00) GET SECURITY STATUS KEY Kommando zur Abfrage eines bestimmten
Sicherheitsstatus
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4 für proprietäre Klasse
‘82’ = GET SECURITY STATUS KEY
‘80’ = Abfrage des Sicherheitsstatus
‘00’
‘0A’
- ‘5F4C 07’ || ‘D27600004000 36’ = DO CHA des Profils 54 (SMC-A, SMC-B) oder
- ‘5F4C 07’ || ‘D27600004000 33’ = DO CHA des Profils 51 (SMC-K)
Nicht vorhanden
HPC-Spezifikation V2.3.2, Teil II
Seite 46 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 67 - (N2070.00) GET SECURITY STATUS KEY Antwort
Datenfeld
SW1-SW2
7.3
Nicht vorhanden
- ‘9000’ Sicherheitsstatus gesetzt, siehe [HPC-P1]
- ‘63CF’ Sicherheitsstatus nicht gesetzt, siehe [HPC-P1]
Asymmetrische Authentisierung mit Aufbau eines Trusted Channel
Im ersten Teil des Verfahrens weist die HPC seine Echtheit gegenüber der SMC nach. Bevor die externe Software die folgenden Kommandos sendet, fordert sie von der SMC eine Zufallszahl an. Vor
den eigentlichen Authentisierungskommandos wird in der HPC die Schlüsselreferenz von PrK.HPC.
AUTD_SUK_CVC und die Algorithmenkennung gesetzt.
Tabelle 68 - (N2071.00) MSE Kommando für die Schlüssel- und Algorithmenauswahl
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘22’ = MANAGE SECURITY ENVIRONMENT
‘41’ = SET für interne Authentisierung
‘A4’ = Authentication Template im Datenfeld
‘06’ = Länge des zugehörenden Datenfeldes
’84 01 11’ || ‘80 01 54'
= DO KeyRef von PrK.HPC.AUTD_SUK_CVC der HPC || DO AlgID rsaSessionkey4SM
Nicht vorhanden
Tabelle 69 - (N2072.00) MSE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Darüber hinaus müssen der Schlüssel für die externe Authentisierung und der entsprechende Algorithmus in der HPC ausgewählt werden. Beide MSE SET Kommandos für interne und externe Authentisierung werden unmittelbar hintereinander ausgeführt, so dass die Sequenz der Authentisierungskommandos nicht durch ein MSE SET Kommando unterbrochen wird, siehe Kapitel 15 in [HPC-P1].
Tabelle 70 - (N2073.00) MSE Kommando für die Schlüssel- und Algorithmenauswahl
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘22’ = MANAGE SECURITY ENVIRONMENT
‘81’ = SET für externe Authentisierung
‘A4’ = Authentication Template im Datenfeld
‘11’ = Länge des zugehörenden Datenfeldes
‘83 0C xx ... xx’ || ‘80 01 54’ = DO KeyRef von PuK.SMC.AUTD_RPS_CVC (SMC-A, SMC-B)
oder PuK.SAK.AUTD_CVC (SMC-K), siehe Anmerkung || DO AlgID rsaSessionkey4SM
Nicht vorhanden
Tabelle 71 - (N2074.00) MSE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
HPC-Spezifikation V2.3.2, Teil II
Seite 47 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Anmerkung – Als Schlüsselreferenz wird die CHR aus dem CV-Zertifikat der Gegenseite verwendet. Die Referenz
hat eine Länge von 12 Bytes: Index '00' (1 Byte) || KeyRef von PrK.SMC.AUTD_RPS_CVC oder
PrK.SAK.AUTD_CVC (1 Byte) || ICCSN.SMC (10 Bytes), siehe Kapitel 8.5.2 in [HPC-P1] zur CHR-Struktur.
Tabelle 72 – (N2075.00) INTERNAL AUTHENTICATE Kommando
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘88’ = INTERNAL AUTHENTICATE
‘00’ = Algorithmus der Karte bereits bekannt
‘00’ = Schlüsselreferenz der Karte bereits bekannt
‘000010’ = Länge des zugehörenden Datenfeldes
Auf die Authentisierung bezogene Daten,
siehe Kapitel 14.7.4 in [HPC-P1]
‘0100’ = Länge der erwarteten Signatur
Tabelle 73 – (N2076.00) INTERNAL AUTHENTICATE Antwort
Datenfeld
SW1-SW2
Auf die Authentisierung bezogene Daten,
siehe Kapitel 14.7.4 in [HPC-P1]
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Der Authentisierungs-Token (Inhalt des Antwortdatenfeldes) wird in der entsprechenden SMC geprüft
und setzt bei positivem Ergebnis in der SMC den Sicherheitsstatus "CHA mit Rollenkennung 'xx'
erfolgreich präsentiert".
Der zweite Teil des Authentisierungsprozesses umfasst die externe Authentisierung der SMC.
Zunächst wird eine Zufallszahl von der HPC angefordert.
Tabelle 74 - (N2077.00) GET CHALLENGE Kommando
CLA
INS
P1, P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘84’ = GET CHALLENGE
‘0000’
Nicht vorhanden
Nicht vorhanden
‘08’ = Länge der erwarteten Zufallszahl = 8
Tabelle 75 - (N2078.00) GET CHALLENGE Antwort
Datenfeld
SW1-SW2
RND.HPC (8 Bytes)
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Die Zufallszahl wird der SMC zusammen mit den 8 LSB der ICCSN der HPC übergeben. Das
Ergebnis des von der SMC ausgeführten Kommandos INTERNAL AUTHENTICATE wird mit dem
Kommando EXTERNAL AUTHENTICATE an die HPC gesendet. Die HPC muss die SMC-Signatur
prüfen.
HPC-Spezifikation V2.3.2, Teil II
Seite 48 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 76 – (N2079.00) EXTERNAL AUTHENTICATE Kommando zur SMC-Authentisierung
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘82’ = EXTERNAL AUTHENTICATE
‘00’ = Algorithmus der Karte bereits bekannt
‘00’ = Schlüsselreferenz der Karte bereits bekannt
‘000100’ = Länge des zugehörenden Datenfeldes = 256
Auf die Authentisierung bezogene Daten,
siehe Kapitel 14.7.1 in [HPC-P1]
Nicht vorhanden
Tabelle 77 – (N2080.00) EXTERNAL AUTHENTICATE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Die auf die Authentisierung bezogenen Daten enthalten Elemente zur Schlüsselableitung. Die Secure
Messaging-Schlüssel werden gemäß Kapitel 13.1 in [HPC-P1] berechnet.
7.4
Asymmetrische Authentisierung mit Speicherung von Vorstellungsschlüsseln
In der Authentisierungssequenz mit Vereinbarung von Vorstellungsschlüsseln empfängt die HPC das
erste INTERNAL AUTHENTICATE, die SMC das erste EXTERNAL AUTHENTICATE, um in der SMC
den Sicherheitsstatus zu setzen, der für die Verwendung des privaten Authentisierungsschlüssels der
SMC erforderlich ist. Bevor die Authentisierungskommandos zur HPC gesendet werden, werden die
Referenz des Schlüssels PrK.HPC.AUTD_SUK_CVC und die passende Algorithmenkennung gesetzt.
Tabelle 78 - (N2081.00) MSE Kommando für die Schlüssel- und Algorithmenauswahl
CLA
INS
P1
P2
Lc
Datenfel
d
Le
Gemäß ISO/IEC 7816-4
‘22’ = MANAGE SECURITY ENVIRONMENT
‘41’ = SET für interne Authentisierung
‘A4’ = Authentication Template im Datenfeld
‘06’ = Länge des zugehörenden Datenfeldes = 6
‘84 01 11 || 80 01 94’
= DO KeyRef von PrK.HPC.AUTD_SUK_CVC der HPC ||
DO AlgID rsaSessionkey4Intro
Nicht vorhanden
Tabelle 79 - (N2082.00) MSE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes; siehe [HPC-P1]
Darüber hinaus müssen der Schlüssel für die externe Authentisierung und der entsprechende Algorithmus in der HPC ausgewählt werden. Beide MSE SET Kommandos für interne und externe Authentisierung werden unmittelbar hintereinander ausgeführt, so dass die Sequenz der Authentisierungskommandos nicht durch ein MSE SET Kommando unterbrochen wird, siehe Kapitel 15 in [HPC-P1].
HPC-Spezifikation V2.3.2, Teil II
Seite 49 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 80 - (N2083.00) MSE Kommando für die Schlüssel- und Algorithmenauswahl
CLA
INS
P1
P2
Lc
Datenfel
d
Le
Gemäß ISO/IEC 7816-4
‘22’ = MANAGE SECURITY ENVIRONMENT
‘81’ = SET für externe Authentisierung
‘A4’ = Authentication Template im Datenfeld
‘11’ = Länge des zugehörigen Datenfeldes = 17
’83 0C xx’ || ‘80 01 94'
= DO KeyRef von PuK.SMC.AUTD_RPS_CVC (SMC-A, SMC-B) oder
Puk.SAK.AUTD_CVC (SMC-K), siehe Anmerkung || DO AlgID rsaSessionkey4Intro
Nicht vorhanden
Tabelle 81 - (N2084.00) MSE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes; siehe [HPC-P1]
Anmerkung – Als Schlüsselreferenz wird die CHR aus dem CV-Zertifikat der Gegenseite verwendet.
Die Referenz hat eine Länge von 12 Bytes: Index '00' (1 Byte) || KeyRef von PrK.SMC.AUTD_
RPS_CVC oder PrK.SAK.AUTD_CVC (1 Byte) || ICCSN.SMC (10 Bytes), siehe Kapitel 8.5.2 in [HPCP1] zur CHR-Struktur.
Der erste Teil des Authentisierungsprozesses umfasst die interne Authentisierung der HPC. Zunächst
wird eine Zufallszahl von der SMC angefordert. Daraufhin muss ein INTERNAL AUTHENTICATE
Kommando mit RND.SMC || ICCSN8.SMC im Datenfeld an die HPC gesendet werden.
Tabelle 82 - (N2085.00) INTERNAL AUTHENTICATE Kommando
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘88’ = INTERNAL AUTHENTICATE
‘00’ = Algorithmus der Karte bereits bekannt
‘00’ = Key Reference der Karte bereits bekannt
‘000010’ = Länge des zugehörenden Datenfeldes = 16
Auf die Authentisierung bezogene Daten, siehe Kapitel 14.7.4 in [HPC-P1]
‘0100’ = Länge der erwarteten Authentisierungsdaten = 256
Tabelle 83 - (N2086.00) INTERNAL AUTHENTICATE Antwort
Datenfeld
SW1-SW2
Auf die Authentisierung bezogene Daten, siehe Kapitel 14.7.4 in [HPC-P1]
‘9000’ oder spezifische Status-Bytes; siehe [HPC-P1]
Der Authentisierungs-Token (Inhalt des Antwortdatenfeldes) wird in der entsprechenden SMC geprüft
und die SMC setzt vorübergehend einen Sicherheitsstatus. Der zweite Teil des Authentisierungsprozesses umfasst die externe Authentisierung der SMC. Dazu fordert die Software zunächst eine Zufallszahl von der HPC an.
Tabelle 84 - (N2087.00) GET CHALLENGE Kommando
CLA
INS
P1, P2
HPC-Spezifikation V2.3.2, Teil II
Gemäß ISO/IEC 7816-4
‘84’ = GET CHALLENGE
‘0000’
Seite 50 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Lc
Datenfeld
Le
Nicht vorhanden
Nicht vorhanden
‘08’ = Länge der erwarteten Zufallszahl = 8
Tabelle 85 - (N2088.00) GET CHALLENGE Antwort
Datenfeld
SW1-SW2
RND.HPC (8 bytes)
‘9000’ oder spezifische Status-Bytes; siehe [HPC-P1]
Die Zufallszahl wird der SMC zusammen mit den 8 LSB der ICCSN der HPC übergeben. Das
Ergebnis des von der SMC ausgeführten Kommandos INTERNAL AUTHENTICATE wird mit dem
Kommando EXTERNAL AUTHENTICATE an die HPC gesendet. Die HPC prüft die SMC-Signatur.
Tabelle 86 - (N2089.00) EXTERNAL AUTHENTICATE Kommando zur SMC-Authentisierung
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘82’ = EXTERNAL AUTHENTICATE
‘00’ = Algorithmus der Karte bereits bekannt
‘00’ = Key Reference der Karte bereits bekannt
‘000100’ = Länge des zugehörigen Datenfeldes = 256
Auf die Authentisierung bezogene Daten, siehe Kapitel 14.7.1 in [HPC-P1]
Nicht vorhanden
Tabelle 87 - (N2090.00) EXTERNAL AUTHENTICATE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes; siehe [HPC-P1]
Die HPC setzt vorübergehend einen Sicherheitsstatus. Die auf die Authentisierung bezogenen Daten
enthalten Elemente zur Schlüsselableitung. Gemäß Kapitel 13.1 in [HPC-P1] werden während des
ersten Kommandos, das auf die Authentisierungssequenz folgt, die Vorstellungsschlüssel abgeleitet
und deren Attribute gesetzt. Die CHR aus dem CV-Zertifikat der SMC wird als Schlüsselreferenz
gespeichert, nachdem der Index (erstes Byte der CHR) an das berechnete Schlüsselmaterial
angepasst wurde, d.h. ‘02’ für 3TDES-Schlüssel, siehe Kapitel 8.5.2 in [HPC-P1]. Während der
Ableitung der Vorstellungsschlüssel wird der Sicherheitsstatus gelöscht, Secure Messaging wird nicht
eingeschaltet. Die Vorstellungsschlüssel werden in einer symmetrischen Authentisierung verwendet,
um Schlüssel für Secure Messaging zu vereinbaren, siehe nächstes Kapitel.
7.5
Symmetrische Authentisierung mit Aufbau eines Trusted Channel
Falls ein bestimmte HPC und eine bestimmte SMC sich bereits einander vorgestellt, d.h. eine asymmetrische Authentisierung mit persistenter Speicherung von Vorstellungsschlüsseln durchgeführt haben, können beide Karten die symmetrische Authentisierung unter Nutzung der gemeinsamen Vorstellungsschlüssel ausführen.
Bei erfolgreicher symmetrischer Authentisierung wird der Sicherheitsstatus “Erfolgreiche Prüfung der
der SMC-Rollenkennung” gesetzt, da die nachgewiesene Rollenkennung, die verwendete Schlüsselkennung und die Zugriffsregel des privaten Schlüssels auf die Vorstellungsschlüssel übergegangen
sind, siehe [HPC-P1], Kapitel 8.5.2, Kapitel 13.1.1 und Kapitel 15.6.
Die Kommandosequenz auf Seite de HPC beginnt mit dem Auswählen der Vorstellungsschlüssel und
der entsprechenden Algorithmenkennung für interne Authentisierung.
HPC-Spezifikation V2.3.2, Teil II
Seite 51 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 88 - (N2091.00) MSE Kommando für die Schlüssel- und Algorithmenauswahl
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘22’ = MANAGE SECURITY ENVIRONMENT
‘41’ = SET für interne Authentisierung
‘A4’ = Authentication Template im Datenfeld
‘11’ = Länge des zugehörenden Datenfeldes
’83 0C 02 xx...xx’ || ‘80 01 54' = DO KeyRef der Vorstellungsschlüssel in der HPC, siehe
Anmerkung || DO AlgID desSessionkey4SM
Nicht vorhanden
Anmerkung – Die Schlüsselreferenz hat eine Länge von 12 Bytes: Index '02' für 3TDES (1 Byte) || KeyRef von
PrK.SMC.AUTD_RPS_CVC oder PrK.SAK.AUTD_CVC (1 Byte) || ICCSN.SMC (10 Bytes), siehe Kapitel 8.5.2 in
[HPC-P1] zum Aufbau der Referenz von Vorstellungsschlüsseln.
Tabelle 89 - (N2092.00) MSE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Zudem muss für die externe Authentisierung der Schlüssel und der entsprechende Algorithmus in der
HPC ausgewählt werden. Beide MSE SET Kommandos für interne und externe Authentisierung werden unmittelbar hintereinander ausgeführt, so dass die Sequenz der eigentlichen Authentisierungskommandos nicht durch ein MSE SET Kommando unterbrochen wird, siehe Kapitel 15 in [HPC-P1].
Tabelle 90 - (N2093.00) MSE Kommando für die Schlüssel- und Algorithmenauswahl
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘22’ = MANAGE SECURITY ENVIRONMENT
‘81’ = SET für externe Authentisierung
‘A4’ = Authentication Template im Datenfeld
‘11’ = Länge des zugehörenden Datenfeldes
‘83 0C 02 xx ... xx’ || ‘80 01 54’ = DO KeyRef der Vorstellungsschlüssel in der HPC,
siehe Anmerkung || DO AlgID desSessionkey4SM
Nicht vorhanden
Anmerkung – Die Schlüsselreferenz hat eine Länge von 12 Bytes: Index '02' für 3TDES (1 Byte) || KeyRef von
PrK.SMC.AUTD_RPS_CVC oder PrK.SAK.AUTD_CVC (1 Byte) || ICCSN.SMC (10 Bytes), siehe Kapitel 8.5.2 in
[HPC-P1] zum Aufbau der Vorstellungsschlüsselreferenz.
Tabelle 91 - (N2094.00) MSE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Anschließend wird eine Zufallszahl von der SMC angefordert. Dann muss ein INTERNAL AUTHENTICATE Kommando mit RND.SMC || ICCSN8.SMC im Datenfeld zur HPC gesendet werden.
HPC-Spezifikation V2.3.2, Teil II
Seite 52 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 92 – (N2095.00) INTERNAL AUTHENTICATE Kommando
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘88’ = INTERNAL AUTHENTICATE
‘00’ = Algorithmus der Karte bereits bekannt
‘00’ = Schlüsselreferenz der Karte bereits bekannt
‘10’ = Länge des zugehörenden Datenfeldes
Auf die Authentisierung bezogene Daten,
siehe Kapitel 14.7.4 in [HPC-P1]
‘68’ = Länge der erwarteten Authentisierungsdaten = 104
Tabelle 93 – (N2096.00) INTERNAL AUTHENTICATE Antwort
Datenfeld
SW1-SW2
Auf die Authentisierung bezogene Daten,
siehe Kapitel 14.7.4 in [HPC-P1]
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Auf Seite der SMC erfolgt anschließend ein MUTUAL AUTHENTICATE Kommando. Dieses
Kommando gibt die Authentisierungsdaten der HPC an die SMC weiter. Die SMC muss die HPCAuthentisierungsdaten prüfen und die eigenen Authentisierungsdaten berechnen. Die Authentisierungsdaten der SMC (Inhalt des Antwortdatenfeldes) werden in der HPC mittels eines EXTERNAL
AUTHENTICATE Kommandos geprüft.
Tabelle 94 – (N2097.00) EXTERNAL AUTHENTICATE Kommando für die SMC-Authentisierung
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘82’ = EXTERNAL AUTHENTICATE
‘00’ = Algorithmus der Karte bereits bekannt
‘00’ = Schlüsselreferenz der Karte bereits bekannt
‘68’ = Länge des zugehörenden Datenfeldes = 104
Auf die Authentisierung bezogene Daten,
siehe Kapitel 14.7.1 in [HPC-P1]
Nicht vorhanden
Tabelle 95 – (N2098.00) EXTERNAL AUTHENTICATE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Eine erfolgreiche Prüfung setzt in der HPC den Sicherheitsstatus “CHA mit Rollenkennung 'xx'
erfolgreich präsentiert”. Ein Trusted Channel wurde aufgebaut, der nun zur gesicherten
Datenübertragung an die HPC zur Verfügung steht.
HPC-Spezifikation V2.3.2, Teil II
Seite 53 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
7.6
Autorisierungsprozesse
Wie im [GMG] festgelegt, kann ein Heilberufler andere ausgewählte Personen autorisieren, auf die
geschützten Bereiche der eGK zuzugreifen. Dies wird durch die Nutzung einer autorisierten SMC-A
oder SMC-B erreicht. Die Autorisierung der SMC ist mit der Nutzung des Schlüssels PrK.SMC.AUTR_
CVC in Authentisierungsprozessen verknüpft. Die Nutzung des Schlüssels PrK.SMC.AUTR_ CVC für
eine SMC/eGK-Authentisierung setzt gemäß seiner Zugriffsregeln die erfolgreiche Authentisierung
durch eine HPC mit der passenden Rollenkennung in der CHA des Zertifikat C.HPC.AUTR_CVC
voraus, siehe Kapitel 5.3.9 und Kapitel 5.7 in [HPC-P3] für weitere Details.
Alternativ kann für die SMC-B, die Authentisierung des Heilberuflers durch eine erfolgreiche Eingabe
der PIN.SMC erzielt werden, siehe Kapitel 6.3.10, Kapitel 6.3.11 und Kapitel 6.7 in [HPC-P3] für
weitere Details.
Die folgende Tabelle zeigt mögliche Autorisierungsprozesse gegenüber SMCs und benennt die
beteiligten Karten und Zugriffsbedingungen der Authentisierungsschlüssel.
Tabelle 96 – (N2099.00) Mögliche Autorisierungsverfahren (informativ)
Mögliche
Nutzung
Sich authenti- Sicherheitsbedingung
sierende Karte des Auth.-schlüssels
der sich authentisierenden Karte
HPC
PWD(PIN.CH)
mit Profil 2
(oder anderem
Rollenprofil)
Autorisierung
SMC-B
PWD(PIN.SMC) OR
der SMC zum
mit Profil 2
AUT(CHA des Profils 2)
Zugriff auf
(oder anderem
eGK-Daten
Rollenprofil)
SMC-A
AUT(CHA des Profils 2)
mit Profil 2
(oder anderem
Rollenprofil)
HPC
ALWAYS
mit Profil 53
Autorisierung
der SMC zur
PIN-Übertragung an die
sich authentisierende
Karte
Autorisierung
der SMC zur
Übertragung
der DTBS an
die HPC
SMC-B
mit Profil 55
RFID Token
mit Profil 55
HPC
mit Profil 53
ALWAYS
PWD(PIN.Token) OR
ALWAYS
ALWAYS
Zielkarte
Sicherheitsbedingung des
Authentisierungsschlüssels
der Zielkarte
SMC-A mit zugehörigem Profil
SMC-B mit zugehörigem Profil
SMC-A mit zugehörigem Profil
SMC-B mit zugehörigem Profil
SMC-A mit zugehörigem Profil
SMC-B mit zugehörigem Profil
SMC-A
mit Profil 54
SMC-B
mit Profil 54
SMC-A
mit Profil 54
SMC-B
mit Profil 54
SMC-A
mit Profil 54
SMC-B
mit Profil 54
SMC-K
mit Profil 51
AUT(CHA des zugehör. Profils)
PWD(PIN.SMC) OR
AUT(CHA des zugehör. Profils)
AUT(CHA des zugehör. Profils)
PWD(PIN.SMC) OR
AUT(CHA des zugehör. Profils)
AUT(CHA des zugehör. Profils)
PWD(PIN.SMC) OR
AUT(CHA des zugehör. Profils)
AUT(CHA des Profils 55)
AUT(CHA des Profils 55)
AUT(CHA des Profils 55)
AUT(CHA des Profils 55)
AUT(CHA des Profils 55)
AUT(CHA des Profils 55)
AUT(CHA des Profils 53)
Anmerkung – Diese Tabelle listet die Autorisierungsverfahren, die technisch aufgrund der Zugriffsregeln der
zugrunde liegenden Authentisierungsschlüssel möglich sind. Es ist damit nicht definiert, welche Anwendungsfälle
schließlich in der Praxis zugelassen werden.
Die Autorisierung der SMC-A oder SMC-B für entfernte PIN-Übertragung an die sich authentisierende
Karte (HPC, SMC-B oder RFID Token) oder die Autorisierung einer SMC-K für die Übertragung der
DTBS zur HPC ist Teil des C2C-Authentisierungprozesses, d.h. die Zielkarte authentisiert sich zuerst,
HPC-Spezifikation V2.3.2, Teil II
Seite 54 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
um der SMC die Nutzung des Authentisierungsschlüssel zum Senden der Daten zu ermöglichen,
siehe Kapitel 7.1.
Bevor die HPC eine SMC autorisiert, muss PIN.CH erfolgreich präsentiert werden. Die PIN.CHAuthentisierung und die SMC-Autorisierung können in einem beliebigen logischen Kanal der HPC
erfolgen. In einem ersten Schritt muss der private Schlüssel für die Rollenauthentisierung oder der
entsprechende Vorstellungsschlüssel (falls zuvor bei einer Rollenauthentisierung mit dem private
Schlüssel gespeichert) zusammen mit dem passenden Algorithmus ausgewählt werden.
Tabelle 97 - (N2100.00) MSE Kommando für die Schlüssel- und Algorithmenauswahl
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘22’ = MANAGE SECURITY ENVIRONMENT
‘41’ = SET für interne Authentisierung
‘A4’ = Authentication Template
‘06’ oder ‘11’ = Länge des zugehörenden Datenfeldes
‘84 01 10 || 80 01 00’
= DO KeyRef von PrK.HPC.AUTR_CVC || DO AlgID rsaRoleAuthentication
Nicht vorhanden
Tabelle 98 - (N2101.00) MSE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Anschließend wird von der SMC eine Zufallszahl (RND.SMC) angefordert. Dann muss das
Kommando INTERNAL AUTHENTICATE mit RND.SMC || ICCSN8.SMC im Datenfeld an die HPC
gesendet werden.
Tabelle 99 – (N2102.00) INTERNAL AUTHENTICATE Kommando zur Prüfung der Echtheit der
HPC für die Autorisierung einer SMC
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘88’ = INTERNAL AUTHENTICATE
‘00’ = Algorithmus der Karte bereits bekannt
‘00’ = Schlüsselreferenz der Karte bereits bekannt
‘000010’ = Länge des zugehörenden Datenfeldes
Auf die Authentisierung bezogene Daten,
siehe Kapitel 14.7.4 in [HPC-P1]
‘0100’ = Länge erwarteten Authentisierungsdaten = 256
Tabelle 100 – (N2103.00) INTERNAL AUTHENTICATE Antwort
Datenfeld
SW1-SW2
Auf die Authentisierung bezogene Daten,
siehe Kapitel 14.7.4 in [HPC-P1]
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Die von der HPC generierten Authentisierungsdaten werden von der SMC geprüft. Ist die Prüfung
erfolgreich, wird in der SMC der Sicherheitsstatus gesetzt, der die Nutzung des privaten Schlüssels
PrK.SMC.AUTR_CVC erlaubt.
HPC-Spezifikation V2.3.2, Teil II
Seite 55 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
8
8.1
Die Heilberufsanwendung
Dateistruktur und Dateiinhalt
Abbildung 4 (N2104.00) zeigt die Dateistruktur von DF.HPA.
MF
DF.HPA
EF.HPD
Abbildung 4 - (N2104.00) Dateistruktur von DF.HPA
8.1.1
DF.HPA (Health Professional Application)
DF.HPA ist eine “Application” gemäß Kapitel 8.3.1.1 in [HPC-P1], d.h. ist mittels Anwendungskennung
selektierbar. Tabelle 101 (N2105.00) zeigt die Eigenschaften des Anwendungsverzeichnisses.
Tabelle 101 – (N2105.00) Attribute von MF / DF.HPA
Attribut
Objekttyp
Application Identifier
File Identifier
Wert
Application Directory
‘D27600014602’
-
Life Cycle Status
Zugriffsregel in allen SEs
Zugriffsart
SELECT
LOAD APPLICATION
(after HPC issuing)
Operational state (activated)
ACTIVATE, DEACTIVATE,
DELETE
NEVER
Sicherheitsbedingung
ALWAYS
AUT(‘D27600014600' || '01’) AND
SmMac AND
SmCmdEnc
Anmerkung
Herstellerspezifisch; Falls unterstützt, dann
außerhalb des Intervalls [‘1000’, ‘FEFF’];
siehe Kapitel 8.1.1 in [HPC-P1]
Anmerkung
Nur dann ausführbar, wenn ein CAMS genutzt wird, siehe Kapitel 13. Falls ein CAMS
mit symmetrischer Authentisierung eingesetzt wird, muss die Sicherheitsbedingung
die Schlüsselreferenz des entsprechenden
symmetrischen Schlüssels enthalten, d.h.
AUT('13') statt AUT(‘D27600014600' || '01’).
Schlüssel und CVCs für den Authentisierungsprozess befinden sich auf MF-Ebene. Die Heilberufsanwendung erlaubt das Anlegen weiterer Dateien, falls dafür in der Zukunft eine Notwendigkeit bestehen
sollte, siehe Kapitel 13.
HPC-Spezifikation V2.3.2, Teil II
Seite 56 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
8.1.2
EF.HPD (Health Professional Data)
Das transparente Datei EF.HPD ist für die Speicherung von Daten vorgesehen, die sich auf den
jeweiligen Heilberufler beziehen, z.B. die Bestätigung der Teilnahme an Fortbildungsmaßnahmen. Die
File kann immer gelesen werden, aber eine Aktualisierung ist nur nach erfolgreicher Eingabe der
PIN.CH möglich. Siehe Tabelle 102 (N2106.00) für weitere Eigenschaften der Datei.
Tabelle 102 – (N2106.00) Attribute von MF / DF.HPA / EF.HPD
Attribut
Objekttyp
File Identifier
Short File Identifier
Number of Bytes
Flag Transaction Mode
Flag Checksum
Life Cycle Status
Content
Zugriffsregel in allen SEs
Zugriffsart
SELECT, READ BINARY
UPDATE BINARY
ACTIVATE, DEACTIVATE, DELETE,
ERASE BINARY
8.2
Wert
Transparent Elementary File
‘D001’
‘01’ = 1
2048
False
True
Operational state (activated)
...
Sicherheitsbedingung
ALWAYS
PWD(PIN.CH)
NEVER
Anmerkung
Wird personalisiert
Anmerkung
Sicherheitsumgebungen
In DF.HPA wird nur das SE # 1 verwendet.
8.3
Auswahl der Anwendung
Die Auswahl der Anwendung erfolgt mit dem ISO/IEC 7816-4 Kommando SELECT wie in den folgenden zwei Tabellen angegeben.
Tabelle 103 - (N2107.00) SELECT Kommando für DF.HPA
CLA
INS
P1
P2
Lc
Gemäß ISO/IEC 7816-4
‘A4’ = SELECT
‘04’ = DF-Auswahl mittels AID
‘0C’ = Keine FCI in der Antwort
‘06’ = Länge des zugehörenden
Datenfeldes
Datenfeld ‘D27600014602’ = AID von DF.HPA
Le
Nicht vorhanden
Tabelle 104 - (N2108.00) SELECT Antwort
Datenfeld
SW1-SW2
8.4
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Lesen und Aktualisieren von EF.HPD
HPC-Spezifikation V2.3.2, Teil II
Seite 57 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Zum Lesen von EF.HPD wird das READ BINARY Kommando verwendet.
Tabelle 105 - (N2109.00) READ BINARY Kommando zum Lesen von EF.HPD
CLA
INS
P1, P2
Gemäß ISO/IEC 7816-4
‘B0’ = READ BINARY
- P1 = b8-b6:100
b5-b1: 00001 SFID von EF.HPD: 1
P2 = Offset
- 'xxxx’ = Offset (bit 8 von P1 = 0)
Lc
Nicht vorhanden
Datenfeld Nicht vorhanden
Le
'00' oder ‘000000’
Tabelle 106 - (N2110.00) READ BINARY Antwort
Datenfeld
SW1-SW2
Daten
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Falls die unterstützte „Extended Length“ nicht ausreicht, um die Daten mit einem einzelnen Befehl zu
lesen, muss das READ BINARY Kommando mit Angabe des entsprechenden Offsets in P1-P2
wiederholt werden.
Die Aktualisierung von EF.HPD ist mit dem Kommando UPDATE BINARY nach erfolgreicher Eingabe
von PIN.CH möglich.
Tabelle 107 - (N2111.00) UPDATE BINARY Kommando für updating EF.HPD
CLA
INS
P1, P2
Gemäß ISO/IEC 7816-4
‘D6’ = UPDATE BINARY
- P1 = b8-b6:100
b5-b1: 00001 SFID von EF.HPD: 1
P2 = Offset
- 'xxxx’ = Offset (bit 8 von P1 = 0)
Lc
‘xx’ oder ‘00xxxx’ = Länge des zugehörenden
Datenfeldes
Datenfeld Daten
Le
Nicht vorhanden
Tabelle 108 - (N2112.00) UPDATE BINARY Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Falls die unterstützte „Extended Length“ nicht ausreicht, um die Daten mit einem einzelnen Befehl zu
schreiben, muss das UPDATE BINARY Kommando mit Angabe des entsprechenden Offsets in P1-P2
wiederholt werden.
HPC-Spezifikation V2.3.2, Teil II
Seite 58 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
9
9.1
Anwendung für die qualifizierte elektronische Signatur (QES)
Dateistruktur und Dateiinhalt
Abbildung 5 (N2113.00) zeigt die prinzipielle Dateistruktur der QES-Anwendung, die in
Übereinstimmung mit DIN66291 definiert ist.
MF
DF.QES
PrK.HP.QES
EF.C.HP.QES
PIN.QES
EF.C.HP.QES-AC1
EF.DM
EF.C.HP.QES-AC2
EF.SSEC
EF.C.HP.QES-AC3
= Attributzertifikat
AC
= X.509-Zertifikat
C
DM = Display Message
= Heilberufler
HP
QES = Qualifizierte Elektronische Signatur
PrK = Privater Schlüssel
SSEC = Security Status Evaluation Counter
Abbildung 5 – (N2113.00) Prinzipielle Struktur der QES-Anwendung
Die QES-Anwendung besitzt EFs für das X.509-QES-Zertifikat und maximal drei Attributzertifikate.
Zusätzlich sind ein EF für eine Display Message, die bei der Remote-Nutzung einer stationären HPC
verwendet werden kann, und ein EF zur Anzeige des unterstützten Maximalwertes des SSEC
angelegt.
9.1.1
DF.QES (Qualified Electronic Signature Application)
DF.QES ist ein “Application Directory” gemäß Kapitel 8.3.1.1 in [HPC-P1], d.h. ist mittels Anwendungskennung selektierbar, siehe Kapitel 9.4. Die folgende Tabelle zeigt Eigenschaften und Zugriffsregel, die für das QES-Anwendungsverzeichnis gelten.
Tabelle 109 – (N2114.00) Attribute von MF / DF.QES
Attribut
Objekttyp
Application Identifier
File Identifier
Wert
Application Directory
‘D27600006601’
-
Life Cycle Status
Zugriffsregel in allen SEs
Zugriffsart
SELECT
LOAD APPLICATION, ACTIVATE,
DEACTIVATE, DELETE
Operational state (activated)
HPC-Spezifikation V2.3.2, Teil II
Sicherheitsbedingung
ALWAYS
NEVER
Anmerkung
Herstellerspezifisch; Falls unterstützt,
dann außerhalb des Intervalls [‘1000’,
‘FEFF’]; siehe Kapitel 8.1.1 in [HPC-P1]
Anmerkung
Seite 59 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
9.1.2
PrK.HP.QES
PrK.HP.QES ist der private Schlüssel zur Berechnung von qualifizierten elektronischen Signaturen.
Die nachfolgende Tabelle zeigt die Schlüsselreferenz und andere Eigenschaften des Schlüssels. Die
Eigenschaften der PIN werden in Kapitel 9.1.3 dargestellt.
Tabelle 110 – (N2115.00) Attribute von MF / DF.QES / PrK.HP.QES
Attribut
Objekttyp
Key Identifier
Key Reference
Private Key
Key Available
Algorithm Identifier
Zugriffsregel in SE # 1
Zugriffsart
COMPUTE DIGITAL SIGNATURE
(P2 = ‘9E’ oder ‘AC’)
Andere
Zugriffsregel in SE # 2
Zugriffsart
COMPUTE DIGITAL SIGNATURE
(P2 = ‘9E’ oder ‘AC’)
Wert
Privates RSA-Objekt
‘04’ = 4
‘84’
.... (2048 Bits)
True
signPKCS1_V1_5
signPSS
sign9796_2_DS2
Anmerkung
Sicherheitsbedingung
PWD(PIN.QES)
Anmerkung
Einzelsignatur-Modus
Wird personalisiert
NEVER
Sicherheitsbedingung
PWD(PIN.QES) AND
AUT(‘D27600004000’ || '33') AND
SmMac AND
SmCmdEnc AND
SmRespEnc
Siehe Anmerkung
Andere
Wird personalisiert
Anmerkung
Modus für Stapel- und
Komfortsignatur, siehe
[TR-03114] und [TR-
03115]
Geräteauthentisierung
von SMC-K mit Profil 51
(SAK)
NEVER
Anmerkung – Trotz der AND-Relation der Sicherheitsbedingungen kann die HPC allein nicht ausschließen, dass
die Authentisierung mit Profil 51 ohne Vereinbarung von SM-Schlüsseln erfolgte und die SM-Schlüssel mit einem
von 51 verschiedenen Profil der Gegenseite vereinbart wurden (die Authentisierung mit Profil 51 könnte dabei
bestehen bleiben). Das wird durch zwei beschränkende Maßnahmen verhindert: Erstens kann der private
Schlüssel der SMC-K mit Profil 51 (SAK) nur unter Vereinbarung von SM-Schlüsseln oder Speicherung von
Vorstellungsschlüsseln genutzt werden. Zweitens verlangt die Zugriffsregel der dem Profil 51 zugeordneten
Authentisierungsschlüssels der SMC-K, dass sich die HPC mit Profil 53 zuerst gegenüber der SMC-K
authentisiert. Da die Speicherung von Vorstellungsschlüsseln keinen Sicherheitsstatus setzt, können nach
Authentisierung der SMC-K ggf. in der HPC vorliegende SM-Schlüssel nur aus eben jener Authentisierung
stammen.
9.1.3
PIN.QES
PIN.QES ist eine DF-spezifische PIN, die nur zum Schutz des privaten Schlüssels für die elektronische Signatur des Heilberuflers (PrK.HP.QES) gemäß SigG/SigV verwendet wird. Die PIN besteht aus
6 bis 8 Ziffern.
Die Nutzung eines 8 bis 12-stelligen Rücksetzcodes (Personal Unblocking Key, PUK) wird durch einen
Nutzungszähler beschränkt, dessen Anfangswert auf 10 gesetzt ist. Der Sicherheitsstatus von
PIN.QES kann nur für eine begrenzte Anzahl von Signaturen verwendet werden, d.h. der SSECMaximalwert ist endlich.
Die PIN-Referenz für die Kommandos VERIFY, CHANGE REFERENCE DATA und RESET RETRY
COUNTER und andere PIN-Eigenschaften sind in der folgenden Tabelle zusammengefasst.
HPC-Spezifikation V2.3.2, Teil II
Seite 60 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 111 – (N2116.00) Attribute von MF / DF.QES / PIN.QES
Attribut
Objekttyp
Password Identifier
Password Reference
Secret
Minimum Length
Start Retry Counter
Retry Counter
Transport Status
Flag Enabled
Start Security Status Evaluation
Counter
PUK
PUK Usage
Zugriffsregel in allen SEs
Zugriffsart
CHANGE RD (Option ‘00’)
GET PIN STATUS
RESET RC (Option ‘01’)
VERIFY
Andere
Wert
Passwort
‘01’
‘81’
....
6
3
3
Transport-PIN Zufallszahl oder
Transport-PIN abgeleitet oder
Transport-PIN fester Wert oder
Reguläres Passwort
True
SE # 1: SSEC = 1
SE # 2: 1 ≤ SSEC ≤ 250
...
10
Sicherheitsbedingung
ALWAYS
ALWAYS
ALWAYS
ALWAYS
NEVER
Anmerkung
Wird personalisiert
Max. Wert in SE # 2 wie
in EF.SSEC angezeigt
Wird personalisiert
Anmerkung
Gemäß Kapitel 14.6.1.4 und 14.6.5.6 in [HPC-P1] prüft das COS nur die minimale Länge (6 Ziffern)
der PIN.QES, d.h. das COS kontrolliert nicht, ob die maximale Länge von 8 Ziffern überschritten wird.
Die Initialisierung der PIN.QES, beispielsweise durch Nutzung einer Transport-PIN, muss den Vorgaben der BNA entsprechen. Zum Einrichten der regulären PIN dient das Kommando CHANGE REFERENCE DATA (siehe 4.6.2).
9.1.4
EF.DM
Die transparente Datei EF.DM enthält die Display Message, die dem Heilberufler anzeigt, dass ein
Trusted Channel erfolgreich aufgebaut wurde. Sie besteht aus 8 Bytes (ASCII-Zeichen). Die Display
Message kann vom Heilberufler nach erfolgreicher Eingabe seiner PIN.CH geändert werden. Weitere
Eigenschaften der Datei EF.DM zeigt die nachfolgende Tabelle.
Tabelle 112 – (N2117.00) Attribute von MF / DF.QES / EF.DM
Attribut
Objekttyp
File Identifier
Short File Identifier
Number of Bytes
Flag Transaction Mode
Flag Checksum
Life Cycle Status
Content
Zugriffsregel in allen SEs
Zugriffsart
SELECT
READ BINARY
HPC-Spezifikation V2.3.2, Teil II
Wert
Transparent Elementary File
‘D004’
‘04’ = 4
8 Bytes
True
True
Operational state (activated)
...
Sicherheitsbedingung
ALWAYS
{AUT(‘D27600004000’ || '33') OR
Anmerkung
Wird personalisiert
Anmerkung
Rollenauthentisierung
Seite 61 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
AUT(‘D27600004000’ || '36') } AND
SmMac AND
SmRspEnc
der SMC-K mit Profil 54
(SAK) oder SMC-A oder
SMC-B mit Profil 51
(PIN-Sender)
UPDATE BINARY
PWD(PIN.CH)
Zugriffsregel von
PIN.CH ist auf MFEbene definiert
ACTIVATE, DEACTIVATE, DELETE,
ERASE BINARY
NEVER
9.1.5
EF.SSEC
Die transparente Datei EF.SSEC zeigt die SSEC-Maximalwerte an, die für eine konkrete Anwendungsumgebung der HPC gemäß Evaluierung und Bestätigung der HPC als Sichere Signaturerstellungseinheit definiert wurden. Die Eigenschaften der Datei sind in Tabelle 113 (N2118.00)
zusammengestellt.
Tabelle 113 – (N2118.00) Attribute von MF / DF.QES / EF.SSEC
Attribut
Objekttyp
File Identifier
Short File Identifier
Number of Bytes
Flag Transaction Mode
Flag Checksum
Life Cycle Status
Content
Wert
Transparent Elementary File
‘D005’
‘05’ = 5
46 Bytes
False
False
Operational state (activated)
...
Anmerkung
Wird personalisiert,
siehe Tabelle 114
(N2119.00)
Zugriffsregel in allen SEs
Zugriffsart
SELECT, READ BINARY
ACTIVATE, DEACTIVATE, DELETE,
ERASE BINARY, UPDATE BINARY
Sicherheitsbedingung
ALWAYS
NEVER
Anmerkung
Der Inhalt von EF.SSEC, siehe Tabelle 114 (N2119.00), wird während der Personalisierung
gespeichert. Die externe Signaturanwendungskomponente kann den Inhalt der Datei lesen, um die
Größe des Signaturstapels zu optimieren. Es ist allerdings nicht möglich, die aktuellen SSEC-Werte
aus der Karte auszulesen, da die zulässigen SSEC-Maximalwerte während der Kartenproduktion im
RAM fest implementiert werden und der aktuelle Stand vom COS verwaltet wird. Die Angaben in
EF.SSEC müssen den implementierten SSEC-Maximalwerten entsprechen.
HPC-Spezifikation V2.3.2, Teil II
Seite 62 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 114 – (N2119.00) Inhalt von EF.SSEC
Tag
’7B’
Länge
‘2C’
Bedeutung
Datenobjekte der Sicherheitsumgebung
Tag Länge Wert
Bedeutung
‘80’
‘01’
‘01’
Sicherheitsumgebung: 1
‘A4’ ‘11’
Authentication Template
Tag
Länge Wert
‘82’
‘06’
‘D27600006601’
‘83’
‘01’
‘81’
‘95’
‘01’
‘08’
‘C0’
‘01’
‘01’
Tag Länge Wert
Bedeutung
‘80’
‘01’
‘02’
Sicherheitsumgebung: 2
‘A4’ ‘11’
Authentication Template
Tag
Länge Wert
‘82’
‘06’
‘D27600006601’
‘83’
‘01’
‘81’
‘95’
‘01’
‘08’
‘C0’
‘01’
‘xx’
Bedeutung
DF-Name: DF.QES
Schlüsselreferenz: PIN.QES
Usage Qualifier: Benutzerauthentisierung
SSEC-Maximalwert: 1
Bedeutung
DF-Name: DF.QES
Schlüsselreferenz: PIN.QES
Usage Qualifier: Benutzerauthentisierung
SSEC-Maximalwert, z.B. 250
Anmerkung 1 – Abgesehen vom SSEC-Object werden unterhalb des Tag ‘7B’ die Datenobjekte gemäß [ISO78164] verwendet. Der SSEC-Maximalwert könnte auch in der CIA.QES-Datei EF.PrKD als “Common Object Attribute”
“userConsent” ausgedrückt werden. Allerdings würde ein Wert von beispielsweise 250 die in [ISO7816-15] definierte Obergrenze („cia-ub-userConsent“ = 15) überschreiten. Zudem kann das Attribut “userConsent” schwerlich
mit einzelnen Sicherheitsumgebungen verknüpft werden.
Anmerkung 2 – Die SSEC-Maximalwerte im Bereich 251-254 sollten nicht verwendet werden, da diese Werte im
COS möglicherweise eine andere Bedeutung haben. Falls ein unbegrenzter SSEC notwendig ist, muss das in
EF.SSEC durch die Kodierung ‘FF’ im SSEC-Feld angezeigt werden.
9.1.6
EF.C.HP.QES
Die transparente Datei EF.C.HP.QES enthält das X.509-Zertifikat mit dem öffentlichen Schlüssel des
Heilberuflers für die qualifizierte elektronische Signatur gemäß SiG/SigV. Die Eigenschaften der Datei
sind in Tabelle 115 (N2120.00) zusammengefasst.
Tabelle 115 – (N2120.00) Attribute von MF / DF.QES / EF.C.HP.QES
Attribut
Objekttyp
File Identifier
Short File Identifier
Number of Bytes
Flag Transaction Mode
Flag Checksum
Life Cycle Status
Content
Zugriffsregel in allen SEs
Zugriffsart
SELECT, READ BINARY
ACTIVATE, DEACTIVATE, DELETE,
ERASE BINARY, UPDATE BINARY
HPC-Spezifikation V2.3.2, Teil II
Wert
Transparent Elementary File
‘C000’
‘10’ = 16
1536 oder auf Zertifikatslänge beschränkt
False
False
Operational state (activated)
...
Sicherheitsbedingung
ALWAYS
NEVER
Anmerkung
Wird personalisiert
Anmerkung
Seite 63 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
9.1.7
EF.C.HP.QES-AC1, -AC2 und -AC3
Die transparenten Dateien EF.C.HP.QES-AC1, -AC2 und -AC3 können X.509-Attributzertifikate
enthalten, z.B. von einer Heilberufskammer (z.B. Ärztekammer, Apothekerkammer) oder von einer
entsprechenden Organisation (z.B. einer Ärztevereinigung). Die charakteristischen Dateiattribute und
Zugriffsregeln sind in den nachfolgenden Tabellen dargestellt.
Tabelle 116 – (N2121.00) Attribute von MF / DF.QES / EF.C.HP.QES-AC1
Attribut
Objekttyp
File Identifier
Short File Identifier
Number of Bytes
Flag Transaction Mode
Flag Checksum
Life Cycle Status
Content
Zugriffsregel in allen SEs
Zugriffsart
SELECT, READ BINARY
UPDATE BINARY
Wert
Transparent Elementary File
‘C001’
‘01’ = 1
1024 oder auf Zertifikatslänge beschränkt
False
False
Operational state (activated)
... Wenn leer, dann erstes Byte auf ‘00’ gesetzt
Anmerkung
Sicherheitsbedingung
ALWAYS
PWD(PIN.CH)
Anmerkung
ACTIVATE, DEACTIVATE, DELETE,
ERASE BINARY
NEVER
Wird personalisiert
Zugriffsregel von
PIN.CH ist auf MFEbene definiert
Tabelle 117 – (N2122.00) Attribute von MF / DF.QES / EF.C.HP.QES-AC2
Attribut
Objekttyp
File Identifier
Short File Identifier
Number of Bytes
Flag Transaction Mode
Flag Checksum
Life Cycle Status
Content
Zugriffsregel in allen SEs
Zugriffsart
SELECT, READ BINARY
UPDATE BINARY
Wert
Transparent Elementary File
‘C002’
‘02’ = 2
1024 oder auf Zertifikatslänge beschränkt
False
False
Operational state (activated)
... Wenn leer, dann erstes Byte auf ‘00’ gesetzt
Anmerkung
Sicherheitsbedingung
ALWAYS
PWD(PIN.CH)
Anmerkung
ACTIVATE, DEACTIVATE, DELETE,
ERASE BINARY
NEVER
Wird personalisiert
Zugriffsregel von
PIN.CH ist auf MFEbene definiert
Tabelle 118 – (N2123.00) Attribute von MF / DF.QES / EF.C.HP.QES-AC3
Attribut
Objekttyp
File Identifier
Short File Identifier
Number of Bytes
Flag Transaction Mode
Flag Checksum
Life Cycle Status
Content
HPC-Spezifikation V2.3.2, Teil II
Wert
Transparent Elementary File
‘C003’
‘03’ = 3
1024 oder auf Zertifikatslänge beschränkt
False
False
Operational state (activated)
... Wenn leer, dann erstes Byte auf ‘00’ gesetzt
Anmerkung
Wird personalisiert
Seite 64 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Zugriffsregel in allen SEs
Zugriffsart
SELECT, READ BINARY
UPDATE BINARY
ACTIVATE, DEACTIVATE, DELETE,
ERASE BINARY
Sicherheitsbedingung
ALWAYS
PWD(PIN.CH)
Anmerkung
Zugriffsregel von
PIN.CH ist auf MFEbene definiert
NEVER
Alle TLV-kodierten X.509-Zertifikate besitzen als erstes Byte das Tag ‘30’ (eines Sequence-Objektes).
Wenn die Datei kein Zertifikat enthält, so muss das dadurch angezeigt werden, dass das erste Byte
auf ’00’ gesetzt ist.
9.2
Erzeugung einer qualifizierten elektronischen Signatur
Der Prozess zur Erzeugung einer elektronischen Signatur besteht aus mehreren Schritten, die in
Abbildung 6 (N2124.00) gezeigt werden.
Abbildung 6 - (N2124.00) Signaturprozess gemäß ISO/IEC 9796-2
Der Signaturprozess ist für die HPC so definiert, dass das Hashing vollständig außerhalb der Karte erfolgt. Da beim RSA-Verfahren der Hashwert kürzer ist als der Signatur-Input (DSI) für die Signaturberechnung, muss ein Padding-Verfahren auf den Hashwert angewendet werden, d.h. der Hashwert wird
formatiert. Das Padding wird in der HPC durchgeführt und das Padding-Verfahren, das angewendet
werden soll, muss mit dem Kommando MSE ausgewählt werden.
HPC-Spezifikation V2.3.2, Teil II
Seite 65 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
9.3
Sicherheitsumgebungen
Im DF.QES gibt es zwei Sicherheitsumgebungen (SEs):
-
SE # 1: Voreingestelltes SE zur Nutzung der Signaturfunktion für Einzelsignaturen. Die Nutzung
eines Trusted Channel ist nicht vorgeschrieben aber möglich.
-
SE # 2: SE zur Nutzung der Signaturfunktion für Stapel- und Komfortsignaturen. Zwischen
HPC/SMC-K wird ein Trusted Channel genutzt, um die zu signierenden Daten in der geschützten
Umgebung des Heilberuflers (wird von der Karte geprüft) zu übertragen.
Anmerkung – Für die Stapel- und Komfortsignatur wird die PIN mit oder ohne Trusted Channel in SE # 2 zur HPC
übertragen. Muss die PIN entfernt eingegeben werden, so kontrolliert die externe Software, dass die PIN in einem
Trusted Channel übertragen wird.
9.4
Auswahl der QES-Anwendung
Vor Selektion der Anwendung kann es notwendig sein, einen weiteren logischen Kanal zu öffnen, siehe Kapitel 5.2. Die QES-Anwendung wird mit dem folgenden SELECT Kommando ausgewählt.
Tabelle 119 - (N2125.00) SELECT Kommando für DF.QES
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘A4’ = SELECT
‘04’ = DF-Auswahl mit AID
'0C' = Keine FCI in der Antwort
‘06’ = Länge des zugehörenden
Datenfeldes
‘D27600006601’ = AID von DF.QES
Nicht vorhanden
Tabelle 120 - (N2126.00) SELECT Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Mit der DF-Auswahl ist die Sicherheitsumgebung SE # 1 implizit gewählt.
9.5
Auswahl der Sicherheitsumgebung
Falls die QES-Anwendung für die Stapel- und Komfortsignatur verwendet werden soll, dann muss, bevor irgendein Kommando nach der Auswahl der Anwendung gesendet wird, die Sicherheitsumgebung
SE # 2 mit dem Kommando MSE unter Nutzung der RESTORE-Funktion ausgewählt werden.
HPC-Spezifikation V2.3.2, Teil II
Seite 66 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 121 - (N2127.00) MSE Kommando zur SE-Auswahl für die Stapel- und Komfortsignatur
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘22’ = MANAGE SECURITY ENVIRONMENT
‘F3’ = RESTORE
‘02’ = SE # 2
Nicht vorhanden
Nicht vorhanden
Nicht vorhanden
Tabelle 122 - (N2128.00) MSE Antwort
Datenfeld
SW1-SW2
9.6
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Lesen und Aktualisieren der Display Message
Wenn der Authentisierungsprozess vor der QES-Berechnung einen Trusted Channel aufgebaut hat,
kann die Display Message ausgelesen und dem Heilberufler als Zusicherung dienen, dass nachfolgende Kommandos Secure Messaging nutzen. Allerdings wird das Lesen der Display Message nicht
von der HPC kontrolliert. Zum Auslesen der Display Message wird das READ BINARY Kommando
verwendet.
Tabelle 123 - (N2129.00) READ BINARY Kommando zum Lesen der Display Message
CLA
INS
P1
Gemäß ISO/IEC 7816-4
‘B0’ = READ BINARY
'84' = b8-b6:100
b5-b1: 00100 SFID von EF.DM: 4
P2
‘00’ = Offset
Lc
Nicht vorhanden
Datenfeld Nicht vorhanden
Le
'08' = Länge der erwarteten Zufallszahl = 8
Anmerkung – Jede Anwendung mit Trusted Channel (DF.QES und DF.ESIGN) hat ihre eigene Datei EF.DM mit
SFID 4.
Tabelle 124 - (N2130.00) READ BINARY Antwort
Datenfeld
SW1-SW2
Display Message
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Die Display Message kann mit dem UPDATE BINARY Kommando nach erfolgreicher Eingabe der
PIN.CH geändert werden.
HPC-Spezifikation V2.3.2, Teil II
Seite 67 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 125 - (N2131.00) UPDATE BINARY Kommando zum Ändern der Display Message
CLA
INS
P1
Gemäß ISO/IEC 7816-4
‘D6’ = UPDATE BINARY
b8-b6:100
b5-b1: 00100 SFID von EF.DM: 4
P2
‘00’ = Offset
Lc
‘08’ = Länge des zugehörenden
Datenfeldes
Datenfeld Neue Display Message (8 Bytes)
Le
Nicht vorhanden
Tabelle 126 - (N2132.00) UPDATE BINARY Antwort
Datenfeld
SW1-SW2
9.7
9.7.1
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
PIN-Management
Prüfung der PIN
Für die PIN-Prüfung wird das ISO/IEC 7816-4 Kommando VERIFY genutzt.
Tabelle 127 - (N2133.00) VERIFY Kommando zur PIN-Prüfung
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘20’ = VERIFY
‘00’
‘81’ = PIN.QES Referenz
‘08’ = Länge des zugehörenden Datenfeldes
PIN (Format: siehe Kapitel 8.1.7 in [HPC-P1])
Nicht vorhanden
Tabelle 128 - (N2134.00) VERIFY Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Falls die eingegebene PIN falsch war und zusätzliche Versuche erlaubt sind, muss die Zahl der noch
möglichen Versuche in den Status Bytes, die in Kapitel 14.6.6.3 von [HPC-P1] spezifiziert sind,
angezeigt werden.
9.7.2
Änderung der PIN
Zur Änderung der PIN kann das ISO/IEC 7816-4 Kommando CHANGE REFERENCE DATA zu jeder
Zeit vom Heilberufler genutzt werden. Wenn PIN.QES referenziert ist, kann das Kommando nur mit P1
= ‘00’ ausgeführt werden, d.h. mit alter und neuer PIN im Datenfeld. Die erfolgreiche Prüfung der alten
PIN setzt für die referenzierte PIN keinen Sicherheitsstatus, siehe Kapitel 14.6.1 in [HPC-P1].
HPC-Spezifikation V2.3.2, Teil II
Seite 68 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Das Kommando wird insbesondere dazu genutzt, den Transportstatus der PIN aufzuheben und die reguläre PIN zu setzen, siehe Kapitel 8.2.5 und 14.6.1 in [HPC-P1].
Tabelle 129 - (N2135.00) CHANGE REFERENCE DATA Kommando
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘24’ = CHANGE REFERENCE DATA
‘00’ = Ändern der Referenzdaten
‘81’ = PIN.QES-Referenz
‘10’ = Länge des zugehörenden Datenfeldes
PIN_alt || PIN_neu (PIN-Format: siehe Kapitel 8.1.7 in [HPC-P1])
Nicht vorhanden
Tabelle 130 - (N2136.00) CHANGE REFERENCE DATA Antwort
Datenfeld
SW1-SW2
9.7.3
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Zurücksetzen des Fehlbedienungszählers
Zum Zurücksetzen des Fehlbedienungszählers auf seinen Ausgangswert wird das ISO/IEC 7816-4
Kommando RESET RETRY COUNTER verwendet. Der Sicherheitsstatus des referenzierten PINObjekts wird durch dieses Kommando weder gesetzt noch beeinflusst, siehe Kapitel 14.6.5 von [HPCP1]. Damit ist vor der Nutzung des PrK.HP.QES weiter die erfolgreiche Eingabe der PIN.QES
notwendig. Die Nutzung des Fehlbedienungszählers muss den Vorgaben der Bundesnetzagentur
entsprechen. Gemäß den aktuellen Vorgaben darf mit dem RESET RETRY COUNTER Kommando
keine neue PIN.QES gesetzt werden.
Tabelle 131 – (N2137.00) RESET RETRY COUNTER Kommando zum Rücksetzen des
Fehlbedienungszählers
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘2C’ = RESET RETRY COUNTER
‘01’
‘81’ = Referenz der PIN.QES, zu der der Rücksetzcode (“PUK”)
gemäß ISO/IEC 7816-4 gehört
‘08’ = Länge des zugehörenden Datenfeldes
Rücksetzcode ("PUK", Format: siehe Kapitel 8.1.7 in [HPC-P1])
Nicht vorhanden
Tabelle 132 - (N2138.00) RESET RETRY COUNTER Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
HPC-Spezifikation V2.3.2, Teil II
Seite 69 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
9.7.4
Abfrage des PIN.QES-Status
Die Software kann den Status der PIN mit dem GET PIN STATUS Kommando abfragen, siehe
folgende Tabelle.
Tabelle 133 – (N2139.00) GET PIN STATUS Kommando
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4 für proprietäre Klasse
‘20’ = GET PIN STATUS
‘00’
‘81’ = PIN.QES-Referenz
Nicht vorhanden
Nicht vorhanden
Nicht vorhanden
Tabelle 134 – (N2140.00) GET PIN STATUS Antwort
Datenfeld
SW1-SW2
9.8
Nicht vorhanden
‘9000’ Verifikation nicht erforderlich oder
spezifische Status-Bytes, siehe [HPC-P1]
Berechnung einer QES
Das Signieren erfolgt, nachdem die Daten außerhalb der HPC vollständig gehasht wurden. Bevor das
Kommando PSO: COMPUTE DIGITAL SIGNATURE zur HPC gesendet wird, muss der private Signaturschlüssel und der Algorithmus ausgewählt werden.
Tabelle 135 - (N2141.00) MSE Kommando für die Schlüssel- und Algorithmenauswahl
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘22’ = MANAGE SECURITY ENVIRONMENT
‘41’ = SET für Berechnung
‘B6’ = Digital Signature Template
‘06’ = Länge des zugehörenden Datenfeldes
‘84 01 84’ || ‘80 01 yy’ = DO KeyRef von PrK.HP.QES || DO AlgID
‘yy’ = ‘02’: signPKCS1_V1_5
‘yy’ = ‘05’: signPSS
‘yy’ = ‘07’: sign9796_2_DS2
Nicht vorhanden
Tabelle 136 - (N2142.00) MSE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
HPC-Spezifikation V2.3.2, Teil II
Seite 70 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 137 - (N2143.00) PSO: COMPUTE DIGITAL SIGNATURE Kommando
CLA
INS
P1
P2
Gemäß ISO/IEC 7816-4
‘2A’ = PERFORM SECURITY OPERATION: COMPUTE DIGITAL SIGNATURE
‘9E’ = Rückgabe der digitalen Signatur
- ‘9A’ = Datenfeld enthält die Daten, die signiert oder in den Digital Signature
Input (DSI) integriert werden sollen (für PKCS#1 SSA-V1.5 und PKCS#1 PSS)
- ‘AC’ = Datenfeld enthält Datenobjekte mit Datenelementen, die signiert oder in
den Digital Signature Input integriert werden sollen (für ISO9796-2 DS2)
Lc
‘00xxxx’ = Länge des zugehörenden Datenfeldes
Datenfeld - DSI gemäß ISO9796-2 DS2 oder
- DSI gemäß PKCS#1 SSA-V1.5 oder
- DSI gemäß PKCS#1 PSS
Le
‘0100’ = Länge der erwarteten digitalen Signatur = 256
Tabelle 138 - (N2144.00) PSO: COMPUTE DIGITAL SIGNATURE Antwort
Datenfeld
SW1-SW2
9.9
Digitale Signatur
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Lesen der zu QES gehörenden Zertifikate
Zum Lesen des X.509-QES-Zertifikates oder eines Attributzertifikates wird das Kommando READ
BINARY verwendet.
Tabelle 139 - (N2145.00) READ BINARY Kommando zum Lesen der QES-Zertifikate
CLA
INS
P1, P2
Gemäß ISO/IEC 7816-4
‘B0’ = READ BINARY
- P1 = b8-b6: 100
b5-b1: 10000 SFID von EF.C.HP.QES: 16
00001 SFID von EF.C.HP.QES-AC1: 1
00010 SFID von EF.C.HP.QES-AC2: 2
00011 SFID von EF.C.HP.QES-AC3: 3
P2 = Offset
- ‘xxxx’ = Offset (Bit b8 von P1 = 0)
Lc
Nicht vorhanden
Datenfeld Nicht vorhanden
Le
'000000'
Tabelle 140 - (N2146.00) READ BINARY Antwort
Datenfeld
SW1-SW2
Zertifikatsdaten
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
HPC-Spezifikation V2.3.2, Teil II
Seite 71 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Falls die unterstützte „Extended Length“ nicht ausreicht, um das vollständige Zertifikat mit einem
einzelnen Befehl zu lesen, muss das READ BINARY Kommando mit Angabe des entsprechenden Offsets in P1-P2 wiederholt werden.
9.10 Schreiben von Attributzertifikaten
Zum Aktualisieren der Attributzertifikate (siehe Zugriffsbedingungen in Tabelle 116 (N2121.00),
Tabelle 117 (N2122.00) und Tabelle 118 (N2123.00)) muss das ISO/IEC 7816-4 Kommando UPDATE
BINARY verwendet werden.
Tabelle 141 - (N2147.00) UPDATE BINARY Kommando zum Schreiben eines neuen
Attributzertifikats in die HPC
CLA
INS
P1, P2
Gemäß ISO/IEC 7816-4
‘D6’ = UPDATE BINARY
- P1 = b8-b6: 100
b5-b1:
00001 SFID von EF.C.HP.QES-AC1: 1
00010 SFID von EF.C.HP.QES-AC2: 2
00011 SFID von EF.C.HP.QES-AC3: 3
P2 = Offset
- ‘xxxx’ = Offset (Bit b8 von P1 = 0)
Lc
‘00xxxx’ = Länge des zugehörenden Datenfeldes
Datenfeld Daten
Le
Nicht vorhanden
Tabelle 142 - (N2148.00) UPDATE BINARY Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Falls die unterstützte „Extended Length“ nicht ausreicht, um die Daten mit einem einzelnen Befehl zu
schreiben, muss das UPDATE BINARY Kommando mit Angabe des entsprechenden Offsets in P1-P2
wiederholt werden.
HPC-Spezifikation V2.3.2, Teil II
Seite 72 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
10 Die ESIGN-Anwendung
10.1 Dateistruktur und Dateiinhalt
Abbildung 7 (N2149.00) zeigt die prinzipielle Struktur der ESIGN-Anwendung, die in Übereinstimmung
mit [EN14890-1] definiert ist.
MF
DF.ESIGN
EF.C.HP.AUT
PrK.HP.AUT
EF.C.HP.ENC
PrK.HP.ENC
EF.DM
AUT
C
DM
ENC
HP
= Authentisierung
= Zertifikat
= Display Message
= Verschlüsselung
= Heilberufler
Abbildung 7 – (N2149.00) Prinzipielle Struktur von DF.ESIGN
10.1.1 DF.ESIGN
DF.ESIGN ist ein “Application Directory” gemäß Kapitel 8.3.1.1 in [HPC-P1], d.h. ist mittels Anwendungskennung selektierbar, siehe Kapitel 10.3. Tabelle 143 (N2150.00) zeigt die Eigenschaften des
Anwendungsverzeichnisses.
Tabelle 143 – (N2150.00) Attribute von MF / DF.ESIGN
Attribut
Objekttyp
Application Identifier
File Identifier
Wert
Application Directory
'A000000167 455349474E’
-
Life Cycle Status
Zugriffsregel in allen SEs
Zugriffsart
SELECT
LOAD APPLICATION, ACTIVATE,
DEACTIVATE, DELETE
Operational state (activated)
Sicherheitsbedingung
ALWAYS
NEVER
Anmerkung
Herstellerspezifisch; Falls unterstützt,
dann außerhalb des Intervalls [‘1000’,
‘FEFF’]; siehe Kapitel 8.1.1 in [HPC-P1]
Anmerkung
10.1.2 PrK.HP.AUT
PrK.HP.AUT ist der private Schlüssel für Client/Server-Authentisierung. Die Schlüsselreferenz und
weitere Eigenschaften des privaten Schlüssels werden in der folgenden Tabelle aufgeführt.
HPC-Spezifikation V2.3.2, Teil II
Seite 73 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 144 – (N2151.00) Attribute von MF / DF.ESIGN / PrK.HP.AUT
Attribut
Objekttyp
Key Identifier
Key Reference
Private Key
Key Available
Algorithm Identifier
Wert
Privates RSA-Objekt
‘02’ = 2
‘82’
.... (2048 Bits)
True
INTERNAL AUTHENTICATE:
rsaClientAuthentication
Anmerkung
Wird personalisiert
Wird personalisiert
PSO: COMPUTE DIGITAL
SIGNATURE:
signPKCS_V1_5
signPSS
sign9796_2_DS2
Zugriffsregel in allen SEs
Zugriffsart
INTERNAL AUTHENTICATE,
PSO: COMPUTE DIGITAL SIGNATURE
(P2 = ‘9E’ oder ‘AC’)
Andere
Sicherheitsbedingung
PWD(PIN.CH)
Anmerkung
Die Zugriffsregel für
PIN.CH ist auf MFEbene definiert
NEVER
In Bezug auf die Schlüssellängen müssen dieselben Konventionen wie für die Schlüssel der qualifizierten elektronischen Signatur berücksichtigt werden, siehe [ALGCAT] und [TR-03116].
10.1.3 PrK.HP.ENC
PrK.HP.ENC ist der private Schlüssel für das Entschlüsseln von Dokumenten-Chiffrierungsschlüsseln.
Die Schlüsselreferenz und weitere Eigenschaften des privaten Schlüssels werden in der folgenden
Tabelle aufgeführt.
Tabelle 145 – (N2152.00) Attribute von MF / DF.ESIGN / PrK.HP.ENC
Attribut
Objekttyp
Key Identifier
Key Reference
Private Key
Key Available
Algorithm Identifier
Wert
Privates RSA-Objekt
‘03’ = 3
‘83’
.... (2048 Bits)
True
rsaDecipherOaep
rsaDecipherPKCS1_V1_5
Anmerkung
Zugriffsregel in allen SEs
Zugriffsart
PSO: DECIPHER, PSO:
TRANSCIPHER
Sicherheitsbedingung
PWD(PIN.CH)
Anmerkung
Die Zugriffsregel für
PIN.CH ist auf MFEbene definiert
Andere
NEVER
Wird personalisiert
Wird personalisiert
In Bezug auf die Schlüssellängen müssen dieselben Konventionen wie für die Schlüssel der qualifizierten elektronischen Signatur berücksichtigt werden, siehe [ALGCAT] und [TR-03116].
10.1.4 EF.DM
Das transparente File EF.DM enthält dieselbe Display Message wie in Kapitel 9.1.4. beschrieben. Die
folgende Tabelle zeigt die Eigenschaften der Datei.
HPC-Spezifikation V2.3.2, Teil II
Seite 74 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 146 – (N2153.00) Attribute von MF / DF.ESIGN / EF.DM
Attribut
Objekttyp
File Identifier
Short File Identifier
Number of Bytes
Flag Transaction Mode
Flag Checksum
Life Cycle Status
Content
Zugriffsregel in allen SEs
Zugriffsart
SELECT
READ BINARY
Wert
Transparent Elementary File
‘D004’
‘04’ = 4
8 Bytes
True
True
Operational state (activated)
...
Sicherheitsbedingung
ALWAYS
{AUT(‘D27600004000’ || '33') OR
AUT(‘D27600004000’ || '36') } AND
SmMac AND
SmRspEnc
UPDATE BINARY
PWD(PIN.CH)
ACTIVATE, DEACTIVATE, DELETE,
ERASE BINARY
NEVER
Anmerkung
Wird personalisiert
Anmerkung
Geräteauthentisierung
der SMC-K mit Profil 54
(SAK) oder SMC-A oder
SMC-B mit Profil 51
(PIN-Sender)
Die Zugriffsregel von
PIN.CH ist auf MFEbene definiert
10.1.5 EF.C.HP.AUT
EF.C.HP.AUT enthält das X.509-AUT-Zertifikat des Heilberuflers. Die Eigenschaften der Zertifikatsdatei sind in der folgenden Tabelle dargestellt.
Tabelle 147 – (N2154.00) Attribute von MF / DF.ESIGN / EF.C.HP.AUT
Attribut
Objekttyp
File Identifier
Short File Identifier
Number of Bytes
Flag Transaction Mode
Flag Checksum
Life Cycle Status
Content
Wert
Transparent Elementary File
‘C500’
‘01’ = 1
1536 oder auf Zertifikatslänge beschränkt
False
False
Operational state (activated)
...
Zugriffsregel in allen SEs
Zugriffsart
SELECT, READ BINARY
ACTIVATE, DEACTIVATE, DELETE,
ERASE BINARY, UPDATE BINARY
Sicherheitsbedingung
ALWAYS
NEVER
Anmerkung
Wird personalisiert,
siehe Annex C
Anmerkung
10.1.6 EF.C.HP.ENC
EF.C.HP.ENC enthält das X.509-ENC-Zertifikat des Heilberuflers. Die Eigenschaften der Zertifikatsdatei sind in der folgenden Tabelle dargestellt.
HPC-Spezifikation V2.3.2, Teil II
Seite 75 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 148 – (N2155.00) Attribute von MF / DF.ESIGN / EF.C.HP.ENC
Attribut
Objekttyp
File Identifier
Short File Identifier
Number of Bytes
Flag Transaction Mode
Flag Checksum
Life Cycle Status
Content
Wert
Transparent Elementary File
‘C200’
‘02’ = 2
1024 oder auf Zertifikatslänge beschränkt
False
False
Operational state (activated)
...
Zugriffsregel in allen SEs
Zugriffsart
SELECT, READ BINARY
ACTIVATE, DEACTIVATE, DELETE,
ERASE BINARY, UPDATE BINARY
Sicherheitsbedingung
ALWAYS
NEVER
Anmerkung
Wird personalisiert,
siehe Annex C
Anmerkung
10.2 Sicherheitsumgebungen
DF.ESIGN wird ausschließlich in SE # 1 (Default SE) genutzt. Es ist möglich, in SE # 1 einen Trusted
Channel aufzubauen, um beispielsweise Remote-Konfigurationen mit einer stationären HPC zu ermöglichen.
10.3 Auswahl der ESIGN-Anwendung
Die Auswahl der ESIGN-Anwendung erfolgt mit dem Kommando SELECT.
Tabelle 149 - (N2156.00) SELECT Kommando für DF.ESIGN
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘A4’ = SELECT
‘04’ = DF-Auswahl mit AID
'0C' = Keine FCI in der Antwort
‘0A’ = Länge des zugehörenden Datenfeldes
'A000000167 455349474E’ = AID von DF.ESIGN
Nicht vorhanden
Tabelle 150 - (N2157.00) SELECT Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status -Bytes, siehe [HPC-P1]
10.4 Lesen der X.509-Zertifikate
Zum Lesen der Zertifikate C.HP.AUT und C.HP.ENC, wird das READ BINARY Kommando verwendet.
HPC-Spezifikation V2.3.2, Teil II
Seite 76 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 151 - (N2158.00) READ BINARY Kommando zum Lesen eines X.509-Zertifikats
CLA
INS
P1-P2
Gemäß ISO/IEC 7816-4
‘B0’ = READ BINARY
- P1 = b8-b6: 100
b5-b1: 00001 SFID von EF.C.HP.AUT: 1
00010 SFID von EF.C.HP.ENC: 2
P2 = Offset
- ‘xxxx’ = Offset (Bit b8 von P1 = 0)
Lc
Nicht vorhanden
Datenfeld Nicht vorhanden
Le
'000000'
Tabelle 152 - (N2159.00) READ BINARY Antwort
Datenfeld
SW1-SW2
CV Zertifikat
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Falls die unterstützte „Extended Length“ nicht ausreicht, um die Daten mit einem einzelnen Befehl zu
lesen, muss das READ BINARY Kommando mit Angabe des entsprechenden Offsets in P1-P2
wiederholt werden.
10.5 PIN Management
Vor der Nutzung von PrK.HP.AUT oder PrK.HP.ENC muss PIN.CH erfolgreich eingegeben werden,
siehe Kapitel 4.6.1.
10.6 Client/Server-Authentisierung
Um die Zugriffsrechte zu Komponenten wie z.B. Servern überprüfen zu können, muss ein PKIbasierter Authentisierungsprozess ausgeführt werden. Das verwendete Schlüsselpaar ist das des
Karteninhabers (PrK.HP.AUT, PuK.HP.AUT). Der öffentliche Schlüssel ist zusammen mit dem eindeutigen Namen des Karteninhabers ("Distinguished Name") durch das X.509-Zertifikat nachprüfbar zertifiziert. Relevante Authentisierungsprotokolle sind z.B.
- das PK-Kerberos-Protokoll (für Login-Authentisierung)
- das TLS-Protokoll (für Authentisierung auf Seiten des Clients; umfasst das SSL-Protokoll)
- das WTLS-Protokoll
Die Karte berechnet in einem INTERNAL AUTHENTICATE Kommando eine digitale Signatur, indem
sie den im Datenfeld des Kommandos übergebenen Authentisierungs-Input formatiert und den privaten Authentisierungsschlüssel auf die Daten anwendet. Die übrigen Anteile des Verfahrens auf Seiten
des Clients muss die Systemsoftware des Karteninhabers übernehmen.
Bevor das INTERNAL AUTHENTICATE Kommando ausgeführt werden kann, werden der zugehörige
private Schlüssel und die zum Authentisierungsprotokoll passende Algorithmenkennung gesetzt.
HPC-Spezifikation V2.3.2, Teil II
Seite 77 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 153 – (N2160.00) MSE Kommando für die Schlüssel- und Algorithmenauswahl
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘22’ = MANAGE SECURITY ENVIRONMENT
‘41’ = SET für interne Authentisierung
‘A4’ = Authentication Template
‘06’ = Länge des zugehörenden Datenfeldes
‘84 01 82’ || ’80 01 05’ = KeyRef von PrK.HP.AUT ||
DO AlgID rsaClientAuthentication
Nicht vorhanden
Tabelle 154 - (N2161.00) MSE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Tabelle 155 - (N2162.00) INTERNAL AUTHENTICATE Kommando
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘88’ = INTERNAL AUTHENTICATE
‘00’
‘00’
‘00xxxx’ = Länge des zugehörenden Datenfeldes
Auf die Authentisierung bezogene Daten, siehe Kapitel 14.7.4 in [HPC-P1]
‘0100’ = Länge der erwarteten digitalen Signatur = 256
Tabelle 156 – (N2163.00) INTERNAL AUTHENTICATE Antwort
Datenfeld
SW1-SW2
Digitale Signatur
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
PrK.HP.AUT kann auch in einem PSO: COMPUTE DIGITAL SIGNATURE Kommando verwendet
werden. Der private Authentisierungsschlüssel und die Algorithmenkennung zur Angabe des Authentisierungsprotokolls müssen vorher gesetzt werden.
Tabelle 157 - (N2164.00) MSE Kommando für die Schlüssel- und Algorithmenauswahl
CLA
INS
P1
P2
Lc
Datenfeld
Gemäß ISO/IEC 7816-4
‘22’ = MANAGE SECURITY ENVIRONMENT
‘41’ = SET für Berechnung
‘B6’ = Digital Signature Template
‘06’ = Länge des zugehörenden Datenfeldes
‘84 01 82’ || ’80 01 yy’ = DO KeyRef von PrK.HP.AUT || DO AlgID
Le
‘yy’ = ‘02’: signPKCS1_V1_5
‘yy’ = ‘05’: signPSS
‘yy’ = ‘07’: sign9796_2_DS2
Nicht vorhanden
HPC-Spezifikation V2.3.2, Teil II
Seite 78 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 158 - (N2165.00) MSE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Tabelle 159 - (N2166.00) PSO: COMPUTE DIGITAL SIGNATURE Kommando
CLA
INS
P1
P2
Gemäß ISO/IEC 7816-4
‘2A’ = PERFORM SECURITY OPERATION: COMPUTE DIGITAL SIGNATURE
‘9E’ = Rückgabe einer digitalen Signatur
- ‘9A’ = Datenfeld enthält die Daten, die signiert oder in den Digital Signature
Input (DSI) integriert werden sollen (für PKCS#1 SSA-V1.5 und PKCS#1 PSS)
- ‘AC’ = Datenfeld enthält Datenobjekte mit Datenelementen, die signiert oder in
den Digital Signature Input integriert werden sollen (für ISO9796-2 DS2)
Lc
‘00xxxx’ = Länge des zugehörenden Datenfeldes
Datenfeld - DSI gemäß ISO9796-2 DS2 oder
- DSI gemäß PKCS#1 SSA-V1.5 oder
- DSI gemäß PKCS#1 PSS
Le
‘0100’ = Länge der erwarteten digitalen Signatur = 256
Tabelle 160 - (N2167.00) PSO: COMPUTE DIGITAL SIGNATURE Antwort
Datenfeld
SW1-SW2
Digitale Signatur
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
10.7 Entschlüsselung des Dokumenten-Chiffrierungsschlüssels
Zum Austausch vertraulicher Dokumente wird das folgende Verfahren genutzt:
-
der Schlüsseltransport wird durch Verschlüsseln des Dokumenten-Chiffrierungsschlüssels mit
dem PuK.HP.ENC des Empfängers abgesichert
das Dokument wird mit einem symmetrischen Verfahren verschlüsselt.
An der Verschlüsselung eines Dokumentes ist die HPC nicht beteiligt. Die Software des PC des Senders berechnet einen Dokumenten-Chiffrierungsschlüssel, verschlüsselt das Dokument damit und verschlüsselt anschließend den Dokumenten-Chiffrierungsschlüssel mit dem öffentlichen X.509-ENCSchlüssel des Empfängers. Diesen erhält sie z.B. von einem Zertifikatsserver.
Bevor der Chiffrierungsschlüssel vom Empfänger mit seinem PrK.HP.ENC entschlüsselt werden kann,
muss die PIN.CH erfolgreich eingegeben worden sein. Der private Schlüssel PrK.HP.ENC und der
Algorithmus müssen mit dem ISO/IEC 7816-4 Kommando MSE ausgewählt werden.
HPC-Spezifikation V2.3.2, Teil II
Seite 79 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 161 - (N2168.00) MSE Kommando für die Schlüssel- und Algorithmenauswahl
CLA
INS
P1
P2
Lc
Datenfeld
Gemäß ISO/IEC 7816-4
‘22’ = MANAGE SECURITY ENVIRONMENT
‘41’ = SET für Entschlüsselung
‘B8’ = Confidentiality Template
‘06’ = Länge des zugehörenden Datenfeldes
’84 01 83’ | ’80 01 yy’ = DO KeyRef von PrK.HP.ENC || DO AlgID
Le
‘yy’ = 85’: rsaDecipherOaep
‘yy’ = 81’: rsaDecipherPKCS1_V1_5
Nicht vorhanden
Tabelle 162 - (N2169.00) MSE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Nachdem der Schlüssel und der Algorithmus ausgewählt sind, kann die Entschlüsselung mit dem
ISO/IEC 7816-8 Kommando PSO: DECIPHER erfolgen.
Tabelle 163 – (N2170.00) PSO: DECIPHER Kommando
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘2A’ = PERFORM SECURITY OPERATION: DECIPHER
‘80’ = Rückgabe des Klartextes
‘86’ = Verschlüsselte Daten im Datenfeld
‘000101’ = Länge des zugehörenden Datenfeldes = 257
‘00’ (Padding Indicator) || Kryptogramm (256 Bytes)
‘0000’ oder ‘00xx’ = Länge des Dokumenten-Chiffrierungsschlüssels
Tabelle 164 – (N2171.00) PSO: DECIPHER Antwort
Datenfeld
SW1-SW2
Dokumenten-Chiffrierungsschlüssels
‘9000’oder spezifische Status-Bytes, siehe [HPC-P1]
10.8 Umschlüsselung des Dokumenten-Chiffrierungsschlüssels
Zum Austausch bereits verschlüsselter Dokumente mit Dritten wird das folgende Verfahren genutzt:
-
der Dokumenten-Chiffrierungsschlüssel wird mit dem privaten Schlüssel PrK.HP.ENC
entschlüsselt
der Schlüsseltransport wird durch Verschlüsseln des Dokumenten-Chiffrierungsschlüssels mit
dem öffentlichen Schlüssel des Dritten abgesichert.
Beide Schritte werden mit einem einzelnen TRANSCIPHER Kommando ausgeführt, so dass der
Chiffrierungsschlüssel nicht im Klartext an der Kartenschnittstelle erscheinen muss.
HPC-Spezifikation V2.3.2, Teil II
Seite 80 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Bevor der Chiffrierungsschlüssel umgeschlüsselt werden kann, muss die PIN.CH erfolgreich eingegeben worden sein. Der private Schlüssel PrK.HP.ENC und der Algorithmus müssen mit dem ISO/IEC
7816-4 Kommando MSE ausgewählt werden.
Tabelle 165 - (N2172.00) MSE Kommando für die Schlüssel- und Algorithmenauswahl
CLA
INS
P1
P2
Lc
Datenfeld
Gemäß ISO/IEC 7816-4
‘22’ = MANAGE SECURITY ENVIRONMENT
‘41’ = SET für Entschlüsselung
‘B8’ = Confidentiality Template
‘06’ = Länge des zugehörenden Datenfeldes
’84 01 83’ || ’80 01 yy’ = DO KeyRef von PrK.HP.ENC || DO AlgID
Le
‘yy’ = ‘85’: rsaDecipherOaep
‘yy’ = ‘81’: rsaDecipherPKCS1_V1_5
Nicht vorhanden
Tabelle 166 - (N2173.00) MSE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Nachdem der Schlüssel und der Algorithmus ausgewählt sind, kann die Umschlüsselung mit dem proprietären Kommando PSO: TRANSCIPHER erfolgen, siehe Kapitel 14.8.7 in [HPC-P1]. Das Datenfeld
des Kommandos enthält neben einem zusammengesetzten Kryptogramm DO (Tag ‘A6’) mit dem umzuschlüsselnden Chiffrierungsschlüssel auch ein zusammengesetztes Klartext DO (Tag ‘A0’), das für
den Verschlüsselungsteil der Operation die Algorithmenkennung (Tag ‘80’) und den öffentlichen
Schlüssel des Dritten (Tag ‘7F49’) bereitstellt, siehe Kapitel 14.8.7.4 in [HPC-P1].
Tabelle 167 – (N2174.00) PSO: TRANSCIPHER Kommando
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4 für proprietäre Klasse
‘2A’ = PERFORM SECURITY OPERATION: TRANSCIPHER
‘86’ = Rückgabe eines Kryptogramms
‘B8’ = Confidentiality Template
‘00021F’ = Länge des zugehörenden Datenfeldes = 543
‘A6’ || LängeA6 (3 B) || ’86’ || Länge86 (3 B) || Padding Indicator (1 B) || Kryptogramm (256 B) ||
‘A0’ || LängeA0 (3 B) || ’80’ || Länge80 (1 B) || AlgID (1 B) ||
‘7F49’ || Länge7F49 (3 B) || ‘81’ || Länge81 (3 B) || Modulus (256 B) ||
’82’ || Länge82 (1 B) || Exponent (4 B)
‘0000’ oder ‘0101’ = Länge des verschlüsselten Dokumenten-Chiffrierungsschlüssels
mit vorangestelltem Padding Indicator = 257
Tabelle 168 – (N2175.00) PSO: TRANSCIPHER Antwort
Datenfeld
SW1-SW2
Padding Indicator || Verschlüsselter Dokumenten-Chiffrierungsschlüssel
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
HPC-Spezifikation V2.3.2, Teil II
Seite 81 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
11 Kryptografische Informationsanwendungen
11.1 Allgemeine Struktur
Abbildung 8 (N2176.00) zeigt die prinzipielle Struktur der kryptografischen Informationsanwendungen
(CIAs), die mit der QES- und der ESIGN-Anwendung verknüpft sind.
MF
DF.CIA.QES
CIA
OD
AOD
PrKD
CD
= Cryptographic Inf. Application
= Object Directory
= Authentication Object Directory
= Private Key Directory
= Certificate Directory
DF.CIA.ESIGN
EF.CIAInfo
EF.CIAInfo
EF.OD
EF.OD
EF.AOD
EF.AOD
EF.PrKD
EF.PrKD
EF.CD
EF.CD
Abbildung 8 – (N2176.00) DF.CIA-Anwendungen und ihre Unterstrukturen
11.2 DF.CIA.QES und DF.CIA.ESIGN (Cryptographic Information Applications)
DF.CIA.QES und DF.CIA.ESIGN sind “Applications Directories” gemäß Kapitel 8.3.1.1 in [HPC-P1],
d.h. sie sind mit der entsprechenden Anwendungskennung selektierbar, siehe Kapitel 11.4. Die folgenden Tabellen zeigen die Attribute und Zugriffsregeln, die für die Anwendungsverzeichnisse gelten.
Tabelle 169 – (N2177.00) Attribute von MF / DF.CIA.QES
Attribut
Objekttyp
Application Identifier
File Identifier
Wert
Application Directory
'E828BD080F D27600006601’
-
Life Cycle Status
Zugriffsregel in allen SEs
Zugriffsart
SELECT
LOAD APPLICATION, ACTIVATE,
DEACTIVATE, DELETE
Operational state (activated)
HPC-Spezifikation V2.3.2, Teil II
Sicherheitsbedingung
ALWAYS
NEVER
Anmerkung
Herstellerspezifisch; Falls unterstützt, dann außerhalb des Intervalls
[‘1000’, ‘FEFF’]; siehe Kapitel 8.1.1
in [HPC-P1]
Anmerkung
Seite 82 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 170 – (N2178.00) Attribute von MF / DF.CIA.ESIGN
Attribut
Objekttyp
Application Identifier
File Identifier
Life Cycle Status
Zugriffsregel in allen SEs
Zugriffsart
SELECT
LOAD APPLICATION, ACTIVATE,
DEACTIVATE, DELETE
Wert
Application Directory
'E828BD080F A000000167
455349474E’
-
Anmerkung
Herstellerspezifisch; Falls unterstützt,
dann außerhalb des Intervalls [‘1000’,
‘FEFF’]; siehe Kapitel 8.1.1 in [HPC-P1]
Operational state (activated)
Sicherheitsbedingung
ALWAYS
NEVER
Anmerkung
11.3 Dateien mit kryptografischen Informationsobjekten (CIOs)
Die logischen File-Namen, File Identifier, Short File Identifier und die Dateiinhalte (siehe Annex D und
Annex E) sind konform zu ISO/IEC 7816-15. Die entsprechenden CIO-Dateien beider Anwendungen
DF.CIA.QES und DF.CIA.ESIGN besitzen die gleichen charakteristischen Attribute und Zugriffsregeln,
die in den folgenden Tabellen dargestellt sind.
Tabelle 171 – (N2179.00) Attribute von EF.CIAInfo (Cryptographic Information Application Info)
Attribut
Objekttyp
File Identifier
Short File Identifier
Number of Bytes
Flag Transaction Mode
Flag Checksum
Life Cycle Status
Content
Zugriffsregel in allen SEs
Zugriffsart
SELECT, READ BINARY
ACTIVATE, DEACTIVATE, DELETE,
ERASE BINARY, UPDATE BINARY
Wert
Transparent Elementary File
‘5032’
‘12’ = 18
256 Bytes oder auf die Länge der CIOs
beschränkt
False
True
Operational state (activated)
...
Sicherheitsbedingung
ALWAYS
NEVER
Anmerkung
Siehe Annex D und
Annex E
Anmerkung
Tabelle 172 – (N2180.00) Attribute von EF.OD (Object Directory)
Attribut
Objekttyp
File Identifier
Short File Identifier
Number of Bytes
Flag Transaction Mode
Flag Checksum
Life Cycle Status
Content
Wert
Transparent Elementary File
‘5031’
‘11’ = 17
64 Bytes oder auf die Länge der CIOs
beschränkt
False
True
Operational state (activated)
...
Anmerkung
Siehe Annex D und
Annex E
Zugriffsregel in allen SEs
HPC-Spezifikation V2.3.2, Teil II
Seite 83 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Zugriffsart
SELECT, READ BINARY
ACTIVATE, DEACTIVATE, DELETE,
ERASE BINARY, UPDATE BINARY
Sicherheitsbedingung
ALWAYS
NEVER
Anmerkung
Tabelle 173 – (N2181.00) Attribute von EF.AOD (Authentication Object Directory)
Attribut
Objekttyp
File Identifier
Short File Identifier
Number of Bytes
Flag Transaction Mode
Flag Checksum
Life Cycle Status
Content
Zugriffsregel in allen SEs
Zugriffsart
SELECT, READ BINARY
ACTIVATE, DEACTIVATE, DELETE,
ERASE BINARY, UPDATE BINARY
Wert
Transparent Elementary File
‘5034’
‘14’ = 20
128 Bytes oder auf die Länge der CIOs
beschränkt
False
True
Operational state (activated)
...
Sicherheitsbedingung
ALWAYS
NEVER
Anmerkung
Siehe Annex D und
Annex E
Anmerkung
Tabelle 174 – (N2182.00) Attribute von EF.PrKD (Private Key Directory)
Attribut
Objekttyp
File Identifier
Short File Identifier
Number of Bytes
Flag Transaction Mode
Flag Checksum
Life Cycle Status
Content
Zugriffsregel in allen SEs
Zugriffsart
SELECT, READ BINARY
ACTIVATE, DEACTIVATE, DELETE,
ERASE BINARY, UPDATE BINARY
Wert
Transparent Elementary File
‘5035’
‘15’ = 21
128 Bytes oder auf die Länge der CIOs
beschränkt
False
True
Operational state (activated)
...
Sicherheitsbedingung
ALWAYS
NEVER
Anmerkung
Siehe Annex D und
Annex E
Anmerkung
Tabelle 175 – (N2183.00) Attribute von EF.CD (Certificate Directory)
Attribut
Objekttyp
File Identifier
Short File Identifier
Number of Bytes
Flag Transaction Mode
Flag Checksum
Life Cycle Status
Content
Wert
Transparent Elementary File
‘5038’
‘16’ = 22
128 Bytes oder auf die Länge der CIOs
beschränkt
False
True
Operational state (activated)
...
Anmerkung
Siehe Annex D und
Annex E
Zugriffsregel in allen SEs
HPC-Spezifikation V2.3.2, Teil II
Seite 84 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Zugriffsart
SELECT, READ BINARY
ACTIVATE, DEACTIVATE, DELETE,
ERASE BINARY, UPDATE BINARY
Sicherheitsbedingung
ALWAYS
NEVER
Anmerkung
11.4 Auswahl der Anwendungen
Zur Auswahl der Anwendungen wird das ISO/IEC 7816-4-Kommando SELECT verwendet, wie in der
folgenden Tabelle gezeigt ist.
Tabelle 176 – (N2184.00) SELECT Kommando für DF.CIA.QES und DF.CIA.ESIGN
CLA
INS
P1
P2
Lc
‘00’
‘A4’ = SELECT
‘04’ = DF-Auswahl mit AID
‘0C’ = Keine FCI in der Antwort
‘0B’ oder ‘0F’ = Länge des zugehörenden Datenfeldes
Datenfeld
- ‘E828BD080F D27600006601’ = AID von DF.CIA.QES oder
- 'E828BD080F A000000167 455349474E’ = AID von DF.CIA.ESIGN
Nicht vorhanden
Le
Anmerkung – Der „Registered Application Provider Identifier“ (RID) von DF.CIA entspricht den Vorgaben in
ISO/IEC 7816-15. Dem RID folgt der AID der Anwendung, zu der die CIOs gehören, in diesem Fall AID.QES
oder AID.ESIGN.
Tabelle 177 – (N2185.00) SELECT Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
11.5 Lesen der CIA-Dateien
Zum Lesen der CIA-Dateien wird das ISO/IEC 7816-4 Kommando READ BINARY genutzt.
Tabelle 178 – (N2186.00) READ BINARY Kommando zum Lesen der CIA –Dateien
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘B0’ = READ BINARY
‘xx’ = b8-b6: 100
b5-b1: 10010 SFID von EF.CIAInfo: 18
b5-b1: 10001 SFID von EF. OD: 17
b5-b1: 10100 SFID von EF. AOD: 20
b5-b1: 10101 SFID von EF. PrKD: 21
b5-b1: 10110 SFID von EF. CD: 22
‘00’ = Offset
Nicht vorhanden
Nicht vorhanden
‘00’ = Lesen bis zum Ende der Datei (max 256 Bytes)
HPC-Spezifikation V2.3.2, Teil II
Seite 85 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Anmerkung – SFID 19 kann nicht genutzt werden, siehe ISO/IEC 7816-15.
Tabelle 179 - (N2187.00) SELECT Antwort
Datenfeld
SW1-SW2
CIOs
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
HPC-Spezifikation V2.3.2, Teil II
Seite 86 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
12 Die Organisationsspezifische Authentisierungsanwendung
Die Organisationsspezifische Authentisierungsanwendung ist eine optionale Anwendung. Es liegt im
Ermessen der HPC-Herausgeberorganisation (Berufskammer), ob die Anwendung nach Kartenausgabe vorhanden ist und nutzbar gemacht werden kann. Die eigentliche Nutzung der Anwendung liegt im
Ermessen des Karteninhabers. Falls die Organisationsspezifische Authentisierungsanwendung genutzt wird, dann ist der Inhalt dieses Kapitels verbindlich vorgeschrieben.
12.1 Dateistruktur und Dateiinhalt
DF.AUTO wird genutzt für
-
organisationsspezifische Authentisierungsprozesse (z.B. Windows Logon mit Smart Card), welche
mit der ESIGN-Anwendung aufgrund technischer Unterschiede (z.B. proprietäre Zertifikatserweiterungen) oder eines unvereinbaren Verfahrens (z.B. vorgeschriebenes PIN-Caching) nicht umgehen können.
Abbildung 9 (N2188.00) zeigt die prinzipielle Struktur der AUTO-Anwendung.
MF
DF.AUTO
PrK.HP.AUTO
PIN.AUTO
EF.C.HP.AUTO1
EF.C.HP.AUTO2
PIN.SO
AUTO
C
HP
SO
PrK
= Organisationsspezifische Authentisierung
= X.509-Zertifikat
= Heilberufler
= Administrator
= Privater Schlüssel
Abbildung 9 – (N2188.00) Prinzipielle Struktur von DF.AUTO
12.1.1 DF.AUTO (Organization-specific Authentication Application)
DF.AUTO ist ein “Application Directory” gemäß Kapitel 8.3.1.1 in [HPC-P1], d.h. ist mittels Anwendungskennung selektierbar. Die folgende Tabelle zeigt die Attribute und Zugriffsregeln, die für das Anwendungsverzeichnis gelten.
HPC-Spezifikation V2.3.2, Teil II
Seite 87 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 180 – (N2189.00) Attribute von MF / DF.AUTO
Attribut
Objekttyp
Application Identifier
File Identifier
Wert
Application Directory
‘D27600014603’
-
Life Cycle Status
Zugriffsregel in allen SEs
Zugriffsart
SELECT
LOAD APPLICATION, ACTIVATE,
DEACTIVATE, DELETE
Operational state (activated)
Sicherheitsbedingung
ALWAYS
NEVER
Anmerkung
Herstellerspezifisch; Falls unterstützt,
dann außerhalb des Intervalls [‘1000’,
‘FEFF’]; siehe Kapitel 8.1.1 in [HPC-P1]
Anmerkung
12.1.2 PrK.HP.AUTO
PrK.HP.AUTO ist der private Schlüssel für Client/Server-Authentisierung. Die folgende Tabelle zeigt
die Eigenschaften und Zugriffsregeln des privaten Schlüssels.
Tabelle 181 – (N2190.00) Attribute von MF / DF.AUTO / PrK.HP.AUTO
Attribut
Objekttyp
Key Identifier
Key Reference
Private Key
Key Available
Algorithm Identifier
Wert
Privates RSA-Objekt
‘02’ = 2
‘82’
.... (2048 Bits)
True
INTERNAL AUTHENTICATE:
rsaClientAuthentication
Anmerkung
Wird personalisiert
Wird personalisiert
PSO: COMPUTE DIGITAL SIGNATURE:
signPKCS1_V1_5
signPSS
sign9796_2_DS2
Zugriffsregel in allen SEs
Zugriffsart
GENERATE ASYMMETRIC KEY PAIR
INTERNAL AUTHENTICATE,
PSO: COMPUTE DIGITAL SIGNATURE
(P2 = ‘9E’ oder ‘AC’)
Andere
Sicherheitsbedingung
PWD(PIN.SO)
PWD(PIN.AUTO)
Anmerkung
NEVER
Anmerkung – PrK.HP.AUTO ist ein privates RSA-Objekt, welches gemäß Kapitel 8.5.3 in [HPC-P1] das GENERATE ASYMMETRIC KEY PAIR Kommando unterstützt. Da die organisationsspezifische Zertifikatsinformation
dem Personalisierer wahrscheinlich nicht bekannt ist, kann es notwendig sein, dieses Kommando während der
Kartennutzung zu verwenden, um eine Generierung von Zertifikaten zu ermöglichen.
In Bezug auf die Schlüssellängen müssen dieselben Konventionen wie für die Schlüssel der qualifizierten elektronischen Signatur berücksichtigt werden, siehe [ALGCAT] und [TR-03116].
12.1.3 PIN.AUTO
PIN.AUTO ist eine DF-spezifische PIN, die ausschließlich dem Schutz des privaten Authentisierungsschlüssels für den organisationsspezifischen Authentisierungsmechanismus des Heilberuflers
(PrK.HP.AUTO) dient. PIN.AUTO muss genau 5 Ziffern besitzen.
HPC-Spezifikation V2.3.2, Teil II
Seite 88 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Die Nutzung eines 8-stelligen Rücksetzcodes (Personal Unblocking Key, PUK) wird durch einen Nutzungszähler beschränkt, dessen Anfangswert auf 10 gesetzt ist. Der Sicherheitsstatus von PIN.AUTO
kann unbegrenzt verwendet werden, d.h. der Default-Wert von SSEC beträgt unendlich.
Die nachfolgende Tabelle zeigt die PIN-Referenz, wie sie in den Kommandos VERIFY, CHANGE
REFERENCE DATA und RESET RETRY COUNTER verwendet wird, und weitere PIN-Eigenschaften.
Tabelle 182 – (N2191.00) Attribute von MF / DF.AUTO / PIN.AUTO
Attribut
Objekttyp
Password Identifier
Password Reference
Secret
Minimum Length
Start Retry Counter
Retry Counter
Transport Status
Flag Enabled
Start Security Status Evaluation
Counter
PUK
PUK Usage
Zugriffsregel in allen SEs
Zugriffsart
CHANGE RD (Option ‘00’)
GET PIN STATUS
RESET RC (Option ‘01’)
VERIFY
Andere
Wert
Passwort
‘01’
‘81’
....
5
3
3
Ein Verfahren gemäß Kapitel 8.2.5 in [HPC-P1]
True
Infinite
Anmerkung
Wird personalisiert
...
10
Wird personalisiert
Sicherheitsbedingung
ALWAYS
ALWAYS
ALWAYS
ALWAYS
NEVER
Anmerkung
Die Initialisierung von PIN.AUTO, z.B. durch Nutzung einer Transport-PIN, unterliegt den Richtlinien
der zuständigen Organisation. Falls eine Transport-PIN verwendet wird, so muss ein Verfahren aus
Kapitel 8.2.5 in [HPC-P1] zum Einsatz kommen.
12.1.4 PIN.SO
PIN.SO ist eine DF-spezifische PIN, die für administrative Zwecke bezüglich DF.AUTO verwendet
wird, d.h. zur Generierung des asymmetrischen Schlüsselpaars und zum Aktualisieren der organisationsspezifischen Authentisierungszertifikate. PIN.SO besteht aus 6 bis 8 Ziffern.
Die Nutzung eines 8-stelligen Rücksetzcodes (Personal Unblocking Key, PUK) wird durch einen Nutzungszähler beschränkt, dessen Anfangswert auf 10 gesetzt ist. Der Sicherheitsstatus von PIN.SO
kann unbegrenzt verwendet werden, d.h. der Default-Wert von SSEC beträgt unendlich.
Die nachfolgende Tabelle zeigt die PIN-Referenz, wie sie in den Kommandos VERIFY, CHANGE
REFERENCE DATA und RESET RETRY COUNTER verwendet wird, und weitere PIN-Eigenschaften.
Tabelle 183 – (N2192.00) Attribute von MF / DF.AUTO / PIN.SO
Attribut
Objekttyp
Password Identifier
Password Reference
Secret
Minimum Length
Start Retry Counter
HPC-Spezifikation V2.3.2, Teil II
Wert
Passwort
‘03’
‘83’
....
6
3
Anmerkung
Wird personalisiert
Seite 89 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Retry Counter
Transport Status
Flag Enabled
Start Security Status Evaluation
Counter
PUK
PUK Usage
Zugriffsregel in allen SEs
Zugriffsart
CHANGE RD (Option ‘00’)
GET PIN STATUS
RESET RC (Option ‘01’)
VERIFY
Andere
3
Ein Verfahren gemäß Kapitel 8.2.5 in [HPC-P1]
True
Infinite
...
10
Wird personalisiert
Sicherheitsbedingung
ALWAYS
ALWAYS
ALWAYS
ALWAYS
NEVER
Anmerkung
Gemäß Kapitel 14.6.1.4 und Kapitel 14.6.5.6 in [HPC-P1] prüft das COS nur die minimale Länge von
PIN.SO, d.h. das COS kontrolliert nicht, ob die maximale Länge von 8 Ziffern überschritten wird.
Die Initialisierung von PIN.SO, z.B. durch Nutzung einer Transport-PIN, unterliegt den Richtlinien der
zuständigen Organisation. Falls eine Transport-PIN verwendet wird, so muss ein Verfahren aus
Kapitel 8.2.5 in [HPC-P1] zum Einsatz kommen.
12.1.5 EF.C.HP.AUTO1 und EF.C.HP.AUTO2
EF.C.HP.AUTO1 und EF.C.HP.AUTO2 enthalten die organisationsspezifischen X.509-AUT-Zertifikate
des Heilberuflers. Damit können dem Heilberufler zwei verschiedene Identitäten zur Verfügung
stehen, die beide mit demselben privaten Schlüssel PrK.HP.AUTO verknüpft sind.
Die Zertifikate können nach erfolgreicher Authentisierung mit PIN.SO aktualisiert werden, siehe
Tabelle 184 (N2193.00) und Tabelle 185 (N2194.00).
Tabelle 184 – (N2193.00) Attribute von MF / DF.AUTO / EF.C.HP.AUTO1
Attribut
Objekttyp
File Identifier
Short File Identifier
Number of Bytes
Flag Transaction Mode
Flag Checksum
Life Cycle Status
Content
Zugriffsregel in allen SEs
Zugriffsart
SELECT, READ BINARY
UPDATE BINARY
ACTIVATE, DEACTIVATE, DELETE,
ERASE BINARY
Wert
Transparent Elementary File
‘E001’
‘01’ = 1
1536 oder auf Zertifikatslänge beschränkt
False
False
Operational state (activated)
...
Sicherheitsbedingung
ALWAYS
PWD(PIN.SO)
NEVER
Anmerkung
Wird personalisiert
Anmerkung
Tabelle 185 – (N2194.00) Attribute von MF / DF.AUTO / EF.C.HP.AUTO2
Attribut
Objekttyp
File Identifier
Short File Identifier
HPC-Spezifikation V2.3.2, Teil II
Wert
Transparent Elementary File
‘E002’
‘02’ = 2
Anmerkung
Seite 90 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Number of Bytes
Flag Transaction Mode
Flag Checksum
Life Cycle Status
Content
Zugriffsregel in allen SEs
Zugriffsart
SELECT, READ BINARY
UPDATE BINARY
ACTIVATE, DEACTIVATE, DELETE,
ERASE BINARY
1536 oder auf Zertifikatslänge beschränkt
False
False
Operational state (activated)
...
Sicherheitsbedingung
ALWAYS
PWD(PIN.SO)
NEVER
Wird personalisiert
Anmerkung
12.2 Sicherheitsumgebungen
In DF.AUTO wird ausschließlich das voreingestellte SE # 1 verwendet.
12.3 Auswahl der AUTO-Anwendung
Die Auswahl der AUTO-Anwendung erfolgt mit dem SELECT Kommando.
Tabelle 186 - (N2195.00) SELECT Kommando für DF.ESIGN
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘A4’ = SELECT
‘04’ = DF-Auswahl mit AID
'0C' = Keine FCI in der Antwort
‘06’ = Länge des zugehörenden Datenfeldes
'D27600014603’ = AID von DF.AUTO
Nicht vorhanden
Tabelle 187 - (N2196.00) SELECT Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder specifische Status-Bytes, siehe [HPC-P1]
Nach der DF-Auswahl ist implizit die Sicherheitsumgebung SE # 1 gewählt.
12.4 PIN-Management
12.4.1 PIN-Prüfung
Vor der Nutzung des privaten Schlüssels PrK.HP.AUTO, muss PIN.AUTO erfolgreich präsentiert
worden sein. Zum Aktualisieren der Zertifikatsdateien muss PIN.SO erfolgreich präsentiert werden.
Für die PIN-Prüfung wird das ISO/IEC 7816-4 Kommando VERIFY verwendet.
HPC-Spezifikation V2.3.2, Teil II
Seite 91 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 188 - (N2197.00) VERIFY Kommando zum Prüfen einer PIN
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘20’ = VERIFY
‘00’
‘81’ = PIN.AUTO Referenz oder
‘83’ = PIN.SO Referenz
‘08’ = Länge des zugehörenden Datenfeldes
PIN (Format: siehe Kapitel 8.1.7 in [HPC-P1])
Nicht vorhanden
Tabelle 189 - (N2198.00) VERIFY Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Falls die eingegebene PIN falsch ist und zusätzliche Versuche erlaubt sind, muss die Zahl der noch
möglichen Versuche in den Status-Bytes, die in Kapitel 14.6.6.3 in [HPC-P1] spezifiziert sind,
angezeigt werden.
12.4.2 PIN-Änderung
Zur Änderung von PIN.AUTO oder PIN.SO kann das ISO/IEC 7816-4 Kommando CHANGE REFERENCE DATA zu jeder Zeit vom Heilberufler genutzt werden. Das Kommando kann nur mit P1 = ‘00’,
d.h. mit alter und neuer PIN im Datenfeld ausgeführt werden. Die erfolgreiche Prüfung der alten PIN
setzt keinen Sicherheitsstatus des referenzierten PIN-Objektes, siehe Kapitel 14.6.1 in [HPC-P1].
Tabelle 190 - (N2199.00) CHANGE REFERENCE DATA Kommando
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘24’ = CHANGE REFERENCE DATA
‘00’ = Ändern der Referenzdaten
‘81’ = PIN.AUTO-Referenz oder
‘83’ = PIN.SO-Referenz
‘10’ = Länge des zugehörenden Datenfeldes
PIN_alt || PIN_neu (PIN-Format: siehe Kapitel 8.1.7 in [HPC-P1])
Nicht vorhanden
Tabelle 191 - (N2200.00) CHANGE REFERENCE DATA Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
12.4.3 Zurücksetzen des Fehlbedienungszählers
Zum Zurücksetzen des Fehlbedienungszählers auf seinen Ausgangswert und – falls so realisiert –
zum Setzen einer neuen PIN wird das Kommando RESET RETRY COUNTER verwendet. Der SicherHPC-Spezifikation V2.3.2, Teil II
Seite 92 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
heitsstatus wird durch dieses Kommando weder gesetzt noch beeinflusst, siehe Kapitel 14.6.5 in
[HPC-P1].
Tabelle 192 – (N2201.00) RESET RETRY COUNTER Kommando zum Zurücksetzen des
Fehlbedienungszählers
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘2C’ = RESET RETRY COUNTER
‘00’ oder ‘01’
- ‘81’ = Referenz von PIN.AUTO, zu der der Rücksetzcode (“PUK”) gemäß
ISO/IEC 7816-4 gehört oder
- ‘83’ = Referenz von PIN.SO, zu der der Rücksetzcode (“PUK”) gemäß ISO/IEC
7816-4 gehört
‘10’ oder ‘08’ = Länge des zugehörenden Datenfeldes
- Falls P1 = ‘00’: Rücksetz-Code (8 Byte) gefolgt von einer neuen PIN (8 Byte)
- Falls P1 = ‘01’: Rücksetz-Code (“PUK”, Format: siehe Kapitel 8.1.7 in [HPC-P1])
Nicht vorhanden
Tabelle 193 - (N2202.00) RESET RETRY COUNTER Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Anmerkung – Das Kommando kann auch dazu verwendet werden, den Transportstatus der PIN aufzuheben,
siehe Kapitel 14.6.5.1 und Kapitel 14.6.5.3 in [HPC-P1].
12.5 Lesen der organisationsspezifischen Zertifikate
Zum Lesen der Zertifikate EF.C.HP.AUTO1 und EF.C.HP.AUTO2, wird das READ BINARY Kommando verwendet.
Tabelle 194 - (N2203.00) READ BINARY Kommando zum Lesen eines X.509-Zertifikats
CLA
INS
P1-P2
Gemäß ISO/IEC 7816-4
‘B0’ = READ BINARY
- P1 = b8-b6: 100
b5-b1: 00001 SFID von EF.C.HP.AUTO1: 1
00010 SFID von EF.C.HP.AUTO2: 2
P2 = Offset
- ‘xxxx’ = Offset (Bit b8 von P1 = 0)
Lc
Nicht vorhanden
Datenfeld Nicht vorhanden
Le
'000000'
Tabelle 195 - (N2204.00) READ BINARY Antwort
Datenfeld
SW1-SW2
Zertifikatsdaten
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
HPC-Spezifikation V2.3.2, Teil II
Seite 93 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Falls die unterstützte „Extended Length“ nicht ausreicht, um die Daten mit einem einzelnen Befehl zu
lesen, muss das READ BINARY Kommando mit Angabe des entsprechenden Offsets in P1-P2
wiederholt werden.
12.6 Aktualisieren der organisationsspezifischen Zertifikate
Zum Aktualisieren der organisationsspezifischen Zertifikate (siehe Zugriffsbedingungen in Tabelle 184
(N2193.00) und Tabelle 185 (N2194.00)), muss das ISO/IEC 7816-4 Kommando UPDATE BINARY
verwendet werden.
Tabelle 196 - (N2205.00) UPDATE BINARY Kommando zum Aktualisieren eines Zertifikat
CLA
INS
P1, P2
Gemäß ISO/IEC 7816-4
‘D6’ = UPDATE BINARY
- P1 = b8-b6: 100
b5-b1:
00001 SFID von EF.C.HP.AUTO1: 1 oder
00010 SFID von EF.C.HP.AUTO2: 2
P2 = Offset
- ‘xxxx’ = Offset (Bit b8 von P1 = 0)
Lc
‘00xxxx’ = Länge des zugehörenden Datenfeldes
Datenfeld Daten
Le
Nicht vorhanden
Tabelle 197 - (N2206.00) UPDATE BINARY Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Falls die unterstützte „Extended Length“ nicht ausreicht, um die Daten mit einem einzelnen Befehl zu
schreiben, muss das UPDATE BINARY Kommando mit Angabe des entsprechenden Offsets in P1-P2
wiederholt werden.
12.7 Client/Server-Authentisierung
Um die Zugriffsrechte zu Komponenten wie z.B. Servern überprüfen zu können, muss ein PKIbasierter Authentisierungsprozess ausgeführt werden. Das verwendete Schlüsselpaar ist das des
Karteninhabers (PrK.HP.AUTO, PuK.HP.AUTO). Der öffentliche Schlüssel ist zusammen mit dem eindeutigen Namen des Karteninhabers ("Distinguished Name") durch das X.509-Zertifikat nachprüfbar
zertifiziert. Relevante Authentisierungsprotokolle sind z.B.
- das PK-Kerberos-Protokoll (für Login-Authentisierung)
- das TLS-Protokoll (für Authentisierung auf Seiten des Clients; umfasst das SSL-Protokoll)
- das WTLS-Protokoll
Die Karte berechnet in einem INTERNAL AUTHENTICATE Kommando eine digitale Signatur, indem
sie den im Datenfeld des Kommandos übergebenen Authentisierungs-Input formatiert und den privaten Authentisierungsschlüssel auf die Daten anwendet. Die übrigen Anteile des Verfahrens auf Seiten
des Clients muss die Systemsoftware des Karteninhabers übernehmen.
Bevor das INTERNAL AUTHENTICATE Kommando ausgeführt werden kann, wird der zugehörige private Schlüssel und die zum Authentisierungsprotokoll passende Algorithmenkennung gesetzt.
HPC-Spezifikation V2.3.2, Teil II
Seite 94 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 198 – (N2207.00) MSE Kommando für die Schlüssel- und Algorithmenauswahl
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘22’ = MANAGE SECURITY ENVIRONMENT
‘41’ = SET für interne Authentisierung
‘A4’ = AT
‘06’ = Länge des zugehörenden Datenfeldes
‘84 01 82’ || ’80 01 05’
= DO KeyRef von PrK.HP.AUTO || DO AlgID rsaClientAuthentication
Nicht vorhanden
Tabelle 199 - (N2208.00) MSE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Tabelle 200 – (N2209.00) INTERNAL AUTHENTICATE Kommando
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘88’ = INTERNAL AUTHENTICATE
‘00’
‘00’
‘00xxxx’ = Länge des zugehörenden Datenfeldes
Auf die Authentisierung bezogene Daten, siehe Kapitel 14.7.4 in [HPC-P1]
‘0100’ = Länge der erwarteten digitalen Signatur = 256
Tabelle 201 – (N2210.00) INTERNAL AUTHENTICATE Antwort
Datenfeld
SW1-SW2
Digitale Signatur
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
PrK.HP.AUTO kann auch mit dem COMPUTE DIGITAL SIGNATURE Kommando verwendet werden.
Zuvor müssen der private Authentisierungsschlüssel und die zum Authentisierungsprotokoll passende
Algorithmenkennung gesetzt werden.
HPC-Spezifikation V2.3.2, Teil II
Seite 95 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 202 – (N2211.00) MSE Kommando für die Schlüssel- und Algorithmenauswahl
CLA
INS
P1
P2
Lc
Datenfeld
Gemäß ISO/IEC 7816-4
‘22’ = MANAGE SECURITY ENVIRONMENT
‘41’ = SET für Berechnung
‘B6’ = Digital Signature Template
‘06’ = Länge des zugehörenden Datenfeldes
‘84 01 82’ || ’80 01 yy’ = DO KeyRef von PrK.HP.AUTO || DO AlgID
Le
‘yy’ = ‘02’: signPKCS1_V1_5
‘yy’ = ‘05’: signPSS
‘yy’ = ‘07’: sign9796_2_DS2
Nicht vorhanden
Tabelle 203 - (N2212.00) MSE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Tabelle 204 - (N2213.00) PSO: COMPUTE DIGITAL SIGNATURE Kommando
CLA
INS
P1
P2
Gemäß ISO/IEC 7816-4
‘2A’ = PERFORM SECURITY OPERATION: COMPUTE DIGITAL SIGNATURE
‘9E’ = Return digital signature
- ‘9A’ = Datenfeld enthält die Daten, die signiert oder in den Digital Signature
Input (DSI) integriert werden sollen (für PKCS#1 SSA-V1.5 und PKCS#1 PSS)
- ‘AC’ = Datenfeld enthält Datenobjekte mit Datenelementen, die signiert oder in
den Digital Signature Input integriert werden sollen (für ISO9796-2 DS2)
Lc
‘00xxxx’ = Länge des zugehörenden Datenfeldes
Datenfeld - DSI gemäß ISO9796-2 DS2 oder
- DSI gemäß PKCS#1 SSA-V1.5 oder
- DSI gemäß PKCS#1 PSS
Le
‘0100’ = Länge der erwarteten digitalen Signatur = 256
Tabelle 205 - (N2214.00) PSO: COMPUTE DIGITAL SIGNATURE Antwort
Datenfeld
SW1-SW2
Digitale Signatur
‘9000’ oder spezifische Status-Bytes, see [HPC-P1]
HPC-Spezifikation V2.3.2, Teil II
Seite 96 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
13 Laden einer neuen Anwendung oder Anlegen eines EFs
nach Ausgabe der HPC
13.1 Identifizierung des HPC-Betriebssystems
Es wird angenommen, dass das Laden neuer Anwendungen oder das Erstellen neuer EFs auf MFEbene oder in DF.HPA nach der Ausgabe der HPC von einem Card Application Management System
(CAMS) durchgeführt wird. Dies ist ein optionaler Prozess. Ebenso ist das CAMS optional. Die Inhalte
dieses Kapitels sind allerdings normativ, wenn das Laden neuer Anwendungen oder das Erstellen
neuer EFs nach HPC-Ausgabe durchgeführt werden müssen.
Ein CAMS kann schon Informationen über eine bestimmte HPC gespeichert haben, z.B. die ICCSN,
das zugehörende Betriebssystem und die schon vorhandenen Anwendungen. Das CAMS kann diese
Informationen aber auch durch das Auslesen z.B. von EF.ATR, EF.GDO, EF.DIR und EF.Version
bekommen.
13.2 Einrichtung eines Trusted Channel zwischen CAMS und HPC
Ein Trusted Channel kann mit symmetrischen oder asymmetrischen Authentisierungsverfahren eingerichtet werden. Dies hängt vom beteiligten CAMS ab. Beide CAMS-Authentisierungsverfahren sind zulässig und werden als gleichwertig betrachtet. Im Folgenden wird das asymmetrische Authentisierungsverfahren beschrieben, das auch Teil des Schutzprofils der HPC [PP-HPC] ist.
Zur Einrichtung eines Trusted Channel zwischen der HPC und dem zugehörigen CAMS muss ein
asymmetrisches Authentisierungsverfahren mit der Berechnung von Secure Messaging-Schlüsseln
gemäß [HPC-P1] durchgeführt werden, siehe folgendes Kapitel. Da der PuK.CAMS_HPC.AUT_CVC
schon in der HPC gespeichert ist, ist keine Prüfung der CVCs des CAMS notwendig. Dem CAMS
müssen allerdings die CVCs der HPC übermittelt werden, siehe Abbildung 10 (N2600.00).
WurzelCA
Selbstzertifikat signiert von der
Wurzel-CA zur Bereitstellung
C.RCA.
des öffentlichen RootCS
Schlüssels PuK.RCA.CS,
der zur Verifikation von
C.CA_HPC.CS gebraucht wird.
PuK.HPC.AUTR_CVC
Während der Authentisierung
verwendete Schlüssel
Bereitstellung von
PuK.HPC.AUTR_CVC
über Zertifikatskette
CAMS
C.CA_
HPC.
CS
PrK.CAMS_HPC.AUT_CVC
Während der Authentisierung
verwendete Schlüssel
C.HPC.
AUTR_
CVC
PrK.HPC.AUTR_CVC
HBA
PuK.CAMS_HPC.AUT_CVC
(in HBA vorhanden)
Abbildung 10 – (N2600.00) Schlüssel und Schlüsselimport für HPC/CAMS Authentisierung mit
Aufbau eines Trusted Channel
HPC-Spezifikation V2.3.2, Teil II
Seite 97 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
13.2.1 Asymmetrische Authentisierung
Im ersten Teil des Prozesses weist die HPC seine Echtheit gegenüber dem CAMS nach. Bevor das
Kommando zur internen Authentisierung an die HPC gesendet wird, fordert die externe Software eine
Zufallszahl vom CAMS an. Auf der HPC werden zunächst die Schlüssel und Algorithmen für beide
Authentisierungskommandos ausgewählt.
Anmerkung – Beide MSE SET Kommandos für interne und externe Authentisierung werden unmittelbar hintereinander ausgeführt, so dass die Sequenz der Authentisierungskommandos nicht durch ein MSE SET Kommando unterbrochen wird, siehe Kapitel 15 in [HPC-P1].
Tabelle 206 - (N2601.00) MSE Kommando für die Schlüssel- und Algorithmenauswahl
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘22’ = MANAGE SECURITY ENVIRONMENT
‘41’ = SET für interne Authentisierung
‘A4’ = Authentication Template in Datenfeld
‘06’ = Länge des zugehörenden Datenfeldes
’84 01 10’ || ‘80 01 54'
= DO KeyRef von PrK.HPC.AUTR_CVC || DO AlgID rsaSessionkey4SM
Nicht vorhanden
Tabelle 207 - (N2602.00) MSE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Tabelle 208 - (N2603.00) MSE Kommando für die Schlüssel- und Algorithmenauswahl
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘22’ = MANAGE SECURITY ENVIRONMENT
‘81’ = SET für externe Authentisierung
‘A4’ = Authentication Template im Datenfeld
‘11’ = Länge des zugehörenden Datenfeldes
‘83 0C 00000000 00000000 00000013’ || ‘80 01 54’ = DO KeyRef von
PuK.CAMS_HPC.AUT_CVC || DO AlgID rsaSessionkey4SM
Nicht vorhanden
Tabelle 209 - (N2604.00) MSE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
HPC-Spezifikation V2.3.2, Teil II
Seite 98 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 210 – (N2605.00) INTERNAL AUTHENTICATE Kommando
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘88’ = INTERNAL AUTHENTICATE
‘00’ = Algorithmus der Karte bereits bekannt
‘00’ = Schlüsselreferenz der Karte bereits bekannt
‘000010’ = Länge des zugehörenden Datenfeldes
Auf die Authentisierung bezogene Daten,
siehe Kapitel 14.7.4 in [HPC-P1],
‘0100’ = Länge der erwarteten Signatur
Tabelle 211 – (N2606.00) INTERNAL AUTHENTICATE Antwort
Datenfeld
SW1-SW2
Auf die Authentisierung bezogene Daten,
siehe Kapitel 14.7.4 in [HPC-P1]
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Der Authentisierungs-Token (Inhalt des Antwortdatenfeldes) wird im entsprechenden CAMS geprüft.
Der zweite Teilprozess umfasst die externe Authentisierung des CAMS. Zunächst wird eine Zufallszahl von der HPC angefordert.
Tabelle 212 - (N2607.00) GET CHALLENGE Kommando
CLA
INS
P1, P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘84’ = GET CHALLENGE
‘0000’
Nicht vorhanden
Nicht vorhanden
‘08’ = Länge der erwarteten Zufallszahl = 8
Tabelle 213 - (N2608.00) GET CHALLENGE Antwort
Datenfeld
SW1-SW2
RND.HPC (8 Bytes)
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Die Zufallszahl wird dem CAMS zusammen mit den 8 LSB der ICCSN der HPC übergeben. Das
Ergebnis der vom CAMS ausgeführten internen Authentisierung wird mit dem Kommando EXTERNAL
AUTHENTICATE an die HPC gesendet. Die HPC muss die CAMS-Signatur prüfen.
Tabelle 214 – (N2609.00) EXTERNAL AUTHENTICATE Kommando zur CAMS-Authentisierung
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘82’ = EXTERNAL AUTHENTICATE
‘00’ = Algorithmus der Karte bereits bekannt
‘00’ = Schlüsselreferenz der Karte bereits bekannt
‘000100’ = Länge des zugehörenden Datenfeldes = 256
Auf die Authentisierung bezogene Daten,
siehe Kapitel 14.7.1 in [HPC-P1]
Nicht vorhanden
HPC-Spezifikation V2.3.2, Teil II
Seite 99 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 215 - (N2610.00) EXTERNAL AUTHENTICATE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Die Authentisierungsdaten enthalten Datenelemente zur Schlüsselableitung, die gemäß Kapitel 13.1
und 14.7.1 in [HPC-P1] erfolgt. Eine erfolgreiche Prüfung setzt in der HPC den Sicherheitsstatus
“Privater CAMS-Schlüssel erfolgreich nachgewiesen”. Ein Trusted Channel wurde aufgebaut, d.h.
neue Anwendungsdaten können nun mit Secure Messaging zur HPC gesendet werden.
13.2.2 Durchführung der symmetrischen Authentisierung
Falls der symmetrische Schlüssel SK.CAMS in der Karte vorhanden ist, muss das symmetrische
Authentisierungsverfahren zwischen HPC und CAMS wie folgt durchgeführt werden. Die Kommandosequenz beginnt mit dem Setzen des symmetrischen Schlüssels und der passenden Algorithmenkennung für gegenseitige Authentisierung.
Tabelle 216 - (N2611.00) MSE Kommando für die Schlüssel- und Algorithmenauswahl
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘22’ = MANAGE SECURITY ENVIRONMENT
‘81’ = SET für gegenseitige Authentisierung
‘A4’ = Authentication Template im Datenfeld
‘06’ = Länge des zugehörenden Datenfeldes = 6
‘83 01 13’ || ‘80 01 54’ = DO KeyRef von SK.CAMS || DO AlgID
desSessionkey4SM
Nicht vorhanden
Tabelle 217 - (N2612.00) MSE Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe
[HPC-P1]
Anschließend wird eine Zufallszahl von der HPC abgerufen.
Tabelle 218 - (N2613.00) GET CHALLENGE Kommando
CLA
INS
P1, P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘84’ = GET CHALLENGE
‘0000’
Nicht vorhanden
Nicht vorhanden
‘08’ = Länge der erwarteten Zufallszahl = 8
Tabelle 219 - (N2614.00) GET CHALLENGE Antwort
Datenfeld
SW1-SW2
RND.HPC (8 Bytes)
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Dann wird ein INTERNAL AUTHENTICATE Kommando mit RND.HPC || ICCSN8.HPC im Datenfeld
an das CAMS gesendet. Ein MUTUAL AUTHENTICATE Kommando folgt auf Seiten der HPC. Dieses
HPC-Spezifikation V2.3.2, Teil II
Seite 100 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Kommando übermittelt die Authentisierungsdaten des CAMS an die HPC. Die HPC verifiziert die
CAMS-Daten und berechnet die eigenen Authentisierungsdaten.
Tabelle 220 – (N2615.00) MUTUAL AUTHENTICATE Kommando
CLA
INS
P1
P2
Lc
Datenfeld
Gemäß ISO/IEC 7816-4
‘82’ = MUTUAL AUTHENTICATE
‘00’ = Algorithmus der Karte bereits bekannt
‘00’ = Schlüsselreferenz der Karte bereits bekannt
‘68’ = Länge des zugehörenden Datenfeldes = 104
Auf die Authentisierung bezogene Daten, siehe Kapitel 14.7.1
von [HPC-P1]
‘68’ = Länge der erwarteten Authentisierungsdaten = 104
Le
Tabelle 221 - (N2616.00) MUTUAL AUTHENTICATE Antwort
Datenfeld
SW1-SW2
Auf die Authentisierung bezogene Daten, siehe Kapitel 14.7.1
von [HPC-P1]
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Eine erfolgreiche Prüfung setzt in der HPC den erforderlichen Sicherheitsstatus. Die HPC-Authentisierungsdaten (aus dem Datenfeld der Antwort) werden im CAMS während eines EXTERNAL AUTHENTICATE Kommandos geprüft. Schließlich steht ein Trusted Channel zur Verfügung, der eine Datenübertragung an die HPC mit Secure Messaging ermöglicht.
13.3 Laden einer Anwendung oder einer neuen Datei
Für den Ladeprozess wird das LOAD APPLICATION Kommando genommen, wie es in Kapitel 14.2.5
von [HPC-P1] definiert ist. Fall ein einzelnes Kommando für die Übertragung der gesamten Anwendung oder Datei nicht ausreicht, wird möglicherweise Command Chaining genutzt.
Tabelle 222 – (N2617.00) LOAD APPLICATION Kommando zum Laden von Anwendungsdaten
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘EA’ = LOAD APPLICATION
‘00’
‘00’
‘xx’ oder 00xxxx’ = Länge des zugehörenden Datenfeldes
Neue anwendungsbezogene Daten
Nicht vorhanden
Tabelle 223 – (N2618.00) LOAD APPLICATION Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
Das LOAD APPLICATION Kommando kann auch zum Anlegen eines neuen EFs verwendet werden,
siehe Kapitel 14.2.2 und 14.2.5 in [HPC-P1]. Falls für die angelegte Datei eine neue Zugriffsregel gilt,
dann muss diese Zugriffsregel in das COS integriert werden.
HPC-Spezifikation V2.3.2, Teil II
Seite 101 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
13.4 Eintragen einer neuen Anwendung in EF.DIR
Falls eine neue Anwendung geladen wurde, muss in EF.DIR ein DO Anwendungstemplate mit der
Kennung der neuen Anwendung eingefügt werden. Hierfür wird das Kommando APPEND RECORD
verwendet
Tabelle 224 - (N2619.00) APPEND RECORD Kommando
CLA
INS
P1
P2
Lc
Datenfeld
Le
Gemäß ISO/IEC 7816-4
‘E2’ = APPEND RECORD
‘00’
‘F0’ = b8-b4: 11110 SFID von EF.DIR: 30
b3-b1: 000
’xx’ = Länge des zugehörenden Datenfeldes
DO Application Template, siehe Tabelle 9
(N2010.00)
Nicht vorhanden
Tabelle 225 – (N2620.00) APPEND RECORD Antwort
Datenfeld
SW1-SW2
Nicht vorhanden
‘9000’ oder spezifische Status-Bytes, siehe [HPC-P1]
HPC-Spezifikation V2.3.2, Teil II
Seite 102 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Annex A (normativ)
Kartenausgeberschlüssel, Nummernräume der
Zertifizierungsdiensteanbieter und
Certificate Holder Authorizations
A.1 Kartenausgeberschlüssel
Die Identifikationsnummer für Kartenherausgeber (issuer identifier) erlaubt in Kombination mit dem
Ländercode eine weltweit eindeutige Identifizierung des Kartenherausgebers. Der BCD-kodierte
Ländercode für Deutschland hat gemäß [ISO3166] den Wert ‘276’. Der Kartenausgeberschlüssel wird
in Deutschland im Auftrag des DIN durch GS1-Germany GmbH, Köln zugewiesen. Der Kartenherausgeber ist normalerweise der rechtmäßige Eigentümer der von ihm herausgegebenen Karten. Dies gilt
besonders dann, wenn die Karte eine Identifizierungsfunktion hat, da es dann Gründe für das Einziehen der Karte geben kann: z.B. die Beendigung des Arbeitsverhältnisses oder der Verlust der Approbation. Deswegen ist normalerweise ein Hinweis auf die Rückseite der Karte gedruckt, dass der
Herausgeber der Karte (z.B. eine Ärztekammer) das Recht hat, die Karte einzuziehen.
Der Issuer Identifier ist Teil der ICCSN (Integrated Circuit Card Serial Number), die eine weltweit eindeutige Identifikation jeder einzelnen Karte erlaubt. Für Karten im Gesundheitsbereich wird ein solches Identifizierungsmerkmal im Europäischen Standard [EN1867] gefordert. In diesem Standard ist
ebenfalls der sogenannte "Major Industry Identifier" (MII) für Kartenhersteller im Gesundheitsbereich
spezifiziert, der den Wert ‘80’ hat.
Aus technischer Sicht kann die ICCSN oder Teile von ihr zu folgenden Zwecken genutzt werden
- Kartensperrung,
- kartenindividuelle Schlüsselableitung,
- Schlüsselidentifizierung (z.B. den öffentlichen Schlüssel in einem CV-Zertifikat),
- Erstellung von Daten, die für die Authentisierung relevant sind und
- Binden von Objekten oder Operationen an eine bestimmte Karte.
Die folgende Tabelle zeigt einige Kartenausgeberschlüssel, die im deutschen Gesundheitswesen für
Heilberufsausweise (HPCs) und Security Module Cards (SMCs) verwendet werden. Die vollständige
Liste der registrierten Kartenherausgeber ist nicht veröffentlicht, aber kann evt. bei GS1 angefordert
werden.
HPC-Spezifikation V2.3.2, Teil II
Seite 103 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 226 - (N2621.00) Kartenausgeberschlüssel (unvollständige Liste)
MII für das
Gesundheitswesen
‘80’
Länderkennung
Deutschland
Kartenausgeberschlüssel (Issuer Identifier)
‘276’
‘00101’
’00108’
’00109’
’00110’
’00279’
'00xxx'
Werbe- und Vertriebsgesellschaft Deutscher Apotheker mbH
Bundesärztekammer
Bundespsychotherapeutenkammer
Bundeszahnärztekammer
Kassenzahnärztliche Bundesvereinigung
Landeskrankenhausgesellschaften (DKTIG)
A.2 Nummernräume für Zertifizierungsdiensteanbieter
Jedem Zertifizierungsdiensteanbieter (ZDA) wurde ein individueller Nummernraum für Seriennummern
zugewiesen, um die ZDA-übergreifende Eindeutigkeit sowohl der ICCSN, als auch des Attributs
serialNumber der SubjectDN (Teil des Subject-Feldes im X.509-Zertifikat) zu garantieren. Für beide
Zwecke werden die zwei führenden Ziffern der Seriennummer als Präfix genutzt, um den Zertifizierungsdienstenbieter anzuzeigen, der für die Eindeutigkeit der restlichen Ziffern zuständig ist. Tabelle
227 (N2622.00) zeigt die vergebenen ZDA-Präfixe.
Tabelle 227 – (N2622.00) ZDA-Präfixe für Seriennummernräume
Präfix
10
11
12
13
14
15
16
Zertifizierungsdiensteanbieter
D-TRUST
Signtrust
T-Systems Telesec
S-Trust
TC TrustCenter
DGN
medisign
Die folgenden Beispiele zeigen ICCSNs von Karten, die von der Bundesärtzekammer (Kartenausgeberschlüssel ‘00108’) ausgegeben wurden und Seriennummern der D-TRUST bzw. Signtrust enthalten:
’80’ ‘276’ ‘00108’ ‘10 12345678’ ICCSN mit Seriennummer der D-TRUST
’80’ ‘276’ ‘00108’ ‘11 12345678’ ICCSN mit Seriennummer der Signtrust
A.3 Certificate Holder Authorizations und Profile
Die “Certificate Holder Authorization” (CHA) ist Teil der CV-Zertifikate jeder Karte, d.h. der HPC, der
SMC-A, der SMC-B und der anderen Karten in deutschen Gesundheitswesen. Sie wird insbesondere
in Zugriffsregeln verwendet, welche den kryptograpfischen Schlüsseln und den Dateien zugeordnet
sind, so dass die Karte bei einem bestimmten Zugriff von außen (z.B. Kommando zum Berechnen
einer digitalen Signatur oder zum Aktualisieren von Daten) selbst entscheiden kann, ob das entsprechende Kommando zulässig ist oder abgewiesen werden muss. Eine CHA wird nur dann als gültig
anerkannt, wenn der zugehörende Authentisierungsprozess erfolgreich ausgeführt wurde. Während
des Authentisierungsprozesses muss die externe Einheit (z.B. die HPC eines Heilberuflers einer bestimmten Berufsgruppe) nachweisen, dass sie den privaten Schlüssel besitzt, der zu dem im CVC enthaltenen öffentlichen Schlüssel gehört. Die Nutzung dieses privaten Schlüssels setzt in der HPC die
erfolgreiche Eingabe der zugehörenden PIN voraus, so dass die Ausführung der Authentisierung
rechtmäßig ist.
HPC-Spezifikation V2.3.2, Teil II
Seite 104 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Die CHA besteht aus 7 Bytes und enthält eine Anwendungskennung (AID, erste 6 Bytes) und eine
Rollenkennung (Role ID, letztes Byte). Der AID wiederum besteht aus einem “Registered Application
Provider Identifier” (RID, erste 5 Bytes) und einer “Proprietary Application Provider Extension” (PIX).
Für Rollenkennungen im deutschen Gesundheitswesen wird die weltweit eindeutige Anwendungskennung ‘D27600004000’ verwendet. Der RID ‘D276000040’ wurde von der RID German National
Registration Authority (heute SIT im Auftrag des DIN) dem ZI (Zentralinstitut für die kassenärztliche
Versorgung in der Bundesrepublik Deutschland) für die Nutzung im deutschen Gesundheitswesen zugewiesen. Die PIX des oben genannten AID wird auf ‘00’ gesetzt.
Die Rollenkennung beinhaltet die eigentliche Autorisierung des Karteninhabers, d.h. ein Profil für die
autorisierte Nutzung kryptografischer Schlüssel oder für den Zugriff auf Daten anderer Karten. Die Definition der Profile und die Zuordnung von Berufsgruppen zu einem bestimmten Profil ist nicht Gegenstand dieser Spezifikation. Zwei Profilgruppen sind für das deutsche Gesundheitswesen vorgesehen
(siehe [PKI-Reg] für weitere Details):
-
Profile für die Rollenauthentisierung von Berufsgruppen (z.B. Ärzte oder Apotheker), Mitarbeiter
der Berufsgruppen (z.B. Mitarbeiter von Ärtzten oder Apothekern) und Institutionen (z.B. Arztpraxen, Apotheken oder Krankenhäuser). Falls verschiedene Berufsgruppen dieselben Zugriffsrechte auf bestimmte Kartendaten besitzen, können sie demselben Profil zugeordnet werden. Dadurch können die Zugriffsregeln in den Karten kompakt gehalten werden. Gegenwärtig sind zehn
Profile (0-9) für die Rollenauthentisierung im deutschen Gesundheitswesen definiert, siehe
Tabelle 228 (N2623.00).
-
Profile für die Geräteauthentisierung bestimmter Karten und funktionaler Einheiten (z.B. PINEmpfänger oder Signaturkarte). Gegenwärtig sind fünf Profile (51-55) für die Geräteauthentisierung im deutschen Gesundheitswesen definiert, siehe Tabelle 229 (N2624.00).
Tabelle 228 – (N2623.00) CHAs für die Rollenautentisierung von Personen / Institutionen
(informativ)
CHA-Präfix
‘D27600004000’
CHA
Rollenkennung
‘00’
‘D27600004000’
‘01’
‘D27600004000’
‘02’
‘D27600004000’
‘03’
Profil des CVC-Inhabers
ZDA
Profil 0 zur Rollenauthentisierung
des Versicherten ohne Zugriffsrecht auf geschützte eGK-Daten
(eGK)
Profil 1 zur Rollenauthentisierung
des eKiosk als Umgebung zur
Wahrnehmung der Rechte des
Versicherten (SMC-B)
Profil 2 zur Rollenauthentisierung
- des Arztes/Zahnarztes in einer
Institution, z.B. eigene Praxis,
Gemeinschaftspraxis, Krankenhaus (HPC),
- des Mitarbeiters medizinische
Institution (z.B. in Arztpraxis,
Krankenhaus) (HPC oder BA),
- des Mitarbeiters medizinische
Institution (z.B. in Arztpraxis,
Krankenhaus) mit Autorisierung
und Protokollierung gemäß
§ 291a Abs. 5 Satz 4 SGB V
(SMC-A, SMC-B).
Der "Mitarbeiter medizinische Institution" verkörpert gegenüber
der Telematikinfrastruktur die
Institution des Arztes.
Profil 3 zur Rollenauthentisierung
- des Apothekers in einer öffentli-
CA_eGK
HPC-Spezifikation V2.3.2, Teil II
Zugriffsbedingung des
Authentisierungsschlüssels
(z.B. Authentisierung mit
CHA der zugehörigen Karte)
eGK: ALWAYS
CA_eKiosk SMC-B: tbd
CA_HPC
CA_SMC
HPC, BA: PWD(PIN.CH)
SMC-A, SMC-B in Praxis:
AUT(‘D27600004000’ || '02')
SMC-A, SMC-B in
Krankenhaus:
AUT( ‘D27600004000’ || '02')
OR
AUT( ‘D27600004000’ || '03')
OR
AUT( ‘D27600004000’ || '04')
OR
AUT( ‘D27600004000’ || '05')
Siehe Anmerkung 2
CA_HPC
CA_SMC
HPC, BA: PWD(PIN.CH)
Seite 105 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
CHA-Präfix
‘D27600004000’
CHA
Rollenkennung
‘04’
‘D27600004000’
‘05’
‘D27600004000’
‘06’
‘D27600004000’
‘07’
‘D27600004000’
‘08’
‘D27600004000’
‘09’
‘D27600004000’
‘0A’ –
‘32’
Profil des CVC-Inhabers
chen Apotheke oder einer Krankenhausapotheke, jeweils mit
Sitz in Deutschland (HPC),
- des Mitarbeiters einer Apotheke
als berufsmäßiger Gehilfe oder
Person, die zur Vorbereitung auf
den Beruf tätig ist, gemäß § 291a
Abs. 5 Satz 4 SGB V (HPC oder
BA),
- des Mitarbeiters Apotheke mit
Autorisierung und Protokollierung
gemäß § 291a Abs. 5 Satz 4
SGB V (SMC-A, SMC-B).
Der „Mitarbeiter Apotheke" verkörpert gegenüber der Telematikinfrastruktur die Institution des
Apothekers.
Profil 4 zur Rollenauthentisierung
- des psychologischen Psychotherapeuten, Kinder- und Jugendlichenpsychotherapeuten
(der ärztliche Psychotherapeut
verwendet Profil 2) (HPC),
- des Mitarbeiters psychologische
Praxis tbd (SMC-A, SMC-B)
Profil 5 zur Rollenauthentisierung
- des Heilmittelerbringers (HPC
oder BA)
- des Hilfsmittelerbringers (BA)
Profil 6 zur Rollenauthentisierung
einer Instanz tbd (SMC-A oder
SMC-B)
Profil 7 zur Rollenauthentisierung
des im Rettungswesen medizinisch tätigen Personals (Rettungssanitäter, Rettungsassistent) (HPC oder BA). Dabei handelt es sich um Angehörige eines
anderen Heilberufs, die für die
Berufsausübung oder die Führung der Berufsbezeichnung eine
staatlich geregelte Ausbildung
(§ 291a Abs. 4 Satz 1 Nr. 2 e)
absolviert haben.
Profil 8 zur Rollenauthentisierung
- des Mitarbeiters von Gesundheitseinrichtungen ohne eigenen
HPC oder BA (SMC-A, SMC-B)
- des Mitarbeiters von Krankenkassen (SMC-A, SMC-B)
Profil 9 zur Rollenauthentisierung
- des Mitarbeiters von Gesundheitseinrichtungen ohne eigenen
HPC oder BA (SMC-A, SMC-B)
- der sicheren Einsatzumgebung
für den Versicherten (SMC-A,
SMC-B)
Profile 10 – 50 für eine spätere
Nutzung reserviert
ZDA
Zugriffsbedingung des
Authentisierungsschlüssels
(z.B. Authentisierung mit
CHA der zugehörigen Karte)
SMC-A, SMC-B:
AUT(‘D27600004000’ || '03')
CA_HPC
CA_SMC
HPC: PWD(PIN.CH)
SMC-A, SMC-B:
AUT(‘D27600004000’ || '04')
tbd
HPC, BA: PWD(PIN.CH)
tbd
SMC-A oder SMC-B: tbd
tbd
HPC, BA: PWD(PIN.CH)
tbd
SMC-A, SMC-B: tbd
tbd
SMC-A, SMC-B: tbd
tbd
tbd
Anmerkung 1 – Viele oder alle ZDAs in Tabelle 228 (N2623.00) können identisch sein. Alle CV-Zertifikate von
HPC und SMC stammen von derselben Wurzel-Zertifizierungsinstanz für CV-Zertifikate.
HPC-Spezifikation V2.3.2, Teil II
Seite 106 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Anmerkung 2 – Die SMC eines Krankenhauses besitzt dieselben Zugriffsrechte auf eine eGK wie die SMC einer
Arzt- oder Zahnarztpraxis. Während die SMC einer Praxis jedoch ausschließlich (ungeachtet der Eingabe von
PIN.SMC) durch den HPC eines Arztes oder Zahnarztes autorisiert werden kann, sind möglicherweise die Profile
mehrerer Berufsgruppen berechtigt, die SMC in einem Krankenhaus zu autorisieren. Die aufgeführten Profile stellen die maximal zugelassenen Profile dar. Die zuständige Institution kann daraus eine Untermenge festlegen, die
zur Autorisierung einer bestimmten SMC berechtigt ist.
Tabelle 229 – (N2624.00) CHAs für die für Geräteauthentisierung von funktionellen Einheiten
(informativ)
CHA-Präfix
‘D27600004000’
CHA
Rollenkennung
‘33’
‘D27600004000’
‘34’
‘D27600004000’
‘35’
‘D27600004000’
‘36’
‘D27600004000’
‘37’
Profil des CVC-Inhabers
ZDA
Profil 51 für die Geräteauthentisierung der sicheren Signaturumgebung der SAK (SMC-K )
Profil 52 für die Geräteauthentisierung des Auslösers der Komfortsignatur (RFID Token oder
Biometriemodul)
CA_SAK
Profil 53 für die Geräteauthentisierung der SSEE für Stapelund Komfortsignatur (HPC)
Profil 54 für die Geräteauthentisierung eines PIN-Senders
(SMC-A, SMC-B)
Profil 55 für die Geräteauthentisierung eines PIN-Empfängers
(SMC-B, RFID Token)
CA_KM
Zugriffsbedingung des
Authentisierungsschlüssels
(z.B. Authentisierung mit CHA
der zugehörigen Karte)
SMC-K:
AUT(‘D27600004000’ || ‘35’)
RFID-Token:
PWD(PIN.CH) OR ALWAYS
Biometriemodul:
PWD(Biometrisches Merkmal)
CA_HPC HPC:
ALWAYS
CA_SMC SMC-A und SMC-B:
AUT(‘D27600004000’ || ‘35’) OR
AUT(‘D27600004000’ || ‘37’)
CA_SMC SMC-A, SMC-B:
CA_KM
ALWAYS
Anmerkung – Viele oder alle ZDAs in Tabelle 229 (N2624.00) können identisch sein. Alle CV-Zertifikate von
HPC und SMC stammen von derselben Wurzel-Zertifizierungsinstanz für CV-Zertifikate.
Die HPC besitzt zwei CV-Zertifikate:
-
C.HPC. AUTR_CVC für die Rollenauthentisierung (siehe in Kapitel 4.3.7) mit einem Profil des
Karteninhabers als Mitglied einer Berufsgruppe und
-
C.HPC.AUTD_SUK_CVC für die Geräteauthentisierung (siehe in Kapitel 4.3.8) mit dem Profil 53
einer SSEE für die Stapel- und Komfortsignatur. Dieses Profil wird zum Empfang der zu
signierenden Daten und der PIN-Daten genutzt.
Die SMC-A besitzt zwei CV-Zertifikate:
-
C.SMC.AUTR_CVC für die Rollenauthentisierung (siehe Kapitel 5.3.7 in [HPC-P3]) mit einem
Profil der Mitarbeiter bzw. der Institution und
C.SMC.AUTD_RPS_CVC für die Geräteauthentisierung (siehe Kapitel 5.3.8 in [HPC-P3]) mit
dem Profil 54 eines PIN-Senders.
Die SMC-B besitzt drei CV-Zertifikate:
-
C.SMC.AUTR_CVC für die Rollenauthentisierung (siehe Kapitel 6.3.7 in [HPC-P3]) mit einem
Profil der Mitarbeiter bzw. der Institution,
HPC-Spezifikation V2.3.2, Teil II
Seite 107 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
-
C.SMC. AUTD_RPS_CVC für die Geräteauthentisierung (siehe Kapitel 6.3.8 in [HPC-P3]) mit
dem Profil 54 eines PIN-Senders,
-
C.SMC.AUTD_RPE_CVC für die Geräteauthentisierung (siehe Kapitel 6.3.9 in [HPC-P3]) und mit
dem Profil 55 eines PIN-Empfängers.
HPC-Spezifikation V2.3.2, Teil II
Seite 108 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Annex B (normativ)
Struktur und Inhalt der QES-Zertifikate
B.1 Zertifikat des öffentlichen Schlüssels für elektronische Signaturen (X.509v3
QES-Zertifikat)
B.1.1 Allgemeine Aspekte
Die Kodierung der HB-QES-Zertifikate muss mit den folgenden Vorgaben übereinstimmen:
-
den standardisierten Kodierungs-Schemata für X.509v3-Zertifikate,
den gesetzlichen Vorschriften des Signaturgesetzes (SigG) und der Signaturverordnung (SigV) in
der jeweils gültigen Fassung und
der Common PKI-Spezifikation für interoperable PKI-Anwendungen (speziell Teil 1: "Certificate
and CRL Profiles" [COM-PKI-1], und dem optionalen Profil "SigG-Profile"[COM-PKI-9].
Felder im Zertifikat, die in den oben genannten Dokumenten, Regulierungen und Spezifikationen als
verbindlich vorgeschrieben sind, müssen in den QES-Zertifikaten der Heilberufler vorhanden sein.
Zusätzlich sind wegen der vorgesehenen Nutzung der HB-QES-Zertifikate in nationalen und
internationalen Umgebungen weitere Felder in den Zertifikaten als verbindlich gekennzeichnet.
Die QES-Zertifikate bestehen aus
-
dem QES-Public-Key-Zertifikat und
keinem, einem oder mehreren QES-Attributzertifikaten.
Das QES-Public-Key-Zertifikat ist nachfolgend als eine Teilmenge der Common PKI-Spezifikation für
Zertifikate beschrieben. Die Attributzertifikate sind in Kapitel B.7 beschrieben.
B.1.2 Zertifikatsstruktur
Die generelle Zertifikatsstruktur besteht aus drei verbindlichen Teilen:
-
dem zu signierenden Zertifikatsinhalt,
dem Signaturalgorithmus und
der Signatur des Zertifikatsherausgebers.
In ASN1-Notation wird die generelle Zertifikatsstruktur durch den Typ Certificate definiert, der im
Folgenden spezifiziert wird:
Certificate
tbsCertificate
signatureAlgorithm
signature
::=
HPC-Spezifikation V2.3.2, Teil II
SEQUENCE {
TBSCertificate,
AlgorithmIdentifier,
BIT STRING }
Seite 109 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
B.2 ToBeSignedCertificate
B.2.1 Allgemeine Struktur
Die generelle Struktur besteht aus den folgenden Feldern (ASN.1-Typ-Definition):
TBSCertificate
version
serialNumber
signature
issuer
validity
subject
subjectPublicKeyInfo
issuerUniqueID
subjectUniqueID
extensions
::=
SEQUENCE {
[0]
EXPLICIT Version DEFAULT v1,
CertificateSerialNumber,
AlgorithmIdentifier,
Name,
Validity,
Name,
SubjectPublicKeyInfo,
[1]
IMPLICIT UniqueIdentifier OPTIONAL,
[2]
IMPLICIT UniqueIdentifier OPTIONAL,
[3]
EXPLICIT Extensions Optional }
Anmerkung - In X.509-Zertifikaten sind Erweiterungen ("extensions") optional, aber für QES-Zertifikate sind einige
Erweiterungen verbindlich vorgeschrieben. Die optionalen Erweiterungen issuerUniqueID und subjectUniqueID ,
die in der ASN.1-Definition enthalten sind, dürfen nicht benutzt werden.
B.2.2 Version
Die Version kennzeichnet das Kodierschema eines Zertifikats.
Die ASN.1-Definition für den Typ Version:
Version
::=
INTEGER { v1(0), v2(1), v3(2) }
Für QES-Zertifikate von Heilberuflern ist nur X.509v3 verbindlich.
B.2.3 Seriennummer
Die serialNumber identifiziert in Kombination mit den issuer-Namensfeldern der QES-Zertifikate ein
ES-Zertifikat ([RFC2459]) eindeutig. Diese Anforderung an Eindeutigkeit ist in [COM-PKI-1] auf alle
Arten von Zertifikaten erweitert, d.h., sie gilt sowohl für ES als auch für Attributzertifikate (ACs).
Die ASN.1-Definition des Typs CertificateSerialNumber für das Feld serialNumber:
CertificateSerialNumber
::=
INTEGER
Die Definition von [RFC2459] für Seriennummern setzt für den Wert oder die Länge dieses Feldes
keine Obergrenze. [RFC3280] verlangt jedoch, dass die Seriennummer eine ganze positive Zahl sein
MUSS, die nicht länger als 20 Octets sein darf (1 <= SN < 2159, MSB=0 weist auf das positive
Vorzeichen hin). Diese Anforderungen an die Länge gelten auch für [COM-PKI-1] und müssen bei
QES-Zertifikaten für Heilberufler berücksichtigt werden.
B.2.4 Signatur
Das Feld signature vom Typ AlgorithmIdentifier benennt den Signaturalgorithmus, der von der
Certification Authority (CA) benutzt wurde, um dieses Zertifikat zu signieren. Sein Inhalt muss mit dem
des Feldes signatureAlgorithm (siehe B.3) übereinstimmen.
Die ASN.1 Definition des Typs AlgorithmIdentifier für das Feld signature:
HPC-Spezifikation V2.3.2, Teil II
Seite 110 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Algorithmidentifier
algorithm
parameters
::=
SEQUENCE {
OBJECT IDENTIFIER,
ANY DEFINED BY algorithm OPTIONAL }
B.2.5 Herausgeber
Das Feld issuer vom Typ Name spezifiziert die CA, die das Zertifikat herausgegeben hat.
Die ASN.1 Definition des Typs Name für das Feld issuer:
Name
RDNSequence
::=
::=
CHOICE { RDNSequence }
SEQUENCE OF RelativeDistinguishedName
RelativeDistinguishedName
::=
SET OF AttributeTypeAndValue
AttributeTypeAndValue
type
Value
::=
SEQUENCE {
AttributeType,
AttributeValue }
AttributeType
::=
OBJECT IDENTIFIER
AttributeValue
::=
ANY DEFINED BY AttributeType
DirectoryString
printableString
teletexString
utf8String
bmpString
universalString
::=
CHOICE {
PrintableString (SIZE (1..maxSize))
TeletexString (SIZE (1..maxSize))
UTF8String (SIZE (1..maxSize))
BMPString (SIZE (1..maxSize))
UniversalString (SIZE (1..maxSize)) }
Für Attribute, die auf dem Typ Directory String basieren, müssen die folgenden Anmerkungen
berücksichtigt werden:
-
Eine druckbare Zeichenfolge (PrintableString) enthält Zeichen mit ASCII-Kodierung, internationale
Version
-
Eine Teletex-Zeichenfolge (TeletexString) enthält Zeichen gemäß dem T.61-Alphabet, mit dem
spezifisch deutsche Zeichen wie Umlaute (ä, ö, ü) und ß kodiert werden können.
-
Die UTF8-Kodierung, definiert in [RFC3629], ist die bevorzugte Option und MUSS in allen
Zertifikaten verwendet werden, die nach dem 31.Dezember 2003 herausgegeben werden. Bis zu
diesem Termin KÖNNEN Zeichenfolgen gemäß den am stärksten einschränkenden Regeln von
PrintableString oder BMPString verwendet werden. TeletexString und UniversalString sind nur aus
Gründen der Rückwärtskompatibilität aufgeführt worden und DÜRFEN NICHT für neue Zertifikate
verwendet werden. [COM-PKI-1] empfiehlt die Nutzung einer Untermenge des UTF8 Zeichensatzes, der nur die ANSI/ISO 8859-1 Zeichen enthält (Unicode Latin-1 page).
Bezogen auf die Attributs-Typen, die in dem Feld für den Herausgeber der HB-QES-Zertifikate in
Übereinstimmung mit dieser Spezifikation genutzt werden dürfen, sind nur die folgenden Attribute
zwingend vorgeschrieben:
-
country name und
organization name.
Die Nutzung anderer Attributstypen, z.B. der Seriennummer, ist optional.
HPC-Spezifikation V2.3.2, Teil II
Seite 111 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Das Kodierschema für alle Attributstypen issuer in den HB-QES-Zertifikaten ist in Tabelle 7 von [COMPKI-1] definiert.
B.2.5.1 Country name
Der "country name" benennt das Land, in dem die CA ihren Stammsitz hat.
Die ASN.1 Definition des Attributtyps countryName:
id-at
id-at-countryName AttributeType
CountryName
::=
::=
::=
{254}
{ id-at 6 }
PRINTABLE STRING (SIZE(2))
Die „PrintableString“-Repräsentation des Ländernamens für Deutschland ist gemäß [ISO3166] „DE“.
B.2.5.2 Organization name
Der "organization name" identifiziert die CA.
Die ASN.1 Definition des Attributtyps organizationName:
id-at-organizationName AttributeType
OrganizationName
::= { id-at 10 }
::= DirectoryString (SIZE(1..64))
B.2.6 Validity
Das Feld "Validity" definiert die Gültigkeitsdauer des Zertifikates.
Die ASN.1 Definition des Typs Validity:
Validity
notBefore
notAfter
::=
SEQUENCE {
Time,
Time }
Time
::=
CHOICE {
UTCTime,
GeneralizedTime }
utcTime
generalizedTime
Gültigkeitsdaten bis 2049 müssen als UTCTime kodiert werden, Daten ab 2050 als GeneralizedTime.
Die auswertende Software muss beide Formate interpretieren können. Datumsangaben müssen im
folgenden Format erfolgen:
-
YYMMDDhhmmssZ für UTCTime, und
YYYYMMDDhhmmssZ für GeneralizedTime.
mit
-
Y = Jahr
M = Monat
D = Tag
h = Stunde
m = Minute
s = Sekunde
Z ist das Symbol für Greenwich Mean Time GMT.
HPC-Spezifikation V2.3.2, Teil II
Seite 112 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Beispiel:
"20030101000000Z"
Die maximale Gültigkeitsdauer wird von der CA festgelegt und folgt gesetzlichen Vorgaben, die von
der Stärke der benutzten Algorithmen abhängen.
B.2.7 Subject
Das Feld subject identifiziert den Zertifikatsinhaber im Sinne einer technischen Identifizierung (die
juristische Identifizierung kann gemäß Common PKI-Spezifikation mittels Erweiterung subjectDirectoryAttributes erfolgen, siehe B.2.9.5). Die generelle Unterstruktur des Feldes subject ist Name,
welcher identisch ist mit dem im Feld issuer. Das Subjekt Name MUSS mindestens die Attribute
commonName und countryName enthalten.
In HB-QES-Zertifikaten, die dieser Spezifikation entsprechen, müssen die folgenden Attribute vorhanden sein:
- countryName
- commonName.
Die Nutzung weiterer Attributstypen, die der Common PKI-Spezifikation oder relevanten RFCs
entsprechen, ist optional.
Das Kodierschema für diese subject-Attributstypen in HB-QES-Zertifikaten ist in Tabelle 7 von [COMPKI-1] definiert.
B.2.7.1 Country name
Der "country name" identifiziert das Land, in dem der Zertifikatsinhaber angemeldet ist. Die in Kapitel
B.2.5.1 beschriebenen Regeln finden hier Anwendung.
B.2.7.2 State or province
"state" identifiziert das Bundesland, in dem der Zertifikatsinhaber angemeldet ist (z.B. Bayern).
Die ASN.1 Definition des Attributtyps stateOrProvinceName:
id-at-StateOrProvinceName AttributeType ::= { id-at 8 }
StateOrProvinceName
::= DirectoryString (SIZE(1..128))
Die bevorzugte Kodierungsvariante für DirectoryString ist das UTF8-Subset, das nur ANSI/ISO 88591-Zeichen (Unicode Latin-1 page) enthält (siehe auch Anmerkungen in B.2.5).
B.2.7.3 Common name
Der "common name" spezifiziert den Namen einer Person in der Art, wie er normalerweise benutzt
wird. In qualifizierten Zertifikaten MUSS er den rechtsverbindlichen Namen des Karteninhabers
enthalten.
Die ASN.1 Definition des Attributtyps commonName:
id-at-commonName AttributeType ::= { id-at 3 }
CommonName
::= DirectoryString (SIZE(1..64))
Die bevorzugte Kodierungsvariante für DirectoryString ist das UTF8-Subset, das nur ANSI/ISO 88591-Zeichen (Unicode Latin-1 page) enthält (siehe auch Anmerkungen in C.2.5).
HPC-Spezifikation V2.3.2, Teil II
Seite 113 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Anmerkung - Personenbezogene Daten, z.B. das Geschlecht einer Person, können in den Zertifikatserweiterungen subjectDirectoryAttributes spezifiziert werden (z.B. das Geschlecht im Attribut gender, siehe B.2.9.5).
Falls der commonName ein Pseudonym enthält, muss er mit den Zeichen":PN" enden. Um zu erreichen, dass distinguished names eindeutig sind, darf eine CA dasselbe Pseudonym nicht für verschiedene Personen nutzen. Die CA kann festlegen, dass die Pseudonyme durch eine :PN vorangestellte
Zahl unterschieden werden, z.B. CN = ”givenName surname 1:PN”. Ein Pseudonym sollte nur aus
technischen und/oder rechtlichen Gründen verwendet werden. Es sollte den surname und mindestens
einen givenName des Zertifikatsinhabers enthalten.
B.2.7.4 Serial number
Dieses Feld enthält eine Seriennummer, die von der CA zugewiesen wird, falls sie für die Eindeutigkeit
des Namens des "subject" notwendig ist.
Die ASN.1 Definition des Attributtyps serialNumber:
id-at-serialNumber AttributeType
SerialNumber
::= { id-at 5 }
::= PRINTABLE STRING (SIZE(1..64))
B.2.8 Subject public key info
Dieses Feld enthält den öffentlichen Schlüssel des Zertifikatsinhabers, z.B. des Heilberuflers,
zusammen mit dem Identifier des zugehörenden Algorithmus.
Die ASN.1 Definition des Typs SubjectPublicKeyInfo:
SubjectPublicKeyInfo
algorithm
subjectPublicKey
::=
SEQUENCE {
AlgorithmIdentifier,
BIT STRING }
AlgorithmIdentifier
algorithm
parameters
::=
SEQUENCE {
OBJECT IDENTIFIER,
ANY DEFINED BY algorithm OPTIONAL }
Die OID für den Algorithmus kann im Prinzip folgende Eigenschaften kennzeichnen:
-
den Signaturalgorithmus (verbindlich),
den Hash-Algorithmus (falls erforderlich), und
das Padding-Format, z.B. das DSI-Format (falls erforderlich).
Software, die die Signatur prüfen soll, benötigt all diese Informationen; diese müssen aber nicht
zwingend durch einen OID im Zertifikat angegeben werden. In speziellen Umgebungen (z.B. im
Internet) können der Signaturalgorithmus, das DSI-Format und der Hash-Algorithmus (zusätzlich) in
der Nachricht oder im Nachrichtenkopf angegeben sein. Da das Vorhandensein nicht garantiert
werden kann (speziell, wenn ein signiertes Dokument gespeichert wird, das diese Informationen nicht
enthält), darf sich das nutzende System nicht auf die Verfügbarkeit dieser Informationen verlassen.
Zusätzlich wären diese Informationen ungeschützt, wenn sie nicht in die Signatur des Nutzers
einbezogen würden. Deshalb haben diese Informationen auch keine Relevanz für die OIDs in einem
Zertifikat.
Für die HPC sind relevant:
-
der Signaturalgorithmus RSA oder – in der Zukunft – auch ECDSA,
die Hash-Algorithmen der SHA-2-Familie (insbesondere SHA-256)
HPC-Spezifikation V2.3.2, Teil II
Seite 114 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
-
die Paddding-Formate, d.h. die DSI-Formate PKCS#1 SSA-V1.5, PKCS#1 PSS und ISO/IEC
9796-2 DS2.
Bei einer Prüfung muss als erstes der Signaturalgorithmus bekannt sein und angewendet werden; d.h.
im Zertifikat muss die OID für den Signaturalgorithmus enthalten sein.
Im Fall von RSA muss das Padding-Verfahren nach der Re-Transformation der Signatur im Dekodierungsprozess angewendet werden. Da die definierten Padding-Verfahren einfach unterschieden werden können (z.B. durch das erste Byte), gibt es keine Notwendigkeit für eine Anzeige im OID.
Falls der Hash-Algorithmus im DSI angezeigt wird, kann die signierte Nachricht durch Nutzung des angegebenen Hash-Verfahrens gehasht werden und der berechnete Hashwert mit dem im DSI angegebenen Hashwert verglichen werden. Die Angabe des Hash-Algorithmus wird von PKCS#1 SSA-V1.5
unterstützt (die Digestinfo von PKCS#1 enthält den OID des Hash-Algorithmus). Die Anzeige des
Hash-Algorithmus ist auch im DSI-Format ISO/IEC 9796-2 DS2 für die Option 2 (d.h. 2-Byte-Trailer mit
Kennung der Hash-Funktion und ‘CC’) enthalten. Allerdings fehlt sie im DSI-Format ISO/IEC 9796-2
DS2 für die Option 1 (mit Trailer ‘BC’) und im DSI-Format PKCS#1 PSS. Da die HPC alle drei Signaturalgorithmen unterstützt, muss der OID sowohl den RSA-Algotithmus, als auch den Hash-Algorithmus SHA-256 anzeigen.
B.2.9 Extensions
Erweiterungen (extensions) können optional in X.509v3-Zertifikaten enthalten sein und für die Aufnahme weiterer Informationen genutzt werden. Eine Erweiterung benötigt immer einen Object Identifier, um den Typ der Erweiterung identifizieren zu können. Die Bedeutsamkeit einer Erweiterung muss
durch den Wert des Boolschen "criticality flags", "true" oder "false", definiert werden. "True" bedeutet,
dass die Erweiterung der Anwendung bekannt und von ihr verarbeitbar sein MUSS. Andernfalls muss
das komplette Zertifikat bei der Prüfung abgelehnt werden. Als Wert der Erweiterung wird eine Folge
von Octets definiert. Leere Erweiterungen sollen nicht gesetzt werden.
Extensions
::=
SEQUENCE (1..MAX) OF Extension
Extension
extnId
critical
extnValue
::=
SEQUENCE {
OBJECT IDENTIFIER,
BOOLEAN DEFAULT FALSE,
OCTET STRING }
Für HB-DS-Zertifikate, die dieser Spezifikation entsprechen, sind die folgenden Kategorien von Erweiterungen von Bedeutung:
-
X.509 basic extensions,
private X.509 extensions für qualifizierte Zertifikate [RFC3039],
private X.509 extensions aus [COM-PKI-9] und
private X.509 extensions von der BNA.
X.509 basic extensions beinhalten:
-
basic constraints
key usage
certificate policies
subject alternative name
authority key identifier
subject key identifier
subject directory attributes
CRL distribution points.
HPC-Spezifikation V2.3.2, Teil II
Seite 115 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Diese "basic X.509 certificate extensions" werden durch folgenden übergeordneten object-identifierZweig identifiziert:
id-ce OBJECT IDENTIFIER
::= { 2 5 29 }
Private X.509 extension für qualifizierte Zertifikate:
-
qualified certificate statements
authority information access.
Die "X.509 certificate extensions" werden durch folgenden übergeordneten object-identifier-Zweig
identifiziert:
id-pe OBJECT IDENTIFIER
::= { 1 3 6 1 5 5 7 1 }
Common PKI SigG Private X.509 Extensions:
-
admission
restriction
additional information
Die "Common PKI SigG private X.509 certificate extensions" werden durch folgenden übergeordneten
object-identifier-Zweig identifiziert:
id-commonpki OBJECT IDENTIFIER
id-commonpki-at OBJECT IDENTIFIER
::= { 1 3 36 8 }
::= { id-commonpki 3 }
BNA Private X.509 Extensions:
-
validity model.
B.2.9.1 Basic Constraints
In diesem Feld werden Beschränkungen definiert, die sich auf den Zertifikatsinhaber beziehen. Es
muss angezeigt werden, dass ein Heilberufler keine Zertifikate herausgeben darf, d. h., er kann nicht
die Rolle einer CA übernehmen. Falls "basic constraints extension" in einem HB-Zertifikat genutzt
werden, MÜSSEN sie als kritisch markiert werden und der Wert der Komponente cA MUSS auf
FALSE gesetzt werden, falls er vorhanden ist.
id-ce-basicConstraints OBJECT IDENTIFIER ::=
BasicConstraints
cA
pathLenConstraint
::=
{ id-ce 19 }
SEQUENCE {
BOOLEAN DEFAULT FALSE,
INTEGER (0..MAX) OPTIONAL }
B.2.9.2 Schlüsselnutzung (Key Usage)
Dieses Feld spezifiziert die Nutzung der zertifizierten Public Keys:
Die ASN.1 Definition des Typs KeyUsage:
id-ce-keyUsage OBJECT IDENTIFIER
HPC-Spezifikation V2.3.2, Teil II
::= { id-ce 15 }
Seite 116 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
KeyUsage
digitalSignature
nonRepudiation
keyEncipherment
dataEncipherment
keyAgreement
keyCertSign
cRLSign
encipherOnly
decipherOnly
::=
BIT STRING {
(0),
(1),
(2),
(3),
(4),
(5),
(6),
(7),
(8) }
Für HB-QES-Zertifikate ist nur der Wert nonRepudiation zulässig und muss gesetzt werden. Die
Schlüsselnutzung digitalSignature gilt für Authentifizierungszertifikate. Diese werden in Authentisierungsverfahren mit digitalen Signaturen im technischen Sinn und nicht wie die personenbezogene Signatur mit rechtlicher Bedeutung genutzt. Die Erweiterung MUSS als kritisch markiert werden.
B.2.9.3 Certificate Policies
In diesem Feld werden die Zertifikats-Policies definiert, die bei der Ausgabe des Zertifikates gültig
waren. Die Erweiterung MUSS vorhanden sein, und sie SOLL als NICHT kritisch markiert werden. Die
Werte müssen in Übereinstimmung mit [COM-PKI-1] eingetragen werden. Ältere Systeme nutzen die
Erweiterung CertificatePolicies, um qualifizierte Zertifikate zu markieren, damit ihre Komponenten
diese erkennen können. Aus Gründen der vertikalen Interoperabilität SOLLTEN diese Erweiterungen
NICHT als kritisch markiert werden, obwohl ihr Inhalt die Nutzbarkeit von Zertifikaten einigermaßen
einschränkt. Da andererseits diese Information extrem wichtig für die rechtliche Gültigkeit von digitalen
Signaturen ist, MUSS sie von SigG-konformen Komponenten ausgewertet werden.
Die ASN.1 Definition des Typs CertificatePolicies:
id-ce-certificatePolicies OBJECT IDENTIFIER ::= { id-ce 32 }
CertificatePolicies
::=
SEQUENCE SIZE (1..MAX) OF PolicyInformation
PolicyInformation
policyIdentifier
policyQualifiers
::=
SEQUENCE {
CertPolicyId,
SEQUENCE SIZE (1..MAX) OF
PolicyQualifierInfo OPTIONAL}
PolicyQualifierInfo
policyQualifierId
qualifier
::=
SEQUENCE {
PolicyQualifierId,
ANY DEFINED BY policyQualifierId }
CertPolicyId
::=
OBJECT IDENTIFIER
-- commonpki branch for certificate policies
id-commonpki-cp OBJECT IDENTIFIER
::= { id-commonpki 1 }
id-commonpki-cp-accredited OBJECT IDENTIFIER
::= { id-commonpki-cp 1 }
B.2.9.4 Subject Alternative Name
Dieses Feld enthält einen oder mehrere „alternative technical names“ des Zertifikats-Inhabers, z. B.
eine eindeutige E-Mail-Adresse oder die eindeutige Internetadresse der Homepage des betreffenden
Nutzers. Da das Feld subject den Kartenbesitzer eindeutig identifiziert, SOLL die Erweiterung
SubjectAltNames NICHT als kritisch markiert werden.
Die ASN.1 Definition des Typs SubjectAltName:
id-ce-subjectAltName OBJECT IDENTIFIER ::= { id-ce 17 }
HPC-Spezifikation V2.3.2, Teil II
Seite 117 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
SubjectAltName
::=
GeneralNames
GeneralNames
::=
SEQUENCE SIZE (1..MAX) OF GeneralName
GeneralName
otherName
rfc822Name
dNSName
x400Address
directoryName
ediPartyName
uniformResourceIdentifier
iPAddress
registeredID
::=
CHOICE {
[0] IMPLICIT OtherName,
[1] IMPLICIT IA5String,
[2] IMPLICIT IA5String,
[3] IMPLICIT ORAddress,
[4] EXPLICIT Name,
[5] IMPLICIT EDIPartyName,
[6] IMPLICIT IA5String,
[7] IMPLICIT OCTET STRING,
[8] IMPLICIT OBJECT IDENTIFIER }
OtherName
type-id
Value
::=
SEQUENCE {
OBJECT IDENTIFIER
[0] EXPLICIT ANY DEFINED type-id }
ORAddress
::=
built-in-standard-attributes
built-in-domain-defined-attributes
extension-attributes
SEQUENCE {
ANY,
SEQUENCE OF ANY OPTIONAL,
SET OF ANY OPTIONAL }
EDIPartyName
NameAssigner
partyName
SEQUENCE {
[0] EXPLICIT DirectoryString OPTIONAL,
[1] EXPLICIT DirectoryString }
::=
In RFC822 ist die Konvention zur Bildung von E-Mail-Adressen definiert. Ein Beispiel für eine E-MailAdresse:
"[email protected]"
B.2.9.5 Subject Directory Attributes
Diese Erweiterung kann zusätzliche Attribute des Karteninhabers enthalten. Qualifizierte Zertifikate
KÖNNEN in dieser Erweiterung Daten rechtlich anerkannter Identifikationsmittel (z. B. von
Personalausweisen, Pässen o.ä.) enthalten. Diese optionale Erweiterung DARF NICHT als kritisch
markiert werden.
Die ASN.1 Definition des Typs SubjectDirectoryAttributes:
id-ce-subjectDirectoryAttributes OBJECT IDENTIFIER ::=
SubjectDirectoryAttributes
::=
{ id-ce 9 }
Attributes
Standard Attributes
Title Attribute
Durch X.520 definiertes optionales Attribut, das den Titel des Karteninhabers enthält.
id-at OBJECT IDENTIFIER
id-at-title OBJECT IDENTIFIER
Title
::=
::=
::=
HPC-Spezifikation V2.3.2, Teil II
{245}
{ id-at 12 }
DirectoryString (SIZE(1..64))
Seite 118 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
"QC Private Extensions" [RFC3039] für persönliche Daten des Karteninhabers werden durch den
"initial object identifier arc" identifiziert
id-pkix OBJECT IDENTIFIER
id-pda OBJECT IDENTIFIER
::=
::=
{1361557}
{ id-pkix 9 }
Date of Birth Attribute
Optionales Attribut, das das Geburtsdatum des Karteninhabers enthält.
id-pda-dateOfBirth AttributeType
DateOfBirth
::=
::=
{ id-pda 1 }
GeneralizedTime
Place of Birth Attribute
Optionales Attribut, das den Geburtsort des Karteninhabers enthält.
id-pda-placeOfBirth AttributeType ::=
PlaceOfBirth
::=
{ id-pda 2 }
DirectoryString (SIZE(1..128))
Gender Attribute
Optionales Attribut, das das Geschlecht des Karteninhabers enthält.
id-pda-gender AttributeType
Gender
::=
::=
{ id-pda 3 }
PrintableString (SIZE(1)) – "M",F","m","f"
Country of Citizenship Attribute
Optionales Attribut, das die Nationen enthält, deren Staatsbürger der Karteninhaber zum Zeitpunkt der
Ausgabe des Zertifikates ist.
id-pda-countryOfCitizenship AttributeType ::= { id-pda 4 }
CountryOfCitizenship
::= PrintableString (SIZE(2)) – ISO 3166
Country of Residence Attribute
Optionales Attribut, das die Länder enthält, in denen der Karteninhaber einen Wohnsitz hat.
id-pda-countryOfResidence AttributeType ::= { id-pda 5 }
CountryOfResidence
::= PrintableString (SIZE(2)) – ISO 3166
Name at Birth Attribute
Durch [COM-PKI-1] definiertes optionales Attribut, das den Geburtsnamen des Karteninhabers enthält.
id-commonpki-at-nameAtBirth OBJECT IDENTIFIER ::= { id-commonpki-at 14 }
NameAtBirth
::= DirectoryString (SIZE(1..64))
B.2.9.6 Authority Key Identifier
Dieses Feld ist gemäß [COM-PKI-1] verbindlich und gibt die Referenz zum PK der CA an, der zur
Prüfung der CA-Signatur verwendet werden muss. Diese Erweiterung DARF NICHT als kritisch
markiert werden.
Die ASN.1-Definition des Typs AuthorityKeyIdentifier:
id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 }
AuthorityKeyIdentifier
::=
SEQUENCE {
keyIdentifier
[0] IMPLICIT KeyIdentifier
authorityCertIssuer
[1] IMPLICIT GeneralNames
HPC-Spezifikation V2.3.2, Teil II
OPTIONAL,
OPTIONAL,
Seite 119 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
authorityCertSerialNumber
KeyIdentifier
::=
[2] IMPLICIT CertificateSerialNumber
OPTIONAL }
OCTET STRING
Anmerkung – Beide Identifikationsmethoden, die in [RFC2459] beschrieben sind, KÖNNEN im selben Zertifikat
benutzt werden. [COM-PKI-1] fordert, dass das Feld keyIdentifier exakt dieselbe ID enthalten MUSS wie der
subjectKeyIdentifier des CA-Zertifikates (siehe B.2.9.7 weiter unten). Falls das Feld authorityCertIssuer vorhanden ist, MUSS es genau ein directoryName-Element enthalten, das mit dem subject DName des Zertifikates der
ausgebenden CA gefüllt ist.
B.2.9.7 Subject Key Identifier
Dieses Feld enthält eine Referenz zum PK des Zertifikatsinhabers und ist gemäß Common PKISpezifikation optional; seine Verwendung wird aber empfohlen. Der "subject key Identifier" in Form der
ICCSN (in Verbindung mit der key usage) kann in HPCs genutzt werden, die die Signaturprüfung auf
der Basis gespeicherter PKs von bekannten Partnern unterstützen. Diese Erweiterung DARF NICHT
als kritisch markiert werden.
Die ASN.1 Definition des Typs SubjectKeyIdentifier:
id-ce-subjectKeyIdentifier OBJECT IDENTIFIER
SubjectKeyIdentifier
::=
::=
{ id-ce 14 }
OCTET STRING
B.2.9.8 Authority Information Access
Die Erweiterung "Authority Information Access" enthält die URL des OCSP-Servers, der für die
Bereitstellung der Statusinformation über das Zertifikat verantwortlich ist. Diese Erweiterung DARF
NICHT als kritisch markiert werden.
Die ASN.1 Definition des Typs AuthorityInfoAccess:
id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }
AuthorityInfoAccessSyntax ::= SEQUENCE (1..MAX) OF AccessDescription
AccessDescription ::= SEQUENCE {
accessMethod
OBJECT IDENTIFIER
accessLocation GeneralName }
Der OID-Wert id-ad-ocsp {id-ad 1} nutzt die Komponente accessMethod, um den OCSP-Service
anzuzeigen. Die OCSP-URL wird im Feld accessLocation angegeben.
B.2.9.9 Validity Model
Die von der BNA vorgegebene "private extension" Gültigkeitsmodell benennt das Prüfverfahren,
welches benutzt werden muss, um die Gültigkeit des Zertifikates zu überprüfen. Die Erweiterung
DARF NICHT als kritisch markiert werden.
Mögliche Werte sind id-validityModel-chain {1.3.6.1.4.1.8301.3.5.1} für das Kettenmodell, das von der
BNA vorgeschrieben wird, und id-validityModel-shell {1.3.6.1.4.1.8301.3.5.2} für das Schalenmodell,
das von PKIX genutzt wird.
Weitere Gültigkeitsmodelle, z. B. Hybridmodelle, sind ebenfalls möglich. Informationen über die Gültigkeitsmodelle können im Internet gefunden werden:
-
BNetzA: http://www.bundesnetzagentur.de/media/archive/1343.pps
OIDs: http://www.informatik.tu-darmstadt.de/TI/Forschung/FlexiPKI/validitymodel/index.html
Die ASN.1-Definition des Typs ValidityModel:
id-validityModel OBJECT IDENTIFIER ::= { 1 3 6 1 4 1 8301 3 5 }
HPC-Spezifikation V2.3.2, Teil II
Seite 120 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
id-validityModel-chain {1 3 6 1 4 1 8301 3 5 1} -- yet without validityModelInfo.
id-validityModel-shell {1.3.6.1.4.1.8301.3.5.2} -- yet without validityModelInfo.
ValidityModel::= SEQUENCE {
validityModelId
OBJECT IDENTIFIER
validityModelInfo ANY DEFINED BY validityModelID OPTIONAL }
B.2.9.10 Qualified Certificate Statements
Dieses Feld zeigt an, dass das Zertifikat ein qualifiziertes Zertifikat im Umfeld eines bestimmten
rechtlichen Systems ist. Aufgrund der Festlegungen für Zertifikats-Policies (siehe B.2.9.3) SOLL diese
Erweiterung NICHT als kritisch markiert werden.
Die ASN.1 Definition des Typs QCStatements:
id-pe-qcStatements OBJECT IDENTIFIER ::= { id-pe 3 }
QCStatements
::=
SEQUENCE OF QCStatement
QCStatement
statementId
statementInfo
::=
SEQUENCE {
OBJECT IDENTIFIER,
ANY DEFINED BY statementId OPTIONAL }
Vordefiniertes QC Statement [RFC3039]
id-qcs OBJECT IDENTIFIER
::=
{ 1 3 6 1 5 5 7 11 }
id-qcs-pkixQCSyntax-v1 OBJECT IDENTIFIER
::= { id-qcs 1 }
Dieser OID muss als statementId genutzt werden, um die Übereinstimmung mit der in [RFC3039]
definierten Syntax und Semantik anzuzeigen. Er bezieht sich auf den Datentyp SemanticsInformation
weiter unten.
SemanticsInformation
::=
semanticsIdentifier
nameRegistrationAuthorities
SEQUENCE {
OBJECT IDENTIFIER OPTIONAL,
NameRegistrationAuthorities OPTIONAL }
NameRegistrationAuthorities
SEQUENCE SIZE(1..MAX) OF GeneralName
::=
Der semanticsIdentifier SOLL einen OID enthalten, der die Semantik für Attribute und Namen in Zertifikatsfeldern definiert.
Das Feld nameRegistrationAuthorities MUSS den Namen einer oder mehrerer Registrierungsstellen
(registration authorities) enthalten, die für die Registrierung von Attributen und Namen zuständig sind,
die mit dem "subject" verbunden sind. Einige registeredIDs für Semantik oder für eine ZertifikatsPolicy können hier zu finden sein.
Anmerkung – [RFC3039] fordert, dass zumindest einer der beiden Werte semanticsIdentifier und
nameRegistrationAuthorities vorhanden sein muss.
ETSI QC Statements
Übereinstimmung mit der EU-Direktive
id-etsi-qcs OBJECT IDENTIFIER ::=
{ 0 4 0 1862 1 }
id-etsi-qcs-QcCompliance OBJECT IDENTIFIER ::= {id-etsi-qcs 1}
HPC-Spezifikation V2.3.2, Teil II
Seite 121 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Dieser OID muss als statementId genutzt werden, um zu zeigen, dass das Zertifikat in
Übereinstimmung mit der EU-Direktive [ECDIR] herausgegeben wurde, so wie diese in dem Land
umgesetzt wurde, in dem die herausgebende CA ihren Sitz hat. Wenn diese OID eingetragen wird, ist
das Feld statementInfo zu überspringen.
Begrenzung des Wertes einer Transaktion
id-etsi-qcs-QcLimitValue OBJECT IDENTIIFER ::= {id-etsi-qcs 2}
Dieser OID muss als statementId in Verbindung mit dem QcEuLimitValue-Statement wie unten
angegeben genutzt werden.
QcEuLimitValue
::=
MonetaryValue
MonetaryValue
currency
amount
exponent
::=
SEQUENCE {
Iso4217CurrencyCode,
INTEGER,
INTEGER }
Iso4217CurrencyCode
alphabetic
numeric
::=
CHOICE {
PrintableString,
INTEGER(1..999) }
Der Wert des Limits einer Transaktion wird durch den Betrag * 10exponent angegeben.
Retention Period
CAs oder zugelassene Registrierungsstellen speichern detaillierte Daten über den Inhaber eines
qualifizierten Zertifikates. Diese Daten erlauben die eindeutige Identifikation der Person im Fall eines
Streits.
id-etsi-qcs-QcRetentionPeriod OBJECT IDENTIIFER ::= {id-etsi-qcs 3}
Dieser OID muss als statementId in Verbindung mit dem QcRetentionPeriod wie unten angegeben
genutzt werden.
QcRetentionPeriod
::=
INTEGER
Dieses Feld zeigt an, für wie viele Jahre nach Ablauf des Zertifikates die persönlichen Daten des
Zertifikatsinhabers gespeichert bleiben.
B.2.9.11 CRL Distribution Points
Dies Feld bestimmt, wie CRL-Informationen erhalten werden können. Die Erweiterung sollte als nicht
kritisch markiert werden.
Die ASN.1 Definition des Typs CRLDistributionPoints:
id-ce-cRLDistributionPoints OBJECT IDENTIFIER
::= { id-ce 31 }
CRLDistributionPoints
::=
SEQUENCE SIZE (1..MAX) OF DistributionPoint
DistributionPoint
distributionPoint
reasons
cRLIssuer
::=
SEQUENCE {
[0] DistributionPointName OPTIONAL,
[1] ReasonFlags OPTIONAL,
GeneralNames OPTIONAL }
DistributionPointName
fullName
::=
CHOICE {
[0] GeneralNames,
HPC-Spezifikation V2.3.2, Teil II
Seite 122 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
nameRelativeToCRLIssuer
ReasonFlags
unused
keyCompromise
cACompromise
affiliationChanged
superseded
cessationOfOperation
certificateHold
priveledgeWithdrawn
aACompromise
RelativeDistinguishedName }
::=
BIT STRING {
(0),
(1),
(2),
(3),
(4),
(5),
(6),
(7),
(8) }
Dieses Feld ist gemäß [COM-PKI-1] verpflichtend, falls indirekte CRLs veröffentlicht werden, und es
sollte vorhanden sein, falls direkte CRLs veröffentlicht werden.
B.2.9.12 Professional Admission
Zulassungsinformationen für Heilberufler können im Basis-QES-Zertifikat durch die Nutzung der in
[COM-PKI-9] aufgeführten "private extension" admission vom Typ AdmissionSyntax angegeben
werden, oder in einem oder mehreren Attributzertifikaten durch die Nutzung des Attributs admission,
das auch vom Typ AdmissionSyntax ist, ebenfalls wie in [COM-PKI-9] definiert. Die Entscheidung,
welche dieser Möglichkeiten genutzt wird, muss von der jeweils zuständigen Organisation (Kammer)
getroffen werden.
Die ASN.1 Definition des Typs AdmissionSyntax:
id-commonpki-at-admission OBJECT IDENTIFIER
id-commonpki-at-namingAuthorities OBJECT IDENTIFIER
::= { commonpki-at 3 }
::= { commonpki-at 11 }
AdmissionSyntax
admissionAuthority
contentsOfAdmissions
::=
SEQUENCE {
GeneralName OPTIONAL,
SEQUENCE OF Admissions}
Admissions
admissionAuthority
namingAuthority
professionInfos
::=
SEQUENCE {
[0] EXPLICT GeneralName OPTIONAL,
[1] EXPLICIT NamingAuthority OPTIONAL,
SEQUENCE OF ProfessionInfo}
NamingAuthority
namingAuthorityId
namingAuthorityUrl
namingAuthorityText
::=
SEQUENCE {
OBJECT IDENTIFIER OPTIONAL,
IA5String OPTIONAL,
DirectoryString (SIZE(1..128)) OPTIONAL }
ProfessionInfo
namingAuthority
professionItems
professionOIDS
registrationNumber
addProfessionInfo
::=
SEQUENCE {
[0] EXPLICT NamingAuthority OPTIONAL,
SEQUENCE OF DirectoryString (SIZE(1..128)),
SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
PrintableString (SIZE(1..128)) OPTIONAL,
OCTET STRING OPTIONAL }
Die Bestandteile der relativ komplexen Struktur der AdmissionSyntax unterstützen die folgenden
Konzepte und Anforderungen:
-
Das Datenfeld admissionAuthority wird genutzt, um die Organisation zu benennen, die für die
Zuweisung von Werten der zugehörigen Elemente verantwortlich ist. Zulassungsstellen sind
Institutionen (z. B. Verbände, Kammern, Vereinigungen, Administrative Einheiten, Firmen, etc.),
HPC-Spezifikation V2.3.2, Teil II
Seite 123 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
die verantwortlich für die Erteilung und Prüfung von Zulassungen sind. Eine Zulassungsstelle wird
durch ein Objekt GeneralName benannt (siehe B.2.9.4).
-
Das Datenfeld namingAuthority wird genutzt, um Namen von Organisationen zu benennen, die für
die Führung von Titelregistern zuständig sind. Diese Organisationen definieren Kodierungslisten
und zulässige Werte für spezifische Berufsgruppen. Der Name einer bestimmten Organisation
kann durch einen object identifier im Feld namingAuthorityId , durch Text im Feld
namingAuthorityText, durch Angabe einer URL im Feld namingAuthorityUrl oder durch eine
Kombination dieser Möglichkeiten angegeben werden. Zum Beispiel kann der Text den Namen,
der Organisation, das Land, in dem sie tätig ist und den Namen des Registers enthalten. Die
Option einer URL bezieht sich auf eine Webseite, die Listen von "offiziell" eingetragenen
Berufsbezeichnungen und zusätzliche Informationen zu diesen Berufsgruppen enthält (Text und
möglicherweise OIDs).
-
Der Datentyp ProfessionInfo wird benutzt, um bestimmte Berufe, Qualifikationen, Fachgebiete
oder Betätigungsfelder zu benennen. Ein Element wird durch einen oder mehrere Textbausteine,
die zugehörigen Berufs-OIDs in den Feldern professionItems und professionOIDs und durch eine
Registrierungsnummer im Feld registrationNumber charakterisiert. Eine Bezeichnung in Textform,
die professionOID und die Registrierungsnummer sind immer erforderlich, während die anderen
Indikatoren, d.h. namingAuthority und addProfessionInfo, optional sind. In Verschlüsselungs- und
Authentisierungzertifikaten enthält das Feld registrationNumber eine eindeutige Nummer („Telematik-ID“), die zur Identifikation des Karteninhabers und zur Kartengenerationen übergreifenden
Zuordnung der Zertifikate verwendet wird. Es wird empfohlen (unterliegt der Entscheidung des
Karteninhabers), dass diese Nummer immer gleich bleibt. Eine Registrierungsnummer darf nicht
mehr als einer Person zugeordnet werden. Daher muss ein Präfix verwendet werden, welches
sicherstellt, dass die Herausgeberorganisationen unterschiedliche Nummernräume verwenden,
sieheTabelle 230 (N2625.00). Der Präfix ist von der eigentlichen Nummer durch ein Minuszeichen („-“) (ASCII 45) getrennt. Beispielsweise könnte die Telematik-ID eines Arztes 112100123456789012 sein, siehe [TID]. Die Komponente addProfessionInfo kann zusätzliche
anwendungsbezogene Informationen (DER-kodiert) enthalten.
Tabelle 230 – (N2625.00) Präfixe der Registrierungsnummern
Präfix
Bedeutung
1
Ärzteschaft
2
Zahnärzteschaft
3
Apothekerschaft
4
Psychotherapeutenschaft
5
Krankenhaus
6
Weitere Sektoren bzw. sonstige Leistungserbringer und deren
Institutionen
Durch die Nutzung verschiedener namingAuthority-OIDs oder Berufs-OIDs können Hierarchien für
Berufe, Qualifikationen, Fachgebiete oder Betätigungsfelder aufgebaut werden. Die verantwortliche
Zulassungsinstanz sollte immer im Feld admissionAuthority aufgeführt werden, wenn eine Registrierungsnummer angegeben wird. Die Information über eine Zulassung kann allerdings auch ohne die
Nennung einer Zulassungsinstanz durch die alleinige Nutzung der Komponente professionItems gegeben werden. In diesem Fall ist die jeweilige Zertifizierungsstelle für die Prüfung der Zulassungsinformation zuständig.
Das Berufsattribut admission beinhaltet nur einen Wert. Dennoch können mehrere Zulassungen in der
sequentiellen Struktur der Komponente contentsOfAdmissions von AdmissionSyntax oder in der
Komponente professionInfos von Admissions zusammengefasst werden.
Die Komponente admissionAuthority von AdmissionSyntax wird als Anfangswert für die Komponente
admissionAuthority von Admissions genutzt. Dieser Anfangswert kann überschrieben werden, falls
eine andere Organisation zuständig ist.
HPC-Spezifikation V2.3.2, Teil II
Seite 124 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Die Komponente namingAuthority von Admissions wird als Anfangswert für die Komponente
namingAuthority von ProfessionInfo genutzt. Dieser Anfangswert kann überschrieben werden, falls
eine andere Organisation festgelegt werden muss.
Die Länge eines Objektes ist auf 128 Zeichen begrenzt. Es wird empfohlen, in allen ausgegebenen
Attributzertifikaten eine namingAuthorityURL anzugeben. Falls eine namingAuthorityURL angegeben
ist, sollte das Feld professionItems von ProfessionInfo nur registrierte Titel enthalten. Das Feld
professionOIDs muss die OIDs der Berufsgruppen, die in professionItems aufgeführt sind, in derselben Reihenfolge enthalten. Im Allgemeinen sollte das Feld professionInfos nur einen Eintrag enthalten, es sei denn, die Zulassungen, die aufgeführt werden sollen, sind logisch miteinander verbunden
(z.B., sie sind unter derselben Zulassungsnummer veröffentlicht).
Berufs-OIDs sollen immer unter dem OID-Zweig der verantwortlichen Namensvergabeinstanz vergeben werden.
Wie schon erwähnt: die Entscheidung, wo die berufsbezogenen Informationen zu integrieren sind,
wird von den für die Berufsgruppen zuständigen Organisationen getroffen. Die folgenden Mindestanforderungen sind durch die Verbände der Ärzte und der Apotheker definiert:
Berufsgruppe „Ärzte":
Im Basis-QES-Zertifikat sollte angegeben werden, dass der Inhaber des Zertifikates ein Arzt ist. Die
Mindestinformation, die in der Erweiterung admission des Basiszertifikates angegeben sein muss, ist
"Ärztin/Arzt" in der Komponente professionItems von AdmissionSyntax.
{ ..., professionItems {"Ärztin/Arzt"}, ... }
Anmerkung – Diese und weitere berufsspezifische Informationen können in einem Attributzertifikat für Qualifikationen (siehe B.7.1) oder in einem Attributzertifikat für Autorisierungen (siehe B.7.2) bereitgestellt werden.
Berufsgruppe „Apotheker":
Im Basis-QES-Zertifikat muss die Qualifikation des Karteninhabers enthalten sein, d. h., es muss
ersichtlich sein, ob der Karteninhaber "Apotheker", "Apothekerassistent", "Pharmazieingenieur",
"PTA", “PKA/Helferin", "Apothekenassistent", "Pharmazeutische Assistentin", "Apothekenfacharbeiter",
"Pharmaziepraktikant", "Stud.pharm. oder Famulant", "PTA-Praktikant" oder "Azubi" ist.
Zum Beispiel muss bei einem "Apotheker" mindestens die Bezeichnung "Apotheker" in professionItems enthalten sein.
{ ..., professionItems {"Apotheker"}, ... }
Anmerkung – Nur den Gruppenmitgliedern „Apotheker“, „Apothekerassistent“, „Apothekenassistent“, „PTA“ und
„Pharmazieingenieur“ ist es erlaubt, elektronische Verordnungen digital zu signieren. Jedoch dürfen alle
Gruppenmitglieder andere Dokumente, außer elektronische Verordnungen digital signieren. Weitere berufsgruppenspezifische Informationen können in dieser Erweiterung des Basis-QES-Zertifikats oder im Attribut
admission in einem oder in mehreren Attributzertifikaten (siehe B.7) enthalten sein.
Neben der Benennung der Qualifikation des Karteninhabers hat die Berufsgruppe "Apotheker" die
folgenden Kategorien für zusätzliche Berufsinformationen festgelegt:
-
Kategorie "Tätigkeitsbereich"
Kategorie "berufliche Rolle"
Kategorie "Fachapothekereigenschaft"
Kategorie "Zusatzqualifikationen zu Fachapothekereigenschaft"
Kategorie "Fach-PTA-Eigenschaft" und
Kategorie "Zugehörigkeit zu Kammern und Fachorganisationen"
Konkrete Werte für die verschiedenen Kategorien, deren Speicherung in der Erweiterung admission
des Basis-QES-Zertifikats erlaubt sind, werden in einem separaten Dokument beschrieben.
Das folgende Beispiel soll zeigen, wie detaillierte berufsspezifische Zusatzinformationen in die
Erweiterung admission des Basis-QES-Zertifikats integriert werden können. Es ist anzumerken, dass
die Informationen auch in das Attribut admission des Attributzertifikates eingefügt werden können.
HPC-Spezifikation V2.3.2, Teil II
Seite 125 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
{ admissionAuthority "NameOfAuthorityResponsibleForCompleteContent",
contentsOfAdmissions {
admission_1 {
admissionAuthority "NameOfAuthorityResponsibleForContentOfAdmission1",
namingAuthority {
namingAuthorityId id-OIDOfNamingAuthority,
namingAuthorityUrl "URLToListOfQualifications",
namingAuthorityText "NameOfAuthority" },
professionInfos {
professionInfo {
professionItems { "Apotheker" } } } },
admission_2 {
professionInfos {
professionInfo {
namingAuthority {
namingAuthorityUrl "URLToListOfProfessionalRole" },
professionItems {"Apothekenleiter" } } } } } }
B.2.9.13 Restriction
Diese optionale Erweiterung zeigt Beschränkungen für die Nutzung des Zertifikates an. Die
Organisation einer Berufsgruppe, die für die Zertifikatsinhalte verantwortlich ist, kann entscheiden, die
Nutzung der Zertifikate auf den Gesundheitssektor zu beschränken. Falls vorhanden, darf diese
Erweiterung nicht als kritisch markiert werden.
Die ASN.1 Definition des Typs Restriction:
id-commonpki-at-restriction OBJECT IDENTIFIER ::= {commonpki-at 8}
RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
Die Kodierung des DirectoryString erfolgt in UTF-8.
B.2.9.14 Additional Information
Diese optionale Erweiterung zeigt zusätzliche nicht-beschränkende Informationen für die Nutzung des
Zertifikates an. Die Organisation einer Berufsgruppe, die für die Zertifikatsinhalte verantwortlich ist,
kann entscheiden, zusätzliche Informationen wie “ This certificate belongs to an approved medical id
card issued by the responsible local medical chamber" oder “Zertifikat als Teil eines elektronischen
Arztausweises, herausgegeben durch die zuständige Landesärztekammer” hinzuzufügen. Falls
vorhanden, darf diese Erweiterung nicht als kritisch markiert werden.
Die ASN.1 Definition des Typs AdditionalInformation.
id-commonpki-at-additionalInformation OBJECT IDENTIFIER ::= {commonpki-at 15}
AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
Die Kodierung des DirectoryString erfolgt in UTF-8.
B.3 Signature algorithm
Dieses Feld enthält dieselbe Kodierung wie das Signaturfeld in der to “be signed sequence”.
B.4 Signature
Dieses Feld enthält die Signatur der CA, die das Zertifikat ausgestellt hat.
HPC-Spezifikation V2.3.2, Teil II
Seite 126 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
B.5 QES-Zertifikat in Tabellenform und mit vollständiger Syntax
Die folgende Tabelle zeigt das QES-Zertifikat in Tabellenform. Es werden nur die Felder aufgeführt,
die für das QES-Zertifikat eines Heilberuflers von Bedeutung sind.
Tabelle 231 – (N2626.00) Inhalt des QES-Zertifikats eines Heilberuflers
Zertifikatsfeld
Inhalt
version
serialNumber
signature
issuer
X.509v3
Seriennummer des Zertifikats
Algorithmenkennung der CA-Signatur
Zertifizierungsinstanz (CA)
DE für Deutschland
z.B. DEZGW für deutsche CA im Gesundheitswesen
Gültigkeitszeitraum
Koordinierte Weltzeit (UTC Time)
Koordinierte Weltzeit (UTC Time)
Zertifikatsinhaber (Certificate holder)
DE für Deutschland
Bundesland
Vollständiger Allgemeiner Name (Common name)
Seriennummer für die eindeutige Bennennung des
Zerttifikatsinhabers
Daten des öffentlichen Schlüssels
OID des Algorithmus incl. Parameter (falls
vorhanden)
Öffentlicher Schlüssel mit Modulus und öffentlichem
Exponenten
Erweiterungen
Klassifikation als Endbenutzerzertifikat
Nicht-Abstreitbarkeit (nonRepudiation), d.h. Nutzung
des Zertifikats auf digitale Signaturen gemäß SigGAnforderung beschränkt
Angabe der SigG-Konformität
Alternativer technischer Name, möglicherweise mit
e-Mail-Adresse des Zertifikatsinhabers
X.500-Attribute für zusätzliche persönliche Daten wie
zum Beispiel Geburtsdatum, Geburtsort, Geschlecht,
Staatsangehörigkeit, Land des Wohnsitzes und
Geburtsname
Referenz des öffentlichen CA-Schlüssels für die
Prüfung der CA-Signatur
Referenz des öffentlichen Schlüssels des
Zertifikatsinhabers
Angabe wie und wo Informationen über den Status
des Zertifikats erhältlich sind
Information über das Verfahren zur Prüfung der
Zertifikatsgültigkeit
Angabe, dass das Zertifikat ein qualifiziertes
Zertifikat ist, und gegebenenfalls obere Grenze des
Geldbetrags in Transaktionen
Angabe wie CRL-Information erhalten werden
können
Information zur Berufszulassung
Weitere Beschränkungen der Zertifikatsnutzung
Nicht-einschränkende Information zur
Zertifikatsnutzung
Algorithmuskennung der CA-Signatur (Wert identisch
zum Signaturfeld im Zertifikatsinhalt
CA-Signatur
countryName
organizationName
validity
notBefore
notAfter
subject
countryName
stateOrProvince
commonName (CN)
serialNumber
subjectPublicKeyInfo
algorithm
subjectPublicKey
extensions
basicConstraints
keyUsage
certificatePolicies
subjectAltName
subjectDirectoryAttributes
authorityKeyIdentifier
subjectKeyIdentifier
authorityInfoAccess
validityModel
qcStatements
cRLDistributionPoints
admission
restriction
additionaInformation
signatureAlgorithm
signature
HPC-Spezifikation V2.3.2, Teil II
Common
PKIReferenz
T2 #2 #12
T2 #13
T2 #4, T4
T2 #5, T5
T7 #13
T7 #6
T2 #6, T3
T3 #2
T3 #3
T2 #7, T5
T7 #13
T7 #12
T7 #1
T7 #4
Diese
Spezifikation,
Kapitel
B.2.2
B.2.3
B.2.4
B.2.5
B.2.5.1
B.2.5.2
B.2.6
B.2.6
B.2.6
B.2.7
B.2.7.1
B.2.7.2
B.2.7.3
B.2.7.4
Diese
Spezifikation,
Verwendung
vorgeschrieben
vorgeschrieben
vorgeschrieben
vorgeschrieben
vorgeschrieben
vorgeschrieben
vorgeschrieben
vorgeschrieben
vorgeschrieben
vorgeschrieben
vorgeschrieben
optional
vorgeschrieben
optional
T2 #8 #14
T2 #15
B.2.8
B.2.8
vorgeschrieben
vorgeschrieben
T2 #16
B.2.8
vorgeschrieben
T2 #11, T9
T10, T18
T10, T12
B.2.9
B.2.9.1
B.2.9.2
vorgeschrieben
optional
vorgeschrieben
T10, T14
T10, T16
#1
T10, T17
B.2.9.3
B.2.9.4
optional
optional
B.2.9.5
optional
T10, T11
B.2.9.6
vorgeschrieben
T10, T11
B.2.9.7
optional
T10, T13,
T23
-
B.2.9.8
optional
B.2.9.9
optional
T10, T25
B.2.9.10
vorgeschrieben
T10, T22
B.2.9.11
optional
T29, T29b
T29, T29e
T29, T29f
B.2.9.12
B.2.9.13
B.2.9.14
vorgeschrieben
optional
optional
T1 #3, T4
B.3
vorgeschrieben
T1 #4
B.4
mandatory
Seite 127 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Im Folgenden ist die vollständige Syntax des QES-Zertifikats angegeben:
Certificate DEFINITIONS IMPLICIT TAGS ::=
-- IMPLICIT TAGS: Since all objects are tagged, the tags of universal data types are omitted
BEGIN
IMPORTS Controls, BasicLatin, Latin-1Supplement FROM ASN.1-CHARACTER-MODULE
{joint-iso-itu-t asn1(1) specification(0) modules(0) iso10646(0)}
-- Further character sets of [ISO10646] may be imported in order to form an internationally
-- usable character subset of the [ISO10646] Universal Multiple-Octet Coded Character Set (UCS).
Certificate
tbsCertificate
signatureAlgorithm
signature
::=
SEQUENCE {
TBSCertificate,
AlgorithmIdentifier,
BIT STRING }
::=
SEQUENCE {
[0]
EXPLICIT Version DEFAULT v1,
CertificateSerialNumber,
AlgorithmIdentifier,
Name,
Validity,
Name,
SubjectPublicKeyInfo,
[1]
IMPLICIT UniqueIdentifier OPTIONAL,
[2]
IMPLICIT UniqueIdentifier OPTIONAL,
[3]
EXPLICIT Extensions Optional }
-- version
Version
::=
INTEGER { v1(0), v2(1), v3(2) }
-- serial number
CertificateSerialNumber
::=
INTEGER
::=
SEQUENCE {
OBJECT IDENTIFIER,
ANY DEFINED BY algorithm OPTIONAL }
-- to be signed certificate
TBSCertificate
version
serialNumber
signature
issuer
validity
subject
subjectPublicKeyInfo
issuerUniqueID
subjectUniqueID
extensions
-- signature
Algorithmidentifier
algorithm
parameters
-- issuer
Name
::= CHOICE { RDNSequence }
RDNSequence
::= SEQUENCE OF RelativeDistinguishedName
RelativeDistinguishedName
::=
AttributeTypeAndValue
type
Value
SET OF AttributeTypeAndValue
::= SEQUENCE {
AttributeType,
AttributeValue }
AttributeType
::=
OBJECT IDENTIFIER
AttributeValue
::=
ANY DEFINED BY AttributeType
-- directory string
HPC-Spezifikation V2.3.2, Teil II
Seite 128 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
DirectoryString
printableString
teletexString
utf8String
bmpString
universalString
::=
CHOICE {
PrintableString (SIZE (1..maxSize))
TeletexString (SIZE (1..maxSize))
UTF8String (SIZE (1..maxSize))
BMPString (SIZE (1..maxSize))
UniversalString (SIZE (1..maxSize)) }
-- country name attribute
CountryName
::=
PRINTABLE STRING (SIZE(2))
-- organization name attribute
OrganizationName
::=
DirectoryString (SIZE(1..64))
::=
SEQUENCE {
Time,
Time }
::=
CHOICE {
UTCTime,
GeneralizedTime }
-- validity
Validity
notBefore
notAfter
Time
utcTime
generalizedTime
-- state or province name attribute
StateOrProvinceName
::=
DirectoryString (SIZE(1..128))
-- common name attribute
CommonName
::=
DirectoryString (SIZE(1..64))
-- serial number attribute
SerialNumber
::=
PRINTABLE STRING (SIZE(1..64))
::=
SEQUENCE {
AlgorithmIdentifier,
BIT STRING }
::=
::=
SEQUENCE (1..MAX) OF Extension
SEQUENCE {
OBJECT IDENTIFIER,
BOOLEAN DEFAULT FALSE,
OCTET STRING }
-- subject public key info
SubjectPublicKeyInfo
algorithm
subjectPublicKey
-- extensions
Extensions
Extension
extnId
critical
extnValue
-- basic constraints extension
BasicConstraints
cA
pathLenConstraint
-- key usage extension
KeyUsage
digitalSignature
nonRepudiation
keyEncipherment
dataEncipherment
keyAgreement
keyCertSign
::=
SEQUENCE {
BOOLEAN DEFAULT FALSE,
INTEGER (0..MAX) OPTIONAL }
::=
HPC-Spezifikation V2.3.2, Teil II
BIT STRING {
(0),
(1),
(2),
(3),
(4),
(5),
Seite 129 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
cRLSign
encipherOnly
decipherOnly
-- certificate policies extension
CertificatePolicies
(6),
(7),
(8) }
::=
SEQUENCE SIZE (1..MAX) OF PolicyInformation
PolicyInformation
policyIdentifier
policyQualifiers
::=
SEQUENCE {
CertPolicyId,
SEQUENCE SIZE (1..MAX) OF
PolicyQualifierInfo OPTIONAL}
PolicyQualifierInfo
policyQualifierId
qualifier
::=
SEQUENCE {
PolicyQualifierId,
ANY DEFINED BY policyQualifierId }
CertPolicyId
::=
OBJECT IDENTIFIER
-- subject alternative name extension
SubjectAltName
::=
GeneralNames
GeneralNames
::=
SEQUENCE SIZE (1..MAX) OF GeneralName
GeneralName
otherName
rfc822Name
dNSName
x400Address
directoryName
ediPartyName
uniformResourceIdentifier
iPAddress
registeredID
::=
CHOICE {
[0]
IMPLICIT OtherName,
[1]
IMPLICIT IA5String,
[2]
IMPLICIT IA5String,
[3]
IMPLICIT ORAddress,
[4]
EXPLICIT Name,
[5]
IMPLICIT EDIPartyName,
[6]
IMPLICIT IA5String,
[7]
IMPLICIT OCTET STRING,
[8]
IMPLICIT OBJECT IDENTIFIER }
OtherName
type-id
Value
:: =
SEQUENCE {
OBJECT IDENTIFIER
[0] EXPLICIT ANY DEFINED type-id }
ORAddress
:: =
built-in-standard-attributes
built-in-domain-defined-attributes
extension-attributes
SEQUENCE {
ANY,
SEQUENCE OF ANY OPTIONAL,
SET OF ANY OPTIONAL }
EDIPartyName
:: = SEQUENCE {
nameAssigner [0] EXPLICIT DirectoryString OPTIONAL,
partyName [1] EXPLICIT DirectoryString }
-- subject directory attributes extension
SubjectDirectoryAttributs
::=
Attributes
Title
::=
DirectoryString (SIZE(1..64))
DateOfBirth
::=
GeneralizedTime
PlaceOfBirth
::=
DirectoryString (SIZE(1..128))
HPC-Spezifikation V2.3.2, Teil II
Seite 130 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Gender
::=
PrintableString (SIZE(1)) – "M",F","m","f"
CountryOfCitizenship
::=
PrintableString (SIZE(2)) – ISO 3166
CountryOfResidence
NameAtBirth
::=
::=
PrintableString (SIZE(2)) – ISO 3166
DirectoryString (SIZE(1..64))
-- authority key identifier extension
AuthorityKeyIdentifier
::=
keyIdentifier
authorityCertIssuer
authorityCertSerialNumber
KeyIdentifier
::=
SEQUENCE {
[0] IMPLICT KeyIdentifier
OPTIONAL,
[1] IMPLICIT GeneralNames OPTIONAL,
[2] IMPLICIT
CertificateSerialNumber OPTIONAL}
OCTET STRING
-- subject key identifier extension
SubjectKeyIdentifier
::=
OCTET STRING
-- qualified certificate statements extension
QCStatements
::=
SEQUENCE OF QCStatement
QCStatement
statementId
statementInfo
::=
SEQUENCE {
OBJECT IDENTIFIER,
ANY DEFINED BY statementId OPTIONAL }
-- predefined RFC3039 qualified certificate statements
SemanticsInformation
::=
SEQUENCE {
semanticsIdentifier
OBJECT IDENTIFIER OPTIONAL,
nameRegistrationAuthorities
NameRegistrationAuthorities OPTIONAL }
NameRegistrationAuthorities
::=
SEQUENCE SIZE(1..MAX) OF GeneralName
-- ETSI QC statement on limitation of transaction value
QcEuLimitValue
::=
MonetaryValue
MonetaryValue
currency
amount
exponent
::=
Iso4217CurrencyCode
::=
alphabetic
numeric
-- ETSI QC statement on retention period
QcRetentionPeriod
::=
SEQUENCE {
Iso4217CurrencyCode,
INTEGER,
INTEGER }
CHOICE {
PrintableString,
INTEGER(1..999) }
INTEGER
-- CRL distribution points extension
id-ce-cRLDistributionPoints OBJECT IDENTIFIER
::= { id-ce 31 }
CRLDistributionPoints
::=
SEQUENCE SIZE (1..MAX) OF DistributionPoint
DistributionPoint
distributionPoint
reasons
cRLIssuer
::=
HPC-Spezifikation V2.3.2, Teil II
SEQUENCE {
[0] DistributionPointName OPTIONAL,
[1] ReasonFlags OPTIONAL,
[2] GeneralNames OPTIONAL }
Seite 131 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
DistributionPointName
fullName
nameRelativeToCRLIssuer
::=
CHOICE {
[0] GeneralNames,
[1] RelativeDistinguishedName }
ReasonFlags
unused
keyCompromise
cACompromise
affiliationChanged
superseded
cessationOfOperation
certificateHold
priveledgeWithdrawn
aACompromise
::=
BIT STRING {
(0),
(1),
(2),
(3),
(4),
(5),
(6),
(7),
(8) }
AuthorityInfoAccessSyntax
::= SEQUENCE (1..MAX) OF AccessDescription
AccessDescription ::= SEQUENCE {
accessMethod
OBJECT IDENTIFIER
accessLocation
GeneralName }
-- Common PKI private extenstion/attribute admission
AdmissionSyntax
::= SEQUENCE {
admissionAuthority
GeneralName OPTIONAL,
contentsOfAdmissions
SEQUENCE OF Admissions}
Admissions
admissionAuthority
namingAuthority
professionInfos
::= SEQUENCE {
[0] EXPLICT GeneralName OPTIONAL,
[1] EXPLICIT NamingAuthority OPTIONAL,
SEQUENCE OF ProfessionInfo}
NamingAuthority
NamingAuthorityId
namingAuthorityUrl
namingAuthorityText
::=
SEQUENCE {
OBJECT IDENTIFIER OPTIONAL,
IA5String OPTIONAL,
DirectoryString (SIZE(1..128)) OPTIONAL }
ProfessionInfo
namingAuthority
professionItems
professionOIDS
registrationNumber
addProfessionInfo
::=
SEQUENCE {
[0]
EXPLICT NamingAuthority OPTIONAL,
SEQUENCE OF DirectoryString (SIZE(1..128)),
SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
PrintableString (SIZE(1..128)) OPTIONAL,
OCTET STRING OPTIONAL }
ValidityModel
validityModelId
validityModelInfo
RestrictionSyntax
::= SEQUENCE {
OBJECT IDENTIFIER
ANY DEFINED BY validityModelID OPTIONAL }
::= DirectoryString (SIZE(1..1024))
AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
END
B.6 Object Identifier, die in dieser Spezifikation verwendet werden
Die nachfolgende Tabelle zeigt die relevanten Object Identifier.
HPC-Spezifikation V2.3.2, Teil II
Seite 132 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Tabelle 232 – (N2627.00) Überblick über OIDs
Object Identifier
Bedeutung
Name
Wert
id-at
{254}
Zweig für X.500 Attribute
id-at-title
{ 2 5 4 12 }
Titel
id-ce
{ 2 5 29 }
Zweig für Zertifikatserweiterungen
id-ce-subjectDirectoryAttributes
{ id-ce 9 }
in diesem Feld werden zusätzliche X.500-Attribute des
Karteninhabers zur Verfügung gestellt, die zur rechtlich
verbindlichen Identifizierung genutzt werden können
id-ce-subjectKeyIdentifier
{ id-ce 14 }
bezeichnet das Zertifikat des Karteninhabers, das einen
spezifischen PuK enthält
id-ce-keyUsage
{ id-ce 15 }
bezeichnet den Verwendungszweck des privaten Schlüssels als
nur für Signaturen im Sinne von Nicht-Abstreitbarkeit bestimmt
id-ce-subjectAltName
{ id-ce 17 }
enthält den alternativen technischen Namen des HPC-Besitzers
id-ce-basicConstraints
{ id-ce 19 }
zeigt an, dass der Karteninhaber nicht die Rolle einer CA
ausüben darf
id-ce-certificatePolicies
{ id-ce 32 }
bezeichnet die Policy, die bei der Ausgabe des Zertifikates
zugrunde lag und den Zweck, für den sie genutzt werden soll
id-ce-authorityKeyIdentifier
{ id-ce 35 }
bezeichnet den öffentlichen Schlüssel der ausgebenden CA
id-pkix
{1361557}
Zweig für PKIX
id-pe
{ id-pkix 1 }
Zweig für private Zertifikatserweiterungen
id-pe-qcStatements
{ id-pe 3 }
gibt an, dass das Zertifikat ein qualifiziertes Zertifikat innerhalb
eines bestimmten Rechtssystems ist
id-pda
{ id-pkix 9 }
Zweig für Attribute von persönlichen QC-Daten
id-pda-dateOfBirth
{ id-pda 1 }
Geburtsdatum
id-pda-placeOfBirth
{ id-pda 2 }
Geburtsort
id-pda-gender
{ id-pda 3 }
Geschlecht
id-pda-countryOfCitizenship
{ id-pda 4 }
Staatsangehörigkeit des Karteninhabers
id-pda-countryOfResidence
{ id-pda 5 }
Land, in dem der Karteninhaber wohnt
id-commonpki
{ 1 3 36 8 }
Zweig für Common PKI
id-qcs
{ id-pkix 11 }
Zweig für QC statements
id-qcs-pkixQCSyntax-v1
{ id-qcs 1 }
RFC3039 QC statement
id-commonpki-at
{ id-commonpki 3 }
Zweig für Common PKI-Attribute und -Erweiterungen
id-commonpki-at-admission
{ id-commonpki-at 3 }
bezeichnet berufliche Zulassungsinformationen
id-commonpki-at-restriction
{ id-commonpki-at 8 }
bezeichnet andere (nicht-monetäre) Beschränkungen der
Zertifikatsnutzung
id-commonpki-atnamingAuthorities
{ id-commonpki-at 11 }
Zweig für namensgebende Organisationen für Berufe
id-commonpki-at-nameAtBirth
{ id-commonpki-at 14 }
Geburtsname
id-commonpki-atadditionalInformation
{ id-commonpki-at 15 }
bezeichnet nicht-beschränkende Informationen zur
Zertifikatsnutzung
id-commonpki-cp
{ id-commonpki 1 }
Zweig für Common PKI Zertifikats-Policies
id-commonpki-cp-accredited
{ id-commonpki-cp 1 }
zeigt an, dass es sich um ein qualifiziertes Zertifikat gemäß
[ECDIR] handelt, dass es den speziellen Anforderungen des
SigG entspricht und von einem akkreditierten ZertifizierungsDiensteanbieter ausgegeben wurde
id-validityModel
{ 1 3 6 1 4 1 8301 3 5 }
Zweig für Erweiterungen der BNetzA, um Gültigkeitsmodelle
anzuzeigen
HPC-Spezifikation V2.3.2, Teil II
Seite 133 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Object Identifier
Bedeutung
Name
Wert
id-validityModel-chain
{ id-validityModel 1 }
definiert das Kettenmodell als zugrundeliegendes
Gültigkeitsmodell
id-validityModel-shell
{ id-validityModel 2 }
definiert das Schalenmodell als zugrundeliegendes
Gültigkeitsmodell
id-etsi-qcs
{ 0 4 0 1862 1 }
Zweig für ETSI QC statements
id-etsi-qcs-QcCompliance
{ id-etsi-qcs 1 }
zeigt an, dass das Zertifikat den Vorgaben von [ECDIR]
entspricht
id-etsi-qcs-QcLimitValue
{ id-etsi-qcs 2 }
zeigt die Begrenzung der Höhe einer Transaktion gemäß
[ECDIR] an
id-etsi-qcs-QcRetentionPeriod
{ id-etsi-qcs 3 }
zeigt, wie viele Jahre nach Ablaufdatum des Zertifikates die
Registrierungsinformationen über den Karteninhaber gespeichert
werden
B.7 Attributzertifikat für elektronische Signaturen (X.509v3 Zertifikat)
Attributzertifikate werden herausgegeben, um dem Karteninhaber spezielle Attribute zuweisen zu
können, die nicht im Basis-QES-Zertifikat enthalten sind. Wenn ein Dokument vom Karteninhaber signiert wird und er ein oder mehrere der Attributzertifikate in einem bestimmten Kontext nutzen will,
müssen die Attributzertifikate am Ende des Dokumentes angefügt und mit signiert werden. Zurzeit
werden ausschließlich v1-Attributzertifikate gemäß Common PKI v1.1-Spezifikation verwendet.
Allgemeine Definition eines Attributzertifikates:
AttributeCertificate
acinfo
signatureAlgorithm
signature
::=
SEQUENCE {
AttributeCertificateInfo,
AlgorithmIdentifier,
BIT STRING }
TBSAttributeCertificate
version
subject
baseCertificateID
subjectName
issuer
signature
serialNumber
attrCertValidityPeriod
attributes
issuerUniqueID
extensions
::=
SEQUENCE {
Version
DEFAULT v1,
CHOICE {
[0]
IssuerSerial,
[1]
GeneralNames },
GeneralNames,
AlgorithmIdentifier,
CertificateSerialNumber,
AttCertValidityPeriod,
SEQUENCE OF Attribute,
UniqueIdentifier OPTIONAL,
Extensions OPTIONAL }
Attribute
type
Values
::=
SEQUENCE {
AttributeType,
SET OF AttributeValue }
Die issuerUniqueID darf nicht verwendet werden. Der Bezug zum Basis-QES-Zertifikat, zu dem das
Attributzertifikat gehört, wird durch Angabe des Herausgebers und der Seriennummer des QES-BasisZertifikats hergestellt.
IssuerSerial
issuer
serial
issuerUID
::=
HPC-Spezifikation V2.3.2, Teil II
SEQUENCE {
GeneralNames,
CertificateSerialNumber,
UniqueIdentifier OPTIONAL }
Seite 134 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
AttCertValidityPeriod
notBeforeTime
notAfterTime
::=
SEQUENCE {
GeneralizedTime,
GeneralizedTime }
Die issuerUID darf nicht verwendet werden. Berufsspezifische Zulassungen können in einem Attributzertifikat durch Nutzung des Attributs admission des Typs AdmissionSyntax wie in [COM-PKI-9]
definiert angegeben werden. Das Attribut admission wird nur mit einem Eintrag besetzt. Trotzdem
können mehrere Zulassungen in der sequentiellen Struktur der Komponente contentsOfAdmissions
von AdmissionSyntax oder in der Komponente professionInfos of admissions zusammengefasst werden. Weitere Details siehe unter B.2.9.12.
Im Folgenden sind die Anforderungen für die Nutzung des Attributs admission in Attributzertifikaten
spezifiziert. Die Attribute eines Heilberuflers sind an seine beruflichen Zulassungen gebunden. Die
folgenden zwei Kategorien können in Bezug auf die sie verantwortenden Organisationen unterschieden werden
-
Kategorie "Qualifikationen" und
Kategorie "Autorisierungen".
Es ist anzumerken, dass beide Kategorien von Attributzertifikaten dieselbe Struktur aufweisen und das
Attribut admission vom ASN.1-Typ AdmissionSyntax nutzen. Attributzertifikate müssen die folgenden
Erweiterungen mit zum zugehörenden Basiszertifikat passenden Werten enthalten: AuthorityKeyIdentifier, CertificatePolicies, CRLDistributionPoints, AuthorityInfoAccess und QCStatements.
Die Vorgaben für die Nutzung und den Inhalt von Attributzertifikaten und die möglichen Kategorien der
berufsspezifischen Zulassungen werden im Detail in gesonderten Dokumenten beschrieben. Die beiden folgenden Unterkapitel beschreiben beispielhafte Implementierungen..
B.7.1 Attributzertifikat für Qualifikationen
Das Attributzertifikat für Qualifikationen enthält die folgenden Informationen:
-
Beruf
Spezialisierungsart und
konkrete Spezialisierung
Für jede Spezialisierungsart kann ein gesondertes Attributzertifikat herausgegeben werden. Die
Organisation, die diese Qualifikationen bestätigt, ist die zugehörende Kammer.
B.7.2 Attributzertifikate für Autorisierungen
Die Attributzertifikate für Autorisierungen enthalten u.a. die folgenden Informationen:
-
die generelle Autorisierung
den Typ der Autorisierung und
die konkrete Autorisierung
Für jede Autorisierungsart kann ein gesondertes Attributzertifikat herausgegeben werden.
Die Organisation, die diese Autorisierungen bestätigt, ist die zugehörende Standesorgansiation.
Es folgt ein Beispiel für ein Attributzertifikat für Autorisierungen.
{ admissionAuthority "KASSENAERZTLICHE VEREINIGUNG BAYERNS",
contentsOfAdmissions {
{ professionInfos {
{ namingAuthority {
namingAuthorityId id-OIDForKBV,
HPC-Spezifikation V2.3.2, Teil II
Seite 135 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
namingAuthorityUrl "UrlToGeneralAuthorization" },
professionItems { "Vertragsarzt" } },
{ namingAuthority {
namingAuthorityId id-OIDFor,
namingAuthorityUrl "UrlToAuthorizationType" },
professionItems { "VF" } },
{ namingAuthority {
namingAuthorityId id-OIDForBAEK,
namingAuthorityUrl "UrlToDedicatedAuthorization" },
professionItems { "Sonographie" } } } } }
B. 8 Zertifizierungsinstanzen für X.509-Zertifikate
Die Sicherheitsanforderungen an die HPC erfordern unterschiedliche Typen von X.509-Nutzerzertifikaten:
-
QES-Zertifikat (X.509-Zertifikat für eine qualifizierte elektronische Signatur) und bis zu 3 Attributzertifikate,
-
AUT-Zertifikat (X.509-Authentifizierungszertifikat) und
-
ENC-Zertifikat (X.509-Verschlüsselungszertifikat).
Nutzerzertifikate werden von einer oder mehreren CAs des Gesundheitswesens (in diesem Fall Zertifizierungsdiensteanbietern) ausgestellt. Die Wurzel-CA für qualifizierte elektronische Signaturen (BNA)
erstellt ein Zertifikat für eine solche CA. Das dabei zertifizierte Schlüsselpaar darf nur zur Erstellung
von Nutzerzertifikaten für qualifizierte elektronische Signaturen verwendet werden. Die CA der Heilberufler erstellt auch die X.509-AUT- und X.509-ENC-Zertifikate, wobei das dafür verwendete Schlüsselpaar von der Wurzelinstanz des zugehörigen Sektors signiert ist.
Private CA-Schlüssel im
Gesundheitswesen:
BNA
Wurzel-CA
HP-Sector
Wurzel-CA
- Prk.CA.CS_QES
von der BNA zertifiziert
zum Signieren C.HP.QES
und zugehörigen ACs
- Prk.CA.CS_AUT & ENC
von der Wurzel-CA des
HP-Sektors zertifiziert
zum Signieren von
C.HP.AUT und
AC
C.HP.ENC
CA
Gesundheitswesen
AC
AC
C.HP.
QES
X.509
C.HP.
AUT
C.HP.
ENC
X.509
X.509
AC
AUT
BNA
C
CA
CS
ENC
QES
= Attributzertifikat
= Authentisierung
= Bundesnetzagentur
= Zertifikat
= Zertifizierungsinstanz
= CertSign
= Verschlüsselung
= Qualifizierte Elektronische Signatur
Abbildung 11 – (N2628.00) X.509-Certificates und Zertifizierungsinstanzen
Anmerkung – Die Funktion einer CA des Gesundheitswesens kann von mehreren Organisationen (akkreditierte
ZDAs) übernommen werden.
HPC-Spezifikation V2.3.2, Teil II
Seite 136 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Annex C (normativ)
Zertifikate für Authentifizierung und
Verschlüsselung
C.1 Struktur und Inhalt
Das AUT- und das ENC-Zertifikat sind X.509v3-Zertifikate. Das AUT-Zertifikat enthält Informationen,
die für folgende Funktionen geeignet sind:
-
die Nutzer-Identifizierung, falls Zugriffsrechte auf dem Server sich auf UIDs beziehen, und
-
die Zuweisung von Zugriffsrechten, falls keine UIDs registriert sind und Zugriffsrechte an die
im Zertifikat angegebene Autorisierung gebunden sind (z. B. die Berufsangabe Arzt oder
Apotheker).
Das ENC-Zertifikat enthält Informationen über den Zertifikatsinhaber, d. h., den Empfänger
vertraulicher Informationen.
C.2 Kodierung
Die Kodierung entspricht prinzipiell derjenigen eines QES-Zertifikats mit den folgenden Änderungen:
-
es gibt kein Policy-Feld, das die Übereinstimmung mit den Vorgaben des SigG angibt, aber
einen entsprechenden Identifier für die verwendete Policy.
-
als Schlüsselnutzung wird im AUT-Zertifikat "digital signature" angegeben. Um webbasierte
Client-Authentifizierungen mit dem TLS-Protokoll durchführen zu können, kann optional auch
das "key encipherment"-Bit im AUT-Zertifikat gesetzt werden (in Übereinstimmung mit dem
Common PKI-Authentication Certifiicate Profile).
-
im ENC Zertifikat wird "key encipherment" und "data encipherment" als Schlüsselnutzung
angegeben.
-
Der Algorithmus-OID im Feld "subject public key info" muss entsprechend der Nutzung des
zertifizierten PK gesetzt werden.
Um webbasierte Client-Authentifizierungen mit dem TSL-Protokoll durchführen zu können, kann die
nicht-kritische Erweiterung extendedKeyUsage optional in das AUT-Zertifikat eingefügt werden
(entsprechend Common PKI Authentication Certificate Profile). Falls diese Erweiterung genutzt wird,
MUSS clientAuth { 1 3 6 1 5 5 7 3 2 } als KeyPurposeID verwendet werden.
ASN.1-Definition des Typs ExtendedKeyUsage:
ExtendedKeyUsage
KeyPurposeId
::=
::=
HPC-Spezifikation V2.3.2, Teil II
SEQUENCE SIZE (1..MAX) OF KeyPurposeId
OBJECT IDENTIFIER
Seite 137 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Annex D (informativ)
Kryptografische Informationsobjekte der
QES-Anwendung
Dieser Anhang zeigt ein detailliertes Beispiel für die kryptografischen Informationsobjekte (CIO), die
zum DF.CIA.QES einer HPC gehören.
D.1
EF.CIAInfo
Das EF “CIAInfo” enthält die Versionsnummer der CIO-Beschreibung und das Label der Anwendung,
zu der die CIO-Beschreibung gehört. Die “cardflags”-Einstellungen sind “authRequired” (es gibt kryptografische Funktionen, die eine Nutzerauthentifizierung erfordern) und “prnGeneration” (Die Karte hat
die Fähigkeit, Pseudozufallszahlen zu erzeugen).
D.1.1 ASN.1 value notation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
ciaInfo CIAInfo ::= {
version v2,
label “Qualified Signature Application”,
cardflags { authRequired, prnGeneration }
seInfo {
SecurityEnvironmentInfo {
se 1,
aid 'D27600006601’ H
}
SecurityEnvironmentInfo {
se 2,
aid 'D27600006601’ H
}
},
supportedAlgorithms {
-- Hash algorithm: SHA-256
algorithmInfo {
reference 1, -- unique reference for cross-referencing
algorithm 592, -- PKCS#11 mechanism type CKM_SHA256 = 0x250
parameters NULL: NULL, -- type of parameters is NULL and value is NULL
supportedOperations {hash},
objId {2 16 840 1 101 3 4 2 1},-- SHA-256
-- no algRef as no HASH command is used
},
-- Signature algorithm
-- RSA with DSI according to PKCS#1 V.1.5 and SHA-256
algorithmInfo {
reference 2, -- unique reference for cross-referencing
algorithm 64, -- PKCS#11 mechanism type CKM_SHA256_RSA_PKCS = 0x40
parameters NULL: NULL, -- type of parameters is NULL and value is NULL
supportedOperations {compute-signature},
objId {1 2 840 113549 1 1 11},-- SHA256 and RSA with DSI according to PKCS#1
algRef 2 -- is equivalent to 0x02, see [HPC-P1], Table (N1218.00)
},
-- Signature algorithm
-- RSA with DSI according to PKCS#1 PSS and SHA-256
HPC-Spezifikation V2.3.2, Teil II
Seite 138 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
26
27
28
29
30
31
32
algorithmInfo {
reference 3, -- unique reference for cross-referencing
algorithm 67, -- PKCS#11 mechanism type CKM_SHA256_RSA_PKCS_PSS = 0x43
parameters NULL: NULL, -- type of parameters is NULL and value is NULL
supportedOperations {compute-signature},
objId {1 2 840 113549 1 1 11},-- SHA256 and RSA with DSI according to PKCS#1
algRef 5 -- is equivalent to 0x05, see [HPC-P1], Table (N1218.00)
},
-- Signature algorithm
-- RSA with DSI according to ISO/IEC 9796-2 DS2 (randomized) and SHA-256
algorithmInfo {
reference 4, -- unique reference for cross-referencing
algorithm 2147483649, -- algorithm not defined in PKCS#11,
-- vendor defined 0x80000001
parameters NULL: NULL, -- type of parameters is NULL and value is NULL
supportedOperations {compute-signature},
objId {1 3 36 3 4 3 2 4}, -- 2B240304030204
-- SHA-256 and RSA with DSI according to ISO/IEC 9796-2 with random number
algRef 7 -- is equivalent to 0x07, see [HPC-P1], Table (N1218.00)
},
-- Device Authentisierung algorithm
algorithmInfo {
reference 5, -- unique reference for cross-referencing
algorithm 2147483650, -- algorithm not defined in PKCS#11,
-- vendor defined 0x80000002
parameters NULL: NULL, -- type of parameters is NULL and value is NULL
supportedOperations {compute-signature, verify-signature},
objId {1 3 36 3 5 2 4}, -- Authentication scheme with RSA signature and DSI
-- according to ISO/IEC 9796-2 and SHA-256 for mutual authentication with or
-- without establishment of a Trusted Channel, see [HPC-P1], Table (N48.50) and
Table (N1216.00)
},
-- Card Verifiable (CV) Ceritificate signature verification
algorithmInfo {
reference 6, -- unique reference for cross-referencing
algorithm 2147483651, -- algorithm not defined in PKCS#11,
-- vendor defined 0x80000003
parameters NULL: NULL, -- type of parameters is NULL and value is NULL
supportedOperations {verify-signature},
objId {1 3 36 3 4 3 2 4}, -- 2B240304030204
-- SHA-256 and RSA with DSI according to ISO/IEC 9796-2 with random number
-- algRef is not used (key and algorithm are selected by the Certification
-- Authority Reference CAR provided in the Card Verifiable CV certificate)
}
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
}
}
D.1.2 ASN.1 Description, tags, lengths and values
1 CIAInfo SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 227
2 version INTEGER: tag = [UNIVERSAL 2] primitive; length = 1
1
3 label Label UTF8String: tag = [0] primitive; length = 31
0x5175616C6966696564205369676E6174757265204170706C69636174696F6E
4 cardflags CardFlags BIT STRING: tag = [UNIVERSAL 3] primitive; length = 2
0x0560
5
6
7
8
seInfo SEQUENCE OF: tag = [UNIVERSAL 16] constructed; length = 26
SecurityEnvironmentInfo SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 11
se INTEGER: tag = [UNIVERSAL 2] primitive; length = 1
0x01
aid OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 6
0xD27600006601
HPC-Spezifikation V2.3.2, Teil II
Seite 139 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
SecurityEnvironmentInfo SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 11
se INTEGER: tag = [UNIVERSAL 2] primitive; length = 1
0x02
aid OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 6
0xD27600006601
supportedAlgorithms SEQUENCE OF: tag [UNIVERSAL 16] constructed; length = 156
algorithmInfo SEQUENCE: tag [UNIVERSAL 16] constructed; length = 24
reference Reference INTEGER: tag [UNIVERSAL 2] primitive; length = 1
0x01
algorithm Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 2
0x0250
parameter NULL: tag [UNIVERSAL 5] primitive; length = 0
supportedOperations Operations BIT STRING: tag [UNIVERSAL 3] primitive; length = 2
0x0102
objId OBJECTIDENTIFIER: tag [UNIVERSAL 6] primitive; length = 9
0x608648016503040201
algorithmInfo SEQUENCE: tag [UNIVERSAL 16] constructed; length = 23
reference Reference INTEGER: tag [UNIVERSAL 2] primitive; length = 1
0x02
algorithm Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x40
parameter NULL: tag [UNIVERSAL 5] primitive; length = 0
supportedOperations Operations BIT STRING: tag [UNIVERSAL 3] primitive; length = 2
0x0604
objId OBJECTIDENTIFIER: tag [UNIVERSAL 6] primitive; length = 6
0x60864883770D
algRef Reference INTEGER: tag [UNIVERSAL 2] primitive; length = 1
0x02
algorithmInfo SEQUENCE: tag [UNIVERSAL 16] constructed; length = 23
reference Reference INTEGER: tag [UNIVERSAL 2] primitive; length = 1
0x03
algorithm Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x43
parameter NULL: tag [UNIVERSAL 5] primitive; length = 0
supportedOperations Operations BIT STRING: tag [UNIVERSAL 3] primitive; length = 2
0x0604
objId OBJECTIDENTIFIER: tag [UNIVERSAL 6] primitive; length = 6
0x60864883770D
algRef Reference INTEGER: tag [UNIVERSAL 2] primitive; length = 1
0x05
algorithmInfo SEQUENCE: tag [UNIVERSAL 16] constructed; length = 27
reference Reference INTEGER: tag [UNIVERSAL 2] primitive; length = 1
0x04
algorithm Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 4
0x80000001
parameter NULL: tag [UNIVERSAL 5] primitive; length = 0
supportedOperations Operations BIT STRING: tag [UNIVERSAL 3] primitive; length = 2
0x0604
objId OBJECTIDENTIFIER: tag [UNIVERSAL 6] primitive; length = 7
0x2B240304030204
algRef Reference INTEGER: tag [UNIVERSAL 2] primitive; length = 1
0x07
algorithmInfo SEQUENCE: tag [UNIVERSAL 16] constructed; length = 23
reference Reference INTEGER: tag [UNIVERSAL 2] primitive; length = 1
0x03
HPC-Spezifikation V2.3.2, Teil II
Seite 140 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
42
43
44
45
46
47
48
49
50
51
algorithm Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 4
0x80000002
parameter NULL: tag [UNIVERSAL 5] primitive; length = 0
supportedOperations Operations BIT STRING: tag [UNIVERSAL 3] primitive; length = 2
0x0405
objId OBJECTIDENTIFIER: tag [UNIVERSAL 6] primitive; length = 6
0x2B2403050204
algorithmInfo SEQUENCE: tag [UNIVERSAL 16] constructed; length = 24
reference Reference INTEGER: tag [UNIVERSAL 2] primitive; length = 1
0x04
algorithm Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 4
0x80000003
parameter NULL: tag [UNIVERSAL 5] primitive; length = 0
supportedOperations Operations BIT STRING: tag [UNIVERSAL 3] primitive; length = 2
0x0401
objId OBJECTIDENTIFIER: tag [UNIVERSAL 6] primitive; length = 7
0x2B240304020203
D.1.3 Hexadecimal DER-encoding
1 30 81 E3
2
02 01
01
3
80 1F
51 75 61 6C 69 66 69 65 64 20 53 69 67 6E 61 74 75 72 65 20 41 70 70 6C 69 63 61 74 69 6F 6E
4
03 02
05 60
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
30 1A
30 0B
02 01
01
04 06
D2 76 00 00 66 01
30 0B
02 01
02
04 06
D2 76 00 00 66 01
30 81 9C
30 18
02 01
01
04 02
02 50
05 00
03 02
01 02
06 09
60 86 48 01 65 03 04 02 01
30 17
02 01
02
04 01
40
05 00
03 02
06 04
06 06
60 86 48 83 77 0D
02 01
02
30 17
HPC-Spezifikation V2.3.2, Teil II
Seite 141 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
D.2
02 01
03
04 01
43
05 00
03 02
06 04
06 06
60 86 48 83 77 0D
02 01
05
30 1B
02 01
04
04 04
80 00 00 01
05 00
03 02
06 04
06 07
2B 24 03 04 03 02 04
02 01
07
30 17
02 01
05
04 04
80 00 00 02
05 00
03 02
04 05
06 06
2B 24 03 05 02 04
30 18
02 01
06
04 04
80 00 00 03
05 00
03 02
04 01
06 07
2B 24 03 04 02 02 03
EF.OD
Das EF "Object Directory" enthält die Information, welche CIO-EFs vorhanden sind und wie sie durch
SFID referenziert werden.
D.2.1 ASN.1 value notation
1
2
3
4
5
6
7
8
9
authObjects :
path : {
efidOrPath '14'H -- SFID of EF.AOD
},
privateKeys :
path : {
efidOrPath '15'H -- SFID of EF.PrKD
},
certificates :
path : {
efidOrPath '16'H -- SFID of EF.CD
}
HPC-Spezifikation V2.3.2, Teil II
Seite 142 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
D.2.2 ASN.1 Description, tags, lengths and values
1 CIOChoice CHOICE
authObjects : tag = [8] constructed; length = 5
2
AuthObjects CHOICE
path Path SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 3
3
efidOrPath OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x14
4 CIOChoice CHOICE
privateKeys : tag = [0] constructed; length = 5
5
PrivateKeys CHOICE
path Path SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 3
6
efidOrPath OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x15
7 CIOChoice CHOICE
certificates : tag = [4] constructed; length = 5
8
Certificates CHOICE
path Path SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 3
9
efidOrPath OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x16
D.2.3 Hexadecimal DER-encoding
1 A8 05
2
30 03
3
04 01
14
4 A0 05
5
30 03
6
04 01
15
7 A4 05
8
30 03
9
04 01
16
D.3
EF.AOD
Das EF “Authentication Object Directory” enthält die Information über die PIN.QES.
D.3.1 ASN.1 value notation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
pwd : {
commonObjectAttributes {
label "PIN.QES",
flags { private },
authId '13'H,
accessControlRules {
accessControlRule {
accessMode { execute },
securityCondition authReference: {
authMethod {secureMessaging, extAuthentication},
seIdentifier 2
}
}
}
},
classAttributes {
authId '03'H
},
typeAttributes {
HPC-Spezifikation V2.3.2, Teil II
Seite 143 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
passwordAttributes {
pwdFlags { local, initialized, exchangeRefData },
pwdType iso9564-1,
minLength 6,
storedLength 0,
maxLength 8,
pwdReference ‘81’H
-- P2 Value of the VERIFY command
path {
efidOrPath ‘3F0004’H
-- Qualified path: Last Byte = P1 of SELECT with DF name
}
}
}
},
pwd : {
commonObjectAttributes {
label "PUK.QES",
flags { private },
accessControlRules {
accessControlRule {
accessMode { execute },
securityCondition authReference: {
authMethod {secureMessaging, extAuthentication},
seIdentifier 2
}
}
}
},
classAttributes {
authId '13'H
},
typeAttributes {
passwordAttributes {
pwdFlags { local, change-disabled, unblock-disabled, initialized,
unblockingPassword },
pwdType iso9564-1,
minLength 8,
storedLength 8,
maxLength 8,
pwdReference ‘81’H
-- P2 Value of the RESET RETRY COUNTER command
path {
efidOrPath ‘3F0004’H
-- Qualified path: Last Byte = P1 of SELECT with DF name
}
}
}
}
D.3.2 ASN.1 Description, tags, lengths and values
1 AuthenticationObjectChoice CHOICE
pwd SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 47
2
commonObjectAttributes CommonObjectAttributes SEQUENCE: tag = [UNIVERSAL 16]
constructed; length = 16
3
label Label UTF8String: tag = [UNIVERSAL 12] primitive; length = 7
0x50494E2E514553
4
flags CnovellommonObjectFlags BIT STRING: tag = [UNIVERSAL 3] primitive; length = 2
0x0780
5
authId Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x13
6
accessControlRules SEQUENCE OF: tag = [UNIVERSAL 16] constructed; length = 15
7
acessControlRule SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 13
8
accessMode BIT STRING: tag = [UNIVERSAL 3] primitive; length = 2
0x0520
HPC-Spezifikation V2.3.2, Teil II
Seite 144 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
securityCondition CHOICE
authReference SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 7
authMethod BIT STRING: tag = [UNIVERSAL 3] primitive; length = 2
0x06C0
seIdentifier INTEGER: tag = [UNIVERSAL 2] primitive; length = 1
2
classAttributes CommonAuthenticationObjectAttributes SEQUENCE:
tag = [UNIVERSAL 16] constructed; length = 3
authId Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x03
typeAttributes : tag = [1] constructed; length = 22
PasswordAttributes SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 20
pwdFlags PasswordFlags BIT STRING; length = 3
0x044810
pwdType PasswordType ENUMERATED: tag = [UNIVERSAL 10] primitive; length = 1
4
minLength INTEGER: tag = [UNIVERSAL 2] primitive; length = 1
6
storedLength INTEGER: tag = [UNIVERSAL 2] primitive; length = 1
0
maxLength INTEGER: tag = [UNIVERSAL 2] primitive; length = 1
8
pwdReference Reference INTEGER: [0] primitive; length = 1
0x81
path SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 5
efidOrPath OCTED STRING: tag = [UNIVERSAL 4]; length = 3
0x3F0004
AuthenticationObjectChoice CHOICE
pwd SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 43
commonObjectAttributes CommonObjectAttributes SEQUENCE: tag = [UNIVERSAL 16]
constructed; length = 13
label Label UTF8String: tag = [UNIVERSAL 12] primitive; length = 7
0x50554B2E514553
flags CommonObjectFlags BIT STRING: tag = [UNIVERSAL 3] primitive; length=2
0x0780
accessControlRules SEQUENCE OF: tag = [UNIVERSAL 16] constructed; length = 15
acessControlRule SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 13
accessMode BIT STRING: tag = [UNIVERSAL 3] primitive; length = 2
0x0520
securityCondition CHOICE
authReference SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 7
authMethod BIT STRING: tag = [UNIVERSAL 3] primitive; length = 2
0x06C0
seIdentifier INTEGER: tag = [UNIVERSAL 2] primitive; length = 1
2
classAttributes CommonAuthenticationObjectAttributes SEQUENCE:
tag = [UNIVERSAL 16] constructed; length = 3
authId Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x13
typeAttributes : tag = [1] constructed; length = 21
PasswordAttributes SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 19
pwdFlags PasswordFlags BIT STRING: tag = [UNIVERSAL 3] primitive; length = 2
0x017A
pwdType PasswordType ENUMERATED: tag = [UNIVERSAL 10] primitive; length=1
4
minLength INTEGER: tag = [UNIVERSAL 2] primitive; length = 1
8
storedLength INTEGER: tag = [UNIVERSAL 2] primitive; length = 1
8
maxLength INTEGER: tag = [UNIVERSAL 2] primitive; length = 1
HPC-Spezifikation V2.3.2, Teil II
Seite 145 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
43
44
45
8
pwdReference Reference INTEGER: [0] primitive; length = 1
0x81
path SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 5
efidOrPath OCTED STRING: tag = [UNIVERSAL 4]; length = 3
0x3F0004
D.3.3 Hexadecimal DER-encoding
1 30 2F
2
30 10
3
0C 07
50 49 4E 2E 51 45 53
4
03 02
07 80
5
04 01
13
6
30 0F
7
30 0D
8
03 02
05 20
9
30 07
10
03 02
06 C0
11
02 01
02
12
30 03
13
04 01
03
14
A1 1E
15
30 1B
16
03 03
04 48 10
17
0A 01
04
18
02 01
06
19
02 01
00
20
02 01
08
21
80 01
81
22
30 05
23
04 03
3F 00 04
24 30 2B
25
30 0D
26
0C 07
50 55 4B 2E 51 45 53
27
03 02
07 80
28
30 0F
29
30 0D
30
03 02
05 20
31
30 07
32
03 02
06 C0
33
02 01
02
34
30 03
35
04 01
12
36
A1 15
37
30 13
38
03 02
01 7A
39
0A 01
04
HPC-Spezifikation V2.3.2, Teil II
Seite 146 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
40
41
42
43
44
45
D.4
02 01
08
02 01
08
02 01
08
80 01
81
30 05
04 03
3F 00 04
EF.PrKD
Das EF “Private Key Directory” enthält die notwendigen Informationen über den privaten Schlüssel
PrK.HP.QES.
D.4.1 ASN.1 value notation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
privateRSAKey : {
commonObjectAttributes {
label "PrK.HP.QES",
flags { private },
authId '03'H
-- pointer to the AOD-entry of PIN.QES
accessControlRules {
accessControlRule {
accessMode { execute },
securityCondition or: {
securityCondition {
authId : '03'H, -- pointer to the AOD-entry of PIN.QES
authReference : {
authMethod { userAuthentication }
seIdentifier 1 }
}
}
securityCondition {
authId : '03'H, -- pointer to the AOD-entry of PIN.QES
authReference : {
authMethod { secureMessaging,
extAuthentication, userAuthentication }
seIdentifier 2 }
}
}
}
}
}
},
classAttributes {
iD '84'H,
-- cross-reference to the CD-entry of C.HP.QES
usage { sign, signRecover, nonRepudiation },
keyReference ’84’H
-- used in MSE-SET command
},
typeAttributes {
privateRSAKeyAttributes {
Value { efidOrPath ''H },
modulusLength 2048
}
}
}
HPC-Spezifikation V2.3.2, Teil II
Seite 147 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
D.4.2 ASN.1 Description, tags, lengths and values
1 PrivateKeyChoice CHOICE
privateRSAKey SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 64
2
commonObjectAttributes CommonObjectAttributes SEQUENCE: tag = [UNIVERSAL 16]
constructed; length = 38
3
label Label UTF8String: tag = [UNIVERSAL 12] primitive; length = 10
0x50724B2E48502E514553
4
flags CommonObjectFlags BIT STRING: tag = [UNIVERSAL 3] primitive; length = 2
0x0780
5
authId Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x03
6
accessControlRules SEQUENCE OF: tag = [UNIVERSAL 16] constructed; length = 32
7
accessControlRule SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 30
8
accessMode BIT STRING: tag = [UNIVERSAL 3] primitive; length = 2
0x0520
9
securityCondition CHOICE
or SEQUENCE OF: tag = [2] constructed; length = 24
securityCondition SecurityCondition CHOICE
10
authId Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x03
11
authReference SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 7
12
authMethod BIT STRING: tag = [UNIVERSAL 3] primitive; length = 2
0x0520
13
seIdentifier INTEGER: tag = {UNIVERSAL 2] primitive; length = 1
0x01
securityCondition SecurityCondition CHOICE
14
authId Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x03
15
authReference SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 7
16
authMethod BIT STRING: tag = [UNIVERSAL 3] primitive; length = 2
0x0520
17
seIdentifier INTEGER: tag = {UNIVERSAL 2] primitive; length = 1
0x02
18
classAttributes CommonKeyAttributes SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 10
19
iD Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x84
20
usage KeyUsageFlags BIT STRING: tag = [UNIVERSAL 3] primitive; length = 2
0x0520
21
keyReference KeyReference INTEGER: tag = [UNIVERSAL 2] primitive; length = 1
0x84
22
typeAttributes : tag = [1] constructed; length = 10
23
PrivateRSAKeyAttributes SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 8
24
Value Path SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 2
efidOrPath OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 0
25
modulusLength INTEGER: tag = [UNIVERSAL 2] primitive; length = 2
2048
D.4.3 Hexadecimal DER-encoding
1 30 40
2
30 26
3
0C 0A
50 72 4B 2E 48 50 2E 51 45 53
4
03 02
07 80
5
04 01
03
6
30 20
7
30 1E
8
03 02
05 20
HPC-Spezifikation V2.3.2, Teil II
Seite 148 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
D.5
A2 18
04 01
03
30 07
03 02
05 20
02 01
01
04 01
03
30 07
03 02
05 20
02 01
02
30 0A
04 01
84
03 02
05 20
02 01
84
A1 0A
30 08
30 02
04 00
02 02
08 00
EF.CD
Das EF “Certificate Directory” enthält die File-Referenzen zu den X.509-Zertifikaten C.HP.QES,
C.HP.QES-AC1, C.HP.QES-AC2, und C.HP.QES-AC3.
D.5.1 ASN.1 value notation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
x509Certificate : {
commonObjectAttributes {
label "C.HP.QES",
flags { private }
},
classAttributes {
iD '84'H
-- cross-reference to the PrKD-entry of PrK.HP.QES
},
typeAttributes {
value indirect :
path : {
efidOrPath '10'H --SFID of C.HP.QES
}
}
},
x509Certificate : {
commonObjectAttributes {
label "C.HP.QES-AC1",
flags { private }
},
classAttributes {
iD '84'H
-- cross-reference to the PrKD-entry of PrK.HP.QES
},
typeAttributes {
value indirect :
path : {
efidOrPath '01'H --SFID of C.HP.QES-AC1
}
}
},
HPC-Spezifikation V2.3.2, Teil II
Seite 149 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
x509Certificate : {
commonObjectAttributes {
label "C.HP.QES-AC2",
flags { private }
},
classAttributes {
iD '84'H
-- cross-reference to the PrKD-entry of PrK.HP.QES
},
typeAttributes {
value indirect :
path : {
efidOrPath '02'H --SFID of C.HP. QES-AC2
}
}
},
x509Certificate : {
commonObjectAttributes {
label "C.HP.QES-AC3",
flags { private }
},
classAttributes {
iD '84'H
-- cross-reference to the PrKD-entry of PrK.HP.QES
},
typeAttributes {
value indirect :
path : {
efidOrPath '03'H --SFID of C.HP. QES-AC3
}
}
}
D.5.2 ASN.1 Description, tags, lengths and values
1 CertificateChoice CHOICE
x509Certificate SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 30
2
commonObjectAttributes CommonObjectAttributes SEQUENCE: tag = [UNIVERSAL 16]
constructed; length = 14
3
label Label UTF8String: tag = [UNIVERSAL 12] primitive; length = 8
0x432E48502E514553
4
flags CommonObjectFlags BIT STRING: tag = [UNIVERSAL 3] primitive; length=2
0x0780
5
classAttributes CommonCertificateAttributes SEQUENCE: tag = [UNIVERSAL 16]
constructed; length = 3
6
iD Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x84
7
typeAttributes : tag = [1] constructed; length = 7
X509CertificateAttributes SEQUENCE: tag = [UNIVERSAL 16] constructed;
length = 5
8
value CHOICE
indirect Referencedvalue CHOICE
path Path SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 3
9
efidOrPath OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x10
10 CertificateChoice CHOICE
x509Certificate SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 34
11
commonObjectAttributes CommonObjectAttributes SEQUENCE: tag = [UNIVERSAL 16]
constructed; length = 18
12
label Label UTF8String: tag = [UNIVERSAL 12] primitive; length = 12
0x432E48502E5145532D414331
13
flags CommonObjectFlags BIT STRING: tag = [UNIVERSAL 3] primitive; length=2
0x0780
HPC-Spezifikation V2.3.2, Teil II
Seite 150 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
classAttributes CommonCertificateAttributes SEQUENCE: tag = [UNIVERSAL 16]
constructed; length = 3
iD Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x84
typeAttributes : tag = [1] constructed; length = 7
X509CertificateAttributes SEQUENCE: tag = [UNIVERSAL 16] constructed;
length = 5
value CHOICE
indirect Referencedvalue CHOICE
path Path SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 3
efidOrPath OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x01
CertificateChoice CHOICE
x509Certificate SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 34
commonObjectAttributes CommonObjectAttributes SEQUENCE: tag = [UNIVERSAL 16]
constructed; length = 18
label Label UTF8String: tag = [UNIVERSAL 12] primitive; length = 12
0x432E48502E5145532D414332
flags CommonObjectFlags BIT STRING: tag = [UNIVERSAL 3] primitive; length=2
0x0780
classAttributes CommonCertificateAttributes SEQUENCE: tag = [UNIVERSAL 16]
constructed; length = 3
iD Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x84
typeAttributes : tag = [1] constructed; length = 7
X509CertificateAttributes SEQUENCE: tag = [UNIVERSAL 16] constructed;
length = 5
value CHOICE
indirect Referencedvalue CHOICE
path Path SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 3
efidOrPath OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x02
CertificateChoice CHOICE
x509Certificate SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 34
commonObjectAttributes CommonObjectAttributes SEQUENCE: tag = [UNIVERSAL 16]
constructed; length = 18
label Label UTF8String: tag = [UNIVERSAL 12] primitive; length = 12
0x432E48502E5145532D414333
flags CommonObjectFlags BIT STRING: tag = [UNIVERSAL 3] primitive; length=2
0x0780
classAttributes CommonCertificateAttributes SEQUENCE: tag = [UNIVERSAL 16]
constructed; length = 3
iD Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x84
typeAttributes : tag = [1] constructed; length = 7
X509CertificateAttributes SEQUENCE: tag = [UNIVERSAL 16] constructed;
length = 5
value CHOICE
indirect Referencedvalue CHOICE
path Path SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 3
efidOrPath OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x03
D.5.3 Hexadecimal DER-encoding
1 30 1E
2
30 0E
3
0C 08
43 2E 48 50 2E 51 45 53
4
03 02
HPC-Spezifikation V2.3.2, Teil II
Seite 151 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
07 80
30 03
04 01
84
A1 07
30 05
30 03
04 01
10
30 22
30 12
0C 0C
43 2E 48 50 2E 51 45 53 2D 41 43 31
03 02
07 80
30 03
04 01
84
A1 07
30 05
30 03
04 01
01
30 22
30 12
0C 0C
43 2E 48 50 2E 51 45 53 2D 41 43 32
03 02
07 80
30 03
04 01
84
A1 07
30 05
30 03
04 01
02
30 22
30 12
0C 0C
43 2E 48 50 2E 51 45 53 2D 41 43 33
03 02
07 80
30 03
04 01
84
A1 07
30 05
30 03
04 01
03
HPC-Spezifikation V2.3.2, Teil II
Seite 152 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
Annex E (informativ)
Kryptographische Informationsobjekte der
ESIGN-Anwendung
Dieser Anhang zeigt ein detailliertes Beispiel für die kryptografischen Informationsobjekte (CIO), die
zum DF.CIA.ESIGN einer HPC gehören.
E.1
EF.CIAInfo
Das EF “CIAInfo” enthält die Versionsnummer der CIO-Beschreibung und das Label der Anwendung,
zu der die CIO-Beschreibung gehört. Die “cardflags”-Einstellungen sind “authRequired” (es gibt
kryptografische Funktionen, die eine Nutzerauthentifizierung erfordern) und “prnGeneration” (Die Karte
hat die Fähigkeit, Pseudozufallszahlen zu erzeugen).
E.1.1 ASN.1 value notation
1
2
3
4
5
7
8
9
10
ciaInfoExample CIAInfo ::= {
version v2,
label “ESIGN Application”,
cardflags { authRequired, prnGeneration }
seInfo {
{
se 1,
aid 'A000000167 455349474E’ H
},
{
se 2,
aid 'A000000167 455349474E’ H
}
}
E.1.2 ASN.1 Description, tags, lengths and values
1 CIAInfo SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 45
2 version INTEGER: tag = [UNIVERSAL 2] primitive; length = 1
1
3 label Label UTF8String: tag = [0] primitive; length = 17
0x455349474E204170706C69636174696F6E
4 cardflags CardFlags BIT STRING: tag = [UNIVERSAL 3] primitive; length = 2
0x0560
5 seInfo SEQUENCE OF: tag = [UNIVERSAL 16] constructed; length = 17
6
SecurityEnvironmentInfo SEQUENCE: tag = [UNIVERSAL 16] constructed;
length = 15
7
se INTEGER: tag = [UNIVERSAL 2] primitive; length = 1
0x01
8
aid OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 10
0xA000000167455349474E
9
se INTEGER: tag = [UNIVERSAL 2] primitive; length = 1
0x02
HPC-Spezifikation V2.3.2, Teil II
Seite 153 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
10
aid OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 10
0xA000000167455349474E
E.1.3 Hexadecimal DER-encoding
1 30 3E
2
02 01
01
3
80 11
45 53 49 47 4E 20 41 70 70 6C 69 63 61 74 69 6F 6E
4
03 02
05 60
5
30 22
6
30 0F
7
02 01
01
8
04 0A
A0 00 00 01 67 45 53 49 47 4E
30 0F
9
02 01
02
10
04 0A
A0 00 00 01 67 45 53 49 47 4E
E.2
EF.OD
Das EF "Object Directory" enthält die Information, welche CIO-EFs vorhanden sind und wie sie durch
SFID referenziert werden.
E.2.1 ASN.1 value notation
1
2
3
4
5
6
7
8
9
authObjects :
path : {
efidOrPath '14'H -- SFID of EF.AOD
},
privateKeys :
path : {
efidOrPath '15'H -- SFID of EF.PrKD
},
certificates :
path : {
efidOrPath '16'H -- SFID of EF.CD
}
E.2.2 ASN.1 Description, tags, lengths and values
1 CIOChoice CHOICE
authObjects : tag = [8] constructed; length = 5
2
AuthObjects CHOICE
path Path SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 3
3
efidOrPath OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x14
4 CIOChoice CHOICE
privateKeys : tag = [0] constructed; length = 5
5
PrivateKeys CHOICE
path Path SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 3
6
efidOrPath OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x15
7 CIOChoice CHOICE
certificates : tag = [4] constructed; length = 5
8
Certificates CHOICE
HPC-Spezifikation V2.3.2, Teil II
Seite 154 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
9
path Path SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 3
efidOrPath OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x16
E.2.3 Hexadecimal DER-encoding
1 A8 05
2
30 03
3
04 01
14
4 A0 05
5
30 03
6
04 01
15
7 A4 05
8
30 03
9
04 01
16
E.3
EF.AOD
Das EF “Authentication Object Directory” enthält die Information über die PIN.CH.
E.3.1 ASN.1 value notation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
pwd : {
commonObjectAttributes {
label "PIN.CH",
flags { private },
authId '12'H
},
classAttributes {
authId '02'H
},
typeAttributes {
pwdFlags { initialized, exchangeRefData },
pwdType iso9564-1,
minLength 5,
storedLength 0,
maxLength 8,
pwdReference 1
-- P2 Value of the VERIFY command
}
},
pwd : {
commonObjectAttributes {
label "PUK.CH",
flags { private }
},
classAttributes {
authId '12'H
},
typeAttributes {
pwdFlags { global, change-disabled, unblock-disabled, initialized, unblockingPassword },
pwdType iso9564-1,
minLength 8,
storedLength 8,
maxLength 8,
pwdReference 1
-- P2 Value of the RESET RETRY COUNTER command
}
}
HPC-Spezifikation V2.3.2, Teil II
Seite 155 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
E.3.2 ASN.1 Description, tags, lengths and values
1 AuthenticationObjectChoice CHOICE
pwd SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 46
2
commonObjectAttributes CommonObjectAttributes SEQUENCE: tag = [UNIVERSAL 16]
constructed; length = 15
3
label Label UTF8String: tag = [UNIVERSAL 12] primitive; length = 6
0x50494E2E4348
4
flags CommonObjectFlags BIT STRING: tag = [UNIVERSAL 3] primitive; length=2
0x0780
5
authId Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x12
6
classAttributes CommonAuthenticationObjectAttributes SEQUENCE:
tag = [UNIVERSAL 16] constructed; length = 3
7
authId Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x02
8
typeAttributes : tag = [1] constructed; length = 22
PasswordAttributes SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 20
9
pwdFlags PasswordFlags BIT STRING: tag = [UNIVERSAL 3] primitive;
length = 3
0x040810
10
pwdType PasswordType ENUMERATED: tag = [UNIVERSAL 10] primitive; length=1
4
11
minLength INTEGER: tag = [UNIVERSAL 2] primitive; length = 1
5
12
storedLength INTEGER: tag = [UNIVERSAL 2] primitive; length = 1
0
13
maxLength INTEGER: tag = [UNIVERSAL 2] primitive; length = 1
8
14
pwdReference Reference INTEGER: [0] primitive; length = 1
0x01
15 AuthenticationObjectChoice CHOICE
pwd SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 42
16
commonObjectAttributes CommonObjectAttributes SEQUENCE: tag = [UNIVERSAL 16]
constructed; length = 12
17
label Label UTF8String: tag = [UNIVERSAL 12] primitive; length = 6
0x50554B2E4348
18
flags CommonObjectFlags BIT STRING: tag = [UNIVERSAL 3] primitive; length=2
0x0780
19
classAttributes CommonAuthenticationObjectAttributes SEQUENCE:
tag = [UNIVERSAL 16] constructed; length = 3
20
authId Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x12
21
typeAttributes : tag = [1] constructed; length = 21
PasswordAttributes SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 19
22
pwdFlags PasswordFlags BIT STRING: tag = [UNIVERSAL 3] primitive;
length = 2
0x013A
23
pwdType PasswordType ENUMERATED: tag = [UNIVERSAL 10] primitive; length=1
4
24
minLength INTEGER: tag = [UNIVERSAL 2] primitive; length = 1
8
25
storedLength INTEGER: tag = [UNIVERSAL 2] primitive; length = 1
8
26
maxLength INTEGER: tag = [UNIVERSAL 2] primitive; length = 1
8
27
pwdReference Reference INTEGER: [0] primitive; length = 1
0x01
HPC-Spezifikation V2.3.2, Teil II
Seite 156 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
E.3.3 Hexadecimal DER-encoding
1 30 2E
2
30 0F
3
0C 06
50 49 4E 2E 43 48
4
03 02
07 80
5
04 01
12
6
30 03
7
04 01
02
8
A1 16
30 14
9
03 03
04 08 10
10
0A 01
04
11
02 01
05
12
02 01
00
13
02 01
08
14
80 01
01
15 30 2A
16
30 0C
17
0C 06
50 55 4B 2E 43 48
18
03 02
07 80
19
30 03
20
04 01
12
21
A1 15
30 13
22
03 02
01 3A
23
0A 01
04
24
02 01
08
25
02 01
08
26
02 01
08
27
80 01
01
E.4
EF.PrKD
Das EF “Private Key Directory” enthält die notwendigen Informationen über die beiden privaten
Schlüssel PrK.HP.AUT und PrK.HP.ENC.
E.4.1 ASN.1 value notation
1
2
3
4
5
6
privateRSAKey : {
commonObjectAttributes {
label "PrK.HP.AUT",
flags { private },
authId '02'H
accessControlRules {
HPC-Spezifikation V2.3.2, Teil II
-- pointer to the AOD-entry of PIN.CH
Seite 157 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
{
accessMode { execute },
securityCondition and : {
authId : '02'H, -- pointer to the AOD-entry of PIN.CH
authReference : {
authMethod { userAuthentication }
}
}
}
}
}
},
classAttributes {
iD '82'H,
-- cross-reference to the CD-entry of C.HP.AUT
usage { signRecover },
keyReference –130
-- used in MSE-SET command
},
typeAttributes {
value {
efidOrPath ''H
},
modulusLength 1728
}
},
privateRSAKey : {
commonObjectAttributes {
label "PrK.HP.ENC",
flags { private },
authId '02'H
-- pointer to the AOD-entry of PIN.CH
accessControlRules {
{
accessMode { execute },
securityCondition and : {
authId : '02'H, -- pointer to the AOD-entry of PIN.CH
authReference : {
authMethod { userAuthentication }
}
}
}
}
}
},
classAttributes {
iD '83'H,
-- in this specification unused (but mandatory)
usage { keyDecipher },
keyReference –131
-- used in MSE-SET command
},
typeAttributes {
value {
efidOrPath ''H
},
modulusLength 1728
}
}
E.4.2 ASN.1 Description, tags, lengths and value
1 PrivateKeyChoice CHOICE
privateRSAKey SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 64
2
commonObjectAttributes CommonObjectAttributes SEQUENCE: tag = [UNIVERSAL 16]
constructed; length = 38
3
label Label UTF8String: tag = [UNIVERSAL 12] primitive; length = 10
0x50724B2E48502E415554
4
flags CommonObjectFlags BIT STRING: tag = [UNIVERSAL 3] primitive;
HPC-Spezifikation V2.3.2, Teil II
Seite 158 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
length = 2
0x0780
authId Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x02
accessControlRules SEQUENCE OF: tag = [UNIVERSAL 16] constructed; length = 17
AccessControlRule SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 15
accessMode BIT STRING: tag = [UNIVERSAL 3] primitive; length = 2
0x0520
securityCondition SecurityCondition CHOICE
and SEQUENCE OF: tag = [1] constructed; length = 9
authId Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive;
length = 1
0x02
authReference AuthReference SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 4
authMethod AuthMethod BIT STRING: tag = [UNIVERSAL 3] primitive;
length = 2
0x0520
classAttributes CommonKeyAttributes SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 10
iD Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x82
usage KeyUsageFlags BIT STRING: tag = [UNIVERSAL 3] primitive; length = 2
0x0410
keyReference KeyReference INTEGER: tag = [UNIVERSAL 2] primitive;
length = 1
0x82
typeAttributes : tag = [1] constructed; length = 10
PrivateRSAKeyAttributes SEQUENCE: tag = [UNIVERSAL 16] constructed;
length = 8
value Path SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 2
efidOrPath OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 0
modulusLength INTEGER: tag = [UNIVERSAL 2] primitive; length = 2
1728
20 PrivateKeyChoice CHOICE
privateRSAKey SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 63
21
commonObjectAttributes CommonObjectAttributes SEQUENCE: tag = [UNIVERSAL 16]
constructed; length = 37
22
label Label UTF8String: tag = [UNIVERSAL 12] primitive; length = 9
0x50724B2E48502E4B45
23
flags CommonObjectFlags BIT STRING: tag = [UNIVERSAL 3] primitive;
length = 2
0x0780
24
authId Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x02
25
accessControlRules SEQUENCE OF: tag = [UNIVERSAL 16] constructed; length = 17
26
AccessControlRule SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 15
27
accessMode BIT STRING: tag = [UNIVERSAL 3] primitive; length = 2
0x0520
28
securityCondition SecurityCondition CHOICE
and SEQUENCE OF: tag = [1] constructed; length = 9
29
authId Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive;
length = 1
0x02
30
authReference AuthReference SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 4
31
authMethod AuthMethod BIT STRING: tag = [UNIVERSAL 3] primitive;
length = 2
0x0520
HPC-Spezifikation V2.3.2, Teil II
Seite 159 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
32
33
34
35
36
37
38
classAttributes CommonKeyAttributes SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 10
iD Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x83
usage KeyUsageFlags BIT STRING: tag = [UNIVERSAL 3] primitive; length = 2
0x0204
keyReference KeyReference INTEGER: tag = [UNIVERSAL 2] primitive;
length = 1
0x83
typeAttributes : tag = [1] constructed; length = 10
PrivateRSAKeyAttributes SEQUENCE: tag = [UNIVERSAL 16] constructed;
length = 8
value Path SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 2
efidOrPath OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 0
modulusLength INTEGER: tag = [UNIVERSAL 2] primitive; length = 2
1728
E.4.3 Hexadecimal DER-encoding
1 30 40
2
30 26
3
0C 0A
50 72 4B 2E 48 50 2E 41 55 54
4
03 02
07 80
5
04 01
02
6
30 11
7
30 0F
8
03 02
05 20
9
A1 09
10
04 01
02
11
30 04
12
03 02
05 20
13
30 0A
14
04 01
82
15
03 02
04 10
16
02 01
82
17
A1 0A
30 08
18
30 02
04 00
19
02 02
06 C0
20 30 3F
21
30 25
22
0C 09
50 72 4B 2E 48 50 2E 4B 45
23
03 02
07 80
24
04 01
02
25
30 11
26
30 0F
27
03 02
05 20
28
A1 09
29
04 01
02
30
30 04
31
03 02
HPC-Spezifikation V2.3.2, Teil II
Seite 160 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
05 20
32
33
34
35
36
37
38
E.5
30 0A
04 01
83
03 02
02 04
02 01
83
A1 0A
30 08
30 02
04 00
02 02
06 C0
EF.CD
Das EF “Certificate Directory” enthält die File-Referenzen zu den X.509-Zertifikaten C.HP.AUT und
C.HP.ENC.
E.5.1 ASN.1 value notation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
x509Certificate : {
commonObjectAttributes {
label "C.HP.AUT",
flags { private },
classAttributes {
iD '82'H
-- cross-reference to the PrKD-entry of PrK.HP.AUT
},
typeAttributes {
value indirect :
path : {
efidOrPath '01'H --SFID of C.HP.AUT
}
}
},
x509Certificate : {
commonObjectAttributes {
label "C.HP.ENC",
flags { private },
classAttributes {
iD '83'H
-- cross-reference to the PrKD-entry of PrK.HP.ENC
},
typeAttributes {
value indirect :
path : {
efidOrPath '02'H --SFID of C.HP.ENC
}
}
E.5.2 ASN.1 Description, tags, lengths and values
1 CertificateChoice CHOICE
x509Certificate SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 30
2
commonObjectAttributes CommonObjectAttributes SEQUENCE: tag = [UNIVERSAL 16]
constructed; length = 14
3
label Label UTF8String: tag = [UNIVERSAL 12] primitive; length = 8
0x432E48502E415554
4
flags CommonObjectFlags BIT STRING: tag = [UNIVERSAL 3] primitive; length=2
0x0780
5
classAttributes CommonCertificateAttributes SEQUENCE: tag = [UNIVERSAL 16]
constructed; length = 3
HPC-Spezifikation V2.3.2, Teil II
Seite 161 von 162
Spezifikation des elektronischen Heilberufsausweises
Teil II: HPC – Anwendungen und Funktionen
6
7
8
9
10
11
12
13
14
15
16
17
18
iD Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x82
typeAttributes : tag = [1] constructed; length = 7
X509CertificateAttributes SEQUENCE: tag = [UNIVERSAL 16] constructed;
length = 5
value CHOICE
indirect Referencedvalue CHOICE
path Path SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 3
efidOrPath OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x01
CertificateChoice CHOICE
x509Certificate SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 30
commonObjectAttributes CommonObjectAttributes SEQUENCE: tag = [UNIVERSAL 16]
constructed; length = 14
label Label UTF8String: tag = [UNIVERSAL 12] primitive; length = 8
0x432E48502E415554
flags CommonObjectFlags BIT STRING: tag = [UNIVERSAL 3] primitive; length=2
0x0780
classAttributes CommonCertificateAttributes SEQUENCE: tag = [UNIVERSAL 16]
constructed; length = 3
iD Identifier OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x83
typeAttributes : tag = [1] constructed; length = 7
X509CertificateAttributes SEQUENCE: tag = [UNIVERSAL 16] constructed;
length = 5
value CHOICE
indirect Referencedvalue CHOICE
path Path SEQUENCE: tag = [UNIVERSAL 16] constructed; length = 3
efidOrPath OCTET STRING: tag = [UNIVERSAL 4] primitive; length = 1
0x02
E.5.3 Hexadecimal DER-encoding
1 30 1E
2
30 0E
3
0C 08
43 2E 48 50 2E 41 55 54
4
03 02
07 80
5
30 03
6
04 01
82
7
A1 07
30 05
8
30 03
9
04 01
01
10 30 1E
11
30 0E
12
0C 08
43 2E 48 50 2E 41 55 54
13
03 02
07 80
14
30 03
15
04 01
83
16
A1 07
30 05
17
30 03
18
04 01
02
HPC-Spezifikation V2.3.2, Teil II
Seite 162 von 162