Veröffentlichungen der Stammzahlenregisterbehörde
Informationen zur Bildung von Stammzahlen und die dazugehörigen Personenkennzeichen
Inhaltsverzeichnis
Die Methoden zur Ermittlung der Stammzahlen und bereichsspezifischer Personenkennzeichen (bPK) gemäß § 6 Absatz (Abs.) 6 E-Government-Gesetz (E-GovG) werden im Folgenden beschrieben und jeweils anhand eines Beispiels erläutert.
Ermittlung der Stammzahl für natürliche Personen
Die Stammzahl wird durch eine symmetrische Verschlüsselung der Zahl der Eintragung im Zentralen Melderegisters (ZMR-Zahl) gebildet und darf nur auf der Bürgerkarte eines Bürgers gespeichert werden. Sie ist von keiner anderen Stelle als der Stammzahlenregisterbehörde rückrechenbar. Zur eindeutigen Identifikation eines Bürgers in einem Verfahren wird in Folge das bereichsspezifische Personenkennzeichen berechnet. Dieses wird im Verfahren zur eindeutigen Identifikation verwendet.
Grundlage für die Ermittlung der Stammzahlen für natürliche Personen sind
- für in Österreich meldepflichtige Personen die Melderegisterzahl (ZMR-Zahl) (§ 6 Abs. 2 E-GovG bzw. § 16 Abs. 4 Meldegesetz (MeldeG))
- für alle anderen Personen die Zahl der Eintragung im Ergänzungsregister (ER-Zahl) (§ 6 Abs. 4 E-GovG).
Diese natürliche Personen eindeutig identifizierende Zahlen (ZMR-Zahl oder ER-Zahl) werden im Folgenden als Basiszahl bezeichnet.
Algorithmus:
- Ausgangsdatum ist die oben erwähnte Basiszahl (12 Dezimalstellen).
- Diese Basiszahl wird in eine Binärdarstellung umgewandelt (5 Byte).
- Sodann wird die Basiszahl in Binärdarstellung mit einem konstanten geheimen Seedwert [1] (8-Bit Wert) zu einem 128-Bit-Wert (binär) wie folgt konkateniert [2]: Basiszahl Seed Basiszahl Basiszahl. Der Seedwert wird in der Stammzahlenregisterbehörde unter Verschluss gehalten.
- Der 128-Bit Binärwert (16 Byte) wird mit dem geheimen Triple-DES [3] Schlüssel der Stammzahlenregisterbehörde im CBC-Modus [4] zur Stammzahl nach § 6 E-GovG verschlüsselt.
- Die Stammzahl wird schließlich in Base64 [5] kodiert (dies schließt die Kodierung in ASCII mit ein).
Nachfolgende Abbildung und Tabelle veranschaulichen das Verfahren grafisch und exemplarisch:
Basiszahl | 000247681888 (Bsp: ZMR-Zahl, 12-stellige Dezimalzahl) |
---|---|
Binärdarstellung | 00 0E C3 53 60 (5 Byte, Darstellung hexadezimal) |
Verbreiterung auf 128 Bit | 00 0E C3 53 60 FF 00 0E C3 53 60 00 0E C3 53 60 (16 Byte, Seed-Wert beispielhaft auf 'FF' gesetzt) |
Triple-DES Verschlüsselung, hexadezimal | 42 AD 37 74 FA E0 70 7B 31 DC 6D 25 29 21 FA 49 (16 Byte) |
Stammzahl, Base64 [5] | Qq03dPrgcHsx3G0lKSH6SQ== (24 Zeichen) |
Ermittlung der Stammzahl für juristische Personen und sonstige Betroffene
Für juristische Personen und sonstige Betroffene, die keine natürlichen Personen sind, ist gemäß § 6 Abs. 3 E-GovG als Stammzahl die Firmenbuchnummer (§ 3 Abs. 1 des Firmenbuchgesetzes, Bundesgesetzblatt (BGBl.) Nummer (Nr.) 10/1991) bzw. die ZVR-Zahl (§ 18 Abs. 3 des Vereinsgesetzes 2002, BGBl. I Nr. 66/2002) bzw. die im Ergänzungsregister (Abs. 4) vergebene Ordnungsnummer zu verwenden. Ein Beispiel ist in Verbindung mit der Berechnung des bereichsspezifischen Personenkennzeichens für die Verwendung im privaten Bereich weiter unten angeführt.
Ermittlung des Organwalter-Personenkennzeichens (OwPK)
Das Organwalter-Personenkennzeichen (OwPK) ist die eindeutige Identifikation eines Organwalters in einem behördlichen Verfahren und kann dort als solches gespeichert werden. Es kann von der Stammzahlenregisterbehörde mit dem zugehörigen Algorithmus auch in die Stammzahl rückgerechnet werden. Grundlage für die Ermittlung des Organwalter-Personenkennzeichens ist die Stammzahl des Verwaltungsbediensteten (Organwalters).
Algorithmus:
- Ausgangsdatum ist die oben erwähnte Stammzahl.
- Der 128-Bit Binärwert (16 Byte) wird mit dem geheimen Triple-DES Schlüssel der Stammzahlenregisterbehörde im CBC-Modus zum OwPK verschlüsselt.
- Das OwPK wird schließlich in Base64 kodiert (dies schließt die Kodierung in ASCII mit ein).
Nachfolgende Abbildung und Tabelle veranschaulichen das Verfahren grafisch und exemplarisch:
Stammzahl, Base64 | Qq03dPrgcHsx3G0lKSH6SQ== (24 Zeichen) |
---|---|
Triple-DES Verschlüsselung, hexadezimal | 42 AD 37 74 FA E0 70 7B 31 DC 6D 25 29 21 FA 49 (16 Byte) |
Organwalter-Personenkennzeichen, Base64 [5] | Organwalter-Personenkennzeichen, Base64 [5] AEXyDbQ3Niw9OXPdV7E0Zo== (24 Zeichen) |
Ermittlung des bereichsspezifischen Personenkennzeichens (bPK)
Das bereichsspezifische Personenkennzeichen dient zur eindeutigen Identifikation eines Bürgers in einem bestimmten Verfahren vor einer Behörde. Es wird aus der Stammzahl des Bürgers und dem Bereichskürzel des Verfahrens nach der E-Government-Bereichsabgrenzungsverordnung (E-Gov-BerAbgrV), BGBl. II Nr. 289/2004, gebildet.
Das bPK wird in 2 Schritten ermittelt. Der erste Schritt ist die Bildung einer ISO-8859-1 Zeichenkette aus der Stammzahl und dem Bereich. Der zweite Schritt ist die kryptographische Einwegableitung dieser Zeichenkette, die das bPK ergibt.
Algorithmus:
- Ausgangsdaten:
Stammzahl, base64 [5] kodiert
Bereich: ISO-8859-1 Zeichenfolge der Bereichsabkürzung des Bereiches gemäß E-Government-Bereichsabgrenzungsverordnung (E-Gov-BerAbgrV). - Bildung der Zeichenkette als Verbindung (string concatenation) aus Stammzahl, "+" (als Zeichen), URN-Präfix und Bereichskürzel.
- Über die entstehende Zeichenkette (den entstehenden String) wird der SHA-1 Algorithmus wie in FIPS PUB 180-1 beschrieben berechnet. Das Resultat dieser Berechnung ist eine 160-Bit-Zahl (5x32 Bit)
- Diese 160-Bit-Zahl kann für programminterne Zwecke direkt verwendet werden. Ansonsten ist diese Zahl Base64 [5] zu kodieren.
URN-Präfix
URN-Präfix := "urn:publicid:gv.at:cdid+"
Der URN-Präfix ist definiert über:
- URN (RFC 2141 / RFC 2396)
- URN für Public Identifier (RFC 3151)
- Owner: gv.at
- Class: cdid+XXXXX (cdid = context dependent id, z. B. Bescheid)
Nachfolgende Abbildung und Tabelle veranschaulichen das Verfahren grafisch und exemplarisch mit einem Beispiel für einen Bescheid im Bereich Bauen und Wohnen:
Stammzahl, Base64 [5] | Qq03dPrgcHsx3G0lKSH6SQ== (24 Zeichen) |
---|---|
Bereichskürzel | BW (ISO-8859-1, Beispiel: Bauen und Wohnen) |
Eingangsdaten für die Hashberechnung | Qq03dPrgcHsx3G0lKSH6SQ==+urn:publicid:gv.at: bescheid+BW |
Hashwert nach SHA-1, hexadezimal | 8FF3717514 21A7EB4DC8 4F56847741 498BB2DE10 (5 x 32bit; Darstellung hexadezimal) |
bPK, Base64 | j/NxdRQhp+tNyE9WhHdBSYuy3hA= (28 Zeichen) |
Bildung des verschlüsselten bereichsspezifischen Personenkennzeichens (vbPK)
Bei der Anforderung von bPKs aus einem Bereich, in dem der Anfordernde nicht zur Vollziehung berufen ist, dürfen nur verschlüsselte Personenkennzeichen zur Verfügung gestellt werden. Die Verschlüsselung ist so zu gestalten, dass
- nur derjenige entschlüsseln kann, in dessen Datenanwendung das bPK in entschlüsselter Form zulässigerweise verwendet werden darf, und
- durch Einbeziehung von zusätzlichen, dem Anfordernden nicht bekannten variablen Angaben in die Verschlüsselungsbasis das bPK auch in verschlüsselter Form keinen personenbezogenen Hinweis liefert.
Das zur Verschlüsselung zugelassene Verfahren ist RSA mit einer Schlüssellänge von 1024bit.
Algorithmus:
- Ausgangsdaten: bPK in Base64 Darstellung, RSA-Public Key (1024 Bit)
- Erstellung der zu verschlüsselnden Daten entsteht durch Verbinden von ISO-8859-1 Strings (string concatenation) von folgenden Strings:
- "V1::" URN-Präfix und bPK Bereich laut Berechnungs-Algorithmus des bPK.
- "::" bPK in Base64 Darstellung
- "::" Datum und Uhrzeit nach ISO-8601 §5 „extended format": "YYYY-MMDDThh:mm:ss" [ISO-8601]
- Der so gebildete String dient als Eingangsparameter der RSA-Verschlüsselung nach PKCS#1 RSAES-OAEP Spezifikation [PKCS#1].
- Das Resultat der Verschlüsselung wird Base64 kodiert. Anmerkung: Die notwendige geforderte "variable" Verschlüsselung beruht darauf, dass einerseits der Zeitpunkt der Erstellung einbezogen wird, andererseits der verwendete RSAES-OAEP Algorithmus blockorientiert arbeitet und die fehlenden Zeichen auf die Blocklänge durch zufällige Werte auffüllt.
Anmerkung: Die notwendige geforderte "variable" Verschlüsselung beruht darauf, dass einerseits der Zeitpunkt der Erstellung einbezogen wird, andererseits der verwendete RSAES-OAEP Algorithmus blockorientiert arbeitet und die fehlenden Zeichen auf die Blocklänge durch zufällige Werte auffüllt.
bPK, Base64 | 8lujqZzaRNTPkIIzxx3VfM/zCZs= (28 Zeichen) |
---|---|
Kürzel bPK-Bereich | T1 (für Testbereich 1 im SZR) |
Datum und Uhrzeit | 2006-10-09T15:54:14 |
Eingangsdaten für Verschlüsselung | V1::urn:publicid:gv.at:cdid+T1::8lujqZzaRNTPkIIzxx3Vf M/zCZs=::2006-10-09T15:54:14 (Kodierung in ISO-8859-1) |
RSA-Public Key | public exponent: 10001 (3 Bytes) modulus: B9 3E 0E 7C 1D 15 F9 85 15 0A DD A7 86 03 0D 05 90 DE 12 90 90 3C 19 EC 23 8A DE 36 02 63 A5 6F 41 67 30 CC B4 43 C5 4C 80 32 7C 2B 7A A8 21 84 12 59 3F 6D B1 19 45 9D DF 35 39 0D 98 41 22 44 34 D5 A9 7C C7 81 98 BB B3 B9 A7 A7 F7 5F 56 EE 8C BD BE 95 2B 44 71 8C D4 2E 5D 8C 31 BA 2F 0A 7C 91 07 DE B7 87 BC 90 64 2E 40 A2 19 30 49 84 68 F7 7D 47 41 A9 D9 A6 F3 B1 F8 1A 71 53 E4 51 (1024 bits = 128 Bytes) |
Verschlüsseltes bPK, hexadezimal | 73 5B 56 0C 8A D7 1F 70 50 F7 96 D4 28 D5 17 15 AC 4A A1 8E 28 D6 DD 35 9F 9F 57 C0 4D 96 0A 0B 12 BA 30 04 5A C9 58 42 69 F9 AC 46 55 35 F0 64 8E 3A 9D 18 87 0E 39 13 76 B1 B8 BC 3D 24 12 FB 78 75 DF 57 BB B8 EF 94 D8 AA 17 03 F8 CD DD 5C 04 48 B0 35 23 4B 1B 69 B4 D4 0A 16 35 9C 1C E5 B9 B9 4B AE 30 B2 23 FB 09 D2 E0 CB C3 C5 10 34 46 E1 0A 16 69 C0 A0 8F 49 2A 7D B6 12 F3 29 02 (128 Bytes) |
Verschlüsseltes bPK, Base64 | c1tWDIrXH3BQ95bUKNUXFaxKoY4o1t01n59XwE2WCgsSujAEWslYQ mn5rEZVNfBkjjqdGIcOORN2sbi8PSQS+3h131e7uO+U2KoXA/jN3V wESLA1I0sbabTUChY1nBzlublLrjCyI/sJ0uDLw8UQNEbhChZpwKC PSSp9thLzKQI= (172 Zeichen) |
Ermittlung des bereichsspezifischen Personenkennzeichens für die Verwendung im Privaten Bereich
Die Bildung des bereichsspezifischen Personenkennzeichens für die Verwendung im privaten Bereich erfolgt analog zur Bildung des gewöhnlichen bPK. Gemäß § 14 Abs. 1 E-GovG kann für die Identifikation von natürlichen Personen im elektronischen Verkehr mit einem Verantwortlichen des privaten Bereichs durch den Einsatz der Bürgerkarte eine spezifische Ableitung aus dem Hashwert gebildet werden, die aus der Stammzahl des Betroffenen und der Stammzahl des Verantwortlichen als Bereichskennung erzeugt wird. Voraussetzung hiefür ist, dass der Verantwortliche des privaten Bereichs eine für den Einsatz der Bürgerkarte taugliche technische Umgebung eingerichtet hat, in der seine Stammzahl als Bereichskennung im Errechnungsvorgang für das bereichsspezifische Personenkennzeichen für die Verwendung im privaten Bereich zur Verfügung gestellt wird.
Algorithmus:
Der Algorithmus ist identisch mit dem Algorithmus zur Berechnung des bPK mit Ausnahme veränderter Ausgangsdaten.
- Ausgangsdaten:
- Stammzahl der natürlichen Person, Base64 kodiert
- Stammzahl des Verantwortlichen als Bereichskennung
- Bildung der Zeichenkette als Verbindung (string concatenation) aus Stammzahl der natürlichen Person und "+" (als Zeichen) und URN-Präfix und Stammzahl des Verantwortlichen.
- Ist die Stammzahl eine Firmenbuchnummer, so ist diese inklusive des Prüfzeichens anzugeben. Führende Nullen werden unterdrückt. Leerzeichen oder Bindestriche vor dem Prüfzeichen werden nicht angeführt.
- Über die entstehende Zeichenkette (den entstehenden String) wird der SHA-1 Algorithmus wie in FIPS PUB 180-1 beschrieben berechnet. Das Resultat dieser Berechnung ist eine 160bit-Zahl (5x32 bit)
- Diese 160bit-Zahl kann für programminterne Zwecke direkt verwendet werden. Ansonsten ist diese Zahl Base64 zu kodieren.
URN-Präfix
URN-Präfix := "urn:publicid:gv.at:wbpk+XXX+"
Wobei 'XXX' folgenden Wert annimmt, wenn es sich bei der Stammzahl des Verantwortlichen um eine
- Firmenbuchnummer handelt: "FN"
- Vereinsregisternummer handelt: "VR"
- Zahl im Ergänzungsregister für nicht natürliche Personen handelt: "ERJ"
- Stammzahl einer natürlichen in Österreich meldepflichtigen Person handelt: "ZMR"
- Stammzahl einer natürlichen Person mit Eintrag im Ergänzungsregister handelt: "ERN"
Nachfolgende Tabelle veranschaulicht das Verfahren exemplarisch mit einem Beispiel:
Stammzahl, Base64 [5] | Qq03dPrgcHsx3G0lKSH6SQ== (24 Zeichen) |
---|---|
Stammzahl des Verantwortlichen | 468924 i |
Präfix für Firmenbuchnummer | urn:publicid:gv.at:wbpk+FN+ |
Eingangsdaten für die Hashberechnung | Qq03dPrgcHsx3G0lKSH6SQ==+urn:publicid:gv.at:wbpk+F N+468924i (Leerzeichen vor "i" entfernt – siehe Schritt 2) |
Hashwert nach SHA-1, hexadezimal | 43B8485AB5 6A3FE55946 24E2966DFE 9A2A082B9C (5 x 32 bit) |
Hashwert nach SHA-1, Base64 | Q7hIWrVqP+VZRiTilm3+mioIK5w= (28 Zeichen) |
[1] Seedwert: Der seed [englisch: Saat] ist ein beliebiger (Zufalls)wert, der dem Ausgangswert vor der Durchführung kryptografischer Berechnungen beigefügt werden kann. Dadurch werden einerseits Rückschlüsse auf den Ausgangswert erschwert. Andererseits wird der Ausgangswert auf eine bestimmte Größe erweitert. Durch die Verbindung eines Seedwertes mit einem Ausgangswert können kryptografische Algorithmen wirkungsvoll verstärkt werden. Dies ist vor allem dann sinnvoll, wenn beispielsweise die geringe Anzahl an verschiedenen Ausgangswerten ein "systematisches Erraten" des Ausgangwertes möglich erscheinen lässt.
[2] Konkatenieren ist ein Fachbegriff der Informatik und bedeutet "zusammensetzen".
[3] Triple-DES ist ein Verschlüsselungsalgorithmus, der aus Sicherheitsgründen dreimal hintereinander durchlaufen wird. DES ist die Abkürzung für Digital Encryption Standard (ein digitaler Verschlüsselungsstandard), der eine Blockchiffre darstellt, das heißt, dass der Ausgangswert in gleich große Blöcke eingeteilt und blockweise verschlüsselt wird.
[4] Cipher-Block-Chaining, abgekürzt CBC, ist eine Betriebsart des Triple-DES Algorithmus, in dem die Verschlüsselung des vorangegangenen Blocks logisch mit dem aktuellen Block vor dessen Verschlüsselung verknüpft wird.
[5] Base64 beschreibt ein Verfahren, bei dem Binärdaten in einen 64 Zeichen großen Zeichensatz (bestehend aus Groß- und Kleinbuchstaben, Ziffern von 0 bis 9, sowie den Zeichen "+", "=" und "/") umgewandelt werden.]
Ermittlung des bereichsspezifischen Personenkennzeichens für die Verwendung im Ausland
Die Bildung des bereichsspezifischen Personenkennzeichens für die Verwendung bei E-ID-taugliche Anwendungen im Ausland ist § 14 Abs. 1 eGovG ist mit der Maßgabe anzuwenden, dass anstelle der Bereichskennung ein staatenspezifisches Kennzeichen oder bei Anwendungen internationaler Organisationen ein organisationsspezifisches Kennzeichen zu verwenden ist.
Algorithmus:
Der Algorithmus ist identisch mit dem Algorithmus zur Berechnung des bPK mit Ausnahme veränderter Ausgangsdaten.
- Ausgangsdaten:
- Stammzahl der natürlichen Person, Base64 kodiert
- staatenspezifisches oder organisationsspezifisches Kennzeichen
- Bildung der Zeichenkette als Verbindung (string concatenation) aus Stammzahl der natürlichen Person und "+" (als Zeichen) und URN-Präfix und staatenspezifisches oder organisationsspezifisches Kennzeichen (standardmäßig gemäß ISO 3166-1 alpha-2)
- Über die entstehende Zeichenkette (den entstehenden String) wird der SHA-1 Algorithmus wie in FIPS PUB 180-1 beschrieben berechnet. Das Resultat dieser Berechnung ist eine 160bit-Zahl (5x32 bit)
- Diese 160bit-Zahl kann für programminterne Zwecke direkt verwendet werden. Ansonsten ist diese Zahl Base64 zu kodieren.
URN-Präfix
URN-Präfix := "urn:publicid:gv.at:eidasid+AT+"
Nachfolgende Tabelle veranschaulicht das Verfahren grafisch und exemplarisch mit einem Beispiel:
Stammzahl, Base64 [5] | Qq03dPrgcHsx3G0lKSH6SQ== (24 Zeichen) |
---|---|
Staatenspezifisches / organisationsspezifisches Kennzeichen (z.B. ISO 3166 ALPHA 2 Code) | EU |
Präfix inkl. Kennzeichen | urn:publicid:gv.at:eidasid+AT+EU |
Eingangsdaten für die Hashberechnung | Qq03dPrgcHsx3G0lKSH6SQ==+urn:publicid:gv.at:eidasid+AT+EU |
Hashwert nach SHA-1, hexadezimal | 88f129f68f 1325437d4a ea862b72f8 3a2f1ff1ee (5 x 32 bit) |
Hashwert nach SHA-1, Base64 | iPEp9o8TJUN9SuqGK3L4Oi8f8e4= (28 Zeichen) |